Permalink
Browse files

started parsing data structures and putting together the meeting 1 ve…

…rification
  • Loading branch information...
1 parent bb2b835 commit b0839542faec972ed472d9c157feb5844ad8618d @benadida committed Oct 11, 2009
View
3 .gitignore
@@ -0,0 +1,3 @@
+largetestdata
+*.pyc
+*~
View
35 README
@@ -5,3 +5,38 @@ The code for auditing a Scantegrity election
the Scantegrity commitment scheme.
Requires PyCrypto
+==================
+
+Each file that follows is used for one step of the audit. In each case,
+an election data directory is provided as input, e.g.
+
+ python meeting1.py <ELECTION_DATA_DIR>
+
+This election data directory is expected to contain all of the XML files needed
+up to this point in the verification. For example, when running meeting1.py,
+the following files are expected:
+
+ MeetingOneIn.xml
+ MeetingOneOut.xml
+
+The verification programs are stateless: they reload all of the data they need at that point.
+This may make them slower than absolutely necessary, but it also prevents potential issues
+with data storage, with forgetting to run one verification, etc...
+
+Any signatures of the outputs are performed separately, these programs just run the verification.
+
+- meeting1.py
+
+load and hash the MeetingOneIn.xml and MeetingOneOut.xml files
+
+- meeting2.py
+
+load and hash the MeetingTwoIn, MeetingTwoOut, PrintCode, and MeetingTwoOutCommitments
+
+- meeting3.py
+
+- meeting4.py
+
+- contestedballots.py
+
+- spoiledballots.py
View
3 commitment.py
@@ -17,6 +17,9 @@ def aes_ecb(message, key):
return aes_cipher.encrypt(message)
def sha256(message):
+ """
+ A simple wrapper around SHA256 with byte-array output
+ """
return hashlib.sha256(message).digest()
DEBUG = False
View
165 data.py
@@ -0,0 +1,165 @@
+"""
+The data abstractions for Scantegrity Audit
+
+ben@adida.net
+2009-10-10
+"""
+
+from xml.etree import ElementTree
+
+class PartitionInfo(object):
+ """
+ Maps a section/question to a partition
+
+ A section ID or question ID can be any string, so we'll use dictionaries
+ """
+ def __init__(self):
+ self.sections = {}
+ self.id = None
+
+ def parse(self, etree):
+ """
+ parse from an elementtree.
+ """
+ self.id = etree.find('electionInfo').attrib['id']
+
+ # go through each section
+ sections = etree.findall('electionInfo/sections/section')
+ for s in sections:
+ # add the section by its identifier
+ self.sections[s.attrib['id']] = new_section = {}
+
+ # find all questions
+ questions = s.findall('questions/question')
+ for q in questions:
+ # add mapping of question to partition n., which is an integer
+ new_section[q.attrib['id']] = int(q.attrib['partitionNo'])
+
+class Question(object):
+ """
+ A question's answers are represented as a position-ordered list of answer IDs.
+ """
+ def __init__(self, id, type_answer_choice, max_num_answers):
+ self.id = id
+ self.type_answer_choice = type_answer_choice
+ self.max_num_answers = max_num_answers
+ self.answers = []
+
+
+class ElectionSpec(object):
+ """
+ Each section is a list of position-ordered questions
+
+ parse from an electionspec.xml file
+ """
+
+ def __init__(self, partition_info):
+ self.partition_info = partition_info
+ self.sections = {}
+
+ @staticmethod
+ def _compare_positions(element_1, element_2):
+ return cmp(int(element_1.attrib['possition']), int(element_2.attrib['possition']))
+
+ def parse(self, etree):
+ self.id = etree.find('electionInfo').attrib['id']
+
+ # check match of election IDs
+ if self.partition_info and self.partition_info.id != self.id:
+ import pdb; pdb.set_trace()
+ raise Exception("election IDs don't match")
+
+ # go through each section
+ sections = etree.findall('electionInfo/sections/section')
+ for s in sections:
+ # add the section by its identifier
+ self.sections[s.attrib['id']] = new_section = []
+
+ questions = s.findall('questions/question')
+
+ # sort them by "possition"
+ questions.sort(ElectionSpec._compare_positions)
+
+ # go through the questions, create question object
+ for q in questions:
+ q_object= Question(q.attrib['id'], q.attrib['typeOfAnswerChoice'], int(q.attrib['max_number_of_answers_selected']))
+ new_section.append(q_object)
+
+
+class Election(object):
+ def __init__(self, election_spec):
+ self.num_d_tables = 0
+ self.num_ballots = 0
+ self.constant = None
+ self.spec = election_spec
+
+ def parse(self, etree):
+ """
+ parse from the MeetingOneIn file
+ """
+ self.num_d_tables = int(etree.findtext('noDs'))
+ self.num_ballots = int(etree.findtext('noBallots'))
+ self.constant = etree.findtext('constant')
+
+class Table(object):
+ """
+ A base table class that has features that P, D, and R tables all need
+ """
+ def __init__(self):
+ self.rows = {}
+
+ def parse(self, etree):
+ # look for all rows
+ for row_el in etree.findall('row'):
+ self.rows[row_el.attrib['id']] = row_el.attrib
+
+class PTable(Table):
+ pass
+
+class DTable(Table):
+ pass
+
+class RTable(object):
+ pass
+
+
+def parse_meeting_one_in(partitions_path, election_spec_path, meeting_one_in_path):
+ partition_info = PartitionInfo()
+ partition_info.parse(ElementTree.parse(partitions_path))
+
+ election_spec = ElectionSpec(partition_info)
+ election_spec.parse(ElementTree.parse(election_spec_path))
+
+ election = Election(election_spec)
+ election.parse(ElementTree.parse(meeting_one_in_path))
+
+ return election
+
+
+def parse_meeting_one_out(meeting_one_out_path):
+ etree = ElementTree.parse(meeting_one_out_path)
+
+ # the P table
+ p_table = PTable()
+ p_table.parse(etree.find('database/print'))
+
+ # the multiple D tables by partition
+ partitions = {}
+ partition_elements = etree.findall('database/partition')
+
+ # go through each partition, each one is a dictionary of D-Table instances keyed by ID
+ for partition_el in partition_elements:
+ partitions[partition_el.attrib['id']] = new_partition = {}
+
+ d_table_instances = partition_el.findall('decrypt/instance')
+ for d_table_el in d_table_instances:
+ new_partition[d_table_el.attrib['id']] = new_d_table = DTable()
+ new_d_table.parse(d_table_el)
+
+ return p_table, partitions
+
+def parse_meeting_two_in(meeting_two_in_path):
+ pass
+
+def parse_meeting_two_out(meeting_two_out_path):
+ pass
View
16 filenames.py
@@ -0,0 +1,16 @@
+"""
+filenames for individual audit files
+
+Ben Adida
+ben@adida.net
+2009-10-10
+"""
+
+# first meeting
+MEETING_ONE_IN = "MeetingOneIn.xml"
+MEETING_ONE_OUT = "MeetingOneOut.xml"
+ELECTION_SPEC = "ElectionSpec.xml"
+PARTITIONS = "partitions.xml"
+
+def file_in_dir(dir, file):
+ return dir + "/" + file
View
32 meeting1.py
@@ -0,0 +1,32 @@
+"""
+The meeting one verification
+
+Usage:
+python meeting-one.py <DATA_PATH>
+
+data path should NOT have a trailing slash
+"""
+
+from filenames import *
+from data import *
+import sys
+
+DATA_PATH = sys.argv[1] or "testdata"
+
+# get the election data
+partition_file_path = file_in_dir(DATA_PATH, PARTITIONS)
+election_spec_path = file_in_dir(DATA_PATH, ELECTION_SPEC)
+election = parse_meeting_one_in(partition_file_path, election_spec_path, file_in_dir(DATA_PATH, MEETING_ONE_IN))
+
+# get the p table and d tables
+p_table, partitions = parse_meeting_one_out(file_in_dir(DATA_PATH, MEETING_ONE_OUT))
+
+# check that there are as many ballots in the P table as claimed
+assert len(p_table.rows) == election.num_ballots, "P Table has the wrong number of ballots, should be %s " % election.num_ballots
+
+# loop through partitions
+for p_id, partition in partitions.iteritems():
+ # loop through d tables for that partition
+ for d_table_id, d_table in partition.iteritems():
+ # check that it has the right number of ballots
+ assert len(d_table.rows) == election.num_ballots, "D Table %s in partition %s has the wrong number of ballots, should be %s" % (d_table_id, p_id, election.num_ballots)
View
33 testdata/ElectionSpec.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<electionSpecification version="0.1">
+ <electionInfo id="PunchScan">
+ <sections>
+ <section id="0" possition="1">
+ <questions>
+ <question id="0" possition="1" typeOfAnswerChoice="one_answer" max_number_of_answers_selected="1">
+ <answers>
+ <answer id="1" possition="2"/>
+ <answer id="0" possition="1"/>
+ </answers>
+ </question>
+ <question id="1" possition="2" typeOfAnswerChoice="rank" max_number_of_answers_selected="3">
+ <answers>
+ <answer id="2" possition="3"/>
+ <answer id="1" possition="2"/>
+ <answer id="0" possition="1"/>
+ </answers>
+ </question>
+ <question id="2" possition="3" typeOfAnswerChoice="multiple_answers" max_number_of_answers_selected="3">
+ <answers>
+ <answer id="3" possition="4"/>
+ <answer id="2" possition="3"/>
+ <answer id="1" possition="2"/>
+ <answer id="0" possition="1"/>
+ </answers>
+ </question>
+ </questions>
+ </section>
+ </sections>
+ </electionInfo>
+</electionSpecification>
+
View
60 testdata/MeetingFourIn.xml
@@ -0,0 +1,60 @@
+<xml>
+ <database>
+ <partition id="0">
+ <decrypt>
+ <instance id="0">
+ <row id="1" side="LEFT"/>
+ <row id="2" side="LEFT"/>
+ <row id="5" side="LEFT"/>
+ <row id="9" side="RIGHT"/>
+ <row id="10" side="LEFT"/>
+ <row id="15" side="RIGHT"/>
+ </instance>
+ <instance id="1">
+ <row id="2" side="RIGHT"/>
+ <row id="5" side="LEFT"/>
+ <row id="7" side="RIGHT"/>
+ <row id="8" side="LEFT"/>
+ <row id="14" side="LEFT"/>
+ <row id="16" side="LEFT"/>
+ </instance>
+ <instance id="2">
+ <row id="1" side="LEFT"/>
+ <row id="2" side="RIGHT"/>
+ <row id="5" side="RIGHT"/>
+ <row id="8" side="LEFT"/>
+ <row id="11" side="RIGHT"/>
+ <row id="16" side="RIGHT"/>
+ </instance>
+ </decrypt>
+ </partition>
+ <partition id="1">
+ <decrypt>
+ <instance id="0">
+ <row id="2" side="LEFT"/>
+ <row id="3" side="RIGHT"/>
+ <row id="4" side="RIGHT"/>
+ <row id="8" side="RIGHT"/>
+ <row id="14" side="LEFT"/>
+ <row id="18" side="LEFT"/>
+ </instance>
+ <instance id="1">
+ <row id="3" side="LEFT"/>
+ <row id="5" side="RIGHT"/>
+ <row id="9" side="LEFT"/>
+ <row id="13" side="RIGHT"/>
+ <row id="15" side="RIGHT"/>
+ <row id="17" side="RIGHT"/>
+ </instance>
+ <instance id="2">
+ <row id="4" side="LEFT"/>
+ <row id="9" side="RIGHT"/>
+ <row id="11" side="RIGHT"/>
+ <row id="12" side="LEFT"/>
+ <row id="13" side="LEFT"/>
+ <row id="18" side="RIGHT"/>
+ </instance>
+ </decrypt>
+ </partition>
+ </database>
+</xml>
View
60 testdata/MeetingFourOut.xml
@@ -0,0 +1,60 @@
+<xml>
+ <database>
+ <partition id="0">
+ <decrypt>
+ <instance id="0">
+ <row id="1" pid="1" d2="0 1" sl="LGWBm2grSHtSyu9zlZ9KXQ=="/>
+ <row id="2" pid="3" d2="0 1" sl="ijK4VWQ/DAn7hpcDBrrAFg=="/>
+ <row id="5" pid="9" d2="0 1" sl="ovrMUXkEJigCtZ6sYLfSMQ=="/>
+ <row id="9" rid="16" d4="0 1" sr="aF3Nm/QnsiVd2O8yK+to2g=="/>
+ <row id="10" pid="8" d2="0 1" sl="rpnW13G/ZBLl/rgu0cPbDg=="/>
+ <row id="15" rid="7" d4="0 1" sr="enZiN/fzaJuzXlC3N6Sj7g=="/>
+ </instance>
+ <instance id="1">
+ <row id="2" rid="7" d4="0 1" sr="5ZJpo+FfBs3gB0ihXkZ0ng=="/>
+ <row id="5" pid="4" d2="1 0" sl="dMbhLQuXCr+Na0sFC4ulHw=="/>
+ <row id="7" rid="1" d4="0 1" sr="AxdESM9rs1qslI87PX6adg=="/>
+ <row id="8" pid="1" d2="1 0" sl="yGzed9wMi4RvlTsV/ec9Mw=="/>
+ <row id="14" pid="9" d2="0 1" sl="ZXUjYSjoTMz8Kc+kcHeXKA=="/>
+ <row id="16" pid="8" d2="1 0" sl="ts1Il0p5+ogw7W7X3OpcKA=="/>
+ </instance>
+ <instance id="2">
+ <row id="1" pid="4" d2="0 1" sl="P6mJ6SG9VUTSptQD8pchTQ=="/>
+ <row id="2" rid="2" d4="1 0" sr="vpP/uLPRg/1XAsQZ++FVig=="/>
+ <row id="5" rid="1" d4="0 1" sr="FWLuM5x7pQp0ax4jxfNWvg=="/>
+ <row id="8" pid="9" d2="1 0" sl="TH0MybS51Qx7UavRGbPpJw=="/>
+ <row id="11" rid="19" d4="1 0" sr="srV/X+QW1nSpWb9n5HyS8A=="/>
+ <row id="16" rid="7" d4="0 1" sr="8uETHF12uofIkCqM8MLQsA=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ <partition id="1">
+ <decrypt>
+ <instance id="0">
+ <row id="2" pid="9" d2="1 0 2 0 1 2 3" sl="u9tS2UwNBpB50uQB449S5w=="/>
+ <row id="3" rid="6" d4="1 2 0 1 2 0 3" sr="KM0Y5BcsZvyF7audx7bonA=="/>
+ <row id="4" rid="2" d4="2 1 0 1 2 3 0" sr="/DqhTp0OgPgigdOMeg32Nw=="/>
+ <row id="8" rid="15" d4="1 0 2 0 2 3 1" sr="0WExbdEVUGmEvMxprdb/Qw=="/>
+ <row id="14" pid="3" d2="2 1 0 1 0 2 3" sl="MK5d7icEg+Wz1yfCMtqGjg=="/>
+ <row id="18" pid="1" d2="1 2 0 0 1 3 2" sl="7nLbqd1MtAN+PRvYmZM1Bg=="/>
+ </instance>
+ <instance id="1">
+ <row id="3" pid="8" d2="0 1 2 1 2 3 0" sl="9ZpNAgIYb5krjlLBjIFR+A=="/>
+ <row id="5" rid="2" d4="0 2 1 3 2 1 0" sr="r7dEAxB16Mgb7icuhwieuw=="/>
+ <row id="9" pid="1" d2="2 1 0 0 1 3 2" sl="ku1KUIopK0+EQW9Tag3ABg=="/>
+ <row id="13" rid="16" d4="2 1 0 2 3 0 1" sr="Vb6ZseQ0uu45wPYSmANWRw=="/>
+ <row id="15" rid="3" d4="1 0 2 3 2 0 1" sr="24IM8LNfkQ1e4eI3vOUt0w=="/>
+ <row id="17" rid="15" d4="1 2 0 0 1 3 2" sr="He7SaXhZHRYBiPYxXtrrZQ=="/>
+ </instance>
+ <instance id="2">
+ <row id="4" pid="1" d2="2 1 0 3 1 2 0" sl="0FOQqPI3qRrC2G1+l0d5Mg=="/>
+ <row id="9" rid="2" d4="1 0 2 2 0 1 3" sr="oPW9c+NLaO8dWYJ4fYD1JQ=="/>
+ <row id="11" rid="3" d4="1 0 2 1 3 2 0" sr="zz/TUvqEA1pgF50CoOvU1g=="/>
+ <row id="12" pid="9" d2="0 2 1 3 0 1 2" sl="VOB9yo+kyHUAFI9UkHH3OA=="/>
+ <row id="13" pid="4" d2="0 1 2 1 3 2 0" sl="gOW4jWeZ+ZrEgPbDVbfR8Q=="/>
+ <row id="18" rid="6" d4="1 2 0 0 1 2 3" sr="5YbbPjAyyQVHq6Fvdvk+dQ=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ </database>
+</xml>
View
7 testdata/MeetingOneIn.xml
@@ -0,0 +1,7 @@
+<xml>
+ <electionSpec>D:\PunchScan2.0\PunchScan2.0\Elections\BenDemo\public\ElectionSpec.xml</electionSpec>
+ <noBallots>20</noBallots>
+ <noDs>3</noDs>
+ <constant>RGVtbyBCZW4gV2FyZCA0IA==</constant>
+ <partitions>D:\PunchScan2.0\PunchScan2.0\Elections\BenDemo\public\partitions.xml</partitions>
+</xml>
View
166 testdata/MeetingOneOut.xml
@@ -0,0 +1,166 @@
+<xml>
+ <database>
+ <print>
+ <row id="0" c1="wo7FJls5eX1QfN4N6sFcUECQlf5+6xel9Q36fk/VixHHVCpODXsH45VLos1vE+/E3V+iOZ1ZS1Sz+nmBmwTuSA==" c2="74gl4HC7nEjASWBr3bpiv5hfy5T6DSJP1UAjAClPcBELmc9QdHzBnH4HtuSGVCEJs4lAwyPl/FL4Uclh8PBxjg=="/>
+ <row id="1" c1="lZ1ykwkAhFqzYa+yy+lFEJ83Vqbv9Wh0NJahr5USFTxE8G7OwtfxKnrEGwqdK+Q+yxj4+XV+zo4lKkpkS5bP6A==" c2="H5DPM9T4VRKlwGvPWlqMlU1Jcn3JQf7LN/p72oGx+krzM9fW1YT6Z4ojA4qHgXXjDPdGXdNiiKRGczf54lNUSg=="/>
+ <row id="2" c1="LdFsW2VY46w9Z3/RCqTxZO1X29Zw2ePzZaf2daSg+Z4Yj7KchziPZYgtY+0s8WPYAuvzUcTui4tsvfEGJxNMYQ==" c2="YNnl5kr+4Zu9o7HZG+2Ir4VCR7YsB/6Yu69Z7bdzuttZorws/EKvc1Y8uId2+jy4X6k8RLKaadrJ5QWXdIi8tw=="/>
+ <row id="3" c1="CTMTF5VPLcYFpWSrvFoS1Kpgb1Ls0+W2Vo9NBpUfOQP1xsNaNEYhXPVySnTlZ4izA1Y5B3jObguJbpI2OEEb5Q==" c2="JnMEXkJhF+sfBhNDLftbyChop0Ej8tQEdN6ol9BJFtKCdKL7tnszaeAjCfhJ0CktPYwMY7tvLUzmDzca8v8bFQ=="/>
+ <row id="4" c1="IkaWEKKfe6GjriCbf6LLxiEL3jtSTjiVJOnf9hyJzSMFbYwtKVuHT6dYN8ldRgvWYY0bMyO+2jIfuL6JXLb14w==" c2="NjL8YYV5e82qxtVpNV8aN6EPHPu6TeKdGtTl5lqPUVz6+G5ccruHlm8DlrYIplRp19uGoCehDMDz/QnRS+MM+w=="/>
+ <row id="5" c1="f6rhALt4NdYvpDk0Rr+j7WGLh3GPkwPccXq2MmhYUtiNWzgmRDokBF/pLjS5Qb811YcrzmnCPsXFPgxD6b9A4A==" c2="apQeSAXB9IZebZGrRq1danft+KlLQrGR8QCpPd2wq3CfIdyunOomuY4zqcsecB4nS+vI95Vif2HvtMlnIpPYKg=="/>
+ <row id="6" c1="wWZ1oSL/SG1KGInZi2pzeYHKnU6IG87fbHUOxFcBxvkk/v8ZLnESKDRJH18P4V2bCViyF3R+dYc25vuSbTXI/w==" c2="GFEGKlDhgn79B3YQpq+vnAjK+un+8ApxtqTicZwkDKfm8Jpq/aATGO2SwGdvWYtMFNDxlPzkUSnDLT9k0VzORw=="/>
+ <row id="7" c1="6p/46lphDiuIgJFocuipXGYqa967y7oR3yCLUFzsPZCp2zzA27y8Z/+6YVoBtbfieHOU08MdvMy1XC5RKr5ssw==" c2="NI9BAmn5jgUTLZXf3TQGyjxSrio8I+9DJvHe/bxJNpj3bFBwLyE5hCOkTkAo7A82GVyRyNhBzk0ph6A/4UqAZQ=="/>
+ <row id="8" c1="Zd+oUS1raRUItQkfln6Q3u6kkAny90JBlmPWjAF4JeMwFVgtD4qt7M5IBWD5CHRu3DIh2+z2/PcnB8o8Al13vw==" c2="hAsnOwsmp2D/l3H27e0nCBGrXngQMWzedmKEuifgQrfdS9aOeojz03w9ldNYE73N7+7b6cPjrUAb0pPHdTHk4g=="/>
+ <row id="9" c1="2q+mI9gDqcHiufoePkpEYbgcRknF8LiAgCoqzvtRVKLj030RaevUYsUfHhabEZ2utKlRxoLKGSVzUArEXF70Ig==" c2="H+XnXzfCOGhbOdvLhl60NU3GFn9UE3bsWN4znmyWxg8Hw2Swoxl91kpEK3GaD/iZb+46r7V5665HVe9gNwj4eA=="/>
+ <row id="10" c1="YOendyDUiclGIlnW/ATctC5h/FAUcKk3exbBr5RKRMZOHMtrwcEdqFDWL7rhSKYAj8i/7JKlOaS8+bWLzEoL1g==" c2="GYXGEH6cK0bbwc7/s0PBCORf5SAdQ8AWzsiRNPaUzxjL2p8fxIrxvtfRE2T9pRWOxZ/Zr4kF1vqmSAWDt7yU9w=="/>
+ <row id="11" c1="qtK0aaIeFaMc1Pta/yfKM4HGX3+/mzPyYb8+dW+z7RGqmDSVIaH8dvb+/jegRukqfntuorOfcR1aClh+rq6zCA==" c2="uMkI1H5F0WWv1cYqc4NJ6HH8vdY5LSmpYuVVn01U7dF2TqxcDHUxZU6XD0SynKYxoLGX04XATBu8irlrnW11jQ=="/>
+ <row id="12" c1="aglOIs/CzZcuUnkYEJh0APOH+6d4pyBojuy4Ny/lptifYB9tz36ekazgA6q/WFbp9XWOZiiFgphvJN2PhgHE3Q==" c2="dBU0BOpFrHViCNwxyvDZiXJCinLQ5TiyUu8c1zzYh4WeVgVpjzRg0xmg++7JylUJ0N+JYEjCN8gTHZIHkKdqfw=="/>
+ <row id="13" c1="F6bODSmc4ul65u3UhwPcaUdVCX9AhtsdhyjYcxLPazzQAscCssXgFHl/8kADb3OY9Lgd8lmsoOGBMir0QJA3oA==" c2="rTtx6gWf3cp3BYPC9a5kPum5ZVH7HNfVilNzYqXu92ruKmQfVYIyVI+NSk5n4rU1ZxW0QzmFW3R2QA+nBOZGsg=="/>
+ <row id="14" c1="qEfwDkY8C+t977DqqGONdMXqLLLbF1yQYeJI1nOI7rYV5l1sZ+7JViMT5PNeGBgkTUqHyYkwGCyduMOENqg2tg==" c2="PNo0u4JKEn0DeaUiTBH0yi44LIl7S83q2cyaln2O92KB5UimuYG7eBUrC1ejAriOZGQLO7YrR2VAEoo9kqbE8w=="/>
+ <row id="15" c1="uYyY3fXY7RmvdvKPEVMFvAW0WM5WSQ5c3z2/9AbBLTF6Uo+F9FNzVg0VsJV6mAB2W8xJPHbgqYIJHT3VqYLrog==" c2="EaFMtzU4JLANl18ECGGEvhNLjapybBJKTVLvK/lxv1a6OQM2XeYSxnaC13+ObqCUUgSsu/KCblUjpKRH8J9avg=="/>
+ <row id="16" c1="ApVlwvmslwg/XwXFsqAPu0StGNpMGSdnDwm2AhfnF+kJ5QlbDjnkULBkj6YQkindbr2NJJED0Jm8qBtJpdrzHw==" c2="AVkR7LrsfPKyObAWhyXuGpR9fBdcyPJ7zwKHF2B2OJnCFHcz3mbf+GLTbSWL9kSxydJNexagGKl0oc+Nw1IrXw=="/>
+ <row id="17" c1="bjHxJofjSWrhJEgqrxWGNL3oYz2TUzEuFErHYahfl1xkoZUCYO+wm9Ezpp1A4cDfNdlbi1pcahx3ahhw26Dlqg==" c2="r9DAFj44Eld0DgPencPOwQD9oozV0IfBMEQ4MasfUFIoM1aL4bQ6c3Io196tSt1KVO4KdVjzASK6csOMGLFwgg=="/>
+ <row id="18" c1="MipOuwPYJ5W4thv5DTupLtQ4BrJu8P3sOkO5M0Bicdte3tXOmZ+UZ11s3vvOT6Rj+iiUgMDJGMlvm5E4iydeRw==" c2="AMsYkGWBsKfv7p/3qg8tOhGAjL1bHvDQJbQC6XsfWksLtLMjGw9ENXtzF2vOdrtMzdMWNEqoEK+DIdjesB2q9g=="/>
+ <row id="19" c1="e1o234iaddvpNxTtEn5BWjlWfTCXRTy2Dx9KtioLIDvPGWbmRipJptFO0b5s4fDEhNS/Zl4QGzSEZk2NWpEj+A==" c2="HPto2pWtCEAYgFM9WqB1rFlXa5FnCGUHVf5OODgHd1XQUEIqEYkZpae9xD7eNW2zwS6lcqVVykI8LwENHxM8Zg=="/>
+ </print>
+ <partition id="0">
+ <decrypt>
+ <instance id="0">
+ <row id="0" cl="7+IlXyzoRKiY1F0Ed8z68NdAlMc4n7gWqCSe+pC2g8Oxbd+bRT7RF2McY6b62JSPTfyaXUlrtvkXv2kBn4YPtA==" cr="fPbAuKuPBbi1bVZrgpxR/ZYcXWDKjsGAcD4We7Ab88KkKs9EJQp5ZPhbzYE7uw3KCnlbqG3FTOnU1GLE8CLGeA=="/>
+ <row id="1" cl="vf1I0gTDIZHuJNEnL66DhVbwk63wbQ0vGj4qkL4lHFm9BOXIUWoQWq3fPhgaR04UsVW310bFmsTrmE78trvzPA==" cr="n9V4DKCbpjNHvWC4k1GgsoW7OWycC+fdkNAMiJW1Ax/8m/rknVw9urXJ4thwP35L26mG0DJkNNvNNZ6auPGG2Q=="/>
+ <row id="2" cl="GSbInmh2pK+RkcS/Py6RYdZw4LM9b7XoUT48/NG6p7dieP0iL9S0ePH1KNJS8XkBkKnuVNA+ZBeXEDygyZ5Kdw==" cr="u+tSq+ktYkLRR4AaU0EQQJG6vHJy22H93Gxtj1aURSGA5edj/3BQ3rK1Sp4dsIvFrQYMCtiXXDq/T65dpkmi1w=="/>
+ <row id="3" cl="e5iIoIWWc/Ej76JZJHANQdiHPrQrIVop2kLANkqt8JVqVc8EhTlYW7WXga7X2aRUktbQHH9+YzSPnR6DBby18A==" cr="u2WXW/0nTX3ILRzDDDBnJREcaUg7Wd4oZLQy0CdDVpgnyBNwHD0Bjr6OiD9KzIBG1DVPZBO3XS9glKGPbkhcGA=="/>
+ <row id="4" cl="NUXMl3cCoQcOPJByt/3Bd7R0Ba+5eHUXdZNpcHCH+8fVFiQpcFIwwHXSi2/5DI7MSdLAapHh/pQjqIx1nX6mIQ==" cr="2Yejmt+9igl1G8iVRE/uQgcFg8m1gb1lkmospTlxl+FI9lWvbjM6hCFNj/hxMxp2uSNFG32/JccZJBYOKwKMrw=="/>
+ <row id="5" cl="aLVAjfBLreTTevwhYfx1XwVVylVyJZI+qhRQuL7Y0bIvBz7ycxQ/hlRlWlrRhc7bxEV29zfW0Hg82znlkLOq3Q==" cr="/4ZfNBhWDEHz6BbfhrJyTY4RMjo5Ifd0rTl9ZzP20CYadF08d7YdMKCj03vN920O9m+qEHBAn54t+M2CSG9Q1Q=="/>
+ <row id="6" cl="xoCNoghIIk9Ghd6+jCZJao2vO99d5OkqVyzDLNlc/6vj3+mMeht1dcLCpqFbh2T7YSW0XMbGRJ9hXvE4ULJTgw==" cr="hfC++aooTkKS2Z9gqz1ipbW3uZxnX5L99s3b/NQxXC020ZVIjEUlerrNQgiTukbyk0POL00CAWzjGbPHo4zncA=="/>
+ <row id="7" cl="oHwpEq+Ll5TzDItrscnhzmGcqo75fkMUjbAcjZS0NNCA77Unr2TFoYR/HO5Zi6lRCteMEZlPND1/0yWROGaMGw==" cr="BU+LO3u7GIU1s7FCl1mAze8OsbgzunBENneBfWNSpJ5xYOH79tKj9kXo+WNngpyrQ+w6tqiVWdzSzIkNeGyXTw=="/>
+ <row id="8" cl="oOQe8emi7qGeekuD0uKkyDJQT32Otmugpd73WluukhhJxPZKQiAnpj/KIqautEKclK3LkGL+EE3ckTBcIRNMow==" cr="OECn5EN0pPj5n6UVORi66jq7RDA7taz8xVCaV2kRsovq9LUJswCD2HrwduoN9Gv9LoZkBRt+G9sn3aaugbLJbw=="/>
+ <row id="9" cl="PZuEoS3TfH3oyEWHeHkIUVnwApssSoegrZ3sWj11MmeiawcN9GaCB1HBhL+ZMZsjeIQBQdlu9e/3zXwynRRkFA==" cr="mqSz4urQRWMhP29xQIU6xBI/iwp88AiV++I0zyMBPeR9qZRL4sqOlUGWQqhiZLjvvoHe0kASpA55kjWgBLVfrg=="/>
+ <row id="10" cl="pK7B0U7ISx+Bn+eWAC0yeUqHd1iSDJSgMZfgcdzbE1d1ekMPrGlhBK0Rkn3qegpiotlonLHHYeC2XZmQnhixBg==" cr="/ewPV6D8RQfMxH1wNma7v/e86L6Hiohb8UOw7l6aIzg//pO8WYQ7bi35P6UzmR2kiF7ycSdV9kjXQq75ixlHjA=="/>
+ <row id="11" cl="Aqam3NYo1VqS1NrRUsfpX7m+lntnaMoIoCqk10IpY6pogmHTMOMAX0rJxdJlxDhd4zZLI+q2X0zArpYLm6fO4Q==" cr="Db/cPloj1Vap2IFsL9DAC43nn2jeGVTZm9tRdgD8+Q9xRU6WobJ2rgcK45O+9yxbAuJPNQRvZwJmvM/fZXNMVA=="/>
+ <row id="12" cl="KLka1vTYuTJBRjHM3v8aum4kUw7OjVPRDVr0VEzxqOiZSjh/dbAXTcWBC0SxoXq/sCyZSG/MJmSQzxoJgzNtDA==" cr="//oE5anEUASMqXPkHlsIiKUxJVgkv5uPsQYpAbbTwiYRsBQZLfVqfMOc8qozZdO6Fj++A9HZosVLSwqyKjwU9w=="/>
+ <row id="13" cl="KNFFHJwHhYV+IaOIOWsJ+dEO69j04rBa++x2mY4dqwFeG8DXnLZhOt7geDpIH7jm08NB0/UuhRJVk+WnDW5xUQ==" cr="fp9CFkha6e+a3OFbMVN2NVWNPXVM2Pg7bb2NNDeEcQmIDl210rJcQyY3lBW3MW6TJnAoETIjFsXnuUAgsvVr6g=="/>
+ <row id="14" cl="JMM0JX/JBuYriaFXSw5JM6Ssfn4vhVgcddmdbS7GsNDvTndQEFrNtfkV5uZzyAfaPh+SlVMnmL1g7MvPuAlq8Q==" cr="FrmSqR7qWTIjy6YLgHbpoSp6h+qSjpFfF78HyXKy6fQWJtBklLu7mS93tQm33KpeccIhWTSBilWmjlNam80ACg=="/>
+ <row id="15" cl="VoChkbfb2lgzeydFnZ4/1RyX4H1iTcIYX8Us1pjeWItcx5z3XpIVoeWpvAKNxmT+jdl5CybbdFRabJkqSmS9jg==" cr="lQzGO9yAIm7iKUR0jHR6J+kzlHczPzjLx3LvVL8n8HOh4h/q0AkAOiErPUZuImzpBDN4VilO7TRLX6doDlmoKQ=="/>
+ <row id="16" cl="MmN4gj3U3mfHpz7eEcj0Jwh4IPAc1Ha5qwsxip3uhQFowzG8XlxCrQMnE0ZPnHvx//saaee1D/zk/vKil+50BQ==" cr="JrcTmFSz2mlMP4x/vWsJvqoLnkozKC3xqBYFZdYJOjSkdwVcmQ5cIWk/iNaaO/0UA493CWxBIehqpr1Esuzeiw=="/>
+ <row id="17" cl="j2sp1RXV5CBGTyj2AQ9XiDyleF7kIgozJfY9pzlb30zszWJALMacfPYOLBQM1QbkCw1/eJOg9173Ha8Lf3szZw==" cr="eEqqVtZms3RN266T02OGqyp1LCLp/yykME/l2iz5HJIXlOSzoriu7v8w/GSWEjUkwxe0iscKTXI7OCnNFkZYNg=="/>
+ <row id="18" cl="D6LySaWq7GYqL/RJSCG0vIdAUUnsqT6r3vsf33S5y2mtY4i20IkiFNzkALGjafAb4DsYqPqxIgRIYg8MSvQO3w==" cr="yO4wUBTkHQ5IT+sa6y4I2TFUe5vAbNSf8WjOnOgbSlRmI7cpnxxwHdn3T8G96LS3SDsH7ZeGolm2VYEcH3XrDQ=="/>
+ <row id="19" cl="zzQG7CqOrOnTc6oh4kj1pKGa+SE0fJ7LecOSYenMJYMxdX96pEs1Ahj9+u2l+pNKZ3WrSl5Qf3RlBDGsDb/iJw==" cr="VwW6Of5uj5DI9xw5FWwcpyViYdt2728Kesp3QgxCMb/12dDgB8s5MS8fcf7p8lrwq/DbrpZHI4KYB1HdPACghQ=="/>
+ </instance>
+ <instance id="1">
+ <row id="0" cl="kNMOkLn2n3pU4lPnUrL3lp+eURu6jZv2uspC4884J1/IDsdYFsuuQ+aZ+tNObh/Ke1Mb82sDE7QgH6JNG0cOPQ==" cr="pLH3v66LUgh7X0xUQlWD7mcB1sV6oK34kAd8/v190TPRxVtQd++oTWlG2bXvt3SAexvbd70/9cNXpf5z7Aqa4g=="/>
+ <row id="1" cl="bSMCxJvXJrLKYCZKu5Z7X85kLBCB1Jfk8rxvKD0V0alivc97Ng/DP/md4SRWI9kC1D/8arDCn2sFjrBy5nMM1g==" cr="3XR6iL+Pd8doCTZK4QBZiD7YGj5GAhvtfgkDjCJ8E0ES2TlhAkdqPDewBHFdxjahleU5Zl2TY9L2WEtleIJoIg=="/>
+ <row id="2" cl="9LYlQy08oKE0rK3UI6JBb5ZprxL2EZkAe/+S6SLafdBAiSOAlRn6qR6jzJlowN7fCn5WleC4OOrw6htmnvd9NA==" cr="9xVcW0KGOcd1i1cuzma2jSx4ZZfBpGOqDGVA/uVMeCaPEDWQzCyXMrrDZ3zufIeW6OElS3MYrQEOIy5J2wuIlg=="/>
+ <row id="3" cl="zaM50Qu660LToBYAkwBl9qhubXFpoXN1550/C3Z4/Ivz2FZw1lEDHw9jDgOcNdJ/UiInL6nidEz1AP+2k2EDIA==" cr="bu1O2AZQDPlQCP0faHAlqX1YDqLDQKtQ8yD8Ci6QUk0rnTxKYKQABX4I/byzs1rhy5JsiDz4Y5Z1FkR3pfdm6A=="/>
+ <row id="4" cl="n6XH/zFWXWQZUJMUZUGE/L6mKLQzL25pDs2n3wp0xNWmymEmcHsR+pLb/aECXEjYIxptMZxt3M5pP0/OG85bOQ==" cr="2pgzI9g8UJ5ftQss57aQfpZtb4i7uYUp9s/qZrdrKEY53LFBwOWovpy4YJBqS5rPj6/Q6kyEbq8LkO5l+mfUtA=="/>
+ <row id="5" cl="EpqQC2+UswnPO43RDhdSbfsLDLSUikWUrQgpdBcj/xTWDeDpGRK5jar/FotvgwPViZGinwTTTA1L42C0zYdkyA==" cr="Rp5lQZHiDGQIHSGGEcFmmGl1tJm6PqsSyEz5q7ffBKykIh2ARq48jnnOR2b5JGhGk55nEeMLwGsAlpaH6vrGkA=="/>
+ <row id="6" cl="JxONdBFR5Lbe/A/pCmx10/zgf+d3gxt5enk7f9p+kInuM5cZzCzsHTijie+UObCJEGqQkvZiwb1hIkPTRahj2g==" cr="iq3YwL03Pkqh1kyu6OhUpJUtHJ5aRS5R7T7Idm1ZJby6BISWvKOcnYwhIAnPLSYuvfGqeV9KUuQt/29nZ3BB8w=="/>
+ <row id="7" cl="29eL11FctKoVAxIKIxyYx0ZP4YArjhD6dbmOEOsUnQUC+/Srt00Dq9w+boFXjXiLor79fUaNhYv0jQ30sWLK9w==" cr="l63BAF2wHdNp1qZ9UGN9NCrfaF7lscFdTXyqfSfuzLR/oWXJSheyoDwy98TcrBJCR7lGcqhWwOjmPPApG8h6aA=="/>
+ <row id="8" cl="j789lpPAKBjkRqcAXqPDoLhD4dE8wqyYlXe7RQX55eycvTrTy7rU4N10aN1/cy2orc0rXdd7tpPJaz8rzAedzQ==" cr="2XfBJfxLIVUYJ9kUxmooTlqBa5XhHMXSpHRplffpd5YZNi+61/onEI2DIb29Rhv7hJ4ZBrznzJw+SLLxv8qQAg=="/>
+ <row id="9" cl="RMZqEwYBdE6mfHBvBvXFEjLKdzcAvjH3k5GGha5YD9bVNNyg0MZbIVZRpHCkiFMAfXCtruDVOFW71gb3lYwPqg==" cr="YFTmDPETKC/pMUjDkCD2ahLgNzPEecPNXhhi0bE9QH4JPpzcZ/0fz90aIv5HRSbh7S0js+Wnq825OgzPNl769A=="/>
+ <row id="10" cl="fFjMdrqjmiMIH/NojuWT2X+QOcWU9kSMyJNE2pKSEZVho8CDIvmB3zMkr/GcsNwAoU0d2UWKvUgOLMAAMQvl8g==" cr="9DLQG1VchXadz8qZIx4njIN0Ywutja78sVikDUE8OKbauojo1Agf1o8bY5oF6CxdHz2oTI7YoLoB+lH0OmMFYA=="/>
+ <row id="11" cl="wRUlRs2SZT6d16aZuweo5iNq5FWH3VcyEgbQg4z6M1rJdZuZXXsOyKeqDTZeeJQA+/Sn2D8BoFw6cGc7n/Zz/g==" cr="RGNHEg1wsvARJAdY8pIQQC8Z7vAwLFxq551ZE7ssWZtacmPXB+GfhtPoGPUo3W+PLdvZj/oKdPVlt5Zss+zRWw=="/>
+ <row id="12" cl="XXbWGJVr/Dw35pzF7aNW2ZNaxtXqKpzy2qxihnk/xjzqwkMa5l5b3RfpFgAswoovCzYBuMkTlacLKXaNSxSyRA==" cr="Q55DMSNLKQFsC5RatyVaEmg3/drEyASVC/rg20VWrmCHdMqt3avoR8oeq594L8kJmclybASZldOav+EjoQsEtA=="/>
+ <row id="13" cl="WK5J3k2qD63AVHwrSUNlKOk25fQevB97dl8XDXVSblqkDjGhRmwge5TvB97UAcSfMU+br2toqat7AtpZXFsOPA==" cr="522+XOEvFp1FRDnOxs0bznD1AEU63UFYnHHucjofUHNo0lRoX77EsFZDzFkxz63j58exNWKWtCtHyXoJKTcn5g=="/>
+ <row id="14" cl="fUAwJWGVtQk1cMdfxIpGBpp+22udU1+WjAMnl3ht3ctIJ2k1nlYdIvMG/Y17vdFgUTgMT3NANP5JpUVBfmPYww==" cr="ciLiSq9hH8QZtauuMDYwV2rkJvV2PeQKNQFY0UZ+VGou/pKaBEZDzJCA26KBJuK5OyH0529CFdBmu/IOyDXemA=="/>
+ <row id="15" cl="MmmOEXIZ6DFkWp2u2RT2zUOaFQrlY0rIPB7fcED2tb/GPBfn+CHOr6izRZiUwLSHHiQAfq65JT6z7kJNerhC5Q==" cr="Ea42bMkoiD+HBFQKshJUxCVdB3pt83HTpfPv35iaxHObJ3laOePTldOtFZbM3q/AYMmYNAekdc+TrpbMrn4Fzg=="/>
+ <row id="16" cl="GlYdP5n83MzC+RbkqtAEMDM2ZzRjTZKuY+InyImWScd/3+6ujt9NtWqkcoW6rzd3i80gua+PM+gcK345STBEJg==" cr="w4LtpUBot/SPXd6P0TD1qeTuOeV1Zbn1dZ538AOVkBaKV9ErltDgMTfs+OaSnXwJE47bfClCexs7xHpJODvOlg=="/>
+ <row id="17" cl="hD1yIDlf/Ih3KwEpyqKXqSYGKNJRaZADVYH6u4zoP3LeGGni/eU3ZzqGqBaqWRqtNEcYgAtWnYbxzv6bGL1tQg==" cr="o34dRGYj0Vn3SBHB4TBUW1iI2oAJWZwOjoooWAjWOSNxnzusnJmavDaAx8g+orNKS7vEausExQL2l7ZtYopisA=="/>
+ <row id="18" cl="jPZ5ppKtgLNoSy1bhxQnxPCCggLSg1VNOHuZ66xPd0T23ekbSfcHdQzaqMDR3FLPatUZ4UylV6oHjaWMfOXeBA==" cr="L1Vn1699qGXzo7TZFz5NZ5l8EFU/O23EF/xP0eBVzcx3dnVket7EjWFmx7vk829VZ36GNw/KZHn7M0OLokcANw=="/>
+ <row id="19" cl="n/rD9o+bRZNhX7K81fKqhbTr71vcZeDBPdoMJH//ScH7aXRcGB0wNEf6vWWglVpIq7vGV5Z2OPAGiuAIXFRCIw==" cr="h3abEeUlumv0sOyH5C+vwQOZb9iO0Ifzv+IgDNx7YQSFXcaq9M9ZfIm1FYNMB83rJN98gpsdGj2tlsQm4uf7Pg=="/>
+ </instance>
+ <instance id="2">
+ <row id="0" cl="1b2Yif0Klqd6ijzlapEkPcA58Yxsd5fkWkJGoDj+HaNot+DU+I8XC3qhGz+VRWMtHYhdFK0ATUD0PbVoBYoJyw==" cr="UCE9sIpnOBoIJNzMVDlVEVYPWK9d9SIShl6vkSpzJd+ITlm6BwFJjinCHJ1/PADY3jHDHKvR1glhkbKqxnWJ5g=="/>
+ <row id="1" cl="N0GvxM8fn+zmpa4zoEBtFbnFMxo24/eBTV0/alF7N8T2p/bdksDq5mhVjZClNJGp2Pg35E1PrdVsulpB2fJRAA==" cr="ptY3+Wpv5Dy1R9DOpigvA5WrpHDyC6HH4qxgJZrTl75MCb4I+eukf5Dc2ZwJvx/gbI4WFXXt83cPNSGFoS4mAQ=="/>
+ <row id="2" cl="2piGfwaPlU27hTslyJLuDofmAeeo86cSNYXDIuSnxvjEeKPjWkUDzioDRp/Re9sMGdkmS/O4P408KtO/BrsWzg==" cr="PPgcG2HigkSz5OyY5/fZZfWaERCXfqok2fh+7RtvU++25Y1Pejm+V28LyYEoahS9CS1zc/R/CEiVG+6AS1EMOQ=="/>
+ <row id="3" cl="jzvG7nf/kgD1bSkxAKeLAzRnZIIa2mZnZn5c/aw5VAUtvVqueFqPNiSbMTS+oqkeYKqbB/Dh/NK8JsEK7vR96w==" cr="baSl6RBWcT8Bze7FTRwFvuwxUCg1Gt7UOuH4m/+ylBZ0SANycq5Psz3Sy23G+TPonFEDEhfNZOs0sQNLgthMKA=="/>
+ <row id="4" cl="UY9p0R8Yz8BsYC3RCETxkA9LfTCKjqirIitVZQxiK2AwPHgFTNxj+RguAayNFJQ0eQiwbVJ/LUcEEqt1Ttqr0w==" cr="Cv+PEqp1oqi0sOHcVTya3PBSch4+Jt38LIbDs1KG7DNP2aA2HUWfKjAw+BZDMPD2MmV5DJ9rIM37ZxqyCK8QTg=="/>
+ <row id="5" cl="CwlB5mOk759669Ve0SNl16yLXewcfAbZlYIfoPpITzPInxY30XwwF21QpSxsjMCjjry+A+Yl5Lmc2RJnZrlVIg==" cr="n8+GIjEadA0MdQKH7hZqrHdnRgLdlq6GNEulqKlQCygxIsZsqp+9unMyCpElFlGXTC9MFXLIvCT46fffebW3MQ=="/>
+ <row id="6" cl="h3LJqYjyw+NkXACwCufp6rZih4dEMx01kSAtOSzR4KlaotqJV4JvISUm9eASR8H8o/TQet3t0jzP6nIyxR4JHQ==" cr="ZBZpEYioTU8EzCtfO/3KDucJzXDBVrrsG0zhinKBxStw86ZLam6pERiIRgVuVxoIkQfsdnFZ4jVwFDsy0d94ow=="/>
+ <row id="7" cl="5PdeQ9E8ArYeaikqNORvxHWqWXFn/3jCHSciv8ZlBuWYQ2LxNELPDPgbLFUjnlVpgAIgKnWgF/H6CKI70gMKzQ==" cr="R9veCjHOYIWAOJ8C9WhkEjKRAS4jmKTOHVft4PWj2fdcffKKLK/tHzhn1pGS5+i+SScFXyzdtDrE5G3aJ0Wvqg=="/>
+ <row id="8" cl="Ars/z8iu1muu75Q4Yqbr4XYODrCMEHH64QC+sFVpkFJh5BaPj05t8Jo30vYHQfZJMjjQ9Nkl1tCxPrCt1LC0Hw==" cr="coDeVVuqJyrYF+OS7OV8Bo4y4gh4abKY9hgLiJNEzoEg1UqayknfbS6/0RXr+9R7iT7Ze6OBLRZIkpM2ORrYFA=="/>
+ <row id="9" cl="xEMJ/1xW+wvDd8Hanogp6rXnNKctFQShGjN2wJrp+fa7iUDnAdBrznWXxnrUnvmhMHmCAHDzf8WRqsx9MbI2NQ==" cr="kbZpQN//J8APZpbc6/TbBXvCkOd1paJUx3n5tu8VM7W5P4QN7/Lr36L6CLD1LZWcnDlwuQiNlrEkfpa+SiMELQ=="/>
+ <row id="10" cl="uZNzPAk7D95uvYidAmX4H+BdEuNK9k7rlVViUA9OLCX3aa90CbyJ/7GXcM8SHu5CDx+8aJCQsGoNsTj26an07w==" cr="KghYEFYdRFh4XFIosBJ1lovaulfkfMNGPFJfaH9Ipzlr0d5ZAmoSh5ydbL+MwDv+qwq2TRvfAfts8luBoWcpvQ=="/>
+ <row id="11" cl="z1AoWEbZfv9dsi/RZkdw5kOshsgOM8rUq5Wv/1PwoPsgPl7rJasc7mYnCd48slXQTsyXvK054M+aI9tAQgaJ3A==" cr="SMWDyNp2jbKPX8eeILQMB8KJnYSZugepp8p/ZCCdKUft667PvzojEJ33izs/4XVJ1DYZhQDuWzcKi1OmKLmUyg=="/>
+ <row id="12" cl="0RjTqa7pzh4IlQa6zu3nUFJjE8qgnbojUOJOwpk8+y4AtcPyZR2IWFXZ8XU8Y3tWaHJopunTRSEGe+FJLJVUGw==" cr="t0OfMX8IsJkIixg18yQYIqv/r0ym6+DLJwNHFE8dhqgxr+GTcQswKvUNHmx3ndQrm0JYxF/OB8BxkHqbP62Hug=="/>
+ <row id="13" cl="tNMfaZ4LaLKs4xxsGmELOmaEm/U5fntsYCQqA2euYvncWJ0Uh3z/PiDwz/Vg8/P6ZJfZ6WapfyJWs87M+w8f8w==" cr="KKX/BmSIZdQF+8il0M2W9qNzmSa1pLcmJPpfCvWhOxye2nZEfXITyfpHxkdqucug3Ncdo9PCfg4tSa4UbqxVKA=="/>
+ <row id="14" cl="AUS6LYFNAd+I1iyHj0+XUmc2pkR9pmqt8ODJRs6L/RXZ6NvkxWrUazI9TpanAmixOvKCVfb7+cYlRlD4tpab0A==" cr="2Zao/VFIq/erRxfVRSKIizLSDgjADb5GEFcTndSq97qdvOWCFnZfVJr4Vs6Obxotzn+MpgwcVwqLpAGz3w+ymw=="/>
+ <row id="15" cl="jcI6SHNYYp9Vt2llzt5Pcj2rCZapVPCgk7nq7RsLYFEMNToumzNd6MT3FE47G6bdpdTkw7iV9FziuqCooVn1Lg==" cr="Z7MVDWvMDPrQtV8nt9hnQvrqLVw/fCNzwsVk9yGhDGRM/8GpP4RnXZD41xEB1F2Z7TdAxT2oVHhgBjP7rD8j4Q=="/>
+ <row id="16" cl="a4Ae6sWlZqQu2tCVXoznqjtbSUoiVTV5tsLO+6IFwr2+awWDqTOEZvhtdLXPHIy4zHt2/2p9Xno+ysOXPU2kag==" cr="vis9CZ+3pipSiDel4FWGyPd/wEMVcwPud/fRsaXQFcT72GOZvxyo4rJsauJHLd6V/ZdBb5HjLJURo4r2ygQXUg=="/>
+ <row id="17" cl="N9XotZk/4f1kEI51P/CJXJzeliLIiSxi9iRrDRZIJzeZ+y5fl+pwGBDk0uAAbDnhD6jSp7wBmmmN2ZtZX7Pouw==" cr="YYysZGNfukZfoEZIuPV6NrBWXbWSiniNkaYzd14OAJnx1nlR9i9RKDMb8TqoqxSfu8/uETGWuRxKBrTOYrv3Pg=="/>
+ <row id="18" cl="GvCyuefiFV8NaMT8ZYuCPJJNa8WveKVFye4NidUQ6e+RGyQD9+a+2V8j7+R6InOJUCHob4LwggOmqRa/f86+Eg==" cr="rOXP4EOVaVNOTkySblbv5DDHbZQWXy5ov1z1Uipm0zDDD8TN7TUKGuMLvOB92JNnvbjyYdqFn/WEKrpYH9erRg=="/>
+ <row id="19" cl="2dfpJqZHtBzPA0YfdMLZVtxHimYe5n0Hnp2AwJ8rA0C10GbDlogpBM9+zuC8hiaienCo1xnShwpoohs7PIV0Eg==" cr="3GiROvDV+0E2ho4bGR85QcS2afFDB9zou/VSMXoClMGfPhUZgF/oWAlDfNKLSlY3qNPBQXgnVVg4Btg8697x8g=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ <partition id="1">
+ <decrypt>
+ <instance id="0">
+ <row id="0" cl="YnA4GSDiRYD0lD/wpxe2M+lUc02v4RBzrklamFSXUcFMF+aaRfFxCdNj73uNlAMa+FHBcbH71ileJJXhM76iRQ==" cr="M1Lbf4elemKe86Yfopstbjt+RPTC/BBDHhFicbazz99GBcEeCmNKfqP8v4OKR3PNvuR3G5y3y46MfFhuEBOY1Q=="/>
+ <row id="1" cl="BXpcAjPolFvFHjfUL4WgAoadeUgBajaX4IWY/FWsfpv3SYex+TFMtH5CdhN5xqMary1XTPn1j5ukmKw7QTQe8Q==" cr="Ta8s8ykP8g1nIg7I8fTGLCbCAd0UVVgkewWLGGpIhOp6uPIXpHhxFGBFbuX6HL8qVQ5mhapo4Gb1OhuwsMU+Og=="/>
+ <row id="2" cl="UOWz7lOTPWxG41lkVQNI4chIxy67RhzspX3smHaX6775Q+ollCwC8DeZBMtFu+AkiR7EfsHf3mHr9BIMTCffVQ==" cr="CBvbvekDdWH4tOs9rBuAg8axE21Qm3UczgBByJZKhcyt7qszkm+zeS9fY4wezFc6uJd05G7pmfVc4z88xNMSxg=="/>
+ <row id="3" cl="Zpks8DhLEKcVXJL+vC4I6UrY+dBXF5sTGqFUBdIDgFJtHd25Pj3TQHbnuW5wsrrXcrqXrw0WKDN61ZiNPRF0Fg==" cr="Of+KlIY/3tvCokzwFewH2FkiL4YHkam1SOslpco90p61jaY7mAz/yt4oF1FHOWUzzL/P+48VPGW2QMzsrcNIbg=="/>
+ <row id="4" cl="4XJrYIBlfgHMvjNTRJdx94jsACcu9L++x56czyqyA8NUjVLMDQJJZiYhaLPbrsz4qxcMkK0uNvURuV9l8xNiYQ==" cr="7rKfJ23PiAu3PZ7jDVQbN4GjtKe85to0u0G3D5PVdm/CFnhJ2ibmQEAL0LofO7JLeSLrROctYl9BR+MQXL7oPQ=="/>
+ <row id="5" cl="a0hjQHIXy2/dRrpoc376CklZeNiU5eiycsQrvZqhZl3oziiF44cTx8pmfNLhheQOgAWSyA+3XfpZlL87dxwAdw==" cr="1hmyhIki/m2PsPuNexzAz/VZOL+/Lnx/MjcjFUy+IfxT/JEOdBeDGDsq/2XgEYXqwuB3Ozy+m8kRtqla12h4cw=="/>
+ <row id="6" cl="Y1fgAbGeuKUPJRXY/qXNksBrh6Fhvq8xdztviK+4snvENn0pXHWjSe98nzl12DVySzEg0hCgQN6W9MyOcFIszA==" cr="QpC3DVCamBZJqT3KFgPzyVHFtsBktbhMDOSqITiZ8U7iZyJvyKZnTPKBIv5wfkIZOIOtH8UFCXuLVm4gtASowA=="/>
+ <row id="7" cl="/kIxdnlqrzbMrGTDrfS+sK7w6YJP9vLLVck8BnA0vlu9nkig9EcWrwwBpLtaoJRgsE/XCSv7ZI1ms9GX8AuKcw==" cr="xck6Phv0tmWiI73IWY4OATABHhsOM1XkZyHqxJow4lyL3r+0L53zK5Sfw87lufPobAq8hwRAGgpImgi8gAmkNA=="/>
+ <row id="8" cl="VcWQTB2s5QhvYodEWqLhtceU4AN0TqKba8Jcs851uywE63TSPXlIJVKlpqPUbnn/5GUb2JkerPZei37ylo1fRw==" cr="e2my8im5FIhn5cHmhHZTxLZ+/8USM0hAdq/yWWkzpFZbohmxKPkKNPUL8j/zquK4xxNUxhp8Qvusn8pto4f6xA=="/>
+ <row id="9" cl="DxtUvxZnhSptyNoTlP49ZMdPR3XrYjLdCkpmhwmujaaPEbtBtIva8wudVwISuOEH3VyJHRLvd7bF9Y4BD01u2Q==" cr="+O4ENJVKy0nQaZUfpX3Y3PC3u+BnWZXYqm5aCFKF/qksYzD2xH742f2wz7XR20o5Ov7+k6S7w+lNbTEvi5jvKA=="/>
+ <row id="10" cl="6DX7lca08Zx1HWysNikE+NaB9XaWu0Lz46X3rTRoXSGY2cazuCN9cCPDm3h+KES6/Zt2Fv7eo8/tnJHK9WS0gQ==" cr="7xUpU/uS5nHR8ZTpZYHQVT8a/RS9p9piLFMxLZ+OgC3F2JiIwuj/fMSo+vHkxNQtbyu+bZDPf4OLKtNrTaTCdg=="/>
+ <row id="11" cl="KIxsqK5FMBbOjdKxM723nNC1i8AmojqPd1FwuqC1sg9rmC4bt5LesDfWsjuwkP0M6rQCoseBSnW99YMaZil7QQ==" cr="3k73hIMeEy6LhHq+HIfnMFR5wDxa/KLOTY/xuxyo96ZJld7uwEnqokp9i7Uxb9+U7UqR9ezaHKP0f8m2YrweDw=="/>
+ <row id="12" cl="tj0okL6x8nqT773I9Ie+C74IxWqStRzAJPnEltqV7wQvU11TrRLWRl7Lx7LmZQAvTxM/R5GctsF5QjaZxbV2LA==" cr="Izq4RPBkwu2qDCrWyLDO7o0VRrkoanC/sYiuxVVzhVSqPWq7EFFLfelWAm/k/8DaUJCXTbnZBrFKvd+txAEqGg=="/>
+ <row id="13" cl="SQHE+0ANL8OIFGao9AqOvSHtrDCtBmr4sYJVWkco46f5kFgdxuUDJ0eCBPU/jOFr4KbJLj4X5SIm6E7EUuEHRQ==" cr="lH3aIFtJTan3wGoTUCNZe9VpnHQ/GiUF1oUBkYZSVbZ8sZXW/B9WgGKPu+IlJTREnWyBW9101o1iu7O5RplW/w=="/>
+ <row id="14" cl="f8Imq1dSbIEL38wMBvi9EF8nEUBgEkktSSjXVqcwNOnbL/rnZ8eo/+mwir8zcTv0BTiQp8BJTtWVCXZcsbOl3w==" cr="RlIBgCnLqoc+V0W7jvKcLQtL7dm4y1dMdp86N3K0BUk9VlUiRthxjAnEzU3N/txmwfMUU2J+uOYbyRbsKFz8Tw=="/>
+ <row id="15" cl="CGXqn1woTVlC3ucW6udh3UIf8JuLSGkMMebfZroSqv1N1yW88umFyQl6Z9P2J8FTdNZ7AzPc2CpKm++N6MpRVQ==" cr="QK9SNRVt7T3HvR3bXGSB3XKddLvwFreWvT832h+M/rFPMmCaY3B3J+tZsBVaheqtvFjnNA6BTpoIVMflTaf7MQ=="/>
+ <row id="16" cl="SulVIRZM7pFVCD0fZMRNdYob6DnqRHdy783QTyopkw6yYS/v/acQMLV+WlCAqGJMKhAHJKrYykM6jfQxyfVKDQ==" cr="tGCHcGtOu5zm7Yo5BHoFJIj7Xyg3OzvNFdPr0xQJzBgotaLgP9vv+jZjmy+SYUtDID0pUN/LwZsXwag4DBUcaQ=="/>
+ <row id="17" cl="KE9MK32RlHacrUKbaJ0DSB9AtwukyCwBO0v/65BWUh6/SboxwCWENAh3Qn7capdlgmztTZ0zHrGRWyheH2GDdg==" cr="iYSDIp8zUceuT5Onz0+mXSa7VtjTK/ama9OD2v2Twwr0UtTAvM4gmnH3NSHCaDDp9JumlOoioV2lNJgCU6uPJw=="/>
+ <row id="18" cl="1sbO1etPmIw+RNnlyrWCuOMGSgk7P7hmUbkrKQMvRoofRIAMGwyOk9v8mWX2CGtyD3cQXkj30u6es2ywUjcd7Q==" cr="LhSc58idP7hVdR44mmD9ikIxWIJSLQmwX6jAOGvgwTTGi9PWIo0JCuD7nDLTaLaZMHBaWlT4OLvpDnT5eGzSxQ=="/>
+ <row id="19" cl="1Ahvjx8MHLflYz7nwEgWwfDdv59DAZd/CQIt6K65O1bjYIEQwT3fv/OtuT9rdmQvcjXz0vfkRl+u1O5v5dccdA==" cr="D3AV8ZLp7+JMLT1jS59arsEewQyisSOxu0cUDUrrhHbAgwkbYpE0xrT2kvW6J1HVEE/W7cQI38n9PdrEp8HlTQ=="/>
+ </instance>
+ <instance id="1">
+ <row id="0" cl="oZBOf+osNzLz+a7nXHVGr93aioXDTzGVdxP4v+x6dgvYmzHKlgFWyWS6mGWra+3Icxg2yNCNSSslqQ5khIdxHw==" cr="12Y44MyUHVpcd1HvGq+wbvevSBHIn7dsS8RMnCtWmCWN0nEKjM1qjrnv9LKJO6Sb9mM/MDsK/i0XY5puVGiaKw=="/>
+ <row id="1" cl="/azBuztXMafIw5BVnac10WKCWHxsD0cnehXXAWBQgMk51F3CfTlszZUdQfl1iVhg5ShIVIPmWNkVJTHGtYoLIw==" cr="uHFKODtVsqP/nGB9L+8UGpx9M+vng66GP+xF/yd5qzipRchKkuL6fGdcUR6iogJfWtDqTzh03XwQin+wm3cZKQ=="/>
+ <row id="2" cl="paLCNxZmPDBTlSjOVCYNzUyEKz3tHrkbS1pEZxw9iObEW0+uClMbQW76irqV1d4YsmWBr13mCcG6ep5BezuXxQ==" cr="p5QUCAKIsQJzXJdK/l3OT+GbfipEzNzY+N9NHvkZ+vZVOR7olspBzS8UiLXYPJGkWgYQgpdDrTlJeieELwyETQ=="/>
+ <row id="3" cl="ZRltZ3Uzs0Qj9xnl5+oAsLbGkmyNekidpYNwtP5AvokpxHRGb5wjSRPV3KR6oH6n8FK496xTw3pMGOg1CKProA==" cr="VeOYYZAiNEJMaj7X1AEmzMvcHfKE7bZleMRcM9jPtu0+OxK+XwRribGaI1wvzFb0J+0bK/dOqqrsgGWRs7zWuw=="/>
+ <row id="4" cl="7bv2wPJxw1bTBvY0rAPbJzyOYdR33RPIdLovqF7vkh2jySwG75UUJVQVCqFfOXbrz0ImzQXYvFG2Finzx0mfFA==" cr="iX0/pnDU+EgeaaXks4SI6LYoDhOwgjL/fDSzWaPoxUWom+t2HoWJkpKn2ZMfMCZpyIMwNasUNM3C1mWizYoBUQ=="/>
+ <row id="5" cl="vjHpeOjhsuecuWucZ0dZrQfGKvubPgajkDKeJTMK4gDRmZ1ZlrEIGDzyVWUyJ6Mxr8FBQpEILRna3C0RwVRgHA==" cr="EC+mml/ztxKYmNrvgwX7h/ioZYRWiYe0mfO/gBgOiyRk67XEOcajMWCc3/T3LMrVDjPUhVSH/H55rfcRVkbULw=="/>
+ <row id="6" cl="HgAQJ0QPKsFBD7BLYlqv7kjHhlxVZ4KqB7/9SLnYLKy9ym48RKyY2NvGuLDZNHZkC0xIE7PYuWACFfTekXmrug==" cr="V5m0krh8c2Dq96ZkvsB5SsqVdftwiHltvo08KzlFIfG4Y1GRBjlOlngofgHwbzeY0oAdKoP6QmjGjZQWWXzyQQ=="/>
+ <row id="7" cl="Sj3tp1fFXL0oV6MAlkSCCgeDDTKz93PqFFbUPzzWyxPPk65wQCabBAUH/g6aH6fp6/TjVHKhGE5CEvbX851mnQ==" cr="X82TIOYumDGSmg0KFyPp7BIMywctv0C1zFbQRGACSeQ/D8S6vC88T5WXDJeruTMpICcVTJ3KcsH7gcx8cJg0hQ=="/>
+ <row id="8" cl="5cwweAUWdBC6/XFxTHykhpdU157OdFUk4kZL7TSlW486mBYSlMQ69prshMzijy5D8zcqGPrziy7jT6b+ZIbJaA==" cr="wZmCK6Dpcbeye3W3dl5aJIXxfz6bI1GmjmyHPCJ77YP3JaFSQschbn4n01db1zvxHavS6RJOHlaIU6jTjBaUow=="/>
+ <row id="9" cl="rXrxeP4viAbLJiiO2Nih8kMi+cnrwKAcbwF7FCeu+eNKtKEcMFWol/ebVFu2DepsAl0AoS634OWwdtCHYsG7ww==" cr="djcUMgZi8719KBdKBEkAtfRbm8D6gsWCQyQX40JMG4wHXz9OsEvW+zxiSQpl22uLl+ePIQ6xl58V/eZPgOEDUg=="/>
+ <row id="10" cl="ddY/j4GXVxrfj4tTUYNUPXCzknPhxL1ft50ZL3PA+rEN2zfESSriC0y0pmRvxEMqzECSQMJNgDcEUrV+yVesvQ==" cr="j/GyqdUoj9owz7xWTmBtpwN15hNDys0BSms5q7VGTGKBTfdFrF/gV7jpoEhgLH82c5cPPKxFRnMBEpIzu9yEKg=="/>
+ <row id="11" cl="B30FSInxKDyyglor1BzNzch5R+28zs9owVby3mmyGVevRmQ5fEr3YzrTt9hBqWvzf7S4kaz2PQPusgK7htnirA==" cr="MP6zIJgTU5qYtVm5oB4tzrTXFcIUQ/Viluy8iy9bCM1mNLaA3g5iFrOSkRoeMxWDePUb+bJnyAxhnSiasDm40Q=="/>
+ <row id="12" cl="vS7a+colrJBmZNPRcIy7Q2smTqvWbKDPsT6p3t6B/oadmGGJIG6aOGo/6C1Z02HijOs4Y4PDkuN3xWv1I3+8Ug==" cr="qLaYD3qsb6WSk/wJSLQmXABTf/Y2dp0TZCNNBT6iXCQvJb/N+xG/ZnmnXpdnRtbmRUGnCidOtk0pv1licQ2tcg=="/>
+ <row id="13" cl="Fcz+p4ypc76cDGnFyvsJIXlugUtxUAWD2H0qCXL0Y2RAtbc/EfV7DLzrMTrxWArBpMwJ9pg0dYzWSuCsrLps1Q==" cr="xusJzKfGNeGfQ2jrfv1tY2NVUyUmFdUo29n3gMNaKI5Eh+cnUqbwIuGgZc3cmFQ0iGPXUGfNhzkHL4KTZ7v/dA=="/>
+ <row id="14" cl="fzf39CO3Pt+StkL0kFJn3yKr1AsoyWMLF2QF3nUqQlK7NHzZoHfo2DxeLThJ3KxtN0QsXwY5Igtqrgl5i34NxA==" cr="2QdpQQGB8zEe/MwKy8s2n2m+vh0kTrVMjmVxJMaLgZF07E1E04IAON23Iccf4bA5AIMUS4dA/Br/B3Y+QtX2yg=="/>
+ <row id="15" cl="mh6EOzpgRl2hYMciJO5ptJExH8OkUAALaOZ1dbx90127kxaUTeV8t9i7oScAKPsFOB0CESQZSQAOYFaaI5QwJg==" cr="S32OSeEqiD6TUVhKOTBDZLyCkHnN1kCWcfH6ydhE93Xbb6dD8ZUne7MOtc92+836pSvBOArRFMBvO9Lp7YGqyw=="/>
+ <row id="16" cl="CuIJw5RRZluPtBJWfCqk78y0NjSuP8ubhmWlrfQqhgqF7RZExyg/Aiuv2kOIVUdxKIimWmRwLGUQVwQvfbSNqg==" cr="cwkDT2K6zzhCmKMTLETnnHFCjFrvYvKjMlq0ujyneHyNYrSHwmcGVw2lU/GbNaqL1Lpph6Lg7R6ps0/PDNzrFw=="/>
+ <row id="17" cl="purwsJKML+OlL5xqSeWLjJzvnDxZbR0jg5G/cDoS0TWKoAZ84dsVZqKTxETrUYxlVY1y9IDaAqhXUh8978nk5Q==" cr="/jpMoEYWTNSIBR3BHBpLAjh2CBPnNAab0v+T53hCtmNVOPBfiFxew45nymp4C0segM6HFZHq2RU6oMlYXyRgPA=="/>
+ <row id="18" cl="Eh9mxpDcjBVPvPcHM5V1qQLlF/75zOzKu7IsqygXZRXcZxBfURRoJI9ou39ig9GrwWbM+QCdxUvxG7fgBasx2g==" cr="YdSzt076o1BvGtlO9Es//VzFOPN7qY3efaXua2AaivopBLB3c6om66wj15Sv/MGRqTPT/RTY9o5Iser5FKbf8w=="/>
+ <row id="19" cl="vZarj6wrGX/ZX5DrT7WhzdEzr2ymkA9e+dxfMmlhweyOeZPZMeY+1xt/DVtDXPAMmqHsPnlPd8of88vZesXJyg==" cr="Ux880OCirARr0FK8RdxeW4iurD2Kpl6b1QHwUN6JIfSCDHZFa+0VXGvlUtzhvvqFf7ujBdEi0SIB1bt2vInr3A=="/>
+ </instance>
+ <instance id="2">
+ <row id="0" cl="S8ury/Bniva0eBvqSJDnK4IUUiy/wv8Vgy8GtXLrLbUAqASB9sF/oh5Izsmj0s+F+V8equWSJJkc0Gu7vXQV4w==" cr="JrZpdd6ziJGi+I+igqAtw59SH/HzeiL6Bkl9ijsOaaocGC+khSSCMLBbicc417eDS1ov4wSlIaB/1k+Yxy/RCg=="/>
+ <row id="1" cl="LzxFGFp+qUICfFDWutYl87/Hotdrv+lf9RhqBNFapE4wZyNerwcULX58TXZtEDeuQV+sTpUTZVMlOlm5Seyw7g==" cr="6eOxTzuT3Yqym9/0/fkIXSQqQp45RnGa3adcoM5Wj710I92cSsSoyWuPBFkP2NDmqbh7XlN2uDdVKqyqREAGCA=="/>
+ <row id="2" cl="xK1MMeEEDzBg27ZFrzBkINxHVHIknyiqZDK6t9z67wHZhvJPsHQaM/7LXD0Z250DkZ5x/IS+6mSl8SPX/bwodg==" cr="fpAOYdeSG/zlCzucz/w5UQA4IvbfSvio+I20OqCmA5/aDWipY2ai4BpByCLVCQxbBY4GSMQksB//9HXPiFDOPw=="/>
+ <row id="3" cl="EEXP2Ofd0ftsXNVQnRRqcn/jZ1nFjc/fUthlNdZct7uMQ+60YvbxcroTtjUSMs01Iz/TUSE2rz+8TE+4UL6i3g==" cr="OgUGbep8QF+fQ8nfZzWc8ARD4SJ0w6FHwJ0NL10lEYZobLXK82CqfMZ8D8jClI4UrasECeDPNS2waRv9zokMnw=="/>
+ <row id="4" cl="XtIXAG/0OVrfYblhSpGTxqXZesVzx333J9HV2k/NryrDKMcMhPwgpoY7FcyONv52tF/1YGOvQwBCFNu0Wx7tMw==" cr="U6OYQsxvSGuEN6Rn5B9lpaoFGKSEVSQZ7Yg0Bk1B3gKYpZ/mosDB6itHpH/xMN0LqO/r5jeHf9t5znhfIAoUwQ=="/>
+ <row id="5" cl="5YXeCtH25+MlKPhZMTqT+a+LKt+y2mWrpQUgqMI1l3kxK4A/cVfukTl7CbgB5aZT/HwjfyJtLf+X8sI8q90F3A==" cr="5n3mG6G61/EsbyZX56cR0ab/daBYsSFbfG4zT1ym6Ft0NTZU3QgHhiFptjPYBXf59UqYQeJRTd12FArQ2FVLzA=="/>
+ <row id="6" cl="RyJ2K8Kt4plDzKTxu9SJdBOh5kBIhosOYSJuknAzGGmQUSdOMqJNZlNlEEE3iy2Q+cPu/1L7FkWv+iKWP6Yjig==" cr="0l8SOco8uwyOCe6hzflmdHUzq9ETwGeObm42ijpngpsbmfwgBa54bad3acwhzoR35afDSrf54ULxbXel4Lfs+w=="/>
+ <row id="7" cl="w0RU7NB8GxFlOKAbHzrnXk5zBPPNMS4iu/o0+N7FD7alb9PVSlblmEs2V4LMGeKR1QMu02/fUe7ExVpwvohBsA==" cr="bUu4DN+OboHZe1Hp/e97SvWtQBGQvSLL4TldC5+H8kMf5vp30zySXnmt2JPZEAUsARHTLtDVXDnHx9vF2XU0ZQ=="/>
+ <row id="8" cl="4JQO5dy7udAOJTe3Vi1mAiFnBrkmUf4/J9q1GTrTmUvHVs/xSyOdepnGpOFmYsSgBQbjg/31Se/tTYkSX4DNGA==" cr="KRPl6NpC7hT/YNGP9Xvk5ct9EjrhBEFsnxfL2CGKFCWCW6qOpBIZiHlnqnWcvLdYQBc6jwpRmCDEBvqdr8FyBw=="/>
+ <row id="9" cl="RgJirmCWJXc9Y0pfkd2MDNFgB+SY1q9TZ4IxsvixTg4Bn5uio+0138+1+L5jRRpoBNUlKgEvgwkuqZ0ET82foA==" cr="VQaoACRtguUxBK11VoIOvfRRDarDtqlG/QibGHENFM5CtdVzbPX9lAo+nTJyfHsROll+HWcN2H8a1Wp9pf66RQ=="/>
+ <row id="10" cl="K3Opem95mHPZ7kluaTurellwQcLINFxNFesSGpe8dWqITSRivTecETdjP7JPKDR1XFU+etjEM9nn+RdysVHKNg==" cr="IgdpHZfopcoliutZ/1bN+6oN3h4RBjYP4qZm3NHPou/9rhnS9Y8nrtzOnp7FU1KlSuawXzhmn7DeLUwq1fjKhw=="/>
+ <row id="11" cl="clC9cTTzrEAON5SaRiBFOHnam1E1RUDc/ogopsloS0XVeyJO10mm+w2BGmCkQvrPLmqBZXejqZmqsPFMHGazQg==" cr="kfqmz5ClMtnSSH27WzZoOV6mi4Kp5UOXSjR7hNSk5c0gDaKqyqr2yuOQATA1U5YTtGs8i6B9ekSguWX7kJZDgA=="/>
+ <row id="12" cl="/7X9IhKa8VAgyzYDHpg/BkHQaNkpl5wkJykeB9IDKMP6SOVye2QK02R1EdIVD2+xsjnHYaXHw14T5cxatZU3qw==" cr="3G+jjY2PGSdk+uPPfLxg7yHVAukqfwurUhnpAPMYf36Ed2DGtrVui+ASezY2EWEH9BmHgP7JuR684yYfpdVBTA=="/>
+ <row id="13" cl="ksp7i2Q/E6tdOymIqhrRb1pL8j4exERZoGesGHAquVZo/oL92wZLsagcGisOw2ab9tbyYPM/MfNl1UNh2q8R4g==" cr="CXEC9rL44ZrJ8PEfboLLzPJvFUZZJw6XYWuaxcwCwZ8yfXyiLwt/zW0TEhipkRQIGVotmc/hzv/MQ3fP8jd+qg=="/>
+ <row id="14" cl="QNPwPSOmbYOWnIGig0mJ3GWVtfiFEf//toIQKZtnDaqvZ9jmUFTzmAGsZIA2U4FS6zAErithJV0pehvcm9aZkA==" cr="a03dwRA26hxudfa+nCy3NwjGIizbcX5hOLV7MHbCQ6CNZUcqFnimzUI2vnG8bWINtKVGlWgvCZrTq7zcCQgu3A=="/>
+ <row id="15" cl="lZpp4CRrYszKyq9O2k3/cUasSCrfCuLNVCjC/AFPEuxRmmjgT+XdbJRW0pTFmnKoG/siK0e5ODuzADLFBCD7sA==" cr="Jeo1up9LDu/LJpcDxFeo1SuR3oI5ho4OwWd0NLlUIJGBXz0N6EB7PYN1v1KkOX5Os3KgbLxksQ5ubwx6zhmNZQ=="/>
+ <row id="16" cl="dg4yKGT18YGlwSxQkVgsYrZwDD9kdo39ixdHq2Lqi8eYtlgPeMbCwHv9vBXWlWwdj3XSmObVIMzZi9rBWmmYMA==" cr="RT8kekpKLXyTzQtHYA2tZWs+W6ir1FRbbl+KIfqdkAgftOAr7OeBRKrAvj8r22LrMT/4weXZbZgQcW3eZqDRFw=="/>
+ <row id="17" cl="2A8vh6VpdWCiiIj/LWtwLpZkZfHdpMM0jf8EN/UsTc8Q2myXBmZ7SOWlvwNrxKLK3qz0NVxj8OLY3HvjucMSRw==" cr="j3NYcoWUsEc5WI5Cpveee+r36rswYpl78/BMP6e7pzYEWPvl5yhYSkCo8jQEGbqRcpDstAQH7/ux0qov+5Rk4w=="/>
+ <row id="18" cl="kEhCVdY3sTP+x8/qqtsT/Fyjjkd7N0kR80DGN1Y8SRzmH4/snsZkuk2n3qa5C5Zi04GtPsF8i7B06nO64E53PA==" cr="pva52BX8LjNICw3ULQ31Py9v7r76LlaUOiatdi+n6uSdyU1F8jBLdBaPqxeLKqAPsdJDyqRglO+IPoWoE2w7Eg=="/>
+ <row id="19" cl="BTkOYD7yUQrE5tmdNFXuTmOScCN/9I6RmJARktscGN2uM/GtmoxUq3l0lqH/uNDKtUuTkzkWPQNQXwjLQ39+/w==" cr="tkyc0nucjdPIbm+AL0HkoD2pS7GkkF67/nQM024/Gd3wrNW/IJ9igtd45IT5rKvRL/vMt6bFXyQL5XyHEJvS1Q=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ </database>
+</xml>
View
10 testdata/MeetingThreeIn.xml
@@ -0,0 +1,10 @@
+<xml>
+ <print>
+ <row id="5" p3="0 2 0 1 0 1 3" page="NONE"/>
+ <row id="4" p3="0 2 1 0 0 -1 0" page="NONE"/>
+ <row id="1" p3="1 0 1 2 -1 3 0" page="NONE"/>
+ <row id="9" p3="1 1 0 2 1 3 0" page="NONE"/>
+ <row id="8" p3="1 0 2 1 0 2 -1" page="NONE"/>
+ <row id="3" p3="1 0 2 1 -1 1 -1" page="NONE"/>
+ </print>
+</xml>
View
76 testdata/MeetingThreeOut.xml
@@ -0,0 +1,76 @@
+<xml>
+ <database>
+ <partition id="0">
+ <decrypt>
+ <instance id="0">
+ <row id="1" d3="1"/>
+ <row id="2" d3="1"/>
+ <row id="5" d3="1"/>
+ <row id="9" d3="1"/>
+ <row id="10" d3="1"/>
+ <row id="15" d3="1"/>
+ </instance>
+ <instance id="1">
+ <row id="2" d3="1"/>
+ <row id="5" d3="1"/>
+ <row id="7" d3="0"/>
+ <row id="8" d3="0"/>
+ <row id="14" d3="1"/>
+ <row id="16" d3="0"/>
+ </instance>
+ <instance id="2">
+ <row id="1" d3="0"/>
+ <row id="2" d3="0"/>
+ <row id="5" d3="0"/>
+ <row id="8" d3="0"/>
+ <row id="11" d3="1"/>
+ <row id="16" d3="1"/>
+ </instance>
+ </decrypt>
+ <results>
+ <row id="1" r="0"/>
+ <row id="2" r="1"/>
+ <row id="5" r="1"/>
+ <row id="7" r="1"/>
+ <row id="16" r="1"/>
+ <row id="19" r="0"/>
+ </results>
+ </partition>
+ <partition id="1">
+ <decrypt>
+ <instance id="0">
+ <row id="2" d3="0 1 2 1 3 0"/>
+ <row id="3" d3="2 1 0 0 2 -1"/>
+ <row id="4" d3="0 1 2 0 1 2"/>
+ <row id="8" d3="0 2 1 2 -1 2"/>
+ <row id="14" d3="2 0 1 -1 0 -1"/>
+ <row id="18" d3="1 2 0 -1 2 0"/>
+ </instance>
+ <instance id="1">
+ <row id="3" d3="0 2 1 1 3 -1"/>
+ <row id="5" d3="1 2 0 2 1 0"/>
+ <row id="9" d3="2 1 0 -1 2 0"/>
+ <row id="13" d3="0 1 2 2 1 3"/>
+ <row id="15" d3="0 1 2 -1 1 -1"/>
+ <row id="17" d3="0 1 2 2 -1 2"/>
+ </instance>
+ <instance id="2">
+ <row id="4" d3="2 1 0 -1 0 3"/>
+ <row id="9" d3="2 0 1 2 0 3"/>
+ <row id="11" d3="0 1 2 -1 2 -1"/>
+ <row id="12" d3="2 0 1 0 2 3"/>
+ <row id="13" d3="2 1 0 1 -1 1"/>
+ <row id="18" d3="2 1 0 1 0 -1"/>
+ </instance>
+ </decrypt>
+ <results>
+ <row id="2" r="2 1 0 1 2 3"/>
+ <row id="3" r="1 0 2 -1 2 -1"/>
+ <row id="6" r="0 2 1 1 0 -1"/>
+ <row id="14" r="0 2 1 -1 2 3"/>
+ <row id="15" r="1 2 0 3 -1 3"/>
+ <row id="16" r="2 1 0 0 3 1"/>
+ </results>
+ </partition>
+ </database>
+</xml>
View
91 testdata/MeetingThreeOutCodes.xml
@@ -0,0 +1,91 @@
+<xml>
+ <database>
+ <printCommitments>
+ <ballot pid="1" webSerial="4-606082" webSerialSalt="z4GyxH8zh3hNzMHYXsSJSg==">
+ <question id="0">
+ <symbol id="1" code="122" salt="1GmZaviSvF8Zpdkeb8R9+g=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="941" salt="uYwDFyeTc0/NhglrlSNGEg=="/>
+ <symbol id="4" code="522" salt="FVpEVUeOlZnfirSDU2+noQ=="/>
+ <symbol id="8" code="957" salt="g+QToL7v7ka94XiFDjZokQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="3" code="792" salt="j5JajqJbSCpz+La/pxEd4w=="/>
+ <symbol id="0" code="264" salt="G7BsGko+1D8MnGFxIUjSNg=="/>
+ </question>
+ </ballot>
+ <ballot pid="3" webSerial="4-429942" webSerialSalt="tgsAjavU3SjgpicGwkizTA==">
+ <question id="0">
+ <symbol id="1" code="044" salt="WseXwjPhH9oL4HRpEtyLGg=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="917" salt="ARqsEH0FvKwxx73vhP5JBA=="/>
+ <symbol id="7" code="898" salt="J1NY1jZsK4yaeuAflxxlMg=="/>
+ <symbol id="5" code="911" salt="y5Hhvlkc9Jpr5C8evTQv0w=="/>
+ </question>
+ <question id="2">
+ <symbol id="1" code="349" salt="cKZ1uW3Fg5tRdXc3z0wnEw=="/>
+ </question>
+ </ballot>
+ <ballot pid="4" webSerial="4-960863" webSerialSalt="GHNg5F5qkCaj9UBA3x0ckg==">
+ <question id="0">
+ <symbol id="0" code="989" salt="GcmqmB1C3sBeN0BIwOFwZg=="/>
+ </question>
+ <question id="1">
+ <symbol id="6" code="941" salt="wCxuhgLXaImGyfsU4hPyzQ=="/>
+ <symbol id="4" code="345" salt="CBKUF2DTQsppDU46L1ZBTg=="/>
+ <symbol id="2" code="086" salt="rZPf0wF/f8Wa61J8jyWDKg=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="325" salt="1VgQKjElGtMC7HBc9F20rw=="/>
+ <symbol id="0" code="325" salt="1VgQKjElGtMC7HBc9F20rw=="/>
+ </question>
+ </ballot>
+ <ballot pid="5" webSerial="4-197777" webSerialSalt="nlztjLEqfFX3S5Q9pWBDHA==">
+ <question id="0">
+ <symbol id="0" code="263" salt="gTdwx2spMncsfi3on5CA3Q=="/>
+ </question>
+ <question id="1">
+ <symbol id="6" code="925" salt="AEt/4G6QoN6zpHnD67mxhg=="/>
+ <symbol id="1" code="993" salt="C1ifveKCqQuhTN4HdIEF8w=="/>
+ <symbol id="5" code="980" salt="kyXYG62Jq7y96cDv7kfwjQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="062" salt="EQYkOMeupKCotFnwyfEmgw=="/>
+ <symbol id="1" code="832" salt="mQet4gJH/lzM9whapoNW3A=="/>
+ <symbol id="3" code="958" salt="6A1NmEc23j+hz9dOPEE7FQ=="/>
+ </question>
+ </ballot>
+ <ballot pid="8" webSerial="4-265018" webSerialSalt="ZNMs7E3BmN8OEFthzyUjJg==">
+ <question id="0">
+ <symbol id="1" code="785" salt="VHsLjhcqGlGvLLKD7zPWsQ=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="298" salt="ZdqTQSAtpLr7NupJ0mTVxA=="/>
+ <symbol id="7" code="957" salt="v56d5X7SzHmqOaj6Uiyp+w=="/>
+ <symbol id="5" code="954" salt="7KmHgx56nCXpSpxOvv3u8Q=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="529" salt="K5hwQ2CLg3UkX0awBNl87g=="/>
+ <symbol id="2" code="900" salt="5QHepnvmfcR7z8K+7yU5WQ=="/>
+ </question>
+ </ballot>
+ <ballot pid="9" webSerial="4-647715" webSerialSalt="dPiIBCouFcuAEkElVwJ4BQ==">
+ <question id="0">
+ <symbol id="1" code="917" salt="3l7gEWzvXn8f91y/7IsgkQ=="/>
+ </question>
+ <question id="1">
+ <symbol id="3" code="997" salt="f5NCQ+/9cmGvsPaSrNLu1g=="/>
+ <symbol id="1" code="770" salt="4IfoeIxoU3CYbj27oIgnuA=="/>
+ <symbol id="8" code="940" salt="IqWevDc2xoi+n/jTU6o0HQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="1" code="863" salt="Rfff4kfHznVjrQCp2etzvQ=="/>
+ <symbol id="3" code="589" salt="0XsR6JHA7/Aa4hAjGTqeoA=="/>
+ <symbol id="0" code="771" salt="Oyz8gEwBU201j8xsIfWekA=="/>
+ </question>
+ </ballot>
+ </printCommitments>
+ </database>
+</xml>
View
16 testdata/MeetingTwoIn.xml
@@ -0,0 +1,16 @@
+<xml>
+ <challenges>
+ <print>
+ <row id="14"/>
+ <row id="10"/>
+ <row id="0"/>
+ <row id="19"/>
+ <row id="2"/>
+ <row id="13"/>
+ <row id="7"/>
+ <row id="18"/>
+ <row id="6"/>
+ <row id="17"/>
+ </print>
+ </challenges>
+</xml>
View
96 testdata/MeetingTwoOut.xml
@@ -0,0 +1,96 @@
+<xml>
+ <database>
+ <print>
+ <row id="0" p1="1 0 2 1 0 1 0 3 2" s1="j8gV+Z62VuXyPJlSWrFvAQ==" p2="1 0 0 1 2 2 0 1 3" s2="LKeSRr2yrmb+xHEpW+Wn7Q=="/>
+ <row id="2" p1="0 1 0 1 2 0 1 2 3" s1="5HeciYGCPgvlRflar0TPsg==" p2="1 0 0 2 1 2 0 3 1" s2="akQ03tit1d/rZ4u6Gq4mfA=="/>
+ <row id="6" p1="0 1 1 0 2 1 0 2 3" s1="BhLKdnDfqyua7dXak1AGoQ==" p2="1 0 1 2 0 0 2 1 3" s2="Vu+1mA3RB8FcnIlz3OadOg=="/>
+ <row id="7" p1="1 0 1 0 2 0 1 2 3" s1="YfY4+A5FMSyXFmfX+sn1QQ==" p2="0 1 1 0 2 2 3 0 1" s2="cZ+gPipiJNFn3KiuanY2zQ=="/>
+ <row id="10" p1="1 0 0 1 2 3 1 0 2" s1="JXJfh0qCMY5Uo2skmcP7ig==" p2="0 1 0 1 2 3 0 2 1" s2="K5D4hSOCDKHSsn5tSkSMcw=="/>
+ <row id="13" p1="1 0 0 2 1 3 2 1 0" s1="hnD2WigpeXf8Kk0T4z0Inw==" p2="1 0 1 0 2 0 3 1 2" s2="yDUDk/KaUixkUTPT/O6gdg=="/>
+ <row id="14" p1="0 1 0 2 1 0 2 1 3" s1="/lSd5J5gIRgZeDBmnqVyWA==" p2="1 0 0 1 2 0 3 2 1" s2="G+495A7H4Fp9kqpI+WBdlg=="/>
+ <row id="17" p1="0 1 1 2 0 2 1 3 0" s1="CnWcKbbdF5pu1ZEnly37Zw==" p2="1 0 2 0 1 1 2 0 3" s2="eHEoVvPR1zC1NbsbxOzKdA=="/>
+ <row id="18" p1="1 0 2 0 1 2 3 0 1" s1="gnlQ8h7NVMm9H6w0IrOhag==" p2="0 1 1 2 0 0 2 1 3" s2="gqK431Ps4VfvLAmBlrVmMQ=="/>
+ <row id="19" p1="0 1 0 2 1 2 0 3 1" s1="dSacLau8EbJ7oqypHTg3Qw==" p2="1 0 2 0 1 3 2 0 1" s2="Hn0/JJ5Zk5D8kJum4pCzpg=="/>
+ </print>
+ <partition id="0">
+ <decrypt>
+ <instance id="0">
+ <row id="0" pid="13" d2="0 1" sl="mNKhnzndQRETtkfo+tZ1UA==" rid="9" d4="0 1" sr="YaJOPu88avq/eLMTFCtjKg=="/>
+ <row id="3" pid="18" d2="1 0" sl="rH6o+FqpHv2DbuBA6nsx2g==" rid="11" d4="0 1" sr="c+LDBM5UCqY8WfaCk+NRlw=="/>
+ <row id="4" pid="10" d2="0 1" sl="XxGzfJh1jmCiYoy0/UyExQ==" rid="8" d4="1 0" sr="VaeDU0VCfayad9rjwmCoMg=="/>
+ <row id="7" pid="7" d2="1 0" sl="83HbWWw3+VR1aEGbyAF8Rw==" rid="12" d4="0 1" sr="tx4fWqiFZjkh23tJQDjcrA=="/>
+ <row id="11" pid="14" d2="0 1" sl="4Hy8qmA2DfwL4kMkcS5Sww==" rid="4" d4="1 0" sr="4bB6HFrdnOD+xWsqi31ZGA=="/>
+ <row id="12" pid="19" d2="1 0" sl="1efO5LMvpc2UMFiJ01f1DA==" rid="0" d4="0 1" sr="t7XDW4WhEPqz35wR21DZuQ=="/>
+ <row id="14" pid="6" d2="1 0" sl="95zAN0GvWIK8qL4Z00iLYQ==" rid="18" d4="0 1" sr="LVllhTLDtS8K5xHiunfzsg=="/>
+ <row id="16" pid="0" d2="0 1" sl="UaIq7gHFOUvsfXpYk/uRQg==" rid="6" d4="0 1" sr="hW9v0UAzI0nFSwG8JrmsHQ=="/>
+ <row id="18" pid="2" d2="1 0" sl="s7dKCyE1KpYnIv3nZjMVsA==" rid="3" d4="0 1" sr="GZUgmyBkMUApxkN+q5RKnA=="/>
+ <row id="19" pid="17" d2="1 0" sl="WWWhRLVRx3MRj3yKrxOUbA==" rid="10" d4="0 1" sr="QxDfIozVbNT/eIwNv7nGwg=="/>
+ </instance>
+ <instance id="1">
+ <row id="0" pid="6" d2="1 0" sl="ODGhR+KJrXQCDfZsXhhwGQ==" rid="18" d4="0 1" sr="/QmAO3ndfU1TU3QBYwHiBw=="/>
+ <row id="3" pid="10" d2="1 0" sl="p3mzj0fXrQXOEDvB6LeMMA==" rid="8" d4="0 1" sr="+ssNXgKY5+R6EIUEdeHtlQ=="/>
+ <row id="6" pid="17" d2="0 1" sl="UpZtzRHUE4QCzs0DddahWQ==" rid="10" d4="1 0" sr="9DG1sg4dJIdHNHNmPLIzSA=="/>
+ <row id="9" pid="14" d2="1 0" sl="qD5S3Z0s47qcp+scNHVyEg==" rid="4" d4="0 1" sr="tGpnhmYvZpkAVIAmcKuR7A=="/>
+ <row id="10" pid="13" d2="0 1" sl="/hrH66UQTjqDcOC+8Yf5Hw==" rid="9" d4="0 1" sr="0vFqv1QabeXww+ohJKVD2A=="/>
+ <row id="11" pid="18" d2="1 0" sl="H6HucUa+QRjRHCF3ceWBbg==" rid="11" d4="0 1" sr="VJMrwTbfvfyBc0tgq9IHnw=="/>
+ <row id="12" pid="7" d2="1 0" sl="Z27q3GxMhbzAhNSYDirk8Q==" rid="12" d4="0 1" sr="+ipM7zv78o8E0FdHFQFgmQ=="/>
+ <row id="13" pid="2" d2="0 1" sl="conSVnpnJnV5S1yewq0cqQ==" rid="3" d4="1 0" sr="eMzz6su7YLYfWEqZBTNyrA=="/>
+ <row id="15" pid="0" d2="1 0" sl="pDalgrouJMwzXhwnHH4Jvw==" rid="6" d4="1 0" sr="D5XYWmHUQa9Vy5ED9Lvj6A=="/>
+ <row id="19" pid="19" d2="0 1" sl="FOC8oJGg0iQurto1UBbTbQ==" rid="0" d4="1 0" sr="Hil0IFTY73/Hz9sSHDKmIQ=="/>
+ </instance>
+ <instance id="2">
+ <row id="0" pid="14" d2="1 0" sl="1P05VWMX8gwjpgRM7xvPuw==" rid="4" d4="0 1" sr="9JlwDdumvpNVlOmjWEjfQg=="/>
+ <row id="3" pid="13" d2="1 0" sl="Jfjlg3zRNp0RLVLbnBHVrQ==" rid="9" d4="1 0" sr="JOhqNkPbT1tpT9aVlIC66w=="/>
+ <row id="6" pid="18" d2="0 1" sl="fPGxSxjZe/AG/8TAcU4ewg==" rid="11" d4="1 0" sr="NkGGiiTCODgq6GPVJ9ggMQ=="/>
+ <row id="9" pid="7" d2="1 0" sl="+fHcfvShYC2HrsJq1xe0Xg==" rid="12" d4="0 1" sr="oucxTLsfPTkdsJw3PkjfzA=="/>
+ <row id="10" pid="17" d2="1 0" sl="KHc1ITzLKuAFJiuYIbsYnQ==" rid="10" d4="0 1" sr="lRucaPJi6niV1ytvjSy+OQ=="/>
+ <row id="12" pid="6" d2="0 1" sl="pt9wGyBK5g318gSNgwGUcg==" rid="18" d4="1 0" sr="x1d9o/w5MLZt88oxWKAH9g=="/>
+ <row id="14" pid="0" d2="0 1" sl="nHD9pXtjjjNwqmQ91sLwBA==" rid="6" d4="0 1" sr="cCv7AWuv4eoOQpwlGz7gkQ=="/>
+ <row id="17" pid="10" d2="0 1" sl="Hd21NUHOAJmdyxYJs58F7g==" rid="8" d4="1 0" sr="FOUOmbD/BslSegky+brLUw=="/>
+ <row id="18" pid="2" d2="0 1" sl="MloITXcw43z275Iwz81mag==" rid="3" d4="1 0" sr="kclix50CZIYROqBs3OodQw=="/>
+ <row id="19" pid="19" d2="0 1" sl="EZzBjLBS1OhDJTT2hn0R+g==" rid="0" d4="1 0" sr="xUjH0Pj9rWeFKB0cQzDbuw=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ <partition id="1">
+ <decrypt>
+ <instance id="0">
+ <row id="5" pid="0" d2="1 0 2 2 0 3 1" sl="AF6HLNauLny/1PIVGYpc4A==" rid="11" d4="1 2 0 1 2 3 0" sr="TjMfqx2vvoyWuYCa1dDHDA=="/>
+ <row id="6" pid="13" d2="0 2 1 2 3 1 0" sl="DCyaMsCAkRYcEu6pJIwO8A==" rid="12" d4="2 1 0 1 2 3 0" sr="93SFHM1uAl6xwtm4K3EFbg=="/>
+ <row id="7" pid="2" d2="2 0 1 1 3 2 0" sl="HaBE7JVd2aaomDspcgO0uQ==" rid="10" d4="2 1 0 1 2 3 0" sr="lCrW8lrbSDkOQX00QL29+Q=="/>
+ <row id="10" pid="6" d2="2 1 0 2 3 1 0" sl="O6WKpKJAB/qbLOwEvqv5nw==" rid="13" d4="1 2 0 3 0 1 2" sr="n4Vw3sfYECN3s1FMBYh/AQ=="/>
+ <row id="11" pid="18" d2="2 1 0 2 0 1 3" sl="tIpF/BUAgbo30gbfAAvGEw==" rid="5" d4="1 0 2 0 3 2 1" sr="jc3RdXdYDvctW5K/Bt6Ucg=="/>
+ <row id="12" pid="7" d2="1 0 2 3 0 2 1" sl="gswbBpPR7HtgBZCAlgSmaw==" rid="4" d4="1 0 2 3 1 0 2" sr="wagjuXQ2/0S9HVWRTTBc5g=="/>
+ <row id="13" pid="17" d2="0 2 1 2 1 3 0" sl="PCYMYg2dlqKJpO2JTHIiEA==" rid="19" d4="1 0 2 2 0 1 3" sr="BlKDgUXPTQZsm59Vj+2fYw=="/>
+ <row id="15" pid="14" d2="2 0 1 0 3 2 1" sl="Ew0XadM6gdTmhh6ObzZffQ==" rid="1" d4="2 1 0 0 2 1 3" sr="w2t5d3X5VJH8+e2dQlKocw=="/>
+ <row id="16" pid="10" d2="1 2 0 3 2 1 0" sl="pMsknzHblSzdpof8WuXOjA==" rid="7" d4="2 0 1 1 3 2 0" sr="qs+86e4RyetcqL9DFFDJ4A=="/>
+ <row id="17" pid="19" d2="1 2 0 2 1 0 3" sl="9OqMW0mJmC+AADHxatRMog==" rid="9" d4="2 1 0 1 0 2 3" sr="ka7jZddgGmueOdxLfu5wMw=="/>
+ </instance>
+ <instance id="1">
+ <row id="0" pid="18" d2="0 1 2 1 3 0 2" sl="60J5oUjdXlywzFYXbLiKUA==" rid="5" d4="2 0 1 3 2 1 0" sr="QC27ThbKyVq/kDddlf0GqQ=="/>
+ <row id="1" pid="2" d2="1 2 0 2 0 1 3" sl="v3qRR+vI3Z+vk7Rpgwkf4A==" rid="10" d4="1 0 2 0 3 2 1" sr="TouCiZlYV/oVZ7fomOlqcg=="/>
+ <row id="6" pid="7" d2="2 1 0 2 0 3 1" sl="BNzLj/lB1eWOXANtXbE1bg==" rid="4" d4="2 1 0 3 1 2 0" sr="9eKhr85WFu0bxzFcOKrZqg=="/>
+ <row id="7" pid="0" d2="2 0 1 3 0 1 2" sl="q7J48/TEsAIyXZXkRECStQ==" rid="11" d4="1 0 2 1 0 2 3" sr="bfE5SI2nr6GBizrX8Ciiww=="/>
+ <row id="8" pid="14" d2="2 0 1 0 1 3 2" sl="U3IyF6H8U0S3z5uHmfixeA==" rid="1" d4="2 1 0 0 3 2 1" sr="PM2MAvdm0KDz+lEy3uHahw=="/>
+ <row id="10" pid="13" d2="0 2 1 0 2 1 3" sl="944yydd76wWRq9mg5HS9Ng==" rid="12" d4="2 1 0 3 2 0 1" sr="JRxYbVGSxbQUMygqIrhp3A=="/>
+ <row id="12" pid="17" d2="1 2 0 1 2 3 0" sl="8lkpTLcJbphuUI1DDwwbyg==" rid="19" d4="0 1 2 2 1 0 3" sr="prdPcATd1CPl7cn9m0oChA=="/>
+ <row id="16" pid="6" d2="1 0 2 3 0 2 1" sl="eYa4cyKM8QGGPAYiE58XCg==" rid="13" d4="2 0 1 2 3 0 1" sr="aPu9iLZc+/UNQu+ZqkD2Ag=="/>
+ <row id="18" pid="10" d2="1 2 0 3 1 2 0" sl="w2adHqxv/5zgscNFRp2NZA==" rid="7" d4="2 0 1 1 2 3 0" sr="DhH3xwY3SCtPisK05TuvAg=="/>
+ <row id="19" pid="19" d2="0 2 1 2 3 0 1" sl="v4t5thzKyAjyhC1FpQkpoQ==" rid="9" d4="1 2 0 1 3 2 0" sr="kUbNg2eTnvRPfsp4cvj1Ug=="/>
+ </instance>
+ <instance id="2">
+ <row id="0" pid="14" d2="0 2 1 0 1 3 2" sl="FeyQuTWMOKGUqk3VBuY6rQ==" rid="1" d4="0 1 2 0 3 2 1" sr="e//4ArbDK0pw3CwgEPyB5A=="/>
+ <row id="1" pid="18" d2="2 1 0 3 1 0 2" sl="82ThTb2Ghky982Psk++Wpw==" rid="5" d4="1 0 2 3 0 1 2" sr="SsPiupFT0LE98ONHtsSpsw=="/>
+ <row id="2" pid="0" d2="1 2 0 0 3 2 1" sl="W0wgirBRk6aLrc85JyubkQ==" rid="11" d4="0 2 1 3 2 0 1" sr="zlwlfwukZkBiie94Yn2yWQ=="/>
+ <row id="3" pid="7" d2="2 0 1 2 1 3 0" sl="HCLwNmceDKeiJWm0s3DjyQ==" rid="4" d4="1 2 0 1 3 2 0" sr="+j+yrEgpvJTsnPq1hUfc2Q=="/>
+ <row id="6" pid="13" d2="0 1 2 3 0 1 2" sl="jlntLglvO4In9f7zW470EQ==" rid="12" d4="2 0 1 0 2 1 3" sr="7o5sp7JPJdDOyuwNs7qzrg=="/>
+ <row id="8" pid="10" d2="0 1 2 1 0 2 3" sl="bS6fmsr03Uzs6zGzBKwOPQ==" rid="7" d4="0 1 2 2 0 3 1" sr="crfm6fBziHrYZ6u9xKEbtQ=="/>
+ <row id="10" pid="17" d2="1 2 0 3 2 1 0" sl="ERG+bkNmy6G39+lmX2UACA==" rid="19" d4="0 1 2 2 3 0 1" sr="AqiMTuMk5VC13KEIjw3w8g=="/>
+ <row id="15" pid="6" d2="0 2 1 0 2 3 1" sl="qJXxF7kJuhlZKIfMUOWw3w==" rid="13" d4="0 1 2 1 3 2 0" sr="+lu/9GNVAZWT7QAxHbniqQ=="/>
+ <row id="16" pid="2" d2="2 1 0 3 0 2 1" sl="HsuCBKno8jAlw96d/2ctvg==" rid="10" d4="1 2 0 0 1 3 2" sr="x8vD6zRzG7TfGcyrxDznKA=="/>
+ <row id="19" pid="19" d2="1 0 2 2 3 1 0" sl="Rtm3W8ftQeNMkVg2atD8ig==" rid="9" d4="0 1 2 3 1 2 0" sr="6SSO7c6wvU8xkkW2BFAVKA=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ </database>
+</xml>
View
236 testdata/MeetingTwoOutCommitments.xml
@@ -0,0 +1,236 @@
+<xml>
+ <database>
+ <printCommitments>
+ <ballot pid="1" barcodeSerialCommitment="CFy/9JV9LbMmc3pnazOF4wGbork5MlcatEL2Mfw1Ie2ATfJsa+qDitoXNpiZhQ1IR2YSkHHG6PPJyzqQiam1eg==" webSerialCommitment="IoMuqJJdMUvlpRsNlH8h6FGUY5sWQx3LdvSHuwkRstY6MkTf+v0wxGMbkHcBkbvc0oOwmFfO3aLyZmsT498mVw==">
+ <question id="0">
+ <symbol id="0" c="XY6KAbO5O/8usP1HZ+L70ORBwx6lJUiFJz21tvZqaeYqBfcMvclPUcXdzH+SlM79d9CdmtOKgIo2zUQSIx72Hg=="/>
+ <symbol id="1" c="egjjHHGxq3RIJrWduLTY6Xmxhi+BbV3o7ItphB8gCiGNcUWryQqsXo9NXF46zuXff6vYkgMwlc3P3Q9LYsEPBA=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="EcpxecXKnCAOMubnAE6wfe6hrJoRSe007rKBH6GnG56/it0FgACBo7UuZXFIoGCT+P1q5wBwZzvw/vEuM5lTiA=="/>
+ <symbol id="1" c="4kOQs6jbtQt7qI55JsTkoOPTtP7QJtwamXiOKKx00Vt7PraQhKlxcvzC9bgrg1KvIol0RPoWQxLqGJIUgLw7Eg=="/>
+ <symbol id="2" c="UCOgI7rvXrOgjvJZr1f6bYwTQiQJPf8EsJIkyN9mitAepSXbJEDGMCwqAGOURLHNgHbS4S9TpQO8s7hPpz8S2w=="/>
+ <symbol id="3" c="C/9OwkEnjCBoFiGmlNHMgms+RS4asmXRBDPol8sDgas5RHtceFqcsurALGzX2ARl2Hpbl144Pvpr6GdR9FbkQA=="/>
+ <symbol id="4" c="iwARnkUOd74xbANQ/KNMOp1meHvFaIkOCTwpKQtFzKZAEqePSMpnFP53U7khIiMNwlYSWpPqfBtN7jrHTx7dGA=="/>
+ <symbol id="5" c="i+7FDN8p9s0j13bIKFRLabzwED++Q9awoottcvltqOaUhPGuKvJI0ZGWeuxnm2pbM5oTqJyY7vw/JrDYn2w5GA=="/>
+ <symbol id="6" c="qflgykfVlGIKIL/y56IikJLvqdlDluyTggfH75WV8OcBjk0J6UrdhglqYBpvRhD0OJEnWPWK2j9tQFzFl2l3vA=="/>
+ <symbol id="7" c="dYlCrKboZ+65awotlE2gWJ6ghPEwIwSordgk4ASyemjfiBK8w+DZH5SwpWKGFUPxIGPP6b9PQPSmIVdlYBIiZg=="/>
+ <symbol id="8" c="iB1eTa4w9y9dIyuElg9fWDkUVGXTiUKZgAmwmLTnu76w4pKETVxBv0MbZA1FnSDAdkO3T/VJayisnO5dcW+QsQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="0/n2rUGkiuIx70qUEliwFBADgTjlEEU+wHfHwnKC/fcx6BSOvlMxDxv9eSaX097fvDXeZ350L65Zkio1Pc4xkg=="/>
+ <symbol id="1" c="yoVDkn6wwOxCcFSy8OE9zL/zhs1+oqos2wWbLodGalSICoe5ZVIOVwl1a74/4YCobSJw6sr0DjLMpvc5nVyHwQ=="/>
+ <symbol id="2" c="j33qDwaMKR50wSN1VLmXXsc5Bd7kCLoGSkEN57CuMsfoXq4gSssf8mNeRgOBFOXYUgEuOvqJ+VYSH8r0fxGyPg=="/>
+ <symbol id="3" c="a+ZzbKMlfw8qPLP7j3g8Ic51yADLzRvjyyGxzkBvwm641Z/WZz2mvRIX1HyFkJkDz32e7yQAWyjk5zQqNYHC/Q=="/>
+ </question>
+ </ballot>
+ <ballot pid="3" barcodeSerialCommitment="U90pt/mA0AW4UnmcBEczx6CFBNQvL9Do4+N8b9/N4J5TCMy7suZViXGIpkuZUcB/S7qjj1uZ31tspb7RKvHY5A==" webSerialCommitment="NJhFsXsl2uiWxT62Es5bJC3Nhi17qQ6Da7CdTCkRxYUwAFn0Oqv27kOO5FApWc4vdh76FvdKZWtjS73e2Y6Pkg==">
+ <question id="0">
+ <symbol id="0" c="IlR5zalP9073AIP+nTEjksPJg5AQyAi5N+uC+ZsWzM2UdaanORg0EVlhkUWnGOzrX95TJH6gS3yd5XKS53v9GA=="/>
+ <symbol id="1" c="Qv3fJqT9ni1pwR2wsQGUIYPKuV2KOHAyRacrm6Q5sY5MmRJBpaeLsJR4f7bvtbOSah4pwAbV+c8o8fGICelJrA=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="WRDzcJ/gE2AIb7/wybAgeXbXWmVyqSCPd2Fbhk9YF5aA3ahoqZJozjHef2ie9hVIaKiWrWdvWyo2X0goKe+wMA=="/>
+ <symbol id="1" c="KZjn+VfFZ2G8hyd45OjSdlVfrSZMoWaqjcYb3P8w24Pz8InfCN9XbMx2X5ixNj6NxQK+aCQ1dLCbamlSYBsqzA=="/>
+ <symbol id="2" c="dtqBS+J70C9n/6dvcgwCZ6Lk0Uc74XHlWamttMh34qE3PpP+fj4UT78Ue38KCuxdGir4P5J27SUjvEhIKOTvDw=="/>
+ <symbol id="3" c="5BiZ9ecSj/i+hZCPrg5GQgIahwkgMQXdtHuOQCQXgE1FvxgHe32yQRNhTuCqBdEPzUz9fq5mWWYxJn3EIwbtdQ=="/>
+ <symbol id="4" c="MmzIXou/B9mGxLbRAS/vCOX8wrOF6QGzRPsY+TPNWFsaoE8rbO6dmgtVGsIdvIW08r4L+YdguV0Nt7sD83rV3A=="/>
+ <symbol id="5" c="9xAIAmUd0VIZwpS56HenDcjTmOxlw04lQxvU3gmDwaJA0Qqlf5ky4oNzWb6jnv1Li1No/R+N6Fjz00mnBHNgNQ=="/>
+ <symbol id="6" c="MKY2XjYh0Rm0QoW2orVmlaJea17jRrniQten87+CldvvJ7Kb+uCrXUQY67PWdq7lDCArDIRbmsqv0AfsAbkMuw=="/>
+ <symbol id="7" c="jM6YPKm8okA1Cq4NSAm4zde7noSJ3sspxVxCiBVjGWn3MirUEzUC3scA3kee54kVpmDT+Y6SLQUTp2Ktsf8Obw=="/>
+ <symbol id="8" c="PuktjcA6C+obAEMIkmema0lowbpQDKt4DS8Yd7JlH7emKlovrwxTx7QjAo0anzr7LOsxURCiKaeu/2U6jMmoNg=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="75Ut4MaaAqMLhIxXs5TTx8gU9RbRkUk0pOrHpOoohMJ7g4OrjkP0dqp6CQL0tv0kvr3tS7xgMsj2AZQ0P0u8Sg=="/>
+ <symbol id="1" c="dgVlChUhmzvcMm5nRlkQuheyDFnPXsV+JIO0I29sH711nY3mcjancKv9yaLY/cKVVkZ9hS6NysULmwAXckpx7Q=="/>
+ <symbol id="2" c="J6cCNhilB07sQwXSFD5zL5W1RgOucn1kd2rk6wAAlAdZ6WowkqOcWCQukSvJacB4P7Yag7yCJxOIqRshBY36cg=="/>
+ <symbol id="3" c="tfnoQL+8QmXbEWjbZff1BX9Jfgn5yd99DS1mGemZqfFNkQI1B1vINxdInua7JwFICtHzlvWj5EXr5rnwVglq5g=="/>
+ </question>
+ </ballot>
+ <ballot pid="4" barcodeSerialCommitment="SmTgBqubWZCRAGrq2DWvZqPbdezrE5beB2qpInhYOHt7ISqE0qsrL0qFsI43HbJ/f4LbUBcRpFu/opL2mRqxmw==" webSerialCommitment="DVrwynlc4Q6RJ5qu1PB50ThRVHCgBhl9I5Z+DcFuk1jMXtIw7i8RpbloLdVg8sTzwD7q1piVfTvUL2O7cKn0Og==">
+ <question id="0">
+ <symbol id="0" c="Okob1pK2CZsf7qvHlRhucbWJdKdcEZz30SWOey92k+WKqUvNcC8aP3+73haei0i8DWWg8FAQzO6Qnm1Jgc5TQQ=="/>
+ <symbol id="1" c="heDk8srlb7ELPrsO/Lx7+UxyHsDvCgNuAB6lIcrfdEgbzrNygeYJS1xcIjgIMj55Sv3b0rGdTmjN+ovyZaJvqw=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="eRUzWQR9TVCsVmyz4diYU2yTBi0Wdl+MG/iIXCesmQXD3oetb3r1x/bp2eDI45ddiDLdtgDlNcxr/jr13f+3Sw=="/>
+ <symbol id="1" c="dzVv0hx/vG3iPyD6OM5urE6M7uSsbe//SFm7gQFuI5p3sX/wltxDfRayY+Q91wcJgZWrigWhpAXNR2JlYnUAaw=="/>
+ <symbol id="2" c="MYM73d+isHmpsfFP/bVh5p/qum+GvakJiv10arW0BobH8kqVspC0fGU5kV1EY3q5RygHm5InoZmXpURMAtqeYA=="/>
+ <symbol id="3" c="7rLN+PM6Q1jpLrmZ7ah5egln8YeMCHXXzGZH4gqTHdOVYbFktwbb4qZvFWgpVya5afnTI+sAr3wWSenKdWKMkg=="/>
+ <symbol id="4" c="BLSI/zzTgghtUXBQnY9ORxfl1ue3/kYJT0YfVGblGYbqcyJ8lVluDyI9OJABef3CrcKSoo74DYgDVhuIm1pSpQ=="/>
+ <symbol id="5" c="PHGM118lbjqvVify/ylewnmp8Fb7LNN9oMQ1kNbO5r+CPBNnvLBCoOMR1ZhKICAHvydUZ4L2Xt6SKt5MwnjdrQ=="/>
+ <symbol id="6" c="ilZw3slE8SnxnqV+KcFbPZetZJNHsFQ6shj9/oeE5OI47ecRn6NRZJEv0jIC9JXHDSp5wuEoLlAz+mc+gt3zpg=="/>
+ <symbol id="7" c="Ha56MOHsxp4mkNcjCArIIcmRfa0NezlfZg00N6ioV31oATPPfauEvbzWZNISJsewRPWQWKNv35TZU0NJuo968g=="/>
+ <symbol id="8" c="SRGaJW50wHWmDRXP6no340RmpbP8WEp7BGohAeeWPt305B0IJ5gI+GAT4+FWUTLBc818Aafx8fO9nGgIbJsQxA=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="unOfJY1ZrgkPoUoprbrCpZMWQneAkGXs19/lAX3NuShiUAOvmshyHag3sCbUvnLUnqXZWfQ7tZfQD+IT0qbfBQ=="/>
+ <symbol id="1" c="E7B89CA8yccI2t21FHq+aaJZ0FpKTxvs27VUSZZqerPHJ4rSrjm3hWa5yPg1p7fQB4YI8pBzoYYAYM2DD3bHqQ=="/>
+ <symbol id="2" c="tY7lQkvvveflySUfk4/zLhZGQNH103NxkTsRsjoSn5UFj7CO8t91P7vhL3MhVWQAre3G8Td1h6wO8/fCQRY4CQ=="/>
+ <symbol id="3" c="wWujQ4Iu201+7cW3D+Z08gwWc+8kOSXZmKLOKf6ajz0Lk8SqYH2EyQFk9x0i2F/zC3ccDA3QGzrbBAnIY/rDew=="/>
+ </question>
+ </ballot>
+ <ballot pid="5" barcodeSerialCommitment="dOT9/rMGNxX53U7MylIl4Yl26M2Y8Fttk/uFx8bUtRrdMSfuV8kWLJtsHmIWn0DdduW/kFXUBpQ7c8SpFOX2og==" webSerialCommitment="r/K9r+qLvL4+9/UqeBMwL/iO58Vkywnjds0uv1phO2G8ctG5oNuZD1AXT1kJ+b+/Tk0OHLnh9FMDx8/Y9UnjMw==">
+ <question id="0">
+ <symbol id="0" c="vp2mnhPWcvLR8wRRKoC1PkCfCirLFBXGmlG+/Xf2kUp4zDYBpNPCeYPo37mTKJyiMCK84dSfsg53ZqyAzghrCA=="/>
+ <symbol id="1" c="ZEtnzH0Sfj1YOsryUsEXtBQ9WZsNXiHL4OA/hUiHxZQqsrik7l0sybAxvohWGGuTD79/EMOfMMcO8spDfouG1w=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="+w6uCw7D6Kv+uASQhDI5QJkdF9etoivAg/Pq6eT5BBmQC5WZ6sSyUXsOAZbJJeK/5jTOJb+joDis+xH5OGfULA=="/>
+ <symbol id="1" c="lXwyTdGga5jzpch+NU+V8j2iZ21P/aiynEi4tC1fOjjBvgN3yYX7wbInbS4VJA0I2RFrCZ6ESnbNSSoY4pmXdA=="/>
+ <symbol id="2" c="3rZoDlpSAqMJyKuPmyXudpW1OtW0I/uoymz9akHQhfkkn79h7g9l0MzgTGWiDCU7fSLLvEGFprSKqLlIPgp1bQ=="/>
+ <symbol id="3" c="JxnOFN46WZTFrlp6iaGLKw/kyYZn4TyvTn6l4CGX00IRNJtvAKS7ZFvItXGUBVVSPx22NzCcvr2CeFwZuVNCUA=="/>
+ <symbol id="4" c="2A9xcHsROjnbyvnhG72/o/T82VO6ETZ4ZeF/QA3h6blvxUom2F5bjCn43gEVIuivISHtE/Wdn4njmwGadThNSw=="/>
+ <symbol id="5" c="yQSIKdzJMOimj0Yx8xhQ7OY2xvFGe2tIDAShwSGvLJ5PodTl8LOGm9IKO4qUwEHK/vHDaoPll08l67+adpeH4A=="/>
+ <symbol id="6" c="7/J8i2kPsLZDQ9T18xEGKPh8P7K8czbcUMO+OfpXQERoYFXUc8b99bAH2SIUimz2jK349vLpeSk00OdNFjHT3g=="/>
+ <symbol id="7" c="rwSk1fbtBCn6qm2DV+nKcvY1drgCJ2jNjRmegA+5sOlTEVG2E6Q/GLNPzmQqPWuOcN/t7xLlst49uOpD/NVZPg=="/>
+ <symbol id="8" c="YvIhMp9QbI4oaq+27hMLZJUQB7Fz6zIrFIkcrjZBasc1Ryfploy6NU1W9hW61xePUVt1Imf1PQZsDE3jshIglg=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="APSy86Ujs+Ei8nNxL9isW7q7BibE+obAyP4NHge4LrgXdorWNHuC6lWqOgpuWaRS/Q+f1AKqpvp5CHl8OqBtag=="/>
+ <symbol id="1" c="7pEPWSSWfPJtzv75Jok4+CkISe40ZYq4+zw31tc1n5R0SS7K/ocGTtBrgIXnCoAfUMsh/li2X4mRsLNxGv2cNQ=="/>
+ <symbol id="2" c="fXzqoavb/bLbTNKxQYF0OqDgZN5og9aP29FBHPwkXFn363qKcMinbuQ5LoX1n374tolTc4XgUFLz0UL1pLnt5A=="/>
+ <symbol id="3" c="QDUACFmOuwZwU42kOx3j1jvu9t+IEzK1cet5itmmkJjb+8UHSbBVRJDs7nMWvCpHos9j97cSYscVX+6R5E+HWw=="/>
+ </question>
+ </ballot>
+ <ballot pid="8" barcodeSerialCommitment="yz9MHx4f63Tnl7dfAAlvyK3V85E7PZw4n1CINlAIOU7iUm/bOEO+aaMEuR1dzViiIPQ0bHOXfA69KEyYckhRRg==" webSerialCommitment="kmcSNeqeRw3A/XTDqS+sHF+aZjYTsPqOhQm8YqsPcBEDGWGtpTJga6MkzHaOuN1SFwL0LvXxhbvKfDSSc3irdQ==">
+ <question id="0">
+ <symbol id="0" c="4DGBxcn5cFIJ0HFxbduGUusv8uT3lUTQ05FrS4NtF+Rj279riEKOdxAvVrK5/fZEOeIijtOk0jWh1kQ1c+jWJw=="/>
+ <symbol id="1" c="GdEtgw8Iw4ewiRc/s8RezV8VWaCtwfPk96AZDQgcpua9x8RyM/gZe0WxlDj+oRQnVR1aLmOs6uUprH2gIUVemQ=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="b98Cff46kO9zSxK/qoq7489wl2zQDhAuk6ftSjjdX3VV9lHTwxhEeV7aPP0UjD2LiwU9d1Nb4ATT7oeOWQa3fg=="/>
+ <symbol id="1" c="61tpye41glb8gReNKoCYW+3YQvbphj0y7CLwaB6z2ueVzyjWq9QGYQUYNEWpACfX/YbF7Oo/svDipk1LAWDe9g=="/>
+ <symbol id="2" c="jykzuE9Ir+2opOj3Ci6CauIVz/0DdIB8LxogjpxPvRtYUMNVVSC2AVFGb0gKNNaZsqb6OHblcppsasbUWC8VNQ=="/>
+ <symbol id="3" c="O/WlkXrbVUdVv6Xaai5RSY/+mF5bVCZReGbxZ7Z/bE4yP2N9Z1mwkK5SsqqQ3O4U3aH6eNVvt9Auv7sOuq4X9w=="/>
+ <symbol id="4" c="/EA8YZSYbjsJQkNxC7Piaq6mES6FuAoXpsWG39H1wk8j54fLgrNQAYxAtYgLv3j6VrsCqaSS6pcGV2+3UCRbTw=="/>
+ <symbol id="5" c="p0gEAYzFUdoinLBwMBAGSC+Yz+25ZqKKjDiahcJSM2zZgmScMZ9xHXSJ4FVdAXuwbwKSneNtszcNCmy4+GYewg=="/>
+ <symbol id="6" c="WK4baOsOyFPL8NH/vTLhS1h1MrEALoREmWaXCLpKWHyT0T3s80dEFTmMklGQ14zFYKSFs9leH/nnoQZ37+2HJA=="/>
+ <symbol id="7" c="FDH2NKurvPTGdHFzYE4PKrh2bqOLGT+EKnh7nHTP6exoo8CDn+aX+idQyc662IzqpsYzjkytDjmX2ohVQP0e3A=="/>
+ <symbol id="8" c="ZXyFpAT1xixDIyTfk4YTjFWfs9ZUEFy3QyNQAriHTmNY3on+amTP/+YXU/o8FxMe29xQmXigRSYrnkJJ2QmoAQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="9u8n1L3JqW3l86XYKaArVoyqbZ4PHGal5ViKR6CwUVLwzW6D3lKlGaDVTv4np39OGiAKRY2+g8REcFzt7aCI8Q=="/>
+ <symbol id="1" c="LL8Ou1wgix2j3EUfjRhALGFa42YmXxHm9zUATJU45pz9c/MMetlAFjjB+ZI8BuxyCnJcjnDkp6C/d52i4LoYmg=="/>
+ <symbol id="2" c="9Sm8hvBk51Hda4cO6/sxN/DigLiHLXIvT1jpQmCPKxSam2rWdFNEHWJ7a9P3EWAufEpxlGH3/Gu3ijXGt3PB6w=="/>
+ <symbol id="3" c="PQ+hwcfKtCgrPtsM0frucSOAJHfsLsyrG1e0IxjvTmwsZavWDZrXPbrHWWXhlKMQWC0FLm9n9q4jIjPn/jXt2A=="/>
+ </question>
+ </ballot>
+ <ballot pid="9" barcodeSerialCommitment="D1HTFLOj1l5OLZyMGAB8n3d4eWRjyRWjTQf00jWlvo09cKbZMLLcDCwbq67I8TREyziYJTDrgvbsuTd0BKQ1AA==" webSerialCommitment="jzvzXTi2ZqQ11EeNONa86qrvY7N1jvwOnbqSI2eNCrvbz5FVWhpVb1hjzY5pDSVE49I9jUWomMKLCnn2Csdq9A==">
+ <question id="0">
+ <symbol id="0" c="40Q2z38xN89GDiLsFIHd3RQlwDItwSr7aF4TuZ7GOWWBKBNf1NMmC+B4A+4boDjQdc5l3eRMgyX+qDp3DUbiSA=="/>
+ <symbol id="1" c="mAZd/OFjUu8zc+I2dAzR+b5Glan772fDqn5juixcUcwLrhR7olCz2YIqXyFhcPPEbeeF/FOS5VoN5T4qVicdZg=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="Jqt5jOFvofZz/lRLl9MiX//hitj3bRlF4Lo+erZhLiTrkJLqQeXm8rpsjcfWBWVlsOMwNmBD12H0Hgje4FkiRg=="/>
+ <symbol id="1" c="S4+hKqPc9ipELtU7aidHBVd4L6APfygxh7wyVt7Cj0tslclMjirFIruw0a0N6jW4ZXVPKmTDGtt9bNkiiKcBjA=="/>
+ <symbol id="2" c="KGq29NQOodFKheA4EoRZ3ZiECiXvKPecgThhQaj32Kf76u4+IfajWDirSvU48Hg8L5xR3pZkOK4bCKgt8hoNjg=="/>
+ <symbol id="3" c="v/Km4dci+cg9625+gCyv+xlKKr6Mc8FW8d0ek9ZMkV7FnaC1+oT8u+OXVYV220tidFk6hxH9Q3YbkJ+WsmqRtQ=="/>
+ <symbol id="4" c="hOBSxdtMf0havYNOw1YZe9Gjf4xhAm52oK9buD/Dq07oQdKzF43uQEp1QT9awR6mr/FslE0P9j1rHOsNEwrWPg=="/>
+ <symbol id="5" c="60718J9edjteGSYJwDP+B+6TOnjs3iKTw/JvqfJGTt5RIad6BVIs145dX1Mv8/gfzc8HYtij82p91txKur6Y/Q=="/>
+ <symbol id="6" c="lkl/eE9JQFwUqGbi8+g09z/BVtqLQ6xrdMdInvztRsowIYGbq6x5I63gFF+YZULlVdMYN8XycvKacKERWbh0NQ=="/>
+ <symbol id="7" c="wS6ZLpNeaXW+DRdKFxpRalwty6X010KUmrxdPacCHAwH2Ed21s3oDiNbfL2UZz2BJsrHbla+uqHtKq9FErvP/Q=="/>
+ <symbol id="8" c="0Pg4uxyTlCmBvXbluidLXKG8pzIaVDnV5NgHpGyDSP58NU2Ox3JfuUKOFJk0wOsgv5mzURPC9EzM3pKtMCyOeg=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="oqrrXgja0cdBlMCfz2EFbP9o9JEgq4L+y2BikTfgSXQW2SgchTGNMPAIZoPpB+JB7kccbDo98CWew6a7jEeDiQ=="/>
+ <symbol id="1" c="SCxM73hRFczvud0wUzJ/8rU6FqhlvK2KBJBEZbOrGov0bfxE2Pa2ghpxbMEDdF3BSLUHTJAuL+nE384vOQYhgA=="/>
+ <symbol id="2" c="hD4beQsREHzNMav5lZjR2HTLOAZi7nbpGd29TBYdwL0+l0ADiU5d07QAbtr6AmW7MVRCoqctMYqSL/AnG7x5KQ=="/>
+ <symbol id="3" c="Yj033/EiQ3PylI/nSu6JLdj0/ggz6oqfsatM5eftADIDzf/kISJzh4j8jGXudsCKVSj6g7hE7p03+4jMvQP8mg=="/>
+ </question>
+ </ballot>
+ <ballot pid="11" barcodeSerialCommitment="y3Fcb0wS9yKX7xs9rao0sRgPlzE0PaozNz8AmmRxv4sE79CSlXyiMJkeKRU9Y/DWfeRgcO4/jOHUDLF2ARv+QA==" webSerialCommitment="lC7CzG8YE9sQR1ouJ9qyw2A1ZBmFB6XZ9SpHi+GGFrnN74c3Vc48q0TWMfkaFJgORpA3j8oIvlt6VyvoXtIGuw==">
+ <question id="0">
+ <symbol id="0" c="R2qAQtzhpwLT4btC91tUkKdnrd5Oain/Ec4iJxtrroHA+m9zMKBYftbpn5jThjLP/EUJvKwylTDFS/PT3xH9+g=="/>
+ <symbol id="1" c="Q8Xjm6dz4LdczafJMiqx4SRXgCdG/5nAGSWZRlG1tKLjFedjDTs1GTlAXL6rs3GEOhOTMn5sERHcz/DF+lxE5w=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="SqBb5blAqT84Z8yO5JNhpiytybP5/zvEvT54OVUx0XuX0uAgjkibKJkNNzHhrnsLq8sxSvEbQcfPKPUCSQaA/g=="/>
+ <symbol id="1" c="Jfy2TJMbRVNgAZ1duk5J5Z4QJan+lNzkksW5fdL7E0bX0Cv3SqFRvNM5c2P8/HMNieHo3V6wcvfooJumr2Elzw=="/>
+ <symbol id="2" c="EuM1juohpYmuFc+gyH6B3yKkeXTjtZ7s10vlUeABj/wylEg5NkLwhhWIduBL+/i1R6Ee7sQyVaW5sN8TZpqc2A=="/>
+ <symbol id="3" c="Gb56E9MfXVdOqlTD1dRi9DxWlB6ScSuVzErgTHDiVmNJ5hTVcN4pvw8Y57IHMlmGzeMPSRvfrj/uPBk5O3sfKg=="/>
+ <symbol id="4" c="UA7sbGrynvB3ypcONqbO5EIGazb1Xuh27/RWkUBJ1xux/ea4M31nccWdJHtedsUgJT6Y4cYPwYilDAt51WAupA=="/>
+ <symbol id="5" c="MoBP/SAeefNnBQmSwxeNndRx/8t91iEDiILEdQQ5MsP0up0PubExi0Wc06nlJl5qT/Jk+yCdK0HYp426aSwZEA=="/>
+ <symbol id="6" c="GVByoCZXj2yE3kk5iFsey/Or6ZG23tvOgXcYoR2AYCvrCO9cmKYeLsi0Kw8YwAos5jW7b1gvD02Dcz6c+Udk7w=="/>
+ <symbol id="7" c="KleTt6vS5CrmWQafmYaO1NPOW0a0TToTLKMjqgXH3EH8wwdN70VZGOFgTcPGZtDBNB1DeCLPhaUrEVr3N/FQZg=="/>
+ <symbol id="8" c="tAn3Vw61t1OLohMXmYDyNHhLFHVBTb57mzQS1WLdeuZvJ3DnboZJEGU5UOZQvAVbatpB+STZtRIfFwxILi9diw=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="VhPyJa2/MQ7NwrS2tFUQajmh4fpnlzpdmgPAcjTF+obUin/P0jkMjva9tWYje0u77fjO2Y3rKZ8t8iyapKYZJw=="/>
+ <symbol id="1" c="OplfLJF8m4kxRUxDvrKBghgrLvhKMyDzl21AGQS47qMAU7jgrfgfz359O04vd8fsglQmaYfs+CLcdlJO6NgrvA=="/>
+ <symbol id="2" c="nVz8IrJeW9QGtrNs7Up3HC/nBNNjMGwPdi6pb7X+Gofkk1JQgewvLHOH7jmFVqSRyC+5oiul48XGw/dPp8XDrg=="/>
+ <symbol id="3" c="nvDFm46iq4tzReNZhYgwPVBj1h9KY+k4ZLuDSE0QnfMeaVNvO6DPqoFkLry/PnxWBtW6WGz+cnNXd/s6EBMQ8g=="/>
+ </question>
+ </ballot>
+ <ballot pid="12" barcodeSerialCommitment="ehBEb/WvCEbi5eyPqy9nr5vCpp/5UGyNlXvkWHTjPatf4Atr7LwlagOR9+zynZl/isvjxZrQrdZfJ/ReLCcVyQ==" webSerialCommitment="IVV1vHgiL5SF1QCKuUk0bN4+iGSx0RRQRntwDJkUHOtoapsWRubOpxu9ZUXZtHd436aPh3KQGte+KyGYqYazAw==">
+ <question id="0">
+ <symbol id="0" c="i57uOvBxMGGEPotDYOesn2Dkw+IvVKUaDiqKvrasr/pxL3E9d2oLzfOgz1eqXlXUIXpvUM8O0gcTHV0vZCjNyA=="/>
+ <symbol id="1" c="As3FOOUNP7YklKAdhvPfuzziM8WZxeL5t0H+vzerFeVQ5Oew2UCU1d6BTS+mmoV1BESh3YRoZkPPBne5Co+hHw=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="dAwDpTmfhHiB58QsB8Av56SjrrjFh/TPJ+Ct8i+s9KW0aeA1ZbXvwv/TX9bYnXhAc6papvjzuzoDvoLFuYwrwA=="/>
+ <symbol id="1" c="gm5vhSkRpDExRrbX34i6HH485AlVLT9tn0zFVpfiiHtuoigfz59j8bHiewvZ2bQT931DNTAC3kkXXJbmUstOVw=="/>
+ <symbol id="2" c="2M7CVZQObjIF7razOcBNpLEcz3w3OAUjOElSf14jFtMk+vLobue9iN0ALVJLDikJmmv6klqrH0niZ2U6Tw//Eg=="/>
+ <symbol id="3" c="C7OpG7y+TRX8EYyuLZfV8RtpWGJ1Lt8vJQrbTGnE9K5NuSG+mL0ey5I3vUS0XZpD4rHnF4s7Irh8Y9VJbbDZlA=="/>
+ <symbol id="4" c="HjFAmy3KtnR7ngWmsp/MP2yh/OEFe7l4UeLahBq+JfP8lesiinwnUCw8sQw0leuiS8/rJ36/iBT7FnVD4r1tGw=="/>
+ <symbol id="5" c="D8N2/OJDzrXwMERMkw9/chsEr+0xU77myzp9JyVA/qG1/JG1XjOsB2d480BTCAflJYWi1YAJ5caV5FSpNvHEhw=="/>
+ <symbol id="6" c="opt0V+gNZL3vTJSfg8w+4U1o1FEP+rtwncfccWbniTnZRtVA0tBDfXDYmS6WySlU/Xk0AX8jbU0hBgd2k7QauA=="/>
+ <symbol id="7" c="+PzYM/hNrHznfRSPAf6y9VTU6rK6tC7HT6m6jyOn/oK5mEkk14AcaFv9g6tw1NPys1unP5nb91g81Begw5PeiA=="/>
+ <symbol id="8" c="omgLzEvAjM1QUMNEP0mQ+kKhrc85FTSXQweOzU/VCNoTMaB+P1b+zsZxkMahzPtC2z3dGmkaivyHJ5y2XYop6g=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="+E7uxaBIPO87py0hvk4JwFRftoiSL/FPRmAenY1VdrFZ23LA+Sx2L+NmLPt1/RSVKsa8rjjhgzZ9vbRiiV3c6Q=="/>
+ <symbol id="1" c="VY7CLdYJxPrKyiB3eG6foWJlz3fB/U0NJSkadPqmPV0TYCcU1WZajCn+3WOyTc3cKQIF+6BHFxVAaSk7m+nUOw=="/>
+ <symbol id="2" c="Y9yG0WZSh+UhtNqCjvDNsONQc+BpcPVHPCdHksxXfYIXZE0F8P4FiZ3c9p406lDG2DTuuiQV6hzw0w+DTyYidA=="/>
+ <symbol id="3" c="RpI6yw6C9VvUtZ9MThcm3WqtIBQzW5MolLjam3kG1tMCtOHX5E1w5/GfgAC8/MKLKk18uP4uNZdhjrRwHb2Q6A=="/>
+ </question>
+ </ballot>
+ <ballot pid="15" barcodeSerialCommitment="sE7n5Fg3qPLBvjQ55Ev0f9rIY1pxaHee9s2KB2TrpbmJZaTRJuemEaKXYdWzTX0mMBJ29x4askLI6IVVTdFm4A==" webSerialCommitment="vEzMSMbs8B81S3JVRlBlIMjhFPoLFSD65oI7HRsSoJGaVX32tzN5hcqfxzAV18yIphUDk8Ech5tbwotsj840ZQ==">
+ <question id="0">
+ <symbol id="0" c="8nvp/WfncP8MZ4RiVTeAlG5Vrr9QJzulRbVTSCHq5u99xhlMSDcs0wEl/wQLxwMYEJmCuGAd9bzD5ZlmxNjgUw=="/>
+ <symbol id="1" c="DpDjxC3aIPj1kOSngChjZfjWi5quNtJ+rCIoj3NRKHEy869IBiIcO0dmrjgmTG0hMEj8idfIQhn09vXoyVC1og=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="ybsuHGbkiWLUfY6u4sRrBWoaOmuLRmepiZFp6QcxRNgEm0/eAZ2T8peu0OLgee4dG/sayVFDFAq/2U0947qU9Q=="/>
+ <symbol id="1" c="TVtM8Cz0960uqaCDmxatqnqS2xIP7s5fGdYE1uUu22q6Ym73WPnekJ6bVodz9TLkqES8BLDD9SbbzJUmGqYXsw=="/>
+ <symbol id="2" c="/3LlOvrU3aWQXri3la0FWTnk7z2lsUeFg3vUbDBclz70AgIPPZgZglmrLmLT9Eb+DjnilgXFDuz+17Zp9gJs2w=="/>
+ <symbol id="3" c="mEqbFLsfUAfjTXL2komQrVAwGA7KC/4OYGuT4S0VAorhTHAACWsAwpENj0TT4OMv6wQIUIxjyUsNsgGwPH8gig=="/>
+ <symbol id="4" c="6hWOLgsJpZ7cDt54KxFWwA+s8j4+7Y6e8K59DDJymXFKEwgeOUdXFL0YSWXzMEx3VcBSSRT8E9V8K6N80dToPw=="/>
+ <symbol id="5" c="F+ELCFoDczwuLLLyX2T0OOPtMCwSxrkoqHNA6a8ljUoIwaP+tKpK8z8xgy7Cie3CbNFZjV/CWiWRsVx4mKPRgg=="/>
+ <symbol id="6" c="kAnMuoEKLLP7ZuuOLJM5PJCpg+ykpkHd38DNtaCb3mvOGw3Z9OBLWnuZ1N7TSqqcLtitEtGrmeovPlZ5oBthBw=="/>
+ <symbol id="7" c="l7bTbwgDqxrIkeWP9BItwve1z0UE4mQ8Kr6QKjNuSFbcoapZ1ughRCpgN+ED3Zjb5Ter9ZknXblEwwSgFweRAA=="/>
+ <symbol id="8" c="lYJWsiwZS1/DHaRYLFai2ICqE74VYcNg9TqWgHQjvmnP5xyW0pcSKxLSZDpRdVx2ndHcqM6SvWN6XqI94sesGA=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="lv1RGVtw2h9kwA0Oon4v3FtFIsfz4S3xa3MnJsj7lx2rbqStALDf9hV8VjnhEVXWXO8wogwVE4iwo6oM4VV/CA=="/>
+ <symbol id="1" c="6lXbhOaw6d8e3Xa1FrWjwsgOuIO3cJFvbjgO2xH9Nqs9vlDjqYy8E3JLNzkBnKdDDbSkBdurMu/w3xZtfUkfPw=="/>
+ <symbol id="2" c="V17Uxyy/qCESITND2e5JXhayIz+ACHic6LAh7B28ndYX5m8xGt1uH18w9Vq2hCD4xe3brexFwZlcWBcWitgEsw=="/>
+ <symbol id="3" c="cS1Wb3bWWptVzAvioWUwc8q50wmhktqa/qTf6U+GEyKo6rGjcbqpaPzs8GLQH0fIdC+9obENggnL2yaRwM5mAw=="/>
+ </question>
+ </ballot>
+ <ballot pid="16" barcodeSerialCommitment="p2mxupPwxEP7235qpEQo5cw+OdSjUvdmagJ7efFyb98zv7EyKaA5Km+zao5F8kmrSs8Y4xHDx3p5IjFdT7ujvg==" webSerialCommitment="/YNuI1VmknPvB45M8Ef36qA6WqRkoH6QN4KlQKExCDQCUkrfGsKzZRbCpxtV9h4M6/3oCWlU61aQRBGYo2FdCw==">
+ <question id="0">
+ <symbol id="0" c="5ushs9UIZfwgRtXSMZPz0jIL0k3F4W98KX1q9fb3AeC+fBUh6J6i9INrdEB59sxn68+Pdydv/d6/wZq0tVVWYg=="/>
+ <symbol id="1" c="lFDr8AL+MxvRET7WBeBi3rebfb0CvJq9Dajd0YrQ4s7pu3ObigsIxh1/GAdClk8FKZUM3akRz+54DCKqun+G9Q=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" c="DuMwBvNJ91nJZlDjnlRnbQK6TG14wFwKGeUfTlyTZ7zH+w9PNlzK745CXHgiU4dGc4vjbLNf10cJ2+RS9XdXfg=="/>
+ <symbol id="1" c="/0yFtroUSuoXKUOgpFvFX/3KPkXMxiBV9hOgPWib0w7H2n75jKYzcwBR6/pX6qCBYXrNXUleoNKRCdYXwN9ZIg=="/>
+ <symbol id="2" c="JcBAeGCKxNLUtH+E18JRew/N/vZuj+GTjnRODWaVJCuHBeUDO8vN7ptf6MWpiHoimBYK38A3gIQif4CD0sV6QA=="/>
+ <symbol id="3" c="G890loVEopwEf3Kc+7Q06GB69PQUucnotRuJjifHErAgZeNeePCNFsaiL2uroeeH/1HTXYx1sScTOea8Wxupkg=="/>
+ <symbol id="4" c="TcSch7Fixc3V+r0ATjIaLiLYKgSJ4yDj+6xXBLnLk1WKNe7ePxm4VKTICcqsda0gQdpiVKB6OvcKgQxBD0eV7g=="/>
+ <symbol id="5" c="1oZm0mw9x2wTna1p/ww1jEx2oAi0KZ4Cmc4R/EovIyAWV5I7j32WhCUiNCIHxyrr/dCOtvfnwHswO/GwLCBtfg=="/>
+ <symbol id="6" c="kmhIS/d6aGkUECvjNERe/CdsoxNCgonI7KwPNJ4IMrDBbsFj+wky9v0z+ErwwfOcY19DFdX/14k4ceIRkjbEBQ=="/>
+ <symbol id="7" c="slxMAYzZlXxh/sYHhxwqEa5L9wGQkAo+oTNUoMjuyjrfbkht0QrGKvHosB3PEglrcRXRdDczXe4HVfpo+22Y5A=="/>
+ <symbol id="8" c="tNTrJdRW54Bf2+WqmgPPMfRS4JkFaNO+2VR1wViIpVhAeqB6oHMxv1UZg08YIfUPvB5USYI8BBk+4/OT7pEFhw=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" c="fP6eR1e1Ro6JwgWWY+gHTWcTac4dCPR+mJgBxUczvc7tjDo+B5inu7zkv90/lThjLRBgEDyhPDYW3KNbwGFz9Q=="/>
+ <symbol id="1" c="i0/+Pa6nsvxNTf1NhShLZ58YirtV7AnpnMjLbAFtk4C8KgvLaMjObmEIMaxu9UTyZPIq2gfHBKGULujO0Eh1Cw=="/>
+ <symbol id="2" c="CYMV4tiXGw5iP5t5hQQAkzPTXNN52UdYOotWpdege865UZ8GTUJhxNCLzqhkEYyN3/IMvblpkbh6vaScg0gP+Q=="/>
+ <symbol id="3" c="zhRyEOJDScpVgvGRtbMjC/r1DcdMU4qJoY42ypFGDVtftpNI2CNBQIrTH4PMKvkBiduSPSoq2Dab0cC7m0XCXQ=="/>
+ </question>
+ </ballot>
+ </printCommitments>
+ </database>
+</xml>
View
14 testdata/PrintCodes.xml
@@ -0,0 +1,14 @@
+<xml>
+ <codes numberOfLettersPerCode="3">
+ <code id="0" value="0"/>
+ <code id="1" value="1"/>
+ <code id="2" value="2"/>
+ <code id="3" value="3"/>
+ <code id="4" value="4"/>
+ <code id="5" value="5"/>
+ <code id="6" value="6"/>
+ <code id="7" value="7"/>
+ <code id="8" value="8"/>
+ <code id="9" value="9"/>
+ </codes>
+</xml>
View
144 testdata/ReplyToContestedCodes.xml
@@ -0,0 +1,144 @@
+<xml>
+ <database>
+ <printCommitments>
+ <ballot pid="1" webSerial="4-606082" webSerialSalt="z4GyxH8zh3hNzMHYXsSJSg==">
+ <question id="0">
+ <symbol id="0" code="972" salt="k9ujv8ZF+pEISHKuLHibbw=="/>
+ <symbol id="1" code="122" salt="1GmZaviSvF8Zpdkeb8R9+g=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="941" salt="uYwDFyeTc0/NhglrlSNGEg=="/>
+ <symbol id="1" code="962" salt="b0UhpB75+Z9ohf7ARUGyHA=="/>
+ <symbol id="2" code="928" salt="BaBHfFeiABcYjsgs7IEgwg=="/>
+ <symbol id="3" code="572" salt="2g/2qJ3QtL3UtucaqpM36Q=="/>
+ <symbol id="4" code="522" salt="FVpEVUeOlZnfirSDU2+noQ=="/>
+ <symbol id="5" code="000" salt="8/gLpASHw3D4QI0XThSx1A=="/>
+ <symbol id="6" code="935" salt="X14Erm/6igbdRxXyc47IgQ=="/>
+ <symbol id="7" code="089" salt="bwyw0qJAuS30YG2zXR4n8Q=="/>
+ <symbol id="8" code="957" salt="g+QToL7v7ka94XiFDjZokQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="264" salt="G7BsGko+1D8MnGFxIUjSNg=="/>
+ <symbol id="1" code="904" salt="YsuJ+qx7u+GrfXNbx4/XZA=="/>
+ <symbol id="2" code="343" salt="+WkBf4cTVocLDjLgLl3xTg=="/>
+ <symbol id="3" code="792" salt="j5JajqJbSCpz+La/pxEd4w=="/>
+ </question>
+ </ballot>
+ <ballot pid="3" webSerial="4-429942" webSerialSalt="tgsAjavU3SjgpicGwkizTA==">
+ <question id="0">
+ <symbol id="0" code="981" salt="JQg/LPyLbsPmwBzHdDI4FA=="/>
+ <symbol id="1" code="044" salt="WseXwjPhH9oL4HRpEtyLGg=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="917" salt="ARqsEH0FvKwxx73vhP5JBA=="/>
+ <symbol id="1" code="574" salt="iQEWf0qA44Le2rRSoQi1bA=="/>
+ <symbol id="2" code="896" salt="uBUjztRsYBRRoNgdsYfNFw=="/>
+ <symbol id="3" code="979" salt="FUx1LrCA0SAQgHuzzJDiuA=="/>
+ <symbol id="4" code="886" salt="c5O1u0eB0sQZXRaqL5eMZA=="/>
+ <symbol id="5" code="911" salt="y5Hhvlkc9Jpr5C8evTQv0w=="/>
+ <symbol id="6" code="957" salt="9UI5+tJ023rGgg+e0QKMKQ=="/>
+ <symbol id="7" code="898" salt="J1NY1jZsK4yaeuAflxxlMg=="/>
+ <symbol id="8" code="997" salt="sXseodofnpIHDzdEyHZcLQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="331" salt="LxkN5FyjO7P1qaIYm4Hp0Q=="/>
+ <symbol id="1" code="349" salt="cKZ1uW3Fg5tRdXc3z0wnEw=="/>
+ <symbol id="2" code="958" salt="ztnR3CbnWbmXA1gKPGZuhw=="/>
+ <symbol id="3" code="781" salt="nfDjeVFZUkUr90yr4d+hMQ=="/>
+ </question>
+ </ballot>
+ <ballot pid="4" webSerial="4-960863" webSerialSalt="GHNg5F5qkCaj9UBA3x0ckg==">
+ <question id="0">
+ <symbol id="0" code="989" salt="GcmqmB1C3sBeN0BIwOFwZg=="/>
+ <symbol id="1" code="835" salt="Lw96Nil1X0EJlxyqaN3qrA=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="123" salt="9QJjg9zvVA/U94lLCGHLRg=="/>
+ <symbol id="1" code="940" salt="pTQdwKLvKDJlQ22/zz11Zg=="/>
+ <symbol id="2" code="086" salt="rZPf0wF/f8Wa61J8jyWDKg=="/>
+ <symbol id="3" code="590" salt="ZoJeJ6xrPTiaxkAB4WPKDg=="/>
+ <symbol id="4" code="345" salt="CBKUF2DTQsppDU46L1ZBTg=="/>
+ <symbol id="5" code="830" salt="nBz98oLxoXZ6lQ/aEG+VFg=="/>
+ <symbol id="6" code="941" salt="wCxuhgLXaImGyfsU4hPyzQ=="/>
+ <symbol id="7" code="551" salt="JkSXaQ6L+IQEPHKdvhaqsw=="/>
+ <symbol id="8" code="979" salt="s/Flwu2o8zJuVf4u+qCiUw=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="325" salt="1VgQKjElGtMC7HBc9F20rw=="/>
+ <symbol id="1" code="908" salt="Y9fqG6PyAJoEOWSao84bsA=="/>
+ <symbol id="2" code="971" salt="Nax4xxoY7bs52HWB4lzuIw=="/>
+ <symbol id="3" code="966" salt="yIgaG0q0cgJIIxPHGY5Wyw=="/>
+ </question>
+ </ballot>
+ <ballot pid="5" webSerial="4-197777" webSerialSalt="nlztjLEqfFX3S5Q9pWBDHA==">
+ <question id="0">
+ <symbol id="0" code="263" salt="gTdwx2spMncsfi3on5CA3Q=="/>
+ <symbol id="1" code="294" salt="ZH2kDbnZwCN9w9AqfBO6Ug=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="950" salt="ZJoCBgcmxEOpjBrp1u3k1Q=="/>
+ <symbol id="1" code="993" salt="C1ifveKCqQuhTN4HdIEF8w=="/>
+ <symbol id="2" code="601" salt="ZPAjBqVZtYLcE1nb7CvfaA=="/>
+ <symbol id="3" code="947" salt="uIIz93ITrcb34UwfeDa2LA=="/>
+ <symbol id="4" code="260" salt="hYyo2BhqTlQf5t3e3zqFpA=="/>
+ <symbol id="5" code="980" salt="kyXYG62Jq7y96cDv7kfwjQ=="/>
+ <symbol id="6" code="925" salt="AEt/4G6QoN6zpHnD67mxhg=="/>
+ <symbol id="7" code="080" salt="584lBevaFip3edY0v3eQFQ=="/>
+ <symbol id="8" code="981" salt="Ua5uTO/ljEEqXUSlRLLo9g=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="062" salt="EQYkOMeupKCotFnwyfEmgw=="/>
+ <symbol id="1" code="832" salt="mQet4gJH/lzM9whapoNW3A=="/>
+ <symbol id="2" code="544" salt="WWrT4JbuL7Kn91qUD79+rA=="/>
+ <symbol id="3" code="958" salt="6A1NmEc23j+hz9dOPEE7FQ=="/>
+ </question>
+ </ballot>
+ <ballot pid="8" webSerial="4-265018" webSerialSalt="ZNMs7E3BmN8OEFthzyUjJg==">
+ <question id="0">
+ <symbol id="0" code="299" salt="vZ2zFYqeO1J29nOalO7Xyw=="/>
+ <symbol id="1" code="785" salt="VHsLjhcqGlGvLLKD7zPWsQ=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="298" salt="ZdqTQSAtpLr7NupJ0mTVxA=="/>
+ <symbol id="1" code="945" salt="cmuHTfiaqpSq9n0fOo30+g=="/>
+ <symbol id="2" code="841" salt="NJLMj3QKtTvNFt2H0ifcyA=="/>
+ <symbol id="3" code="870" salt="f6HCV3VWFxMPM7J2cImQTg=="/>
+ <symbol id="4" code="847" salt="r4sqBSQ7rCigw+Tana45nA=="/>
+ <symbol id="5" code="954" salt="7KmHgx56nCXpSpxOvv3u8Q=="/>
+ <symbol id="6" code="997" salt="Oxrycf15OlhJSGYCLfw4iQ=="/>
+ <symbol id="7" code="957" salt="v56d5X7SzHmqOaj6Uiyp+w=="/>
+ <symbol id="8" code="969" salt="VghcBV+0YKlh8rVHyLvgjQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="529" salt="K5hwQ2CLg3UkX0awBNl87g=="/>
+ <symbol id="1" code="995" salt="1KG7J1ryQpDLmAbXyIhvdA=="/>
+ <symbol id="2" code="900" salt="5QHepnvmfcR7z8K+7yU5WQ=="/>
+ <symbol id="3" code="926" salt="44Z43IgqU6146DqePJuGRw=="/>
+ </question>
+ </ballot>
+ <ballot pid="9" webSerial="4-647715" webSerialSalt="dPiIBCouFcuAEkElVwJ4BQ==">
+ <question id="0">
+ <symbol id="0" code="811" salt="U7XD3ZxD8rZhwEyFt7Cvxw=="/>
+ <symbol id="1" code="917" salt="3l7gEWzvXn8f91y/7IsgkQ=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="963" salt="qDsDSuoHy9UfXCM9oYvW5Q=="/>
+ <symbol id="1" code="770" salt="4IfoeIxoU3CYbj27oIgnuA=="/>
+ <symbol id="2" code="919" salt="4dIV8+VoqaLMvlCV7laawQ=="/>
+ <symbol id="3" code="997" salt="f5NCQ+/9cmGvsPaSrNLu1g=="/>
+ <symbol id="4" code="838" salt="3SJm4pqRUVqpFMzlLhiPzQ=="/>
+ <symbol id="5" code="964" salt="8Xzo2jKb6JEpnypEYPS1+w=="/>
+ <symbol id="6" code="522" salt="P6ASEdFzQzgBr1oOARlEJw=="/>
+ <symbol id="7" code="992" salt="nqk5xJ+SkK3hertH1Z+jLA=="/>
+ <symbol id="8" code="940" salt="IqWevDc2xoi+n/jTU6o0HQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="771" salt="Oyz8gEwBU201j8xsIfWekA=="/>
+ <symbol id="1" code="863" salt="Rfff4kfHznVjrQCp2etzvQ=="/>
+ <symbol id="2" code="971" salt="ZcpHEyniXiYmZpgP433Msw=="/>
+ <symbol id="3" code="589" salt="0XsR6JHA7/Aa4hAjGTqeoA=="/>
+ </question>
+ </ballot>
+ </printCommitments>
+ </database>
+</xml>
View
98 testdata/SpoiledBallotsCodes.xml
@@ -0,0 +1,98 @@
+<xml>
+ <database>
+ <printCommitments>
+ <ballot pid="11" barcodeSerial="4-369815" barcodeSerialSalt="1mz8tDiKx3QGhrhSx8D40w==" webSerial="4-802345" webSerialSalt="vMfJfkMMH6o2IwP7UmCZhA==">
+ <question id="0">
+ <symbol id="0" code="046" salt="ipPQVLQP91MF2iCci0OvXw=="/>
+ <symbol id="1" code="111" salt="pQmmjWmvYsNExQ9+liVMlw=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="623" salt="6IjlWLVdDW+CD7hyS5ocEQ=="/>
+ <symbol id="1" code="907" salt="gf4TE9VI/1xxAIQahVf2rg=="/>
+ <symbol id="2" code="970" salt="fAGk/AfMVII3b5uJax2UAA=="/>
+ <symbol id="3" code="272" salt="8AHYK/8syK+gS2AG7/xGcw=="/>
+ <symbol id="4" code="963" salt="jzSxo8oCA8rsGPCSrP0uZQ=="/>
+ <symbol id="5" code="528" salt="ZpdFb/5Zxi2KPZTBY+AdMQ=="/>
+ <symbol id="6" code="301" salt="AcJ91yVAUMKjlPP6IsJpxg=="/>
+ <symbol id="7" code="320" salt="YU9GgYSjs2iLEAi4hbtXsg=="/>
+ <symbol id="8" code="286" salt="0/TVxsQKdW1/lErVYPGToQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="972" salt="4oJ1Pf/i77ZCOaKgB47PBg=="/>
+ <symbol id="1" code="345" salt="ETFgdjlP9E/05GlKB2/4cw=="/>
+ <symbol id="2" code="265" salt="vYiE0yUvohq4hgBX454+oQ=="/>
+ <symbol id="3" code="292" salt="Ky1ltLtpeFGEBfPwcdWShQ=="/>
+ </question>
+ </ballot>
+ <ballot pid="12" barcodeSerial="4-799466" barcodeSerialSalt="6RzNvUOXCWF4MuoT9oay6A==" webSerial="4-760892" webSerialSalt="U/m4hhsAwPo+KJw9AVdytQ==">
+ <question id="0">
+ <symbol id="0" code="919" salt="UIsdV4cTMnl66dIT+DxeTA=="/>
+ <symbol id="1" code="058" salt="CVZhjAL48r7DpfZNvGTaQQ=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="918" salt="QvDOkkHt7N836ZsTpLyMWQ=="/>
+ <symbol id="1" code="061" salt="awEWEWDps6v2gwWb3RKl6A=="/>
+ <symbol id="2" code="999" salt="d7/ZXmScqskS5ysNp7PiIg=="/>
+ <symbol id="3" code="975" salt="VjgytFgmule0EVjdWzObPQ=="/>
+ <symbol id="4" code="533" salt="n8Bjd5Aigz6a9vqvQRI9yQ=="/>
+ <symbol id="5" code="973" salt="lrOeICZIkGEZ2XiHD6RmXg=="/>
+ <symbol id="6" code="960" salt="o4dpW7FoPnlygfhoPjaO5g=="/>
+ <symbol id="7" code="549" salt="a3wasTGIlk31LCbcqaI3qQ=="/>
+ <symbol id="8" code="324" salt="osrEP2uBUjDVRHM7/FN9Zg=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="098" salt="EArdAmYfM4SMwVId6BvQ/g=="/>
+ <symbol id="1" code="975" salt="1BwY+R4gJy/69XAazdAYig=="/>
+ <symbol id="2" code="961" salt="hW2u5tJADCnIOwlI2zsh1w=="/>
+ <symbol id="3" code="008" salt="JyHl3bEcwt6gitZ2dBH2Lg=="/>
+ </question>
+ </ballot>
+ <ballot pid="15" barcodeSerial="4-850669" barcodeSerialSalt="CG+/mNrLIAHBJP+TklwpCA==" webSerial="4-744092" webSerialSalt="dBZj3KFZIOONduUepAMfJQ==">
+ <question id="0">
+ <symbol id="0" code="612" salt="tGSfRxseTgoIfbTzyQGlcw=="/>
+ <symbol id="1" code="899" salt="npvM8A2OH73toS27N4eaiQ=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="514" salt="LAnYVq9jYY7yJ6klsbHtXQ=="/>
+ <symbol id="1" code="786" salt="bjugHSGk+fntbNW2lWCB5w=="/>
+ <symbol id="2" code="289" salt="9E8U1IkONN1bEFD0WA0beg=="/>
+ <symbol id="3" code="083" salt="g455kVtaBbTR10QpL/XtJw=="/>
+ <symbol id="4" code="056" salt="NdKPuxRg3rhmJP8J9AV7vw=="/>
+ <symbol id="5" code="126" salt="bd9e4NTH0EwL/ICuZHGJDg=="/>
+ <symbol id="6" code="930" salt="BoXOuoi2uesJTn7qCmnobQ=="/>
+ <symbol id="7" code="045" salt="VZOBaLVTnF7EaqIL9dCpCA=="/>
+ <symbol id="8" code="012" salt="IX3zqDo1jGsOxG2TOkZJog=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="970" salt="pRoAVv7ExUnKAL7XIQSJlw=="/>
+ <symbol id="1" code="898" salt="9c1bcuz1DbEGOmMp77irSw=="/>
+ <symbol id="2" code="327" salt="wAukqtQf/6Gb+e3eUbSNGA=="/>
+ <symbol id="3" code="951" salt="T1zoDbYmseWK6FmRG8ZNvA=="/>
+ </question>
+ </ballot>
+ <ballot pid="16" barcodeSerial="4-130068" barcodeSerialSalt="KaRndCkzjS1PCUQWnUw99w==" webSerial="4-252337" webSerialSalt="2sX6eFl8OnrROvKNxOt46w==">
+ <question id="0">
+ <symbol id="0" code="101" salt="oKBp9hdHLw3UrXki6pu4gw=="/>
+ <symbol id="1" code="972" salt="GnG3ce8W4NcTfTtNkRdKwA=="/>
+ </question>
+ <question id="1">
+ <symbol id="0" code="330" salt="/1shbIKmH5UAPhStil2QCQ=="/>
+ <symbol id="1" code="911" salt="SNT63TSiqampiR7UiyC7Sg=="/>
+ <symbol id="2" code="998" salt="n3InsvccihuORId9rrCZBQ=="/>
+ <symbol id="3" code="993" salt="CdVaore8UyG7Hg/6PEF1Hg=="/>
+ <symbol id="4" code="825" salt="JkwWTnnJAUgrFHi/lDHU1w=="/>
+ <symbol id="5" code="921" salt="xuYBN/JrMO+PrB/mZyxFEg=="/>
+ <symbol id="6" code="960" salt="JqQj4dInmaDqzut6LPXMXA=="/>
+ <symbol id="7" code="923" salt="HL3y76zIPXRYqvj4dm0KyQ=="/>
+ <symbol id="8" code="081" salt="PlUmwtuh1zWPFNiEKNfWZQ=="/>
+ </question>
+ <question id="2">
+ <symbol id="0" code="582" salt="DGOqLIXzJN5+6Y0OA2YOAQ=="/>
+ <symbol id="1" code="628" salt="atjvYNIOwnwtQx4DETud2g=="/>
+ <symbol id="2" code="349" salt="kpBYRIwKYdX2e6cNUVCV9A=="/>
+ <symbol id="3" code="921" salt="SfFYPYnWu6G8e9aT6tOTgA=="/>
+ </question>
+ </ballot>
+ </printCommitments>
+ </database>
+</xml>
View
54 testdata/SpoiledBallotsMixnet.xml
@@ -0,0 +1,54 @@
+<xml>
+ <database>
+ <print>
+ <row id="11" p1="1 0 0 1 2 1 2 0 3" s1="M0MbrViZ09HtOCSANs+ZEA==" p2="0 1 1 0 2 1 2 0 3" s2="Usq+tCBmb/SpzP83PpXFlQ=="/>
+ <row id="12" p1="0 1 2 1 0 0 2 3 1" s1="D5naBaamYoDhz4Tj3PAOLA==" p2="0 1 1 2 0 2 3 0 1" s2="D54WIQZvVxboM4xRULvpGA=="/>
+ <row id="15" p1="0 1 0 2 1 1 2 0 3" s1="031p58QDHzGARcgAXDvNPQ==" p2="0 1 0 1 2 0 2 3 1" s2="/U3kUMBi+wVSlQkHYcg8rg=="/>
+ <row id="16" p1="0 1 1 2 0 2 1 0 3" s1="NdpHLwkIk7ZpoL+Z5qh1hg==" p2="1 0 0 1 2 1 2 3 0" s2="jd8gITeu54Y+FPpGqbSDtA=="/>
+ </print>
+ <partition id="0">
+ <decrypt>
+ <instance id="0">
+ <row id="6" pid="12" d2="0 1" sl="yzuq7/EfifCBMB3kcT165A==" rid="13" d4="0 1" sr="njVfMJnhstMi9krFN23lNQ=="/>
+ <row id="8" pid="16" d2="0 1" sl="+9+Bu1ifgx6q/PMF9jRjqg==" rid="14" d4="1 0" sr="r9gzhnqQXsTVRCQEqwx6lg=="/>
+ <row id="13" pid="15" d2="0 1" sl="Ra9R5geJazSPNjJqxO01gw==" rid="15" d4="0 1" sr="sLy/jGzWMtOD8k/ZHfWyvA=="/>
+ <row id="17" pid="11" d2="0 1" sl="bomTzeNdDCahReMsWF8xdQ==" rid="17" d4="1 0" sr="4LIaY0d5bhOJIbVDvOUE8w=="/>
+ </instance>
+ <instance id="1">
+ <row id="1" pid="16" d2="0 1" sl="rejIg0WAgyycf2sDMrdJRQ==" rid="14" d4="1 0" sr="FZj+daPdbUm8VjfAU/TjAg=="/>
+ <row id="4" pid="11" d2="0 1" sl="DwRQr+AZokcj23fblhM69A==" rid="17" d4="1 0" sr="VY8yWuk50TWeGwcJ3ItEOg=="/>
+ <row id="17" pid="15" d2="1 0" sl="InEH5621A8fTELn9tbnQ2Q==" rid="15" d4="1 0" sr="h1RfpSoh+OPh1DWp7kESWg=="/>
+ <row id="18" pid="12" d2="0 1" sl="7OOSFaQ9icfPLZxDTmC2Ag==" rid="13" d4="0 1" sr="cROT4JFHGlSog+yH29yLqQ=="/>
+ </instance>
+ <instance id="2">
+ <row id="4" pid="15" d2="1 0" sl="ladc0zrxFxvdbh3DOgoD2Q==" rid="15" d4="1 0" sr="8mpbhCzp+iBccnziBoYG+g=="/>
+ <row id="7" pid="11" d2="0 1" sl="wzWWLqPph1BRsGGt6a5Eew==" rid="17" d4="1 0" sr="yJpRh4yTkSakHW5QIp1tMg=="/>
+ <row id="13" pid="12" d2="0 1" sl="+53WRU1yFZmPtsVrc/sjBw==" rid="13" d4="0 1" sr="w3Fj2167bndTmglb+V3R6w=="/>
+ <row id="15" pid="16" d2="0 1" sl="ntqc0gr3dpzcnWGLb6WfkA==" rid="14" d4="1 0" sr="4jW3c/KpusWRqGt8WFFsDA=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ <partition id="1">
+ <decrypt>
+ <instance id="0">
+ <row id="0" pid="16" d2="0 1 2 0 2 3 1" sl="buVazsVtb527lVt4Da8C+g==" rid="8" d4="2 0 1 1 2 0 3" sr="sjhJaZ1yxVoiU8l8y+AjSg=="/>
+ <row id="1" pid="15" d2="2 0 1 0 3 1 2" sl="H+36UZdk5j9uUlmSdeuY0Q==" rid="17" d4="2 1 0 2 3 0 1" sr="OuT5ArAqAjYSK9gIEI6S2A=="/>
+ <row id="9" pid="12" d2="1 0 2 1 2 0 3" sl="RZjBaFyN8VK1tvRmCcHZtg==" rid="18" d4="0 1 2 0 1 2 3" sr="p/OdYDpQKUfXBBOToccmeA=="/>
+ <row id="19" pid="11" d2="2 0 1 2 1 3 0" sl="ptpVveSLMt6afxBUI37/sA==" rid="0" d4="0 2 1 3 1 0 2" sr="xyDuC3BT/wqb1f7VR/leHQ=="/>
+ </instance>
+ <instance id="1">
+ <row id="2" pid="12" d2="2 0 1 0 1 2 3" sl="8kx0uQhBXC7TUdNzBtY6BQ==" rid="18" d4="0 2 1 1 2 0 3" sr="LBczRh8r5xgMgcKEVhQ6qw=="/>
+ <row id="4" pid="16" d2="1 2 0 2 0 1 3" sl="EUc3AaWAjph/NYPQafejLg==" rid="8" d4="1 2 0 0 3 1 2" sr="H41+xWvOioZQlmCGiMmADw=="/>
+ <row id="11" pid="11" d2="0 1 2 3 1 0 2" sl="kar3z8cwNpDoVTVYphasAg==" rid="0" d4="1 0 2 2 1 3 0" sr="HUUSrwl08/rHWjlzPXxBVA=="/>
+ <row id="14" pid="15" d2="1 0 2 2 3 1 0" sl="oPuYnEqexsqC10EFVwjUmg==" rid="17" d4="2 0 1 0 3 2 1" sr="qZfn4IEbbUz0HVGI4OiQgg=="/>
+ </instance>
+ <instance id="2">
+ <row id="5" pid="16" d2="2 0 1 1 0 2 3" sl="tMgC7chhgh6AE0zRe+3Dcw==" rid="8" d4="0 1 2 0 1 3 2" sr="Qji9n3CVuxzfw/j+X3jdiQ=="/>
+ <row id="7" pid="11" d2="0 1 2 3 1 2 0" sl="iI39QKKu0RzQmGhtWbQcrg==" rid="0" d4="1 0 2 3 1 2 0" sr="SIOzZSugvTDOD+ZxwhZdlQ=="/>
+ <row id="14" pid="12" d2="0 2 1 0 2 3 1" sl="oiOVg7TjeD992wp6Nb6eLg==" rid="18" d4="1 2 0 1 3 2 0" sr="IYDZG6B4yE+URivUG+0tXA=="/>
+ <row id="17" pid="15" d2="2 0 1 2 3 1 0" sl="t7kxdt5AAdxzcABR7Zq2cQ==" rid="17" d4="2 1 0 0 3 2 1" sr="LRpbRn2OO4ylk+rdUPeq9g=="/>
+ </instance>
+ </decrypt>
+ </partition>
+ </database>
+</xml>
View
13 testdata/partitions.xml
@@ -0,0 +1,13 @@
+<electionSpecification version="0.1">
+ <electionInfo id="PunchScan">
+ <sections>
+ <section id="0">
+ <questions>
+ <question id="0" partitionNo="0"/>
+ <question id="1" partitionNo="1"/>
+ <question id="2" partitionNo="1"/>
+ </questions>
+ </section>
+ </sections>
+ </electionInfo>
+</electionSpecification>

0 comments on commit b083954

Please sign in to comment.