hide peers, add drone ci, doc update

This commit is contained in:
ycc 2023-01-11 21:42:14 +01:00
parent c4bb8c5693
commit ce758c5bb1
7 changed files with 908 additions and 13 deletions

11
.drone.yml Normal file
View File

@ -0,0 +1,11 @@
type: docker
kind: pipeline
name: unit
steps:
- name: test
image: golang
commands:
- go test
- go build

View File

@ -4,7 +4,6 @@ import (
"encoding/base64" "encoding/base64"
"fmt" "fmt"
"log" "log"
"os"
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -122,6 +121,7 @@ func TestFlutterCompat(t *testing.T) {
} }
/*
func TestFlutterDecode(t *testing.T) { func TestFlutterDecode(t *testing.T) {
pub, err := os.ReadFile("/home/yves/Documents/code/flutter/meowlib/pub.key") pub, err := os.ReadFile("/home/yves/Documents/code/flutter/meowlib/pub.key")
if err != nil { if err != nil {
@ -179,3 +179,4 @@ func TestFlutterEncode(t *testing.T) {
println(base64.StdEncoding.EncodeToString(pub)) println(base64.StdEncoding.EncodeToString(pub))
} }
*/

View File

@ -3,13 +3,17 @@ package client
import ( import (
"encoding/json" "encoding/json"
"errors" "errors"
"math/rand"
"os" "os"
"time"
"forge.redroom.link/yves/meowlib" "forge.redroom.link/yves/meowlib"
"github.com/ProtonMail/gopenpgp/v2/helper" "github.com/ProtonMail/gopenpgp/v2/helper"
"github.com/google/uuid" "github.com/google/uuid"
) )
const maxHiddenCount = 30
type Identity struct { type Identity struct {
Nickname string `json:"nickname,omitempty"` Nickname string `json:"nickname,omitempty"`
RootKp meowlib.KeyPair `json:"id_kp,omitempty"` RootKp meowlib.KeyPair `json:"id_kp,omitempty"`
@ -34,6 +38,7 @@ func CreateIdentity(nickname string) *Identity {
id.Nickname = nickname id.Nickname = nickname
id.RootKp = meowlib.NewKeyPair() id.RootKp = meowlib.NewKeyPair()
GetConfig().me = &id GetConfig().me = &id
id.generateRandomHiddenStuff()
return &id return &id
} }
@ -159,3 +164,54 @@ func (id *Identity) TryUnlockHidden(password string) error {
} }
return errors.New("no peer found") return errors.New("no peer found")
} }
func (id *Identity) HidePeer(peerIdx int, password string) error {
serializedPeer, err := json.Marshal(id.Peers[peerIdx])
if err != nil {
return err
}
encrypted, err := meowlib.SymEncrypt(password, serializedPeer)
if err != nil {
return err
}
// add encrypted peer data
id.HiddenPeers = append(id.HiddenPeers, encrypted)
// remove clear text peer
id.Peers = append(id.Peers[:peerIdx], id.Peers[peerIdx+1:]...)
return nil
}
func (id *Identity) generateRandomHiddenStuff() {
rand.Seed(time.Now().UnixNano())
count := rand.Intn(maxHiddenCount) + 1
for i := 1; i < count; i++ {
var p Peer
p.Name = randomLenString(4, 20)
p.MyEncryptionKp = meowlib.NewKeyPair()
p.MyIdentity = meowlib.NewKeyPair()
p.MyLookupKp = meowlib.NewKeyPair()
p.Contact.Name = randomLenString(4, 20)
p.Contact.ContactPublicKey = p.MyLookupKp.Public
p.Contact.EncryptionPublicKey = p.MyIdentity.Public
p.Contact.LookupPublicKey = p.MyEncryptionKp.Public
p.Contact.AddUrls([]string{randomLenString(14, 60), randomLenString(14, 60)})
id.Peers = append(id.Peers, p)
id.HidePeer(0, randomLenString(8, 14))
// TODO Add conversations
}
}
func randomLenString(min int, max int) string {
rand.Seed(time.Now().UnixNano())
n := rand.Intn(max-min) + min
return randomString(n)
}
func randomString(n int) string {
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
s := make([]rune, n)
for i := range s {
s[i] = letters[rand.Intn(len(letters))]
}
return string(s)
}

View File

@ -5,6 +5,7 @@ import (
"os" "os"
"testing" "testing"
"forge.redroom.link/yves/meowlib"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@ -38,6 +39,26 @@ func TestLoad(t *testing.T) {
} }
} }
func TestCreate(t *testing.T) { func TestHidePeer(t *testing.T) {
id := CreateIdentity("myname")
id.Save()
var p Peer
p.Name = "testName"
p.MyEncryptionKp = meowlib.NewKeyPair()
p.MyIdentity = meowlib.NewKeyPair()
p.MyLookupKp = meowlib.NewKeyPair()
p.Contact.Name = "foo"
p.Contact.ContactPublicKey = p.MyLookupKp.Public
p.Contact.EncryptionPublicKey = p.MyIdentity.Public
p.Contact.LookupPublicKey = p.MyEncryptionKp.Public
p.Contact.AddUrls([]string{"http:/127.0.0.1/meow", "tcp://localhost:1234"})
id.Peers = append(id.Peers, p)
assert.Equal(t, len(id.Peers), 1)
h := len(id.HiddenPeers)
id.HidePeer(0, "mypassword")
assert.Equal(t, len(id.Peers), 0)
assert.Equal(t, len(id.HiddenPeers), h+1)
id.TryUnlockHidden("mypassword")
assert.Equal(t, len(id.unlockedHiddenPeers), 1)
assert.Equal(t, id.unlockedHiddenPeers[0].Name, p.Name)
} }

806
client/test.id Normal file
View File

@ -0,0 +1,806 @@
-----BEGIN PGP MESSAGE-----
Version: GopenPGP 2.2.4
Comment: https://gopenpgp.org
wy4ECQMIxCwasnP17I/g6Tb1iWhgzseB7wo7Bsy1M6QQ0MsvlshLsDN+CU6B/ZUF
0u8BN36qdQJWiICWvxhM5Rja4ZY58dsVNZ/oCtvkBj0BVAzjlaQ9y3+wOC4AJLJ8
yxtI7gR1Dq9b1qh6QQMiZYg1b2wjAw44Biv0Y0p3HnbthR79jqRccY9rd7rDRepO
Af9BLyw3PHY2s2x4srZI9XGgJcncK0R2BoBPO/dCt0Z9exgvZjCVVWlfSWCDPHn7
QbgcTBdYUK0H/X7fs9HaoIphvTfzqYaLLulKusUPyN5yUZmR2PzdhYYyhyQ0zgqE
oUEMxm5OU8AKuHQQSSTbPM9qbU3HdDRW/nfvnhSHiH3Jf5gvylrkBX/nTqIdQhX/
nmxM2BvuzR8NC4CWNs+zb/t9DbWJDvsnj9KO0QJ9337txaCKmp9U8gclko4PpBKD
hELy+luvp9Uyx3eDULMf8R4wk5vnPQUFzlJwc/jzCMMO/N9tT2M/5m8RotP9qWQr
+g/fkmhP95j41r9YnPJYXWMuLDv+CR5YqyTDY99j3so66e5hJ6bH6+dHxVaGBf/t
jwLKaQLFotFTYh4XD0jaXJCc9DkBGKF2+oJp3vuRcCZoUMN6T+Zl4ckl/T76+tc3
ZKiuzUKjiDG26ST4VSe9ro9kcLuMAU6pHqSsN+tyAmNMHolxVtaRrRPAmrX+3fs8
Ujk8cimrkuOJ0EFo7awWnNxNvvzvjE6gOWzbo69XuyUOcSO+jOgBPVMhztZENYKv
GQoMXr/eCVjS42YDgCl+MzEN6MbyXAk0WRrKuROy3Inkad4e3opOmr47z3DpzMAJ
oh+TXpGVIJmhXw98QT++6yjsTEN7vY3MCvX5U6YjujyYMFsXCKGRSLFTPMICf77y
xCjf6ZbJePE69aDcaByT+QKQVdgNZSVWsFQjdTi9TsAPW0YwNvaOxpXcxeCPp94r
uIHU8K+TlMEraBfGXuiTBSJBxHyeSYxIvLwvNoPAXwsZAX4+nkx9Ey33lIhsUQCR
az4VFzqZO1lKBSO07BLCe/L5LsnpCJFuTjVcVndfzku3Bi/P0NhEFQ5SGQH0cVy1
eHsB6sdEDd1ATfIcgNgqi4EpBeHnX4yonOlMVW93Gf8Phvw5vXyY9ZqFUdIVY2Is
oNwKHkTHlonbBV5W5Pp6cVpzum7Y1L2Dtce1PcTdLNTc0wXDERm6v+9qBcta1b35
9RztdAWula1k0gh4sw2OgYBqOBDo7ErJxI7ne7PkTOvykBgelv02FkN/AR5MhO1Q
gONjsloT+wXnWMBSgf7tCC0nL1Vb/5Np3qNeAVTGuzPyjSgYuos7bOQgxZ4QOwuE
t3i+Vfrh6TDlEZdmg76oqAh/oyApdFYdV3ZtxlBBht/dzthhMPFrwHMEE63yTDe/
TGAcBmWfsS3oZw7zsUHRW4DAdUPiWC7c7MQ/5xDvLN2ZNHUijNzfG2ctD/Tqe1Me
AgKmME3MTwfnOh91tP39Tprk7MnnH3jKK18aP5B9BD3UPv3ByPIx6JE+VGIzjuoL
hhMaIg1kQyEC+SmRhXjLjrFwROuhpRvc2nSd0Cpt6+vPsXbrrbQm/t3ShZW5HqT3
Rm7gsO6bs9X2gQJGLn4D2MURSZBpgq0O87Hn2UmHDF0FTjQRwSmcwHaGGRSoyZfK
tHDwouiwEgIZnKYkHiCrbMp9tnDdNWWhEF7ha7CMRY4hPO5KYWCF3UQepgRWz/NN
LxsEzxD1kR7KHZ3PC85WI6oN72gS5r+Vxz/9HSL8ofGvveO6P57oYLchL6VMK9CN
4uJQb4pA2fxg3+hrmYiHS3uFZtLmJrrdWu2TocSMwtSmHJyU8Miw6Vt6dOWff30L
SInVTXcVmoWW3H4bYvmum7/TCABh+AlCCQhX1Hg4Fi+N8WscJFW42m61H2VV6XAV
oYHCSkXUP0CgE2t3PEXDbse9hi/sYOH8t5Bs+a64wNxay98V2tsu+0poUCm36HZP
vMPEiEgpUAUJH/1OKnn06I/XFuzy1GYMrryS2EQlEpC9/IkWKJ4E3FWO6CHdNzJG
e6KFHdCLmeEE/cgdC2W6FBxDM1o0bNj37NlD1UHp+qsl51yeR+RSdDn3Rhntds2X
ZVKy2bA31HbQoallsNghR0gHTWhbS//2VWRD2jgSsSFl/RSWJUlqvENNWyiqhk84
d6FFcvkoQzdRS0lGkFgcdNotXJiY6Yszx/y79qZkSCXP8vfoRIgpk/x7sw/6xIea
ooMU+WLDO4rjA0pPNlRWCh91KBsdl67w9Gwh1Ndep0Qn6wvzKZ63dQsoGhexxwv7
pqXulh1l2H5nJdOZmrv5fFoUhFY5amEjwtFB1SRZo0Oj2tlPqXeaPqupf+Dp+XKU
FXNJzMkjbl43+GuFuRUsLfMpUSTNG37QjG+GZ8nHVhIrh449it16dMBFFTeqfKM3
0evIyO4O6RYQgymPuWYUSQjeT71BHw6egduxTwn9nIMXyfLfmx/yNwL476h96c5J
lhpeIGeiR3477ZPJT7SLQuDrkubJsw7/6E0or8Bh5OS1utUgpl1ldyejGJD8cFVF
Civ2PHddAWyiVZhWt7uSak9AxOvr3/a6PoQhyo0ZeOCoFsn8R9v1KDq6v71pxy9h
4rwgIKL6nmRJQD0CkaPy7Wh6Rdl2MSxrjYtubi/daGSNnT0awB6e5ysQJxq8NQgc
IDA8rkMp3bW+sRfBi4YoidxC4lldaZNnOXK4nSe/psh2YIighm47qAh0V2X8lApe
s5dbk6bhudUnvPbY+zjGXaOjWAFyzVw+rZ3m0AP028ouZ15/qvz3aRRx1TAZkK+d
zc5ktl73jne9Sm8WrF++q+71BbKp61706N7estuDvCw4+EfFvM2wzSqTGJ0yh4LE
uyJMPJY7OS73+qxgmmlNG6X302IjK6JBst21UtDP3GGJt3VU85DuNFaA21Ap+1u1
A1pISXzU9/NaMYkg4VtIbPo2Ai3k2CKP+GyJQ4wOAt0HTaW1cy7Kwqc4nqO/f43x
a2h4jFr2rNc14iOV7WFm81LCFGBTwSspnFHDgLndG2Kipohpyxh8JeaiN+apVYDg
kFp4O4+mr/Auv6rYQ9VxT/e9ix1mbLFnJhlB1wwkxHbifH7YOoHh13SWbSoNrmj6
u/NAaQJdL2wexiw007WXUPvNmBVUfnVCjA8NLVrBdvgADFZP+3+CzlHeeSOCIQ5T
xrgI/ePLoGL7OskisMeecmAu0W7L2dVFlhbMjN5LmRVNzLtSGpsjcf3FZymkgiTJ
DFMMqpJVVJ1sMmi8FZyzwsYJnV0W1VvC6xSUM1QD0LLb9NnmnJ/XIn3Jh0kHnLWG
FxpfvsmON3xkNXZwP5A/lg4uprEhmNaSSJmlyJhawOo+cDmg0Lz3cnepjgqNRwVF
vQF4YsKm8ssX+iS+x5POtX31xpX3TbHZeJlFwj2GJ+3qiQHYXDmsIXyDEFTm3134
7rYKHcpwzXvjK5HMhzcE9s1Djo8KchJ3yAu/pktk1BdaCNEyFtgsnp/iPdQZSAfP
Sk4nYGQzKU5HzeQ0I8cex9aoZkmHO0DRiy7B6BRnqszBJqyALfeOUQXDVo+VxjBS
/7o8+Mc1kFHBPsW+3WgkyMIr7eq7M5lQzMP3Av6VzXm4E7k0HjKzEhmxCKQpcSZN
s33KX8mDeoaC9MiMsNLLut1oUMdH+UMSAOF0omxDv7Hc8+3ObZT57Ua6f23wICRj
sXapEzeR+9w3nOtA5G5Xxm0L8DEX4L6WvyMx+q6EOzTJzDlm6RsH0OAREn/lydb5
TWV/WnIIOYLNdBqwrhGl5OuyyWnB/Wvrn51tskVJoa04TOCYepsWacFzaDlmyv5P
WNdFQKE5hJQmeuEd33kyhZ5D0U7xJlLgrGAvufvW/dYZhPLJhNMDbVH8/lsY/8MM
fffBvv8M2Ffip136QLYX59KqCbKzGwgqWNsAgkN8ECcspjhULg/NJ2AjqzngHbg+
h53w5Tz/OkBGS9XyFlXt9gJnEie4vtK7CCnWtldlje2kwkvz6ugvSm1qxpClLBKs
8DUo/xyFF4FjWvQlo7YCHct6FvZw+I99kk63/b9mdK+UiIo/agXSVkq9dg5XrB0z
FTna+3wSZ5nZmgbys3ajN7a7hmrUyXTDWLXYlI/igf0ZxIa6eb6E9Kqx/n710KBf
H/Em+YWTc8JotNgcpRdzBWNS753kPhCJ+7q5h0TfJQ2C3BmdC0QbvX0v0ZOwYckR
Pw1YsWVbyZ3zKJcjpmnXkp3CaMPb4tyPpir2gQ8oz1hZOEsuE3mwcQX0uRjvMq+u
9j9vn7ZVRIxCFH+q0vjhB4zJxlTfzIfcWBzM7zcG23yAb491PhwWhpiZ09DaDyL6
llKznQ7y69X1Kwq1j3wrB59JEySeEFd06hJQgfa03TExSq3IktrBmTCMQtoq2Nds
x7mQRluK6Ng8jO6j8+9uO0dxn1DhFFw/SZ5RMZRX/ba3iRUCma2qHsWbZXh77u9V
RthplwxdawbWay5Lz2LlR2xy+eb8EGej4DCtTYfkGeyZ5ohgw9NaOFUeGPQKTGt6
O+ZjXPJXqj3FyxX+sh9gqFvRn/AFM2eyfP1yhg47kQY8tvDrmhW2Uz46kHoHUJ1c
TddV/2STY1+WLnsMI09sdU/6UUp8MtcTMWFfezQUT9Guq7NGOe0CrfEOPwgd5n0F
UPrTixhirDOp+Hiv3i5sqyhbOf8qEib2Af+MLtq3anLDscvAG5/pp4VDAltSOB8p
Nsxym/oE5Nd+ge+lxHc9iE2+gEQ5jqIFqQgx3rLId7A6YdlVXKmIxfCez01RFAeW
Yxag3V4fiqW0DQut3hsbVg5njFDM8h1njQx0jlHwnxfUI441Um5LTLhgj00e5FS1
O08FjxxJM2OfCLao5J54L8lj2nbsCj8Q7Ly3J/XktF2HLoB9b2VRHpHk//S801OF
ALTZSSaUmzzUIdTcdZP4KYgJicL1Ah+CMMnuHO1m7k/tOG04HoOsLOIvV78p10Eh
uHyzTDyPsTLrrRpb/+59ElYiO7b8/g2/CxH3rHWA02NJ0ZxfbGyar2p842hWHkTO
/PjgWC/lUMmxQYoAfHJ4Hv95kzB3VUFtbQeJsEwV8NHY2yyFeYX18hef5rN4Ec1G
im/kXP3XiPuKqCpXtsQsJJUBMRNaSZAm8XZuUEFtu8jEr/lB/WC5aN0kdn+hoEhA
3ALFBnhSBVhFg0gy6JdetkeScwgC98MmSTi+Y2bnyaA0zMt8b4c1Or+h6J4/Bxlw
G/I5ykz49wOMvx7fzhjXyDCCj+3+WUebVCU3xPp9xzozdl40vWPLxnWTCKjupET/
7NrH/hRYeitmgdOksS7e62GJZUFHGQqYJpatSOt1FEW+di0XjmL+tLbFI2WFCQ6w
WQwAJsUzemCtZ9XTok58FLNd+aw/DJgFLqL/xUOHrNpvMiCXhO1gS9ux7e8a+do4
V0lNZ8yexnVKrdPKnSRFxwOnQTXpaM/JM6koi/GA+3YR/rxc4/kPgq+lretDZngG
XHjOSQu7PvJW/Ww8HcsLkoPIHcXLO+nG3mcytnUCD1JmI8wPANMRkqVbMqNSy7Pj
1hA4o8iFrNgOmiSP8LYmsMx+5JqhisFumwWQEAqokBX8a2vKXR4xG4DGYZ7kdjRO
qckdu7l8PjNE7p07P7M4LfBMbGzIR6QMHAwmKlMQBhU4ikhy1wOr9uE28r8Vx3Cq
xZncsp0LkPVMesKOmkB7rVGgH8BBJpd2S/+1IdqZbB15OaaqJAirSwb6vdUOuuYp
kUwRzcA/ftykmPBj7U29Y/scVSAIXpTmCrB8q+1vvBgZlNU7HCuLqbPk64kifR97
TZTjO9OiMxfGqyuO71uRKmHPca5ihdX4odK7bYSvKWTmriJeDmzh/bZx4umEbM9A
idW65K5JUmXlKEN8OBSAhWg1MXf08B8QypGkPf17Z7/K7hKZvRVxFswLSuXi0UpA
FZ3AV2s/4yz+34mFVVjZRJWBwyVHn6f81O/VNP09BRNIZTAc0nkFaTNRnjsQtVoV
2Zjfa7osZda8v3SnngsLx1mkHszgA4W/+ff6J8EjPaXzzv5+/OJOyCjC7gGJfBUO
NF3C+tOBMAQRXifx2FeUaa2rLCM6s7ia73dJy0dJqF3Tnjxg87wKspOnr2iKI0u2
IwK3buF5FTJLj8Q7i7+wXlZbRJ0LwyBt8IlV0E5ojEkIlIknRgfRe5X7nnk9Vzdl
fZjVBGo8GkyddOBHIB7RXNc/gKg6ZS4cJXg+14nbRAUcKvTEQIqtypIx/9MxyFKu
SYpuWkY6xYRI9BQrmIWRu8nOqr9SgTRtn2t2T6m0n2hWiUQLu4B543o1bYsmSZN7
tRsZzoFSXsIiBCDdmo89MKHqEExLxAdiVpHZ5GXKvLUOAaJQC1umwA6UKM9GZsc5
PR+T+eyjecnyK4kIO6vfiWTv4rxOcg9vr116F0HuMVKzMvuKyCigIOEkTLvl6EQl
Wbkgg1ekjfCPErjwRLl3hBYY3i78Nl4trUdMXb3F0YZVSaMUtaXGBfVrBExBmv9d
0jgysX/HbBsw3LRSZxaEVl6KQbBdsTt9B6QnL4/CTI/6LcNDwybLl5QEiOydnTDR
ahottE6k6nUBGAG3Scpz8Jle+FiFfeqFAuMPmfv9yVC0gcjqBP0qKZdPfuOSqnV/
bjFO0b5xZNy9TqN5rJoMmqRttGCtMpJmlQhUX+GMxxaRa8R8Cjqfl/99KDEykx+b
4h2LOtB6jGuVrwJSEFskhZyMeH1WC94YbPh12lcNZwksBti3WKqgkIsqdgPEOBqy
2dlpBKwT3tbmW9GKaqiefbND4Nqmhqdbp/XDt/BFyzd91rg3tZTerFK93TmcGlGE
KaOI7JLYp+mjpX4+Y4MEjEUpso+GMXsXyJJDMD2+181eu/UpiQZsakL9h7SA6YwX
GDUd1mnXdGCDRQvSHFXKn8S8eageXNv6ujt8SEuiDcamXAYGS5h7oOeqgr+1Tk5O
LnaGlms0VqgPnmGZcEvtN9qrUqnj3kV9cOe4Q0nQdnj4STwA2nlGcUvqsyBc89UX
C5ZU74LXlMMIrjSSsFkIsYBDmZJVcmRJGyxBipBIGcbaEbum6ms6qUWoB+Oei7AJ
f6+JxNr1TU7YeUhmgKuHGocJrwYl5j+pBSyhY3hTAa2rkzKPCwgVtp4vGoX/QeWn
ULrk7EockTPE1Z3m8nvnMTFGdS5rXAVQxQAnLvWRzYaJmv/EzWluEjlV7dnudDP0
+1hyJoNNZfwIHwBjqi+pvadk3jfDqSAn5s9o306XZFEeLdAXdcATApBI8iEVNZqG
euT2ht93qiT8YQ/R1ayfsZwVewK1oHK+3UtbNgHyr1yqNYFrba37RB8adkDchIli
nkE+AHAk4X4oCj23t63BcuF1aKr1eVgJnqRH0IqDE9FZE0Jw3aWf0cw66Z3RgMel
EXTUwX90F6Sa+Q7xu/7vwXNlO2cR4tY+lgZcyGNFpIjObv3vXpF5gkjOe9avm8vn
5Y61f8JKzfI6diw22JT2INaSYkytwTdyL9dLjZ4JfJQX50PrzXA7Z1DLrySb7nqs
pEya5U+6w5rzw4w//ewLN8vzqifOMv0GIj2aeAFJCuzEMV3BaPtUln85pghVG/u6
AGt3KFRonxtRaAqB7Bnpns2McvRNoMv/Et81Umc9FJr1xDP7qcc1EO9zERlwh9/J
8yreofnJkGixTEAqvl6lBsfzP88BvW2JX1crsONPz+yqu0X7IXu3UOaoGHIigtgR
N2yZW0BA3+B6KRm2cFP5SnYgOizu1rXpSl85sDnvk1QCUaQ/XQTYv2IZjpvtyy5i
ox6WTRanY8SR7W5L8CPeLwCffOMJq+/GfVvNnsGCp5kEOZ++bWNs1eXuj0nyc4gh
GZz/bMxABs0bfkzZE4Na2efwwWQ//0EKq2f4B7oZS7nyDVdonxXYqfMXwfF4cCuN
9I3aI2Rbr9wzdGiDSXV0n6XQqbrIfM5J5oS4nos/LmEQVTpqV5XpWMH8qnOpr7Xd
f9XAWgDhF1pm9dnfbSCNzGxq2j6yQPrkBxcLuhfZ82Qb38stl59Hkftk4CTYe1VN
+/WPMsvxAktc5bOBLRpXIGZcCTqQ/usvtSCBauL8T4lQnAMBFBTqW8Gd6paMR0SP
u4Uil5t7JQ/9zhIj6C1kuWHnbMPFfe2ST3myM2l2ZGmWUjVgkFz8/lJCpv54U2j+
8m+CN6ltzf0LSWzR8XXcR+Jl5TJrSPL3l/cSOPBHvdT2B/ZPFCUrKiokWAFShsug
WnbUcQ6Qz2inogN+YGEv7t+02VrGuAJTiQNPawttgi7GdWa459SFy8A/pl7gk20w
9EvqnyCh3tL8I6PXhuS9WX7JYurxq7avvh6428dUHSx+FLmIxgRQawxyt/dBTVXc
MmdiNzOzxrwwo8coBEvQZC8p528ydrUykL13uhVYth5c8A+3u/Efqy+wcbOD6fOn
YrvHVVQIe4IJ5Lo6qwQ9P6cjddYWhgdtfXelZeXn7tOE4N6CZ5fIqKHfL0R6XT2k
ZooU8wkUZav+CIgQwje2AtLlFhzZAdFiY1K5KnmRRUFQSPuG5B4FynlLNH9i2qDg
hNiCvhZRr2rl+YIRmlz5f2ITr++b1S5F+sM7N7ZYZi3PDCdH9pwOeLD5CDBd7gjo
xjWMrlBJ8vmV+31VSIBQTWZ+hPfdIs38obPZWJHLPmKlcDy5ONUku8PgnmoFDDPA
XRDVlSEH7a/cuuZJJdZFa8ZuQS8AvJtYxXyKkhb6ntVWCA7K+ug+QB6W5TlIFhM8
E1OAjx+6AcgcSLdy2eECuinTFjhTYti8N0riQpiBeZ0hMRWuiqp2q4Gmj11fpLZp
+22YyF8+ZcOqrlQ39WLNM+W2BaqFRgJiLsaXQkgzulmK27QiLA9CxNzSPbauMi5C
ka5wrlwvS7zyhotgIcr5lY9ZSYa0ZXPE0NFTC3AFoPY2xy6mjqgg0BBBxo7S6FVb
7oFrtKkcWab7cilkYXyt3QvC4u6NVt/d5adO/gtfcOvgiKEFi7iI2ylMMG4jyiRq
Bgm7++GnzaJzaMSBAuDHURl5WiUTX6Zu6mPxJAQqfkQhlu8/zlo4sjzu1d9M/mRs
2o6Lec7wBmS6hMHPTMNjnvQxnzJPkozYu0znO4+biveov3xMSB/2FIMlmMntEY9R
AvF4eFjrIEqwNzaA9pRTQW+rlkRmJ7hJKAr3/yus2If5CSY5/IDO5/cTegFH6YDz
g/ldXNEdFW6Kuw89jqwUI2EQQDsN4avaz5x8YI0C1clChNMKHPvxhhQRuu+98LnX
GYe2E8Af2AkWGKOmHhX2i+GHYu10SP7dNIY0jVttI/LgJRovnyUPR6a/yTJ9DS/w
eXWm2pHJe+Hc1vA7sVba5WhkygwyrnqOGdFNMI6qDRJYbxuRKTJS+pZumKgDd4LS
dIA3xpmm57M+tfqEp2feQCYwc6liMucnj3G1VMBBMVBEPI15Q0jvInmcXk9Wl/wh
kG7p7UyIfKY3t4BJK47Qw3QeJlJwePOSWJ3LCvzJoU+YwAVJTczw2tzhpaPvaOHX
98n+a991mClHJexGpHDnEAbu4TQxps31b/3Gutg7CsGvQF48EZRYFsR0DHNG1JYS
pSiCI4UmUWk93PeN1Yt++kfqPZb7zaiXZzD4SqpNkzc8oqeDGAKjhi7SZLDi/AtM
5gmupJj5XCLR+MrrT+3qVSfJrqPPyyFdI9f0WEAGg0u4d+R90CDV8BvcuUOPHKZw
gFrq7uX8+/q6uLF3NAvknuIn1tl/ZWOTQ83fA0ME/mxW4x0TeVpwK7sCYbZlMVom
t8+yAwDXztzjoBMF7Qnxgy0OR3xjHdsBs6PuFTHP3UyEupakQfs8vQZ6MG0jNlQ9
hkYzlihzw7NRvYAEVTC+/pNC2xbgOsWmx/MZ9QagdlLcKejBBeNW+24GmsMCXUJP
u9UV+ALeOdEoaB93IjRV8hrTKHCVdlvu0IYVlxwN4WoKrnJUdWpdwxeYPR7pGe9C
pxhEXjR00HaiJMDOnfPnwAUOhLpJr3XbYXV8FAOQXX0pNUWaShH4sWYvLU0ou+it
gDPRuStP+/yTHxlBh4WrE2eTt/b5IHxAcRprKqm2eRUrM38A9RA1nXNazP7PbMUa
w0DWju+4BIsFAHsZ5+JdTZHhDxK4SkCC1UgyVfBoR2Q3kZ4LHVEwXBOPejn/Yk91
pKUIh5o7w/KCOCOGHMo6y1FtMypKslh9zHJbwmwRCkb7SqNojLKTDSpoycxgdJHX
f07KpXrOgI64yLGJLDozVqD0q+0wgapHbd4jpuiJ2Xz8WvfNBET0iiQ+ohgVp9Is
Li8cShn+iqRsdk/3d7pWO9Rw3QSeWyoxHroylErW8iNt69goQLgCxHkfE9sRHco4
on8Jb8GodCXfKZEx4Fsmz6zgMNjtlPjFeqt5W+BFbxDWxRTUD2iMyrPUyxoH+CPk
d6A/XTtrXpFqSXiX8wx4lmJNvUPyXEhf2D1IbkcriUQmTsUS0QZn3pHlTPFc62PU
GztLQtw52CIspYeeByCoAtVzo1w2l3jsg7OTBnt6LsUdcOPRXmNDaaET1W+D7qkS
XKopAisiSfwahlOYlD8hevER6tN7omYrWsouLHSdgKXJzTvW93HInmAl6oqoGG06
337Beusc6JGQgoQg01PaIAFzfoqDg2ZS31wTQ+J8IrS4nKMD+pV0I+aoK31Cpabi
RID7yZ5FvIViCcT1r+wwtXLWfB0rqcseHVyv6mFBXM17NmOVX5xpo+DakdoGqxR/
o7yjEKbcsA7B2N+phx9ciENu5wNFVH2/z59sbzBvNAI2nBJLO2I4vnRGjU0nKCwB
nmNcSwHpDyhu+XDKmCEpIp8nU3tNvGdEAFauB9kdUEIIZe62NGYjAQHnrIayyZ00
te+/2dpXciKWHPGA0Kgew7nm6oVplPegiDJJd5xctQ7Cnf9etYPdKL5vGkKwW3ki
KT/b53kDNrQE7ubVfOkqlmeN+5+84OjYwv27E3OlPwAT05H6nqUyy1CldvO7uzAY
fqXT8nh4tpTQ1dYBV/8OxtV9jUy3+DL3LaDdjFwiyYXo6laijhpgGnoCoJ2csmEb
k0dOH776rxLNSaSfXOCTlmardck4vnBjhJsXmud8E6AKTINGrFDjXTvTgDkf1DFJ
HjbPJmTK249Rmx7571fm/k7kuBWkME6sdX10VyIEMGB7ewYESOPefGQo7BZEkd9t
DGHe4WHtni8hhWeqG/scFasb4UUoD34dNqFJ6eyqe9s/+3OMHXkCVImSB4I21too
ZGx6AZMHKtuPsDSUESdylSbQ8QyGU13ZZjOg+W2kX4rmG9Sth+Azos+uSE343Ywy
TMVpOmV+LwwD4krNoZGVjBI8JMFskuqmjZvFjxCxdpugRnCmqpOZtmRg2zTTrt/8
3yVyuwhciAh5SfW1P2XnRYydrZT0mwuHThjQY+/BJDSeNsEcPtsKcG7J7fcSL4Hk
pl7VRaFlCk42Gcn8Xwc+dhS2WEKFLBkFlj9SjjzVj2/PltOUFCBdCB8Kj3oESEHa
XxwYiGX8YK7WfkbTeqA1NueEeU0iZB315xm/ClO3wJ3BGWyzU+sOA626FPeWk09f
5djffuAI+kJ9jUnEBm4x3bzGJfX3YUa/xB3RIe+LnjCDonNZdJqgZnqH+ouun0lr
zIqttMBYa0Nsqi4cJZ07FHc7XROq1oG+pHPu5Gkvaq6wB3hFhRnWVx8hNCId1G2/
xOX/wmroMd2LbdXyDKTf7aDeuEz1G70EDmM6WsoJMSLiEyZVLn0S4xTjd8FhbsU4
hOpt9S+6qNGkj6i1N5jq503KQJvJM6R+nW8wES08hrLgGhFa1MEFUmvXZKumZ++u
I/je19tO6QoN4Nzr1MzG3QAJ5anozq6EFpLf1IYH0dXp+frJQ3rBYOk1tYJ9M3Aa
XzzcfONQIYmwSulEqS5JPpqLIEOURK4PeS+JC4s7ymjZGMZLAQp1XzxlBq7UX+CW
2zHE2rwJaMuHknZAHTNc4PWxeBmzkH8JsIBrgmJcdvbiQIg4as/vu8WCb3vTRVUr
tK647QErdmi5vxUI4g8TNEsY2nF2RyuX3zjBymgZh7ioXBgA7OimxiiJKQlndP85
Zy+69yPdHSHjljnuuHO0c7m22ikGEXa08V6IoPJ7H06uq4diCVSDj+gXKdsVPRrw
NkOXEsbDyKctErx5eZGj2nlvkL4TQ3X2kkOjvUUPX28mAWLnBjjiJnKeMhVBSQk7
9VFe921Pn80uGn3XpAMOLY0APVGhs8+tRiB1yfxD1j4mIhQO1QL11eGWb/k18Dub
AhOWDPrTwp1hkrKGCH1HzthSNK8NEqplChXkDoZTJGIR3EOFpLrwsRMRfhAvZjdj
ehGcWo45uKpNAa55DDButsdfO5sv5ZTIX9o84iXfVmJgLIeVQwVg9yL4hJcILZHm
h085RPLjzcIMZ2s1McKKtlzQ9Np8WDOwwYQlmtVE1c6Wzl6k6MoaHPUiqYZbDVIt
pEE8w7bpexKE1jV6SztIev3EFXFq6UjY0evLoC6L7ab8Diee2MTGdnbdE8tFvFcI
vvFQb0VF6zxqR9Fe52wvQdiDsuqp+fPHfvr04kb8bRLkJMVPZVtsHg+8OlGhoBfn
JxpE+0PAisq3iPRb45o3ndcuJtgmxsYS8pXsZU+l+prE8MGKLj7BGjgw8OvEj8SM
ypWPIFv1rQW2e6U1jUcrg/gi4AWPkdjsroBTC73syK//43lTxMNG59mpUK+4kjw9
qo7LfwOpzXyg2k1H7BCsKLsnwzCV58PSpuQ4JDsbfCfuvT2THyj+7gygsFheqznD
kLTXMVhNLRN3BiL68z07dAkMOOsqJ8AmsCfmMpDtfMGRVEHWHrvE6ZHh1aHFS9uW
a7sdXp+PDjvFfSufbuy3cVoyQ09OYlr1deKQbYswFXkyKCQZo0BITjLPIUtqJUZ1
BTEI+6zlZUaz++Qf/EgpAFhc4rx35uvrsEg7JQbFTdhkfyaZhtJqvTxgpc3v50dZ
4g2PM/UNNPkO/FvoHV1AuCFZy0tmpsllWvhC7HdBnfvKUTqGuZZggIwq4WqCfVXo
RUqQS4IcxF5Cu7G3ny/8YcCvatNCQYSlRjLFRgbCIpYP/3jOAF7TfNtnCQaM0KfY
DlbsghBnSejNvwKzIGw71uhu6Rz/lqlLlKPrLeTaEmkhJnnfpfwTQknevKK0hZ5P
ThbOWOa4ynELNxj94iKdkhL5Zj0zcDPW5rsIuI4klzmpf17N2EbpKTrkK0fMkXt9
ZBOf0+8zn2q979ASRDoo9neIDIjfYPM7aKAuIBpHMUzJQr0rvNuk8s3/9o6dlZtg
xkY2DQgH3qN8BKAKmj4ouk9D+LdWAPQDinQOsr11z4VuRLYtzOHFdnZsOvW2cJNN
6s98s9oQ5AodCXAVk+r7hZBXjVHwlA/HfQ/CBqQTvapmo2hzehb3NSdmNgZyGRA2
fHeZGFDEno/yaUY1qeZWC1XllRIN9M6/tVhHs0UJExsp670vrrdbwN3+0RO1+ZyQ
arnM4eZlVdN3Dlsy4XWLmqRY2mhS0PHYS6L8L6PZot61Mz1tMIZbQW3aGiXXzHE6
YrWGL1lw4kA+fsad4xhvrF9/SkfKO8d4IudOLedlXv3yuVHJLG8+uE34vzDzVse1
KyC7jtEh1AqcC8WbZ2+gvX20EAKqbRXWKceVOXHG4xAXV58sji8nU7cTIoFkFoii
ypYs6CEShXAeXajL9z3x5QBOjgqopBmJE0eDqmYQxx97cFTMFl5oo8NeGONdm2Jb
CCvrAWNNofejHg0MXAFOvreAG+sA2wqUzNUUSlJcWc5ZG5Wv0zc3UI8SSlgv+nkx
78xUJXudnHOWfdy+MBmO6gsdCXbgPK4bDyZmzETYD+aBM2LgYljtZV2ZzwvFmLx0
YQt9XCnzD+d8w0iiWQRFcWb0csgWueMYX4mvg1SqZFm/teL4mRoVsYpLRUYuaZh+
H8Umb4FjsT5POvgKO4K7oBuXU9v8klsQ7IpAUPEU5bB1XFOI3/tAOZUKP1hajM+2
OiBJXtTomw/J6GpHtT4HySQatmrB9evpo8qflkQGk/cwOEsi3bgU3R1sDN0pzKeN
wrCchTS/hNpGXcpgPNIlM562xLiEjtbaLdKIwdzze+7ctlvzwDgiW3pg/LGXjGW3
KMbTe8u7MdpV5QxH1y8PTmU+vPEyv+3W9xjEQQ4Is1jaUY4SEZl/8S3Y2IDLCbiM
bNZDOMY/6N0NOEuQr6aU+u4/Bz+byl1S/pnDMWVSK/YoRQx6kjqY0ER3vRUqGJn0
Y+7l8TLy7sGiBPm6UZHu2VVJuYv/Id1avqFInizBHVj+/3tzXNC0c2ILaHpKKgZJ
H3DZqfLobjx66tvY/IbPrbONdXPqM4tY6ZucLUl61nFIqRfDErgsL6n6M9ZMsSp4
akuccoxKMgKOXjDrtJBFg9XHdAuXtTLT0y7ItcydHkBzEdR8HxADFMRPRQ5J9NSW
GC3wwdg41mdhfdmzoI2Af9+kMQO/Idpr0ILPldoGNNSVk+TbVYNEO+xDVJEGCiOQ
VWrlsm2eFUI83i5uK1lt7aV1OkqwkxG7/rWNusKZXtIagRvOG3slJQ1lfU0kPK2S
yyFOmJOrs4lg2kzuvGnjYEhA8MByMKiTLs7j5FNfbVYjHuAs1EmDuPlrW4dAEgz6
gtdlVjS3UGxfWHUB09Gyih3PNZlmxhg5ufDVUY2KlW/U111jl+5bF0i6lWvLa+19
QVykq5M0CIq7Y9wlehvs+DXGw8DqXZrDBcQVnl1xYwJy6gJ2ZM2aAJiF9OP/Ex/o
oAQUVIrF3CpLERcj+ljn+PTl3/R3t4Vcpp2z/KOF8LGUjTff7P4KsesKD1w5WsP1
NiSuO30KBgfggk2F5mEZBfatX0X9dyf2LICgB1kTzxzRcDrm3MEemS+1H+VKcMAl
dDWjtdL9petIlBb8O6YMjNASArCXu49W/O7ku+YBhpaiy3fganLGOA0ELKoWgtB0
RZeXM1KgPH5wPjPnFX1RzK+x0kOXljjOSRiiuX2tJv8rYOfAZmTLuT2dAeNJwxB0
03xG3NffdjqRavYLYXmULloaWOcwRwR3zZza9bgvJ2nydBM0Q5FjK0kY1Z6xnJ1f
CIMlagYK6bWEO9vFU77xCuwJFNomfg5ahbHucwtJTR/jVNiLMJ1qAq7X8s/WKsVd
h1R3N+lnVML4+Fqw338J+AEyGWlS0MW63NPs7CtSCQERrVRKodwccnv7DqfFMyuK
2jQFomkegNGpBudQxCLShRtYQJKx61xKfzHbfOGY2xDOQSFS6mh4DyMlkB+ScgUD
yAWhnghdcz3YCREOS5tONASzcPD2VJtl5Qd2I56KNFVUOGMgjgpExVZV020iPgmK
o6jFdrn4jX3avuj2L1bMghZczNVh5brc4Dw4KkkjFznld6tdRPrWrfe6wphPli/k
0HWAAD6BTJM1R0I/XsHqZgWjIzhpnm1QShP8+Hp8lAQR/FTYak7WWgd5usQQgStm
imJCv6LLkkUOtrCh29GebBUqKI+foaaOZvpA3qyqdCW5lmTetbyi/PvpvDd+ANuw
ZyGYepeDmKEt0VAb3KK8CcqVAlAWj7ps7Zi8PEtEw3bMOphyM0JQkaO9ymcMJAfn
MZxAL51eck1mqvJb7PieNv9ma/V1u7HcXfvOpfHFHa1mK04cIHwMqXTSfc7kvNAG
GtFg0IjiTak96WzNEzTOhqrWw1zl3P4gejiYmEuTUuth088JuKZrB6rKAWlaCRbm
fHRxvTnVcYgwM2M4P0tbw32NRT/jEXpRncLhORW40ZR03YedUrEyjTHQo0xRHebw
33vSpCCPblS6Vd1Kx3u9IMbHfQDHEu3maYXXtdgH6YGPwszxfHHsh13535gLidun
VvFwG+rWnJgcgt6bOp22c6IJYuWW8aGB2OftyqvE16Chw1LRVAqfxR4ToN1XO7pr
V0eNSg3WhN6IazBAT2MQaTGF2sc3nxzT9XCjTfsBtKr6QsE9hodV4b6qcjjA04p1
ZhpoLypQFpNZYy0qoB8TF3koZBf1xP9hipaWLpqfahevYak3tKkIRmA3o0JD+342
sQFeDMIvKjeyxxftM0hNRg3BTtAN9CSMYs8OyRk3izwFmoBsoEQ2Qi1ZrUpEsjO2
eNP3zvAfWXMjFZM6kQCIERntlP7Tr6KCCIAl4k+GckJdcR4JkyTuKHOPNIJd35PA
n4KkIy5vvpd3DHmyCE0OfWoalzSbyVZKB/7oUKU2tbSDgoRnd3vSydhCPt+vY3Sw
2QAWmB+j+ZRIxv5pDdrWxwLHiCtiBuuxyJEYQVlpVN0ckOmk22GfrAOVGpKB5vm8
sJacI5zpg9b04QDGD7WHCjIcNECCX8JxaKQCEdm9suAYgdhkUi9wLrXghBRwDIv1
b5wKV3EpzrY8xiw8Qzx8RhQ5vWXhnoBpSuW/V4Xu+yp86mA/RLDKDGSYw5E9l/Z5
OB1iyxmLuR6XAxs/N060anb7CWdD3vC9BzhZ2WW7mGWKK5ubK00aicfxmXsfnsry
cbd9h/LPGte7ilgf9ps2x0gOAgDqAzZ/cloZ1irrsl2UWIMsY09Zr2HQ5UNusUFS
Miw2O4KkjNLNlRSVzZRJtUil5Li5/IidgxwhSLlj1ShD5w9alsKAw7B2x7z2vHbD
O5osHeoHCSSm5MZ47b6yVC0IGB+sHMWahYmNCnw/qu24UgN9QM3b5Zx8lEBMJwXZ
6UZAPimsbi3JqauGFIlHLrnb+A0C7JpGMBei2uFPAimj26ZEZWL7WAnL/+vDSISa
VbtrahicfAE7V47a7jNrOwUMaLEMBFNRC3hktf9TMDoLlthtXebNK19PCdxDCTRn
RApCEbFAFwlTJnWJfilcbQv1NMhhPuML/CtTnHfX7Ua6DAOb4kEiLiOf97lTMSo7
naqPzifX5mBfHc7595YVL/98WLmFQcPyjL2wP0I13OpwS9GxiZYYewSq8lwZJQAE
w/TD+lQwtHWUDz6/z4xuloN8shndVtnnCSiOp47f3uNA0MGhX/KUxCclMOBYFfAN
nR9jqd3dyiuCLtpjL6EyoKgYbmtoErfj79hAX4nAmbvxy8vFXLmnZZB/FDvy+DDo
AUItB5tagl2nrkR/2uxOLSTHlRzCBK6dAh7s7tC5DB+jn/2jAV4m9qaxOxzXcdJe
bU2G8oDUQozYkqqcJ7r2Hp/T0NzdZblng5+AuvWBwkvF3fwdb6fKY8WUySuf5hPp
LrxhaLwUNQYwKR25Yobsl1ZTRI9IKwBaiQQOkZUh2YeJ6ex8qdfH6rA4/D+X8zws
NiqmkzBHgHiyMknsLpdESMtl6dj5xVsHHcf4VLfqPofmm3jyWhlyIJ1N8kSGw82q
R1QwUxjA/5RdhpwDgDxzs4LOdTt3ZhyzW9Lv7XVCB+x4AIIcxttTM2dQYiyweCn4
8F+EiHbSFq8oT7YyiOkxkN7i/+fvt/zZarEKZiWPDCWc9Oh2JsgDq2XeDfYCGBSs
AgMnIFKZPOsJLU7SGXGTL7gZ6/LXaEosyJetPGu0ipmIQqbyzzJslbU0HzCkDe3z
pX2yb2RMf1xTVILHiUhG2KWk3s4K+U/9OL1AfansYLARAJ3u7gx9W6uCis3FEc6h
dxQYarYFYwtblYCUm2j1STmC1WkgYeMG5gd7F7wsrtMAtbolbk9J/4DaLEFFFbBQ
MYfx7r4gZpY0q4PcnNWp4cCZE7ThxMs4I6fD4UNtVdR4KnfPYYUy3gyK3sXPlVfd
f1Ldho8zL9ZMhdtnsM0Ts9eBQC/3otMM4csvnmsi4GrByNvPUrWzyScP+rp6s3hz
hJNBdOIxMk7v7dmOiNQgX0zh+I6i204+iQGbbvwjWBJXcQI5/ATNTYF5YMhBuPeg
87HK0sIU6src/Oh/mMGf4zp01A9t/mtlrpXw29p0HnFXVvqyK0FcbOIyR8OCpZNy
Nlj6L/X96cpvLVE1pR9rtV+4WD6M+wNu3lDYsBVzmhsteL2fm67pZaWVniU23G/n
PZfLQy/AJy1m/8Xwn9o35zcW8Q0UJ8dtIWPaUhlSVyabp4s3ZQ6vH6izBO4x3pox
5KEa4uV8QCtCsMGkVItAzw5bkGeCR9cBy4As1FEruPSQytfUV/G15TnMxn8IS8nk
6RsFTkGNo9kqs1pk2RjSW8/VVLekZ0s5s7e/LAhfG1PPfhy9WASeK600xc7bT1el
HkKj8xVQlGqgZN4/AcDhW5ELuLplzdVJmAhzoflBk+GEJ4/TgYn8gzKx95KKlrXc
uE7H/kG6ANapcOP5P7Sqvt+u9BQjufTxh6fwuW7TKZQVWO3dTsSXf3anZCKZ5Sgq
S29pgBxrtxQZuG7aySPBtgNagM1yEOIYZgO9wVZ6VKxKf7MJtHhzLzzJE8CBYkJt
/d4MDR94nlobJhXWT1I0Hs3stT2cyaNEcw6JFuCOPqphJFMO0DKmqJ6orbEaOiBo
WZiWDBgUlVqz7TfJu+KoqkvNRboJYxB/SZPnE/Ch5MaEQiF1574KaSP+37a8T1HW
60DJV0DCho5+9hohTf5xjDaQ1eBezfhEsDg0YCLVfVOoNYX6np7go13Zh96cw/H2
6U+JwOGEwHTalS+pKuiDboeOnqNcikhlnCl78z8NlScgbeKE7bDce+D6tXYgVO4y
LHnR+VkE+cIu3DY4TQXFBd5GP//MqiRPqRVvipkWzf10PX0NwUiCqZ90R+aEMcJq
dBAvoGlVIgeW4WvRI3AkH0dWWazC8Doug/3e64K9V3eu77Nx+vNZKAV8g+lH7ELF
UnntReqzmZzugsaA+MCZIv225LAVAYJHJMM6CVjOVUMtqN1BeFnRB9O2B6WWzmxa
rNK//iYhxPXcUy6WVaI63IRKy31dbPPbgjaH1MzCcGxzuMydBoo27P3uOUwhTB48
s4ooj7bVUwfGY/irm7W33G7djqu0YWGRcM8D4kAEi3zXFnaI8PHsGFLlCWFJixZp
7TF005b+BjMyEiCZBUnEQ1LvTsygfcC2kB4go26nPuxdHx3/fm5hHkuJk7XSqcXB
iU1UEp4K9HfZ654IO9Y99Ps0Ku3jKCwvBJvbUMzbqes1ET7FWh2jQNwjlOsyrSHy
HPMFhaQhNMOvJNP8yPnzotArvS4+LsHra2XfLGs7G+iNaRhQ5fzVV+yOZR4DI+cG
C2qhreDZhNrsgodq/Ov+q7KZD5a+6oDw6hafv04h/W7LD+bOYKBtaeu/WqviQayP
K/rkrTVc1h6pBo3vxx3Q+qIySLo94JJlhCyte7eZetuk8dcsqqjXA5DtuUYHLI4c
vEO3YI6Gs8Z/iz+dQvEjSjUZSaAAe6buO69UJlTGwZ8pzmZ+DwDpRE8bI21x7H1A
3it/k41ROYmSVIUjIyfghX85ZS3QSdMlkZV7pxn4hgC8JOxTu122XuQDGihzHtRZ
RmhXvQmUrBbIpos4Cd/McNf+1sRHokHaVxeBhccx9q3XVu4J+9OwZLPxoswKq91R
LlNaD/qj0poPMf67AejL7pNZjxEFf8crElAMA85cgeZ+IkbMu9nikk0TPa7cptkO
ueMTN00BNFQY3QF1A7Wuxd7agvxc/8k5Z4wzSr5R8SmAYXPS+4vkNkD8zk78vVCl
N5YNZZlX2EzplAyVmUjdWP1VfcRALSPpSSzuCJPpve2z0v1Q5ee7jKn3eW1uaua5
eFfGSEsjAGsbkElxrFkkQd3csu/GvlGYICfH4CVP3xqXcyJvYX/wLuy9BDRhtRlA
cwDTc0nEPfJKsNdJlF4HMs4Ixn07WK0S6P/c3NDIF3boOLjdLVVhjVnW3tbUe1Y+
xB14quJS2OHGjFVMBNpvO4auD+//D3lefgE/JXR9L6HSjcdhPkYiJrIa0jKw7at2
xwzeIBKkbP+TkwIH3EMpjZj8lGzb2X2FXIxLAbpaiuAJG2VUyj2reamPfuncjC8r
8YAlhf9iDt6IblGDbk2nF2/QZsaYlyv6ZV5Xu2Cc1HJ3xRR7Ig3A92i16upGzgMg
wP4Hv0OLHj0U+Q55iefIVA1S2YrpLahs23KV1hlkB/RMcPOIF9J5biO5jd5s0Ybl
65lprdiSAJIdR33Abd/KonnE5EPPKZWWxgQc/LJiCRb5/3wejTKA6fYQsv5e9T9L
FVf8vIaxtxqG2QMghy9woUSXiR8iyis3ijVQDq1xnlTk3WbyStEGahSNEu9VUD3+
XVbHygUOGSghtFz5j8eIk4p9I+uRku08KEuVAkSW68mZCMi0K4PgjRqSUmdMJrRE
stRtGuFR4M0Ia27NJ2j+TM13p7qt2PlO6ESgXtaxLj4LqFlACqorm5qRXOm6rp3P
C6SOHkHKverV89T1Vw99fsSF6A2DqULYdni0zJKO03GkNV5LLlZrqZ6/rX8c7JnZ
bDoOrzCRAlZEViNITApIi4owVZKdf4RMOsyCXnRGHsNDflB6yX9u5GAxV/k+DOca
vrMvv+LORgCQKLDwOJGOhQAzgHsYl0sJKzMC92dP4PRhudj1BbsPLlqrbcjCPzf6
DS9Zl8nOgIAy2Q4d3/W2IQ9hnMyaDnHFWwiGLxRf0hR2a0uwVIkEqhc2yyvjTMGW
//YVFHtBUo8yCzoLCWnAVcO0TGkBMS6g8obAApMBad8FBqpgn3BWo3Vjg2g7P5LD
gDZ0SE7P3YWtmvNBAA810FDoKFGLsdIPdpCiBNehd+Vt7M+amWvNuP7VXeZFlTIM
2PTil7vBz508APGGebHO+C7E1dl8zAnxiNtgdDG6eGsiJcfsktE8572rwdJXsI5t
Z9HAxG3mDfeIdt3GpzL5fiLrJxkK/TYdmDSqI+ZfZhMxOoSJs1PlzUmsKmuENgb1
doOqPI6LXAf7US3+4YxdTa+ZVSqwSdCA/BChbF3ey7o5CCxM1xkLkXaShQU6wppK
wtXHict8ukEz6jfKE1mxAUGXeFjsaqGcrt0eqLbePc7txnwn/4mNWv2D9609KFu5
5hPiRCB7rs6K4mgwLcB8E2iomN+ly/ESaT3DUHsu1pU+9kB610VnMV1isxy/GNob
ClubAE9FYdvoV14Sd1aTtVCpTqME1SysWn2M0OYDfKU5H1fuXu1UBF9rt2RyZ+2R
H2/sv44O4QifHQEkd5IjuPGqP/o8BTbb2fF4rMoPTp49BJLU29owfmDgwm3Niy4X
P6oHvdvqfdrhbQnqAQoOZRSUEGUfS+KHCLV32xe4FBrwrRk4/UIj/8iSYfgHmAzG
V44SFkad068PVq3PSV02snpFjswoyvgaatJ3pwlKmd3idBwAH1CdgM+zkR+11tpg
v1ao8jSdPob79hctZcUvxiP0y4y55pAWnDxbZMEplUpKNImaryr+gG2HMWLYbwdM
54VOhABGIMk5UTfr6+SHOXVrDt593dhU4lLzGrdTt2HdZsuF41T+BL9dce8dYv30
myuT8hzcIIu+2+p2FEpNiSLCaQ55ccrRYBU+gBiC1AIj7TFNmzzJY42wXftUcbgo
vUrNgYfc3gphClYm90qj5P7jbZ0icuZeCSxH8VQCvPYOFzg3c/bKCRYOAHcYLgqF
/AOCRnhyZrWn1npMpFqqcpEx7hVwH9nOq9da2jnscrmC5aX87D7wKX8jAFp2Drt9
QK4AHuZJOZNgJj7W2VKvSss99sH575Wxnw3BwhLooRmZmREn2+9yddvEswCUUs3I
tiPwtltsOoBFS13G4MjnutCh5qJYN6rHOtIQheCKPAuYr4E1nzhn/gxte/YTiMBo
2dWKQIBUhs7XmA3GCOpw5Ken2xQwjEb99W1HEszDCR5tPEnQoOY1AZd65Q7txdQb
mgQJt42YLbdN68pnBsSq+jFt9/ucEfeVnD7KvWUkDQaMgTBF8QsGTi+wnp7MabeY
/QCpEpTHnALrpRtlJAhF7dK8DIP0rAWmENNdTfImGrklR37h30q75KJt381P48Rc
H6eMEE952yNwTtE6p7eOxYbibYCw8hJ2Lbi2X/2MvndCxvRX1wgQJH2nm34phe6g
oQL3IMXOh5oCLoiz+bHFNMHu+vlvp3BcekFXWLKay+CDZ0ZitPrtgY1P4A/SykA7
rYVsppRJutCYcxloFigZassRzOvb4DdfZvSzVB67sAq+qnnUmiwYqnTTWpvi+NYY
swBNihpK5u6f23RmaoR62yJ0ghQ/zaa11JldWP6yJrIKyMWxTMIyAkbG3JlgIt40
PIyFmZKfSjhysROxoXa+gp/ycoqnDREPywtDfkmIUQQ382+f9vwso+4bxNfAncBD
G/y4JsDnF9/x7TVdX7khDren5+yfORDQ0RK2cDrjbI/n0Jsm88m2xCB5Tfe8p3u4
oCfURUNxPHv0Fui6ddDLgSsMTXnz9UsQmWMtywF2bMmfKtAQbMhnaIaHxcNZPEIl
5l2VGH1ZaBRCUl+9vp1+JPapXnT7lP34gd83f/cjWfAASN9TAhKLkNCC44827MKw
EBt2bfPcAVNVfXHIm1M44CcCi1Fq9umDrTLjcyT4KCUBw4cswdFUABbytA2Sxh3d
YC3PsKtQbSJUhfcqOmH4jEmzZJSLFbGuevEAK/pk1BrW9YbQmy+mYk9rYrJrQF8r
6NeOE5aoNFtlugO1iEZdeDnqX6Nvn7ib7h+gaRcZQo2SZaPzq51s3xgWdYfHQVjL
xM7P+GGuald+Qo86eFkSeGGjH9SWa2daQ1AjvNfEtYjK2pC/yTT4Qqz63CmKM5Po
oarGYHHl/i4KZ6M9Mba9v6y620fchbhlby6k7xxBrgy2EwAWNl+lJq2Af6oa+01w
vEhoGB8u1ky8d3qTBAu0aZ1HKKYQ134qktjVWtCkaEjW/wKEHrQKAZnEzht3Ymmk
sAHrLnSaANd1IAi8sgSn1rq2y9O5plTVABWCt/HsdxqCjasiyhQ3y+dbLW0PiiaJ
Xle1P6Ci5gM0K6Ju17thavtty/qYDD7KdxtUmAgdNafrHXKujn1Qrx0NXC62jfvr
hTSqRV4RlM/kEbnYRLa68LZcPwfYpJHZjHwfdZqgXyKq003yyLFOnBDv57lwjqHh
TumKGxe/DAlthqFambuEyCyYf0lgBhQmKdilVfCLqZJJwP1YARM0jCkXmY/1FTAY
Yj7qxeN+qchKnmz0pucaeCV4pOde0iGITW1nDIdZqr1lguxaUigzGT/GvVkqK2Mr
vW9woxR7pjtKD96XLSXVdZgYcaWdILGN686WeiYv2wOuil7Nu3d7UQtkcFEQHvtD
mkWTC/pm+6QHYZFMXqJthNwiWWiaauxtTgyG1OuRXbVqOzUHSesQO8CnIqtepl3W
isGObD2IK5UhI3yEieVmbzhrODjnI4OCnrFRQzBB9LA0ZBGSKdf2ekTvygqNAaKI
7PunS++cSM5/qLQJbYZrnpQw1vrQ4Um8pWyMK5pRxgxgtHxv9ReldXm/2vxUkwnF
LNcF3FHeJ4eZ7mi4M5JTIX7I9gtijZ2oYOC2uK1DepDN8jML79VKsQkxBWxLu82N
EYxVqmZhGzrTaat8nYpuA26OzOPMvUJ0UCZ1kXoJtQ5kvo7y1QcNLOi3mdqttjam
f73KaiEXTuU9Zx7GlDlGkgLpmKYlx+TtBLx0mjzBaBFe8GE2XR8kjyATXaXrYey7
L9y6sxA0hyr5Dbu1yjQhtC5D/vdBE0nvy5iIuwcNOJiQuAAgJaH2l/GMysDQTXsP
6R4gWqEhLPobtaO1jxLy5PVfjkrA4V4NQYmAuTfiTqHgkVnZdwHY8ue00SuTAnqW
ifBa449DN4vBXn+XS6aiYkzxDnTR+3mhVvOwFx0Li2a7f1l5ogmj+dnS8uKq2mQn
tVr7DNdPIM0I6pKm+Uy4OMGTCeAEybN6d5ZE9jerbHvKq4fmkQ9wcg9qPgp+6eTU
2C36T42z2kj98MPU6FV9rU9SSsbg1N16/4iZqN7H25z6iApJ9FWj83UzLsyehQ+G
tR6q2D8Mi5CLy0YbP8p6oOPNI0QhjxWXOvTkonBetxB/bAe60g41I/Ufr8A4wqYd
VWxgJFr83C1aeInJ3wVEg8o5UPUG2demwzwKwLax7NmnfZDgdb4Yg8mmYhG2M6r9
ClaeFXmhIqx0/DXvTHJ9+bCRJ68ZkmWrnGe8KYT5MSwnDp91si5QDtoi0VJAhnDh
5l2kVdT45DFuYuwjTW6+ZR6NV+YvNs+JhLvCj1wFJzTvKV/22BFlP3V/ZWbGcHPz
xAjW1d3YayElQfhq0bJ0Nobh5l7scGZdvqonh8OmYy6V6z3zBvif8kKe9IQapbnK
U4CsX1I2F48Yx/xqyRs1UI7f5m4jDi5P/TXu4CksZEHxWlSpXUoi2az0nqVwgADR
AqGQW/H3Sl4yFO941e8KYDFVbD7Cnl1BSf4vHROfdG/HfXidpTG7vGpEGzBTgtQZ
VB/o+CXN1fuQ7NfufRa/i0HBcAMI+Vea3fTVaQtc6u3U5HfeLcGcplDAbZA5ClcT
ze55MfLhqy7c2naX2ZhhPTtVU/ZZDZwI/554graVRCI6humGUO7lSt5H25yzDYg/
+vPFW1fz3T9c1TdrMHIedRfdhQ0qgWkcvJ22BI0j4LUv50szrY3VSZpMzZnCwg/J
iOcmlw7BYqQuO8GBxYUI7D4guEMKkDdq5Nj+s7vBsf75zn8ZBfRanvMiKDpBmRKb
5dNhDPZJNI1uc9lCyo5eOdkg5UTB0NVwVOoxmhDsVbhwUWJQSktzuvms/zOw0c38
x2csKFhcogi+92O4un7NmIq8SLpx86fT9kO0PXdxOiB0cy8r5y34QJnovRdBgHDP
/8F8YvQXhelXvyMh9fhdhyZGwinfAHD4n8M8OguCufAUGuwR8K06UfX7DUv1U7Kq
acQvUYQsgYmGLLhRyB6gv/x4ml3BvGXmvVKdi9d0lTVPnTdkdDceJLQ7NGzPdyRC
KWq++zcMHHS23JGaLFoJVvQVInweXR6JfNwSOfPX4A2KmvG2jmnTkjAh3YhqO9u/
Mwda9yUq0UG5sBxD5xCLvHsXeS2cmYkqHS9DVypU1HW6hTS5PQMNGcVuJlKHhOEU
ZxYvUkW0knc928/zBxNvSHqyr6qvWnzrRwFZ/j9e00RtIW+wCbTDINFIlKrhxk7V
8qRg5LC4qiHKrK2sJDsdbqmwcLlz+uaxDEg6bVMH60+zh0GDrrDrLJNM99aoU/5o
hku5wOUkiLZEQgNDu4LpSpxPh/TqXAon3g/0OSqdj5GV7CUxKpAuJkDfjDV8/Yfk
nuDWahwXByVgCOrMps+Qn1wwbLTmfj/Ym6Q/GRZwk09O+DA7LkX8XTUG+SXoYX2z
Kb+s3Ybj0+WP+B//8MmPS9AOuYOvwY8SFKJHymkifg5+zxjyGZgQIzKqHbPUvzQ3
d50c9zv2EGjMZm9JzmTgEur5u7XAeL9Iu6+7O9mh2jxnUz3NV6GFNNbV05wnSOO7
9bfIEjei8HnS93P2dE1Gmmzh3CIz+OkKkn8noqNuamHTmFUB+euk/uTym44k485G
yAXUmsRO/R6ColqGn3Du1rhQMlbaiI06xRm00UgPMOUFOiBBeLDq2nex0tkwKnGW
dbGjaWxhAoSSgvv+0dhQoAycs+KHtKrXWAAkNILyQfJ2v3R+x7KVVQyYxJA4A7di
SyjI1vIDZRADhiMvRxM8WRusMrnjHLFY6ZytlGUP/00sn2BM0i+fZabrj7cqow8u
UzpygaZVCq+W0nS8KSxfsHurjpl6xGxuAhgT/IBq3vxFGS4YX+Zt9eop3yqp8llK
X2+eAwXVHyLgF3gwibA9Z2uvDfedOl8DPcXpthnXE35I+UKB9cFeuQNHWgXaWZ1x
GmclUxFhAqrMwyYd7u2rF5AzFMAAXTO4OGGdERrpr4dvnugTY7dx8a7O3rrncMxx
G4Jrq995Nd4T+icNTFJw6Q+sxcO5TYdR0+A1nuRrM0MK9u+yDgdrzFdeifz1kEc+
eEWZ+0OCjf9rB9P+7RHuQeHYhTohgDEdTRpTV4Z4CIBCDB+om4Y5zUY3Dtv8ASwn
tV0OWxroujwJBXvN03jVWN7aaBrQ//QAAMC1qtg1M4Gecmz5j/6NRsWFyClU8ARj
CZLPEBB4t5ayTOGeUFHNhj/vKuDotqz+brE2rh9nVhVOqrtL30xFdmVGDFndJo1r
KLsRarhuK6Fqo67YZ5BjqKcEiV5o3fhWp+D9p0Tf6TF7cQgo5L75q086yVW3R6S3
PbX8x2x8baP8DHNeYBG0jSrpkQQDX9kUmAG4fYpiWpv3WyjrX/UGBauLaWhhb/op
y48gviKMA0SeHFv1TYlZqDf5F0JhQR3DOm41k9ELSqQ1sN5b7srHe1EcsbUKIhXl
/evZ0LiETcy8+NKMswJBUzamrpjO8QzmlaYzIokxdens3T4Uem9SjeLvYXVUbizN
PuvbTO98lpVqArZpPYQxIfFfS962Uyvf/MD/PE+JYP/EWabMJKDqtKXsPjvz5ufO
8eFCdV4DWbxX9CjYNuWulyhZBP+EZJog4XL8usICiLgCsNoFWOOT33DiJwAejJr8
WVQDkLjNvmxAPifexZ5FCduBPtb1KhD3AkJvAx5o21dhc1KA/dbrg6hwWMqsN6kG
ABBuLIZ2jBSm2ENTx4BFFzlj0Pi5TJ1I+d5fGxBRMby1Q07aIvzOUzS9qjYoTxLC
tp/8/ftyMlpEbOtAYIOPYOGblHrWwtaT0wrf27yhSdudfYuTFC5fChZCSh4E1bG6
ueFdh/Sw2c+ZtLptsMu9eec0hpFk1UWfXpu1aioe/kqJpr2V5OHvwtV3FtWoldCM
x6LhLnU53ZDD/G2HTTCh9TM1zEYCCwBVHLHB65L0WJNFDozNy6222gVRDpTXJSfb
py7Mm0m6tjvdg4zJ/0ojLbza9/q2kt0DIRBz65n8KPER55Zf+qLpKOTKNBzIqx4K
Pe6OsF51uS+WHYkTmH5ZVW0zQnCPFq8HPdr/uEAaHxA7/TLBLLi4cUWPV9la3r0Y
d8wHAengpaK0kkuulbykGFiSrI47K4GB/HoB4xRuQ4K0zZEMW1mzAZSirJfwTm2a
cQX5ttDl3Rn3vVixEwPDaPmjwBsERC6wbtOPbbdUXuXgOsfHBuMQII7PGXNshp7d
gJigTcaHJ1nZNZqw6rfTbJ83UgeB+xqKy+I0G7zHsDYoj/hgGDYNATnVytQvBd5R
6MuXIqwny9Qo2m7+a8XL4DCfYUt3rMx8lB1fqaMHi4aM/mBjnVsCK6vyB6XpJZc3
Tx6klfS36tSMUG5gpSlBZubqst85VClFhY4amuHI088QiFv1Vz7QxzX4x9t5yIVS
4S+NFrgOCooJv25zhwvpUuZVxMgS70o4IwrqulZ6X92rM2xZnxVbdMhqMJA+GrBc
lpysnArWMh5clJlQc2av7Q3mYoyzmbl810kLLjWuKcFEZENua/x8OOVapgHSCZGs
GfQ1wQzsTZLa7iC8PQlMyJisYysRaFt8j3FdYcmppfRtUMf0IEe7Q/MvvCeLf3Z3
M9YgOqSNwWfU9AsCsxEcWJptH07mEjiGK3njb1SroElK72jUW4f5FEwteNE/3i95
XXI1tXKulBsB7fcEojgW/Keyh8SDgFM7vizWG8Ty9d/NLihrBc8tFL3ZPdiyzrh3
RWO/DrWSaW0dR5R//p2/OU5wR6EzeZiiNJ8w+xSjDLyVw8mNqaKnmQrkNA3e2WUe
9qfn3jTZa04kA4MJMmuYjrzth6vjUMQIRskxv/jP5H++/KcQwReYb9IFF2qkq5sX
wSjeMqom3gVMdSHJ9WmIi+rni1YpY4E3VOaJ6Y5B5BAUpNQaTvFmm1KJgAN3otik
TkLs/SGjRBVHafCAC7WzNOJxFduFnvN7S2bl25YyToVrtTLGkJbIYVrM59Bf1eko
pLYjpjaG/3clocv84OnNorvpG0edJEg21WrDEQbIYuvDI7b9HS0ddKzQBckE0HXS
IHQeFl2KHQLFCUU8lDGAb260WohYsGoepEImK2RKjJQ+Y/zeZo2xx03sgvNmqNIY
wcFWOvWDwtwW3yspK0RbJ6B5ThEOzyubTS07Id8r71IVkGgwzkU2FgrFi9lCbrTN
9aNEz/zDjYs8K8VzHmQDZRMFeqXWpcLY4sUKmsleUdf8I2bRpsKu1mvD5l1VtFpN
RPDOnD/q3ADVuSRVk9dIeybFvGdPKA4kZ0huKt6sJ1ELCw8zA4kziuIqcrBdtzUP
B43GNj10VwdRZvipcgRq8I7BA2HxhkmSG+/RSuu+8twL2oB/UTFnQ1aoaKO4nDsJ
nRbaea56//33eQ1hbOAkzcQmQdSOj0K24nBnSLHQZN2djBehrrfDasfKX4iDz+ga
x54m3U8gH3mzhI/YFf8aK1RKXzv246O0gdPpZx8/XtnzzcG1VAHytZq0fvY7sxmX
bWYSSm89Qw8fQZFlGcAuUBNuA5ImehS7EckeMAojWLoBTyz9axwEo1zZfDfIYxIg
+IsBDLsdbE5ERaS4xYk6o94z3YlHyemwzStolpOyN6iZ0Y3iEVHHOTIJgcMhoyoZ
xr1r3VtpgJni6bBQ/+zS9KpNE4zdEuToyAQ9vP/viWdOTz/9g8d1DnXx6k7UxV/r
UTFRL/oecjKzHfKsh9vFV7GAXV1FbjbbIP6eAev3e4v7le9BKF2maUqkx8efSgv1
LUQmR4tWHSLEjNoMrTZ+YxPJnO/xhfxKwOQaioRSwtSfqdrZCsUeL2JJ62WaMYgu
GhlzBBOcU8rJR7G9lJnTomSONLSMDcAUM1CbWB2P77+/9NR75BArBIWJnfoZqLbP
7UPzQAWr9lmeNlDPQGmwlg89a32oAciaqlj9ckddgFfyOWvbfMtU6DjdhpHgrvvO
9qxdgbkiGxyVW47ZAE/xBgw9VBvk822UOFaxWQix27QejD102xZnPpqSWu2LaKfR
MAWoVFpP5EoOhq5EniX4Dv2/86Quwc3u2HHMgtTrBMIpDuHby0Y9IR9tCN0vO38p
nql4qqD5Z8DXB1h9vxMntbCaljxU1dDeUh1WAyaDkf5neTuWLeNEDD7gmv34tox2
ewhzTdy8eLLb/7yLBeDaqjSEXTScReKpyNhPNi1HiozRCgjuEEhhrWsQxQWo8Y5U
ueDIZejYy7XaOMcGvbZDE3OFS8TGQIVorDQGh+GDVuOSbCjPYtNHNHMkPqwdKcA4
dVyF77o0/xMhq+u3uzCv4TwQhT8N01+k+aThyC0vJzOOLVXd08WJsa3LWa/x4hrS
h6LG+iThI3EBARCQGqayJS37+aG8IG0q/ri6C5joaFvossfzNElEVHOLVL8EsYrR
WrEavVh2MzlUTFF3FSJ593i7jmI8+1bZMo/Upho+cETz9547fcTkVgFUTi3PQXqD
S1XGHotp/RoMQGXUdk+ddti4BYGj9zjeyVHIr9r4Idz5Qc4aCFNdzi2BnQOzF85E
GD74pPRQaBHpIvcm4rW2thQ0zDhYyX7ybyD1++Xn2Ycmm/FTQ3CF3FiSfm57ptwc
g8d2RYzOaZeZE2gGn4DuKdueyHmscNKyStFeqSRxyCLcXfQaOIU13n9D2aUuFGxO
VrespMJrQkB+vGBWwcjqWBO6cPwChPcE19ilDVaf83bLTXKtEsDFxhfSoNi/E+PJ
MMRTOg0vDG/q30b7di/Wmm2Q+ab65RnZgKr2yX0/zcKx7A/66N7itIsGpB7QaIDt
WxwnCHNhRWJlJNLeYxnfU6PUara8iU8QHeEsi97ZDykEtlwku9WTcaXAqkR9ziWF
9QLlbRRhM28kf8IztTuh9HFm9DZKyjdQukRZrvOtGFJSu60TF2AfTH6wMty2YNJZ
6QxkLhI+I9SJ/qdH0njZUr5xNgA4R8a+kDKv2oq14kSicL/regpyO34oYYCmTkM4
KJzmyfDDolB/kWqsymYGJAD7lMYLIU9ZGQOpgJts6vOgHK3XjGkS15oEIw6o+8Fb
bqcVOco6hBso661EX7s2iPmlaGPu1ggtkEBvMAPhhJaSaXh7EjwCSQVe8drSNfo9
1eKkIDie8EJWrmMz1KJHUEpVTH85Kbdk/mH+UDk4lxQt+bnHN28zmBGY1DJjA4RW
xMmvNyFt2sDm3yGUWbBTRXyPxj5IMvP5m9JKScoyMTtgsqi27g2fL2mHcQ+pavPO
SWTpaXOJuqfgqygOmMj8sOa2GfnMVJbvwjy6yhKW9p4FjMMVGltD9TWJZoK7aH0X
+ymLWFPKbgvIKF0yG4ge1UL04IX8q+BNfX3VNBU+FuM0S6nmZ20s9Ja/jVxUGVzR
Z/z5lA07vKBQOFOBXRQ/HrC88I/1/yJGn+KL66/03QU9LIMNBogvFOyPvMaqit23
Qo8ibGYs9RmUCVpryBhfsDkWzZ6PhpSXlWdNqnjdAVpfa1Gttg7zyw+ykygjgfgR
c3lBgQvQqJxQ5Bia3Ii666le+JwSflnaFj3kBtgepaIaxWdaIG5XVtKf55wUDeix
v5+MwlXuQKEvJ6o2rbTXJCIGAyxlX0NjIU9uYh3lep79ILiNjSQv3xOdvZEUl595
mWiXWLzKfaJauQ4fFE19hkV9R04x2nW5zvQeJHh1iSpJjXfVH2+h7k0kQ/ZTm6sq
ud77ALBTq/mcXsJe32IrOMlUVLwXvXKCw+Cs83vkF1yF6jmZ65ZFfuCk3eflx58m
lF3hlUcfxFRIzu0Zr4Fu8V9staQOQPkadHmgnh/hQA6o3hIgp4uiBQR1MsO+2hJ2
0ywy2gJIEmUKbvg/mhbrQF9b1Dtgp5Qcn1Dvwv147Pl8sCdPcyx1reMRD9B73FDE
TMZrOXRTUphbY11Ssyug8/M7l+oXoChv1qm7t5sziTNdq3EL31Cls7jWHdTfgwWu
pyWUeimPGCwlNrb4JI0z889cpB3zkRYhqS8rzxgindMRUq3fAZ7CgzpbQcMaYfdH
OMGLlVX9jLKmdk/Yoik7nfSDsncb10qmr3rKtujluVJwc62mjMOWPvuejQvMJvPd
93FQjFd4ItM0wi8BUVj+VLoQ0A26axDSBt7ZMv1YIdKI4pZPS4aCt5yPz4Y6lXDm
IM3ZUfI/Di2a5ars6CVXNsWGkvB1F365d+lihaBnnGzppDnZnCdHEoJyXGo1PlaG
AsH0Ev4/8mWqmKWFYFt5n4MW3PM9rAAYlKslwUx5yIHuUIJ0iED0IMWbGGe7G84+
R77fMdhF9zoZdSp4ylbGKVaEOmEIZG6/FovWGSzbTDpGjLvV+MlgWANl26mLTNHs
LyztWf2x7jfg+9p00pfkvu2OPMpI5EHpVHtQEsCEiYCknfNvhzQBOpxeWZ10gmZp
dFAs9CFh8qWhlizJolY6vSSrG8nGoJ4PoT4eno6hFtFCMALnnQh/gju5l4vlUWMJ
hT3aunHzcVSThvLPteeUF56+tWkknIJd0dlcGlz1GGByHeaPRx6sPl4WO5Fu1M3E
al71P3xL2xTVLCyVEvJ4Ch/+CIc9Dwn6rk2UgQBB8Bs/w43C7XqWLId06OCkYCGi
E4SW72Exf4QcTd7Q07WLsU8sroiy5xNN7ENc90j9nSbOTWQPkBOcGZyb3xEB9kjU
Se27wYSpoufS+t62B7mXiMlzrlOLXpDME74ftSlViCHuhkpDokd0x9ZxSjVpKQug
npSUMMEoasXBhVNFrBqeb4iUnQnye+4IVwPwu9sp241tKTnphfGWdNCfheEe23Ym
0GZ8nY7Tj+aZD+iyXDJABG3EI6cGwBaM6VFnlbF5Pm913zApGLWzxmVyfdVe9/MV
9dJ9A+pyxMoToLgyXysx/I+/uJSMedJP/ZIDxGg6K+pdaG0BBk1rreiECGV4Gdl7
WVnnibvKTHrewZjCA7ZJvIyobkQfOeCYHw4rkDkH7N8b5aGpFeTBXwyo3AJkh4F9
SwJ5KdP7oL8Oqmnixqtl4rRT7MOaxUGx0qdqWGXZTH5McMZ6UHvJ8+iLfm4HW+Uw
vbFXfYk99goPM1aihGuwITcC3gPUOU2hyo5XFj4oSoITaXEfGTFNbAz9yfI3+toQ
WW5H+lUnkVktY7VwhAmmdb+ybE+5GxucvM7H4UE1EHy2d2/cDSFBGs+sBg1H+Hcd
feoPq88+OGXVNjuOz2Dp+onRzqanOjQ8KFsTkkjTyHg5QeUTc6UuDbbjqXX9drE1
KSa0WRaBwnmCCloQ1LlOAUyudsdXBRxjnn44JUARMSsNAYWUoo8EWoqX8NxEcZXZ
nAzcLYwTmgX4HbAbzpYXxpuN2nLCpWnorI7RW+0cW9uj/4hV3/oQ2sfWPRKyf7fn
YOKiBYpu/49E3MYBRiJF/YL9/EqnCi/usyFmIMHHWsExWEw0syotvSJuqAdWPUc7
DtDnmNI9VX/4899AQOVswOKtTTewyIz7kjf8AZ2AXa6N0Atafd2U0/gM+KtQBEJH
E1iaV6kBbx2fthmfqIYMq7xytK8FIQopFi3wYD85kZP/+T+0SLOcbAhCfan4JO0k
8+0PjcONhqtf3zuvsLCKGF5sijV68NKXK29/cJqiD4bzTlZuO27KRDu6MpDyuiu5
d1Qofl2wjPw6YNAM4Wb6V4DC5qU/TMfN/ZIVqvctIfoXpkFrre0gxnLjPCQr3nZX
p3v0yLxpzYIy4PTicX5dYm1XEoCPYAZ5573QvShkxK7UR69ppJvm7zSh1JB2E2Sb
ioPoq/wDWGmfL4TpHWtP5V8ijrTMFkl1utd58Bh8KMvubrNyCvpInfY+6YjF8uKW
mfsKy33Jc0Vov0XZe/ip5b3g9OidupR1s/nAKbS0/8iIv1Wu7wU9iRhXaKAO9f9j
+xYa6Pe/PA6ywWoMUnBlctni8eU6Zr4toN/ZkA7+0GAVb6rhwhSy4etIqzokpIVI
oAqhEdINjFWvvdazyYd2n5LrbSGTnDt7bgGj41zEiPsNT7INzEztKISckrINzEYw
m0GE839KB9PXEXzDZA4wlAfZk8CZvF8dBJfjNxH3dokY+yl7+pY3XV8Hndh4PrYl
XQzClPgQjTX7hGqgwo5m7qge16azQIy5VTFY+9srk0g7ycYBa5CNKAMnMaJj28uN
L5O3MCJx1X5LhQa1l/E3iW4tOmC9EtU+fUfAGA8gQbt7pLdg2HN1eTpHpqmdWRHg
J3iMQEFHSzMly7QZsybGqJUxezcQAgRpTjgI2agKJ7AagB6NJmu654sjYEFHwi6t
qn5f6hH9juwdH5GF/54V8ReB4kY7Ro4aQe9btSt0q9f9gIbCt1BmST+3Q+TP6oOM
d24mWL3Gp83QV84HyjpNdEA0L8ZlTJg+ghsHkM78CF/qE36JBrZv9r81uOVZkQHh
zfCQ2rKCxEuhPto0mTJrzYz1jkPeOjdd7a7gbnQkckCrNd47EB6flxUUynjYOxJI
zlbi7ipq2xYqzS78o9sQ/QFyKCVCaD/ajtFw4VpgrTVNXPOOgq5+j1Zgg1dZdhnY
edzg3f5dRTZjBVLUGBAVrSdgugfa0EVCcB/1DoXkLYrtdihLQdYQpd0aEjAiv9pm
BNtqr0PBGJgR/cUGr91/aWy37jsT79O0xDWDb+UpN1TL864lhCJ2H2X8sLsFprZx
pm4vt/n6abZcPqAlnK/qhKHUhA1WGbLSrXqLK7mi0yOpBl59CO5ZkUEPR/vAFdMd
EDABbHoV8Wx9zg4hoSI/Jur7TTOuwRWj5PskV8YbrWHRRX1QLp0Bflya3nJrLLN6
5C0MrTqCtIZXytswUsyNjbn8nET137rGbpgO64LIjhsspoLZSCRO/76zfvcnCEW8
j/KhjrF5QUla0rQZ/bs0prcYXWI1RX86n+Bng1kLPmKvKkt6QyLsnsIpAx9yPTbB
KeQ3QS6faTALoq6xyxCS+PW4Nsycig5m+Q5/lUfIaVFH9gagFsMH/vhWbBDSAf09
o5TqiMrCv9arUqq+PM3CQiiFyeppUOZn29POzz9nlPG8HVxaf1OfSwZtURajucRj
trnwV7k1sL0GmNuK9S9I3GTb4iwYN6BlypuEzKIUSnXmUqxF4SeAGIhr/J4RQ65W
0L459pvQW3MBAhixi1pv9ZCpZaA1tuHzRMW1O7Iu0bfCOCC5ok0YXB1O1D5Io4t6
HF2b6kJ4Hda/7Fq9ElhTUEyxIY6dRVp9CBhiQO6D80n9VGXFUGbKhHqeCrEa9bo3
L75MdmUSjcT4mkcequI4AC8emmHLodYbDkBGcY+bb5sBC57S+blIZF5wh0yny9Wn
DxxWEZI0leXRFFl11uIbRMxRa7cStXObL649peznCFu/jZxUznDy+paCE1EXqZu3
1M6JLp8H1YbXR9LJVKoXVPlcgcZVlA2SVRhmrb8zDUzhs6ck6ZHvZBSgupTYGzNI
92ywvobXq5h80JTQrFEUsv7dezJpkia9QXRRHvslKJUXYXYuiG8o6vfdSAR9zeW8
+2mS2slb31qZrxdteHlkwkEktuvhbLTal5v8Zs8wCRy+PlQ6DgfcM7RubKbneUup
M44fmF9+FMJlK1Aa+PXwJmQ2OSiysYtERgNMPjN3T7SHqe3KzVrZIDTO3wzijdcY
aLG7kwygXhZ8vAbqm/nWXb+TU3mmsIVD0LEcrMAQ/Vm3MD99E3EhkQ172igcmCvn
q2LGpt9Rq/MM7HwbAN/NOsmgKUNq5tz/vVtUCJnwJrieK3aJqhIxozXPssQve3HM
AN54eSIF6QYznRuwYdwoGqh05ASEw2GEc8tGzjGYdei41gemxuk5D7OHHIw7Bvcb
3oN7reykxkfzmAZJrp6Tf3yuuun1bqyzRnBSQpzIzDiiGpX/cnE73CoyudMQr41h
08jQqo/ZVUBiN+J5ik6fDq+pJHq8jwlFCF2LENmanHvycPGmVDZNUoZwPp008phP
0oWc7aTwwnWqXR3Fr+CqFhOFnz73TQI5Pu0YqtsHG6UzFz7nhcw8emr/HsdG/r4c
Igncn9J7JacBfWunG6/BE4xfCBnjaQAc4blNzaTSTra/nUbbMinu5TaQnMFkhD/b
xcc/tP1a5vaO18ZkQm2MlpjePxEBFpTf+wVhg6USKnSSJxGf5rDgZ7SF9wISdG/5
4KvHP+msSNR/KelhqXorPlumN7c0YNNl7xcEhSHeCVhrhIiE4j/E/GfKIPSMfW+A
R1a2mrR2qte8tTH51LLOAT2C0kU4+J9i/4TlBo6BmkcTPOOotvB24JCjOXlD1T0Y
3bLkO6QRhaj/0YLKIjv9qOl8vAxjLT+2S0oKS77ZH89HhyvdTG0R4g1I6LluCh8/
khHJ1JW2RAA6/UkXFf3YrJEP+Ik7YGWxle/hlXzFO/HO34oHHodfr99V/Q2/Sz7Z
7733QTgVY7J5/PIDfur9SB1eah4TMDf/UVBv3Iwe8nLTjbDM/irpV5Fk+UQGA+MN
MCySe6KoHb14Ba6jyWM2XF1uvR18i7SWgHqiXIU8kH0tf0YX6uOJ3x8tVk2w4hVw
mjxKjJLTgXK5lrHpfMt2qt3LFZsAXpuHzzsHdffmrt00COKL4wY4yBKqtXratWmW
+gGZqevf9YMAZSbdVhKJI8+K8BTrcLOiJxXHUwrV4Hgny9tKwiNkqijnTZagyEDa
QROnrJN2maTJUAPVKpmjEqRrfBwzeXcdqrhGlGYpr5bLckLK9fGtMyLl7uW0wXde
CAlENJxX0wOWsrSu92XOmS0S7SLwDQk/YckRgsOs5lNb87nbnuO8A8e77Gn7Lqxj
RDepGGSkEcBU5paiOl4ngWYuMgMw1RPlPb/EOHB/Kjm54MirbSfYhe4N2jSdfCWm
P3RiJtj2oF+TfZxn7k/pNiInGuVB4dHc850UOH36h2pyipccetDYpdguH8Zxf//5
CKEJ1t1yXTKzTQlVmXCFLOIwplt49uoN8IvymJ8NgF9ZEdSVnMihm48gb7mBUmuO
0gXVLwKhwHyNEPqu4kKlNKLi0YFG+2lc4PVnYJrjlqeN8ek04qq7xUgDNZBPzjh6
G5Yei+yTIGPf0C1XPkBop0lgYZP5INej+ebPv1T2a1E2YeoRMG/G0F/P5knuSmTx
y47fJqFYTkId0iOUqAV7E0LTISvvDRDmdC8DT/4qJAHhJu5AUDiPh6sQH62Rn7hW
poDI4wv56yqPTUWOfwHpQ0DZLT1axShqj2nnlunOEKIesiVk3tqJNUGfXgqU+fFp
gTM+AghxVMZu25t5FgoLg8JNTA0jGOqPxfDju3OCcI0uwzC3Pc3FlN0H7lPty8it
tHwHWtlAyWUd7oRkBIvlHLvGHDF5Tqx7T4QyNRFcO17H1rGwlyLIx+B4IEg7q+VC
1ug0DQSrAQ88SzcIQIChe11bJxXV3tpKlLVepBZbWvEpJ4aezBBnQwfEQT44/Yxe
iOumIjotH+c4lCSy2ZQc0Xr3YDgWbjRzjgRDIGK4QwWOAgRap/qip86Xh1zAzW5z
jvisfuY6QGkqoTNJ0k7AWhB9SliW04HJ3H5m6Mbqbzr3Ccy6b4FbYB6UJu86X/+t
OrgMgMpbxpdqZIsnA5YjumdxcLf5Uso57akOp8krzTBZYaEwklyUAorzSYAQqzys
ifvR9XkdOG6IpSJqry/sHOxkHskgLLCQ8trkbYWfgmOWgDD2uge1JE3wT5U73W3b
C+7/gv7hAv7JnRDc4XbKbcsLfQYYnQN1Xk9lVCf7K8jERC28M0gpmanpG7QnBTES
CHLXxIlKwOnaPikROhIOmayjoUbH74dEWKNEtaJZ3pxaCtIpJ6OBdkH/y4TTojOJ
EaIdHjLHzQJAluH6xaLpuY8zngqESOaU/KmA4M9SDjLGjDa7r494Ghbrhs1cMFiW
tZJdVScm2gJONnNv4cflK66nTIGDpsSGatxtYvw8pRoKNkQ7QnzQk0fG5dpJcIwY
5ArIrdEDkUnO8/3kwd8yQaDKlzg2uAhzcC3BBhst3zRuq/P3XJv5ioJRjHs3Iytl
dURLgFsNaCbP+1Cyd3O2qS4gCpbdvmo2Wa1pfo+GslwmguHBGHuNFKkP94X+93BF
Riq9jjtx5xfPuNMl2NZM5daDMBj9frXPFUxBxnm13kqsnPTpJhYABrUGPHAEI9Xk
eyVqv5oQ/jzDDy+fI5dRmTqNX9k4q1LWCafKIAJKU7BtkzODzjYBmUxCzW48ymJr
MXi6zKFw8LUtJn4jhP6FtdTkeos3YwoTn3sVUougA3PmJRo6NTqU13EoxD0n/rvs
+cN+c1LD/SzBohGiEb2tBWPysnUVaBHyvMxFL1RCiTteVn2zKR75QMxz5dJ/kI2K
bZ99bYKbl4lULJ8EdPxgzjlLTObgEPR5HbRggp07sDRNGylvSpFegNkZ2ka9qqn/
ALctEKbXM+1QJljEaCQLsxwlRTeI4D2NYiDzqwUFUWYq2ZvxBBkqqxgN7izUvOds
WIv1KgUixHiSZGH5VbicXLD/p49gL3IIId7JTsukYTHJibsJtrqWVt4EdMxHS5vn
sA8X8/23EsNRU+FfutastsWCol6gABZZT5jM9dwG5aPvo3Kww6zdF9fV7aryrP7K
BNMQlIrYPYN/elz5IqP4rSuhxgCndJ9HSppIU10HfwGwCJO/F/gYhCZL/3Bmv/1I
RUoBZHxDSokjHLgLJFWsPXvw1JbS/FmoXvOTBd4VTSx//xjzdnS+Pek4N36uDISQ
SmVnnBnfRwJiDwPyJqQ0VVBZCJd+bPVIqy2oGWa+zaFqsSHcvgRzOPz6A0IZR2yu
OWcQInnsS5UNXNyQwjKzYMFKkcmF4h1o4FkDDwQoYykSwxipckeac/wZlCbe8PdB
u0Y8bLltULzmP1Z40Dy0XIfG6nIMHBxDOeCUYw1mqKI6rDGfJwkkS4gla7Xm25qD
k9UeSIDAxyheZwQaY2UU7YguRqFzpxw/tZvOw/7zxb5k9oPJM1NQcKiqXFCxhNYp
a0vr0qVsEgILogXSYN/VSTeiFtPGl4mtPyzIRFPVecdgEKZwzQBXRoWPlxWPsfcN
5S3zqek9MEBbgNrT1gdsxJxtSkBpLjZiGhzmab8uKpy0Lhuzo7xI4BdNq4NJM/Xt
QDhnZdwtIoI2/gr33zE7kQ7ARSvblJ/dS87veS7aO5JvUHmtda007tj43lggVieA
feY+kv8rKJXMMvTn5gcmoH/NoWT7d8reJrLqTrf6KwiCyZhPEjYduQKvXeE1i7JL
fKPp/ULDtdmP0/1I/bjQhOFC6NWc2CnfGKhk2G5WhPHwsg4gpeLY/4tMEZ+9yww3
3ow7OM9ur5nOlIUuheOOdS4HUfdBB0yg127EPs/E/iEGHj6JDAUZdGMxiuPaCekB
abb7oHH3dmUsm+6Hye+u/iXSxMU0Kxj67Y4XOD2M3vgNxM5YdP0s12GWtMU1PJaA
5v6TQILG/oWU964M3ANPKIpWga0cYwbUrrd1Pj4FzdvF5CPVj8LLXZEeYO5xLkuU
UYdWPKtcehgf2iVNCx3DvDUh1vA/yU/0OBBv9XAmx4JHLLE81HxLg4L4qbq8UheT
Z4GhwjjyMzk3XkKEO2DcL0Qt4dv5+PG2I0qY+NKrnwQzTpV1TCLDAeXEU7UQE5Lv
zhYzs+90KZAoegVA6IxFgupJ38nPpaDynsJO+EwE/PX2NIXtRw7304N/aC4yc6Zj
8Zoqrd/Y5GzjvylU5yVWkZn7l2nhCdSn5vpqPctkg2OkRGoGgeLEwlxdwvz5Np7j
USMR86W81vRJwEhHp8q0QnSyblRdT0eXQxGEbNAEiR03qGN4OGKHQBEuVPBWdqz2
PW7dtq/n2A27iFz0vFwLLHgSwl9D449MIe6tSahHSUD4KvXFnW0GKXnblmlJ6r63
i3iTgZZdjZNU4LVhxoVs8dQyLCPRdV4ufqnM4tHHbPvNCpBDahj3qR0DS5AqPark
7wSNgxnNbCJkzE4gmUyzwhqmP7kpANryQ9AIuuAQYfeLNGf8Kvb8Z79GqfBcaxPz
0m9DbgE6xjHggtoBWaZC+xO24ZF+dtifE3KoOtcHTVY1ZH56rwTB3sYxRWr1ND+I
UOOF/zgbkXIOjY+aj2ubr36fwYU5+yXCgJWNC5AlQqCotN+7RPf2c8uBtlvQNy1Y
obssCcooJibHaO+4tyGuV7GStbOnhD8Uk0nTZdnoIAKSOk161Fe4HmGrzMjVORAU
OGc1VDcqWjrKLuAIk03BAAhD2stKQjKc55bQDwGwiGPIBNZ9D2BUfxL/vhsu00zh
pVOPRlWlsCMRnYoK0ZglCgU/y3+chEh6okumJ1ugy42rQC3ybTWWkHEaRmEbctmC
UItstCqXbVxsBRNVxkeR801Vme/v01gaiTZQISVgv7Ll+tiWLimWbrCEoY8ltixS
LgihaUJulAbRjzbyr9MnY7ipyR3wPOlTAO2Jn5ejKddxVYijaB2dmMSy90y6pHhe
i5EPURx9wcZ/FAIc3aCej5Fi/FbSsrORkoFY8qzwGnTvB2WGE5aNmPwkoz5YPXlz
H8DbWxUp2zt3H8QTy088cnWraKlEE2npu2jX3grEDpRtFd3AhU/MkcEVK+apYR5W
Oe5LSDXef4ffbSuwhE2B+QsQZgsB4asOX7pKbtKfI0NWfVw2MeMpAhrssVABL45X
nAMe5YHf+y/MkZUlfh/Y8uQt66Ok/pDgxVJhf9wLWqYwd3ZS8wS34YoOJjvR5Rpt
RKHHj8DGaM4JjtMbpoOjzxNu6Ket5rZd+9qSlMyxgmgTxKltIkibUHzuGASQbixj
gUply5JRp9xZ7PQ7h71w8JEDi83G4NSyq1dzCZokUcuPA2tK613RKXr9wsVZ1sqE
4llJBJ2dD0/D95FionLlxwxEPHAaMuTAe94edLqRaGXU9m9vBcxFMuWH9wZFLp4I
njlDhVFWsdbDag7bqdjoMVuOiJnOe8+nI+AuIt9TuFcAGSDYz56iA/O0EzSCzZhr
XmcoD5BwKHuUdxb1i/zVj7CUNj0zBPV8HlUarEIAUN9YiXqT2FXEyidVYqVVRpCF
e5bcEnhfNxv/FLmbWdE3jUxaRSrOPFkypb0ouwZS23r9wqBhs5hlBoDOnfnHji4t
j9RJlclPbKEICo7LuT7cgSwIc/uc6mWCQ/Bo1/YkXkMtC37uiytmVjm09C3P3QmU
o4GmZr31EylSBoferjxjxt5CKbIlKJ7b5VtcG1z6utiRbMTSB5Ma7atLd7qr6okB
lcycNdtwI+kctUlL+W/8fyKNavsgtnfH+HMAaLwQtV8n5PtMkPyloSyNTBEzR98c
aRg0oKlMWfwcjN7AlsDForIuy6Msh0DUAFWnl19etvd5CWY6FXJSNVSA68WfTvFd
8l1bPMqOGEEm0HcjCe+ka5g3AcU6D+582Vad7d3IVhu/Yem4h90nIHQ1CViJqlJL
OtctYe3lVMtlrhweMUcxGccla/avJ1x2bAD7H96eApB7xVbqUrA0dY5r9n4WZNGC
cJd+Ujn48f5sRSHcvcBXJxPgC/3fKTjLX/NNkLZr9L7Ti1l9l1hE9cEuegS9ZV5r
RebzmAG9IxlHOtRskRbRg+TG8JX9ynUUvh2TINQj90hwV/e2+U6Z8tP4A49dAP6Y
zVTU5c/K3/WsY4jd9tOW6ZE+1GU7C5fmo44tmXLSOaCdcbWRWgceV6H25zhpCYFX
wtRnTd+sREkfakAPL8vn4EREh64Jw8gyeGSTe95a9W2fj+1IKlStucgUE7n+jPn6
WDXR/qBplQoczeH0iRy2FQ2uzilPtw8dEXgJyNVkDarooVTZEH6E9Ge6CbWBG2SJ
gaT7kGvi3RHJilGhDD1Awudt8AgsDYHqE2sCMvceACi9SSQ/z9ijIGNZ7pxKH6FZ
ZWyrUZEXqLQpmdK2eB18h1p3K9EJoW1AgdI7g1XfpkKPhdbQxf8kMnHgho+fzWYb
rXZ5toCkuF9fByP2UsbqRS+nJLc6QbJkM8HgLzS9xAi8slRblDc/HEr9UrxF6Mk9
VTTL9YRCS+rlngGgDLCkyNwAZstQ1/4A7qFKSj1X2Hr5H8vsk587ye/6+WHfaOe3
n3XeqOVMYdVI8zTK/OTYqnW3bhIta61RWADCAD/V2aVO/eD/wuCs2ccDi5yiQHLR
3wdaLDsdHZd6UW0jRqAeCV1wfY6/yz7EhhkGA1yBmxNl6PJ2XN8aoOwhhHY2DgQW
Ojy3HNAycZCjHGH/RZUVnzzjMMgdEn0QRBVOkbbTsksKtKktkbJ/ofMEQ4TjhwXO
Yf0cvUn5Ux9Ev3Guy7WLLfYX3eO1SXJStPdTbdAPl3Exp2CmhXmNUClTYeLMs/ZX
7J4871GUGkSyiscTFPaO7ejBXJ3N0xYmq6+N0ZCTy7psumY4ZEsi8iPCi5j8Z4tR
005Sq39ovJ6WAOlXujJVoFUuvaducxu5PEqGKRh/Z1LiHlVsTnGWgU9uVdr2Gzux
6JGo/weYzPBTLipDiNzm07ki8VyhjPGC5IQ/wMbt0CzQ8Y8NdqSUCVHbNkjcQe+F
65wxaoJTbTidSgHXf4onYKwcKdHe2/tFbsv3B8XXoBa3Q7YiENGtH3yE3me3N5fa
JrmpWwPetG6N7IswCLHSfoHN3HsYIxvamwMa1AUo7mlH5XyFJIgBI0mKBxC4RqBL
we4s/+CPkHoWToMXIHRp/dO9snujW4mwdIeKwFRj9roZWFLrikXcFd6DCC4U2jt0
e9bfg9zJ1LROh+oCoTjBMo0gT5Cyu6JA/nO1EXWrklBZTGOAqdTyNYwZ9mHCNS/b
kXkOc4vJdKET99ZKwfmAVXpxIhLoiIKwmCspOiEjeVQO5Vd4ebJZGm/5xBygjFyk
oB8ZqpOnbQm2/J9lGwC/UK76UlOiW16msHbiHh1Z1Fs5JB5R9yvI7F5vdjlJ4JND
r1FEFrw/3pz6JB1MlqleYEDSMWOEi4i+i4cgYoefXodHSHcZ/vqmREC50P/YL1Kn
OXi1lf43fExBZ/GUGGsfiwuQD0CF08r67aimZXqwKTSb2M+B/SXOI3cP/oyj71+Q
cRqDQUMWSA3LevhD1ZpQJOT9udXA+4JPVSaKJjrjjwq9eWvU9ikgKRdMYxEvs2U8
zUfyQgezOvpJbbae/aaXmGUsypIc6Q6wMd4VTR2c9OLu17zOtXHjjZGHe0MnodxR
QlSzrxUBLUbftGCAifzE6VrX6CrDmRLoCpJtzZX83pHd5vO016aKlwHs/5hqmNuh
1Eoyn0ZjmByPMELEBkTmVyiwjxSLyt2fIzrjPimCAp1r0HE1DWUdWEaACbxmmaPc
btnI7lxTzBX6o3G5/XDBy7zk1xWkiQU7pCHlyuLNAlnWWTjtuQUbE61FpP+mKMvs
Dycw4AlPNMU0kZT4IApUpBQTH81+/6z9Zz7ffVQxLLOCrfYawB3Xh9OQ4usAZ/t5
a0K2pJRPeEGHLLsd2/RU5iIAC4Fg8dX3po67IGdXQGMQh38on1Ol8QrUhPlETypQ
D1o2uKK05lfkYiIgf8Dh5xw+tyJW/0C2XU3YYTr4+nT3t7jWKswjlHdxGuOQRcAC
mgLYqjs9KYQuSPb+IgutD5YX7xFheDZSi71bbvAaioVH6qwuofuaQuVekQesAWxe
nvjxXHXXXZJWr5+cEa6WiImFoVAmyCHqMsAGu+A7tjkTnOUmSd4j75j8jASIFYi4
OJDYW+m9vxMGpyKnEAjACGyLd4mydR9q1uEDPqYPCyTI+cSMiTEmVV+o4T8UdfjT
67vL4RczPqE3O0i49QzfWIqI4iYmbzInOnO1YwPkarzEDoIWF3ms7vhg32AWHeVL
M4pLiEAUZyArq2C7tEVqTcid9vbHck2r3LFKRZNYYJWMJJKNjKIVivoOyTXtBHaR
4uk5IBwbTX7N519p6DuQf9YB6A085mDL1O2iCgI4cUCU6vuR4Y8OP+ddSovjsVLK
KYXKUyfXALHaX5BAF8LbS1gbTtfEbJv52atMbXCruThxbO+bVozAXbI0Zc/d7PhF
3QTsjMJ7d6GuJV4zsLC5EfAjQ80+sLEhrZFYX9Vg3sTScP/OFXgODVrS/fW+fJmi
YWutGb25Xle/IksUDYNsjViq55WKidEXrgEhzZMEMxM+HR/aZ+3fLO1eATd2K49j
Hsqy7mbSDlsv4E8+iBGsVTX+VokNUgnq4MzKl4QHaVjbmU8W52bA2/cxgiqz0o36
HmA2dZf4SQMnzy9aTtrXLU5Lya4iSQvLjPCYv1xQeWx3h+8Bf6CyjJIWEKedj7yr
KYAX79UDzHdp7LgMsJuFgYRXE1/h5IdJQJaf5GKzHj7jbG1TeolGl+KpQwHJIWDz
RaCpbUa+GhowT1F3Fsp7lc3jNQ0KZBPokeWVop//o7f3Wwse/5HKDb65gUktek44
vEDdv/eqMJU8zpI7qF/kXlSQr9c7pe0BzsFxiTL6RlT/J9tY4ngNLWGokIkrmozb
UwL76WbmVeyUMBhDcu4c2orWTleq+jn1PYxOnaqmeujAmAcMEWsYCuUfik5AhtpI
YeqT0HqoppVqJZix05P3xxDiiBxEchjs12dlCTXtuMI0XlH0KEPhgyptGQHaRo7E
+ZA9m+bTfSEVJLs9gXdGdta6RYuz79RGTNx0Ij2zVcITrDvOTEQzTBUjKSWK1XUp
mQwi2qQDwCbKnR7B6mLBYAyE0hSWdQZ8Ie4kC+3G/D2NjMTFpLQoNAMpjiz8Zc5c
4uxUM+aSX6/iqNxSTIiupnEpYiBb/TQjgI4I+jbXTTB5Zc2adAVuwbQlHGiUNAkH
8Uq9p/S0NZnKukK6w1rEs8qqqdS610WGdBwB0g29pssVXbyPx3UROVPKeiftaOCi
jYqV52q+CHds1+uLKbZvTzuciHRiMGZA2Y61f+ttoBpCFh6ISn5BzHLtr5SvCCVq
kYwdCrB5YZFNbqq2+sSrkvE1x+u//qLcWom3D2vMO9a9RbN1eytRqNQHO2g2TCO4
ufKpOF95jkYQWkL19E8tNyJ9BOawYZXp+EQirlpC3KYvAXp/QirtDRcd076DN84v
w5jw5nKlgfXpcsuvQnL5KM3lwJQEx1fb5E8ZwDHeZtxkk9TqEh5HIud6yaH+ZYPG
zH8K39CjpDZfLT9Up8FDj/WLcUIVLIIsZwi3vHUgWAmhsQegBN7VvWmzA5Z15tiQ
X2sRcsDM4xb6qkUU1Hvb5LbWPhvv9hzSgeIMpmJbvSvXXDPdCt0AREMzYH9Dr4h2
OeZbr0vk5CJA4s13ef4tp6xlyZ0aJAG9JG/BNLMUTOAmw5cWSKZG8BqkYn/GWS/N
Syv3Qf5iexfH4etzTbdvShv+G6sb2OBBvS3bpG3nD05U1f8rvZpYWXpB4vORI7lR
8CpIx1YD0aa/KDpKf1cpVvfvKovo+PYFKsQwUl8zRGVN/oY1st7RIvtdyKIkPqTZ
oSgi6OaarVSuyN66V8MoLv3VA9m8PB6IvPWlcHyEDo02QK7wlzC8VWXUBVUzRaWe
T37o/z9FSzLFkN0cxc6kDhd+n0P5SbVrTB8bzv2dhhlAGQB4n0hzVDmc8aO5ibPD
+QAzLKLpLoMCkQW2KaVepOnuc+G3QAzn6X8kM16FOVDf1U3IHdkb7wX8V1WcAGyD
Y5Bbh+leWCm/3nC1MYJ9gp0s7jC+LK1EO6Kos2R6HwBPtJFTM+nzCBLDjFXgUHq5
fkRE5r0EWaLtWiU55US4/xks/fB0O7odXUOfgCxxWHJfLpOktIqLNGuYCmSmqf73
4FlZ/zXqldUlafAgfDX24nuztCobcrgs9wmZa5pxF4TygxmWNE3Hv5f7OnnmuZl/
9ZBsJNzSIA3/3Wa+ulyUV86PzTlqMU2n7AVP9Esfw+Yh6fNU2aDDSSLZb8gD7LVt
z6UA4QpJN/Mdyd5OtQEiKq4EZbKIH4y23Rqh+pYr1Aieb22j9i+FBolmpdCEDO+0
/+LB87UT2cr9aLOeBlpEvXhvinMrlD2xH1qwwePsEq/tOcImWQN56VhiivVZRfVQ
QaZMn2WnaJ0Xg9pkLK7LRmDhP99cTet5NlG5TQC6tHVaJThxMalv7M/xGz78oxPQ
UJujdE7d3pGPK4xnof8g9SsM2ogZcuUXetqVmJ4RKBdCnqX0FtznsTXp5/r5st5O
2T2ddcEr8jxhzl3lQDo9Iw8rDxwJ0KatlVRqknGDEO3EjPeLwjSinb7+vBhpxH1t
c/OBTR5LuTDJDx6oIlsUvOlD2+ZVGP7/oZpswpTjstFyDNQft8CXeZTf0wt9bVhB
kNV6fodrV70bAB6Ct0dOzloOylcUHAFe+B7e68lEg+DdWXl9VlhvDlO6kR1Fa5h+
c3nb+h5oeIXQjH65lfLsth52ftMcIDyWXS2Qlm/dUxFqzLxlU9s0TH5JOAAO9oYt
rtV196gHduYnm3OuRe8UC46D/s2KOl2Rf2xPEvoRUHUoDsWU5fYzzX0lAGoT5IJT
YqQGZBRvfa42vVRBHKhsfudpCsM2dyl/PpPoXbMQO5cDnqpuIO3JyEN49DpG7VO3
jgyPeW2g2N94hDPZihmdcb6EJJLmCyRuL1sXZSVv3Xf4ku06aQtPM5balDfAe2wS
oYpgLeuTuW8SjMg5pcnidPhDHcfjy+E8zx/PzF4bjAmjpEp6ciRFXfpeWP6tsOVS
CEAV1YoP30gyGkw1OfIi635rLynpGAjuC+INZtixm65N8Z9SfpKAreJO+osGeisz
i5bewW9JMqGD63uQwUO4dIhPL82pnSngJ4sDSFSb80qNQaWbL8mLhHipq7ETwIAZ
7aGR3qpGbZ+u8lga+I/1L+WHtXrDgq8CYF1TW4ODfLLh9jAshIwdbDX1GCubbTPD
zx9i6cQ1aK70V/CW00R/aTKdabaa1DpJhjcgbGyX01Bi+Ks1ggj235cDuVcEYjhK
/m+rqHfNpCOH+ZjMpZpPb7vj7N3oScWMcZTo8W9wWv8DiXXyw4WSo6QFwVMj+c9G
NVcHg+v7ky+/5Iren/E7Bnb2uLUb7p20m+WwirYYFmO1pNW3Dx7sqa9Vx5gKVz/W
f15u5qimjVUfj+XeTilnJGvwE30ihYSoI2gbw7bTqWiuTJvYcsZjbX52c8gaDi8C
gST+NbGX5Oxd3Ru1spOjPoVEvVPeNFHhe8rUUGy8lzGAYwhTClQGpMkuhpJQT0E2
+JATo2yD1MMrAkssyJA/nbYlKLugciHt9pCAjNMJ2qPzn/fvDcu0UyPySlGAQjdT
DBDKGNXTfCeVFPjVo46+q1IJkZX2t8WChFZdCuFEXVe1+jW5pRWXrhXlI0yjupRO
THTETYIE1vJYDg+kL+M3igUfj8tpNod4CUYvlUmxDaxrSOWstip3RQn3KOt2/cYE
W5g4gwYthLd1ID/wsmpzbDJPvUB/V3EZoDaRL4oWseT/nM0WfRr5GjVvDK/HM9+E
qh0AIwgtu5HO39lpmfJD1RTJHl3KHWrVN141meATCIx0B08y/fhFV4J6l+BxQWlh
p3R2UaTpEwtFzPC1iqbp9VoYtEeunC3Vh5bUAmr5BipnXPnpF29n62bviNx2FInj
PWjMx2U7Onf6oV77WsmqziTgPOUnBJhavB9xIF5uzag4kjkOnmZoFSC6/8QXzmWF
kp4yoHVDlWjqjkTdATEJqUVK0lR2LLiidvPR3KUAs4o5O4jZjqNcKKJEbBDXoxY1
nNK6lsV2u/bMAWJyTxSTsorQGEuCH7Tm07Ab93jjrjrF29mAkNxxmVyNr8XDegmF
KleAJST0OU1eWPH6qg/alt0LITzfBW+xbRTw8R4QrliT/7XSU7B0KU9nLjpah1Lf
xR8qq8YT6bJXWYU0/OR+XFaE6JXmnkzbaOefgg5ZJ5TRQqFTZ5Y8i57bEl7R03FW
8oE/pFMWi03KXchBTZ55/MFpQW0h2xMeAU8n9Kb/7VzraYHm7yi0gMQUnlOKTeUQ
10QHBhPtwOT91kmyp6YNh9gx3vFxALfpBokNtg9SuCoEOyjfLmhCt3nHR8BKNR3t
4lZVknLgrMYr6OB1Z9tDTFmzQXPPkeawU8IGLRXs7spYvnCWSX3D4NiJ8pFX5fK3
Wiax0LPOgE7x71eMriwxKjtW/I738JIEiTbvnEl6UyOsIWpP/FocTPYXbvrFwwHG
56gboSsE8ygAmjdp1r25FlQah1d8Nd+APo4hZyxFbSZhHUMq6SGzq3Q+O6Rok/cE
YSIJIj27XQnJzK2p/vn8LMoGv+2ir4RqarJFQ5dLD7gdXRcbvnW+Fbr/6PQc+dVi
Fv7ccW3hoAe8S1BpkeP/EHkYcGY3RTLacJ9XseK9IY9V0yiULS6zMQewO4jr6kij
751SPZ58OYAAI/81I60sfJcV6+l9u/bAHgSeGf86SThQxbEkiYIu7JtG6/JJ1HKq
y8f7Lm04SirqYnXTELKxV5uHMRNlMfQIvQWnbunHnpKKq1smHuVwtuRagK1IAXxl
EV3dC5O3CUXAwkp++rznFKwFei9HIcQxF2EZOgtovu7Y74cxwK2SvV9Aae1u9KaC
Hq6FXuS/hn01KBafVrBGMLTF2S3POoNFGOLHkt8XQL5HAdaIJkPgo/PLiNKd5hkX
cfFRys27+XYq71MzLyY81LdKqB1kztY/EyQjCSjrLUCXoYGh1Q8Xm4YIfP3YQoHN
Rg1V9RY2jiq5vSywQaBugHEjN2dKPdgpSyiSGxyQ9aYVAdbpNK6t761EVW3vRWQi
Tqo8xEhXxQdZzH/7IrYACb+/Rh8z5nnHT3mL+tBcE7WuRCv0GXGWcJ0CcV0WDOvO
Bj8yNOU2jIOXNL9ETbkBOuwq2EETc5MDQoKqEY8kqlBCOS13iw2bCBOKp8LoB23l
ih5G02ccgOwf2kH8mKslV41NRz0obHaKBUaq8zdzRA12sbIcXaalPUinLZQ+gWfP
KF0Ioh3tqPFPn67MIUWYgtJJcuoP06aVxs3sUSq+nJ4RcpJta5BqSjgMRzsz/EX7
MU1TbqaZEglROGMMZUT4gZ1nkuqylWfN4lsbubw+JEhN+T2hBww39sqNNcjQSy4D
0pJI8D18WoWa5sE0PiE/K7rIk2v+RxDuSTahjlt5judmzOjJ+BWpbnxeMVJJkH6H
AalPxzSxAOdRkrJ5utZBIQLE7TIi8ELVDYoGW1nVCnh88N+ECN/cE06GrxxCY8rx
pC6pRUiyhcOXC10+zYsZrL5lGi2P6D2c9M+1/u1zbTxlMVmK8VUwUNIx/68GY2t0
t62sgsFAcVBBTxiaZ8Fz9q1tdwA4qiFR42LucTJtR6GPsyUo5Ngfu3fiQuYlxGjr
/WS+3sd6ncGASxsAQ8dNPRvk6+pvEdfmUR6EgpigivOHHoCxRmVaTuD/ndwBA9Jc
+SlcWcTltcs7uKuG17sEpiCo7D7Qz+EVg3w58OhuIdAf/40SkbUpTambNTOhX6DD
7mXCiyqJwucXnCLjsP4kZccqnSHhnYvQShesB9H7PytcyCz5eBJQsEYID0uOCJTT
HH535q8av9Rxv/21bZU8Ox3UAG45T6GUU0mngImRhP9p1iVEcpgyqnJy/AwihQzN
qI9bUkijOj97CMX781sSt8oD0KgK3Nv1LA90ACm9g2UMGgf/+e8sxYn9DXRVSnuk
nPquYsVh989jGW8DqWDS2JH60Rb0dsaeDaE9g76yGduHyEZlSFemiCa8etx4MJZ/
tjSaerK6jkkwzUsXQdL0em/dQr9GdoRRjAKyAGLKslmCpfwZWGSrkE75Jf7M6NE+
JuLNfBk0QCJfytwNaebJ/EbXxalw+75/aQJLs4NfyMIDx+lk6Ya9sdlETd8L7mcr
tIJsz8x8KdSNQe5P3EgoIZhtyRu9HPBXpiatJ+xP51e62+SDbZWS5ajx7tiQDwta
6xTssp0jy7C6xEOwO2mvzlqJvQw3WEXuuobXs8L9Y5HprDGUwTBlBXuFUYUqfR3G
oxadpcGa4eeQwp8OXKxvyKUItaZJN5ZQWsKC3lcTc3c9g9c605BFTtsKaLhEVUrs
RkOASBxJaerpTIkSBpKUN2TdbjLxvtWzD7b0P9PqT1rliXrrn4DnyfM+ShotzbqK
k27bUHyDSDnSEbIwU/AY3N86AUz/6wXiai+Fw00xYR/XSKeXuOw3QbkISYNB0x5N
/rP4y5NWHWjjS8WjM/BisFHJMWsatq2EKzNH84ep/pZIOymp/1mJhkcz1xrXIeSZ
WFxJBng4TKVXeIRBoO+dmEwBQ5LdcFNXGOL9sN8h3MbLcAlWPZKMyYY/qO95T/WE
z7qjmn05+199+Jt5HdAE8xmZk5kT8tPkjGs8amNdY5tAPgeqx82veDoR5yhaeQxs
SStukCEyzPGmL6I4vEWDM9fQidwGqTdFjqwZrH1mqdisbAipFGJT9TxxS63rUwLP
yeswFPl9rNlZo0Jm7LGpBnp6dZdMxHNoDDKnU02VZpm1H9Ug/OD9tkZJwUjry3UW
Qm8otMRK7xRKxDhT2N1fROgKvd7zMiT1ae7cvFSlJelaYQfLRIuju5zaJR05diSU
JM1ikFjYOA44g/TjYfHNjYAb/igN+yzKHs4vYg1/JwAU1OXcE35n88nnWVAkTGM6
rCMfe9Z2aKIJqiO8v0t2UOIzfm0x7r/qHdYTzMgxCSGrEN+HQ+qizj+bpy++qSdz
7t1ISVHCtCwPupueSzsteagjLKuqQngbzXCLkVc0J4lUQ/N69mMwU+fCd45CugFv
75YtKryFiNQWHtrcGPlMkjynALOD0TakQoAyhsKULbQNN/ymAgaC7JoQ40XPg8it
k4wnLGRNpwEWIthNAWXlHyw8+3CcTkNs5RFvnQYOoKjIJ/HgQTxkQhWMUJ3w+/5C
lAW96Q27GoxnAOSri87Ngi2EH6z6oLWYBzFfamw96plk5OvrJ7NVmluwPNrwm0WC
Wbp6mBRbU8fzCD0oadkZS7YW3kf6hQsRmw8qv/PF4Jg/J0K0emg7/BgBI3j6WDGh
ZMggCPlBJrw/sifnCMbhxgqXg/7tC8SMhztTweHHqHKuZzYC+BXCEhzZscHPp/z1
k0evZcTt7U8iiedOY8CP7IqRQYyoAwMSdwH9G7xI9xO4C6DMlSE2YqCpPiY8ATiF
qQ0e5CcJj/aX+Nf4GaaZ/oOkLT82PqN7qK4wOIaMYT4gplRzYmr1krIKvq1KDbeB
BMdL2YhvWDJ5+pf9tWh0z+MHUsfPSF1QgHNDuRx8SEWdDM+rwcCRXHRqqdoNIDvg
lt+QpUl71vW1csridxxnAR1Tyt1eRnu2cSkpiSGNXqck0pEuEMnogJstLozoeUhy
L3Mc51LVyNPtN8euk5U4dc1nL5QbWCuKUxWaIX/Mk6DPpEQn81knyn0diqrlM7WH
Mxde1dxP+rNgpZjzKokbyX5qjWzhhiZWXmQFkwbcfqUykrirHNBHeWiMKUf+qx9M
ss6uANsnMIkdghjF9OaqQjNUVh5J214ELKPznJf5akY3damhak8zgTqP4HiOY0ED
j5mRJj2RFUDvi5cw2uVTozYewePwomUFu/K5YWS4TiqY26DbENy1M8NG5IaBj9/m
bGk9SK3mzHmvw7pGxufh8g6hYS37w8dA0sm6bCdj4YlvDwXyutKnfpVyR/1hhaBY
f/CuS18DPeUZJXFxisvCFO7VJFW+uSR8gMB8iUHDS9Ka01kQL1vYMlM94hLnQb63
oX7rUbg/iPCWzy3Hwh/S4saUY9aYcuySOK+L93STHqrg4Cr826n4nSCIl/GXSkyF
NlpricjxYflFqG5Lv2mC8sjffZq53veX++0c6QKzrXlF2MUMgRZfrorz+cwj+uct
BcvX/gDNpqTs3RyY3WD8pawiQkQeRN7A9/KnCW35Fe8wcn1aRrwWSBHfiEBi8dyU
R1WYmoFMp0AGnsJHSNBxFSsL2onMIDzeci8qErc+ziPa1TvNy+BHvFPR+FNXXKXB
ZvUA1g+K4bGo86v7uio+E+NuuGBCz6aSLHCF0k8INnNvQfNaGyDRwYcJknCYjRVL
/65jQErt/8XIbwvtC88DS4eQLKyszif1HnYUhW1TZTZTQqw77seO+YckvEZbbz81
kU4m27pvYvf6e0amtlHoMHaHpW1xcgJJ8MOmBXNLT+xTO+4J8khm5pHHdqhsQiql
VLZT8hqBiFZeTvTVhkfUPy4qqzUu/HUCxruXwktSnQOZPHwRDSHpkmrsyb/N+eRE
J0TrWF4g66z8uUuGbBOV9mOWQxmr67I5al8mbeUomg7zLAiVMKpGZhG3BjZUXK/a
6w4nsFOafv/Oc37PYyIiefYBQOyXz/yQmE7R4G1GERWgkx1cKYIgEOsavLimVf+d
5Joa5UFkKZ2L1fp7LHc9e4BifXlM2DwssirEwrLlWTdYTu60BBocc2Lw9ucTIo72
CClqOGFxRgjtWaOWzyo9Is6BmusLzgznGbxdiImONpCGWHwvT96A17UKepdzb7LG
seFxPOSHuIUYEMB5hNIhMcAuYzUOLlnStMLUcPaZEXN3zRk0A19K8yi8akhMnmYx
ePZWynJ8wD0EwVkESwY=
=BeHw
-----END PGP MESSAGE-----

View File

@ -43,7 +43,7 @@ The server requires very few ressources and will run on any low cost single boar
\textffm{Meow} also provides an anonymizing transfer service very similar to the Tor Onion protocol, we call it the Matriochka protocol. \textffm{Meow} also provides an anonymizing transfer service very similar to the Tor Onion protocol, we call it the Matriochka protocol.
Any server can be used for building the transfer chain. Any server can be used for building the transfer chain.
Some of them might be marked as trusted. Some of them might be marked as trusted.
Random delays might be set for each forwarding step, making the overall message tracking much more difficult, even with a global network audit. Random delays might be set for each forwarding step, making the overall message tracking much more difficult, even with a global network survey.
It is strongly advised to use trusted servers as your first node and message server (the one that holds your incoming messages). It is strongly advised to use trusted servers as your first node and message server (the one that holds your incoming messages).
\subsubsection{Presence protocol for direct messaging} \subsubsection{Presence protocol for direct messaging}
@ -60,14 +60,14 @@ You might define specific communication privacy preferences for each of your con
\item ... \item ...
\end{itemize} \end{itemize}
\subsubsection{Resistance to device requisition} \subsubsection{Resistance to device requisition / forensic}
All your contact information and discussion are encrypted on the device and password protected. All your contact information and discussion are encrypted on the device and password protected.
Password shall be asked on application startup and allows your identity file and contact decrytion. Password shall be asked on application startup and allows your identity file and contact decrytion.
That password is not recoverable, so you can't forget it, or you'll loose your whole configuration and identity. That password is not recoverable, so you can't forget it, or you'll loose your whole configuration and identity.
Real security implies some constraints. Real security implies some constraints.
You might configure the app to save your password, but that is a security flaw. You might configure the app to save your password, but that is a security flaw.
In many authoritarian countries, you are required by law to provide your device passwords to authorities. In many authoritarian countries, you are required by law to provide your device passwords to authorities.
In a \textffm{Meow} device, you might set a special password for specific contacts. In a \textffm{Meow} device, you might set a specific password for some contacts.
Those contacts won't be visible when entering your main identity password. Those contacts won't be visible when entering your main identity password.
You'll have to type their specific password in order to make them visible. You'll have to type their specific password in order to make them visible.
The \textffm{Meow} application will by default create a random set of fake hidden contacts and conversations. The \textffm{Meow} application will by default create a random set of fake hidden contacts and conversations.
@ -80,9 +80,9 @@ As every \textffm{Meow} user has the same constraint, users are not responsible
A device might be revoqued anytime from any other one. Proof of your identity (password or other) shall be provided in order to grant device revocation. A device might be revoqued anytime from any other one. Proof of your identity (password or other) shall be provided in order to grant device revocation.
\subsection{Adding contacts} \subsection{Adding contacts}
If you want to add a new contact, keys and uuids will be generated, then a rendez-vous card will be created. If you want to add a new contact, keys will be generated, then a contact card will be created.
That rendez-vous card might be sent by any trustable communication means, or preferably from hand to hand, as a file on a flash disk or a QR code.\\ That contact card might be sent by any trustable communication means, or preferably from hand to hand, as a file on a flash disk or a QR code.\\
In return your contact will provide the exact same data, encrypted with your public key and delivered to the address specified in the initial rendez-vous card. In return your contact will provide a similar contact card as an answer to your invitation.
\subsection{Contacts forwarding} \subsection{Contacts forwarding}
By using the \textffm{Meow} protocol a user won't be able to forward your contact information without your consent. By using the \textffm{Meow} protocol a user won't be able to forward your contact information without your consent.
@ -102,14 +102,14 @@ A local (server based) emergency broadcast service will be provided. It will pro
\subsection{User directory service} \subsection{User directory service}
This service allows to restore a lost functionality of Internet historic chat services (like ICQ). You could simply set a "Free for chat" status that would allow other people to contact you, either randomly or based on a short description that you might provide. This service allows restoring a lost functionality of Internet historic chat services (like ICQ). You could simply set a "Free for chat" status that would allow other people to contact you, either randomly or based on a short description that you might provide.
Why providing that service while the internet is suffocating due to the abundance of social networks ?\\ Why providing that service while the internet is suffocating due to the abundance of social networks ?\\
Well, that option offers a few advantages : Well, that option offers a few advantages :
\begin{itemize} \begin{itemize}
\item you are still an anonymous user chatting with other anonymous users; \item you are still an anonymous user chatting with other anonymous users;
\item no social network algorithm will select people that think/behave/vote/eat... just like you. Diversity makes a better world; \item no social network algorithm will select people that think/behave/vote/eat... just like you. Diversity makes a better world;
\item a smaller community of users, skilled enough to operate a \textffm{Meow} chat app... that might provide a first filter; \item a smaller community of users, skilled enough to operate a \textffm{Meow} chat app... that might provide a first filter;
It's a bit like in the old times, when people had to be able to start a win98 computer, connect it to internet, then download and install ICQ... It's a bit like in the early ages, when people had to be able to start a win98 computer, connect it to internet, then download and install ICQ...
If you lost some time in social networks, and experienced ICQ in the 2000's, you'll understand. If you lost some time in social networks, and experienced ICQ in the 2000's, you'll understand.
\end{itemize} \end{itemize}

View File

@ -178,11 +178,11 @@ func TestEndToEnd(t *testing.T) {
// user unpack // user unpack
// user decrypt // user decrypt
decMess, err2 := MyFirstFriend.AsymDecryptMessage([]byte(enc.Data), enc.Signature) /*decMess, err2 := MyFirstFriend.AsymDecryptMessage([]byte(enc.Data), enc.Signature)
if err2 != nil { if err2 != nil {
fmt.Println(err2.Error()) fmt.Println(err2.Error())
} }
fmt.Println(decMess) fmt.Println(decMess)*/
// user decode protobuf // user decode protobuf
} }