From a873f39c86d392633557f125b6caf14b9997756a Mon Sep 17 00:00:00 2001 From: Thomas Peterson Date: Tue, 19 Nov 2024 20:16:45 +0100 Subject: [PATCH] Backup --- .idea/.idea.PSCHelpdesk/.idea/.name | 1 + .idea/.idea.PSCHelpdesk/.idea/workspace.xml | 105 ++++++++---------- FastBill/Api/Contacts.cs | 28 +++++ FastBill/Api/Customers.cs | 8 +- FastBill/Api/Request/GetContacts.cs | 6 + FastBill/Api/Request/SearchCustomer.cs | 6 + FastBill/Api/Response/Contact.cs | 9 ++ FastBill/Api/Response/Customer.cs | 6 + FastBill/Api/Response/GetContacts.cs | 9 ++ FastBill/Api/Response/SearchCustomer.cs | 9 ++ FastBill/FastBill.csproj | 6 + FastBill/Models/Contact.cs | 29 +++++ FastBill/Models/Customer.cs | 34 +++++- FastBill/Models/Settings.cs | 2 + FastBill/Services/CustomerService.cs | 12 ++ .../ViewModels/CustomerDetailViewModel.cs | 8 ++ FastBill/ViewModels/CustomerViewModel.cs | 38 ++++++- FastBill/Views/CustomerDetailView.axaml | 8 ++ FastBill/Views/CustomerDetailView.axaml.cs | 13 +++ FastBill/Views/CustomerView.axaml | 46 +++++++- HetznerServer/Models/Server.cs | 8 ++ HetznerServer/Models/ServerSetting.cs | 4 +- HetznerServer/Service/ServerService.cs | 4 +- HetznerServer/Views/ServerDetailView.axaml | 2 + _dist/hetzner/HetznerServer.dll | Bin 71680 -> 72704 bytes _dist/hetzner/HetznerServer.pdb | Bin 27248 -> 27448 bytes _dist/nextcloud/Nextcloud.dll | Bin 37888 -> 37888 bytes _dist/nextcloud/Nextcloud.pdb | Bin 19572 -> 19568 bytes 28 files changed, 329 insertions(+), 72 deletions(-) create mode 100644 .idea/.idea.PSCHelpdesk/.idea/.name create mode 100644 FastBill/Api/Contacts.cs create mode 100644 FastBill/Api/Request/GetContacts.cs create mode 100644 FastBill/Api/Request/SearchCustomer.cs create mode 100644 FastBill/Api/Response/Contact.cs create mode 100644 FastBill/Api/Response/Customer.cs create mode 100644 FastBill/Api/Response/GetContacts.cs create mode 100644 FastBill/Api/Response/SearchCustomer.cs create mode 100644 FastBill/Models/Contact.cs create mode 100644 FastBill/ViewModels/CustomerDetailViewModel.cs create mode 100644 FastBill/Views/CustomerDetailView.axaml create mode 100644 FastBill/Views/CustomerDetailView.axaml.cs diff --git a/.idea/.idea.PSCHelpdesk/.idea/.name b/.idea/.idea.PSCHelpdesk/.idea/.name new file mode 100644 index 0000000..6f7d947 --- /dev/null +++ b/.idea/.idea.PSCHelpdesk/.idea/.name @@ -0,0 +1 @@ +PSCHelpdesk \ No newline at end of file diff --git a/.idea/.idea.PSCHelpdesk/.idea/workspace.xml b/.idea/.idea.PSCHelpdesk/.idea/workspace.xml index de88650..41438c6 100644 --- a/.idea/.idea.PSCHelpdesk/.idea/workspace.xml +++ b/.idea/.idea.PSCHelpdesk/.idea/workspace.xml @@ -11,8 +11,16 @@ - + + + + + + + + + @@ -71,40 +79,40 @@ - { - "keyToString": { - ".NET Project.PSCHelpdesk.Desktop ohne plugin.executor": "Run", - ".NET Project.PSCHelpdesk.Desktop.executor": "Run", - "Publish to folder.Build HetznerServer Plugin Debug.executor": "Run", - "Publish to folder.Copy Fastbill.executor": "Run", - "Publish to folder.Copy Hetzner Target.executor": "Run", - "Publish to folder.Copy Hetzner.executor": "Run", - "Publish to folder.Copy NextCloud Target.executor": "Run", - "Publish to folder.Copy NextCloud.executor": "Run", - "Publish to folder.Copy PrinshopCreator.executor": "Run", - "Publish to folder.Publish HetznerServer to folder.executor": "Run", - "Publish to folder.Publish NextCloud to folder.executor": "Run", - "Publish to folder.Publish Nextcloud to folder.executor": "Run", - "RunOnceActivity.ShowReadmeOnStart": "true", - "RunOnceActivity.git.unshallow": "true", - "XThreadsFramesViewSplitterKey": "0.4427131", - "git-widget-placeholder": "master", - "ignore.virus.scanning.warn.message": "true", - "last_opened_file_path": "/home/thomas/RiderProjects/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.Desktop/bin/Debug/net9.0/plugins", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "settings.editor.selected.configurable": "preferences.pluginManager", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -204,6 +212,7 @@ + @@ -243,6 +252,7 @@ + @@ -378,33 +388,12 @@ \ No newline at end of file diff --git a/FastBill/Api/Contacts.cs b/FastBill/Api/Contacts.cs new file mode 100644 index 0000000..8993cf4 --- /dev/null +++ b/FastBill/Api/Contacts.cs @@ -0,0 +1,28 @@ +using FastBill.Api.Response; +using FastBill.Models; +using RestSharp; +using RestSharp.Authenticators; +using Contact = FastBill.Models.Contact; + +namespace FastBill.Api; + +public class Contacts +{ + async public Task> GetContacts(Settings settings, string customerId) + { + var customers = new List(); + + var client = new RestClient("https://my.fastbill.com/"); + var request = new RestRequest("api/1.0/api.php"){ + Authenticator = new HttpBasicAuthenticator(settings.EMail, settings.ApiKey) + }; + request.AddJsonBody(new { SERVICE = "contact.get", FILTER = new { CUSTOMER_ID = customerId } }); + var response = await client.ExecuteAsync(request); + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + return response.Data.Response.Contacts; + } + + return customers; + } +} \ No newline at end of file diff --git a/FastBill/Api/Customers.cs b/FastBill/Api/Customers.cs index 58192b9..df20866 100644 --- a/FastBill/Api/Customers.cs +++ b/FastBill/Api/Customers.cs @@ -1,6 +1,8 @@ -using FastBill.Models; +using FastBill.Api.Response; +using FastBill.Models; using RestSharp; using RestSharp.Authenticators; +using Customer = FastBill.Models.Customer; namespace FastBill.Api; @@ -15,10 +17,10 @@ public class Customers Authenticator = new HttpBasicAuthenticator(settings.EMail, settings.ApiKey) }; request.AddJsonBody(new { SERVICE = "customer.get", FILTER = new { TERM = term } }); - var response = await client.ExecuteAsync>(request); + var response = await client.ExecuteAsync(request); if (response.StatusCode == System.Net.HttpStatusCode.OK) { - return response.Data; + return response.Data.Response.Customers; } return customers; diff --git a/FastBill/Api/Request/GetContacts.cs b/FastBill/Api/Request/GetContacts.cs new file mode 100644 index 0000000..5e3b5f7 --- /dev/null +++ b/FastBill/Api/Request/GetContacts.cs @@ -0,0 +1,6 @@ +namespace FastBill.Api.Request; + +public class GetContacts +{ + public string Service = ""; +} \ No newline at end of file diff --git a/FastBill/Api/Request/SearchCustomer.cs b/FastBill/Api/Request/SearchCustomer.cs new file mode 100644 index 0000000..520c2dd --- /dev/null +++ b/FastBill/Api/Request/SearchCustomer.cs @@ -0,0 +1,6 @@ +namespace FastBill.Api.Request; + +public class SearchCustomer +{ + public string Service = ""; +} \ No newline at end of file diff --git a/FastBill/Api/Response/Contact.cs b/FastBill/Api/Response/Contact.cs new file mode 100644 index 0000000..c69b16e --- /dev/null +++ b/FastBill/Api/Response/Contact.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace FastBill.Api.Response; + +public class Contact +{ + [JsonPropertyName("CONTACTS")] + public List Contacts { get; set; } = new List(); +} \ No newline at end of file diff --git a/FastBill/Api/Response/Customer.cs b/FastBill/Api/Response/Customer.cs new file mode 100644 index 0000000..9edc76a --- /dev/null +++ b/FastBill/Api/Response/Customer.cs @@ -0,0 +1,6 @@ +namespace FastBill.Api.Response; + +public class Customer +{ + public List Customers { get; set; } = new List(); +} \ No newline at end of file diff --git a/FastBill/Api/Response/GetContacts.cs b/FastBill/Api/Response/GetContacts.cs new file mode 100644 index 0000000..2c630f0 --- /dev/null +++ b/FastBill/Api/Response/GetContacts.cs @@ -0,0 +1,9 @@ +namespace FastBill.Api.Response; + +public class GetContacts +{ + public Request.GetContacts Request { get; set; } + public Contact Response { get; set; } + + +} \ No newline at end of file diff --git a/FastBill/Api/Response/SearchCustomer.cs b/FastBill/Api/Response/SearchCustomer.cs new file mode 100644 index 0000000..e410b8c --- /dev/null +++ b/FastBill/Api/Response/SearchCustomer.cs @@ -0,0 +1,9 @@ +namespace FastBill.Api.Response; + +public class SearchCustomer +{ + public Request.SearchCustomer Request { get; set; } + public Customer Response { get; set; } + + +} \ No newline at end of file diff --git a/FastBill/FastBill.csproj b/FastBill/FastBill.csproj index c587c24..11d1d7f 100644 --- a/FastBill/FastBill.csproj +++ b/FastBill/FastBill.csproj @@ -16,4 +16,10 @@ + + + ..\..\..\.nuget\packages\avalonia.controls.datagrid\11.2.0\lib\net8.0\Avalonia.Controls.DataGrid.dll + + + diff --git a/FastBill/Models/Contact.cs b/FastBill/Models/Contact.cs new file mode 100644 index 0000000..b1b884c --- /dev/null +++ b/FastBill/Models/Contact.cs @@ -0,0 +1,29 @@ +using System.Text.Json.Serialization; + +namespace FastBill.Models; + +public class Contact +{ + [JsonPropertyName("CONTACT_ID")] + public string Id { get; set; } + [JsonPropertyName("CUSTOMER_TYPE")] + public string Type { get; set; } + [JsonPropertyName("ORGANIZATION")] + public string Company { get; set; } + [JsonPropertyName("FIRST_NAME")] + public string Firstname { get; set; } + [JsonPropertyName("LAST_NAME")] + public string Lastname { get; set; } + [JsonPropertyName("ADDRESS")] + public string Address { get; set; } + [JsonPropertyName("ZIPCODE")] + public string Zip { get; set; } + [JsonPropertyName("CITY")] + public string City { get; set; } + [JsonPropertyName("PHONE")] + public string Phone { get; set; } + [JsonPropertyName("MOBILE")] + public string Mobile { get; set; } + [JsonPropertyName("EMAIL")] + public string EMail { get; set; } +} \ No newline at end of file diff --git a/FastBill/Models/Customer.cs b/FastBill/Models/Customer.cs index 844ad45..829cfba 100644 --- a/FastBill/Models/Customer.cs +++ b/FastBill/Models/Customer.cs @@ -1,7 +1,35 @@ -namespace FastBill.Models; +using System.Text.Json.Serialization; + +namespace FastBill.Models; public class Customer { - public string CustomerNr { get; set; } - public string CustomerId { get; set; } + [JsonPropertyName("CUSTOMER_NUMBER")] + public string Nr { get; set; } + [JsonPropertyName("CUSTOMER_ID")] + public string Id { get; set; } + [JsonPropertyName("CUSTOMER_TYPE")] + public string Type { get; set; } + [JsonPropertyName("ORGANIZATION")] + public string Company { get; set; } + [JsonPropertyName("FIRST_NAME")] + public string Firstname { get; set; } + [JsonPropertyName("LAST_NAME")] + public string Lastname { get; set; } + [JsonPropertyName("ADDRESS")] + public string Address { get; set; } + [JsonPropertyName("ZIPCODE")] + public string Zip { get; set; } + [JsonPropertyName("CITY")] + public string City { get; set; } + [JsonPropertyName("PHONE")] + public string Phone { get; set; } + [JsonPropertyName("EMAIL")] + public string EMail { get; set; } + [JsonPropertyName("WEBSITE")] + public string Website { get; set; } + [JsonPropertyName("DOCUMENT_HISTORY_URL")] + public string DocumentsUrl { get; set; } + + public List Contacts { get; set; } = new List(); } \ No newline at end of file diff --git a/FastBill/Models/Settings.cs b/FastBill/Models/Settings.cs index 5f04016..91a6b1d 100644 --- a/FastBill/Models/Settings.cs +++ b/FastBill/Models/Settings.cs @@ -4,4 +4,6 @@ public class Settings { public string EMail { get; set; } = string.Empty; public string ApiKey { get; set; } = string.Empty; + + public List Customers { get; set; } = new List(); } \ No newline at end of file diff --git a/FastBill/Services/CustomerService.cs b/FastBill/Services/CustomerService.cs index 0273122..b606e81 100644 --- a/FastBill/Services/CustomerService.cs +++ b/FastBill/Services/CustomerService.cs @@ -9,11 +9,13 @@ public class CustomerService { private readonly SettingsManager? _settingsManager; private readonly Api.Customers _customerApi; + private readonly Api.Contacts _contactApi; public CustomerService() { _settingsManager = (SettingsManager)Ioc.Default.GetService(); _customerApi = new Api.Customers(); + _contactApi = new Api.Contacts(); } public async Task> SearchCustomer(string term) @@ -25,4 +27,14 @@ public class CustomerService customers = await _customerApi.SearchCustomer(settings, term); return customers; } + + public async Task> GetContacts(string customerId) + { + var settings = new Settings(); + _settingsManager.LoadPluginSettings("FastbillSettings", settings); + + List contacts = new List(); + contacts = await _contactApi.GetContacts(settings, customerId); + return contacts; + } } \ No newline at end of file diff --git a/FastBill/ViewModels/CustomerDetailViewModel.cs b/FastBill/ViewModels/CustomerDetailViewModel.cs new file mode 100644 index 0000000..8930e42 --- /dev/null +++ b/FastBill/ViewModels/CustomerDetailViewModel.cs @@ -0,0 +1,8 @@ +using PSCHelpdesk.Shared.ViewModels; + +namespace FastBill.ViewModels; + +public class CustomerDetailViewModel: ViewModelBase, IViewModelBase +{ + +} \ No newline at end of file diff --git a/FastBill/ViewModels/CustomerViewModel.cs b/FastBill/ViewModels/CustomerViewModel.cs index e96895a..dd95c73 100644 --- a/FastBill/ViewModels/CustomerViewModel.cs +++ b/FastBill/ViewModels/CustomerViewModel.cs @@ -1,5 +1,10 @@ using System.Reactive; +using CommunityToolkit.Mvvm.DependencyInjection; +using DynamicData; +using FastBill.Models; using FastBill.Services; +using PSCHelpdesk.Shared.Service; +using PSCHelpdesk.Shared.Setting; using PSCHelpdesk.Shared.ViewModels; using ReactiveUI; @@ -9,14 +14,24 @@ public class CustomerViewModel: ViewModelBase, IViewModelBase { private string _term; + private List _customers; + public string Term { get => _term; set => SetAndRaisePropertyChanged(ref _term, value); } - private CustomerService _customerService; + public List Customers + { + get => _customers; + set => SetAndRaisePropertyChanged(ref _customers, value); + } + + private CustomerService _customerService; + private readonly SettingsManager? _settingsManager; + public ReactiveCommand SearchCustomer { get; } public CustomerViewModel(CustomerService customerService) @@ -24,9 +39,28 @@ public class CustomerViewModel: ViewModelBase, IViewModelBase Term = ""; _customerService = customerService; SearchCustomer = ReactiveCommand.Create(searchTerm); + _settingsManager = (SettingsManager)Ioc.Default.GetService(); } async void searchTerm() { - var list = await _customerService.SearchCustomer(Term); + Customers = await _customerService.SearchCustomer(Term); + var settings = new Settings(); + _settingsManager.LoadPluginSettings("FastbillSettings", settings); + foreach (var customer in Customers) + { + customer.Contacts = await _customerService.GetContacts(customer.Id); + + if (settings.Customers.Count(x => x.Id == customer.Id) > 0) + { + var index = settings.Customers.FindIndex(x => x.Id == customer.Id); + settings.Customers[index] = customer; + } + else + { + settings.Customers.Add(customer); + } + } + + _settingsManager.SavePluginSettings("FastbillSettings", settings); } } \ No newline at end of file diff --git a/FastBill/Views/CustomerDetailView.axaml b/FastBill/Views/CustomerDetailView.axaml new file mode 100644 index 0000000..009353c --- /dev/null +++ b/FastBill/Views/CustomerDetailView.axaml @@ -0,0 +1,8 @@ + + Welcome to Avalonia! + diff --git a/FastBill/Views/CustomerDetailView.axaml.cs b/FastBill/Views/CustomerDetailView.axaml.cs new file mode 100644 index 0000000..3abffb1 --- /dev/null +++ b/FastBill/Views/CustomerDetailView.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace FastBill.Views; + +public partial class CustomerDetailView : UserControl +{ + public CustomerDetailView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/FastBill/Views/CustomerView.axaml b/FastBill/Views/CustomerView.axaml index b8c69c1..da38593 100644 --- a/FastBill/Views/CustomerView.axaml +++ b/FastBill/Views/CustomerView.axaml @@ -9,9 +9,47 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HetznerServer/Models/Server.cs b/HetznerServer/Models/Server.cs index 5e92470..a90276a 100644 --- a/HetznerServer/Models/Server.cs +++ b/HetznerServer/Models/Server.cs @@ -46,6 +46,14 @@ public class Server : ReactiveObject set => this.RaiseAndSetIfChanged(ref _fastBillId, value); } + private string _fastBillNr; + + public string FastBillNr + { + get => _fastBillNr; + set => this.RaiseAndSetIfChanged(ref _fastBillNr, value); + } + public string Status { get; set; } private MaterialIconKind _isGoodIcon = MaterialIconKind.AlertCircleOutline; diff --git a/HetznerServer/Models/ServerSetting.cs b/HetznerServer/Models/ServerSetting.cs index 71ea3db..d9f3919 100644 --- a/HetznerServer/Models/ServerSetting.cs +++ b/HetznerServer/Models/ServerSetting.cs @@ -5,11 +5,13 @@ public class ServerSetting public long ServerId { get; set; } public string PscApiKey { get; set; } public string FastBillId { get; set; } + public string FastBillNr { get; set; } - public ServerSetting(long serverId, string pscApiKey, string fastBillId) + public ServerSetting(long serverId, string pscApiKey, string fastBillId, string fastBillNr) { ServerId = serverId; PscApiKey = pscApiKey; FastBillId = fastBillId; + FastBillNr = fastBillNr; } } \ No newline at end of file diff --git a/HetznerServer/Service/ServerService.cs b/HetznerServer/Service/ServerService.cs index 4bb21de..19da153 100644 --- a/HetznerServer/Service/ServerService.cs +++ b/HetznerServer/Service/ServerService.cs @@ -81,6 +81,7 @@ public class ServerService: IServerService if (settings.ServerSettings.Count(e => e.ServerId == serv.ServerId) > 0) { serv.FastBillId = settings.ServerSettings.First(e => e.ServerId == serv.ServerId).FastBillId; + serv.FastBillNr = settings.ServerSettings.First(e => e.ServerId == serv.ServerId).FastBillNr; serv.PscApiKey = settings.ServerSettings.First(e => e.ServerId == serv.ServerId).PscApiKey; } @@ -261,10 +262,11 @@ public class ServerService: IServerService { settings.ServerSettings.First(e => e.ServerId == selectedServer.ServerId).FastBillId = selectedServer.FastBillId; settings.ServerSettings.First(e => e.ServerId == selectedServer.ServerId).PscApiKey = selectedServer.PscApiKey; + settings.ServerSettings.First(e => e.ServerId == selectedServer.ServerId).FastBillNr = selectedServer.FastBillNr; } else { - settings.ServerSettings.Add(new ServerSetting(selectedServer.ServerId, selectedServer.PscApiKey, selectedServer.FastBillId)); + settings.ServerSettings.Add(new ServerSetting(selectedServer.ServerId, selectedServer.PscApiKey, selectedServer.FastBillId, selectedServer.FastBillNr)); } _settingsManager.SavePluginSettings("HetznerSettings", settings); } diff --git a/HetznerServer/Views/ServerDetailView.axaml b/HetznerServer/Views/ServerDetailView.axaml index 3f30f7e..1ce8634 100644 --- a/HetznerServer/Views/ServerDetailView.axaml +++ b/HetznerServer/Views/ServerDetailView.axaml @@ -67,6 +67,8 @@ + + diff --git a/_dist/hetzner/HetznerServer.dll b/_dist/hetzner/HetznerServer.dll index 229377d0554ffd8ff9540ec21fe018833a5a525e..106a0395abc649a666a42d8cfcc2535a7cca4218 100644 GIT binary patch delta 23693 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 delta 23309 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 delta 4875 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 W$i%uNJv0<5zPH7ao6URA9r$0ZCL;9! diff --git a/_dist/nextcloud/Nextcloud.dll b/_dist/nextcloud/Nextcloud.dll index e1e228f5c4b95dcd2e0cf2a6006c3f25cd8eb52c..9962d60ae92b947d41d4b1cc097137baca5e699e 100644 GIT binary patch delta 403 zcmZoz!PKyVX+j6f;YaKDPVA9k)SI|6obT=`1_nO{AUMFlP{2Gr)yOlWaxQE^OWURr)kP-aSMQ9x0C zR%&udaZEvRaz<)SLCWNo9$Q^>%^+tSp88e4$>QgPJ*Rl5u&zefC^z|Ck2I6O>dE50 z-zPf&{m$2SiOD~e!2k%27!n!G8B7>V87vr*fzXt}3@B>Mki?J%ma}9?Wv~Q_r!W`- p)mZ|e84#ud)tLbK#z1TVRAAP~wDIE;n&EI4D&PV*!-u$C(GLMFZWwMERqJg=YnVG4%aiXzdim|bU zak6Dfl7(?na-yY0Vw!Q9p=rwG&E1Z?8Ju$`F);cDFaa$po6OiFpRx;R@2(z@#RwpP zU@|-e$^`|x1i$1poHb{gL*mPq4>LQy1+_B*)i_(lgche36~`py=jUao7FERrWu~MS z1r+6Hr6!jY#{>jBd!*(RxJ+*7u{Ai{@q%ng95GMoG qrZ6Od*-1cNB9LzZB-4O$X+V{x3@MZKC*EXou-+^<={@5_19ku*Qg;df diff --git a/_dist/nextcloud/Nextcloud.pdb b/_dist/nextcloud/Nextcloud.pdb index fa6d708670854bb7d2552a1329eb756edc1a24fb..f15be61f2bea5ac5a89c38f4db62b66da1757e92 100644 GIT binary patch delta 1589 zcmZvaZA@Eb6vzM1y|=wB_d;NkffEFQ4Ry*YP})FgZ;K$*sbeVdWo$6O0Zu>|o1ds* zTa--P+>N?7M3+0jRn3w%JnZ%@xI086j7R0W2LcpNJd5VP_4#wNgAVnJ?+fPmeCBlaZx zfqLf(fU9$#M%WlqcbG1&{d(0q0#jF1ZA3b@SNe7BJ%BG3pV}sPO1g1T0ZZ z@d{vw7BM_zV;Hj0Y;gF?#vwCMtiSL`vvX*)3wWETFVkzQ4~N#9?;OUA+=NW03EQ1! z@`<=yE|N#YkqX^oL8{Aw7l~Jh*ND@^81aG2ioc0}iAO4}Xe0tnByGf-mAcuA8Omo@ z^6yvTuSQJ50k?i;^-03w&G#gvc=Wo28IOcn;wvIskx)d~2^UeN=x1acR%9F_PAGB? zf|R^VXvBn)jLlyCkp3j&v{&_VW6>WuNeJZ7y7Wx}0>SXZeP)UxVIizWt<)}2l!;^_ z#i&&}Qz@nqYlyW*t;v;6aUGFCWE!=C%Jmd)BeIBWqc-i%p_ohDq5n>K1cRUyP~1Rl zBnpk%CFL%PcN3e4dyHDEIx5~9@Y@Q>!{{7`E>3|7`)$pns%;-#+FtS<>6|l86=!iA zW;BqBc&Zr8ga&(%w6QG6L^PGfDL+6e;bl@8C(9JhgeHf=N$4Y$G3=P3N`t+bH(|&X z7tBxtmANJpG*UC7q#~v&<5Wp=$4wG4No8zw=bFv9>Q>Aq{6Z??Pj`@V!4ot~uzDcU ze~nbaZc-Too)@U%w>4W$81^<>MZE3}QvNfkgzKa-cptiZ_O|y&=PU(sruf)~gHWuv zvRGDq@TJkJsrTNQ|AYVJYSf&*K0iz7?0&i@d0S^&d*9Z+p04)Rz5P;ee``nkp58W9 zapsHl+D`2mZ6Mm^Jj(9;f@xne?Hbb-nD!3~$t;x3LZvLUgM|*Ukj6q6S?D)5E~t6s zgI2>iesVk*eZM@FITCrp87#b+g`F(yXWU}=FsDACOOYC*B$s(GpmilV{ zKXbApI^vVL<(8kn6%F2hJ6mo!_3>0povnT@FVS`M?>V#lC2ZQGK3U^mHBE=rk7~9h zTG_q8UcA{Z7oQ*Zhy? uC$O%3(+s={Bk`*(51zVZXidFiuKJCEC%!$g_Sp;RBhP=R+SJr7ZT|sBy|M)W delta 1576 zcmZvaZA?>V6vzM1?QQREZ@U2s8bt-m26G#!kV1vh-WI077UEFH!eXRg6_wBpj0rAT z7ni`uLWbT%(fQJ$(=AI{+J=FOmIMMvBqm!@G=5-nuM+p>lAU{7{IK*UzyCSU z$$5F6)BZZb7Dw3dc1wvDuzI@!?EoGh_0Tt)&W4lX-JuV(c-8!6i^JtZI=$3gr zCY$5o!7x$E@T!fW-$t{+;gO9)ey~hE=#XpY&}!%LDY2tMjV*l~_C7gtxTN`ddZ=`-QaCub9K+-h9H4Y!0@;xs>ryub@C3u%jRvv;AreL{=CDg-&4h(` zN{e|MS!A<`9AcRk^Eq?L<`FB1m0GN%W)<1hL_V=bi%q-Mku4w!)!%77!63>-WS=3P zC5pA!9r-!38;IwL7qr-3<(%+hu*p_THH`8&?B`_Y@wTmv^n~pYU3ydb9O>7NBt@KM zNf^*VDqvR`m>wB42ce3=%AE z2=regm2iO6j6V0f6lt=x8TA64Q@`T9$kyOH8q-F?SbO#Rld*ipnBJ;}ZiSI`t z8!_~6X!_~lD|II?-g@KyNdE1(A$OIvKx_{Lx)1n!4qKY{?e_OQt_c(@G$(Jnr4GaIk!iy{d7Rh3fLKbnbNIQ!RvPg_Y=2+xs zHYO@-tKKncm1AeeF2p~n%3_t7YNM-Jw46nqEZW4Peil8fc8d_TA%4U>U&00FJV))%4?e&mx`vw zmCrUeXI$wuQQHG8p4Dd)uh%IR^*b{TOz$u~QyH%xPYp~QNen8z z4V`(JZkf2J{MO)=v^6J=Ohax`T#en!GNdYr#ypFbM_IoR50$%(uUj)@rk^kkPaPv^ jQg*)l(eee$##5)ikbMga^ZVX^)I88>JabGjzq0#3*Mg}V