[Engine-devel] ovirt-sdk-python 3.3.0.1 released
by Michael Pasternak
- added new collection ClusterGlusterVolumeBrickStatistics
- added NetUp 'cloned disk' importing capabilities
- to ClusterGlusterVolumeBricks.list() added new argument "all_content"
- to ClusterGlusterVolumeBricks.get() added new argument "all_content"
- to host install method added new parameter "image"
- to host add method added new parameter "display.address"
- to vm add method added new parameter "vm.cpu.mode"
- to vm add method added new overload for creating vm from snapshot
- to cluster added tunnel_migration
- to display added keyboard_layout
- to display added smartcard_enabled
- to DataCenter added Clusters sub-collection
- to StorageDomain added Disks sub-collection
- to Disks.list() added 'unregistered' argument
- to Host added display.address
- to Snapshot added commit/preview/undo actions
- to vms.add() added overload for creating vm from snapshot
- to hosts.add() added [@param host.display.address: string]
- to vm.ticket() added [@param action.ticket.value: string]
- return error if amount of fetched objects in X.get() is > 1 #890327
- session based authentication for /localhost is broken #916285
- explicitly ask for reply in xml
- Add constructor parameter validate_cert_chain=True #915225
- defend against malformed server reply
For more details see [1].
[1] http://wiki.ovirt.org/Python-sdk-changelog
--
Michael Pasternak
RedHat, ENG-Virtualization R&D
10 years, 12 months
[Engine-devel] ovirt-cli 3.3.0.1 released
by Michael Pasternak
- at vm.start() --vm-os-boot doesn't send the order of devices #921464
- rephrase status command help
- add option to retrieve system summary #854369
- accept IP address as FQ argument rather than string #886067
- fix broken pipe
- Bad error message when trying to create a new Role #908284
- add flag --dont-validate-cert-chain #915231
- collection-based-options could be passed in 2 ways #859684
- make NO_SUCH_ACTION error a bit more clear
- ovirt-cli DistributionNotFound exception on f18 #881011
- ovirt-shell misleading help for command "connect" #907943
- show event -id accept strings instead of numeric values #886786
- Use vncviewer passwordFile instead of passwdInput
More details can be found at [1].
[1] http://wiki.ovirt.org/Cli-changelog
--
Michael Pasternak
RedHat, ENG-Virtualization R&D
11 years, 1 month
[Engine-devel] Proposal for new commit msg design for engine commits
by Eyal Edri
Hi,
You all probably know and familiar with 'ovirt-engine' git hook for commit msg template [1].
this helps understand the general area of the patch in the project but it lacks additional info that might
be valuable for scaling automatic tests in Jenkins CI.
Let me explain:
Infra team is working hard on expanding oVirt CI infrastructure and adding more tests in jenkins (per commit/patch).
Adding important meta-data per patch can significatly improve the ability to run specific tests for each patch/commit,
and not waste valuable resources on Jenkins jobs that are not relevant to the code in the patch.
So the idea is to add/expand current metadata per patch, in the form of: (either)
1. expanding current header template to include more data like 'network' , 'setup', 'tools', 'virt'
2. adding a new label with relevant tags for the patch, called e.g 'METADATA: network, rest, virt'
Jenkins jobs will then be able to parse that data and trigger only relevant jobs for it.
this can also allow us to add more jobs per patch, an option that is very problematic today considering the amount of
patches coming in to engine.
Once agreed on a format, we'll be able to add a git hook to verify the validity of the commit msg. (similar to bug-url).
if we're not 100% sure that the tags will cover all corner cases and we feel like we need to run the code on all jobs,
we can a nightly job to run all the remaining jobs (but at least it won't run on every patch/commit).
[1] <core | restapi | tools | history | engine | userportal | webadmin>:
thoughts?
Eyal Edri.
11 years, 4 months
[Engine-devel] oVirt UI technology stack upgrade complete
by Vojtech Szocs
Hello everyone,
last week, we merged a patch that upgrades oVirt UI technology stack to use the latest version of Google Web Toolkit SDK and related modules [1]. This patch includes all "essential" upgrade changes as described in [2].
After merging the above mentioned patch, we faced some issues related to GWT RPC serialization, involving classes shared between frontend and backend. Please read on to learn more about these issues and ways to fix them.
--
(A) NullPointerException at server-side (GWT RPC servlet) when serializing backend business entity into RPC response payload
Symptoms
* exception in server.log -> Exception while dispatching incoming RPC call: java.lang.NullPointerException
* error dialog in web UI with status code 500 (internal server error)
Root cause
* fields such as "private X field = Y;" of the given entity are not included in GWT RPC serialization policy
* this happens when entity constructor isn't referenced in UI code -> GWT compiler marks the constructor and instance initializer as dead code
* since instance initializer takes care of adding such fields to given type (entity) in generated JavaScript, such fields won't be added at all
Workaround
* for each field such as "private X field = Y;"
1, change field declaration to "private X field;"
2, add "field = Y;" statement to constructor
Consequence
* even though constructor and instance initializer are marked as dead code, fields such as "private X field;" are still added to given type (entity) in generated JavaScript
* this is due to how generated JavaScript works, i.e. fields without initialization statement such as "private X field;" are always added, whereas fields with initialization statement such as "private X field = Y;" are added via instance initializer (which might be removed if it's marked as dead code)
References
* patch [http://gerrit.ovirt.org/#/c/17352/] for RepoImage entity
--
(B) Instance field(s) with null values at server-side after deserializing RPC request payload
Symptoms
* object passed from client contains field(s) with null values, despite client initializing fields before making RPC call
Root cause
* client uses RPC method signature that works with type A, i.e. VdcActionParametersBase
* type A meets GWT RPC serialization rules, as defined in [3] section "Serializable User-defined Classes"
* client uses type B (extends A) when calling given RPC method at runtime, i.e. MyCustomParameters
* type B does NOT meet GWT RPC serialization rules, i.e. missing no-arg constructor
* back at server-side, GWT RPC servlet fails to deserialize type B properly
Workaround
* ensure all types participating in GWT RPC communication meet GWT RPC serialization rules
1, assignable to IsSerializable or Serializable interface
2, all non-final & non-transient instance fields meet GWT RPC serialization rules
3, contains no-arg constructor (in order to create instance during deserialization)
References
* patch [http://gerrit.ovirt.org/#/c/17368/] for Gluster Parameter classes
--
Regards,
Vojtech
[1] http://gerrit.ovirt.org/#/c/16739/
[2] http://www.ovirt.org/Features/GWT_Platform_Upgrade
[3] http://www.gwtproject.org/doc/latest/DevGuideServerCommunication.html#Dev...
11 years, 4 months
[Engine-devel] [Feedback required][host-deploy] Fedora-19 misses tar at minimal setup
by Alon Bar-Lev
Hello All,
I would like to receive feedback regarding how we should cope with a state presented to use by Fedora.
Fedora-19 minimal setup does not install tar utility which is required to deploy files during the host-deploy process (Hosts->Add Host).
I guess because of 2.8M in size (including translations) -- a standard commonly used utility was removed.
There are two alternatives :
1. Instruct users who are using minimal installations to manually install tar utility just like they configure repository, dns, etc..
Benefit: simplicity.
Benefit: use standard tools.
Benefit: lower payload to transmit.
Drawback: require tar at destination machine.
2. Do not use tar but self extracting python script, a patch is ready[1].
Benefit: ability to deploy environment in which tar is missing.
Drawback: non standard tool at destination machine.
Drawback: complexity within our code.
[[[
There was 3rd alternative, using python tar module to deploy tar.
However, there is a bug in that module when processing last block if empty.
This is edge condition but happened to at least one of the users and I could
reproduce it.
]]]
Regards,
Alon Bar-Lev
[1] http://gerrit.ovirt.org/#/c/17295/
11 years, 4 months
[Engine-devel] oVirt - Glance Integration Deep Dive Session
by Federico Simoncelli
------=_Part_7822902_1276514821.1375091061911
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
The following is a new meeting request:
Subject: oVirt - Glance Integration Deep Dive Session
Organizer: "Federico Simoncelli" <fsimonce(a)redhat.com>
Time: Tuesday, July 30, 2013, 3:00:00 PM - 4:00:00 PM GMT +01:00 Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
Invitees: users(a)ovirt.org; engine-devel(a)ovirt.org
*~*~*~*~*~*~*~*~*~*
Hi everyone,
on Tuesday at 3pm (CEST) I will be presenting the recent work done in
integrating OpenStack Glance into oVirt 3.3.
The presentation will include both a high level overview (usage in webadmin)
and a deep dive about the low level implementation details.
When:
Tue 30 Jul 2013 15:00 - 16:00 (CEST)
Where:
https://sas.elluminate.com/m.jnlp?sid=819&password=M.9E565882E4EA0288E347...
Bridge: 8425973915#
Phone numbers: http://www.ovirt.org/Intercall
--
Federico
------=_Part_7822902_1276514821.1375091061911
Content-Type: text/calendar; charset=utf-8; method=REQUEST; name=meeting.ics
Content-Transfer-Encoding: 7bit
BEGIN:VCALENDAR
PRODID:Zimbra-Calendar-Provider
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
DTSTART:16010101T030000
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
TZNAME:CET
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
TZNAME:CEST
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:8ea8a413-e9de-46be-be2d-8f83ca22df3a
SUMMARY:oVirt - Glance Integration Deep Dive Session
ATTENDEE;CN=oVirt Users;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE
:mailto:users@ovirt.org
ATTENDEE;CN=engine-devel;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRU
E:mailto:engine-devel@ovirt.org
ORGANIZER;CN=Federico Simoncelli:mailto:fsimonce@redhat.com
DTSTART;TZID="Europe/Berlin":20130730T150000
DTEND;TZID="Europe/Berlin":20130730T160000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
LAST-MODIFIED:20130729T094421Z
DTSTAMP:20130729T094421Z
SEQUENCE:0
DESCRIPTION:The following is a new meeting request:\n\nSubject: oVirt - Glan
ce Integration Deep Dive Session \nOrganizer: "Federico Simoncelli" <fsimonc
e(a)redhat.com> \n\nTime: Tuesday\, July 30\, 2013\, 3:00:00 PM - 4:00:00 PM G
MT +01:00 Amsterdam\, Berlin\, Bern\, Rome\, Stockholm\, Vienna\n \nInvitees
: users(a)ovirt.org\; engine-devel(a)ovirt.org \n\n\n*~*~*~*~*~*~*~*~*~*\n\nHi e
veryone\,\n on Tuesday at 3pm (CEST) I will be presenting the recent work do
ne in\nintegrating OpenStack Glance into oVirt 3.3.\n\nThe presentation will
include both a high level overview (usage in webadmin)\nand a deep dive abo
ut the low level implementation details.\n\nWhen:\nTue 30 Jul 2013 15:00 - 1
6:00 (CEST)\n\nWhere:\nhttps://sas.elluminate.com/m.jnlp?sid=819&password=M.
9E565882E4EA0288E3479F3D2141BD\n\nBridge: 8425973915#\nPhone numbers: http:/
/www.ovirt.org/Intercall\n\n-- \nFederico\n
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT5M
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
------=_Part_7822902_1276514821.1375091061911--
11 years, 4 months
[Engine-devel] ovirt-engine-3.3 branch created
by Ofer Schreiber
Hey,
I have just created the ovirt-engine-3.3 branch in gerrit.ovirt.org, which will be used for 3.3 builds.
Please make sure you cherry pick important patches (== blockers) into that branch, otherwise, 3.3 will miss them.
If you are unsure if a patch should get inside 3.3 branch, please feel free to contact me.
Regards,
--
Ofer Schreiber
11 years, 4 months
[Engine-devel] [oVirt/RHEV 3.3 Localization Question #2] gluster hook stage "Pre" and "Post"
by Yuko Katabami
This is a multi-part message in MIME format.
--------------020707080904020408090704
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hello all,
I am a Brisbane-based translator currently working on the oVirt/RHEV 3.3
localization project along with 5 other translators.
I was suggested to post my localization-related questions to this
mailing list instead of rhev-devel.
We often have difficulty in comprehending some strings or are unable to
determine the usage of strings without knowing the context.
In order to translate software UI strings accurately, we need extra
information from time to time.
It would be very much appreciated if any of you can help us by
responding my email.
My question this time is about the following strings:
File: LocalizedEnums
Resource Ids: "GlusterHookStage___PRE" and "GlusterHookStage___POST"
Strings: "Pre" and "Post"
Question: Could anyone explain how these are used? In our language we
need to know what comes after "Pre" and "Post", otherwise our
translation would become "Front" and "Back" that would not make sense in
this case.
Thank you.
Kind regards,
Yuko
--
Regards,
Yuko Katabami (?????)
Technical Translator II
NAATI Accredited Professional Translator (English into Japanese) #28138
RHCSA #111-119-244
*Mobile:* +61 415 847 352
*Email:* ykatabam(a)redhat.com
Red Hat
*Red Hat, Asia-Pacific Pty Ltd*
Level 1, 193 North Quay
Brisbane 4000
*Office:* +61 7 3514 8100
*Fax:* +61 7 3514 8199
*Website:* www.redhat.com <http://www.redhat.com>
*Facebook:* Red Hat APAC <http://www.facebook.com/redhatapac> | Red Hat
Japan <http://www.facebook.com/redhatjapan> | Red Hat Korea
<http://www.facebook.com/redhatkorea> | JBoss APAC
<http://www.facebook.com/JBossAPAC>
*Twitter:* Red Hat APAC <http://www.twitter.com/red_hat_apac> | Red Hat
ANZ <http://www.twitter.com/redhatanz>
*LinkedIn:* Red Hat APAC <http://www.linkedin.com/groups?gid=3124596> |
JBoss APAC <http://www.linkedin.com/groups?gid=4068303>
--------------020707080904020408090704
Content-Type: multipart/related;
boundary="------------070206040803090007060302"
--------------070206040803090007060302
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hello all,<br>
<br>
I am a Brisbane-based translator currently working on the oVirt/RHEV
3.3 localization project along with 5 other translators.<br>
I was suggested to post my localization-related questions to this
mailing list instead of rhev-devel.<br>
<br>
We often have difficulty in comprehending some strings or are unable
to determine the usage of strings without knowing the context. <br>
In order to translate software UI strings accurately, we need extra
information from time to time.<br>
It would be very much appreciated if any of you can help us by
responding my email.<br>
<br>
My question this time is about the following strings:<br>
File: LocalizedEnums<br>
Resource Ids: "GlusterHookStage___PRE" and "GlusterHookStage___POST"<br>
Strings: "Pre" and "Post"<br>
Question: Could anyone explain how these are used? In our language
we need to know what comes after "Pre" and "Post", otherwise our
translation would become "Front" and "Back" that would not make
sense in this case.<br>
<br>
Thank you.<br>
<br>
Kind regards,<br>
<br>
Yuko<br>
<br>
<br>
<div class="moz-signature">-- <br>
<font color="#000000" face="arial, sans-serif" size="2"> Regards,
<br>
<br>
Yuko Katabami (方波見裕子) <br>
Technical Translator II <br>
NAATI Accredited Professional Translator (English into Japanese)
#28138 <br>
RHCSA #111-119-244 <br>
<b>Mobile:</b> +61 415 847 352 <br>
<b>Email:</b> <a class="moz-txt-link-abbreviated" href="mailto:ykatabam@redhat.com">ykatabam(a)redhat.com</a> <br>
<br>
<a target="_blank"><img
src="cid:part1.01040103.07010606@redhat.com" alt="Red Hat"
height="42" border="0" width="128"></a> <br>
<br>
<b>Red Hat, Asia-Pacific Pty Ltd</b> <br>
Level 1, 193 North Quay <br>
Brisbane 4000 <br>
<b>Office:</b> +61 7 3514 8100 <br>
<b>Fax:</b> +61 7 3514 8199 <br>
<b>Website:</b> <a href="http://www.redhat.com" target="_blank">www.redhat.com</a>
<br>
<br>
<b>Facebook:</b> <a href="http://www.facebook.com/redhatapac"
target="_blank">Red Hat APAC</a> | <a
href="http://www.facebook.com/redhatjapan" target="_blank">Red
Hat Japan</a> | <a href="http://www.facebook.com/redhatkorea"
target="_blank">Red Hat Korea</a> | <a
href="http://www.facebook.com/JBossAPAC" target="_blank">JBoss
APAC</a> <br>
<b>Twitter:</b> <a href="http://www.twitter.com/red_hat_apac"
target="_blank">Red Hat APAC</a> | <a
href="http://www.twitter.com/redhatanz" target="_blank">Red
Hat ANZ</a> <br>
<b>LinkedIn:</b> <a
href="http://www.linkedin.com/groups?gid=3124596"
target="_blank">Red Hat APAC</a> | <a
href="http://www.linkedin.com/groups?gid=4068303"
target="_blank">JBoss APAC</a>
</font>
</div>
</body>
</html>
--------------070206040803090007060302
Content-Type: image/png;
name="redhat-logo.png"
Content-Transfer-Encoding: base64
Content-ID: <part1.01040103.07010606(a)redhat.com>
Content-Disposition: inline;
filename="redhat-logo.png"
iVBORw0KGgoAAAANSUhEUgAAAIAAAAApCAYAAAD9LSHtAAAAGXRFWHRTb2Z0d2FyZQBBZG9i
ZSBJbWFnZVJlYWR5ccllPAAAA6NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tl
dCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1l
dGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUu
MC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpS
REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt
bnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6
Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv
YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9u
cy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxl
bWVudHMvMS4xLyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMTM3NDQ3MkZCQzExMUUw
OTQzNzk0QTNCNkFFNjg1RCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMTM3NDQ3MUZC
QzExMUUwOTQzNzk0QTNCNkFFNjg1RCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBJbGx1c3Ry
YXRvciBDUzMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0idXVpZDpD
QzZBQjQzODY4MDNERDExOENBRDk2OTlCQTZCNjM4OSIgc3RSZWY6ZG9jdW1lbnRJRD0idXVp
ZDpDQjZBQjQzODY4MDNERDExOENBRDk2OTlCQTZCNjM4OSIvPiA8ZGM6dGl0bGU+IDxyZGY6
QWx0PiA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPnJlZGhhdF9jbXlrX2xvZ288L3Jk
ZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6
UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv93CnUAAA4OSURBVHja7FwL
dBTVGf5ms49kySYkgSQkIZCkvKLyCCAIEQRFLdIiqPUN4qsitmhFQKgWKlpRQT1HsEINePBR
hfr2+ECUtAoICCggGEKCEEkC5EFeu9nN7vS/s/+SyWR2s4mBgGf/cz4ye+femdn7f/d/3Vkk
tE0MhPMJowgXEXoRkgidCDJBItgJxYQCwhbCRsL3BBdCcs5KLGEGYSuhgZUdLDyE3YQ5hITQ
VJ5bEk54kFe03A4oJywgRIWm9uyX4YRdzZVo0EBSwffZ11fSfD6FPMKloSnuOJFaOC/M/RKC
RT0kMtyM0amJSDYZ4ZJlFLvcOFJrR62rARFGI/pEWTHYYkKiLMFEIwpJ9+9X1GDnkRLWexMR
ruFRwuMhdZxdBHiS/XVTX0BKX9o3HVdUS6RK73AXHdUpQYEMM7W5jMCOCBnbPA04aHeid4QF
1zUY8ZzswEd5h/VIIORFwr0hlZxZCfPT/hRhtl7wPy4jBTPtJtTTpypSpIPgIqVLyllJUa2b
rEKCE4iwGLD6cDE2HS1D/+RY/NFhwnqzjPJah949hxISCR+F1NKxBLiPsMjfgBtTuiLFKWGX
TUZvpwERpPRwholQr1zUS4gCCh37xNpwd3wchpHFsJFLkOMikFta7u/yQ9gqbQyppmNcwEjC
hqY+v1GMYQa83bsXdhg9WLD7IKZk9kQ8tZW4Pagh9LUYMbHaADMp2kO2QJDDopBCWArvzTwG
YKqjAj8cPe7PFQi5mvBeSD1n1gJYCW8RuvvjSjqt5NskK+JIk9tNEjYUknk/Vo4Kj4yqBjec
hjAMMxgR4ZGUyE4UCoSLaOArCHXHyAaUdzZhy7HKQAQQ7uB1Ql1IRWeOADMJUwMZi4GJcbhG
NiO6QUJWdARORFsxJzkB96MTbjFaMV4mJ+CmGMC/YhViJJDV+KTejjpnQ6CCk5DPz8E5FYmP
qIpWn0sEiCesaizMeEO6xmMv0mKjcLXHhJOk4FiXhIlEhuR6KNmAk/4Vpl5u4YZuMTtuA76L
MiG/vDqQFcgkrCVUnGME6AxvpfR6tqYi4Ck9Wx/WyH9vJiT7FJ4SG40R8Z3Rx2xEJBFBdDrs
cSMnvwiv9UrFzdVhICOAWor23S2qXF9GUGr4SeCxMYQ7CfPOMQIIIxdJGMboy2TwfSdBkMKz
iQASE0A5HJmWhEWmSKQ6yI9z5GYiRa+PNqHa4cKjuw/gm949MMliwQU1EmJlr6UQxtyO4Ahh
p+tlUQbR2WpBZV19ICtwHWckv5ZYIIvwCQfbW8+GBxLaG8RQFHFnVCS6U5pXTkSuFJDFXyDN
7kFql2hlyEd5R3Dn7jzcai/DgxYHVtoa8LXNAzvRqbNkUOoBgUSQJc4FdLVFonHzUHfMb3iy
fi0i86LrdIbuJyzQGkLXQBZgVKPDl5SlJktNF6Wo9CXTil3YLV7ZwfnpxEmlb15JGaEc77Pl
S+sai98nxGBajdewePysbHH2CCWa1nojVp/fGwcMHnxaWYvth0u8T0H3l+VTY8cQ1v/Kgm/5
DN3ncnY/DwayAMPUDWur6xQnFqZZkTXUOpxitpy4eEzN7IH46E68an07veTYjlfg+T0F2ESh
ZKQkBfQ7XxrcuCrGhotrDJhWZcQqQxTm989QSs1y0+m5sB0mQqS4afC/+yjOpxJ68mqRgryu
qJekEHqw32+LhPO9U/k4GKstKqbpHLcZgyCbJ9DF0tV9NxYUYYnVhWiaA2MzEsjoQi77r3UW
vJqYhAcuSMOg7olKgUidNXxWX6/sB/oTcZ1xDQbcUG1QXE0FQbwlckdVGOb166ntnt6KyRV7
CdsI3xAe4Lbp8L6HUKBq80kGvHsQewg/Eg7wX2FxrmghQP07vLukeYy9hGeYQA1BBIpC/kbI
JxwShpWP/+JHqV24/w8cRO4XhpQ/36jp+yq8L99M57RUFPe28/Nuhup9DGNj9N9IghV7C+DM
TMNDdSalvGtXWSyR7gkk1EuYUW/C1LAo7O1rw9eSG7tr61F4sgYbj5RgfUYqLqmWUKtj7QSt
kh3eCmFjeigTESRcU2XAe0Sqbxt3DsWE2hTetCyCPUP4+HtW+FLNilVXG1dxVK5V7qUMsRn2
lOa8WO0fEC7QtKeyqf1tECtZBFMb+Xn/QdjJtY874N197U+4TTPmeq7VLCPkEo6z9ZnJRTNh
3V7ivpsIBwmjOcXfwHUJk6JCwKHWRTl/6WbGYUx6MuaarcggZVX5ifANyj4AlJKvIMYJolSx
xVsniHXCbxzgN4mmIPJ+k10JNHmhCOMwgLAviOGP8MoEr+TOaPr20WLCXHjfcfiCEMHt27gK
Km54Lbyvuan96HqVq8hVkQw8sYJsZn5Os+aZ3lKlgWP4vj/xiryJFaKWhfBuj4sMaJ2qPZLr
Nid1vve7HMuJV/PKNPMxn4lywp8L8Gulviz4GdNKS/CKza1QJ0onwvcoW8GyYsbFS4CUECCz
VkJcG5Qvri1SxGK7s61xknqbsQ8rP4/N6q1cWBLyuEr5Yvcxm833Up5IdQVSHUBN1yhfuJrB
PP5CdhulQQR/NVx1der0WcKr+/ZmnlNf+eDnFot4hG4JN0BMY2jJVR2tqMJju/NxU20pPjQ6
leAuCvqpnkep+3u3iNtSIIqia28nQ7azqLitBNA+1H5W6LPsF78lXEwYqyLMHI0iGjRuYwSv
ICFTVO1VbKYPqNo2sklu6flyCLV++lTxdbKCCPB8soeLrP3aUgiq03cBjaQddXE2si+5DG99
9jHWFhXgptgYjCL/Hk00qOMS8C8VUXGsCJPxAhFObpqHikpRZRsvu1RnRY5WHRezP75ItRic
7Dpc7DNt7Ks9mgn+mAmmlS/4eTsHeK69LTy38N+/42cr85N99OIgNpH1Fwb/73cEJMDPzQNB
VVTVowfeeP0NJKWk4JH5czF6zFj8efMm9I2LxlWJXTDOHYY0B1kEyVvhc6F1pl/EDp0IB8Jl
LHBUY0fz18aOo20bK+IiO3Ta1UoUqeHXQVwrjoloUrV966evK0DaJem4Kj2pZmVqLXQSW6zr
mRzCiqj3StxtIUBBoFzbaDQiIsIb1IZbLHjh2SW4d8YMJCalYMkHH+Jf4WEYmtIN2VYLhjgl
pDi8LkJxCZL37SC3qt4nvpWJTL14RVQUmA5RwPi+qQHvFB1HSaXu5lBBkBmAXsFRz8ya23At
u0b5CGDC2+Kq9M5rJ0JkJf9hcjxB+JQtWBUTtLQVLqMJAUQgc0OzWTKb4XQ6kX/wIOY9/DBe
XLFSaR86bDg2bd4Mk8mMh2fPxpNPP43P848oUVNMpwhlx7CnNRxpZiOSKWiMoa8RTuvBSiwQ
pWKKD2lJe1DocWM/BXt7jlagrNqOxheFm8kvqZnrxTj1qmORT/+JeSkFuMb/ONhTS7czWDlM
4gB2F6eZ9vasLGZZwsPdVqtVjo6Ols/L7CfPuOceeduWb+TVL+fIUVFRimZWrVwp68mcWbNk
rh5rXgH3QrTTDMpG7iOd6mMI9Lq4GuNa8V1mq8YJX56p02e+qs8JntxgpAevet9Yf64ji02x
r9+bqnNjue2SFu41n4nqq+HP5HFD/PSPZYs3Tyctrg+4F7Ds+ed39h84YKfZZB4cabMhPSMD
4RHeDGnIsAtRXV2F+2fNwrS77kJMbCwmTp7c5ALCAmRnZyMnJwclx0oR2SkSyUlJGDRoIOrs
DuTm5mLAgAHontoDX36xATZbJBK6xmPxkiXBTHp+kD66NSKM1WO84uPYnN4WxDhf7j5KlR3c
zhG9Wh5qObtqtfTiVX/Iz/kEtmLa2MPN7f5dg9h0ITwgB5BtW7bIr69ZIxcfPSq3h9w3fXqw
vyB6opUTFYwFAPtS9X1yuZzan+sHw7lusKJpqVwp3KjHOTjFFGZ5MmcG2u/w73awAIt5nL80
bzmfn6tpv4Pb+7ZEgHhCkdxOcqiwUP7808+U4x/37ZP3/bC3yfmLR44MRvllHKWL6tkfdIKw
X0KAJK7eae/ZwOPUbddpxr7ZwnOXsqXwfX63HQiQzeNe0fQTcyJ+v3GM3dMzmvNDedx8Tbuw
CpMIV/lMlbjAc+1lr15esQLjrrwCg7MGYfI1k/Hdzp2NERgFlpWVQaX1/+TNjgmEiVxrDyao
DSbSPsqxxWto+mvlMB2iaf2nMPur/VxXkPYW3is4Vd9qYxagruB9xSXuKVzizuES8xG2Spdz
yqt9oddX4l7E+wHvsrUQtYPxhCsl1b67qHP/VyfabbWcrKjA3r17sHz5cmSkZ2DhosafGZAr
wc1TvAU1CjwxsH9/9OndW4kbjCYjTp6swv4f9x8sKCwclncgv4yebxwXYz5Ayz8tH8JFHRf7
v3Vo+Z1CYSUuYzMZzRaghPcetnKlTy+/HsFmP4nP72BzX8yB4EhefcJvf8hjknkT6h0mIQIE
kkIPazQ1gzFMgniOCTYwiat4oUB1L7Ve72brY+B9jWXstlw+F+DDSIJDPk0iYojMfv1OZQMi
FtCTn4uKJr69bh2yBg5ESE6zaAggcN/pIsCE8eMVxQ8dMlh+ZvFif0HlAt+zXDtpUkhBHUAA
gafaW/kvLV+mKH/ihAmyy+Xy1+1F9XOECNBxBBB4sr2Uv23rVjmpWzf5srFj5Mrycn/dlmuf
IUSAjiWAwIz2iAm+ys2V31671t/KdxPm690/RICOJ4DAcMKu0xQW5BEu9XfvEAFOvwRTstzC
lbFZnB61h4jUbAGnbRtCaji7CQDORUXx/jx4//+AbWj93rPIifdwuVKUNBdy/hqSDpTW7h+X
cxFBvErd0v8TWMdl0YMI/T+BZ638X4ABALiJt5GyzHDtAAAAAElFTkSuQmCC
--------------070206040803090007060302--
--------------020707080904020408090704--
11 years, 4 months