PDA

View Full Version : VBA Edit Links



SteveABC
02-24-2021, 01:41 PM
Hiya,

Need some help on my coding below.

I'm trying to edit the links when the file copies over the formulas and change the source book from the xlsm file to the xlsx. I've attempted the coding but it has no impact when I play through the code, which would indicate that I'm missing something or its not in the right order, but I simply can't figure out where I'm going wrong. Any ideas?

I've highlighted the code where I want to edit the links



Dim w As Worksheet, b As Workbook, ol As Object, msg As Object, Rng As RangeDim mypath As String, myfile As String, scc As String, sto As String
Dim link, linkSources, newLink As String
mypath = "W:\.Team Documents\Freehold Team\Mainstay\Reporting"
With Sheets("Control")
sto = Join(WorksheetFunction.Transpose(Range("Final")), ";")
End With
Set w = Sheets("Mainstay Master")
Set X = Sheets("Mainstay Report")
Set b = Workbooks.Add
Set Rng = b.Sheets(1).Range("F4:F13")

ThisWorkbook.Names.Add Name:="Sitenames", RefersTo:=Rng

With w
lr = .Cells(Rows.Count, 1).End(xlUp).Row
lc = .Cells(1, Columns.Count).End(xlToLeft).Column
.Cells(1, 1).Resize(lr, lc).Copy
b.Sheets(1).Range("a1").PasteSpecial xlPasteColumnWidths
.Cells(1, 1).Resize(lr, lc).Copy b.Sheets(1).Range("a1")
End With
b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value = b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value2
X.Copy , b.Sheets(1)
b.Sheets(1).Name = "Mainstay Master"

Workbooks("Mainstay Master Template.xlsm").Worksheets("Mainstay Report").Range("b5").Copy
X.Range("b5").PasteSpecial Paste:=xlPasteValues

newLink = ThisWorkbook.Path & "\Mainstay Master.xlsx"
linkSources = ThisWorkbook.linkSources(xlLinkTypeExcelinks)
If IsArray(linkSources) Then
For Each link In linkSources
If InStr(link, "Mainstay Master Template.xlsm") Then _
ThisWookbook.ChangeLink link, newLink, xlLinkTypeExcelLinks
Next
End If

With X
Range("b4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Sitenames"
End With

Paul_Hossler
02-24-2021, 04:51 PM
Welcome to the forum - please take a minute to read the FAQs at the link in my sig

I added CODE tags to your post - you can use the [#] icon to enter them and paste your macro between

SteveABC
02-25-2021, 02:52 AM
Thanks Paul.

Do we always apply the code tags when posting the code?

Paul_Hossler
02-25-2021, 07:45 AM
Thanks Paul.

Do we always apply the code tags when posting the code?

Yes, it sets of the macro and applies some formatting


Sub NoCODEtags()
Msgbox "Hello World"
End Sub


Sub WithCODEtags()
Msgbox "Hello World"
End Sub

p45cal
02-25-2021, 01:36 PM
In my version of Excel (O365) the type of linksource for a link to an Excel workbook is xlExcelLinks, not xlLinkTypeExcelLinks


linkSources = ThisWorkbook.linkSources(xlExcelLinks)
You could use the number 1 instead:

linkSources = ThisWorkbook.linkSources(1)
What version of Excel are you using?

p45cal
02-25-2021, 01:43 PM
Cross posted elsewhere.

SteveABC
02-26-2021, 06:28 AM
I've changed the code as below but still didn't work. I'm using O365. Any other ideas?



You could use the number 1 instead:
linkSources = ThisWorkbook.linkSources(1)
What version of Excel are you using

p45cal
02-26-2021, 08:06 AM
direrctly after the line which begins:
newLink = ThisWorkbook.....
try adding the temporary line:
MsgBox IsArray(ThisWorkbook.LinkSources)
and run it.
What does the messagebox say?

Where is this code? (Standard code module? a sheet's code-module? the ThisWorkbook code-module) and in which workbook is it situated? (Let's hope it's not within the Personal workbook.)

p45cal
02-26-2021, 08:11 AM
You need to say where you've crossposted this question.

SteveABC
02-26-2021, 10:23 AM
Message box stated = True.

The code is situated in the workbook....Mainstay Master Template.xlsm



direrctly after the line which begins:
newLink = ThisWorkbook.....
try adding the temporary line:
MsgBox IsArray(ThisWorkbook.LinkSources)
and run it.
What does the messagebox say?

Where is this code? (Standard code module? a sheet's code-module? the ThisWorkbook code-module) and in which workbook is it situated? (Let's hope it's not within the Personal workbook.)

SteveABC
02-26-2021, 10:24 AM
Why? Can delete, its not a problem.



You need to say where you've crossposted this question.

p45cal
02-26-2021, 11:00 AM
Message box stated = True.

The code is situated in the workbook....Mainstay Master Template.xlsm

It's so difficult to do this in the dark, but check very carefully where you're adding/changing things and whether it's happening where you think it's happening:
All references to ThisWorkbook in the code refer to the workbook where the code resides, which you tell me is Mainstay Master Template.xlsm
So lines such as:

ThisWorkbook.Names.Add Name:="Sitenames", RefersTo:=Rng
where you're adding a name to Mainstay Master Template.xlsm, not to any newly created workbook.
This line:

linkSources = ThisWorkbook.linkSources(1)
will return the links from Mainstay Master Template.xlsm
and this:

ThisWorkbook.ChangeLink link, newLink, xlLinkTypeExcelLinks
will try to update links in Mainstay Master Template.xlsm

Is that what you want to happen?
Perhaps those references to ThisWorkbook need to be changed to b?
Don't forget to correct both instances of xlLinkTypeExcelLinks to 1 or xlExcelLinks.

p45cal
02-26-2021, 11:02 AM
Why? Can delete, its not a problem.There's no need to delete.
This will give you a full explanation: http://www.excelguru.ca/content.php?184

SteveABC
03-01-2021, 05:43 AM
I've added this post to Mr ExcelForum, but I'm going to delete as no response.


There's no need to delete.
This will give you a full explanation:

SteveABC
03-01-2021, 05:59 AM
Hello.

Yes I can see why its hard to resolve if I don't make it clear for you. So let me give you some more information.

Basically I've created a new workbook which I've created two tabs and copied over data from my main file called "Mainstay Master Template.Xlsm"

W = Mainstay Master
X = Mainstay Report.

In my main file. The Mainstay report (x) gets its information from the Mainstay master tab (w). Which is essentially what I want to reproduce in the new workbook.

When I copy over the formula's however. The mainstay report still has references to the Mainstay Master Template.xlsm. So I want the formula's in Mainstay report (x) to only reference the Mainstay master (W) tab in the new created workbook. So no links to the Mainstay Master template.xlsm file.

Think I've changed the code in red as per your last post, but not sure If I've totally changed as you suggested. It breaks on this line.


linkSources = b.Sheets(1).linkSources




Dim w As Worksheet, b As Workbook, ol As Object, msg As Object, Rng As Range
Dim mypath As String, myfile As String, scc As String, sto As String
Dim link, linkSources, newLink As String
mypath = "W:\.Team Documents\Freehold Team\Mainstay\Reporting\Reports\"
With Sheets("Control")
sto = Join(WorksheetFunction.Transpose(Range("Final")), ";")
End With
Set w = Sheets("Mainstay Master")
Set x = Sheets("Mainstay Report")
Set b = Workbooks.Add
Set Rng = b.Sheets(1).Range("F4:F13")
Set linkSources = b.Sheets(1)


ThisWorkbook.Names.Add Name:="Sitenames", RefersTo:=Rng


With w
lr = .Cells(Rows.Count, 1).End(xlUp).Row
lc = .Cells(1, Columns.Count).End(xlToLeft).Column
.Cells(1, 1).Resize(lr, lc).Copy
b.Sheets(1).Range("a1").PasteSpecial xlPasteColumnWidths
.Cells(1, 1).Resize(lr, lc).Copy b.Sheets(1).Range("a1")
End With
b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value = b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value2
x.Copy , b.Sheets(1)
b.Sheets(1).Name = "Mainstay Master"


Workbooks("Mainstay Master Template.xlsm").Worksheets("Mainstay Report").Range("b5").Copy
x.Range("b5").PasteSpecial Paste:=xlPasteValues


With x
Range("b4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Sitenames"
End With

newLink = mypath & "\Mainstay Master.xlsx"
linkSources = b.Sheets(1).linkSources
If IsArray(linkSources) Then
For Each link In linkSources
If InStr(link, "Mainstay Master.xlsx") Then _
x.Sheets.ChangeLink link, newLink, xlExcelLinks
Next
End If

p45cal
03-01-2021, 07:00 AM
give these a try:

linksources=b.linksources(1)

b.ChangeLink link, newLink, 1

I don't think you need the line further up the macro:
Set linkSources = b.Sheets(1)
You might also need to change (if you have problems):

newLink = mypath & "\Mainstay Master.xlsx"
to

newLink = mypath & "Mainstay Master.xlsx"

SteveABC
03-01-2021, 07:18 AM
Thank you for coming back promptly on this.

Unfortunately the suggestions you made didn't work.

I'm still seeing the reference as per the below.




=VLOOKUP($B$4,'[Mainstay Master Template.xlsm]Mainstay Master'!$F:$BU,27,FALSE)


Here's what the codes looks like now.


Dim w As Worksheet, b As Workbook, ol As Object, msg As Object, Rng As Range
Dim mypath As String, myfile As String, scc As String, sto As String
Dim link, linkSources, newLink As String
mypath = "W:\.Team Documents\Freehold Team\Mainstay\Reporting\Reports\"
With Sheets("Control")
sto = Join(WorksheetFunction.Transpose(Range("Final")), ";")
End With
Set w = Sheets("Mainstay Master")
Set x = Sheets("Mainstay Report")
Set b = Workbooks.Add
Set Rng = b.Sheets(1).Range("F4:F13")


ThisWorkbook.Names.Add Name:="Sitenames", RefersTo:=Rng


With w
lr = .Cells(Rows.Count, 1).End(xlUp).Row
lc = .Cells(1, Columns.Count).End(xlToLeft).Column
.Cells(1, 1).Resize(lr, lc).Copy
b.Sheets(1).Range("a1").PasteSpecial xlPasteColumnWidths
.Cells(1, 1).Resize(lr, lc).Copy b.Sheets(1).Range("a1")
End With
b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value = b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value2
x.Copy , b.Sheets(1)
b.Sheets(1).Name = "Mainstay Master"


Workbooks("Mainstay Master Template.xlsm").Worksheets("Mainstay Report").Range("b5").Copy
x.Range("b5").PasteSpecial Paste:=xlPasteValues


With x
Range("b4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Sitenames"
End With

newLink = mypath & "\Mainstay Master.xlsx"
linkSources = b.linkSources(1)
If IsArray(linkSources) Then
For Each link In linkSources
If InStr(link, "Mainstay Master.xlsx") Then _
b.ChangeLink link, newLink, 1
Next
End If

p45cal
03-01-2021, 08:20 AM
This is going to have to be done trial and error.
Your code:
If InStr(link, "Mainstay Master.xlsx") Then _looks for .xlsx, shouldn't it be looking for xlsm?
Or more completely: Mainstay Master Template.xlsm ?

I suspect, but not sure, that your:

ThisWorkbook.Names.Add Name:="Sitenames", RefersTo:=Rng
should be:

b.Names.Add Name:="Sitenames", RefersTo:=Rng

SteveABC
03-01-2021, 09:49 AM
I've changed the below as you specified...but now its asking to be manually pointed. Which I'm guessing is good and we're heading on the right path.



This is going to have to be done trial and error.
If InStr(link, "Mainstay Master.xlsx") Then _

looks for .xlsx, shouldn't it be looking for xlsm?
Or more completely: Mainstay Master Template.xlsm ?



I've changed from thisworkbook to B.names.

but the code now breaks on this line... with application or object defined error. Is this because of the Sitenames reference?


Range("b4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Sitenames"



I suspect, but not sure, that your:

ThisWorkbook.Names.Add Name:="Sitenames", RefersTo:=Rng
should be:

b.Names.Add Name:="Sitenames", RefersTo:=Rng[/QUOTE]

p45cal
03-01-2021, 11:11 AM
With these two lines:
Workbooks("Mainstay Master Template.xlsm").Worksheets("Mainstay Report").Range("b5").Copy
x.Range("b5").PasteSpecial Paste:=xlPasteValues
you're copying from Workbooks("Mainstay Master Template.xlsm").Worksheets("Mainstay Report") to x, x which is:
Set X = Sheets("Mainstay Report") of the active workbook before you added another workbook; that is the same sheet. So aren't you just converting a formula in cell B5 on that sheet to a plain value? Maybe that's the intention.

With this next bit of code:
With x
Range("b4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Sitenames"
End With
although you've got With x, you're not using it; Range("B4") is not a qualified range so the active sheet is assumed (unless this code is in a sheet's code-module instead of a standard code-module). I don't know which sheet it's referring to, nor which sheet you want to add the validation to.

This is so difficult to do in the dark.
If you want we could do a TeamViewer session tomorrow sometime (I'm in the UK).

SteveABC
03-01-2021, 01:29 PM
Yes you're spot on with this. tbh, it shouldn't be there so I've removed. Benefit of fresh pair of eyes. :-)



you're copying from Workbooks("Mainstay Master Template.xlsm").Worksheets("Mainstay Report") to x, x which is:
Set X = Sheets("Mainstay Report") of the active workbook before you added another workbook; that is the same sheet. So aren't you just converting a formula in cell B5 on that sheet to a plain value? Maybe that's the intention.



Ultimately what I'm trying to do here is to create a drop down list in cell 4 on the mainstay report (x.sheet). The list being created from a defined range (F4:F13) on the Mainstay master tab. (w.sheet) The range is to be called sitenames.

Spot on again. Didn't define the range. Doh. Obvious now.

I've amended the code to this instead. Removing the range and replacing with cells. It's solved the 'define app/object error' but inadvertently created a new error on the next line 'Invalid procedure'

I'm guessing this is because the range 'sitenames' has not been defined correctly?


X.Cells("b4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Sitenames"


Happy to speak to an expert. :-)

If you like I could send you a test file so you could try the code yourself. Least you wont be in the dark anymore. Either way I'm happy if it means we can resolve.

Also, just want to say a BIG thank you for helping me.



This is so difficult to do in the dark.
If you want we could do a TeamViewer session tomorrow sometime (I'm in the UK)

p45cal
03-02-2021, 03:56 AM
A view of the actual xlsm file would be a big step to my understanding of the problem.
I also need to understand what the aim of this is; at first I thought you were copying two sheets of that file to another (new) workbook, possibly to send to others, while preserving your xlsm file, but now I'm not so sure when I re-read your first post:
change the source book from the xlsm file to the xlsx.
It's difficult to work out what you want to do from code that isn't doing what you want it to do!
So along with the file I'd like an overview of your misson.

Another approach to this might be to save (or save a copy of) the whole file as an xlsx (this won't lose you the xlsm file) and remove the sheets you no longer want in that file and save again; I expect the formulae within that file would not point to another file.

Did you understand what I meant about a TeamViewer session?

SteveABC
03-02-2021, 10:31 AM
Hi.

Sorry for the delay. its been a busy day.

I've created a test file that mirror's my actual file. Within this file it has two tabs.

1. Mainstay Master.
2. Mainstay Report.

As you can see from the test file, the report tab uses the master file for its information based on a validation list situated in cell B4. The validation list comes from a list I've defined called sitenames1. See file for the range.

So essentially. I want to copy these tabs and paste into a new workbook called 'Mainstay Master' incorporating the drop down list in B4 on the reporting tab using the defined range 'sitenames1' Because we are creating the a new workbook every time. The defined range will need to be created once the worksheets have been copied over from scratch every time.

The Mainstay master tab will need to be copied over without any formula's, but the formats, row and column sizes must be exact as the the xlsm file. Hence my code 'with w'

If you click on D58 for example in the mainstay report. The formula that exists. I want to see in the new workbook. 'Mainstay Master' (currently getting the link to the XLSM file).

I can then send this report to the client and they will be able to change the site name and the look up the information that pertains to that individual site. (hope this gives you a clearer picture)


No sorry. Have no idea what you mean by Teamviewer session???




A view of the actual xlsm file would be a big step to my understanding of the problem.
I also need to understand what the aim of this is; at first I thought you were copying two sheets of that file to another (new) workbook, possibly to send to others, while preserving your xlsm file, but now I'm not so sure when I re-read your first post:
It's difficult to work out what you want to do from code that isn't doing what you want it to do!
So along with the file I'd like an overview of your misson.

Another approach to this might be to save (or save a copy of) the whole file as an xlsx (this won't lose you the xlsm file) and remove the sheets you no longer want in that file and save again; I expect the formulae within that file would not point to another file.

Did you understand what I meant about a TeamViewer session?

p45cal
03-02-2021, 12:47 PM
There's no code in the file you attached. You didn't quote the whole code in your first post here (at least it looks that way without Sub… End Sub). Also, I don't know in what kind of module the code you quoted is in.
Could you re-attach?

p45cal
03-02-2021, 01:18 PM
See if this one-liner doesn't do 99%+ of what you're trying to do:
Sub blah()
Sheets(Array("Mainstay Master", "Mainstay Report")).Copy
End Sub

SteveABC
03-02-2021, 01:26 PM
28045I didn't attach any code because I thought you wanted to test your own code.

Here's the whole code.







There's no code in the file you attached. You didn't quote the whole code in your first post here (at least it looks that way without Sub… End Sub). Also, I don't know in what kind of module the code you quoted is in.
Could you re-attach?



Sub SendReportv2()


Dim w As Worksheet, b As Workbook, ol As Object, msg As Object, Rng As Range
Dim mypath As String, myfile As String, scc As String, sto As String
Dim link, linkSources, newLink As String
mypath = "W:\.Team Documents\Freehold Team\Mainstay\Reporting\Reports\"
With Sheets("Control")
sto = Join(WorksheetFunction.Transpose(Range("Final")), ";")
End With
Set w = Sheets("Mainstay Master")
Set X = Sheets("Mainstay Report")
Set b = Workbooks.Add
Set Rng = b.Sheets(1).Range("F4:F13")




b.Names.Add Name:="Sitenames", RefersTo:=Rng


With w
lr = .Cells(Rows.Count, 1).End(xlUp).Row
lc = .Cells(1, Columns.Count).End(xlToLeft).Column
.Cells(1, 1).Resize(lr, lc).Copy
b.Sheets(1).Range("a1").PasteSpecial xlPasteColumnWidths
.Cells(1, 1).Resize(lr, lc).Copy b.Sheets(1).Range("a1")
End With
b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value = b.Sheets(1).Cells(4, 1).Resize(lr - 3, lc).Value2
X.Copy , b.Sheets(1)
b.Sheets(1).Name = "Mainstay Master"


X.Cells("b4").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Sitenames"

newLink = mypath & "\Mainstay Master.xlsx"
linkSources = b.linkSources(1)
If IsArray(linkSources) Then
For Each link In linkSources
If InStr(link, "Mainstay Master Template.xlsm") Then _
b.ChangeLink link, newLink, 1
Next
End If
myfile = mypath & " Mainstay Master.xlsx"
Application.DisplayAlerts = False
For sh = b.Sheets.Count To 3 Step -1
b.Sheets(sh).Delete
Next
Application.DisplayAlerts = True
b.SaveAs myfile
Set ol = CreateObject("outlook.application")
Set msg = ol.Createitem(0)
With msg




.To = sto
.cc = scc
.Subject = "Mainstay Report & Master file"
.Body = "Good Morning"
.attachments.Add myfile
.display
End With


End Sub




http://www.vbaexpress.com/forum/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbcAAAGQCAYAAAAtPi5lAAAgAElEQVR4Ae29j7Mt WXXfd/4AVypVKSdxJU6UH5VUWZESUvakclxxxUpVqoiJkyi/qIqVTOnHKY xYsmyxItkSdhCDBY2OiECIwkLBga4M08GxI8DGObOCIRmEMyAxIU3w4ELDPMG5nKRhzu/7rw3sFJr7712r7177/5xuk f7nO d pMd 8fa6/ nn3689bu7r1nTz75JMnn4uKC8IEG6APoA gD6ANT7wOzex9cEz7QAH0AfQB9YLM IMFBvH3LW95C OxOA8ANcMc/btAHDqYPUI9/t912m9EthpocM9i4DD670QBww4XtYC5siEw2i0z2STdm29e//vXOHwEXayMwi7dSJk7HcXErbJtazGazGdnPi hl79mg87/nF j7ZxvW7QCWV//wjL7/Zz4aXphf91Ka/fCb6N4H30Qv8edlz 8lryufG9uw5XVeXHfDc9uRLvt0IcK56H6J/T76g8Ct60VVwAW4DQOqTb6vmQDtzp95Ec1 8Bfozg7Aad/5GCQbwsODrPjRM6wsxCK7BjQvpVfrc O0H3wpveQH4/bDupPTRZ8j9sN//ECPg9djzHBjYOLTnwYebjbaiS/0BTjag6tJ3RAkrdooAYttCcBiu/HxmhhaHPnJtmg7LhsfNzmvrmV20WZXn1G/6EPQYqxaxHCTkauqyCBVZhuRm9jEPbp 7tFl4GYvri/54RfRTIBhYCJDmBIh8Y84uhAH5QQ2XO6j9LIf1PW5XnFcHh6su0BYe364MYjkIp CPPHFgdxEcDpijeoG52fzxq1LnW7IH uFF35tv2/m4MYASwFOwBbnC4j4O0vV4zQpk8uP06U8 4i/7gp4uIXDbxY8xT0te xBYgAmUZ6Ggd5f072ve6m7L2ZBVNiTThyVbzlspKOuYkiSbVt/i46pIbumewOgsW9yLlK3OJ6iLrhISv/CFn0h7AN8yeQHSjRYiutECLhcugYX4NYdQtuyoB4o0QCIoGNgpvPXVMBElTXlVDTGkRk/4JGob390qm4MtsBW2Lb/wXIZc5 wGlC2/RBYGrQGYOZBFIGbPgfdduRv4ry2rkusE44P/j6S/z2gL9T2hRTcGFYxyOJjDUPAbVs46teuj9zCH0iXi7iGgftXUwICtXBr9EN1UHudQE7 lRb574ZEi4dNNLxkX/yO64pNAV8ByRS083AT 8re1nRRbTTSEeXD/g899lWPHNxiwAncYqjJsQwhsk6SFm lTJyeO5by/V7iD9daM7i5Yb5wWFIu1hoGvJ94RN/BRUdL/cDNPhjCHTG0rX1yw5DyVCbffys9FWqHTQv4KYAFcIjsjliXfb044bwA3i59oApuDB2BGm9zEOJ0 ARH7kisnZXL5cbqUD3G0osVsTsu1pK5puZgXfs4XKk/K7Gi7XtJ8NqPFiojMvvZ7eJ8awk0AIVGOvvhHF3wTjUg5/R6ZBZ90HgElRzomzQ8Ltvzxmva0P1w/bGsmYHvQDqeGILTtFUOT0flUwm3EugR t9QUdWuHt7pcYFF3d/2RL7HxPTeBjFyb9Fby4q2AaNtwWy1mNJsvybJtTct5eLxaMuh2CxGPLQ03cr4a0vkSg 70MEMJw0CiuN112vFdMKDL L4T9M9D/05ycIuBFh/vBm4ctc1oLmHbalEPstXCRE/W/zktVi7kc CZLxa0YECyXQ2eXD1yPizE7oI4MFup6HG cPAN4MbBG4PXlh Uaq6x7nBLDvPhIsJPipaHP6HLoV9ccf67/Q2k4JYDWS6dQTdI5NYWFr68i/M0DF3ebLEyUaAFj4v4quo5uBXRoyFbEU0m2vDMNHlumHIHdNscbn74MR4S3G3n3fnFA7pgSA/DuqPtAzHcqgDGEMvlDwI3DQ5zG0tHQm7Yz70rzECxwFK3hFSevQeWjgIr6wncPLEspdarJS0Wcx 8lmmwPSUey HhgwG0ON/yAR/sD3jng0TfQN0baB3Jwi4cd9bEATqftAm4Uwc6wQgEkiMZikLhyqSHOynoyLClDox6ydshzraMz5 UvsW zOEMeA20h/hADUgY8AoF9u5R8IfFHNPVCi4VW3PwjcYljIQxrqARP7QIl QrG4l2ah5e55VcDNR3UuOgvqJeBmHnJx99Js2bB9H SlYDwE1VwbgBsuIlu5iADOgPMY 8Ck4JYACzHg1MMc/KQkPxgibwpwJMWP49toUz1FWQU3jsZy9VI OFvcBj gwu2ZiDCCcQjJAakGuOHiM8aLD3xCv9xmH5gW3Nx9NB pDQ IzVvci1cB8GPc5o8RttG/0Af66wN8seYhxT4 TVfirhvilHwZ6gyBEr/EHeaO9shEcSpy3IGjGJbEsCSGJdEHDqYP9L2cDP/DQ AUbwVWcXruWMrvgAN72STghgvbwVzYEAH1FwFBy0LLOljl8uN0wK1fxs5igXE83mXT8d3gu0Efm E4fEFg1/c6kfL X MO1tvdw 853vkOH8Lm4uKBD Dz11FN0KJ nn36aDuHzzDPP0JQ/OXgJrHL5cbqUP1wc9XvmBm7PPvss3bx5Ex9ogD6APnDQfeBLX/oS3XPPPfShD32o9vPII48YKMeQkmOBlRzXbbk8v4OHTz8azPYVbLMr12hbH/xDAP8QQh/Y3z7AgPvgBz9Y 2EIMuBy0GoLt37jFlib7euPlMH2lW893fuH7e6rZjiv/b1g47tt992uVitq ukLbjk7SN/sPuvsxo0btI fbcJtH/XCOe3n7wDf62bf6/vf/35q snBp23klrODdMAtgDTgttmPGhdD6IY cIPe9773Nf7k4CNw4y0 w2sweOR2cnJC/Pnc5z5Hf/zHf0yf cxn6MEHH6Q/ qM/ogceeIA 8YlP0Mc//nH6/d///eBz7733BvCKf4A8/q3TADdcpHV/wD76Q5s 8N73vpeafprAre Xx2HvNqrTYPb8889T6vOau89If171jjP65TueoJ/77W/S3/6Nb9CPvvZxeunt1 mv/4PH6L/9hcfor/zc1 m//LuPJm1p wy29XrtP1/84hfNTdmHH36YvvCFL5TA99BDDxn4Mdy0nXif4cZ/kq7htv7qI/S7d/566fO5h7/Q p4c25U2sE33HegCXabeB97znvdQ009TuOXKbZrOExfjL69AJdze jGiN9/3Pfqte75Lb/jwC7T8wE16zXtu0CuvPk / M5Levlbn6Wf/mfP0N/6zWfoJ17/FL3oJx6svfDryO2zn/0sMbw /elPB5HbH/zBHwRRG0dxXeDGYDt/7L10 acr83n2/C566muvo7vv Cd0//0faQU4wA0X7qlfuOF/fR9 97vfTU0/OTjpYUmOMnLlNk0H3PJg45xKuEnk9sq3P0E// Yn6P/ pzZi 99edZ3 u1/8Ov3XLlrjiI0// mPPtAIbt/ 9rdJPufn58Sfb33rW3R2dkZPPPEEffOb36RvfOMb9Pjjj9P169dNp/jABz5Qabsqcrv61teS/9zxT iut/xjOnrza id/ zX6B2//Y/ozt 6nd72m6 iO/7pr9Jb3vBKesvrf8V8PvaJPyyBD3CrvzDg4gmNpt4H3vWud1HTTw5OY4MbX7sO6nN5eUmpzztXn zZweflr303f 973Sp8XXvgePXv5XTq/eIEePb9B1x57nv7Si38saUvb58iNwcbR2ic/ Un62Mc Rh/96EcN2PidEY7k P7b/fffTxzBffjDHzZ MNy0nXhf4Cbp/CXKqwBHb3kNPf/kcfC5vHg/3fz2Vbr5xFvoheuvpxe 8mt08 Ffpss/ Xv09B/9TfrOfT9CP/9TP ZtiC22K21gm 470AW6TL0P/O7v/i41/QBuI4VmrhMy3L761a/Sz/7jf27AdnH7bfTUL/0Neurv/Q/09Mt iJ57/rtmy/uPPH6Drq2/1gpuDDiJ2CRq4wdMOJ2P5cM3dfmN/S5we/ubXm3AJsOSzz15lW6cv5VuPv4b9MLXXk0vfOnv043P/R167tM/Rk99/H lf/nhF9NnfvPPAW6Zf/jk gzSAbV96QNXr16lph/AbWJwe8cHPkVfPv0q/fSr7ypFbZc3vktPPvMCPf6nN2n9jRv0x199nh747JdbwS01HMkRG0dxDDL58NDAV77ylU5we9tv vcrD7cafvodufOtOuvmNN9ALj/4jeuFLv0TPf/6n6LkHf4Ke oOX0r/8Fy mb9z1l j X/8z9LIf 98RuQFwiNQPsA/cfffd1PQDuI0Ubs899xylPm977wN08vAp/Z1ffbuB29HvfYzefPcxvf6OD9PFs9 lX3rtu lnX3XVfD75xUs6/uSXDNxStnSaDEtK1Mb32fgT32d77LHHTMT26KOPmicrGXbaTrwvw5KSrocl3/z6XzFw44jt5vnb6eY33kgvPPoauvnlX6Ybn/9peu7BhQHbkx/5a3T e/8Vff3O/4Tu/bU/Q3/jf35xEm7SBrbpvgNdoMvU 0BTsHE5wK0F3I4u/FMg6 PT7d4DzHXCO37vD n z36ZXvYP7vCR280XvkdPPfcCnX3nBfrq2Q36/Nefp0996Tn6/S88R // Bcbw43BFt9zY7jl7rlxehe4ven/fQVdfvuDdPP8Lrr5zd mF77 63Tzy6 gG5//GXruob9JT3/i/6AnP/rf07ff91fom3f95/To7/yH9P5/ K/SX/tv/jLglvnHT67fIB1g24c cNddd1HTD DWAm7uoZb58SVtHW48cXLq8zv//OP0L 5f0 IX32Tg9jtH99D/9 YP0e1veB89 q0b/t4b33P7yJ88Q1fvsXBL2dJpHLnpqE0/HZm758bvvzHctJ14XyI3SdeR2xtf 4v07Nl76OYTb6YXHnsd3Tz9h3TjCz9Lz33mNnr6D3 Enrznr9P5 /8qffPuv0iPv 0v0Jfe8Ofprr//Z kv/8UfSMJN2sA23XegC3SZeh84Ojqiph/ArT 4LU5sYMfgWxxf0JoPzy5o0eBJTwam/pvl1lH67bvvo3fd 0X60f/njfTd736PnrvxXfrTp1 gx85v0iOPP0 fOb2kTzz8HN3zuWfog595hu780MMmcsvZk3SGmzxAEg9H5u65MfQYbmIjtRW4SZ6G2 t/7efp2W/ebZ6KvPmVV9KNaz9Hz332b9HT9/ f9OTx/0jn7/8heuLqLfT4nd9PX/mt76Nry3 d3vzyf4t 4D/ viTcpA1sp70OF74/fH 5PvDOd76T5MPvk8UfyeMt4NYf3Pi6PTNDl5e0PrlO8 U1mi3dtgHgTH0pl/ty33h0THd 6BH6v37uN j R56ju 95xHze ZFHDMju ODDFH/4VYCcPUmXyI2fgPza175mnsg8PT0lXmaCZyuRmUo //nPmym6 EVvnqKrC9xed/vL6cmvvJXOHvwpevRDL6b1u/4LeuSuH6A/ueM/ovvf O/RR1/7ffSuX/l36Oov/zkTsTHY3vB3/136vn/7zwJuE19IUvodtgBZmz7wjne8g/RHRwSyL/mAW/9w22TIshS55Vb6fcPbP2IiMQZWm0/OnqQz3BhUm3zERmorkZvk6cjt11/5s/SrP/ 36eU/eSstfuR/ov/lJT9Ef3X IvrP/sJ/QP/ n/836N/81/6V7Efeb5Mt25U2sD2MlaLxPR/e9/z2t7 dmn4At3HALYjaOHp76qmnaB8 Ajc5Fw03AVMfW7YrbWC7H30H3yO x7gPaLDFQ5J8rPMBN8Bt61Dg4QLppIAbLljSF7BFX2jbB 68807SHw04GZaUfMCtKdyu00rEC7bywEg6f3XU1H5U7uLigvbxs0247aNeOKf9/B3ge93se33b295G8YcBJ386D3CLoCIPdOx6 53vfIf28bNNuO2jXjin/fwd4Hvd7Ht961vfSqkPwy1OB9xGCjf5YvbtR8Bw29Zn37TC Wx2AYRu 6vbHXfcQU0/cg2Nt1gVYHvX4EbX9vgLwfGT2fdWoA20QR/Y/z7wwAMPEIOpyedTn/pU9noBuI0Ebhib32xsHrpBN/SB/ekDbcHG787l/sEDuI0EbrkvCOn7/y9VfMf4jtEH u8DgNuO4fbjP/7jhA80QB9AH0Af2KwP5P5hALjtGG78BeADDdAH0AfQB9r3AX56EnDbMcRyDw/edttthA80QB9AH0AfaNcHeH5cwK0l2IZcz818Ozv4n7zxv4Om0SQUgAJQoLMCgFtLsKkIa5D13D p/wxsYMGCjmf1PvfW/gSlUgQJQAArsRAHAbRtwO6XFiVqX7eycVmeXtOSlbxQcU/ulVQH67hVNIjIpw1v8QQEoAAWmqADgVg cFIQ4LRe5MdhWR6cFyJY832QzuJXa6rtT2aiMgsX9pA1ATZTYbLta2EUT50uzPu1mRlBrvxRYLe xvbZGeknbrJ9t3 2JvvrSrMG/9BDZvAHDrG27XaXV2XoCtJlKLYVYZuf3kT/4k1X3quoIHGBFxXCbRmd2aFJ9WbWtFC7MC7pyKa7lKW7oftV4lN/5ByA9lNqPgt6/Svb9x3WrnglyBTtBGUKLuQM5rkZk1m4iczx5s6yXN3bn7NG7Gn5vWLd3 ejk330VQP100k9rA70zNyuQezi1vv0 fxVZ5peZZh/6U9z2RI993becTXyv6WMJ8bVLj9mst QLd 6U3tdUdwG07cJu3hFoMOX sv30GW9VfXT7X1TATcIhNfSzlJC 1LUFD/5D0vrmm2wuM/o1LfdNumGH89BegyFbKl 2m1V141rSc8/mpC5MAYD6nub Qcjk 5rL1cOt TnV b9jCVs9tOz7v7ILcuO9u57z9P6b072vDr72olujvReZo9gC3vuF2jRYnRHoV7jkPS54RbbTsje4 pdfCqy2dbAi0DFHds9tX9NVNmVpTVPgT70Q9XLiDmdxTkyY9BX9Ddj3m oEV8sZe6AgV/MV3SWu bchYo0raci0Q7GqD 9y32JaqUdvjkEnlLN9wotgOIcR3xyTeg0uZL4vomi8stlg6ETgupK77MZiS e1 4svjFcJSyym99nuwn24jTjN/Z9hLfkZRV7ZjvX6VvfG7qHzyia9bnzPdiBn VL2vVH4yf6n/SP7y2kie6xpp6u0pv/seLLi 6SFmxwVvJk/L8HSbKiT/J76rqvMV/paPYknM1Puj2VVmtufdL963cubp2bRv696wcGsku4NYWbun12ohkPTe2d0rL4IGSS1rqe3Btojr dT rgVZfPtqRT y2nKehJGU7kMtV/ l bcnF00Yv8qPQPXl385QfIP0i9b9qTuu4CEeTLBcL/ENUFx9mXC4U0Fxy7 nIhEGiY46hdojUtF3xvQZ9nQhFXT9ozJbyfSzIX3cXKwGaxEp1SF4YoT/xhw7LvNNHnFOgTuFfjN5 f/oeFtOFOROwG58X2ezg3se2/B 93wueq78z7IhBS0bO3yS4nhnib2HXRuNSfOTG0/oEeRh7VVqRp4VKkfaqPVflXGDJ71h/uU06/BFzlHEqai4ZNzlXadedV6huSP4It4NYWbgOX131E4OXBpMDB5SQ/txVbUl O77vvPg 9V7ziFSY5LiNl4639wcxpuVraiEJ6e/yjDo6jH7b8uOIfpDo/uaj4C4n7IbI/wYXGJtjzSVyI5Acu5 e3Dj58LKdQnGvigltkevAE9YJzcudrzi86d3Ux9L7IkKXWTO9H5xyfU3HxSvsdly GSHV58TMBix7OLfahyue4rNeJBRdfVH/QX43si42inQJ43p70N23X9cm4ftDnxIe4/7Kd6HsTO0Wb8o8crb31ulzW3TsMOpo/Q/cPlWh4XLUf2/NaRP5LOckPzlWac3aljCSPaQu4DQyrNlEbl9WdRaCl0/R Xb78oARmuq7JU5GdQE6XSe67H8Z8bv 16n936kdl6ukfkOzLxcRv3Q9d6srFQjcsdVVe6ccn9Z0zOj/ 4WrTupxOp9S/qnUB154/d85L GmrCDTsucb WB8iHdhwxTkZu5IvWhpn8hdMuSgF7SnQLhb2gSApp0 3l3Njgxv63MyXoFQycou1D2pE319cNugrUVl/XtH3lrZRD7fkdxA4ywfyXefhZqqkNI/8T/sZ/aPP2Qn6fMmn3SYAbgcCN4YXQ03 BHSS7rdqmJLT6iEnF vqH5X weh98SdIkx gApiUS15Ypbz7pQUXnijK8Ree1L/0xY5vt GwpLs4BBeh6ILh/Y GAsVXW1e03ABu0oC0m4FbZXtsQ obSMqFV4y7rZTxOkl 6H9tW76ajvrlIq0iRvleUt9Z1hcxbrdB/5KsFnbj nJuRubIhyBP2lAjA8nv2sOp2Xmn/eG6Tj/5blT7ctpmKz7zCci q5O2HcLNlsn0j6Ch3R0AbgcCN4aUAE26G8NOojjO039yH64J4OIfg7EjPyqJJHhrfjzhBdC3KT8 wvoBJXfmB kLq4hvliQ9yjho0wcWGbfm23DBP6iEO8Tv6wVv76gJkfJNzUunSRuSnuY n73PJxcjBJHiSUnTgC5Dej4Adn7vV2YoW5qmLX6o9p7Po5YeCXbrf9HBuoV/SN3I V3xnWV 8t2ZH2tP9wmUUD i479yUiezG9UWjAG7SZ3hrMlR0ao4F3Nzvyk/NShtBHxM/lG32T8rOlys/HClNSp7pB6rf HSxJX1T2oj6umgVnKsVzbYp9UOpR3MEuE0Mbjz0WPWp6lkMuCrISV0BhJSX9GluBTzhvzx7Pxd3 EZELQu/2BzM4kF6Dnc8ADUVwGKDFnTYhkBx7XwfcJgS3vnq0QEsgJnblWPIlfapb RGa85J/1m7xZORfuGP/0VdKcGAX6kotmmYekmYSCY48auOvDnA7QLjJb1Ygtm9Qk/PDFgpAgcNVAHA7YLgdbrfHmUMBKLDvCgBu24BbuCrA uScFsc8mXLDttR6ceFTHlvsjXWvEWyxaZiGAlAACvSuAODWEDgt3k/jVQGWS70qwCktN5h iydRHgxuvfcsGIQCUAAK7FABwK1nuC3PaX1yvXpVADfXpHztHNmlJloeFG5dIje5d6e3cnLYQgE oAAV2oQDg1jPcji6CSZP97P4q8lueXIQwY9idlJfJGRRum3Y BlrqL5eeKjvaNHkyLDkl1wBe81N4bZ9K26TOAKeCJqDA0AoAbgPDjSO75JesJ162Pm0VblXvykl e0k VKACzW5nNRLZk3qnjvPijTNhdeZQ6elzfPFrPF/edXLD5hVs1A0POB/FdXow1W1WvdLItEnJtmnea7XRn8qSrf/2goo55eb0tLNndKpstTgdFocCQCgBuPcON4VW5WGnzxUy3DreqjtZkmFLgxusK5AAXt1HUUTnm4 slL3ygomDS9FpoqP8Qut6 ne8pd4HPpffiYsW3e3wsgZWe MIDL1OnkzjZsdnIIlaFAvQKA26ZwO3WLMpcjLn6gRK/nNjP32IqnJW1 zX25K9doMnBLgy0NvDzclrRazv1aZhy1LZZuWC64uOopjIoyds01N/0Vl/eRVDElVvBSt8AhWTZsY bXnLPTdfkoiX9fgW/6B6eAI V8JBjaNwFr4IeDfNI211X/CJAmpazZyhp5dpons1K6DLEmz1vbi30rZizhKJHPPamj IEtFBiJAoDbpnCTdd3KcOP7bPPji2L48ewiWs8tfFWAzi7NQyj2oRKxazvI1p6WrIvM6vIZUm0/RYQX9X65MJt5Fhe0kuN46yYdDkYvuUxwT8xenKWMuRDzgSlXgG61KOZZLJVl96RtcTU 1ukepG6uygAg3A4DQgBiYSFtWjPsc GbbzvVZirNGHE2OF/BL4jyfN1Meyl92bav5/aVr1ZHEQNbKDAeBQC3TeE2UL1tdRWBl9yz0VtuU/Jz22QElnGWy7J9gWGpmLp4yhRW5uIv6fFWG5A8SUsdm4uxhV6wina2bHRBZ9tx2Vx7ku62EuX4a C9lh9NiQLLPubICz6AtBTedb2w7cIq9Nu1xG1LPtJfQMfADB1BgHAoAbgNBSj0tmXqCMpu2rW4i 0MrZr8sXuNlldGQ5nfy2KdzMhVQiA7moxlvttORJWupY7Jky6uJcVTaVp6GRa0/SZRtPqBzb5XKptGw6 y9RoDSibMS2 FjOX/Jkq6qb3VbpSsfYDo6hwAgUANwAt2Q3rIMbV2oDOB29lRqsu6j6/MSQns8Tq/aiK8N elhyYW4 cTkZJsyUNUWix/C5HYGENJUqp/NkmNVsBUiJc3DL3ojP3kTp3GxOMNRokux5pB4o8efP5by98Lx9e1XDknLu6yWVdSwsYA8KjEUBw A1wS/bFNnDje2lNIjiJ3koN otulCPpsuVs3ldDeP6hE101KCP3suwFXYZfg2FCb0/KahAUhmXI1NdN GPtM8gigJgITg0P jbdUjyBz259M33ehRtmT4Y75Xw8GFN2pK62lysXpYvd4tyXtFC B1pIO9hCgREoALgdMNwYYFWfJv1TorcmgCvKNrGMMr0rwIBNDa323hAMQoHdKwC4HSjc up6DKw2n77ahZ02CkjUKkOjbeqiLBSYpgKAG Bmem6TYchpdnF4DQWgwCEqALgBbofY73HOUAAK7LkCgFs7uC1OuEPwkjbt6oWP p/S8uTS96z1yYWfsotnJeE/v/abL7XlnT4jtz5tbfm0YR4KQIE9VQBwaw p5Vk3uDHAVsfFem/zo3A SpMvC5vuab/LnlaT 3fZysiAAlAACjgFALcN4XZ0TqszJ LZBS1aRHIMr/Xx9XDZG/WSt4WfXT1ga9Nvxb APqOtLrbqnqjkfH78HX9QAApAgSoFALdN4EZEZ c0F6CZiZHTc0yGw5HSlp1bUpa MYuVii03YTKRA2bVl7cvefKuVt2Wz1fg1xpw h2vnQlnX CeyctjO/NDvcdn3r/DU5S7/CrQ9nYUANwEOM23qWHJYChRRWFpuIVtzY8uDCylbGBrO1972WqXaCu21taWBlXdfgzAuG1zHL2I nJq5I1mvaWIWlMhZhmQAACAASURBVCtaVLxHFswWwm25qbn8OW0Kvaw/FSek6 D9twqhkDVVBQC3EDQCmKpt33CbXeGVAIrIbydw22UH9hd3NfNFKk37yDOicJnyH7/TpSORFS0YGvpiXq7ULiVhy88YkoVb6Jctr2ZEMawLjxs7lfCntm5QJzUlWK0FFIACo1YAcNsEbu GwpH0gpICTBWNuvTcG2WW4BA4vcHpSrO 2E7i1jbaqenVbWxpSTfa57Wq4JSDhLuZ23Te7NI0PlDjPg1WBMZnuhhZd WD6qQAYkUJBdMQ2VDtR0XCKMTVl13xJZf8jfxYLmvtyqq4/P5WmQMywDc4l9gnHUGBiCgBu7eDmXwXgJxzlu04 UCLrssXQs3BbqVcBiOu7oUwGm/yZ1wHkYJ 3qSgtlaY1yMONR/vcumqeXsWclD7Jw4YjKgVDD6hcurpfpR3ifV83zuAsBQ8DTdVmUJzbdfNNGpNzMvfoTJ0i3QxpC px0u3G5aFJmEzGmIlnWw4sTOIQDKDBJBQC3dnCrGq7cSt5QvapttFXll9hqum0Sreky3HYV3Lxv fMHmiCV1MRcgOBiEMHVrqflox8FSICh1fUNuJ5fuIOUjo4pyJUAa/xJru2kbuX12S fJMZ9HKl1gGZ8XjqHABBUA3AC3nXfbECwCkvJWO9oIbqaCi8ByF/M4XRrJpXN Li XHsMtWAJHGnTb2AYf18FI19H7KV9z9hC5RV8EDqeuAOAGuJk LFFWHx26rS0dlTXZZx zcOOLtx5ek4u9bOUE/XE4DCjZFA3nFekObhLF6QxvUye6fT8Mao/zD5SE/mSHEXVbvC/ 6HTTVDN7wbBpwn0kQYGpKQC4AW4777P9Rm7hAxYzeXIyvujrYwMHFSnK8Fwu3TzZaMvLUKOFVWF D89UKzJAJHyKJ6/h7XkG76QdA4uhR7jPO3QMl/oYwN15rz2pW9nnnXQMOQIGNFQDcADfTedpGW1U9rosteUm7yj7nZSO3uoo7zPdR2A59SDYdRZXJ MkiEAhNTAHAD3EbVZRluDK4mHz2EOaqTyDrjosoxhUjmoZswosy6jwwoMCEFADfAzXTXLtFW3N 72JK5IzcZqoz9wDEUgAKHqwDgBrgdbu/HmUMBKLC3CgBu24CbnRhZOg1PjLzgZW5kGZu6uSd5rkn3l5pfSvJ63XaJtmJH rQV28YxFIACUKCJAoBb/3BbnPB6b8V6bbPlKS3P1AKkdXBTs5UMBrcmnWWIMjwsWfcZwg 0AQWgwLQVANx6hls0T2Ry1hKzRE7Rb8ySNwng8VRcg8Gtz2iriy0GW9Wf3JOrKoM8KAAFoADg1j Pcji5orVbZTsFteXIRLlTKsDs5p7jsoHDb5U hzcMjAr/WT0ryu17y/touTzbZdoenKIc4LzxRmfzWkDhuBQC3geHGkV2ySxSTJwvkBoVbl2grPp 2tjSo6vZjEMZtm PgpeWZne2 TwhkbcXrudnZQazPuYmS7aTKfv7LaD7L2rcGsr5UTBOWFK0mEe/C1QiE7LEpALj1DDeG11k5ChNgmbXbKvMLfwaF2y47Zgys3LH2Mf8SdzwTyO7Wc NZQwRO Re4lb8xqPhYrRCgz9/vx3V8Rs9wI8xioqXF/vgVANwKmBQAapKWW6/tGvEDJcHQpLnHVjwtafOL9dty7Q4Kt7bRVlXXbmuLYSZ/Tfa5bDXcElGSg0B5PbR4eir1QrODi4WtpLshRBdhyfRbxv8ANAwt5UeQJ2frVuOW4dJUGZ3G z6yc/6Y/AUt5jL1V4WfQf1wWi ri00LpgUT34xMatkedQrYhQJjVABwawKyVJncem227Pz4ohh PLsIFye9Er4qQGeXZrHSuXmoROza3lJc9cfYe3ryKRepxem6uTzcxrKeWwQ3MxGzgp07GQaJB6Q GmT9ZsSNbX9HeQzTAEqC5IU4BUmCP6yciSQc8iTDtPJSFn6tFsW/WkPMFvYPYgQKjVABwS4FrRGlD9Zq20VaVX2Kr6bZJtKbLcNtVcPO mQchdrWeWwSjrnBzEAqBn1mXTSJGDTe9zwIZe4n6bjWEmdjwYvY9zKkNYx8K9K8A4DYikCVeB0D k5ofhQikawc38XhxkUhd3jnDidPmN5dI5P5cXpEdwC/KkERtpVUZuUk 2RVW7F6fzsYBJ5 l9OQcuF6d7 zbSCyDH/1hA5OYVws64FQDcADfTQyXK6qO7trWlo7Im xjFm58sdYXYLl4y1ZO0B/bi7iuYovk0lXUI7Zk6206C00eKNFPIUb1wzXlMv5EdYIHVzhPQBetT fLRfUZ3IulPNDL9xfDIU8PYjlnbKHASBUA3AC3nXfNcKhNHowob7WjWbi5p/oKm/rBi2VxI1Rf1A0EVHv6npWKHGeS3ng9N4l 2La6d6VPxEBH ajbi9Z/s0OJkZ85310bfp03BlZQ1vmjdTB1tM/uNQqTjqclg68NB6NXAHAD3EwnbRttVfXsLrbkJe0q 5yXh1tdzfHl yhqfK4VHukIs0jFHhQYrQKAG A2qs7JcGNwNfnoIcxRnURrZ9zrBeWx0daWtlLBPJhTDE9upQ0YhQI9KwC4AW6mS3WJtuI 2cWWzB1ZDCuqYbhgyM6mx23jGApAASjACgBugBt CVAACkCBvVNganDjWTuSfw2ntCrPBuJemm5UX79gzcvaXCPtTzAryRWeqYTCmUpSj/pHaWLPr/2WPNktJHaJtmJ3 rQV28YxFIACUKCJAlODG8OJARCApHY x7ro7DqtGsHtGs2Ss/6f0uosmuk/glYM1eVZeaJkKcPnNzjcmnSWIcrwsGTdZwg/0AYUgALTVmDacCtDSSKf9Uk4/dVCwyZYT41BUrYjoClt/Xptbm7JE54jMqqvVtIOIMw ZFYF8DBz8F4d29UDwjeXt9jX oy2uthisFX9yT25qjLIgwJQAApMFW7 m0tEXAZwHBktbcQWTmTMICryZjLPY8JOCWwCJy5rosVLE/HNPfDCCLEUYSrA1kVuRM5Hf6J7vNPm4RGBX snJUvvc41J0C0 LbnN88ZTlGPqRPAlUmCqcLMRURQxOXgEw3qcpocS9b7AxoCqapkaDS3b5tzYuU7Ls0ta8iTJiQV Ku8DNR3LR97W1wy7RVuxUW1saVHX7MQjjts1x8LLyLtdzE /idd4k3W5L77kZaKinRLu8IiBwky03qfdDV9of4f239pqhxiAKTBtuGjrF/nbhxsORF7Q6IXNfzACMZ/WfOtwG6W2ZRmJg5Y519fxL3DzDhn4na3frubG/Blz8CoOa3USfh51iq/DXlg9nMwlm5g8r1x lQJZKq7eUKYGZSzLCIHnHCuwL3PQwXyXczP2xDsOSV66ZaG0tD4RwBMezMR0VcJXhzOrIzT5tyW Xt8jjFAymB/0P1j7bRVpVfbW3VRWvcli7Dx9VwC FgfHUX9OHWc1MKVcEkiHwYFAXolAUfbel118LptFQ9bk /ExhMEO2GQF2 mSsyKB9Oy6Xb86COYM3pmHMy LZwMAIFpgY3vvCn/ zThzrfACf1cEfqgRI22vC Gz/iX5Tl1wMKUJmHS5IOhk9HmmFNKafuAZb8lzL7vM1FanG61iAPt7Gs56a8rYBbAAYDmQSY2ZQDUD FCyRGqKuvbsHND nKSLlux5SPJsLwBGFeO2zPHRXtBNMmA9g2q88YuFNihAlODm0RFB7Mdqm 0jbaq/BJbTbc6Kmuyz21Xwc37Jveu5GLtL jqvpO7iIcgdUvB6OjH7IdRjcyd79vTAPGJqi2d5vZLcNM 6vKx7Sq/tQ2pJ1u2mduXvORSOBaCyQmgtT3tM/ahwA4VANzKw4mjAucO 8ZgTYdgUQ9SRHDRDjWCm6ngIpz4AizHstXGeT XXpWXq5NLN83oIT32VQ0vap9iG/GxlI3T5Vi2sf86XfKScJMGEpBD5CbiYDsiBQA3wM10R4my uibbW01idZ0GfYxCze WOshMrl4y1ZO0B/bi7WuYovk0h349JBgyaYkuK1vK0rnw CeGzN1XloexwwBlmzk/OP0ApDGHkdyuj7ve/9DO8GwZBQBYp23xPeHpNEqALgBbjvvnP1GbuEDEzO50OuLO5 xPjYXexUxykU9l954PTeBVWE7DdECRtY1BlxRx9zP0v7KN5bzT4ZjZzOaLxY0j EW x/YyQ29WgiKX8UDJHhaUr4ObMelAOAGuJke2TbaqurGXWzJS9pV9jkvG7nVVRxhvo WRuhbrUtR5FlbHgWgwEAKAG6A20BdrVkzDDcGV5NPPFTZrIUxlnLRZjmsG6OzhU8mQgyjziITe1 BgtwoAboCb6YFdoq24C3exJXNHyvBX3TZuG8dQAApAAVYAcAPc8EuAAlAACuydAlODm3mBOnhpe hM4ndLypHgZ3Kwg4F7glpeoUzOO7OQVgaF6XJdoK/axT1uxbRxDASgABZooMDW4MWDMZMVuxv9NgMMAW6m5IOdH57RWs5OY/MR0Wpu0laujpwvLlTHpTb7EfSrDw5J1n306X5wLFIAC21FgsnA7OqfVmdNETV9VCQq1asD6 DrNZVWAaGvhZ9dTMy3IPJJSLpi i2h9ch7aqspvsJ4bL8MjkSXWc4v6vdyTi5JxCAWgABQIFJgm3OzcjnOJ3gxMwrkbqyF3SmaNN6e EgZPYcouF vXUrlyzZVWktzwpJjk27XD7J8WSOXX5XKcqcmO4evgG39aeHtQ9NCL5fPoMN/7jtFZ/qffEWhnYZuEtPS2Jpxm3 aXB9sgVmCbc9ETF9p5bl6FEnsS4mAiZZ nn1bnVvTy9Blwm8jIw5MiuLt9Ff1Vwsyt7247T8gq eW/r8z5ZW1saVHX7AjrZJs84eCl5h u5pfxIOOzfc0sBOEpbLeTl7ugR/FxbeA8toTiSDkEBwI0hxjP7F5FfJdzMkjlFlFaOENMLqMblquGmwHoInVBAVbfVWuRf4g6nnzLr pfH7YxEktK3W wlbBlA8q4jMbsJGVwsqXl2L/ZJWVXrCbuC3zmdoeePKhjHr1rAz 5hBRJTG9rAUmCbcwmFJ 0BIAScLEl5UlP/idLdEzdEpeeBwtHVy3R9Xw02GKYvy3o6LysyQ53E n8vrh2Li9dw4byX DdUd20ZbVX61tcVQk78m 1y2Gm7F0ixiVyCxk/XcjBMMmSja4nQdWWl4ieM6Te0zTIspsBhuiXN2NsKyYhhbKLDfCkwNbv5VAH7CUb6a5AMlDDH S8NtpV4FIPXACINN/rLrwV2x9 ykHPFK3Cf6AZW6/GuUW8/Ngo9X rZ FFd939r 7dRFbJKvzzwPtxGu58aOKzDp8wjAw2X0nJKyH0WDrIcFWwFMP1zpoznVShDlqXTsQoE9VmBqcIu jpL0/HqrvtY22qvwSW023TaI1XYbbroKb940v6gyI1LCkwCYJlJ7Xc6N42NB7aFYB8BGY FRkh1AUSBmfOQpkuEURmz5nsZOyK3nYQoE9VQBwU/e35FH/MW33tN8Fp2UAJFFKxVZXagQ3U8EN2cUXeDmWrTbO 7n0qrxknTzYrCk1vJiqr9I4OvOBGaezVjqq8 cQDVMKFH0 dqDA/isAuAFuppdLlNVHl29rS0dlTfbZxyzc KLvCaAgpSBhztEfMwgUNLwAuXRnM3WPy9t0RvhYltzxdqMdBo8AKq7PRVWaeWhFnZs5Zj 4jErXdawJBdCoeRxCgX1VAHAD3Hbet/uN3OzTgYVN9xCHgoQ5YX3M zpi1LBJpcfroRkGhWuwMWssfOTRfbv1Q5BedRXZaZ8kP0gLz83YkmFI7WcAVFtHs09MYwsF9lkB wA1wM/27bbRV9aPoYkte0q6yz3nZyK2u4gjz44isVxd1ZNirYRiDAuNWAHAD3EbVQxluDK4mHz2EOaqTa O2Mi8j6Dq9MVJd4/aC1f6gABaanAOAGuJle2yXairt9F1syd2QxrBgO68Xpcds4hgJQAAqwAoAb4IZfAhSAAlBg7xSY GtyWfiUANwUWzwvp/oL5ICsf5w9fsuaJkxfxfJKV9QcEopzctrddoq3Ytz5txbZxDAWgABRoosDU4GaWgzkjWqtZ nm6q Zgs9NnLZd6 q1TYmi2sTHYy NNvsR9KsPDknWffTpfnAsUgALbUWB6cOOoyU6txTDi6bI06GqhE80jmS5frKfGqvNCpgsXydnI8 ZKWxxfB9F9LWTLHrwpQrFzgp/RSC6Km201EhNv52stW 4y2uthisFX9yT25qjLIgwJQAApME27F0jJ6wuNGwNDL12SGHvWkxsamWS uWJCUAReuAceRn5rDstRGlJ9pN n/IXTR CGR3DFrIfDjMq3 gvfFWtXssfCWnors0cPRm8IToKP/isbi4KThdsaTCyuoNIFGCTxRtJSJ7HjoU6KzEvzcAqfFsGYEs7o2q/weqqN0ibZiH9va0qCq24/BF7dtjqOXss3Lzn3CLbaVai/hmH fTcpHj/6byY/lBfJE/XjmkVSRZFrsb7JQg0Tx278wPtBrBrH/eHevwZeFItOEG6 ZZqFmhvzOiqgqGf1oeDC8qoYHe4HbNZp5oEWg07402T ELhoDK3estci/xK1m/DAV3Npm8QVSG2u7H9vaaN22BS30EjjG5pzmVXBr66eUj/2V9Lbb2A4fp6Yha2u3rnzcLmHWlTrJkD/FVwEYFkUUxTAzy Co9dgs4HLrucl6bPqBEoZl8VBKbH/WdljSQMtCzdybUw /1MJXgOeeAm059rZ5l24bbVW11NZWXbTGbekyfFwNt2imfK7gLpBbXc/NiMIX3kREo6MN58tKrclmJkVeLj3cwqm7oinEKs4lqGdA6YZCXbTFUWxQxk/VFQMj/kdCoaFfa8qsdqC0Zr/iqM74yiAv3lf0AWtQ3tkJzo3Tyv7brxPzZZruhv9lFZha5OZfBZDhSP8ABxEFgMut52aHIe0CoU 6WswtayuKgAia13pt oIThZOB3xEAs6i/kgRKBE28NoFoOm7r6sm7dYHDL9pABMnKRWpyuXcnDbYfrubGD7uJcAMB6zUDx80r6MgwQN/Exg8in6zN1C5oyESSft3qyZwGnSS9gs1qEwIh9Mq1wXaFNbl/ckfblWNq1hsIFU6Ws8UnBnuuYaI/PvZiw2gBXzlGlG9NiS9rlrfZVp2MfCjgFpga3xpGPhkzP 6XILmffD01G9/Vy5X06R33udYehemrbaKvKL7HVdKujsib73HYV3Lxv5kI64HpuG6zbJouMGr7oi7iBQhHtzDT8d Dk WX9sgWHh4VVQ S4tZdtkOdi6iaGFed5Stp7zwUdt4rcCtzfCbcxpuSqiVJNlbKfK6/PzRsrnpLKwCwVYAcCtHXiKyJGIMvfubNQl/SscQm0EZxONuohPzOzzNo7Qcsdag0ZwMxXcBdsDwFmRY9lq47yfS8/muYt2Mjxic6nITaAQRVjcth8uVL6IT7IVn NjA1kGTGRXfE/ZdrbsmnEF5KQJs9Xt8L7YF7up 4W6jjHSE9wQuQVfDQ7KCgBu7eDWCE4 AuvBdvkr206KRFl9WG9rq0m0psuwj1m48cVUhxxycZWtnKA/5ottMTwm2eQAoU35PK4bX9g1MHxBtcMXY7n4 7ZVPu9KumxdthmyaxK5rZe0WApd1b0/7W/Otrhiys6KIVRJ1/5JmomMZRg0o2PUnhlONDqE5YNhSdFJ2tH u7TgHwtSDlsooBQA3HoAUJ8wi22p72pvd3ORWpyuBcjCLXoAYSbQiS y thcPGUoTa1unUuP1nMzF ZoSM7fX/NOu4iF2aPb9vlhugxXsgbzxcI aCL1ZCt1/bEFhuimfRB7nCb7gW2xZfRT98h8euifJNtzVw 8aB0EyDqt9I8C0T0RZUojkd6EpyWVMtjNKQC4AW6mb7SNtnIditO72JKXtKvsc14ebnU1d5fvo5 PduVDfso4w60vXl/DgrS/auETfPjZuGAWnpADgBriNqr8y3BhcTT4ceUzrzz3WnhzrHMeZ2HtuPfrSN9zMUGgmsuzRbZiavg KAG BmenGXaCv GXSxJXNHytBa3TZuG8dQAApAAVYAcAPc8EuAAlAACuydAlODm7zcLPM8bvb0YjTr/8mFn5JLZvAv5oncMfyG6nFdoq3Yxz5txbZxDAWgABRoosDU4MYwa/wSdfzkoTtmgK3UlFjzo3C SZN/tF2oBasIZPw04G7yJe5TGR6WrPvs0/niXKAAFNiOApOF29F5/fRXGWgwvNbH12lekb86Pg/Wa5P13AxwzFyTxfdhlr/Rtqry9XRhhYloodQishzsiYk o60uthhsVX9yT66qDPKgABSAAtOEm50dZC7zORqYtJnD8ZR4CRv/tuvJOXlbbvkas5SOs2/KqkhveXIRgpHbPzknGSKty7fRZ97fAL6H0EXrHhqRfNZC4Mdprf76fmqvVeNSePxPS4qno93iac nRfjVjc2yacCtPadVlKHHOExyrqbRKtvQckZnIy68rV5fvIrzqYcliUuaWV/DNu1eXaCtuta0tDaq6fQGdbOO2zTGDTL04bF5m7hNuJVvhy9N IuLIOf em/gXvRJgXq6OZ fQNkrt6syK/U3rxSY39Tu2I8eb oX33ERBbCsUANz43hqvIFBEUpVw47IKhBKtFdu6fHsvrxpu6n5fxXe3N1kCqrqtPuH8S9xqJhBT Yej13NS0V9phPamyuahPdT23Hv3eFG6YoSToWThIKzBNuIXDkvaBkAJOFjS59dwYZJfhEjccban lcqrhJuvBXffDkAXYLJTsMGY n8vrh2Ls8jvFUCfnrWQJnvTX1n9q22iryoO2thhq8tdkn8tWw03mOxSrxdRR21/PjeGaaF9HG 6iPtX13Fr7beSfmzX5zD9gTHTqhmhdhO2jax9xqym95kuy31uhK0fBenox9U1jFwoYBaYGN/8qAD/hKN8hr8ot99/8gx259dws3FZqvTZyq3ozdBhs8mdeB3CLhnLa2t93s/fspBydXRo4Fg o1OVfIx4KzfnPUZ34V1z1fWv7t1MXsUm PvM83Ha1nptcrIsLsPY3uBj7iMWBUI5lqyvyPoORhzAln7d6smcBp0kv2t/eem4b K2An/Yr kdB7lxFG9FEjrGFApECU4NbHCXt/XH0fW3tsG20VeWI2Gq6bRKt6TLcdhXcvG98AeRIQINBMqOLpwDUbt26Yj6KaDa5rzXNF ny9FBpuBUgNrffxCc2ZEAl7brJnCVftvG5xEvdlPJdQsq2ySoAk5yGS7Urky838ruJX7FPRvvM m7sq/JFThNbKKAVANzU/S0f9Y0oTX9Z 7ofgkVd0CO46PNvBDdTIYoyxIhcHGUr6bLNpXN VV5moc8c3CzEXLQldnmrAanTZaZ9/eCJ5IvvMUx0fs62q2uhVkDOm4zP29hp6Lc3wnb5 43qxbZ9 QqtEblplbCfUABwGxHIUnBNfGdbSZIoqw/jbW0x3OSvyT6XzcKNL7omnHAW5cIuW2nIH9sLrq5ii TSJaoqhv/WywX5ZdT0gyPSFm9l6JD3fdu6gEqP8hmMZi04SZetVJfjoddzS7Q/V9DVfteuM eAXPoe5NykLbcN/rEQ5eEQCrACgBvgtvNfQr Rm9z7kggwfDDB3 jUF03e11GiXKBz6fH6YjL86WyULtBGYYZlxhf5BpRPMuzH2ox5PTfjep3fPpK034l EETOs/xASTQUKxrZBmk5Ty0wGxTCwYErsG9w27evswhptnxmbaOtKne62JKXtKvsc142cquruMN8E8mky bdDr6KmdYQZZY3mcAo jkasw3UEcBv3dz8Y3MYiA8ONwdXko4cwx J/tR8uqhwx4Ow9t qz2GmuiZLLD zs1Cc0PkoFALdRfi3eqcHg1iXa8t66nS62ZO7ITYYqYz9wDAWgwOEqALiN 7sfDG7jlgHeQQEoAAXaKQC4tdNr6NKDwa1LtBWL0qet2DaOoQAUgAJNFADcmqi0uzKDwW13pxi2 zMOSdZ wBo6gABSAAmUFALeyJmNKGQxufUZbXWwx2Kr 5J5cVRnkQQEoAAUAt3H3gcHgtksZ2jw8IvBr/aSkehdrd fa8mlJPBm4u68KLU9eAcBt3F/hYHDrEm3FEra1pUFVtx DMG7bHEcvX/sXhOXl7GSlFokVoDQvJWfa8e 5Rf4F01H5l8ndDCh4p6vFF4OiUKBQAHArtBjj3mBw2 XJx8DKHWsf8y9xq5lATIUB1nNzjjHY/Gwi2lnxIzdDiQZYCZw22hvxq3GlM0UCFBiDAoDbGL6FvA Dwa1ttJV3maitrbpojdvSZfi4Gm7FvI/eTweNba3n5uc6LMHJeVAJMAZyYjJhV9Xb9ieDHSgABeoUANzqFNpt/mBw2 Vp5iK1OF37mIdbsYyMWepGKrmhQB8BedgosHBZD6dcui5jjQfw8fWl4foyZrhShjJT9dlX73hoF 0dQAAqkFQDc0rqMJXUwuLWNtqoEEltNtzoqa7LPbVfBzfvGUOB7WAyGGBpyzFt/n0smW26znls8UbOzIbByzpQAqNvUZcUvfxJlmOos7EMBKJBWAHBL6zKW1MHgtssTjiO03LH2sRH cTAUXgcXQkGPZauO8n0vfMK8ENw003XaqXURuWiHsQ4FGCgBujWTaWaHB4CZRVh9n2tZWk2hNl2 Efs3BjOOghPIGFbOUE/THDL7V8Si7dgU/ukYk92Xq7kuC2fhi0PTgDMEZmcQgFoEBaAcAtrctYUgeD2y5POBepxenaxyzcKB4mzKyhpiHE 6lhwlx6vJ6bdkzb1el6EdNcmaA9eSgGT0sGMuIACjRUYN/gNkutZj3ltIbfY dibaOtqga72JKXtKvsc14ebnU1d5dvHhzRUWUTV3TE16Q8ykABKGAUANywEveofgoMNwZXk088V DmqE0k646LKpoAzD8Rg7bKklEiEAjUKAG6Am kiXaKtuI91sSVzzaGMqwAAIABJREFUR8ZDkrnjuG0cQwEoAAVYAcANcMMvAQpAASiwdwpMDW7LM/cVnJ2Tub92dOG/k9VRU1Cd0uLk0tdbn5zT4viSGtdXba6PT60f r5eXb4uW7fvvdzyTpdoK3atT1uxbRxDASgABZooMDW4za6cEgNOQ4VB1RhMV64ZsC2XCkpLa7ON DQbr/Pgy8CN mKUuPy6fPG7yJe5TGR6WrPvs0/niXKAAFNiOAtODG0dn12nFT2Mf1QOmBIzlOa1PrpejLR1BLa/TSiJEfivp5JzmOt/t18Ern39KyyByvKS1RKJxO9v52stW 4y2uthisFX9yT25qjLIgwJQAApME27XaMaQMuCpAVUMi6OLymiLYbg8uQhhxrA7ccOgyl4eXnZ4 NJdv06/7NuY8jJmE23XCe27q/TP uQr8Wj8pmXu3bNBrQMunJQf1rYfG8HRnDyLCRF8KTBpuZ3zf7IIWCjilSC3Oq4Obg2ZZ33I7OXi JD/n8KDI8u6DFMnG/cHk HNy6RFuxWG1taVDV7cdPTcZtm PgZegZbX89NzubSeFb vH94D23Oh/bwjiyN5PldZIC9ZgY 4n38noUF6a6KDBNuDEcLGwYIBz1pIYNBTLBluGVjJIELmy7HKUFNhww8/CqjtwCW8tTmh9nIrch4dalE3WtW0BBJi5Ob3U7 Ze4GTQaLkOs58Ztyowi2ku9r/3S 1zG aiLx9DQean9uLyBXZ1PKUMt0 J23QwxTV/la9kaikOBxgpMD2788MclLVWkszghotJ9tFNzXy4V2fEDKPqBlJm5x1Y8lGLz64c7N4Ub 786Kh5o4WHJ9H3AAYcl20ZbVT2sra26aI3b0mX4uBpuiYu6uwhvZz23BnALIppMeQ KcAoxH3n6IVoNb/dN LryzURtcH5c39RZ0GJe/GPCQyko7/R0bVgNOS3hp5k6c26jZXEFWyiwAwWmBjf/KoAMR phxABw9qGTFNw4cuJoie/Zmb zC1oq2PATmfpVATq7NPCx0aHYlcqylWHLuvxrtDy7oJV6oIRyw5IcIYr5fd72G7kNv56bibw8ON wwaPSFxZMf86rd5rw9TaIJlR1IbCdNgCpeVSAobya/pJkvk6lvAKZAae6ZMbS4fDGZtB9ONeWLdHOKcbucyHb0eUVa4BAKDKHA1OAWDOnF99P28XiITsB ttI22qvwSW023Oiprss9t5yM35Zm5WG97PTfVntllMChguOwYbr5WzkcNDQeV8B8BUXQal/Fgc9BU8LV23Jp1upxM7rxa0lynG9up8hGQ5aS075KGLRQYWAHATe61jXQ7cH/YSXPhRbsYIovTtXON4GYquKglvuDKsWy1cd7PpdflmaG6FnDL ajb1/uxn3Ksy/C vgeo86Q8b0vpDsxd4YbITauM/R0pALiNFGoShQ7VLyTK6qO9trYYYvLXZJ/LZuHGF2w9JCYXcNlKQ/44HIKTbBlq1KZ8HtfV8FgtyJeL86QSX/AlGuIyvoKCjPfJpfk2cj6KcWVDkkxEKNFdpr5uj t5H8PywbCknIO0kzjfbJQqdbCFAgMoALgBbgN0s om4ggtd6ytZOEWPeTgH4mPL T62FygVcQoF/BcuuGALV9 2CO6J WdZmBIRBc iJHzUe7LpdrwoBT7 nxcmoGStJk6lzjNw1TgKpo4SCba4KYCP/G0pHwj2O5YAcANcDNdsG20VdVvu9iSl7Sr7HNeHm51NXeX7yOg3bkQtpyBVVio5ZGP/lrWQ3Eo0LMCgBvg1nOX6maO4cbgavLRQ5jdWh2q9shmKOkbbmYoVKLToTRFO1AgrQDgBriZntEl 2oq7VhdbMndkbmgyTo/bxjEUgAJQgBUA3AA3/BKgABSAAnunAODWHm7Fi RRdwheIm9vN/kOX9TE1g67RFuxU33aim3jGApAASjQRAHAbTMI8SwjwYTNPFPKlOHWpLMMUYaHJes Q/iBNqAAFJi2AoBbN7il55eM1ms7Ow9AaObC5Ietj09pIdOAGVi6qbt4ei6zntzFcNNv9RltdbHFY Kv6k3tyVWWQBwWgABQA3DaFW9F3gkmYeT24aGJnOzFztHIBr FGbs5KngR6eZ3mZsvr1NmJoXn y Lt5qK9vduLHxLJHfOJC/y4TKu/vp8MbNW4FB7Z05Li1li35ulL 66dfud9rO6al DlvcLROnk4jgFum8KtWHIngFtmeJInYtYrGcxy68rpJXmOBoRbl2gr/rm0taVBVbcfgy9u2xwzyNRciv4laHk5O1mpRWIKlOpCbNpLmPPvuUX Ze4E3V6TUr5XdVA5GdJx072ZPaUnAP6pfdcmR7T9bno/bZN4D2/toptrTzg1g1upYdApgq3rfWwBoZjYOWOtan8S9zxRXGA9dwM2FpcrOOLJx/r2UH0ifa5H7dbaTujo67Typ6r2LTOUJrI TT1S8pntzY6n0SkmT2H/cgA3HqGW4thySDik7kkEbkVw425KI5/etVwS4DGXby2sZ7batHgxWX9L/rShZRBonw2F3aZ srZNnX6XXvNTs/l2ilFtZFPcr3zvodTiPmozkfMGU18/WI zPJ3wm3L c/snJyBJk4rZ8uvL2eOC40Wq8JHgU1wzn4IsSjHfW6 WBSrItS2Wx425TZy0bvIiO32FQDc2sMtfBUgGm40kKp6oCS93tvqiP1Qefzk5ZDDktvvavkWcpF anK4t5OFWzHUYrCnmLlJykQsnCY7AYi700cXdXUjN mp63619pn31bSiHgwteUF9PWMwVMu0a/xUwfLRoQSBtmos3H5jy0TyXul2TX5z3alHsi9syZ2RJRwGhtpfzW4zJVtcxPigfs/8AaHiOxp7TyOij9sVn8YO3XKYQLgSa7wOFf1lttd xXd0e9gdVAHBrD7fSUKREXdvYDtUb2t4nq/JLbDXdMhjkr8k l62Cm9iyN/i3vZ5bAkY6CnPOlOAWRybitLvga1jO2J6GginL7c5pufHyNBYYxra0ndsaUCR01D7l/I5txnU0dHJ5Op3tmbYSmuhyVfsp7VPldVrTdqWcPq9YAxwPogDgBrgN0tGqGgkv5Go4Sl EFADZViO4mUYdfFIXKr4AxeniaC6d84O8CG5N1nPT9Xlfw1DniS lNjmhK9zEeFPIJXTUvup9MZ3a6nJ6n8vq49y lEsBP1dH0nnrhyIbtCf15DxM/RqoclkdEUpdbAdXAHAD3Eynkyirjx7Y1laTaE2XYR zcOMLkAw1cUG5QMlWTtAf24u7rmKL5NKdTQUkHr7z91jYrsqT5ophUOWTZJrISIYFM 16f10lPxQWlg GzuLoQfu2XtJiaQZZ2SFaztWQJzfBZbUo0r5spYw/19APObXSNq6vfczmhbaz55irL mydU4ZO9I 58m5 HIbtGukwz230ve gwTADXDbQbcLm w3cgsfDvCP2fsLlmtbH5sLm4oYgwteIt3849ymW6jpNiNI FPlC6XL0217d YU KqjVvYn9lEuxFw/yHOQTLTBReU 2ny5DB7a8HD2/upz4nNN 17YW0d uAdBvL2En7GP ljvNz1HXSezL/5ynwseHNHaNHygRP5p4P8BZc7V6qb/XaAlwP5wCgBugJvpbW2jraou2sWWvKRdZZ/zspFbXcUd5vuIYxMf9MV6k/qoM4wCPqIepjm0klcAcAPc8r1jBzkMNwZXk088VLkDd1s26aKhTf5ZD7i11HoHxc3wci5y34E/B94k4Aa4mZ9Al2gr/g11sSVzR24yVBn7gWMoAAUOVwHADXA73N6PM4cCUGBvFQDcADfTubtEW/Gvo09bsW0cQwEoAAWaKAC4AW5N slgZXhYsu4zmDNoCApAgckqALgBbqbz9hltdbHFYKv6k3tyVWWQBwWgABQA3AC3nf8K2jw8IvBr/aTkKJ427PC0ZNW3hKf0qtRB3oEqALgBbqbrd4m24t9OW1saVHX7MQjjts0xg0y9BG1eUO4TbpEt 8/6aas/4mHjcP3jPLeWjnIyBlXp5PLDlACkvmus6cZrkYQsFDlABwA1w23m3j4GVO9aO5l/iVjOBmAoDrOemHXMzXZRn/NB 6X2u7Hx0UzfFkxkHM/YbsPKyLvH7VJgZI/oacHjgCgBugJv5CbSNtqp N21tMczkr8k l62Gm8zTKFbd1E/zJZXXDounhVLQCKIrSXeRk4vUShAzdRLtBzNXMNwSZVJzPKpT4F2O/rjNYD5LV0byoio4hAIHqQDgBrjtvOPnIrU4XTuah1sxf6Jfq4srOlD5ET4Pmwg0JjJa0rpqfTJf Rntk91PQsc2Hk n6OQ69Q JjCnrSDoPVQdb7L3kmZCzWJ1PJ2IUCh6gA4Aa4mX7fNtqq rGIrabbJtGaLsNtV8HN yb3rhggMZDkmLfx/TKOqnLpbFzq obcjqmThlM2qqryMWXf31eLhzYr/Irt4BgKHIACgBvgtvNuHkdouWPtaCO4mQouMouBJMey1cZ5P5dekZeL2myVMHILm5PoMQEsVdA8 kBKBOBgWZVDqSFDVxS4UODQFADfAzfR5ibL6 AG0taWjsib77GMWbgwlfYEXSMlWTtAfM1BmpKvYIrn0zPAh20veR3MN6mFELqsb9L4wU3npmzD6 sw UJB4Y0TaNW1UAlRPHFgochgKAG C2856ei9TidO1oFm7moQz1GH1mHbIgMjNgUnVk6C Xrtf Mgt WvAEUZR21uzrqCx8KMWvlebqlCI0BqECYGG6bFMzsyiHPShweAoAboCb6fVto62qn0oXW/KSdpV9zsvDra7m7vINtLZFnyiK291ZomUoMA4FADfAbRw90XnBcGNwNfnoIcxRnUTWGRex9Q04B ptEqNm2kQEFDksBwA1wMz2 S7QV/2S62JK5I Mhydxx3DaOoQAUgAKsAOAGuOGXAAWgABTYOwUAtwhuRxfhd3x2TvMrURl3vDghWh f0iyTn0vnekSXtFym7Qb1Qm 2d9Ql2oq96tNWbBvHUAAKQIEmCgBuacAsThrCpyXYBFzLs4b2m3yJ 1SGhyXrPvt0vjgXKAAFtqPA1OA2P740QqxPLmgtkpxd0EJDZnmdVmeSSbQ KaKvpUvXEZeNpIjo7NxHYZVwU9GdtsPgauTflWskcJPyxttUlFicxnb3 oy2uthisFX9yT25qjLIgwJQAApMDW4eIAw0N6zHINKQWZ5chEOJDLsTB67lOa1PrnuISSQVwyw lnJ6y2DS7UqeAVaFf1xO4LY4vqC1Kis2/PYQumjuYZE4nbUQ HFeq7/ke2KtLPRQuOenJVPnhCcne/ieYGIfFJgq3FZHajjx6KKADMMr cUU0d3yzMLPRHEmWjqlVRQ1dYVb1j8XYXLba44iT66HINYRKO8nz2ULiV2irdidtrY0qOr2U8CL 2zcvPKtpqszL1SkQlCo2TIht8bFvT1YPKNvy77kF5e3L4xu9HRD7IU3inTdRAtsDVmDv4HaFhyS L4UUfASloWHDZcmb/uBzNxXDjaCwAlhuCzEVuQVkNXwW3FQ txkOqyk/j yH0zRhYuWOtRf4lbj1rB9fY9npuHI0poGXBovyKoRQf6xOt2s/WsxHiRsCsag95UGBCCuwf3K4Rg2l9XB569KA7uiADFn7SkcFzVgbX9uHmHigx7RdRpfdRIDdUX2 obbVX51dZWXbTGbekyfFwNt3BuRuOrA0H/67mtQrjlgKOhF5fhPEeicOotB82c79oO21AvcrOd6unAqr5B5EGB6SswNbjpBzBMdJR8uOPUAM5/O2eX5j6bf6TfDF3K04qntNKP5St7vr7bsdHYdVrFGebYAqqJf/pVAP8wC897m3qtINnWniXmIrU4XZ92Hm67WM NozKZm1JFccrhADYMJV e66XrkEDPlfeRmIBS4GbyI6BLXeUDdqHAISkwNbiVIhuJcPZ1O1RnbBttVfkltppudVTWZJ/broKb981EMzMbFQkIJFOODRgETLJtt54bL3VjwZN/YKQEN5mcmf0RX2Rfg4/L6XwpI mmbAQ2XYb38QcFDlABwE09mDJGQB5Cn4wjtNyx1qIR3EwFjqocrFJAicEhjeTSOV/n6X1TN7oH5 xVwk1W/WZbOooT27KNfXPpK14mx4d1rhAiN1EL2wNVAHAD3EzXlyirj99BW1tNojVdhn3Mwo0v PpCL2CQrZygP7ZDirqKLZJLd3Dza65F5diuz5PGzBo5NBO4 rZdfjzM6JIZiKZOXF6OZeuW4NH32AKYKjewCwUORQHADXDbeV/PRWpxunY0C7ddrOfGkPFDiZn7ZyY6Uw I PI8FFoMK/IQp5z3fLGguQw/ChhZBIGabI0wFrIWcHhaUvcV7B mAoAb4GZ6fttoq rn0sWWvKRdZZ/z8nCrq7m7fBOJlUPE/h2SSLB/y7AIBSajAOAGuI2qszLcGFxNPvFQ5ahOJOlM/oGTZPFNEs1DNLnocRODqAMFpqkA4Aa4mZ7bJdqKu34XWzJ3pAzN1W3jtnEMBaAAFGAFADfADb8E KAAFoMDeKTBJuKkXrZMvPrtH vkF6ar83Dtz iXrdJlTWp7Y1Qm4Q5gVCmqm/ErbaQDWoXpcl2gr9nFTW3VR2vSGIWNlcAwFoMBQCkwSbg5ePBvIJvBqAhqZtT9V1swzqWYTmR d03rqcBuqw1W1UwcvgV VDeRBASgABViBvYRbRWQn02NVrgenlqSR8qa3uJUDLFSrZvOPIruzc7/enNiTiZVl i0N6SBtqG66abSV8m9TW03gxu3VlUv5hDQoAAUOS4G9hFtNZGcAo9ZQsxMtnwZrvEnkll5vzc5d KUvrmMVQ3dpyHOlJXR/1mcVTiwVTuX2BmymTWDWAJ3QmuhxuyZsxdPs6aEnkJttWPgfvhLWq2V/hlA ptE1a7MvOJm2jDhQYoQKHCrc6uDReb42XvmEQybBkg8VQm8LNRHND9ZlNo62Uf21smacjXzEzi5 AK3GZy/Ir8cnZSNmzfPWofvCBtX4r2L0SHFYoXouN0Po6Bwcd6eiyZNitVN5UW20u1karXJC1lu0k9lIEC e6oA4HbNLnuj7qHZ6Ivssjh1662ZKJFXCnDL1kwVbrvq3wwy/tNA08DL ZWGmyodX zjY1U0v8uzfhSzh5gpreZzN0lyAn55QzYn5UMqrc5OKr8vOynbSIMCE1QAcMvBLbfeGoPskpZHa hgzAlqTYUm5x2YeRuHLZARXs84cpw3Vp9pEW3U tbWVA1xVO5vCrbSem4KCmUFEoj433dVqUbwQvVosaLVaFOuk6X22I3UFiM62bTOavFletl4taT5 f0GIu024V7ZnIMbbJolS0ZcbKxbYMnFcJiTwosKcKTA9u1eupzXgl7uR31dd6axZuK/UqAJWiu/wDJeYem7kH55zkusd8f00AF/o/GNySmg2YmAOcpMeubAS3mSxNoyYyFrgZYBRRmgGZ4Ygs rmm5WJJax6K9OATe HkyX6aLQchP NWqi1TpgCaqWvsZ2yaoVBplznnVgRI2Y5FwzEUOCAFpge3Bu GuQdK/AMdUz4eqi 2jbaq/BJbTbd6SJLt6mMeokz9bQS3ysmHLUz0JMamXYYG00m2ZmJmhiDf33MwFLCIo3zM0VsyPZwoOX1f L1e3Jt1EeQWgxR1socAhKgC4jRyW 94pY5BJpCbpufPvH27SUgw5PrbDkRKBrZcLWq6LCK4VoOZLCtZfSwKwBmIxpBVIA9tySthCgQNU AHAD3Ey3lyhr6N AfnhEgNYEcL3Dbb2kxVJuUnFUVgwV8n23uTomvtc2l FKViwzhJgClxrSNMvTRGX8MGPOZi5d2eFlc/TabkN/p2gPCoxBAcANcBtDPzQ CLBi4KUclLKpPJOmLvaVx76cRGzu1QEPOndfqxQtFfe9vP344Q9v23kZHNv2zCsKvt6sWNCUq3B 5n6eGG1PpKdvqHJwH2ECBg1EAcAPcTGffVeSmf2m1wFKF25RV1bALBaDAgSgAuAFuo nqbYDVpuxoThCOQAEoMJgCgBvgZjrbWCI3hlbTz2C/EjQEBaDA5BQA3AC3yXVaOAwFoAAUqFNginCTWfODczu5Hkx8zO 48YTIxV80WXHFu29N7affowtfwvZzTla0l7bjoFucwHb3xhC5bfcMYR0KQIFDUmCKcBMY8ATEpW mrBCI8JdbZBc3leINtpf06e6b9cwPYpVoxQHxvvD2kzohzhQJQAAr0pcA wi0Zecms/XVQUvl5uEXTa51clhYr9TP/J5azEf8YzGZJHf4y1RReOn w6be6RG786H786auDwg4UgAJQYBMF9hFuJipykVPjCElBTerk4GbTi8VKgyVvjJ1TWvqo8ZRWbp FTsWu2br229cl1mnNkt3Rb8WMq67kx1FJ/ufRU2d7Sgne9Elbr8hNVkAQFoMA0FQDc8g U5OBmJmc K75vHv5c6KFHjtbUPUC 9xesH8cAS0R0MfzMkGvRTL97HKnVfepaFIDZrV2TjUi2VIrmuJzUCWzLS8kyv5XL5Jk2Zvrl6aB S4qAOXnX5CZNIggJQYJoKAG6bwE3VWZ7SnGf1V8OeMqwY9AgFO4ncsvcLNfwCIz0e1A1D1uWzKw WoBGjxtuxwUUflGejwsi/FlFd2vkae9opn4m/4VwevuvyGzaAYFIAC41cAcFOgkiFBt81Fbrxe20qt58bDkkWkdj0xDGmHKRfa/hgit6ru2QZuFlgx2NLHebjZCYVlTkSO2hZLXuvMwY3B5N By01F5SK9GGJyLFs 8cBeAVUzt6O0I21XCYU8KAAFRqnAFOFWFxkt1ZChFz2OnDRoov16 xdUWs/N3Dc7V0GGW w0WF O06JXBZyDxbBlmL 1B0rq4FWXz5Bq 9FDlv6L4R0PHTcDvxzLNjdZcJTu7fh6rhU5lq2pFwGSQcb5stCoWfJNlQkcxgEUgAJjV2CKcAvu TUVg2ru8bXUggVdqNhBuU/Jz22QElnGWy3I7AsNSMQ8dInOfTRYVlXTZSkWBUCpdIKWjLimntxKd S2DTCZPBtREamyhwFQVANzyw5KjAOW2OpZAK2e/Ll/gdt999/HyolS3bQo3O1zo4KJhFMNKrWHm78lVldfQk3K5kwfkssogAwpMRQHADXBL9tU6uHGlNoDT0Vupw RxsfLqNqORhynDNs h mUBMDS a8pJuIBna8/5UrOnmy2AHCkCBSSgAuAFuyY7aBm5NIjeO7CR6KzXoIRbl6HTeD4YQXdnVwk 0bNZGM/Bya7C58j49a09eOZBhyfKabpFnOIQCUGDkCgBuBww3BljVp0nfleitCeCKsk0sowwUgAJQYHMFA LcDhdvmXSasycBq8wlr4wgKQAEosB0FADfAbTs9C1ahABSAAjtUAHAD3HbY/dA0FIACUGA7CgBugFvvPavJwyi9N0pETz755KQ 29AANqEAFLAKAG6A26h/C/yEpf6Lj3Ue4KbVwD4UOGwFADfArfdfQF RmwWZfSyfnTTHM7dNeA24JURBEhQ4UAUAN8BtlF1fg02iNd5WAa5XuD10O91yy 30UG6osy4/V0 lj1J4OAUF9kQBwA1w670r9xG5eZBROnIT4GnnDdwYOgzBW68G99 u3jqjWRWsFHS8naryreB2lW5N2NK Yx8KQIF FQDcALd e1QP1lJgE7O1kZuBzq106y230O0PuQdMTNot1ZHYluD20O232BlUADf5CrGFAoMoALgBbr13tC6 Rm47IZD 3jR3XEdfV22 hW25/yERvHLXdersaZpTozgxz3kpXBWxBuov0DBjV8KQcy5brBvUUVLVdwC3 unAMBbaqAOAGuG21gzUxHsMrVUfKpPIkTcPtoSev0q2zW mqQEi2Jn1Gt161UZ2JrMwQJpcv0g2wGEi no4CdbprpwpksQ1XVvzGFgpAgf4VANwAt957lURuTbYGWtETkJwmH3ZOwCbbnMMh3J4kc59NgCW Aka2GkYagTm8CN7an/LV q2iQ7cVtAm65rxDpUKA3BQA3wK23zrSJIQ8xBzhz7B4imamHScR2FeBiuNnhQgcaAYxsNcS6wi0 x5Gh80W0kysg5YQsFoED/CgBugFv/vaqFRQMrBTaumgOcSXdRUqqJEtwELrz1UAuHH8NhyeJ mUmXyI3h52wF6QZYob0AatK bzucQSV1DkiDAlCgHwUAN8Ctn57UwYoGnJiJQWaBJ ArhiqlPG bwS1 AKQA15NXb/XDobfceqt/utIAzUHVp2tg8b4emlRRmq7L5yD3 thX/EEBKLA9BQA3wG17vauFZQO4mvJ1gEtGTRI9jXBbc7rIhgJQoIMCgBvg1qH7DF/VAC4zNAm4Df99oEUoMFYFADfAbax9s7VfgFtryVABCuytAoAb4LY3nRtw25uvEicCBTorALgBbp 07EQxAASgABcamAOAGuI2tT8IfKAAFoEBnBQA3wK1zJ4IBKAAFoMDYFADcALex9Un4AwWgABTor ADgBrh17kQwAAWgABQYmwKAG A2tj4Jf6AAFIACnRUA3AC3zp0IBqAAFIACY1MAcAPcxtYn4Q8UgAJQoLMCgBvg1rkTwQAUgAJQY GwKAG6A29j6JPyBAlAACnRWAHAD3Dp3IhiAAlAACoxNAcANcBtbn4Q/UAAKQIHOCgBugFvnTgQDUAAKQIGxKQC4AW5j65PwBwpAASjQWQHADXDr3IlgAApAASgwNgUAN8B tbH0S/kABKAAFOisAuAFunTsRDEABKAAFxqYA4Aa4ja1Pwh8oAAWgQGcFADfArXMnggEoAAWgwNgUANwA t7H1SfgDBaAAFOisAOAGuHXuRDAABaAAFBibAoAb4Da2Pgl/oAAUgAKdFQDcALfOnQgGoAAUgAJjUwBwA9zG1ifhDxSAAlCgswKAG DWuRPBABSAAlBgbAoAboDb2Pok/IECUAAKdFYAcAPcOnciGIACUACKpv9qAAAHj0lEQVQKjE0BwA1wG1ufhD9QAApAgc4KAG6AW dOBANQAApAgbEpALgBbmPrk/AHCkABKNBZAcANcOvciWAACkABKDA2BQA3wG1sfRL QAEoAAU6KwC49Qu3xYn9StbHpzS7co3mx5fFd3Ry3aRxeuNPURt7UAAKQAEo0FQBwK0FaBpCaXF ySeuzC1pI eU5rc/OmwNN6vG26ReJclAACkABKFAoALhtB27L4wtaS6QWw215nVZnxXewPjmnuQCNy7qs1RHgVqiEPS gABaBACwUAty3BbXmNOIJbLq/RLILb8uSigBlDjWF3oiI7A7hLAtxadGQUhQJQAApoBQC37cFNoDbXcFORmf4eiNQwpgMeR3AYlg xVwhEUgAJQoJECgNsW4eYeKFkd63tuPCSpojQZjoy286MLIroE3Br1YhSCAlAACkQKAG7bhdvsi ru/poBmHjg5zj85aZ6w5AdSeEgz r5wCAWgABSAAg0UANz6hZu8CsDSy sAM47CFNxmV07N/Tj/9ZxdmodP KES/eoA7rl5hbADBaAAFGinAODWL9wav78WDUNm67X7OlEaCkABKAAFWAHADXDDLwEKQAEosHcKAG6A 2951apwQFIACUABwA9zwK4ACUAAK7J0CgBvgtnedGicEBaAAFADcADf8CqAAFIACe6cA4Aa47V2 nxglBASgABQA3wA2/AigABaDA3ikAuPULN/0SdtBZgpe4W7QZGMEBFIACUAAKNFIAcGsBmoYvXjPg/OwkXEdPnNzQhn pu9G3iEJQAApAASgQKAC4bRNu5UmSJbJbn1z4ddtIL2xqYFis94a5JYPuigMoAAWgQDMFALftwM 2rnxiONICTiZGv2HXfikiPweYmTWbQeUPYgQJQAApAgcYKAG7bgZuFVTly4 FGhpuZFFmGKI8uimFMvQ 4Ne7HKAgFoAAUCBQA3LYJt7RtwC3ogjiAAlAACvSvAOCWBpB/oEOiqxZbhlcxzGjtL9V9tUq4mfXfMCzZf0 HRSgABQ5KAcCtX7gxuNJ/F7RIrddmVty2NTwQl3igJK0hUqEAFIACDRUA3PqFW5eIL1m34feIYlAACkABKKAUANwAN9UdsAs FoAAU2A8FADfAbT96Ms4CCkABKKAUANwAN9UdsAsFoAAU2A8FADfAbT96Ms4CCkABKKAUANwAN9 UdsAsFoAAU2A8FADfAbT96Ms4CCkABKKAUANwAN9UdsAsFoAAU2A8FALfxwm1xcomJk/fjZ4azgAJQYGgFALeRws2sAXcBuA39g0B7UAAK7IcCgFufcLtOK 4WZxe0OuOdC1rwLP8ujaffMguXmq5zSculbdtP2eWWx1mcmALmf1jyptACe1AACkCBxgoAbn3CT eBlwTU/vrCAW9o12/wyN/GyNldOSU sbKbhktW7G3 TKAgFoAAUgAJeAcBtC3CTBUp5UuST68SwClcCiGBWgp2DJNvx3xR2oAAUgAJQoLECgNsu4HaNZh 5oEehkaR1Ebo37MApCASgABUoKAG47gpsbilweq1W4BWxybw6RW6m/IgEKQAEo0EgBwK1PuLkHSlh5Ho50a7XxOm3y0Ii/78YAM/l2nTe93M3SPIxivz4MSzbqxigEBaAAFAgVANz6hFtLW35osqJe HXhCApAASgABZooALhVgEUPE/a4rx/1JypeCdDRm99v8iWiDBSAAlAACoQKAG7Dw82Dqwkww68LR1AACkABKNBEAcANcGvST1AGCkABKD ApBQA3wG1SHRbOQgEoAAWaKAC4AW5N gnKQAEoAAUmpQDgBrhNqsPCWSgABaBAEwUAN8CtST9BGSgABaDApBSYHtzUi9KstMzj2OTJw6Zl 3MvXbJ5fwM493ciP9Ffl5 q1Sp9Ub4KzUAAKQIGRKDA9uLlIy829yAt6ytIxraDRAHQ8q8jW4ZXxw68SMJJ AjegABSAApNSYKpw87PsR7N82KmrLsnM2SjfxNmFB2BdvgZkFm61kd0pMXT939k5rc4UhI/4WHIvaXVsVw4wbTO0JYsIqwIoLbALBaAAFGiswDThZmfSn5uo55RWZ dk921UxwBbn5zT3C0GOovWS6vLF8Bl4eairVw g211pIYzlzyUquB25VT5xmu9EQVzTl65Vqzv1vibREEoAAWgABTwCkwSbhytuXXSGEQWJsWDIUs dJSkQCUDq8rvB7bqBrdhIbpc6ciNanwFuvkNiBwpAASjQhwJThFs4N6NTQcGuDl51 QKkXGRWnW/hpiNJKW 3LopTkR23I CVsrjn1kfvhg0oAAUOVoHpwS0Fj3DBz7phx7p8AcxmcLPDjPpBlDkPS0p0Zh6EufDDknN3/60MNzeMebA9EycOBaAAFOigwNTgVjxsIfew9KsBNs1EZkcWKEaaswta PtvfD/rkpbZfG1PCyvrrtXl8/DoKS2DB0q4veIeHENT/vje4MIcy/nY4dU5D73igRKRCVsoAAWgQDsFpgY3iaqqtqlhR12 Ll X3fl u68TpaEAFIACUIAV2De48ZCj/0u84F2Xv3OYxe 9 ZPBDhSAAlAACjRWYN/gNjo4xbBqefz/A6l/cE/KyRhoAAAAAElFTkSuQmCC

p45cal
03-02-2021, 01:49 PM
see msg#25

SteveABC
03-02-2021, 02:16 PM
Wow. Amazing piece of code that. Should have included the test book in my first post. haha. Think of the time we would have saved. haha.

How do I get the new workbook to save down as myfile? We haven't defined anything as a new workbook?


see msg#25


I've included some additional code to your one liner as I need to save it down as myfile in the mypath directory. Its not correct as the attachment doesn't pick up the new workbook that's been created. Mainly due to me not saving the file correctly.



Sub blah()


Dim ol As Object, msg As Object
Dim mypath As String, myfile As String, scc As String, sto As String
mypath = "W:\.Team Documents\Freehold Team\Mainstay\Reporting\Reports\"
Workbooks("Mainstay Master Template").Sheets("Control").Activate
sto = Join(WorksheetFunction.Transpose(Range("Final")), ";")


Sheets(Array("Mainstay Master", "Mainstay Report")).Copy

myfile = mypath & " Mainstay Master.xlsx"


Application.DisplayAlerts = True
Set ol = CreateObject("outlook.application")
Set msg = ol.Createitem(0)
With msg


.To = sto
.cc = scc
.Subject = "Mainstay Report & Master file"
.Body = "Good Morning"
.attachments.Add myfile
.display
End With

p45cal
03-02-2021, 02:39 PM
See note in comments in the code below.
This is one way:
Sub blah2()
mypath = "W:\.Team Documents\Freehold Team\Mainstay\Reporting\Reports" 'note no final backslash. Not needed if you use the next line.
myfile = mypath & "\Mainstay Master.xlsx" 'note leading backslash

'if you use the line below (currently commented out) you can delete the 2 lines above.
'myfile = ThisWorkbook.Path & "\Mainstay Master.xlsx" 'use this to save the new file in the same folder as this workbook

sto = Join(WorksheetFunction.Transpose(ThisWorkbook.Sheets("Control").Range("Final")), ";")
Sheets(Array("Mainstay Master", "Mainstay Report")).Copy
Set NewBk = ActiveWorkbook
NewBk.SaveAs myfile
Set ol = CreateObject("Outlook.Application")
Set msg = ol.Createitem(0)
With msg
.To = sto
'.cc = scc 'don't know where this scc comes from
.Subject = "Mainstay Report & Master file"
.Body = "Good Morning"
.attachments.Add myfile
.display
End With
NewBk.Close 'if you want
End Sub

p45cal
03-02-2021, 02:45 PM
re. Teamviewer, do an internet search…

SteveABC
03-03-2021, 06:06 AM
Ok 90% there. Master Report is now exactly how I want to view the file. Thank you so much for helping me here.

Just a small issue on the Mainstay Master sheet. I need the formula's to be removed. I.e paste values but only in rows 4 to 15.



See note in comments in the code below.
This is one way:
Sub blah2()
mypath = "W:\.Team Documents\Freehold Team\Mainstay\Reporting\Reports" 'note no final backslash. Not needed if you use the next line.
myfile = mypath & "\Mainstay Master.xlsx" 'note leading backslash

'if you use the line below (currently commented out) you can delete the 2 lines above.
'myfile = ThisWorkbook.Path & "\Mainstay Master.xlsx" 'use this to save the new file in the same folder as this workbook

sto = Join(WorksheetFunction.Transpose(ThisWorkbook.Sheets("Control").Range("Final")), ";")
Sheets(Array("Mainstay Master", "Mainstay Report")).Copy
Set NewBk = ActiveWorkbook
NewBk.SaveAs myfile
Set ol = CreateObject("Outlook.Application")
Set msg = ol.Createitem(0)
With msg
.To = sto
'.cc = scc 'don't know where this scc comes from
.Subject = "Mainstay Report & Master file"
.Body = "Good Morning"
.attachments.Add myfile
.display
End With
NewBk.Close 'if you want
End Sub

p45cal
03-03-2021, 08:28 AM
after:
Set NewBk = ActiveWorkbook
add:

With NewBk.Sheets("Mainstay Master")
With Intersect(.UsedRange, .Rows("4:15"))
.Value = .Value
End With
End With

If row 15 is not always the last row you can make that 15, say, 500.

SteveABC
03-03-2021, 09:28 AM
That's worked. All done sir. Been a pleasure working with you.

For my own education purposes. I have a few questions.

1. What is intersect and what function does it perform in that code?

2. Can you explain to me how the below copies the sheets and pastes in the exact formats as required into a new workbook? What does the array function do? How comes you don't need to declare?

How do I acknowledge your expertise?

Sheets(Array("Mainstay Master", "Mainstay Report")).Copy

p45cal
03-03-2021, 11:32 AM
1. What is intersect and what function does it perform in that code? Step through the following macro with F8 on the keyboard observing the active sheet as you go.
Sub blah3()
Set rngA = Range("B2:F8")
Set rngB = Range("E6:I12")
rngA.Select
rngA.BorderAround 1
rngB.Select
rngB.BorderAround 1
Intersect(rngA, rngB).Select
Intersect(rngA, rngB).Interior.Color = rgbLightGrey
Range("B2").Select
End Sub




2. Can you explain to me how the below copies the sheets and pastes in the exact formats as required into a new workbook?
Sheets(Array("Mainstay Master", "Mainstay Report")).Copy
It's the same as doing the following but record a macro while you: select both the sheets' tabs (use the Shift key to help with that as, you do with cells)
Right-click one of the selected sheet tabs and choose Move or Copy, then in the To book: dropdown field choose (new book), then tick the Create a copy tick box, click OK. Stop recording and examine the code.
Copying sheets copies pretty much everything. By copying both sheets at once it looks like they keep their interrelationship.



What does the array function do?
It puts the two strings (sheet names) into an array in memory and is one way the code wants to see multiple sheets referred to:
28052



How comes you don't need to declare? Because I don't put Option Explicit at the top of the code-module; lazy.




How do I acknowledge your expertise?You've already done so merely by replying. I try to remember not to help again when people just run off with a solution without giving any sort of feedback (on some forums it could just be marking the thread as 'Solved').

SteveABC
03-05-2021, 11:56 AM
Well once again thank you for your input. Been incredible to talk and learn from you. The below was very insightful. I hope other people have learnt something from this as well. Look forward to our next discussion.




Step through the following macro with F8 on the keyboard observing the active sheet as you go.
Sub blah3()
Set rngA = Range("B2:F8")
Set rngB = Range("E6:I12")
rngA.Select
rngA.BorderAround 1
rngB.Select
rngB.BorderAround 1
Intersect(rngA, rngB).Select
Intersect(rngA, rngB).Interior.Color = rgbLightGrey
Range("B2").Select
End Sub




It's the same as doing the following but record a macro while you: select both the sheets' tabs (use the Shift key to help with that as, you do with cells)
Right-click one of the selected sheet tabs and choose Move or Copy, then in the To book: dropdown field choose (new book), then tick the Create a copy tick box, click OK. Stop recording and examine the code.
Copying sheets copies pretty much everything. By copying both sheets at once it looks like they keep their interrelationship.



It puts the two strings (sheet names) into an array in memory and is one way the code wants to see multiple sheets referred to:
28052


Because I don't put Option Explicit at the top of the code-module; lazy.



You've already done so merely by replying. I try to remember not to help again when people just run off with a solution without giving any sort of feedback (on some forums it could just be marking the thread as 'Solved').