From 790894777a6a822143a17e14b87f829484dbd82b Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Sat, 12 Jan 2019 13:52:06 -0800 Subject: [PATCH 01/31] Server rewrite first push --- .../GStreamerServerRewrite/ServerRewrite.sln | 25 +++ .../ServerRewrite/App.config | 6 + .../ServerRewrite/Program.cs | 198 ++++++++++++++++++ .../ServerRewrite/Properties/AssemblyInfo.cs | 36 ++++ .../ServerRewrite/ServerRewrite.csproj | 73 +++++++ .../ServerRewrite/StreamParameters.cs | 24 +++ .../ServerRewrite/packages.config | 4 + 7 files changed, 366 insertions(+) create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite.sln create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/App.config create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/Program.cs create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/packages.config diff --git a/Rover/GStreamerServerRewrite/ServerRewrite.sln b/Rover/GStreamerServerRewrite/ServerRewrite.sln new file mode 100644 index 0000000..e9eebeb --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.271 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerRewrite", "ServerRewrite\ServerRewrite.csproj", "{80577C8B-6A59-47B4-93B9-9DF75F475A83}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A4449349-34A8-4DC6-A457-2C362C9CC589} + EndGlobalSection +EndGlobal diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/App.config b/Rover/GStreamerServerRewrite/ServerRewrite/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs b/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs new file mode 100644 index 0000000..c284be3 --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs @@ -0,0 +1,198 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Gst; + +namespace ServerRewrite +{ + class Program + { + static void Main(string[] args) + { + Application.Init(ref args); + GtkSharp.GstreamerSharp.ObjectManager.Initialize(); + + var devmon = new DeviceMonitor(); + + // to show only cameras + var caps = new Caps("video/x-raw"); + var filtId = devmon.AddFilter("Video/Source", caps); + var bus = devmon.Bus; + bus.AddWatch(Devices.OnBusMessage); + if (!devmon.Start()) + { + Console.WriteLine("Device monitor cannot start"); + return; + } + Console.WriteLine("Video devices count = " + devmon.Devices.Length); + foreach (var dev in devmon.Devices) + { + Devices.DumpDevice(dev); + } + Devices.StartDevice(devmon.Devices[1], "192.168.0.5"); + //System.Threading.Tasks.Task.Factory.StartNew(() => Devices.StartDevice(devmon.Devices[0], "localhost")); + var loop = new GLib.MainLoop(); + loop.Run(); + } + } + + static class Devices + { + public static void StartDevice (Device d, String destinationIp) + { + Pipeline pipeline = (Pipeline) RTPPipeline.GetWindowsPipeline(d, destinationIp); + StateChangeReturn ret = pipeline.SetState(State.Playing); + Console.WriteLine(ret); + } + + public static void DumpDevice(Device d) + { + Console.WriteLine($"{d.DeviceClass} : {d.DisplayName} : {d.Name} : {GetWindowsDeviceIndex(d)} "); + } + + public static int GetWindowsDeviceIndex(Device d) + { + return Convert.ToInt32(d.Name.Substring(8)); + } + + public static bool OnBusMessage(Bus bus, Message message) + { + switch (message.Type) + { + case MessageType.DeviceAdded: + { + var dev = message.ParseDeviceAdded(); + Console.WriteLine("Device added: "); + DumpDevice(dev); + break; + } + case MessageType.DeviceRemoved: + { + var dev = message.ParseDeviceRemoved(); + Console.WriteLine("Device removed: "); + DumpDevice(dev); + break; + } + } + return true; + } + } + + public static class RTPPipeline + { + + private static readonly Dictionary StreamParameters = new Dictionary + { + { "RICOH THETA S", new StreamParameters(1280, 720, 0.5f, 5555) }, + { "ZED", new StreamParameters(3840, 1080, 0.25f, 5556) }, + { "USB 2.0 Camera", new StreamParameters(1280, 720, 0.25f, 5557) }, + { "Microsoft LifeCam Front", new StreamParameters(640, 480, 1.0f, 5558) }, + { "Microsoft LifeCam Rear", new StreamParameters(640, 480, 1.0f, 5559) }, + { "HD USB Camera", new StreamParameters(1920, 1080, 0.25f, 5560) } + }; + + // Windows: + // ksvideosrc device-index=GetWindowsDeviceIndex() ! + // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! + // openh264enc ! + // 'video/x-h264, stream-format=(string)byte-stream' ! + // h264parse ! + // rtph264pay ! + // udpsink host=192.168.0.5 port=5555 + public static Bin GetWindowsPipeline(Device dev, String destinationIp) + { + Element source = ElementFactory.Make("ksvideosrc"); + source["device-index"] = Devices.GetWindowsDeviceIndex(dev); + + Element encoder = ElementFactory.Make("openh264enc"); + + return GetCommonPipeline(dev.DisplayName, destinationIp, source, "YUY2", encoder); + } + + // Linux: + // v4l2src device="/dev/video0" ! + // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! + // omxh264enc ! + // 'video/x-h264, stream-format=(string)byte-stream' ! + // h264parse ! + // rtph264pay ! + // udpsink host=192.168.0.5 port=5555 + public static Bin GetLinuxPipeline(Device dev, String destinationIp) + { + Element source = ElementFactory.Make("v4l2src"); + source["device"] = dev.PathString; + Element encoder = ElementFactory.Make("omxh264enc"); + + Element sourceCap = ElementFactory.Make("capsfilter"); + sourceCap["caps"] = Caps.FromString("video/x-raw, format=(string)YUY2, width=(int)640, height(int)=480"); + + return GetCommonPipeline(dev.Name, destinationIp, source, "I420", encoder); + } + + private static Bin GetCommonPipeline(String name, String destinationIp, Element source, String sourceType, Element encoder) + { + Pipeline pipeline = new Pipeline(); + + Element sourceCap = ElementFactory.Make("capsfilter"); + Element sourceCap2 = ElementFactory.Make("capsfilter"); + + Element videoConvert = ElementFactory.Make("videoconvert"); + + Element convertCap = ElementFactory.Make("capsfilter"); + Element encoderCap = ElementFactory.Make("capsfilter"); + Element rtpPay = ElementFactory.Make("rtph264pay"); + + Element parser = ElementFactory.Make("h264parse"); + Element sink = ElementFactory.Make("udpsink"); + + Element scale = ElementFactory.Make("videoscale"); + Element scaleCap = ElementFactory.Make("capsfilter"); + Element videoRate = ElementFactory.Make("videorate"); + Element videoCap = ElementFactory.Make("capsfilter"); + + if (sourceCap == null || videoConvert == null + || convertCap == null || encoderCap == null || rtpPay == null || parser == null + || sink == null || scale == null || scaleCap == null || videoRate == null + || videoRate == null || videoCap == null) + { + Console.WriteLine("Failed to create an element"); + } + + int scaledWidth = (int)(StreamParameters[name].Width * StreamParameters[name].Scale); + int scaledHeight = (int)(StreamParameters[name].Height * StreamParameters[name].Scale); + + sourceCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + StreamParameters[name].Width + ", height=(int)" + StreamParameters[name].Height); + + sourceCap2["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + scaledWidth + ", height=(int)" + scaledHeight); + + convertCap["caps"] = Caps.FromString("video/x-raw, format=(string)I420, width=(int)" + + scaledWidth + ", height=(int)" + scaledHeight); + + encoderCap["caps"] = Caps.FromString("video/x-h264, stream-format=(string)byte-stream"); + + + scaleCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + + scaledWidth + ", height=(int)" + scaledHeight); + + videoCap["caps"] = Caps.FromString("video/x-raw, framerate=10/1"); + + sink["host"] = destinationIp; + sink["port"] = StreamParameters[name].Port; + + pipeline.Add(source, sourceCap, videoRate, videoCap, scale, + scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink); + if (!Element.Link(source, sourceCap, videoRate, videoCap, scale, + scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink)) + { + Console.WriteLine("Failed to Link"); + } + + pipeline.SetState(State.Null); + + return pipeline; + } + } +} diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs b/Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..197dbef --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ServerRewrite")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ServerRewrite")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("80577c8b-6a59-47b4-93b9-9df75f475a83")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj b/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj new file mode 100644 index 0000000..8f00506 --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj @@ -0,0 +1,73 @@ + + + + + Debug + AnyCPU + {80577C8B-6A59-47B4-93B9-9DF75F475A83} + Exe + ServerRewrite + ServerRewrite + v4.6.1 + 512 + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\GstSharp.1.14.2\lib\net45\gio-sharp.dll + + + ..\packages\GstSharp.1.14.2\lib\net45\glib-sharp.dll + + + ..\packages\GstSharp.1.14.2\lib\net45\gstreamer-sharp.dll + + + + + + + + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + \ No newline at end of file diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs b/Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs new file mode 100644 index 0000000..4040f5b --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ServerRewrite +{ + class StreamParameters + { + public int Width; + public int Height; + public int Port; + public float Scale; + + public StreamParameters(int Width, int Height, float Scale, int Port) + { + this.Width = Width; + this.Height = Height; + this.Port = Port; + this.Scale = Scale; + } + } +} diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/packages.config b/Rover/GStreamerServerRewrite/ServerRewrite/packages.config new file mode 100644 index 0000000..8edeaa0 --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file From 96c02ca72e298bdad2b33c0c12957f8a64b2aac2 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Sat, 12 Jan 2019 15:46:43 -0800 Subject: [PATCH 02/31] Added ease of use prompts and linux pathway --- BaseStation/EntryPoint/EntryPoint.csproj | 18 +- BaseStation/EntryPoint/packages.config | 1 + .../ServerRewrite/PipelineFactory.cs | 121 ++++++++++ .../ServerRewrite/Program.cs | 211 +++++++----------- .../ServerRewrite/ServerRewrite.csproj | 1 + 5 files changed, 218 insertions(+), 134 deletions(-) create mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs diff --git a/BaseStation/EntryPoint/EntryPoint.csproj b/BaseStation/EntryPoint/EntryPoint.csproj index 74c4fc3..59dfb0f 100644 --- a/BaseStation/EntryPoint/EntryPoint.csproj +++ b/BaseStation/EntryPoint/EntryPoint.csproj @@ -89,6 +89,9 @@ ..\packages\HuskyRobotics.Scarlet.0.5.1\lib\BBBCSIO.dll + + ..\packages\SharpDX.DirectInput.4.2.0\lib\net45\SharpDX.DirectInput.dll + ..\packages\HuskyRobotics.Scarlet.0.5.1\lib\System.Half.dll @@ -117,12 +120,15 @@ - + + - - - - - + + + + + + + \ No newline at end of file diff --git a/BaseStation/EntryPoint/packages.config b/BaseStation/EntryPoint/packages.config index ffadfc3..e8f578a 100644 --- a/BaseStation/EntryPoint/packages.config +++ b/BaseStation/EntryPoint/packages.config @@ -2,6 +2,7 @@ + \ No newline at end of file diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs b/Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs new file mode 100644 index 0000000..50f9869 --- /dev/null +++ b/Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Gst; + +namespace ServerRewrite +{ + class PipelineFactory + { + private static readonly Dictionary StreamParameters = new Dictionary + { + { "RICOH THETA S", new StreamParameters(1280, 720, 0.5f, 5555) }, + { "ZED", new StreamParameters(3840, 1080, 0.25f, 5556) }, + { "USB 2.0 Camera", new StreamParameters(1280, 720, 0.25f, 5557) }, + { "Microsoft LifeCam Front", new StreamParameters(640, 480, 1.0f, 5558) }, + { "Microsoft LifeCam Rear", new StreamParameters(640, 480, 1.0f, 5559) }, + { "HD USB Camera", new StreamParameters(1920, 1080, 0.25f, 5560) } + }; + + // Windows: + // ksvideosrc device-index=GetWindowsDeviceIndex() ! + // "video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720" ! + // videoconvert ! + // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! + // openh264enc ! + // 'video/x-h264, stream-format=(string)byte-stream' ! + // h264parse ! + // rtph264pay ! + // udpsink host=192.168.0.5 port=5555 + public static Bin GetWindowsPipeline(Device dev, String destinationIp) + { + Element source = ElementFactory.Make("ksvideosrc"); + source["device-index"] = Devices.GetWindowsDeviceIndex(dev); + + Element encoder = ElementFactory.Make("openh264enc"); + return GetCommonPipeline(dev.DisplayName, destinationIp, source, "YUY2", encoder); + } + + // Linux: + // v4l2src device="/dev/video0" ! + // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! + // omxh264enc ! + // 'video/x-h264, stream-format=(string)byte-stream' ! + // h264parse ! + // rtph264pay ! + // udpsink host=192.168.0.5 port=5555 + public static Bin GetLinuxPipeline(Device dev, String destinationIp) + { + Element source = ElementFactory.Make("v4l2src"); + source["device"] = dev.PathString; + Element encoder = ElementFactory.Make("omxh264enc"); + + return GetCommonPipeline(dev.Name, destinationIp, source, "I420", encoder); + } + + private static Bin GetCommonPipeline(String name, String destinationIp, Element source, String sourceType, Element encoder) + { + Pipeline pipeline = new Pipeline(); + + Element sourceCap = ElementFactory.Make("capsfilter"); + Element sourceCap2 = ElementFactory.Make("capsfilter"); + + Element videoConvert = ElementFactory.Make("videoconvert"); + + Element convertCap = ElementFactory.Make("capsfilter"); + Element encoderCap = ElementFactory.Make("capsfilter"); + Element rtpPay = ElementFactory.Make("rtph264pay"); + + Element parser = ElementFactory.Make("h264parse"); + Element sink = ElementFactory.Make("udpsink"); + + Element scale = ElementFactory.Make("videoscale"); + Element scaleCap = ElementFactory.Make("capsfilter"); + Element videoRate = ElementFactory.Make("videorate"); + Element videoCap = ElementFactory.Make("capsfilter"); + + if (sourceCap == null || videoConvert == null + || convertCap == null || encoderCap == null || rtpPay == null || parser == null + || sink == null || scale == null || scaleCap == null || videoRate == null + || videoRate == null || videoCap == null) + { + Console.WriteLine("Failed to create an element"); + } + + int scaledWidth = (int)(StreamParameters[name].Width * StreamParameters[name].Scale); + int scaledHeight = (int)(StreamParameters[name].Height * StreamParameters[name].Scale); + + sourceCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + StreamParameters[name].Width + ", height=(int)" + StreamParameters[name].Height); + + sourceCap2["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + scaledWidth + ", height=(int)" + scaledHeight); + + convertCap["caps"] = Caps.FromString("video/x-raw, format=(string)I420, width=(int)" + + scaledWidth + ", height=(int)" + scaledHeight); + + encoderCap["caps"] = Caps.FromString("video/x-h264, stream-format=(string)byte-stream"); + + + scaleCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + + scaledWidth + ", height=(int)" + scaledHeight); + + videoCap["caps"] = Caps.FromString("video/x-raw, framerate=10/1"); + + sink["host"] = destinationIp; + sink["port"] = StreamParameters[name].Port; + + pipeline.Add(source, sourceCap, videoRate, videoCap, scale, + scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink); + if (!Element.Link(source, sourceCap, videoRate, videoCap, scale, + scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink)) + { + Console.WriteLine("Failed to Link"); + } + + pipeline.SetState(State.Null); + + return pipeline; + } + } +} diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs b/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs index c284be3..4b4cd19 100644 --- a/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs +++ b/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs @@ -11,6 +11,68 @@ namespace ServerRewrite class Program { static void Main(string[] args) + { + if (args.Length < 1) + { + Console.WriteLine("Usage: "); + return; + } + + DeviceMonitor devmon = InitializeGStreamer(args); + + if (devmon == null) + { + return; + } + + PlatformID os = GetOS(); + + Console.WriteLine("Serve Devices:"); + for (int i = 1; i - 1 < devmon.Devices.Length; i++) + { + Console.Write("[" + i + "] "); + Devices.DumpDevice(devmon.Devices[i-1]); + } + + String devicesToStart = Console.ReadLine(); + string[] deviceIndices = devicesToStart.Split(' '); + + for (int i = 0; i < deviceIndices.Length; i++) + { + System.Threading.Tasks.Task.Factory.StartNew(() => Devices.StartDevice(devmon.Devices[Convert.ToInt32(deviceIndices[i]) - 1], args[0], os)); + } + + // Keep the program open until killed by user + var loop = new GLib.MainLoop(); + loop.Run(); + } + + static PlatformID GetOS() + { + Console.WriteLine("Choose your OS: \n [1] Windows \n [2] Linux"); + + GET_OS: + int os = -1; + try + { + String input = Console.ReadLine(); + os = Convert.ToInt32(input); + if (os != 1 && os != 2) + { + Console.WriteLine("Choose your OS: \n [1] Windows \n [2] Linux"); + goto GET_OS; + } + } + catch + { + Console.WriteLine("Choose your OS: \n [1] Windows \n [2] Linux"); + goto GET_OS; + } + + return os == 1 ? PlatformID.Win32NT : PlatformID.Unix; + } + + private static DeviceMonitor InitializeGStreamer(string[] args) { Application.Init(ref args); GtkSharp.GstreamerSharp.ObjectManager.Initialize(); @@ -25,27 +87,35 @@ static void Main(string[] args) if (!devmon.Start()) { Console.WriteLine("Device monitor cannot start"); - return; + return null; } - Console.WriteLine("Video devices count = " + devmon.Devices.Length); - foreach (var dev in devmon.Devices) - { - Devices.DumpDevice(dev); - } - Devices.StartDevice(devmon.Devices[1], "192.168.0.5"); - //System.Threading.Tasks.Task.Factory.StartNew(() => Devices.StartDevice(devmon.Devices[0], "localhost")); - var loop = new GLib.MainLoop(); - loop.Run(); + + return devmon; } } static class Devices { - public static void StartDevice (Device d, String destinationIp) + public static void StartDevice (Device d, String destinationIp, PlatformID id) { - Pipeline pipeline = (Pipeline) RTPPipeline.GetWindowsPipeline(d, destinationIp); + Pipeline pipeline = null; + + if (id == PlatformID.Unix) + { + pipeline = (Pipeline) PipelineFactory.GetLinuxPipeline(d, destinationIp); + } + else if (id == PlatformID.Win32NT) + { + pipeline = (Pipeline) PipelineFactory.GetWindowsPipeline(d, destinationIp); + } + + if (pipeline == null) + { + Console.WriteLine("Pipeline not created"); + return; + } + StateChangeReturn ret = pipeline.SetState(State.Playing); - Console.WriteLine(ret); } public static void DumpDevice(Device d) @@ -80,119 +150,4 @@ public static bool OnBusMessage(Bus bus, Message message) return true; } } - - public static class RTPPipeline - { - - private static readonly Dictionary StreamParameters = new Dictionary - { - { "RICOH THETA S", new StreamParameters(1280, 720, 0.5f, 5555) }, - { "ZED", new StreamParameters(3840, 1080, 0.25f, 5556) }, - { "USB 2.0 Camera", new StreamParameters(1280, 720, 0.25f, 5557) }, - { "Microsoft LifeCam Front", new StreamParameters(640, 480, 1.0f, 5558) }, - { "Microsoft LifeCam Rear", new StreamParameters(640, 480, 1.0f, 5559) }, - { "HD USB Camera", new StreamParameters(1920, 1080, 0.25f, 5560) } - }; - - // Windows: - // ksvideosrc device-index=GetWindowsDeviceIndex() ! - // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! - // openh264enc ! - // 'video/x-h264, stream-format=(string)byte-stream' ! - // h264parse ! - // rtph264pay ! - // udpsink host=192.168.0.5 port=5555 - public static Bin GetWindowsPipeline(Device dev, String destinationIp) - { - Element source = ElementFactory.Make("ksvideosrc"); - source["device-index"] = Devices.GetWindowsDeviceIndex(dev); - - Element encoder = ElementFactory.Make("openh264enc"); - - return GetCommonPipeline(dev.DisplayName, destinationIp, source, "YUY2", encoder); - } - - // Linux: - // v4l2src device="/dev/video0" ! - // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! - // omxh264enc ! - // 'video/x-h264, stream-format=(string)byte-stream' ! - // h264parse ! - // rtph264pay ! - // udpsink host=192.168.0.5 port=5555 - public static Bin GetLinuxPipeline(Device dev, String destinationIp) - { - Element source = ElementFactory.Make("v4l2src"); - source["device"] = dev.PathString; - Element encoder = ElementFactory.Make("omxh264enc"); - - Element sourceCap = ElementFactory.Make("capsfilter"); - sourceCap["caps"] = Caps.FromString("video/x-raw, format=(string)YUY2, width=(int)640, height(int)=480"); - - return GetCommonPipeline(dev.Name, destinationIp, source, "I420", encoder); - } - - private static Bin GetCommonPipeline(String name, String destinationIp, Element source, String sourceType, Element encoder) - { - Pipeline pipeline = new Pipeline(); - - Element sourceCap = ElementFactory.Make("capsfilter"); - Element sourceCap2 = ElementFactory.Make("capsfilter"); - - Element videoConvert = ElementFactory.Make("videoconvert"); - - Element convertCap = ElementFactory.Make("capsfilter"); - Element encoderCap = ElementFactory.Make("capsfilter"); - Element rtpPay = ElementFactory.Make("rtph264pay"); - - Element parser = ElementFactory.Make("h264parse"); - Element sink = ElementFactory.Make("udpsink"); - - Element scale = ElementFactory.Make("videoscale"); - Element scaleCap = ElementFactory.Make("capsfilter"); - Element videoRate = ElementFactory.Make("videorate"); - Element videoCap = ElementFactory.Make("capsfilter"); - - if (sourceCap == null || videoConvert == null - || convertCap == null || encoderCap == null || rtpPay == null || parser == null - || sink == null || scale == null || scaleCap == null || videoRate == null - || videoRate == null || videoCap == null) - { - Console.WriteLine("Failed to create an element"); - } - - int scaledWidth = (int)(StreamParameters[name].Width * StreamParameters[name].Scale); - int scaledHeight = (int)(StreamParameters[name].Height * StreamParameters[name].Scale); - - sourceCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + StreamParameters[name].Width + ", height=(int)" + StreamParameters[name].Height); - - sourceCap2["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + scaledWidth + ", height=(int)" + scaledHeight); - - convertCap["caps"] = Caps.FromString("video/x-raw, format=(string)I420, width=(int)" - + scaledWidth + ", height=(int)" + scaledHeight); - - encoderCap["caps"] = Caps.FromString("video/x-h264, stream-format=(string)byte-stream"); - - - scaleCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" - + scaledWidth + ", height=(int)" + scaledHeight); - - videoCap["caps"] = Caps.FromString("video/x-raw, framerate=10/1"); - - sink["host"] = destinationIp; - sink["port"] = StreamParameters[name].Port; - - pipeline.Add(source, sourceCap, videoRate, videoCap, scale, - scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink); - if (!Element.Link(source, sourceCap, videoRate, videoCap, scale, - scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink)) - { - Console.WriteLine("Failed to Link"); - } - - pipeline.SetState(State.Null); - - return pipeline; - } - } } diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj b/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj index 8f00506..8d729f9 100644 --- a/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj +++ b/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj @@ -54,6 +54,7 @@ + From 5d46ff63fc00406d859f540ce0e5e5a776c9c6ac Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Sat, 16 Feb 2019 10:46:50 -0800 Subject: [PATCH 03/31] RTSP Server rewrite --- Rover/GStreamer/Readme | 2 + Rover/GStreamer/make.sh | 1 + Rover/GStreamer/serve | Bin 0 -> 13544 bytes Rover/GStreamer/single-server.c | 87 ++++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+) create mode 100644 Rover/GStreamer/Readme create mode 100644 Rover/GStreamer/make.sh create mode 100644 Rover/GStreamer/serve create mode 100644 Rover/GStreamer/single-server.c diff --git a/Rover/GStreamer/Readme b/Rover/GStreamer/Readme new file mode 100644 index 0000000..1b5fa80 --- /dev/null +++ b/Rover/GStreamer/Readme @@ -0,0 +1,2 @@ +Expects gstreamer and appropriate plugins to be installed based on pipeline. +Expects gst-rtsp-server to be installed. diff --git a/Rover/GStreamer/make.sh b/Rover/GStreamer/make.sh new file mode 100644 index 0000000..82e5412 --- /dev/null +++ b/Rover/GStreamer/make.sh @@ -0,0 +1 @@ +gcc single-server.c -o serve `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 diff --git a/Rover/GStreamer/serve b/Rover/GStreamer/serve new file mode 100644 index 0000000000000000000000000000000000000000..1e57f78e39253fac7ce02ee98a75a278735fdc13 GIT binary patch literal 13544 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 V>G9hqBAdQ(lP7VR1r_z{|1WSBx|09^ literal 0 HcmV?d00001 diff --git a/Rover/GStreamer/single-server.c b/Rover/GStreamer/single-server.c new file mode 100644 index 0000000..c7e14ee --- /dev/null +++ b/Rover/GStreamer/single-server.c @@ -0,0 +1,87 @@ +/* GStreamer + * Copyright (C) 2008 Wim Taymans + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include +#include + +#define DEFAULT_RTSP_PORT "8554" + +static char *port = (char *) DEFAULT_RTSP_PORT; + +static GOptionEntry entries[] = { + {"port", 'p', 0, G_OPTION_ARG_STRING, &port, + "Port to listen on (default: " DEFAULT_RTSP_PORT ")", "PORT"}, + {NULL} +}; + +int +main (int argc, char *argv[]) +{ + GMainLoop *loop; + GstRTSPServer *server; + GstRTSPMountPoints *mounts; + GstRTSPMediaFactory *factory; + GOptionContext *optctx; + GError *error = NULL; + + optctx = g_option_context_new (" - Test RTSP Server, Launch\n\n" + "Example: \"( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )\""); + g_option_context_add_main_entries (optctx, entries, NULL); + g_option_context_add_group (optctx, gst_init_get_option_group ()); + if (!g_option_context_parse (optctx, &argc, &argv, &error)) { + g_printerr ("Error parsing options: %s\n", error->message); + g_option_context_free (optctx); + g_clear_error (&error); + return -1; + } + g_option_context_free (optctx); + + loop = g_main_loop_new (NULL, FALSE); + + /* create a server instance */ + server = gst_rtsp_server_new (); + g_object_set (server, "service", port, NULL); + + /* get the mount points for this server, every server has a default object + * that be used to map uri mount points to media factories */ + mounts = gst_rtsp_server_get_mount_points (server); + + /* make a media factory for a test stream. The default media factory can use + * gst-launch syntax to create pipelines. + * any launch line works as long as it contains elements named pay%d. Each + * element with pay%d names will be a stream */ + factory = gst_rtsp_media_factory_new (); + gst_rtsp_media_factory_set_launch (factory, argv[1]); + gst_rtsp_media_factory_set_shared (factory, TRUE); + + /* attach the test factory to the /test url */ + gst_rtsp_mount_points_add_factory (mounts, "/test", factory); + + /* don't need the ref to the mapper anymore */ + g_object_unref (mounts); + + /* attach the server to the default maincontext */ + gst_rtsp_server_attach (server, NULL); + + /* start serving */ + g_print ("stream ready at rtsp://127.0.0.1:%s/test\n", port); + g_main_loop_run (loop); + + return 0; +} From 70ddda71fd501d88030fd58607c119ac8577aedb Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Sat, 16 Feb 2019 12:23:49 -0800 Subject: [PATCH 04/31] More stuff --- Rover/GStreamer/device-scanner | Bin 0 -> 13552 bytes Rover/GStreamer/gserver.cpp | 99 +++++++++++++++++++++++++++++++++ Rover/GStreamer/gserver.h | 21 +++++++ Rover/GStreamer/make.sh | 1 + Rover/GStreamer/readfile.sh | 25 +++++++++ 5 files changed, 146 insertions(+) create mode 100644 Rover/GStreamer/device-scanner create mode 100644 Rover/GStreamer/gserver.cpp create mode 100644 Rover/GStreamer/gserver.h create mode 100644 Rover/GStreamer/readfile.sh diff --git a/Rover/GStreamer/device-scanner b/Rover/GStreamer/device-scanner new file mode 100644 index 0000000000000000000000000000000000000000..041b0198a718e590b4a0634da83fe674d21cf262 GIT binary patch literal 13552 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 Mp +#include +#include +#include + +void structure_fields(const GstStructure *device) +{ + gint n_fields = gst_structure_n_fields(device); + for (int i = 0; i < n_fields; i++) + { + const gchar *name; + name = gst_structure_nth_field_name(device, i); + g_print("%s:\n%s\n", name, gst_structure_get_string(device, name)); + } +} + +gboolean bus_func (GstBus *bus, GstMessage *message, gpointer user_data) +{ + GstDevice *devi; + gchar *name; + + switch (GST_MESSAGE_TYPE (message)) + { + case GST_MESSAGE_DEVICE_ADDED: + GstStructure *type; + + gst_message_parse_device_added (message, &devi); + name = gst_device_get_display_name (devi); + type = gst_device_get_properties(devi); + g_print("Device added: %s\n", name); + g_free (name); + g_print("Device path: %s\n", gst_structure_get_string(type, "device.path")); + structure_fields(type); + gst_structure_free(type); + gst_object_unref (devi); + break; + case GST_MESSAGE_DEVICE_REMOVED: + gst_message_parse_device_removed (message, &devi); + name = gst_device_get_display_name (devi); + g_print("Device removed: %s\n", name); + g_free (name); + gst_object_unref (devi); + break; + default: + break; + } + + return G_SOURCE_CONTINUE; +} + +GstDeviceMonitor *device_monitor(void) +{ + GstDeviceMonitor *monitor; + GstBus *bus; + GstCaps *caps; + + // starts the monitor for the devices + monitor = gst_device_monitor_new (); + + // starts the bus for the monitor + bus = gst_device_monitor_get_bus (monitor); + gst_object_unref (bus); + + // adds a filter for the devices seen + caps = gst_caps_new_empty_simple ("video/x-raw"); + gst_device_monitor_add_filter (monitor, "Video/Source", caps); + gst_caps_unref (caps); + + gst_device_monitor_start (monitor); + + return monitor; +} + +int main(int argc, char *argv[]) +{ + g_print("Start\n"); + GstDeviceMonitor *monitor; + GList *dev; + char *ip; + gst_init(&argc, &argv); + + // set the monitor + g_print("Device Monitor\n"); + monitor = device_monitor(); + dev = gst_device_monitor_get_devices(monitor); + + // loop for the lists + GList *cur = g_list_first(dev); + while(cur != NULL) + { + GstDevice * devi = (GstDevice *) cur->data; + g_print("%s\n", gst_device_get_display_name(devi)); + GstStructure * type = gst_device_get_properties(devi); + structure_fields(type); + cur = g_list_next(cur); + } + + return 0; +} diff --git a/Rover/GStreamer/gserver.h b/Rover/GStreamer/gserver.h new file mode 100644 index 0000000..c6b1d6e --- /dev/null +++ b/Rover/GStreamer/gserver.h @@ -0,0 +1,21 @@ +#pragma once + +//#include +#include +// struct for the elements used by gstreamer +typedef struct g_element_st +{ + gchar *name, *cl; + GstStructure *str; + GstElement *pipeline, *source, *depay, *encoder; + GstElement *parse, *sink, *s_cap, *e_cap, *scale; + GstElement *scale_cap, *video_rate, *v_cap; + +} *g_element; + +/*void structure_fields(const GstStructure *); +gboolean bus_func(GstBus *, GstMessage *, gpointer); +GstDeviceMonitor *device_monitor(void); +void sigintHandler(int); +void stream_start(GList *, gchar *, gint);*/ + diff --git a/Rover/GStreamer/make.sh b/Rover/GStreamer/make.sh index 82e5412..9f7008c 100644 --- a/Rover/GStreamer/make.sh +++ b/Rover/GStreamer/make.sh @@ -1 +1,2 @@ gcc single-server.c -o serve `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 +gcc gserver.cpp -o device-scanner `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 diff --git a/Rover/GStreamer/readfile.sh b/Rover/GStreamer/readfile.sh new file mode 100644 index 0000000..91adfeb --- /dev/null +++ b/Rover/GStreamer/readfile.sh @@ -0,0 +1,25 @@ +#! /bin/sh +filename=$1 +firstline=$2 +lastline=$3 + +# Basics of sed: +# 1. sed commands have a matching part and a command part. +# 2. The matching part matches lines, generally by number or regular expression. +# 3. The command part executes a command on that line, possibly changing its text. +# +# By default, sed will print everything in its buffer to standard output. +# The -n option turns this off, so it only prints what you tell it to. +# +# The -e option gives sed a command or set of commands (separated by semicolons). +# Below, we use two commands: +# +# ${firstline},${lastline}p +# This matches lines firstline to lastline, inclusive +# The command 'p' tells sed to print the line to standard output +# +# ${lastline}q +# This matches line ${lastline}. It tells sed to quit. This command +# is run after the print command, so sed quits after printing the last line. +# +sed -ne "${firstline},${lastline}p;${lastline}q" < ${filename} From 5e144d5ce5b042c0912306e4831456a1b1e0d680 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Tue, 19 Feb 2019 20:02:17 -0800 Subject: [PATCH 05/31] Make file and multiprocess architecture, TODO: Getting ZED to work --- Rover/GStreamer/Makefile | 19 +++ Rover/GStreamer/device-scanner | Bin 13552 -> 0 bytes .../{gserver.cpp => device-scanner.cpp} | 24 ++-- Rover/GStreamer/gserver.h | 21 ---- Rover/GStreamer/make.sh | 2 - Rover/GStreamer/readfile.sh | 25 ---- Rover/GStreamer/serve | Bin 13544 -> 0 bytes Rover/GStreamer/server.cpp | 113 ++++++++++++++++++ Rover/GStreamer/single-server.c | 87 -------------- 9 files changed, 149 insertions(+), 142 deletions(-) create mode 100644 Rover/GStreamer/Makefile delete mode 100644 Rover/GStreamer/device-scanner rename Rover/GStreamer/{gserver.cpp => device-scanner.cpp} (77%) delete mode 100644 Rover/GStreamer/gserver.h delete mode 100644 Rover/GStreamer/make.sh delete mode 100644 Rover/GStreamer/readfile.sh delete mode 100644 Rover/GStreamer/serve create mode 100644 Rover/GStreamer/server.cpp delete mode 100644 Rover/GStreamer/single-server.c diff --git a/Rover/GStreamer/Makefile b/Rover/GStreamer/Makefile new file mode 100644 index 0000000..796d820 --- /dev/null +++ b/Rover/GStreamer/Makefile @@ -0,0 +1,19 @@ +CPP= g++ +CFLAGS= -g -Wall -Wpedantic -std=c++14 +GSFLAGS= `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 +HEADERS= +OBJS= ricoh.o +DEV= device-scanner +SERVER= server + +all: $(DEV) $(SERVER) + +server: $(HEADERS) $(SERVER).cpp + $(CPP) $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) + + +device-scanner: $(HEADERS) $(DEV).cpp + $(CPP) $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) + +clean: + rm $(DEV) $(SERVER) diff --git a/Rover/GStreamer/device-scanner b/Rover/GStreamer/device-scanner deleted file mode 100644 index 041b0198a718e590b4a0634da83fe674d21cf262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13552 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 Mp #include #include +#include void structure_fields(const GstStructure *device) { gint n_fields = gst_structure_n_fields(device); for (int i = 0; i < n_fields; i++) { - const gchar *name; - name = gst_structure_nth_field_name(device, i); - g_print("%s:\n%s\n", name, gst_structure_get_string(device, name)); + //const gchar *name; + //name = gst_structure_nth_field_name(device, i); + //g_print("%s:\n%s\n", name, gst_structure_get_string(device, name)); } } @@ -73,25 +74,34 @@ GstDeviceMonitor *device_monitor(void) int main(int argc, char *argv[]) { - g_print("Start\n"); GstDeviceMonitor *monitor; GList *dev; - char *ip; gst_init(&argc, &argv); // set the monitor - g_print("Device Monitor\n"); monitor = device_monitor(); dev = gst_device_monitor_get_devices(monitor); // loop for the lists GList *cur = g_list_first(dev); + int port = 8554; while(cur != NULL) { GstDevice * devi = (GstDevice *) cur->data; - g_print("%s\n", gst_device_get_display_name(devi)); GstStructure * type = gst_device_get_properties(devi); structure_fields(type); + int mypid = fork(); + if(mypid == 0) + { + const char * name = gst_device_get_display_name(devi); + const char * path = gst_structure_get_string(type, "device.path"); + char buffer[5]; + sprintf(buffer, "%d", port); + g_print("Starting process for %s camera at %s\n", name, path); + int ret = execl("./server", argv[0], name, path, buffer, NULL); + return ret; // Shouldn't reach this line + } + port += 1; cur = g_list_next(cur); } diff --git a/Rover/GStreamer/gserver.h b/Rover/GStreamer/gserver.h deleted file mode 100644 index c6b1d6e..0000000 --- a/Rover/GStreamer/gserver.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once - -//#include -#include -// struct for the elements used by gstreamer -typedef struct g_element_st -{ - gchar *name, *cl; - GstStructure *str; - GstElement *pipeline, *source, *depay, *encoder; - GstElement *parse, *sink, *s_cap, *e_cap, *scale; - GstElement *scale_cap, *video_rate, *v_cap; - -} *g_element; - -/*void structure_fields(const GstStructure *); -gboolean bus_func(GstBus *, GstMessage *, gpointer); -GstDeviceMonitor *device_monitor(void); -void sigintHandler(int); -void stream_start(GList *, gchar *, gint);*/ - diff --git a/Rover/GStreamer/make.sh b/Rover/GStreamer/make.sh deleted file mode 100644 index 9f7008c..0000000 --- a/Rover/GStreamer/make.sh +++ /dev/null @@ -1,2 +0,0 @@ -gcc single-server.c -o serve `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 -gcc gserver.cpp -o device-scanner `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 diff --git a/Rover/GStreamer/readfile.sh b/Rover/GStreamer/readfile.sh deleted file mode 100644 index 91adfeb..0000000 --- a/Rover/GStreamer/readfile.sh +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/sh -filename=$1 -firstline=$2 -lastline=$3 - -# Basics of sed: -# 1. sed commands have a matching part and a command part. -# 2. The matching part matches lines, generally by number or regular expression. -# 3. The command part executes a command on that line, possibly changing its text. -# -# By default, sed will print everything in its buffer to standard output. -# The -n option turns this off, so it only prints what you tell it to. -# -# The -e option gives sed a command or set of commands (separated by semicolons). -# Below, we use two commands: -# -# ${firstline},${lastline}p -# This matches lines firstline to lastline, inclusive -# The command 'p' tells sed to print the line to standard output -# -# ${lastline}q -# This matches line ${lastline}. It tells sed to quit. This command -# is run after the print command, so sed quits after printing the last line. -# -sed -ne "${firstline},${lastline}p;${lastline}q" < ${filename} diff --git a/Rover/GStreamer/serve b/Rover/GStreamer/serve deleted file mode 100644 index 1e57f78e39253fac7ce02ee98a75a278735fdc13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13544 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 V>G9hqBAdQ(lP7VR1r_z{|1WSBx|09^ diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp new file mode 100644 index 0000000..6432357 --- /dev/null +++ b/Rover/GStreamer/server.cpp @@ -0,0 +1,113 @@ +#include +#include +#include +#include +#include + +using namespace std; + +unordered_map> table; + +char * +construct_pipeline(char * devpath, int width, int height, float scale) +{ + char * output = (char *) malloc(1024); + char width_str[5]; + char height_str[5]; + char scaled_width_str[5]; + char scaled_height_str[5]; + + int scaled_width = width * scale; + int scaled_height = height * scale; + + sprintf(width_str, "%d", width); + sprintf(height_str, "%d", height); + sprintf(scaled_width_str, "%d", scaled_width); + sprintf(scaled_height_str, "%d", scaled_height); + + sprintf(output, "( v4l2src device='%s' ! 'video/x-raw, format=I420, width=%s, height=%s' ! videoconvert ! 'video/x-raw, format=I420, width=%s, height=%s' ! rtpvrawpay name=pay0 pt=96 )", devpath, width_str, height_str, scaled_width_str, scaled_height_str); + + return output; +} + +void +setup_map() +{ + table["ZED"] = make_tuple("5556", 3840, 1080, 0.25f); +} + +int +main (int argc, char *argv[]) +{ + GMainLoop *loop; + GstRTSPServer *server; + GstRTSPMountPoints *mounts; + GstRTSPMediaFactory *factory; + char * devname; + char * devpath; + const char * port; + char * pipeline; + setup_map(); + + if (argc == 4) + { + devname = argv[1]; + devpath = argv[2]; + port = argv[3]; + if (table.count(devname) == 0) + { + g_print("%s@%s No pipeline found; provide pipeline argument\n", devname, devpath); + return -1; + } + else + { + pipeline = construct_pipeline(devpath, get<1>(table.at(devname)), get<2>(table.at(devname)), get<3>(table.at(devname))); + port = get<0>(table.at(devname)); + } + } + else if (argc == 5) + { + devname = argv[1]; + devpath = argv[2]; + port = argv[3]; + pipeline = argv[4]; + } + else + { + g_print("Usage ./serve \n"); + return -1; + } + + loop = g_main_loop_new (NULL, FALSE); + + /* create a server instance */ + server = gst_rtsp_server_new (); + g_object_set (server, "service", port, NULL); + + /* get the mount points for this server, every server has a default object + * that be used to map uri mount points to media factories */ + mounts = gst_rtsp_server_get_mount_points (server); + + /* make a media factory for a test stream. The default media factory can use + * gst-launch syntax to create pipelines. + * any launch line works as long as it contains elements named pay%d. Each + * element with pay%d names will be a stream */ + factory = gst_rtsp_media_factory_new (); + gst_rtsp_media_factory_set_launch (factory, pipeline); + gst_rtsp_media_factory_set_shared (factory, TRUE); + + /* attach the test factory to the /test url */ + gst_rtsp_mount_points_add_factory (mounts, "/test", factory); + + /* don't need the ref to the mapper anymore */ + g_object_unref (mounts); + + /* attach the server to the default maincontext */ + gst_rtsp_server_attach (server, NULL); + + /* start serving */ + g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/test\n", devname, devpath, port); + g_main_loop_run (loop); + + return 0; +} diff --git a/Rover/GStreamer/single-server.c b/Rover/GStreamer/single-server.c deleted file mode 100644 index c7e14ee..0000000 --- a/Rover/GStreamer/single-server.c +++ /dev/null @@ -1,87 +0,0 @@ -/* GStreamer - * Copyright (C) 2008 Wim Taymans - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include -#include - -#define DEFAULT_RTSP_PORT "8554" - -static char *port = (char *) DEFAULT_RTSP_PORT; - -static GOptionEntry entries[] = { - {"port", 'p', 0, G_OPTION_ARG_STRING, &port, - "Port to listen on (default: " DEFAULT_RTSP_PORT ")", "PORT"}, - {NULL} -}; - -int -main (int argc, char *argv[]) -{ - GMainLoop *loop; - GstRTSPServer *server; - GstRTSPMountPoints *mounts; - GstRTSPMediaFactory *factory; - GOptionContext *optctx; - GError *error = NULL; - - optctx = g_option_context_new (" - Test RTSP Server, Launch\n\n" - "Example: \"( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )\""); - g_option_context_add_main_entries (optctx, entries, NULL); - g_option_context_add_group (optctx, gst_init_get_option_group ()); - if (!g_option_context_parse (optctx, &argc, &argv, &error)) { - g_printerr ("Error parsing options: %s\n", error->message); - g_option_context_free (optctx); - g_clear_error (&error); - return -1; - } - g_option_context_free (optctx); - - loop = g_main_loop_new (NULL, FALSE); - - /* create a server instance */ - server = gst_rtsp_server_new (); - g_object_set (server, "service", port, NULL); - - /* get the mount points for this server, every server has a default object - * that be used to map uri mount points to media factories */ - mounts = gst_rtsp_server_get_mount_points (server); - - /* make a media factory for a test stream. The default media factory can use - * gst-launch syntax to create pipelines. - * any launch line works as long as it contains elements named pay%d. Each - * element with pay%d names will be a stream */ - factory = gst_rtsp_media_factory_new (); - gst_rtsp_media_factory_set_launch (factory, argv[1]); - gst_rtsp_media_factory_set_shared (factory, TRUE); - - /* attach the test factory to the /test url */ - gst_rtsp_mount_points_add_factory (mounts, "/test", factory); - - /* don't need the ref to the mapper anymore */ - g_object_unref (mounts); - - /* attach the server to the default maincontext */ - gst_rtsp_server_attach (server, NULL); - - /* start serving */ - g_print ("stream ready at rtsp://127.0.0.1:%s/test\n", port); - g_main_loop_run (loop); - - return 0; -} From 504aae13234925ad426c0d12cd7af15818700825 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Tue, 19 Feb 2019 20:04:04 -0800 Subject: [PATCH 06/31] Gitignore --- Rover/GStreamer/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Rover/GStreamer/.gitignore diff --git a/Rover/GStreamer/.gitignore b/Rover/GStreamer/.gitignore new file mode 100644 index 0000000..da5e2b5 --- /dev/null +++ b/Rover/GStreamer/.gitignore @@ -0,0 +1,2 @@ +device-scanner +server From 7dd0b1c5f4aa116673bdccd27c2a1f9e37745170 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Tue, 26 Feb 2019 19:53:56 -0800 Subject: [PATCH 07/31] Added debug and ZED working, reduced code complexity --- Rover/GStreamer/Makefile | 9 ++++- Rover/GStreamer/device-scanner.cpp | 61 +++++++++--------------------- Rover/GStreamer/server.cpp | 26 +++++++++---- 3 files changed, 44 insertions(+), 52 deletions(-) diff --git a/Rover/GStreamer/Makefile b/Rover/GStreamer/Makefile index 796d820..5f70e4a 100644 --- a/Rover/GStreamer/Makefile +++ b/Rover/GStreamer/Makefile @@ -8,12 +8,19 @@ SERVER= server all: $(DEV) $(SERVER) +debug: $(DEV)_debug $(SERVER)_debug + server: $(HEADERS) $(SERVER).cpp $(CPP) $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) - device-scanner: $(HEADERS) $(DEV).cpp $(CPP) $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) +server_debug: $(HEADERS) $(SERVER).cpp + $(CPP) -D DEBUG $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) + +device-scanner_debug: $(HEADERS) $(DEV).cpp + $(CPP) -D DEBUG $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) + clean: rm $(DEV) $(SERVER) diff --git a/Rover/GStreamer/device-scanner.cpp b/Rover/GStreamer/device-scanner.cpp index addb352..1e3a9e7 100644 --- a/Rover/GStreamer/device-scanner.cpp +++ b/Rover/GStreamer/device-scanner.cpp @@ -4,50 +4,18 @@ #include #include +#ifdef DEBUG void structure_fields(const GstStructure *device) { gint n_fields = gst_structure_n_fields(device); for (int i = 0; i < n_fields; i++) { - //const gchar *name; - //name = gst_structure_nth_field_name(device, i); - //g_print("%s:\n%s\n", name, gst_structure_get_string(device, name)); + const gchar *name; + name = gst_structure_nth_field_name(device, i); + g_print("%s:\n%s\n", name, gst_structure_get_string(device, name)); } } - -gboolean bus_func (GstBus *bus, GstMessage *message, gpointer user_data) -{ - GstDevice *devi; - gchar *name; - - switch (GST_MESSAGE_TYPE (message)) - { - case GST_MESSAGE_DEVICE_ADDED: - GstStructure *type; - - gst_message_parse_device_added (message, &devi); - name = gst_device_get_display_name (devi); - type = gst_device_get_properties(devi); - g_print("Device added: %s\n", name); - g_free (name); - g_print("Device path: %s\n", gst_structure_get_string(type, "device.path")); - structure_fields(type); - gst_structure_free(type); - gst_object_unref (devi); - break; - case GST_MESSAGE_DEVICE_REMOVED: - gst_message_parse_device_removed (message, &devi); - name = gst_device_get_display_name (devi); - g_print("Device removed: %s\n", name); - g_free (name); - gst_object_unref (devi); - break; - default: - break; - } - - return G_SOURCE_CONTINUE; -} +#endif GstDeviceMonitor *device_monitor(void) { @@ -62,7 +30,7 @@ GstDeviceMonitor *device_monitor(void) bus = gst_device_monitor_get_bus (monitor); gst_object_unref (bus); - // adds a filter for the devices seen + // adds a filter to scan for only video devices caps = gst_caps_new_empty_simple ("video/x-raw"); gst_device_monitor_add_filter (monitor, "Video/Source", caps); gst_caps_unref (caps); @@ -76,34 +44,39 @@ int main(int argc, char *argv[]) { GstDeviceMonitor *monitor; GList *dev; + GMainLoop *loop; gst_init(&argc, &argv); - // set the monitor + // create the monitor monitor = device_monitor(); dev = gst_device_monitor_get_devices(monitor); // loop for the lists GList *cur = g_list_first(dev); - int port = 8554; while(cur != NULL) { GstDevice * devi = (GstDevice *) cur->data; GstStructure * type = gst_device_get_properties(devi); + +#ifdef DEBUG structure_fields(type); +#endif + int mypid = fork(); if(mypid == 0) { const char * name = gst_device_get_display_name(devi); const char * path = gst_structure_get_string(type, "device.path"); - char buffer[5]; - sprintf(buffer, "%d", port); g_print("Starting process for %s camera at %s\n", name, path); - int ret = execl("./server", argv[0], name, path, buffer, NULL); + int ret = execl("./server", argv[0], name, path, NULL); return ret; // Shouldn't reach this line } - port += 1; cur = g_list_next(cur); } + loop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(loop); + g_main_loop_unref(loop); + return 0; } diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 6432357..79f5444 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -3,13 +3,14 @@ #include #include #include +#include using namespace std; -unordered_map> table; +unordered_map> table; char * -construct_pipeline(char * devpath, int width, int height, float scale) +construct_pipeline(char * devpath, const char * input_type, int width, int height, float scale) { char * output = (char *) malloc(1024); char width_str[5]; @@ -25,7 +26,15 @@ construct_pipeline(char * devpath, int width, int height, float scale) sprintf(scaled_width_str, "%d", scaled_width); sprintf(scaled_height_str, "%d", scaled_height); - sprintf(output, "( v4l2src device='%s' ! 'video/x-raw, format=I420, width=%s, height=%s' ! videoconvert ! 'video/x-raw, format=I420, width=%s, height=%s' ! rtpvrawpay name=pay0 pt=96 )", devpath, width_str, height_str, scaled_width_str, scaled_height_str); + if (strcmp(input_type, "I420") != 0) + { + sprintf(output, "v4l2src device=%s ! video/x-raw, format=%s, width=%s, height=%s ! videoconvert ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", devpath, input_type, width_str, height_str, width_str, height_str, scaled_width_str, scaled_height_str); + } + else + { + sprintf(output, "v4l2src device=%s ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", devpath, width_str, height_str, scaled_width_str, scaled_height_str); + } + return output; } @@ -33,7 +42,7 @@ construct_pipeline(char * devpath, int width, int height, float scale) void setup_map() { - table["ZED"] = make_tuple("5556", 3840, 1080, 0.25f); + table["ZED"] = make_tuple("5556", 4416, 1242, 0.25f, "YUY2"); } int @@ -48,12 +57,12 @@ main (int argc, char *argv[]) const char * port; char * pipeline; setup_map(); + gst_init(&argc, &argv); - if (argc == 4) + if (argc == 3) { devname = argv[1]; devpath = argv[2]; - port = argv[3]; if (table.count(devname) == 0) { g_print("%s@%s No pipeline found; provide pipeline argument\n", devname, devpath); @@ -61,7 +70,7 @@ main (int argc, char *argv[]) } else { - pipeline = construct_pipeline(devpath, get<1>(table.at(devname)), get<2>(table.at(devname)), get<3>(table.at(devname))); + pipeline = construct_pipeline(devpath, get<4>(table.at(devname)), get<1>(table.at(devname)), get<2>(table.at(devname)), get<3>(table.at(devname))); port = get<0>(table.at(devname)); } } @@ -78,6 +87,8 @@ main (int argc, char *argv[]) return -1; } + g_print("%s\n", pipeline); + loop = g_main_loop_new (NULL, FALSE); /* create a server instance */ @@ -108,6 +119,7 @@ main (int argc, char *argv[]) /* start serving */ g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/test\n", devname, devpath, port); g_main_loop_run (loop); + g_main_loop_unref(loop); return 0; } From cb1b2382fe6cbfe248999a78f57a37ff39b8243f Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 27 Feb 2019 18:03:26 -0800 Subject: [PATCH 08/31] Simplify --- README.md | 4 ++-- Rover/GStreamer/device-scanner.cpp | 9 ++++----- Rover/GStreamer/server.cpp | 10 +++++----- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d548d79..ee036b9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Orpheus -Code base for the 2017-18 build season and onwards. +Code base for the 2017-19 build season and onwards. ## Git Procedure -Make a new feature branch off of the main development branch. Implement a feature in the branch and then generate a pull request to the master branch which will be reviewed by another software team member before being approved. You are not allowed to push your code directly to the master branch. \ No newline at end of file +Make a new feature branch off of the main development branch. Implement a feature in the branch and then generate a pull request to the master branch which will be reviewed by another software team member before being approved. You are not allowed to push your code directly to the master branch. diff --git a/Rover/GStreamer/device-scanner.cpp b/Rover/GStreamer/device-scanner.cpp index 1e3a9e7..8a4dc9a 100644 --- a/Rover/GStreamer/device-scanner.cpp +++ b/Rover/GStreamer/device-scanner.cpp @@ -61,13 +61,12 @@ int main(int argc, char *argv[]) #ifdef DEBUG structure_fields(type); #endif - - int mypid = fork(); + const char * name = gst_device_get_display_name(devi); + const char * path = gst_structure_get_string(type, "device.path"); + g_print("Device-Scanner > Starting process for %s camera at %s\n", name, path); + int mypid = fork(); if(mypid == 0) { - const char * name = gst_device_get_display_name(devi); - const char * path = gst_structure_get_string(type, "device.path"); - g_print("Starting process for %s camera at %s\n", name, path); int ret = execl("./server", argv[0], name, path, NULL); return ret; // Shouldn't reach this line } diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 79f5444..927af30 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -59,13 +59,13 @@ main (int argc, char *argv[]) setup_map(); gst_init(&argc, &argv); - if (argc == 3) + if (argc == 3) // Want to run a predefined camera which is at defined path { devname = argv[1]; devpath = argv[2]; if (table.count(devname) == 0) { - g_print("%s@%s No pipeline found; provide pipeline argument\n", devname, devpath); + g_print("%s@%s > No pipeline found; provide pipeline argument\n", devname, devpath); return -1; } else @@ -74,7 +74,7 @@ main (int argc, char *argv[]) port = get<0>(table.at(devname)); } } - else if (argc == 5) + else if (argc == 5) // Likely from command line where everything is defined as an argument { devname = argv[1]; devpath = argv[2]; @@ -108,7 +108,7 @@ main (int argc, char *argv[]) gst_rtsp_media_factory_set_shared (factory, TRUE); /* attach the test factory to the /test url */ - gst_rtsp_mount_points_add_factory (mounts, "/test", factory); + gst_rtsp_mount_points_add_factory (mounts, "/feed", factory); /* don't need the ref to the mapper anymore */ g_object_unref (mounts); @@ -117,7 +117,7 @@ main (int argc, char *argv[]) gst_rtsp_server_attach (server, NULL); /* start serving */ - g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/test\n", devname, devpath, port); + g_print ("%s@%s > stream ready at rtsp://127.0.0.1:%s/test\n", devname, devpath, port); g_main_loop_run (loop); g_main_loop_unref(loop); From 7a47b820993ed1d1eed6e84fffa8581c85b0dd49 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 27 Feb 2019 20:04:36 -0800 Subject: [PATCH 09/31] Multi quality --- Rover/GStreamer/server.cpp | 87 ++++++++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 26 deletions(-) diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 927af30..36cbe4b 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -7,7 +7,30 @@ using namespace std; -unordered_map> table; +unordered_map*, const char*>> table; + +void +set_launch(GstRTSPServer * server, char * pipeline, const char * index) +{ + GstRTSPMountPoints *mounts; + GstRTSPMediaFactory *factory; + + /* get the mount points for this server, every server has a default object + * that be used to map uri mount points to media factories */ + mounts = gst_rtsp_server_get_mount_points (server); + + factory = gst_rtsp_media_factory_new (); + gst_rtsp_media_factory_set_launch (factory, pipeline); + gst_rtsp_media_factory_set_shared (factory, TRUE); + + /* attach the test factory to the /feed + i url */ + string attach = "feed"; + attach += index; + gst_rtsp_mount_points_add_factory (mounts, attach.c_str(), factory); + + /* don't need the ref to the mapper anymore */ + g_object_unref (mounts); +} char * construct_pipeline(char * devpath, const char * input_type, int width, int height, float scale) @@ -28,11 +51,11 @@ construct_pipeline(char * devpath, const char * input_type, int width, int heigh if (strcmp(input_type, "I420") != 0) { - sprintf(output, "v4l2src device=%s ! video/x-raw, format=%s, width=%s, height=%s ! videoconvert ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", devpath, input_type, width_str, height_str, width_str, height_str, scaled_width_str, scaled_height_str); + sprintf(output, "intervideosrc ! video/x-raw, format=%s, width=%s, height=%s ! videoconvert ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", input_type, width_str, height_str, width_str, height_str, scaled_width_str, scaled_height_str); } else { - sprintf(output, "v4l2src device=%s ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", devpath, width_str, height_str, scaled_width_str, scaled_height_str); + sprintf(output, "intervideosrc ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", width_str, height_str, scaled_width_str, scaled_height_str); } @@ -42,20 +65,23 @@ construct_pipeline(char * devpath, const char * input_type, int width, int heigh void setup_map() { - table["ZED"] = make_tuple("5556", 4416, 1242, 0.25f, "YUY2"); + vector * zedlist = new vector; + zedlist->push_back(0.25f); + zedlist->push_back(0.1f); + table["ZED"] = make_tuple("5556", 4416, 1242, zedlist, "YUY2"); + } int main (int argc, char *argv[]) { GMainLoop *loop; + GstElement *inputpipe; GstRTSPServer *server; - GstRTSPMountPoints *mounts; - GstRTSPMediaFactory *factory; char * devname; char * devpath; const char * port; - char * pipeline; + vector pipelines; setup_map(); gst_init(&argc, &argv); @@ -70,8 +96,28 @@ main (int argc, char *argv[]) } else { - pipeline = construct_pipeline(devpath, get<4>(table.at(devname)), get<1>(table.at(devname)), get<2>(table.at(devname)), get<3>(table.at(devname))); - port = get<0>(table.at(devname)); + string input = "v4l2src device="; + input += devpath; + input += " ! intervideosink"; + GstElement * inputpipe = gst_parse_launch(input.c_str(), NULL); + int ret = gst_element_set_state(inputpipe, GST_STATE_PLAYING); + + if (ret == GST_STATE_CHANGE_FAILURE) + { + exit(-1); + } + + tuple*, const char*> item = table.at(devname); + g_print("Hello"); + for (int i = 0; i < (int) get<3>(item)->size(); i++) + { + pipelines.push_back(construct_pipeline(devpath, get<4>(item), get<1>(item), get<2>(item), (*(get<3>(item)))[i])); + #ifdef DEBUG + g_print("%s@%s > %s\n", devname, devpath, pipelines[i]); + #endif + } + + port = get<0>(item); } } else if (argc == 5) // Likely from command line where everything is defined as an argument @@ -79,7 +125,7 @@ main (int argc, char *argv[]) devname = argv[1]; devpath = argv[2]; port = argv[3]; - pipeline = argv[4]; + pipelines.push_back(argv[4]); } else { @@ -87,37 +133,26 @@ main (int argc, char *argv[]) return -1; } - g_print("%s\n", pipeline); - loop = g_main_loop_new (NULL, FALSE); /* create a server instance */ server = gst_rtsp_server_new (); g_object_set (server, "service", port, NULL); - /* get the mount points for this server, every server has a default object - * that be used to map uri mount points to media factories */ - mounts = gst_rtsp_server_get_mount_points (server); - /* make a media factory for a test stream. The default media factory can use * gst-launch syntax to create pipelines. * any launch line works as long as it contains elements named pay%d. Each * element with pay%d names will be a stream */ - factory = gst_rtsp_media_factory_new (); - gst_rtsp_media_factory_set_launch (factory, pipeline); - gst_rtsp_media_factory_set_shared (factory, TRUE); - - /* attach the test factory to the /test url */ - gst_rtsp_mount_points_add_factory (mounts, "/feed", factory); - - /* don't need the ref to the mapper anymore */ - g_object_unref (mounts); + for (int i = 0; i < (int) pipelines.size(); i++) + { + set_launch(server, pipelines[i], to_string(i).c_str()); + g_print ("%s@%s > stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); + } /* attach the server to the default maincontext */ gst_rtsp_server_attach (server, NULL); /* start serving */ - g_print ("%s@%s > stream ready at rtsp://127.0.0.1:%s/test\n", devname, devpath, port); g_main_loop_run (loop); g_main_loop_unref(loop); From 2e020698df2e2f976c28ccb8124f2664a1b4c99b Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Fri, 1 Mar 2019 13:15:12 -0800 Subject: [PATCH 10/31] Simplified code, hopefully fixed weird stack overwriting --- Rover/GStreamer/server.cpp | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 36cbe4b..78bddb5 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -10,16 +10,14 @@ using namespace std; unordered_map*, const char*>> table; void -set_launch(GstRTSPServer * server, char * pipeline, const char * index) +set_launch(GstRTSPServer * server, GstRTSPMediaFactory *factory, char * pipeline, const char * index) { GstRTSPMountPoints *mounts; - GstRTSPMediaFactory *factory; /* get the mount points for this server, every server has a default object * that be used to map uri mount points to media factories */ mounts = gst_rtsp_server_get_mount_points (server); - factory = gst_rtsp_media_factory_new (); gst_rtsp_media_factory_set_launch (factory, pipeline); gst_rtsp_media_factory_set_shared (factory, TRUE); @@ -36,26 +34,17 @@ char * construct_pipeline(char * devpath, const char * input_type, int width, int height, float scale) { char * output = (char *) malloc(1024); - char width_str[5]; - char height_str[5]; - char scaled_width_str[5]; - char scaled_height_str[5]; int scaled_width = width * scale; int scaled_height = height * scale; - sprintf(width_str, "%d", width); - sprintf(height_str, "%d", height); - sprintf(scaled_width_str, "%d", scaled_width); - sprintf(scaled_height_str, "%d", scaled_height); - if (strcmp(input_type, "I420") != 0) { - sprintf(output, "intervideosrc ! video/x-raw, format=%s, width=%s, height=%s ! videoconvert ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", input_type, width_str, height_str, width_str, height_str, scaled_width_str, scaled_height_str); + snprintf(output, 1024, "intervideosrc ! video/x-raw, format=%s, width=%d, height=%d ! videoconvert ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", input_type, width, height, width, height, scaled_width, scaled_height); } else { - sprintf(output, "intervideosrc ! video/x-raw, format=I420, width=%s, height=%s ! videoscale ! video/x-raw, format=I420, width=%s, height=%s ! rtpvrawpay name=pay0 pt=96", width_str, height_str, scaled_width_str, scaled_height_str); + sprintf(output, 1024, "intervideosrc ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", width height, scaled_width, scaled_height); } @@ -78,8 +67,8 @@ main (int argc, char *argv[]) GMainLoop *loop; GstElement *inputpipe; GstRTSPServer *server; - char * devname; - char * devpath; + const char * devname; + const char * devpath; const char * port; vector pipelines; setup_map(); @@ -97,8 +86,7 @@ main (int argc, char *argv[]) else { string input = "v4l2src device="; - input += devpath; - input += " ! intervideosink"; + input += devpath + " ! intervideosink"; GstElement * inputpipe = gst_parse_launch(input.c_str(), NULL); int ret = gst_element_set_state(inputpipe, GST_STATE_PLAYING); @@ -106,9 +94,12 @@ main (int argc, char *argv[]) { exit(-1); } + else + { + g_print("%s@%s > Opened camera successfully\n", devname, devpath) + } tuple*, const char*> item = table.at(devname); - g_print("Hello"); for (int i = 0; i < (int) get<3>(item)->size(); i++) { pipelines.push_back(construct_pipeline(devpath, get<4>(item), get<1>(item), get<2>(item), (*(get<3>(item)))[i])); @@ -143,9 +134,11 @@ main (int argc, char *argv[]) * gst-launch syntax to create pipelines. * any launch line works as long as it contains elements named pay%d. Each * element with pay%d names will be a stream */ + vector factories; for (int i = 0; i < (int) pipelines.size(); i++) { - set_launch(server, pipelines[i], to_string(i).c_str()); + factories.push_back(gst_rtsp_media_factory_new()); + set_launch(server, factories.back(), pipelines[i], to_string(i).c_str()); g_print ("%s@%s > stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); } From 97462d4593dc224631adf899246550809b432c4d Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Sat, 2 Mar 2019 11:42:04 -0800 Subject: [PATCH 11/31] Fixed multi-resolution --- Rover/GStreamer/server.cpp | 62 +++++++++++++++----------------------- 1 file changed, 25 insertions(+), 37 deletions(-) diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 78bddb5..67ec682 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -9,29 +9,8 @@ using namespace std; unordered_map*, const char*>> table; -void -set_launch(GstRTSPServer * server, GstRTSPMediaFactory *factory, char * pipeline, const char * index) -{ - GstRTSPMountPoints *mounts; - - /* get the mount points for this server, every server has a default object - * that be used to map uri mount points to media factories */ - mounts = gst_rtsp_server_get_mount_points (server); - - gst_rtsp_media_factory_set_launch (factory, pipeline); - gst_rtsp_media_factory_set_shared (factory, TRUE); - - /* attach the test factory to the /feed + i url */ - string attach = "feed"; - attach += index; - gst_rtsp_mount_points_add_factory (mounts, attach.c_str(), factory); - - /* don't need the ref to the mapper anymore */ - g_object_unref (mounts); -} - char * -construct_pipeline(char * devpath, const char * input_type, int width, int height, float scale) +construct_pipeline(const char * devpath, const char * input_type, int width, int height, float scale) { char * output = (char *) malloc(1024); @@ -44,7 +23,7 @@ construct_pipeline(char * devpath, const char * input_type, int width, int heigh } else { - sprintf(output, 1024, "intervideosrc ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", width height, scaled_width, scaled_height); + snprintf(output, 1024, "intervideosrc ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", width, height, scaled_width, scaled_height); } @@ -57,15 +36,17 @@ setup_map() vector * zedlist = new vector; zedlist->push_back(0.25f); zedlist->push_back(0.1f); + vector * usb2list = new vector; + usb2list->push_back(0.25f); + usb2list->push_back(0.1f); table["ZED"] = make_tuple("5556", 4416, 1242, zedlist, "YUY2"); - + table["USB 2.0 Camera"] = make_tuple("5557", 1920, 1080, usb2list, "YUY2"); } int main (int argc, char *argv[]) { GMainLoop *loop; - GstElement *inputpipe; GstRTSPServer *server; const char * devname; const char * devpath; @@ -86,7 +67,8 @@ main (int argc, char *argv[]) else { string input = "v4l2src device="; - input += devpath + " ! intervideosink"; + input += devpath; + input += " ! intervideosink"; GstElement * inputpipe = gst_parse_launch(input.c_str(), NULL); int ret = gst_element_set_state(inputpipe, GST_STATE_PLAYING); @@ -96,7 +78,7 @@ main (int argc, char *argv[]) } else { - g_print("%s@%s > Opened camera successfully\n", devname, devpath) + g_print("%s@%s > Opened camera successfully\n", devname, devpath); } tuple*, const char*> item = table.at(devname); @@ -130,17 +112,24 @@ main (int argc, char *argv[]) server = gst_rtsp_server_new (); g_object_set (server, "service", port, NULL); - /* make a media factory for a test stream. The default media factory can use - * gst-launch syntax to create pipelines. - * any launch line works as long as it contains elements named pay%d. Each - * element with pay%d names will be a stream */ - vector factories; + /* get the mount points for this server, every server has a default object + * that be used to map uri mount points to media factories */ + GstRTSPMountPoints * mounts = gst_rtsp_server_get_mount_points (server); + char attachment[8]; + for (int i = 0; i < (int) pipelines.size(); i++) - { - factories.push_back(gst_rtsp_media_factory_new()); - set_launch(server, factories.back(), pipelines[i], to_string(i).c_str()); - g_print ("%s@%s > stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); + { + GstRTSPMediaFactory * factory = gst_rtsp_media_factory_new (); + gst_rtsp_media_factory_set_launch (factory, pipelines[i]); + gst_rtsp_media_factory_set_shared (factory, TRUE); + + snprintf(attachment, 8, "/feed%d", i); + gst_rtsp_mount_points_add_factory (mounts, attachment, factory); + g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); } + + /* don't need the ref to the mapper anymore */ + g_object_unref (mounts); /* attach the server to the default maincontext */ gst_rtsp_server_attach (server, NULL); @@ -148,6 +137,5 @@ main (int argc, char *argv[]) /* start serving */ g_main_loop_run (loop); g_main_loop_unref(loop); - return 0; } From d7c7de57de4a967ad8c958274a2a3672728346a4 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Sat, 2 Mar 2019 12:18:55 -0800 Subject: [PATCH 12/31] Simplified pipeline and reduced framerate before branching --- Rover/GStreamer/server.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 67ec682..ece0aaf 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -12,18 +12,18 @@ unordered_map*, const char*>> char * construct_pipeline(const char * devpath, const char * input_type, int width, int height, float scale) { - char * output = (char *) malloc(1024); + char * output = (char *) malloc(512); int scaled_width = width * scale; int scaled_height = height * scale; if (strcmp(input_type, "I420") != 0) { - snprintf(output, 1024, "intervideosrc ! video/x-raw, format=%s, width=%d, height=%d ! videoconvert ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", input_type, width, height, width, height, scaled_width, scaled_height); + snprintf(output, 512, "intervideosrc ! video/x-raw, format=%s, width=%d, height=%d ! videoscale ! videoconvert ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", input_type, width, height, scaled_width, scaled_height); } else { - snprintf(output, 1024, "intervideosrc ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", width, height, scaled_width, scaled_height); + snprintf(output, 512, "intervideosrc ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", width, height, scaled_width, scaled_height); } @@ -68,7 +68,7 @@ main (int argc, char *argv[]) { string input = "v4l2src device="; input += devpath; - input += " ! intervideosink"; + input += " ! videorate ! video/x-raw, framerate=10/1 ! intervideosink"; GstElement * inputpipe = gst_parse_launch(input.c_str(), NULL); int ret = gst_element_set_state(inputpipe, GST_STATE_PLAYING); From 6b91302a3ee5a910d3dfa17efb43715579a632e9 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Sat, 9 Mar 2019 12:17:34 -0800 Subject: [PATCH 13/31] Updated client --- .../UserInterface/Elements/MainWindow.xaml.cs | 16 +-- .../VideoStreamer/RTSPVideoWindow.xaml.cs | 111 ++++++++++++------ 2 files changed, 84 insertions(+), 43 deletions(-) diff --git a/BaseStation/UserInterface/Elements/MainWindow.xaml.cs b/BaseStation/UserInterface/Elements/MainWindow.xaml.cs index 9aca23f..e983007 100644 --- a/BaseStation/UserInterface/Elements/MainWindow.xaml.cs +++ b/BaseStation/UserInterface/Elements/MainWindow.xaml.cs @@ -131,14 +131,14 @@ private void LaunchStream(object sender, RoutedEventArgs e) private void ThreadStartingPoint(int Port, string Name, int BufferingMs) { VideoWindow tempWindow; - if (Name != "192.168.0.42" && Name != "127.0.0.1") - { - tempWindow = new RTPVideoWindow(Port, Name, Settings.RecordingPath, BufferingMs); - } - else - { - tempWindow = new RTSPVideoWindow(Port, Name, Settings.RecordingPath, BufferingMs); - } + //if (Name != "192.168.0.42" && Name != "127.0.0.1") + //{ + // tempWindow = new RTPVideoWindow(Port, Name, Settings.RecordingPath, BufferingMs); + //} + //else + //{ + tempWindow = new RTSPVideoWindow(Port, Name, Settings.RecordingPath, BufferingMs); + //} VideoWindows.Add(tempWindow); diff --git a/BaseStation/UserInterface/VideoStreamer/RTSPVideoWindow.xaml.cs b/BaseStation/UserInterface/VideoStreamer/RTSPVideoWindow.xaml.cs index 7d8518c..b9ac900 100644 --- a/BaseStation/UserInterface/VideoStreamer/RTSPVideoWindow.xaml.cs +++ b/BaseStation/UserInterface/VideoStreamer/RTSPVideoWindow.xaml.cs @@ -3,19 +3,15 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; using System.Linq; +using System.Net.NetworkInformation; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; using System.Windows.Interop; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; +using System.Windows.Threading; namespace HuskyRobotics.UI.VideoStreamer { @@ -26,12 +22,13 @@ namespace HuskyRobotics.UI.VideoStreamer // gst-launch-1.0 rtspsrc -v location = rtsp://192.168.0.42 user-id=admin user-pw=1234 latency=0 ! rtpjpegdepay ! jpegdec ! d3dvideosink public partial class RTSPVideoWindow : Window, VideoWindow { - private Pipeline Pipeline; + public PipelineElements runningPipeline; + public PipelineElements pendingPipeline; - private Bin RTSP = (Bin) ElementFactory.Make("rtspsrc"); - private Element Depay = ElementFactory.Make("rtpjpegdepay"); - private Element Dec = ElementFactory.Make("jpegdec"); - private Element VideoSink = ElementFactory.Make("d3dvideosink"); + NetworkInterface networkInterface; + + double bytesRecvSpeed = 0; + long lastBytesRecv; private int Port; private int BufferSizeMs; @@ -48,6 +45,15 @@ public string StreamName } } + public struct PipelineElements + { + public Pipeline pipeline; + public VideoOverlayAdapter overlay; + public Bin RTSP; + public Element Depay; + public Element VideoSink; + } + public RTSPVideoWindow(int Port, string StreamName, string RecordingPath, int BufferSizeMs = 200) { DataContext = this; @@ -56,38 +62,64 @@ public RTSPVideoWindow(int Port, string StreamName, string RecordingPath, int Bu this.BufferSizeMs = BufferSizeMs; this.RecordingPath = RecordingPath; - Pipeline = new Pipeline(); + foreach (NetworkInterface currentNetworkInterface in NetworkInterface.GetAllNetworkInterfaces()) + { + Console.WriteLine(currentNetworkInterface.Description); + if (currentNetworkInterface.Description == "Realtek USB GbE Family Controller") { + networkInterface = currentNetworkInterface; + } + } + + IPv4InterfaceStatistics interfaceStatistic = networkInterface.GetIPv4Statistics(); + lastBytesRecv = interfaceStatistic.BytesReceived; + DispatcherTimer dispatcherTimer = new DispatcherTimer(); + dispatcherTimer.Tick += new EventHandler(GetNetworkInBackground); + dispatcherTimer.Interval = new TimeSpan(0, 0, 1); + dispatcherTimer.Start(); + + PipelineElements pipeline = CreatePipeline(); + // Clean up running pipeline + runningPipeline = pipeline; + pendingPipeline = new PipelineElements(); + + Closing += OnCloseEvent; + InitializeComponent(); + } + + private PipelineElements CreatePipeline() + { + PipelineElements pipe = new PipelineElements(); + pendingPipeline = pipe; + pipe.pipeline = new Pipeline(); + pipe.RTSP = (Bin)ElementFactory.Make("rtspsrc"); + pipe.Depay = ElementFactory.Make("rtpvrawdepay"); + pipe.VideoSink = ElementFactory.Make("d3dvideosink"); Window window = GetWindow(this); WindowInteropHelper wih = new WindowInteropHelper(this); wih.EnsureHandle(); // Generate Window Handle if current HWND is NULL (always occurs because background window) - VideoOverlayAdapter overlay = new VideoOverlayAdapter(VideoSink.Handle); - overlay.WindowHandle = wih.Handle; - - Pipeline["message-forward"] = true; - RTSP["location"] = "rtsp://" + StreamName; - RTSP["user-id"] = "admin"; - RTSP["user-pw"] = "1234"; - RTSP["latency"] = BufferSizeMs; - + pipe.overlay = new VideoOverlayAdapter(pipe.VideoSink.Handle); + pipe.overlay.WindowHandle = wih.Handle; - Pipeline.Add(RTSP, Depay, Dec, VideoSink); - RTSP.Link(Depay); - RTSP.PadAdded += RTSPPadAdded; - Depay.Link(Dec); - Dec.Link(VideoSink); + pipe.pipeline["message-forward"] = true; + pipe.RTSP["location"] = "rtsp://" + StreamName; + pipe.RTSP["latency"] = BufferSizeMs; + pipe.pipeline.Add(pipe.RTSP, pipe.Depay, pipe.VideoSink); + pipe.RTSP.PadAdded += RTSPPadAdded; + pipe.RTSP.Link(pipe.Depay); + pipe.Depay.Link(pipe.VideoSink); - Pipeline.SetState(State.Null); + pipe.pipeline.SetState(State.Null); - Closing += OnCloseEvent; - InitializeComponent(); + return pipe; } + // Called after pipeline state is set to playing private void RTSPPadAdded(object o, PadAddedArgs args) { - Pad Sink = Depay.GetStaticPad("sink"); + Pad Sink = runningPipeline.Depay.GetStaticPad("sink"); args.NewPad.Link(Sink); } @@ -96,7 +128,7 @@ private void RTSPPadAdded(object o, PadAddedArgs args) /// public void StartStream() { - StateChangeReturn s = Pipeline.SetState(State.Playing); + StateChangeReturn s = runningPipeline.pipeline.SetState(State.Playing); } private string GetRecordingFilename() @@ -110,12 +142,21 @@ private void OnCloseEvent(object sender, CancelEventArgs e) // We have to wait for EOS to propogate through the pipeline // Unclear how dependent delay is on machine's speed or other process usage Console.WriteLine("Shutting down video"); - Pipeline.SendEvent(Event.NewEos()); + runningPipeline.pipeline.SendEvent(Event.NewEos()); Thread.Sleep(1000); // Cleanup the unmanaged class objects - Pipeline.SetState(State.Null); - Pipeline.Unref(); + runningPipeline.pipeline.SetState(State.Null); + runningPipeline.pipeline.Unref(); + } + + private void GetNetworkInBackground(object sender, EventArgs e) + { + IPv4InterfaceStatistics interfaceStatistic = networkInterface.GetIPv4Statistics(); + long bytesRecv = interfaceStatistic.BytesReceived; + bytesRecvSpeed = (bytesRecv - lastBytesRecv) * 8 / Math.Pow(1024, 2); + Console.WriteLine("Receiving data at: " + string.Format("{0:0.00}", bytesRecvSpeed) + " Mbps" + " over " + networkInterface.Description); + lastBytesRecv = bytesRecv; } } } From 13d05bfe47ec0c901eeb08faed4b04784d48a7af Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 3 Apr 2019 18:47:46 -0700 Subject: [PATCH 14/31] Server refactor --- Rover/GStreamer/server.cpp | 8 +++++++- Rover/GStreamer/server.h | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 Rover/GStreamer/server.h diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index ece0aaf..5fe09e0 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -44,7 +44,7 @@ setup_map() } int -main (int argc, char *argv[]) +start_server (int argc, char *argv[]) { GMainLoop *loop; GstRTSPServer *server; @@ -139,3 +139,9 @@ main (int argc, char *argv[]) g_main_loop_unref(loop); return 0; } + +int +main (int argc, char *argv[]) +{ + return start_server(argc, argv); +} diff --git a/Rover/GStreamer/server.h b/Rover/GStreamer/server.h new file mode 100644 index 0000000..e2e480c --- /dev/null +++ b/Rover/GStreamer/server.h @@ -0,0 +1,6 @@ +#ifndef SERVER_H_ /* Include guard */ +#define SERVER_H_ + +int start_server (int argc, char *argv[]); + +#endif // SERVER_H_ From 9e29d0dddc97eefb6f2096f7a097c7dad50d9cbf Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 3 Apr 2019 19:09:43 -0700 Subject: [PATCH 15/31] Refactor to include in other code --- Rover/GStreamer/Makefile | 6 +++--- Rover/GStreamer/server-wrapper | Bin 0 -> 366592 bytes Rover/GStreamer/server-wrapper.cpp | 8 ++++++++ Rover/GStreamer/server.cpp | 13 ------------- Rover/GStreamer/server.h | 7 +++++++ 5 files changed, 18 insertions(+), 16 deletions(-) create mode 100644 Rover/GStreamer/server-wrapper create mode 100644 Rover/GStreamer/server-wrapper.cpp diff --git a/Rover/GStreamer/Makefile b/Rover/GStreamer/Makefile index 5f70e4a..60a183a 100644 --- a/Rover/GStreamer/Makefile +++ b/Rover/GStreamer/Makefile @@ -4,19 +4,19 @@ GSFLAGS= `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 HEADERS= OBJS= ricoh.o DEV= device-scanner -SERVER= server +SERVER= server-wrapper all: $(DEV) $(SERVER) debug: $(DEV)_debug $(SERVER)_debug -server: $(HEADERS) $(SERVER).cpp +server-wrapper: $(HEADERS) $(SERVER).cpp $(CPP) $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) device-scanner: $(HEADERS) $(DEV).cpp $(CPP) $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) -server_debug: $(HEADERS) $(SERVER).cpp +server-wrapper_debug: $(HEADERS) $(SERVER).cpp $(CPP) -D DEBUG $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) device-scanner_debug: $(HEADERS) $(DEV).cpp diff --git a/Rover/GStreamer/server-wrapper b/Rover/GStreamer/server-wrapper new file mode 100644 index 0000000000000000000000000000000000000000..3caffb788246d81b178bbf1a4cc815ba3d8a02a2 GIT binary patch literal 366592 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%0DQH;Jk=Q@!BRB31)EU&Q&9V}Gy%W% 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 P3&(lSUQ{m=9d7*}gCyTH literal 0 HcmV?d00001 diff --git a/Rover/GStreamer/server-wrapper.cpp b/Rover/GStreamer/server-wrapper.cpp new file mode 100644 index 0000000..f2f7234 --- /dev/null +++ b/Rover/GStreamer/server-wrapper.cpp @@ -0,0 +1,8 @@ +#include "server.h" +#include "server.cpp" + +int +main (int argc, char *argv[]) +{ + return start_server(argc, argv); +} diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 5fe09e0..9632e4e 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -1,10 +1,3 @@ -#include -#include -#include -#include -#include -#include - using namespace std; unordered_map*, const char*>> table; @@ -139,9 +132,3 @@ start_server (int argc, char *argv[]) g_main_loop_unref(loop); return 0; } - -int -main (int argc, char *argv[]) -{ - return start_server(argc, argv); -} diff --git a/Rover/GStreamer/server.h b/Rover/GStreamer/server.h index e2e480c..0c243c0 100644 --- a/Rover/GStreamer/server.h +++ b/Rover/GStreamer/server.h @@ -1,6 +1,13 @@ #ifndef SERVER_H_ /* Include guard */ #define SERVER_H_ +#include +#include +#include +#include +#include +#include + int start_server (int argc, char *argv[]); #endif // SERVER_H_ From e6887d1a9e97dacbe07badfa6dbb36ffe0538e9b Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 3 Apr 2019 19:10:55 -0700 Subject: [PATCH 16/31] Removed from git --- Rover/GStreamer/.gitignore | 1 + Rover/GStreamer/server-wrapper | Bin 366592 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100644 Rover/GStreamer/server-wrapper diff --git a/Rover/GStreamer/.gitignore b/Rover/GStreamer/.gitignore index da5e2b5..62535aa 100644 --- a/Rover/GStreamer/.gitignore +++ b/Rover/GStreamer/.gitignore @@ -1,2 +1,3 @@ device-scanner server +server-wrapper diff --git a/Rover/GStreamer/server-wrapper b/Rover/GStreamer/server-wrapper deleted file mode 100644 index 3caffb788246d81b178bbf1a4cc815ba3d8a02a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366592 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%0DQH;Jk=Q@!BRB31)EU&Q&9V}Gy%W% zZ$o0KeX5$SeWP_*u1mE!4hau$lkg*x@a`|Xg!Gc(?0Gd<=WLTC1rJz}1sBG?)|lxp z0W(!&rhCO2tuQfzdc;hivJ+}Cw`xOkv4{DT!Av{43T&)I#CdQsw%7>DQlUImNDqge z!jR0$WO^6lpGRKt_#R3M-><~$j<~n# zJkVds59>dK!i7nMr02^WZRcvVod*%9(P;*GX$XA{PIN4$>HXC?SvS2b_w#e1DrZ4e z7HR^%j&+%!b*%5Fo~qDGRY^NK5uRSam%d{dpONiY(+s1Zc~sq zkXRbaE)-ig7J8*1j~)fjC&2g`P71;-tV|{k+4j~T2h2VNH7DbTg%~#`f zU)=A|1bq$(eF82_5<;+=1YbtzEjW*$l}W6rH(~yZN5vPmp+hK-yb3cV>14kMAs?sl z^bH+aF>pl4<54CExy(v>?N3Tu#CVtx+TJl}xPfDVzm&AOrD^8}(IqP(t#9tJtTniA zfXgMamDZc-E`)aroR`ijAxZ)!|F`3QFI+BhaOfIU^f7o}gA;VB=&a6|vn8YiWLi~1 z^t82D5W@XixLo4rK97r)HoODU2Mh7pD>yH`UjZddF!*AO6%e0GM`WvfF~(jAX9mV1 zFdI%%a?BW&lGr;jzb?nU8ZMW})^qmFc(TtE%m7^z-V*eLjleziI(YKZ%b^yo7c!aoeboVO|J5U8TtQ>u1Gh%a8@SK&S zzZ{HUE;o=kn;u#@I`3Ho>-xOT;B6~Mzi|xG*5CX%WXxxFWbvs<_$2l5BY-w06P*g5 zQjVUw9BAX){hh(hD^F>}cZ1tcP|SaI%IGKeBK8QLwCZend*#B-x+{8D71%nZ+G;;T zA%A)bOx#I5Rm2Zb@k>?w7pE+|M#ny?V@GGD1g!Q=Pf6kLTM20Tw^03Jt@HkPu>xZC zR~#W6`N>HxBrYqCbAZ#n?K)#U`T;g7*By5Q=ug9CXdC)Z@0Y%eN4JqICH^0cN7F9` z{T^-TA37zPf2j(v9m{_jaDHpC)Qlfo_d^z9A1;A5nVh}fOr#L2Nc%r8#Dp8MldYc; zvR?_W#?VI-l%EuWq-S#37b8zu-Q5jCs-%80Xr-^m<@q)Q#}!3O#Sj#R2O;WrF#HPW z-_?fx1u^uo2H`VIJrS+>gUQHa{ZLO~y59uWvv9e%4e1~EOIld}#8CW?6y|w54~xw0 z56Z-JeOsF1ut6)h-8yP2+G|$~G1?zYj-|a;)FIeY1@Q`SdNUaO^-z`a5_N+u`xGgK zofF|{&(m$A*f|(Q6c`ret`D{X!zPB!k)OH{LtyHOKCp-YJ0cJC5hSWS0^|dIFMQjo zHx{G70)#C`$fU}2G;~`6%Br}mj zy1&FNw;~ahE`2vJAJdrr*!cv7$+5F(PuYpb;Z*lFG_Ue7pE8(P?g?c3A7J~2Hu$d_ zwy8UsZKFoneXFqK)+R}4y2p04Vfz_ip3;WxK?;*>d!qOmnDuRF9_?X1Wiasp7qZ>{ zW~>mm!RLp!WI#b>QfwEI24$G#7BXRfBrIu@@L7|P&0Lq)wD|0e^YPwYnT-Z;hS zZOZ!+mH_)`Ouw3X9wCxpc|92>RA98whUQcc^C^Sry8X%a5n#JR8~nAvm-5nF>GF~W z%bPtOgQTDPs`le6I-m3HP=RkyRfeVueNgpG3kp2cm4s1o}Q8*#Z)3RpCiuMv)=2w|a zx$&>I^$G6FH0^B99ufKzT$ofy`(C+&cGpVK?llu@A#gG&r98Sn{UM%-0HW-ayQr zcqa6CxY%q6jmjp>Z245+Rk;^~@uPu}`yqn4pW$MK>1ELvg88=6vW`a~E&-|ixIE2oGi!BbJ@fn861v$Q2?yQV_pyl3y zVD7!VJb;T8W|-9yCX5^4!-TWT!7HG3DC0V$y4_^S?nf$$(Eav=qG5c(rVGjxtTHKR zo6@o@1A5^(9`4z?v@d$4C3N;|U0N?|Lid|>m`q7oHj3xARVeg8q|dzs;oL2}T*J$a zxL9EVSm3H40h+r*f+zcnrbQlor+%FGOe6EwJM@D4&H;T@J zl|6<^#{CSvkl5-KozR&jI!gwAJIgRRVzK#bDFbP8Hvy1)AupHkvW1sxaIwOSkxFK) z6rLDTcw$N6i7AD5-2+ZVCs2=0;3UnUZ_zg(Bk2UFyt)%0!!+&qzRqeS+=PU+Z4y3g z5>hrgA&D{JdG?>rL)#DCeIcIKgWp&2?1I0ysbVfuS()S}{SGXA;67WI)L+;jbPHUVDOtRlZ5cL2AenoQvsR-C%loMl}W5GKDMosaKE|@9YWW^g_%-#OCJN?MkNF; z0N{E!A+;IZToi9iv1%|L{Nui%4NXFK!-Yvgcza4gMFW@|a=<5-DWDnnH#=2q~ zI)wIw3o|9@U?2xJ%*_w@(O9X{y2xwOt>(qfTi$Ta<8!RZP1>KnD=`tCVF|i5ZVYQMOmqf z^27}&$`1RD94Sij^SB2ev_Fy{-Z5*XXEhR?0VkaD;|N%E$a^hu$^R=MP-1c~Ec3u;w3&;X^Ib%qm@pQXOrt*@MAZrShK) zKPsS(a3-+k|AhXEAG4IDTavbOEns)(28i2PN43wDsKf)2hLJ??00J&ONnsDl<;!r;%1a5r+;@!5+RwNX zc7h>eGS}I7iGF}49wg0V#*pbEA(eul>j%3;Q!YvwmBs>fO|hMh9XgOb1`qUk9Sp8g zbL`0}6)6YU$?e87Mjx1V16_XI8Ntm_)?SUWc{EM0Qw4$e^01f|iIm^xzeIUYA63d7`Fos$@$d9gT5cBE>tFzZwdLXPr~ zba_3g9v$6=sdNi`R8_^tpvtU;9c&s7%Q|)hRKi%8h=&XQlyX~EsRGt@EI?~iO|&e< zR%WSA%*dhwtFGhZ6slx7IV3q_Z7O^{!a? zBUZcsHqtZb$BjUJ04a#KrD92)VQX${Jh+y+2n)SwG@Py0vg)YHs%Thz^Wwppif@pN zMQxUPu|l;1wbJMtlnpk7(WL5)+_BP{2SHnDcv_SeDXy1MGy$7E7SgIC9A*na0IvOm+u)w*m{>nuM;>NQ5x8>1LBhWwA@L^pOUtJz*{K&Vuj zb09X+e-v<&-NBxlO8(Eaja{*<^ZYEqOi^tAc|KZVR>u@r)`L3EO+CQwoN8GY*oQ%C zIK0xunBe@R}B7<@&>dKiNY>8!ooFMsbPV71vf9&01I{E0@~Qt%;D!qJ%p( zjS@iLZ(R^f?HQ!)ewEG(!;zLW1imMKw&dL2t{>rFSY5YRK^WIuwy35u(okPhU4DXs*48hpjEh&nmb&`Jips{y zib!o)g90f=a>^STpleohOG6DmO=KzXz~zl)4GoozCc3G)CQ??jxE_q?49aS1>LIfF zMokR}%OD~XM)8oqM{z7mM>pd|1C)~#%j@e#Ccp z%WA4mtgKK;8=7OKh`7adDD9$_sw$LXiG}=InyYK7n@^BJg02y?&woQ%wJr^W5}|&^ zF;h`dSq1b2%cA~(`>JYI2l@h0W_V$IREZ+ZwFtugG*{PBVrblp4N`l4H>;((rg>m> z9o9Gzv$UnG@pxb%W^rX>qX-fHm}>XrMkT0Pt_xn?)Lg;#ftrhASTw7De~&}-dX+26 zD;ua-5y%Qz=_)YNjj(2=%vukn(EtwyxqLabRA?f%>bhp}vTl{ikcaAe0{wbvjMP-4 zMF7^)RM`}x3dk8LSPDi*SFvJ(6{DFzvxLa2S(Eh*8dleWCWqGGH5ycHoaO)$B@7e- z03|2*Q4^{ZkbZL=08(cZBK%-zaq|*1Yl;^&&;&Iqt5K;ISClnFNK{tVQ*9+{m_C+N zdz+&CwPn>LPYh^md3^=-fT8Mo$g{4ll5`n{Fie>lY_4o-rmnKQ48vSBq26@J<1UG) z&{4qA{h?{nLg_$5Sz}pkQ$wZ5k+Dt9l{J;Mm32hGP!(YhUj@riozy@TszpV{A)vVR zjWja~Bf4!X2&7Y~m0bZ;LuhFvhYC_&*3eW{S=I~~3+Ds9fY)ACTy14@SzMeJu+E~a z7G}%CXf88#p`w?zR7SDfTwm^CqGdFrcl5%wl}$}$i+xI!%c5nqs714jwpmw?L~PAX z&DC{P45+-8mDRN9^ig&m(O7Fm^+V-!y2|GIhGv*PkqdNBuxl$Ts>=pemC=Aw$VjB% z^(}SH0~_k0s$>D+3}TbTnY|oleo%<|&->tOsrf zBIbdgbB+V-@~+8yq;kM|tquKU2va5GfO0m-4j z@GgN~DOU!Dr?^MCx$YiB*dce6+?JesWuRAAgR1WHQUXJ|&>OhI?!41k;;wNHdSxp~ z;_p>A`8Kdvh3|rGSWA@ zp`5igkfrqzZ1!L|Zw8=f(#i-no4B0I+4!U-P!480SezWpt}^FI51T~Hwlrral~|f8 z!De4u9Bs2h&Uwdce9W@!P;FBDHc298<6c~rX6IjAmS*c8T2V3Z6AHZK}Fw>kC$@41_lbSW6~nxk_Q1=E#f zCD^AdBENyof{>0BB_*O^Xig3X(q&cz}7&u)g&4DxT@6pi9vxXjV~`*p`+nU`Oq z6q4BHrCR64cJ^29ba#t8ZXkLmH69^?c}q8rEA#Ge3|F0iZ{E*#p0{B3WLQJ6dHvgY z*#lEw&8z0lhn?&l?o)xx6ez7EVyt;_-T6F#<}7MRmdv~F&d;#UzAl@$?4vAeXJDHb z`<*u}+wJO34`g?75APQkbYQ^ivdobIQ7I`hb2tI}CJd{38(lT$Bsia9h!zDmr!~a& z59Xi<=YpWU*Y9J@VHM6D9iSYUB+em`IXuI82iPC2br-vryIYsP7s%;~|EMm?oY5iU z!~+8ZQUWB2U4)(Xg|KgS{e{gSUIe{aP&^BD1K&FhSn&A)44>`-H zepN80mu_m5f;sWV`5|b3tA)_AeV?!V<|Lh{Dr04TfR`Bf`;E$Gt(tR$qD(MblR1$n zieNIp=5!?I?~d(`4rCemniH0sM-%LAdjffclL2!`lyf@ptDN@lyITW&QryL7?782) zX#IQcJU4&gdv1jcpWL2ub2?Au{XJgXb9tS{%UTJKlbw z!h6(!uMXSpnvdOE0(q(H+{HpNFe*881hjCmJKC-Nah;nBdP%126DDYS_zt)lo|C;& z1H}+0YVcWLL{rAe~KK|RTA zlT~X@+IKEPyGs7YJ|ucN(7V$PcanRYDhMmt9Ov&mPxbC@+JgD0fP?QTx>G-7;>riy zDOlE!=0Zhon5K*5Pa(*S`9^~CtaNQcku|f;ptEL12ZkAmnU6li){OZi#qX~f^YM%L znlT^Qh_4y*@eZz{{mYs$Uj=denqkeFkBdYNWLRP5Qz!eYuyHfA05cbrc;8I#AFHQ)1b?x3DY#nRfFF9TtBs$QC-b|e<-GH$RjJe3}U;C=?|PcT_P z^93d62aFWef&_CkpMMflvny}}b%yX44V5SzW5Ith@Qu{kkDc~7=H&#p=V|VyQ@#&$ zFuH9%jOBb6BTe(!EoYB~^-HfAna_MVd)ReLL73Gyvvm0`PO{w@?)mO6rxS8pk+Wy} zp92Lc?gMHbz`~hNl{xRmtOl76rR}E&p`^?=*P>?VY)0mjZc#HHO5~~%%}$g=s8i-c zbvVKgnj?cKvSdD!=UfO4*(&ykM$QQgj~YO$AqUaT7xn3b6T9rgIiGPMQ=mH6P)0{H954^A*o1Y}S$aDyS2yiy8G8 zOh4Ms$Et@srC_xA%yOKR%vYSF+QWgsHeZZ(KIPOxs+UAo&)1@6C$v|skq1hW-6sP> zjh32kY{!Y6ZQgt&+_}25{f)bL-}bdz_hBBrWzTl^sqOBjE3wG`fK#`|={kS=_FMeM zW3Q>PCx;LrKIM&wKd9cjSdc(Z$QImLkeD%O*4w(K)Z?3u2i z#fE*g0b`}W3A>|;&9f_ZJ};X{v_PGI8o*x|@MGRIhWRHg)MdlN8{H|9NPh$Ni4c2| z0YC38E)hK2fc-Tmf{!)e*yc(hoob?Dh16=mu|m4hfcGn;PfcvBkV41mlEn*&Eq9oS zjO_#_8L;1KS&%sfyxK-%mf;>-)Di=J+p^c`H5JYzml^nbNmyBOcLijXmCfZ@6Z7`~ zPU_!&1tu=inyLJ$IIW34K6BKg1`^9Q;H?-ucE$3OUVGx>$T}1EZI0~@axa%&i%+K< z%<6DUXvTa;CN?a^UW4tIg31&sm253#WK=If705SmZxBNw6AUz#$UFm<8uB06tTpi1 z=LDA;aO`t}`waM>96=Oq$L#hegKeQc6y1CC2Vo_3nJ=h&tXvGnlaa|7OQyBJiV^EscL zil{+%&>C;R7x6K(JT4>0GY$BB&W1hkLIeH=HgUXXXjqOvny6U%mm6>_{aXw;mi~4F zj-}5+e`=!qLKEDrQWxuc8d9$x%Q0YIF}ge2LwytW;2|q+k+LF_XQ~~NQZyiOmt)1h$<*hj8rygdF96+=yhwbh zhv9w3`o>!9hctWDSg4Zbp=v*25t6VJc_>9;0e7)Q$s%UkV-W-ZVw7ZF-r(rHbwwbT zmlw4av#7ifG|NG;q|tsss~D_q`RZ1n zZbOg>>ScJ$c2AU};RFbDe|nC*3g--p%!yFUl*!REqSX2K=uyM;-)J$q((_ora%>aC z)+=nKYsA(u6lHN`v)U;cnZw<*5o-0Qya7G2i%MUx3vA>_rMII*@B?}Z$lFb)pksQD z={KM!^|2=^tf{%5t`((4i)stYO4wEgMbx(4QBj!xL%BsNu=B3E20JAiWk2eE>pQ=& zZF4YcGLse1Sh=XWu40rFkquy!ltvXM9U@OEWA|BD!5zT#ivt3c?+rIxM_kVAF#hMC_!X;Y8bTs_QP0fdML#s8p z1lC~A_&J45d&F}W~OGWYPq3rk9@$UN@XggA|r8#PGl(f^!cid8MEX{sE9-To_@ zVJToQRNa}*OWPCG_n|$D>iB{j5t#uQdL5rK$6jype@3Dc*gvUSA6!^Gqa+erol_!8 z+GKSa?C{X|J>Tdy3;ZF;zpp`d+=mY?TBgXNdx?}aE^g{Q$awOMhn<8(v6~Q20p3<% zkH!#og>z#pHbh%>_1Gj`zZ?f2ia6tBoi`k|8*K^W3GXd}!deb#REd6X!;Kk(iQd!h ztE}S(6~n+;aNjM2)jKj{09aMy_6g;p0?o6MwIwKnstER8%)%n&M9g zelL+Bjg)&Kdt(vw|6W;PKsdAH2ra9;A(2ST>ppq;F+ub;GiC57FSHr2s%XY!HM8K07!kZ);mu4r-QXJ^5x(-FXB?45$2VJidnK~8r5c?tth9Lp zOgB8~z%1Q{wY~K$AlMf3$v0(GPxs$7O*7XT8u|B~k92mbk1N3&GUd&AP0jvnZfK;C zaWKO56_LiWy2X|9P9EM|A{-WbVr5lXOHH$itB^?5bz*9Z84&F_O9MR~uIt8hM*cKN z<`S4nP*gDRm^n8WO_fP`;j(`>e*qdNJ%tk+X3jwdGJuSTSuE4jJC2e2>B&St&LiR{ z(->%Cny3|g5NBi6jS)zljxuJ-_^vwn>vg13un)X%r@2-HWD+qLaiFVx4m*! z#+S7I+xfJb-o^~Mes3@Pzije?X*~y^1A20@KgO!Zw1DqYE?DSQIGdcz9RADY5!2c* z<^H!zCDJLf@14ws6*FOoZhdjGIH#f4daM;au2^2W!?6@j?`Q5=GL4;w8Y#0R|6=((&H%~KS<#h| z5giekRnjBa4i*pX=zTpg3-T?~VKD_YkHXpQ8hgBEFgNd&7+2_I%%SdB6X5 z?z!jQ8(U>oWi^=}^r?ID=3UM`=YRgo@BjP5lAa-Bk!)hjHSE;2ONB>$e;L2xu2$k_ z>QJER1+Xvc(~i4ji!+|}!?rVgiz*reQ3V-6mONyvNxSiHrhd4HK15H%#PR_sS89kC zI8$0y$+#DXh=r)-Z2&pJkYUwA9lnA}mGs@}1(8FCoeFI-F0iNvxm__A_Qy&$+#*q* zrbiUTS@>|QB-aJrA{AgcU7bYZD?!!8x8{kQX>?z!HFuP(aox?6Hu-7N%RTAZ7$hp8 znVP8Ncg%~XB?DW$e}-~b^h!^G*rq@M?PB@kk6>Wwpw17nN{Y0O&YGD9mIVYQD^;=s z2VBH-^&K(_%yZ&B=1F=?*hYN{cZwJp64;q={=((Jp1VnWG;5wq=l4W1PwEo$kr<@WN+jvHaQoT=P{|tK*xxw*~)%V`lc1qA7YdHDthW;zcTB? zCMPoD)vYpp1!tHNbJ$YshW7iV0&SoIvp*-6U=)RiCEAAZ8h7Q zJ?Jepm}dSwoQB6L$q*EApdCKDa;;RH!}7%*Qoq!JRk_hGPVxGrI9A43wJ3T~s&2JJ zl6#YVR$ZH3JOMi^9GJ@x{}(GngF+Ax{9S6_=T#(Oec7wM%LXykYQ9a5tpjRgk-Q1e zbP*4#o+lrk+e)Cu4BaJw%s}uAp``VQ!t@xSp3Do|h3FFFs<_yn43$DkGpi!GL%W|z zbLEYXWj@Q}qd%-Bj zC25yq1ATliH2uYJ&(@vLS$L)b(*+lGYjC*NAGPUdN#c}ObI8bbcv5`waD03I`fVP$ zTzBCJW11~WAa((xfP^6F1H=`AdCc`x;;1wJCaEKOcq@+7;4`h);hKqv#j6Kr0GvTA z`0$s3b8rTpr&P=@c0xK2WI}3&(85M3A%GVft-^)+WlR-a(aERHH%Q5)2!YLkBH)M$ z#4d$5fvam~+QRdBuMSTp`z{O7QCQ+DX-Ueu$M z9U-xAan5KA8;V`_=kMQOAD`NNQ0a#QARomEKlH7*`&%&aG`%r{z(iTm) zZUv|@Bq*rniwMZwVC%xMVt1XW;lY7FOrmJ7n;Zo)|%ia zgI7zvXyfj@gi3+QfXI4_uQ0&NiXA1j*YX4K%JBgbTMA}`h}a&qWbB3EJt~N}rqG)M z1tMXsokOC<%Rk@C;*^0&^rzw4L$-s2pUDpZPx}C0m~yNJBLWO%5vm^OImzlp5^ z=;d&9FEDdq)LGwjYkl`dB#JYns5wGe6`>BG9#1?*X%HY<*Q1#)dy;IlKd#`F`FUX`@K)j`0^M&V(+z6ZaAqZ{cFKw*jaxtqWheVTGi8<+z&r z)_yXAq+O67E}804*?`QQ}&A6CBlrPP0=7={WellTtQoI45-7 z!sE5Y_AHRLxJ^`r!VD^35o`)lm_WqA3^Q{WN_1vG_fB%kn$de4Q|`psdh7lbBIoAm z<86T1h6Pmkvk@bNp&(k&-@ao!H{hJ6-Iiyw=Y-@GAE2Bi(IVfQkm+#@JPtd&a|zxj zXH~tmoWO>?N8CtPL zU}^HeG-Ulqa?xove<)DED&=*L)zavLL^KKjqnrgqT@ve#36%A?RtM0zv3qqQ%wqzi z!hAzM#%iiI5AGoS3AO9g{p7&L#%3V~cgDC0M2&0(sBFG=j^!R4n=~ zZPH4h5Exz&u9E@iL!cpJNKL--dQ}wDz{3M2Y)6s;50i0usnJ!nw>Zn?9RM`Y!0zHO zpILFr{Y4utU?~1;QKbjt1Usr49TO;I038#NKuh&b)5g`xERtc$-keI0fWO$?k$0aN zHnkA5vwR7`OIy76c{2j2giXS7TaJ)jtJv6SPUGHRYi_wDq5VCj-WIZNoivV`p7rYK;xkBY%=k7r?UkW z8>JZs(47YaVxi9}%K$rNg7DvfB!t**(x}k@%W;?p@~A)%QKZqMn7S!D6NS)ARm8KH zAp^NmPDP~DUToSqkPf9wkgqqc_Zn#yjJ+-Sf+^c01;8=jUC749$PsG_A0FZN_Jms2 z-%bXBVg%e8MN5lw@>2lN zH2Vd_veUUBhp`!P4j>*HHG-lops3~hq?R)L2l2ur_mwf-sDr#oOb3!EL01?u(i8d( zvDny+GX9PUk`QcwS^4kDr=7-T7tCMQTEWoJqy#$*V+rrBzzb`B1XnHd?# zxYM1YfZ~Ee)Q(&?-Xc>io2QFgdJF<|d=|Ud*9OPv0wq<66bdnz#DHYDUVN{;knsp1 zWAZ{m7M~;k%>w;rQ9L>L*D3lJWwH}pNz2d+kpAP&$1ttKpj%^Khf-}>LQ*BkGG;b{ z8?fal;}%}^i(o|}rX>?X!G7to-$)Fk~F4^+MxfQ^1F` z^O+S4HJQUw=Ht4$ibIEJB7o$bl*)o54EXydU1Xhe!OxWLFP(|bEu1SA$kQO1!jpV$ zig6$x{~>Z(%SAfc*ip*(I1jBXSyqc{Jct zBkTTvGS>*@;1;DHEt1FlzLL}?RS_MmUZkvwV(g~hE=yYWF?k@A4@^tIff8w- zg^kVibuRM^>PZ1}gNZQBn6&GKs=OYeVpW$vKEZxEYdjaRtK3VIGA=W>67y|}afP`` zQo_6H@)kQm`{O&(84!gD$(umQLbJYP{)OY8QrTvsvg(Kw(`n zG8`@z>||bs#sPGp_GTilAM?tcf@P?wzdn{J zDSW0lU1nU(jyXc;T_CP3*=6UEM&QajMdohl6ktco{pn(+#)AhcpE}k-0%FPjNj$&T ziF70;tCh|)JuMd3Fg~m5)++5RD>3P+$-nJmB)K`2td$qS$VdW1Rq|CJwyNEBq{ZCj zJB&Nwn7S}lYmw#`O>4l0hAAV@N@6iGKoq^PeIU;xcsTW%f%c=;os`i2Bz_QR$^7 zF^MHI0WMYR9VW$XD+hQoybb~rxMQHtUD3{T%+V9=yohC-b{}9(z{-St2>*yyyCCZ5 z6$n`%Tfd}4AU`99K!gStb&kiEuV`8T_YB55=a0i^g8EP&hqO#S`MjS(h zBn8Q9yJ3v-Brj=O-@V@mrK#R-xLrIvtQNJGbzl(b#IHH-*nwa)%~ zGCKB~3*EjIRM{e+APuGaWf5G$z-jzB<@JSLP8bzRDr&Vi2y@eKBlPcQnT??^`1*oG z;L=tfctDV`fg#8W%!3hbLL&ydkr)`x)xysW5uW6BNXKGt+jsCV>J1RnxiePdaf&kw zFjN%onWE5+?9=!F*bEGXH&Hy_Nif(d!;>hkQ));t{szX$BDmU=MaJfStXS=hu$yGI z&PlnAbGXR7UI2+dW+nw4g#)M=+W}#mI#*fO)#dBG%Kn&p5P=S}XqDlqiG693V z&WOw%YM9T)OY*=dIW*4R0v^Rl4&MS0XHttt!h{OT49!5!Faer{WGUwpJNdRVS!I$d zMX1Xyx20rGj~#vv)f59u5qct0EqSO&McLacMgUd#Qw@AO^-F~E0|BuN9?vhyUnQmx zr$n$G#mHNwB`%WFZw@)4wRS72RAG|#94?GfYD$>7q;xzl&nE)5`o`M7MyvMj+6I4$K z|G-uytp|m)5KUYqx6nwisc}ObS1o2iqo(0E3z@}AS#jFu26dG1o)eoK6v=dZE{?_C zA?Eztpr8Ryh8z=Q23DUW;e)owX2&?Wc)U9c2Z@g+#V1RpNl%7^lq70R)sUEnaTy#2 zUWe;TF|)y8No;I@TL$qHgrw)YYbYIq|FRnyLMp(0j6l(x#D3rsyVn%6{A2Q*!}S!` z-Euasxqj2I!g1Hf?hOI5VRRj*$8EKnHJjG4s=K$rjztea#5Pz2gr24h=Z*RrO14>{ zO3naXhc^I;psiJM4xDdqGUg?@$JO^xZ({;M!XBYGUhzAf?ITDr>q9`G@0YpxyD>h$02+rct*iN-0fC? z3;~prcrQf#8CR1qeh}}evv#7>0^l!1TasgFc{>4-ogqFDRJJ0FRO zgWb%Omvr(P*OGIS5P~_%JamZi&o78BEh3@PTXAV=%E=zc%)+S#0oOT zk8)a58hn6#Ojp2_AP`u0Wi8e+3XpoA$SAn(m36-$m5$gK#JfV?X-d3&Lf)aaTc`r2 zL~=FiQPtF*TE6L(WAJYuDVV7#Vd5ixiiNVo?g6+;!TRW1Ch2QuWQrq?djL8~_uteC zd_vR#q|#wjA)L|?YV`qmz3O%zcQ>^9Is=tB_R{PH_ST!#%cItOo2INXsWcUY2ZlIp z_jdjfcYdc}N3}LQR+L>P3fZ_z;OI2eE~gLfg(5}>MI_2fuXM0kOqAMY{IA*B&1%|{ zWE%IAI;2~Ra0#gPrP9%M8@18!<$<K$M>S2)IS@S1 z$os00Yc44JyW9Hm(-kP{BlQ3#7*4C_PN@6VDv@8Xx!13VlPA`VbzH}M4JZd#engj( z^fqXA$GDnt(qkdtau<8v&FSRX5D3gADjCRl0Jx}AprruTpG+EgP{ztS_<&mA zvnOxr*iboK|>8P*}vjYy-?Q?Z)41SJ)Wxhjkppujggi)NmJ5V`{2}YZ! zMd+!D!vcDFMs-ZKVA(rJdCp?JR_91RZrfUe?^z8aZK+dXP7Vb}A?O-lXgd-@9a*j#F?%k!AXV>(b2DC8z6 zjeKX7E_F;xxG=UF7dwC=^^M}hsm@n35T|r)z-dtog_zr+SmOmr^V9c{ALi2QkoL?HAvRsY}3WA~k1OsrhW?(=t!JYw3<-1r4-V#YYsp`x5F)E<#tCMARD9z$Z!lP&L7OA0urpZP#FS@0)k|8={vv+5DU zR>w>RQ2=V)9?Y(F3)zwa!%h57L{AqzyxFW?5DL*piJ;FxRCSq*v5iAFWD$sAa$+l| z$WE&CrpiuI9Jg;(+C{Hns)m=&iX4qo(3^8fLJk5HwE)o!d=&i?h=@1~Sd(AHNF!jX zq3@+MJI6D1SwLGGvIsKJlT20!UuHyn%rFW7)kIn6dKdn6OZ`0L7-4~e2xp;y!IM_E zuU6_V?k1NK=Ild&+@MEp%E0v>E0p{f*E&H=9XR^*#@*E`5jlJWpCLUiYZ&|qv@p~R zsAS7681Ud*K+K)oBjiLep%)`(2D*pF*V-V0aws@4^`=zucVAWNzTgi8cRO_DVvWPv zqspr)zsA*e;tFXKWYA6p8MGd}@X!?Y7_|}3)@#kmajxkLvo@k+7C=caU{(_l(Q^G?SPbHz`iDhmtiW{HZkrfv47sD+7|X?x}_)cGQiQqcsNZYEuC(=Qvn9OPL&PV zqo^dNsB6|o*>!t*w_}s8K`i4?gvkfZ^;;=KlmWrTDLacf=Hhlhx>E{xEG{Lo!}6!R zd>m0NN?9wB=MdFXq7uDPme?_^*&n$q^@38-8FrMdUSm+$iaRnQ0c@s{M8iU?>9=LRu3(%#(Y zFH)LYuOM{#Tn&;-qJmMTMjR1^&L)IE^UUDF!yYSf@9hHb>gE~>H+aACevPyv z7lkB4T$?92z^~ zO&+<~C^(392(oNCp5iUuQx^gqD1UF=+0FeJv3mtt0Dri9Mf!42%?dmafDkmZO}$3}-tC=!}jk)9ZjNy*P9N70vm9V)1@Ws}|JaoWYqO;Ep{I)*r?F zcs`D;yAuPpBcE0bVfJoIsf<%z4QplqYh=R?9rrTN!Kh_US3IM)E;394++>(VfCrA@ z;_}vkRaPuD#RcpL5yu`D2BpKG&>FlgEKyDvXGX3#O+oYOod-o3dSq{Lz54dzQ<=aF z4d@>b8_=S{-dJYIm<*SaHNL1{?~?y6arVx2?J3S7TK zYIA7zqVP|Ut>`ADkxAhdhB+9*bw2}Yn`x^_9zM{pkh1qg*taS~SWhGAP33H{fHm$H zK17Ndc$^Zxab9NF4kz-pG9)kH&MU09+e$u?!y(Pi^))hU>lM_$Asd#mpQAeY>vZr78c&U1X7wvnsmm%34XnAT7mi%X!*mGLz6gk zm9%;~NE@syBP$V_snmX`wt(ka1X|I-vzBV$Gh6afd(#4`bl- zk$F34GKOv5aC@RS07lu0^)58bp_O_qZbV+AjZ2ynU>DR^#8cU7+!JY|Bq$ZVI24$q zgx~~=A-R2er0dhPORLYO0#uX$YQqENNU z_2g8(lEN2|E?64-opDC>%cDMNc}St`)q4VVn<_LYn44kYLkh-!>lKLz93zu22@!v5 zNW58X_FI)6NL^!%IMabb{$o>Uu>Mt_#tUfD9c_%eSFfQQb)mmw9y8h*P-_7DSskg+ zT`KHLE)@}Hd#la~o}5(&G>mdJ01e1|8rVxuoLM+Be+I#@&DE$JMX%YqWiTSLoY#LZ!Jdt`D(; zB?=cAxMUx~5*+AmRk{~kJ@`GPb);$&GlWJ->@xuLkv|}6HV)BRxQ**5bDW1_S6V8y zMW{dx@|!su+sEUAGGy-OJ5LF>#wE7}EU-p?Q_`D43@WZepim`eFE8S0snVagKuM+A zy@D*xGbHvPR2C4bFM3M~;YE_P#R#!Nl7CU49pVn!z3*ox_eAkz6Y&u6#OlIj>wuzw z?Xp2C$i?dURfz^d6-*{<=*&u*Q(1&IieM-&A>RYhAZ+inM6KPStdK4#p={HO z!>ITbS);-%nU(O3ori-D@w}Ku^gNpjr@UT*X#&Z`PL%jBpxuXwL&WMe$vjf>kHnM4 zLU;fXW9)crQSw4iwM}5-st0AbdE>uUx8)U+aG;h*R!!`2U0&GoiN*n7nr@vkv27y| zK#;g|hkS_1zJs_hFjT|A9kQm~j+EXzV`LmgS6uReYPkDy!%kfXnn_whP#E`b)^g-RIvhjwx&V=0_ zmWI_T8llxaYVcbKRi40dU5QgW$fL4PFs(1Y`4z9- z|GEkDCiBw4Gn6%s&x7G%fMz!BNMuM3;Bjli#Bnb;#u)tFg@GkWnE1pK`QnF@6tW*pYcY@? z)%X7Mv8PxPojE622W8Gu*#qmC(k^?z&q~A=6l^013Qpv`HeQD`=9h}hdqJ?FC|fCB zAsg_0E0rcC3u3d>NnIv3cNFMeK-vfS^5(+)?=r=FgjZc={?30QA2bQ8t)NFKa2Ky=X1D2GLg~WexzzbJprz&{+<`M=* z96tq9R{V^!TMU|=zpF23R(U+R;>d`AZ=5=CXj+XOW!6cGwXt_n(Zz{$HdBn^%aheY zS~Ix&sY(TuDeNG0a=dv=!wL!FO6(~H%WSz`g1?=)TpRczuO@ z2!sn18Nj7<*doV>GcQK_GNT0;E`ZW8aNu{V=M{OKp>Ht?0?HgI)g36Y5%N~yDul-z z1ixsJs{p<=Bv16yl|IicM2kzMrG+zR3Q*M-0NNE$Cwe`C2=pr(%r>^% zuRjc6yElWdX~js6@&mmt((v$%Jx)3!PAmv=@lCFlFrDavkoft695NEJGm&IQVv|y` zDPmq)E~zjJ)CSD=0V?Y*-z3HJk5MP@rl4}u%6GN2pB*`{XUKBHa&BK})(ibD!dI)^ zlZ|a5MkSvdb1FK8?~B3QB6cODDJtb9oT-oxXVp~>M|e_L6a!83s(=&x=RP@@)bmab z_Z`5C0ZCw_p7Gm_DsQKAcOG8K#B5h(yu#^3(xX8DuW&1c;?y5z#?A9Wz=}9QyQCLC zLtq-hzS=ML`f2sdwpOTa?EB2#Tg&;IEB^{?@U40Pg&xtBYH%%bRi~u)39m#Hgq+60 z#O~KE2N+BWno`u0WhT~p7@3_SPRCQZHFpO10OLYZSODiyngRbskZ#0aJ3e}(cC5su zcX(|ary0Q05iR^K9{XURtK@=^;*4B!+vwJn^j;)Vn-Cn{+<>I1@u7HnELtvAX)(&CubPdI@K?i<-e(fCa6MYa&_0WVBJ$Rzosd~Y%8_@zylptRdHp%(1|MFc#-v zcaw47&5aTaqJF!zN>^ozXrS{6In9)+0+Ka(2)FVeQ=RQtT}OVxRp3b~m5!}c*C{oK z(+PmMb-r|no<@g^oCRV~LJk`RRWCQ|>kM3r2PpJOK$w{>M?RlD<#z<43z>PX0>H%U zz$7z0i%yTd0UTwgbxSukGcxi(EmdYGXxt==0>)&&jRk^|Z|fH;R5^k;a#3sn-4hBt zL!Ah=1Ab^0G9i4tfiwsy+k`b2037n8m?*A5X;4xHc{VC-aYB^(A|H*-R=sJ$CtNN0 zRXm`1@S|bLk82>!Rn4h7;ME|NQLt0j#JG15a149#fq`!}2z$KTpMmR&>!e7aqyd$u zeyLjT#C2iGD}q$QL?ETS$c|f-Xog?2VA1pxuI4a8EA~rx6*#NXlbP2D?L3Fg7hw|F zc{d80WgYL97$pHM?ul|ZO^3%eCEiO)f1L5nsJSo}twP9yX3i!sA&28K zr{N4lG3a$rGstq;+h9ldDzJ61lG70#^4}9C^c;ap&(MEPvR;Ohog0*E;>1W)oI}|- zK*noz#oZm*N@SVI*0F1$DlR+`2UOt1W^W23mK~n443#wY9nwPZWNU^uoG8{QYSiP{ z3>8D78qnlj6t1v6MRmjglApcc8!n`FU6rs)T=zhTOe9phCj&>2ftE*c{9;TvC*=>x zoy+Np2sm?)BQ{CP=2J!7M^CGM^Kcp_QcGYo7uluh{on67aU=vW838q8Snqb(s1mExEEw%D<8 zASXr*0XD`Q6tpq8#LHdGDB+BsQN$pk+X>r5birY`zlS9UlPI6FF(xOG;xv=7%#S1NU&4diW)s^TF?$BPC$wPmv}SQJOwMro@Gf7s z)qKWP)?%0>nU?a^GhBJqk{YTqZ9mPmnekGEu)6_{skaq=%d%yJ*fenv(L zmntbS5BWxOqe*!%oy*{NNrhHmFW|{bC0OhTk;7w$500ebmZKO+I%VUfBL*K09dQJb zch=QSFK9_33d&I=2dBWZaEKj>QetF4T}+)2k~mK*&>;t*xLkR$X*>%nMV9i!6H?Wr zc9*RKs+WOUKp3?qGgj4j@J7h+5hBl_SXi=`C1xRuD{Z?&IwEwI>w$?~Kk@P$J3!}T zvaeQPGG$=hiIj$-RHU2poXhsq4=7#l*?WOfgLs&^pt7ZiOa!iB616*KckbTp(|9j} zVIAsHXUvC;ZeUaonGHv$ISCVfGvojezakPrl40d2I$l15EVe*Sq=K*&O<9XG)-qNH zRcxnAVKtJTpbo}yr{4saB8VP15}nN3Kz3elvr0bjXceYPy(bfi%tQ3aFXi-cA8t+v zv?#5DE--=0Gt0q_MJ;X$C)qIPilj}RI9q9M92NQpU1>uYQ}E8mHrQZh!gx+Po9v}0 z_#!PD9!M{^q3C^0d*Z!ku|Yxm6-;GdtfnK4`gpd28be>0>9{gg%M|@QOaI|u=mPx< zz^_S!K&-KGG$7(Y04KBc=)WhTm6J=Q`D4hAEH5mTS00ScEi9d#N0wx?ejYN_q2T1^ z&Y&}k^$9^vIE8Htyej0@2qA|Vh`IxoyUPCUErOm@H@n1<%yr<|SDv2ESO};s!SQQs z0OJZC#89>&yZlPB$r(6`*~yU1SYeLUJ}ma}_yZsYu>MON^G9f>(OBQ?L0wD)PEtC7 zmjKx~g-~*d#$Q2FEOH>N0*-$SH~A(7Pee5q;N&XKBo46!LYjNJ$Th+Q(PAYPSpz|M z@I8;_2p&yCt+fi8HkQ!gz5Ev!8W)}Yx;5Kx+s6<`A!L9SvYP{#)F{boZ zf!!Y1j&;{j`Y>qP@DE??f~bR00%8oYR-SJ{s|8KAv#k*NcWxSUEIO z3ZBI%%^p@D$|y8yP#v)2;kOPaq}oef_{Y~%CnfYMqx~rp~!ILJSra;mOhnF2sxN8 zooX(|N`rdYI8_SYj`?q!$AslGQUu*x{QLI+|Zcz&|?Q z1nnD;YKv7^Q%Ly%pNk~Yzy;X{jYBM;2tY>(_pC3&*xw?e@`PTRfv+HV1>qVKS^hlk z>IvSWst-{IfDMpOUq;0&xF-0Xlq$~%I^~yXwDnQuocqxdwMTFmlx7b2(8>)!!8TBC zSY`l8RoQFw%1X|5j3973EfU&cZ0A~M`frlSiD^%T&`?F#uGc6 ztp?L-j1MXhxs;?OKkaCxlZDhREgp7X`HNu#M|daCS|l$hzHJuKPqb9;Z+16UlvP!% zE)S!U*e=-qoxt(u=w=}w)~I4$b7Kn}{9N>peKHZRnTr6nz@P4fQ!iRWr3f$NK%yZt zVrfPY7s6GHUrD?#DB6H{8im!mTrE)<+zaHi7vsPpqHb?T{3StyaP_jt z&1(cNcfbgA5=jH7_syP{c#?+hwrZ(36<0mL*4-*#b#O6=dZE*-S5X(FR~Jiz_O$|$ zId`kV<;1quCwtDuQE;xvNFei0BHp{)_r@d&uwBUSc@*&nR&h=&uS91` z_m|E@$4W=;J0UY^TqPEI{y>sNC|?Q5O%$3Wy&-eBa4fMjQh8vqKadB^Re2c^@<_e5 z4n%f5zwziC3fyB7gz}YzA~YgQgJA3l@(~2NBM*&N!>i|)&Xv#UdI&vOlfx2$!hks? z)lIj07eOnr0rmkDe`^p#0hMQ2t2nHH?)UCX2j^~|o85Q&+P>T2qrJPze{g#Pe&yBRAFVrtH;>UL|gkCueXRHFJ5Z1oSP6%MG*h4B#1S>z0gM}g> zxbDoTmsx;YzuIkf_zMcoNxnw>+`BnPI$!P=8%U`54P=w%j~L%p62$k989usIX|6 zyFnx4PzcFomFWtzge#+V@)Brl(smYJpspSM##hdF=-76fU?_tFLaZDWN+X zN%Sfi=z#GP55P2p?bkHFK&TCchtl}FOA$SP z0SZc|3&*j*F$cxLnv!BE-jYPw}-EmU=Qr9uINB4?aomd?1x+}(D>Z|P}bsFEB zR>gLImVJgY@emhh+qI}$*;uPbbVpQK(HHbi$zW?upA_ne8MU??S#BUB2j-;|37MM}g=85Sv4Ob68qm4z9`Z?9B0y)asdK^+(TiK0liMtp1L~qCdf@K> z<^W~qdZ*rX6{c9Gja0cZNG*ir0LVzU(4yQua1GS;VeI8}U%j&f;4-EQ(g_!!I4wtO z-S)-)`KZCLq{*BslUN)Fx!kC(5!PqK4+E2DfSbf2%b}Ky>jJ_T9i}1*nRE<~VjH}< z(b=>zrVccZ2O%Q?ESOw7VsaMl0WuvKQMnwO96;r{vNI`$2+KZtr3pyRZ8?z{>p(6J z-o{0()c*4!#x zy5!aG5~>h>j;JNK)%3|=*^R7&DyAh%Q3A^RdpHj5vvTowrZHsA^zy!S*B;j69O~y!pW zejHE?r+G}tYmg6&2g=vuIZz6UvWi@ww*V|$kG4?@pz?M0K1P94t>O7~$ENun36zdwPh}$4) z#Stj;kcqt7+^7IJ+t9VK-Ilbof2)@+6^nP>1>w`IQt2!h(442OC(zK0l;&~UKCYcZ z;u=#po*7S|($Y{wf)vj^qnip3j!0aEnx_&O9g$JujC_iOOiLkCvR zeFkNY+r8aMBYUqiB`PCQ9l=tG!hvFUg{rm1{NoU$lJaKB>EcZ9JoJeRQNIniYo8=G zA$-6Xfjj^Y;xm!W0}G2y1wtVgvblZYRYO{gmS5Q0vPavpZQn$)L2q*viXr(V^U~6E zvV>(VkUfK{?oC*KY~>^MQvQL=ONOaspReQ);nceV@ElV>IYdfp+!-SVN5m8;(?5$3l zGiX=82__DnFO6jYfQwb@<20q9U$gkJpaUuisB0NE0z6Rljjh5OC#fPC6m;as$B;iT zOGIaYvQsksD8-)Y$jDn4&l1=S4y^-eny8g<+rBBAa!J<17+JA^I2P_j@1Pz^WTA`9 zET5XhYvLErCW0G*m8tk0CN*|G|M5YnhCTit%;nOU{u;}CE z2hJ*<#JL7`d$PE5bB*g!ODD?@LHtoJJtO|8nx^cGySAi{$Y!P$(}l#D=QLPE>{+XT z(VJY%tbFNg5aK_RgyRn<=Snr2T_}(32Jz-8R?QZq=NeEx){Lw^;}Uf94-z~vdv_WJ zsaQb;602ggwy_CK9{@r5@b2OA7e~?Ir6&>y>|2?m_%aALmjEy=0IJYKUYO3je9>g8 z(YW7FW(=X@6~8P~gLn#5}&|Q3a#jT zPz^bhyn1873cRK}HQsG7^S~8IIYkd*FFrJrC>E;Fa0ZEUAYdZs8PU7-DqF(t#$!6J zTyJ8vh&(i9ORbezpW%DltBOiM>4W4DY!GKEacYV=&58ky2=MZr>9I{CLdF&91cT!T zK1hOGlouN%aMO!+#VgSDwrKC`e`<=1=VG;Hs z=Gw4`o!Q+JQW{`6CjDt1$&Ocfa9WFjwmW?g7tj>W|F-Z`iU4EVYfot$L21Ndpjc(P z%&syFPhy)4$AN+&&}so5MQYMBz8dPml3T()q&GLFOHHjwS#C-q zHP-1RSRTZ00NaG!ha7k%T2vuN)i?{}Qmx&JDpkz;39w$(QXtQKZ z$fbPmZJ48Nm|NoRTJ0j*QmufV=EMqfhZ6pkxoD4(Bk(A;r8N-Ik{?6xc#7@Cu13JR zV}gx^+S({>vEoX(4n(mh+upc3+QCj6RH9PG%BMV*U69uCEjQn+HCqUN#EP%vgk+pf zxLPT~#L|#3fw%2Tg+dO~1>;lcnqj#Wx>dP%mg_r_&W^GxR%EpdWfxmRT46`c0r#<4g(MW2s?MC{x4;+ZQ; z^G8e0?6~!Az37k%A?g-)cKr};g~{#uarXc(`LGK9LDt=9_<}H=0Wa9P3ZlnD-UXk0 zs{p?J44mxV`<(DWP#3M)5DrGJ$X>}KGJ_VKs9@UM5 z$_C!-cRFzIQ@*$~E$=a}QJtqbOc7L}qB#OVZ6SQ`xq{(?;pS7B7n#bO#y?U1Dgya2 zG3%*H9kI-(q##z}YwbMoGma~&1DQ@P9V0yy z*|m%D(y(RVD#}M06D~3~)8pj+>)a_Z>D1wnvQiBS{H8@4OauyVV!>~sUT3wv-tLO; z!PQp7H1JH5bm6Z-1`5Emv4OJOzthOU`)r1egw+OcpNaS{NTYQ8<~s3{065n`qvZ=k zPcjHx1X6`npkm>-1l%5^3&xuq%k$8DlgKo~I4HG%T^VeEC%r57M6Q<-qxf%?Q}KMg zxpux^;4(4$@C5h*Tm;0!>_|xrY|Na3GeGU}OO+v2%tY(UUmfW$_dDnsJ`mHY>w$hjENg{q>Wff0ICyKdU%u7B=T|xj+T536`&(VHkak(vn+>H z#5u4Nt`6OWLKr=Fq|RV933}wLFYt0vDg<6D&P2fEl{krS4q!iL&k}9mAjRGS{Dx>m zAxBgK&>Zn@8M`F+a~g-Uw|DXGVaYRS%Iv5xhUgPU2rY-X3!~%BrR{a^KfpDJFNk7>s+usfEoGV0*e{XSt z4P<;`m1If~k9dLTU19_AYPw@$&Sgx^X<4#qF*%5V1;e*=y19Ii1_+ewr@2xcybTqv zzPCEgaABYYVaX~VVEIf71#)r=kuJffwG=+g0|-l=0@3}k4!gSwWCmY=zawv$Wyc2y zufEZCd#eOh)2fR^Sh+s!;k)h%0e33h$O26ixU z)Pn|xFm%a8AFMRI1G3!VP)4#RFpA3y(eh%nd~dY843q>y&j^v~er9{7Dj#tm6dx?0 zkHS}r%#yW_A1h3*z-Dx8v(*9yhZO+;oID`u6cc!jD*;LZ zKK1JOBtLeR0+s>HWJo6wZX#W~2S+buHJ+(&c#J{*r<%S}hIztXunaOfT%PmW_c3%4 zUAGQ3eSU8ryqa`2DO{D}MktG&3gH;W={=O`-GMav8r3LQL0wWIVx}i@ zrz57q*Gx(e6jF;(A~hVe5^zDWP#t&5K=8pwOez_Q{t=hx#u_#xasA+mo~v-_G$Ne? z&L?~0 zZcfw0CB1@*C=-fX(8}PFq0Fy}Ei0^&gR7OP;9*8>9Q##9h712{glq=@MzS{Q(xPAy z!x-0usS8Qc3Cz|-Xjbs(iH31C(Cy_@3sjf&6qjy0RXT-_Mb*5^r{L?umvjFnm=(Jc z%NsRR0b#?oeCmN-hw?V?t9$V$bVTlU9Slp8g^rP1Htpzac}vK0CvvMJT}>r zLpmS{+w?_0Q_iUgpkQmG_91HvQa0wSAL<-m^uS5)sP!qUALIZRDSX741Q5g$fK&^n zI0JKv6Ozu4%s`Up2obx#tEo19;vD}5IS;)+E^ z@e7>;WWyO2jwX3YKk4IyFa8#9+YI{l(;K4HbI8bX;b8_>tPKJ zXHY)+u{haq;*Y-TDr8`%#QOrP_R7{q|CQBO-UoL6-YYkNn5evRq1!oM-|W3|2@bOE zD^D!>bc_iWd?GT%@|6Z;V7w;=hEsa+QFt9 zEF6M{CWzbe%rgx0E->wQf1nB(JME}V)Xed-DNj=wKuQ#XZUUel=#rWUL_Y%kMI4^1pp5M>x3LxZTH}9XUa{eL->@Y{a)uAJm{P% z>pf+RVUMn-+66&acs+_!v6}|&{vrk%(P3zH^F+Grg<#L!cjgRWl2w62Mx+2y0Q!)4 zGO*jmo68eOqbSah>%!GNlCXy_=C*HngWHVl8t-#uT^y6!?NK_-IcrK7TnG8MuGOmc z6V`(1ChK~V{YQwMOTJ4lYqS){PY7=(#niw|3{}?O4jAbzs;Yiv6{@`S?b6cH!V>Qr z6Iju6ar{$RQ=mu9vb@B&?q<7ee-H#MH440IZ{J9eZBAFiIP9^)jNm5~B^=pFP;)g! zB2{ODto}*APzJ?MJXvG8Hx1%~oV?F+qXf7BhtKPmI-qIUz^4U>s@_L&0R7Z~K`_88 z1RWXoC$A9ca!h<3wVG6_xxU&asP;sdMInKvx#vwj53v(dzmbN%KUTniy^8>FfDcci z%KV!t^45SFP8~~Wn^qC((Q7s?wiZz!IklC%wwp zP(o|~lqX=jgdk!i##&u5fJdIg-oa3AqsnqAdb$rG|5{(Q)LF+SpMsaM0xAH$++dbUF(|siO%#(_hrY(iOVf}m z@;qiLtqQ9VV;?Jie@F@PO^C}=V5FF5?QU-N&=)3W0)~m4qhNXhWIJiJNNpHcQz?cg zXygc9U~Efbw{R&2X4FDgLH$0cU?mGFrE-&z#_EmUoOZrI9J&HSMoAh~H@l#lT;FU# z@a=N9m$4z43Yxu+m|?6)a-(-qq|`~ zj#_iADd}yPTtg^^@V&T*Ouf|sxO}qxv^X7WxPHA2E%X6NM1)?AYI_q|gq)$(syqbZ z5#n&5GS0LFF$CDy;W8BuH#`KTV=GmP8+zT<^;*BtiG+Zk1Ec}}8e*ujLees^NO^PK zj>L>oxNknMy9~xI*3Vh5@H7}pIk-ab{}UKyKnO!in_N2GDzrACx52G;8PLoN180s` zrf9fHYl(1Do=KQ3X5q3KP}92@RHir1di2<&n)EFeb#8PNSLdXzjXi z38zx>Ztr$MXd5j60oS_i%?{wGNRlA3r34Vv=*y#;k6u-wP%O;df1r6OL{d$!Ao=*b8f=% zo|BT7putX#wHg(?_h5%z=M;Vv6dCFi6GLi24CZU+?oXsnvbG#`&-V%k*4JyzEh&%{ zI|YiN?;4XXU;hPAKk3*8A0s?&?agkr&bc&ajr)g4tCGW-uyhRHkgZu!B^Td+-q0@; zKiKY*9JEX6x-rB$k+Y#H?v;fE?*u+Xc_$XDaJXiu=w4!q^TuB1%DWd2+~u~Dn(eOW zB)Pn*l};~epmrjXN>SNS*!d>#6d6^QGer=5GhpcimxEtyScsErFKEKGXzjjoo#Z?;B%;g}RKq>>2L1NVD66q}KtquUm+azOT1f9Y{xiMKQ7M z9yK>^-hERr;q;?r0EQjHU0r4_RRY=ap6?aP3zs+bcgtXpft46%gbXotvAi;_*lHsA zCf1J34G7>eX{ssSsg;NjxM|XGT=`(Md_;9EffBE_i1}WOfbc@1=sDy=Dm7TgF`l~S z1x>-j2662%QXsmTWD7n(fUyjmfJc>AP%(HE7|ISyCCN04Ih$2`NJ}FRR-{#S$>7+< z-T-A{Fn>Vc86k&CtA*O?Ynu{&VEbwJzm7O)$qnRJ;KIuQGC~;gl`i11%8ZfatHnF> zC&sr+e`7e3su$ev$2GEMsSptTHPTueoLS8TU^O8CL#VVBUF7n%zV&4h6_+JqTv)fO z>8A@nk@#n8o)&UOn92_dkib;pawX3a)j4!B4~V(>mlJAsZ}9Z_XO-C{2Kq>$1KbSs zX~buR%17-+c^D)6B1oe-0Rv8wcIPq@d!Y3f;N!!PQb{zt3x{61n^oA7o0p>LQMFd~ zBTBZEZ-(qTZJ*^M8|cGawfOp^N5M7HQ=AzIq`k2D2x0T$Tv&K-@>L(pjPc{O&assa zFk<3UesAg*+nm~#BT8};$zx&Q97%Dsg3$Tp*cgw0!CZn8U4wD4H%CWudZIK97Ph9@ zWxyUOr;n2R1tKb9ecU|@pJ+ZVyA17gvARI=R~58geVtrRq~`#MKmu7JCS|&(pf*c@ zXhH?XA88JkCtU}sqF&D7BnGFvw$BqyrO2_h0#1tS#r~XBt{`ePA|i5Cwcz8FmM7l{ zNqwjBjDsRmw8m=nMg>LHBUE4^twOc9aX+u)q{BUdFl)uhxDIB$@8vhY;!1=M z_6~yhaUfFd6iP@SqeSov>>Ak9#7EG?9be=~CJ#qK$e2XwLS|s9wmOA_CzNE0(zg3; zq}ze?637t*i6UY;6OuCxB@v}l$n=~oSe<{sT!665u#EylN45iTI*@?O4|g>bjhQ$n zBU6_s`2ewijE2&MLIR{=;q6W++sCHY{;5alQJn?*v46twJBfOSBX6^>S-9#0dBB(+p*c+ zL}oqYR4K1$VPO;OC$)N)GEOUpY2_Ex7=habBtEoB5jGCNZo1R}x~BYshz7m@Z4?tiSxH2`JXs@wpq=eX ztP1JD=bP(9Dg(k-t)jwE!_MUbXGIMXy|h1#u^&To=2@VciDM4PaBa$Ry>91BGNU`K zc|FnJ*bge~fzV0M7S~*#gVXFhj~(}=*xLtXH9P%aN~qxA=Tjae3aF5IOH{U^sZ;EQ z7Aw~JxL)G@Rb+z^ycz`a{ciiR*q7`P9{*yDaLLCQ7wK(LngXn)juXOB4;#TH`z0+_ z8%L2iyri09+^exADCmfF_b&Iu4~z%5s>Bf4J4)pzmdOCZ;BrhDj8J?G`xV)`qtC|n zEm;1PW)M*bWVaPFQx-kiLHj3dC6Z|?bwMiKZpA8av(J7!b6LF4MX+`^m*=Hy3P4i2 z!{l&XGcYxsizgdI!e?P#5eQ%KboXic=+Y2oa@@zC6ltRDLBw+4Xw-sm8KyQP5;PeU zBpZjk<85cU-x-Z_-(fJEUf+5e-0=pTxyAkK)(Isd2`RQx3Bhldy8Q+dJ^BJb)A` zFDV;-xyc3U^$7woHi(dnTz+u;qihVZ5H$LA_BJC_k92BTL3rKzS{Jn3ECwnY{X;_Q z#w=7B6_!jhkNvXXm1z~ow>vXUITa_C&on14kX=l(jgVgkjtO~>oNoZto-2h6^lbx-A&~3LdqFb>}Bk|#q+msn}q4nXm;Uq1T_Z=(L2h#m6#KQ-!_4#yamHS>rLR- zF(QKUYj_Q!)+*LFMPW=uX54{@nF&ZGxVA!Z|A`gGK_iDzYI%wJo@E2H&a@7eO4W6& zg$c6eY?wzvQmDfN7@D+Xa?v^pf5q7+S1EUdaXTKeM>b-11C~L&na0wh4)P+G5(n8O8#9{Le*&4|i1 zH_Iuz$c>g#A!@J1C_Z&V6v-l-qhh)3R#f3~ZgIE_Ik9k0=-+_Jsf4MrNRcr5d}id2 z>uzwMG|N4kz-5uHpEOWYL0XVQpPH+5kfT*rt;BS(Vlx9zaDMuPms5_wZO=X!!9I|f zdsOQItcJO_4&T*TVoOGp*$P)XxsxB&oTAbeR~gIcOHST$Fj=6Xp2%Y&cp`CY5?!~H z%z|o!LKG;el^Xq%x)CEmnRPBerbs|h*+Uqy%E39YCUdk& zA$P>kl~WEyazy(`5aYAOt6z2C4|QcHj!h^hBEWHB?tATGOBh#OMa3H;o#k^AuwBLE{lDE&Zl)k3%;2S;7}CTGAigY zSGJ$P{DGB4EN|!Q>m5`(GLvtB_J&wN-iv#T8>&wO$vM!MCQ^`GVMq&!PAt`{XNk~p zvH^mEhZn+~1^4ZJ$Q-CPydKMuk52DgCPM(5P@{`%A$f|xW_0W}F>B2j!N?d|PJU%r zcJbH)OgP1s&A9V|YEUi#M3@3PK7f?fQ$U6QV#qm%QFNis46(TNp37?lmlykpl{d5n zv$ZJzW~peJaQ#zWHB!;EC2glJJqYrp1~dsoC<38Hk!lh71X z4qag8ds*PqgVVqbsnLYYBC+dqm&*2t53^pq4Ub4(fI(p2 z)^M6G@T9IHv+p8%HOAlSEa2cL>t#;$D(oRdSphfLY!#T(QXbJdbQaC@`EEa0-R&MJ~P)?NGpOf6RaLnz!4s;3!hu0wyIA^;Hm**Zop zmy5WtTv}T)O;qPP3nhYV(wB>+clq4$1^V2OB=P5Z0!2FFx}>6WQqJC1yICU-?WIPy zMJ@g(Gk#nZ%j6NXewApUfMMl4WB@^cmR4%kUhas?TuEl)$VFkCX4GDN2r27Ws2fU~ zJ7mAl@CwU3fvc0Mc|ylVAqUjGsUUIz2mBhc`?ioSN=J!Di`Rb)a33atG09{pA@s_? zK|D8Ek-R)e{%q8d&n1lQa<|ZzwjHHZq>>6&@WC|TDysxYqeLtm(3!1lAw3#aM(|bl zb4>+`74mQQl;%;W7v?0~2)Lz{w;6Y}u>_kX3FahSGHy3SK9bkgvY|cjY1;QjYmBNs zB_Lvlz06NI(sk1A*-InXOUx?75Pv19UV!mH`zppUiLfoNvb{uu>q)l^Gd(k*+P?)a zPVX97Y9a)iTiRIogij)aSm-p9j}W+gfU3RIMXBkpPRUWMEUn z|3&&ARqjR!lC?f+J)R(}%Ka&{80_BC!<(?e#R+|dqHbiEs^Fkpj0LZM&;l%FO!HEU zwv=Kq1jk^;CrN8icRM^&X9*NnIQ>Or_1jgERG2nfT5i-6 zOu_E#u*nldQ#|7zMqRU+;Uds<7Kh-lSB!7H2c*`XC}F5DBeE-Z`*! zo+5=Bb6R-0Ncuk^T?k?|V|D8~KSTd=?%gq>JV<+Jo@&x2zckO)B}-eJyyk0+=6PC} zWbT$q5Z4QAV672b54=iMsxP9uyhpjsi%W1>l>4&cl4{5w(r>TVSXOnSYA*syOBEhP z0E>vEnssbNjxw1Z#J6R&K@24gG7m_}VX>eVr)2$lSo(^l{#xd*y3R5zv=sI<@e+rw zgi>)b&7B9HEKE3Vj+f7%E;5ZHc(yb(hHbl}v zb87Auw*`M|VchJ<0Oa);L?JMPd_q&%{Gln-fJ=p!*=>K=>l{z65+cYBS)AfgLSCKK z11W27h_Gk1Z&q8neG@ zZ}SQ^FX(r?K6C z2vwI-7lix`h*M z2-h^2-q=Sp6`cZ3X&K%k5Wpq8MSO9|_NpLJQKk+#@A9T0>9fpj;sv;xgTh#_ zl9e7UPEm?Caa<}!4xL#zA@eBSvhK{F_u1)cwCs&#dxq9*bE8W9hgd(I)$Rp;+U1q` zl~S}gf8TQHm^|?KzHnYVS{MRVQ3@Byldl*6_xkzS?L^HmOZv@3F^t>-NjnRqW5z-8 zRrCo&Y6xKbBU(iegFJ#zS@PZRSO^D{A4Od+EGW}98z8L7%7&#ywmuSp(7?y<+xWTz z_iCA2)=KlbU@)Z z#8yJMipkb4D6qGUt6D+T_7cM z_;X>R$I=eb#V+Eu3gQD)dc9e_Ob9`)GJ%5c#U$>-_6Uy^K}qsP{MtsYzZ4SHRPJZ( zEA@Cv+ap2yIz6`bf*!AH`!;RguI-O#`=i?ainhP1?WeT;V{MndPM*iwmL6OC20ga+ z+w}My+TMJ#{Jph*r^nX5{84THJZS$>kF9;i zE983C-lWIYzD$p;E$Okf%X(~WMUSm*>#?0wokfE@2~9(g7#KDzD?WL1?>erUf1@qp#6v*e^lE))Alpke#z}} ze`}ws$JXxGV{4D;(v9%x6q;y|pjZV{0GKV{5-dkFEU$J^n>)|2SxGoR;fb`+^xcexbJS4%(m5 z;}2>3F>QZW+vm^9-&=c&9$UMj$JUOuw7uhi{Jph5d8Zs(`@iY2wNJiFe*YA0PiuQd+jj)*ujsM0f3L^Z9{YN^p0&Sv zw;WshIX$-a#fRnh*0%K6+PCSkweQnoYky3St^JH1Tl56q zNA>uaw!d(XJg>FCp~t_e?fen>{Sj>=ZC|hLBSHJW^w`?lj>_L#dqR&-YWt?3{SiI> zQEfjRw4c}GztZ;XF}eOZZQl^IKd;BuPMwhRt=-h)Ep6YW?Yp&o^GP}1+TYP*YoAe; z-#=5^S802Xw&#NOhxORn-_c`h-+xN3_n5Z79<=S#^81dq-yXCd(c_P5`$cEu{HJRB z5^Z0q?Tu&U_trk3$JV}Ij~~Q&ex3;0j)_%7hTlk8cYWty} z{ZD#q?ceJ0-)Z}qCHZ@6pSCQ=*1l1Xt^Hm-exJ5K612ak$JTyYkF8x?k?ULgkRDt6 z&3bI@uj;Y2Uv!`R{ZqAldC)HDv9;f)$JTyKkAGL&PX+DY>an$7bHCir+WmSwr|o^( z-mmS$LHh%G{Da#5l(rwx_CIL*xVC>4w9kLF+~3-o9$Wh!J$|pY|2k+trpMO)XFdL; zwto|}H#{Ksv-X@GTl=6Mzed}-whe9H9JH@~P_FlYwr|k(joN)n^HfVoRkFEU$J^n>)|FgEA)b`2WAlI|@*?Mg4i}cvqJN5W3ZBGX6JM`GvAJt=P z|3Hte{YyRmoVL$+ojlJowY@cHOL}}<+k3TL()M-QextT;3EKDT@nhQlWYB(AkF9;` zH_G!^dq9t^J+8;ruIRC~=k?gyEj_mOV|x6%+CDdu`&s*SdVI6CAY9}hYyV1*t$ph2 z<@eUk=&`l)dVECN`-AqadTj0Y>#?=Jq{koD_9c}9|GZS&&jszFRr$TOZ`WgMe?*V1 z{kR@m`w)S;;Z0$Ss*xDb^ zV{1RC$JYL`9$WiaJ+}6_b$OoWX?sV|9?@fKe_W5PeP%=c-r56td{Eo7+Md()vbK+C z`(4_8x3)i}?FY2|^`QMDJ+}6*^;n)_oc}(#@T9`Q8`6LAVGS?52!aQ?=u{$~_E{1sXK&n!Hi z+5e@5Uwv-Y`Ohjmp4tCph5lOB`8O8coZ0{E!uf}?&VNqfWIwC_%L`BY{;dA5DE!4w z?MwaQ$%U^h{C#HsR}~5$$U6VIg~gxF>VICL@S&{!n+p3f`@cH%EY$Jj!q?>VKR>7c z1v&jM%;|qoPXE4C|C7-3l)~r#IsC;l(Q!iolMS!z|IqZK{(FM{uhstV4*CzE|4D^- zeCU4ka~%JFQpR^_p`Wh*cyOJ|e17`-z7PFb&;L_={*8sV>wL5O{(J5JwxIu0+W(HA z|1Z!_&-1TejDO&Vo|}H2hYM2w|Iq%gly1CJ_VXOTFP>C*PT?sT^ET`GOZ>p;b@2dS zCp~W~eEwIY=6P59!*%g3e4X?>e?R(PjQ29HyUovpVhk@6vvg z?lwLj(tg`jU#!>pC+#sVB>Q&8urGs;m8GZGEqv|G}ro`KFcH`44=N^xJM^ z&vRM(Ey{6Juk#z)Z{89Uy9b^s*D>#>z3;O2n|IY#=6kf?yw3JK|3mxD+or~2;aOiS z*Eg@CUH=a4w`jw|`kZgnev4w*bN;&an{{OOeFpX$`i|xmy;-kwtM;4qeT(*=(SEbS z?K)FmQow9Z|J;Xuy1sdTOnkpn`^{Tr@Abl`%lYOdwC7*ee)A66eLtZ6rbXC1{IvF) zx9(1Tv==@@u5VtmL)yQo{TBVO`+ijWEh=IC&x1g`5yJ3!ft-I4`ssbm+j56qe@XjI zyR`RxoA#TPwaM$VQ26wh%5}{9_OSMU0uMmfH!sKU>GhwBeVzKv3p}g+k7&O|$?U!_ zdbXTz(K}mTN44L)BKE$2rv0Xs->%m`h>uS9J@R_#Fm<7({T9Wt@AX~U|6x75Fm8lP@a^~pS3Pto74Xmy^cja?RjSKf#~`c zJ+*7rwBNkYXY_gg1^VqA?c(P9^?b8Z?Y;gq=lnaM&(VD?nqlL)s{IyS-O`(U4?ZEC zZ(b;S{vXtSi(b4!&;JMQH!roF|1CGkbiNIH{d(Xve~SLB_x)?Vjzz&BU?w`3RRE# zEqd@q?0@w0Y3;Wt;*4|`Zp4N{=bKfAX~{pY(SD0A+V}bn^k+TiPwV++rQ3BrrTymZ zu=Ul!Kj^;Z_5Q5h_c8QmUH`Xp`ah-D`S9!I0wxE(Z=YP>ysj87{(1V>V*TFmyu#B0 z`S4uy)ALvq-`;mo`^{Tr{f}wCc{S}j{wzKaUB{wJcj|rrPW#QOx9@oLC33z+156|T zR_*`Id*lLddXlvN{iSlgdGYLde(39@-@K7`=zaeN{aNEVj}4lh^SAUwd;TBP{u>^U z3z!^O#Du5w&8ojuum7#uZ{9n*&Wm3z=bP8q!tHQ5IV-4{E=8Ga&Bx=Z)z9 zTFk2(bzVJ9``?HDtmpq3y^eWd?0J4y`^~#(!j`XAIAgG z`R0YO@%%ru-@Lk54*c_v+8@gQ2VW`IF*J}p&$ns6MMqETbv`yF=UY_R-uDJf0D2zt zw%WWsrv2viH2L;d+W#Y~a$$TX{y97?*9q;8j`o{(-LC)tXuqLiAU64DKfWJ5kD;Gz zzxzh?XML9qJ>SqLHh(^@{o#En%1+m}XcfdM|NN!)hx_TJ{n__@JNoH57R5WN*P-Y< z^@n=(O>@#8>g_+F{pP*4@A6-?-%w394$p-nfUY0z%Xe$Pd27$;^R%?zqDdw<{-yRC zO2zK`IqkRTk-5WOa!~GT(Hr~j_iF!BUoSVbefcM}-=a)rAI)Qfpy#(Jp7sAv?GN{_ z*WD%OTQtL-^N+RPP(wEVFMPe6Z|DxY{x502McvGP`8E85p2woOwqE{0`wc~c>A^p* zzFW?>=(1h^JGI}UcqKjm)enXMjbxt0W z>s! z-_S&VulIcpJ~Z9eqEPl;KcxLH)d^+u{QuSd&>s2XlX9K#{7Cz6z&=So_MDfr-%tc5 zH(p+r>lnK2>*UW0f1v#q4XJDYt*7LCLnYXJ_%rP{^u-JG{1;&%)B74K3Co0k&Z0kS z+}8AbL;2bG{Dk%!8V{eFe|}5*ElTx(_J3acE!t?$c_RceJ&&O-t-q%Ih90wVdz~{X=wBOKw)_*g;2R)CW zCTx68X}?9!Z9e>>_J{jjX<4pgXb}7E->LnE)-t>7aqTyB%xCra{~%|dD&Chpo`=y- z&ma0RHtv^xLtohUT6(qg8`}NFdfzu_zeRU%)&8H?enX|(I1oC6?)wY($cZ+dpV$7- z{`#s1<$Q}~|E^yD6X?&HC(nP4oNv*5ye9wrn)Vw?()RzoBt$UcH6awO-U~-hqC) zj-gRaKL51#8>*?JfAh{r&NsA+?VCqlpFN)6fquHap?hq8{+{-ScHift-pf$)wl1pLANsZ4)sXWIm158HlC|vnQe2s? zZ>Wi9>wCRd`wjhI*ZH^TC%=8@XZ{sE-_VWreg9bdL%pT-B)ZN`g-ajWr+1X*|JL)v zxY&!%%X1pq1luD2oYQ_o?Y~U>LHNk;W#}YZcR#27;lBJIwcoNUUZ~f3c2llnSsFGD zU$6a!hP8d_Jr8A%^G~3k#@Vtl-mlkx&IRc=l>HmD|1Rw}G_A>*_iMkQicahKf3hyu z3F9MQ-je=M|CvXB);z50`Gz{SdH8qQe?%2toBwa$$iB{FIsLzlej10+@Ave!^cy%IP1&ky4r?|?v~=LzGj->dzWO=9!sBk0e% z{+B!~*ZC?v(dJ1<`z-G8Hi+-B_q2BVtdcL6>O;7u%_J{l9Uu(aiob0|gcC(-J zMd+vZwJa`^d%vmuh8}!{KId2V`% zuKkA6wfVmZgO|pwpc|ddfj4QtWfj=<|10|K9C;%7@BgRg8_MsS^_OqGDAzZ%{cE-V zqnD)L(2TnL3V)&fhE}w3e(q&CKeWH5wBOKe&(`bTtNoUxW$*iA+8^#;w?87+H&nX4 z?*;9*tSXZa-=qD8N-pYsKaKvZ@%dXlKlC#{?+w}K&!V5cOL*Vc=A8dVJwLQxKFH@k zt6CTG0s2ldXrq= z(9@=0{f72iR^?-Q{+B)~=ZALI&uRaA@0An3TF-y%U+DASE*;0T|HImE*=-;R3_{}Hve9N-4 z`C0rXxsGK!nf|bV{;YYpmeciL#!I;Fq-{_oK1>xVj|{r}}VrQfniOrC$~JEh;y^7dZGwBNFiZ9KmV{aMfR zLwbIQ+xdI#H`Kme|6SiD_q8n2efpdqK)?N4ySVvfJwLS5U;o{5oe&4|E!uC{^Y*^) zM1R)x|Bap>+Oy~WrCi@o*tWl1*8Wi6c)#|CcHb@EBiAuB{z-kg1?>;EN8|MGY1eRX0!uKi8z4{;_xrTv!0Zr}Y6wcoPfR`fbAe2-k; zvVZLReoXs~Ex@kx&)RQU`IyH1v+!QIj%9@$(f&uZ|II1@{!sf*eXpEv*_%_^f9Lz8 z-?F^!(EiV9zhx)e^StC=$@!L*V*Q0`x8Lh;HX3(SQ9uV}rJ6nBBkH%J>N?es1Vd4+ z4T}5rDwxD;VDjw|@d#))P!6Nsuh;H4Fn8x%_DLvOhdNl5ZWpE4P$R8-8TD8}q#V^Y zTP+kYC2D;;0ufNNpEy-0c5lDft#nY)_Ks=?g=N96b*6Y{rwM}Vi%oD4GeZV(X6vtJ z9L*RmwI-c&C;{K@5{1@mF=DQZW|i;OtgJU5sSw9A*NJ2H5?qRoroA1kznBt!s`sSm^P}waUmL_#{!2a{{nPV85ErM zs|?y1x!eJ7LT48R0vojQ)s#R9q;*T(iYQ)N{xVG70kuQ2W|r|tX`M^rD7*rivFbX} zbnPcO;nBs#b78`g1cT`2z%izDb2-#tZb7FQI)@PG#nf6-nkZwDVf1nZ$$-MybHT#P ztMudvu;eLLkTbVZ_#gpCB_sw^knld-Qo3}>pihA{>3@piEZ4rJomQhdECysV3Y}2*+Rb|CZmjse! zM&*F$ciD0*$`NC{%W+*&*`P2rWh;(WFZb)c#nW4@);;$eec*xlBju=g$IKo3bz2Gc z!6Np-yp7P2yV2g@1e`JyGEpAN1FvuDFgn?flgA}TgjBbhC3%~L7R<5T&XrojHj8Q& zOSEI6HWya|>DEE}THmOG#}A~XZbD|PUal>YIRNyRr7;$8Fsw7BQ|Xl>+C{u#=VHxJ z*9Yb-i0ZtmfDI{bv;-ah{QU#@&@ZHE%qbhkMql%S`e*5uW6MB(o8 zsRh(+gE~w9gj!ny{pcxPu(pNmQGAa?@lDz_)nSQN>nOib=fQ`bje1nHh)G6hRgS3A zi?kN|Bs)&BLOZq)blmy>w|6Zua%E?^Nq__)NDxRwA`%v`AfS|7-EF(Q8$7OzyL&ut zx=k2Z%vE*u?e2=}HC5F;HmfYyumA~(MG#^WRwz+4uwq9dgcNqOhdo&aflwAvhVOr! zbMCqK+>1%^qquQ$pZ!QgTkz-vT|+-#FuVB2PKhvXVUIsLaSpM_n%A^VS~a z^)KYqjrevsb-T)-E0%6JPcllofr>zeK6ty2DBePUEt3ftNK z;4FV`%i!I~h$LS8^!qrCj<)Hjj$J}}YV8@J!}XiI%H9F_oh7N`VQ(1S`4YX1qC2Ey zLcVA5K2%rIG`dcF3F_{m@)~M%bO#yAiAj~4*SaPeA6}ev9LAugk zA}2K8j1tY~y}S>UlPjfiN?oC$kk3&xboc?t#hFwyzkcJ5x8B}=0EHpjY3xP}I-Qh! zEl|Dyxo`vyw50;#2{Q{9zyejLcXAW}gWQ*Op0~k(E-()|?P=#S)TF3yYDT(1Wn;<= z@lwTqOw>h{q&pod#@H&3RAalzL+bRQ^SX)dGxPJ?Z$y%LL=v}hxq_fOiUHxp6G?p zcT~s%&+50k1DQmdn(sTK2n9N`hoN58;kSTx) zz`ln<<(XAL0W!&ul9Z`-lYL`t@tS|NwZ(+1x*8!fc&=Zf1nEGM7kmnwl2%|DHN+Y; z%n1N=&5G-_QIHq4=Vw(gDLz0rQKEtsE7mduLv=MVP9A~fSXB%NBsSH3{SjywsQ7f5 zcb;Xve9-EHoN*75<|YCpzP^}VW?W_qzZRuP(0SBaub}h0R03oF5Z%8pzx32GMO#Ie zYOYR~qN-V|e}k6H{OoK3t9pBI)+2X;P}f2EZ-4#bVDl3Plx+tQ^6RKIhgksx35r(*`{Ew zIrP4aa;bIFWs3Cp*GqQwz;T%>lat-7z;;X}Rw;ajjh`)ti%Q`bxL|QbOuX>^ zg@Io!*9fbMc}x#H+YDI|)>&uzRW0{q>N;_i%sM>=!WBrbB#p`RpaY(O=@9_QeQ1W_ zq%krLyUigNLK71izEUk@RMkPvAf~9}$fqwly-5V9nA_ygV8WUrSCNQ`6Fi5$!8zz5 z1k#fR`SU3=$3Sd>)K(|60I`-)mJYMG^djl~(G|QmPTQSlSoy4PW4%F6{c_%cAE+P) z{%l~aj|JdtPxF=%8KTAk%D_$l3d7)OAO2wj4g`%XyLkRQgO}%IND#*KMRtAL>jL5k znzg6XHY)(axZy6URWsTB4}K_)i^hNnA;MDNv&aP2&*GHQkI9!OE7SLWsguYlu|K>5 z3eCPfQf{0rF=)LlxiAk{*_`oEX>&ZL%*w#e!T+$AS6+(D8)XhH2RW*?=LoJ(Bf= z-e0sMNc zFbbQu#jCy)xZF&E%her0Mv`$3#a-wnR>4LGm`538u!LO~NZJj37MyYB_z*)ruf|>@ z-xNg5vXRMFa}8!zxWWwz2n8Y4iAW})R+IR`vzFhsV8Gr!xxlQn7{|JVB;z<%K)$QjHe`~$84y4Ix-bx2=l!tHj&hjCQsY!0%F!r%z~(;vynDK8|iLm zIC@d#GzI^Ykp6ag9PkchO{=ILa^K6m1X%eLE2eB5Jk<(%20>IU0LqUD zP^LMCF?9S01@i`%rTi$^sYxRU zinC5-wbvok20+JSbq#>oA5NF8BOsy?u>VL|JJXvqK|2raK^ozKMZ2Qtj@Y%Rnr4Ey z1+;{$Q)Zkh3IP?wIW%rHvjZ_A5skJNVsAR&Z_m3`wqUmsOIVWU`189=mP7Wo5rA8! z`WaE2YB#3y(2t43$iQ?;6!o>9+s6>m`i4YQayRf;$CR;;$-)szBHZ{PUBAc<63PN^ zAELPvj@6Jyk7pXJN6Qk$7R96&w58iV+tO}DZbR9hn=cWNTz3L3zez&6~1~9!WIWk zM{k3(6#Zz#pczUG>7Lt8#*(s_8_FVTo0!ADUDfAcCdDFp_;4jU9+`ZPP6VWJ8pRU5 z1kn+#>V3ENSPWkNp}h{_ZK#g2rAJ^rT;gY*$w}ElZsl9BeF=>+Bq*b;Y ze1ItAD6n7yD6>n*OjASaPKT^!0Qc@0SONu>j4FgGu-|j*4$PF;Uy*TMpvhx|SDV5J z^^#B>A>>B-mSvC#cOtKMafb1ZvEpWLkev$*U-m9=1gyG?13b!^6e^`UC~WpaoNDLA|#QpDOiLNBTnx{e~7HTiwrJj!+zH8bn?l>`Ax$j zd(i^bl{OR|55?l>5G;i3ih^E+s`UB^oa_iep_%GoZWv&|m|$G3a2Jnfs5<7EFG)m} z4RkEfWT!#3_u&!)0$n1;JR(o8kTxqLBF|dWi<6N@4+hr4_bwp(xU@d$AwGj2Pm}S0FwrS8i9yH z!lF*}ybXpD7FP=>+UunAQM~>H9y64%4Ax3^<|vT05X_(z=2ENxDxefA=GsyQj_+{f zTuI!=TzH4pfeVQ+rm{-zMK(UBo|sALcSN)jq9ftu-no2+n3`@+*9qd4G!`;BQTz|I zer(!cS)nrnC!@eEV5VsHs#r~En>F!o2`bej6OW@(I;W^}*dH6(4N}vDs@L)=_TpL@ znVqtyj{#6~iad(#7`4a9+UG+#LjRa$G!u`erW8sw5>fzl3It9W38Pu%UDpEK%NC}e zne$tv9QPEN*4pbI2L_^G-gRdMb>5E(4*&pa}+ru%(Q$QYa?WID~%@+rTXy zcx(_bAt5w(H}P(+3oIv^$iT{_S}nlUk2SE+>pg%=sp<_{1noezce8axTWRh zAQCKX_KaOX@zLDAZw`kGG<1KA!SHsJ+**+&{`GvBg`-xaz2Dzzkh|)4+>N*r$a6r zJQ1r|c%ni$bf5LE`|w5LuP3CWA7=P(A5a;r{dM3-=mi=(fULuiML`rE8TSfmWjZJz zQWT^HbND!?SaHZdMRQf7xyLhL4mAp%u@(4bQHQDu0t3KlScxs8r7a!sr-P{oX-9fP zvmk569X3U~-gwnH%C~EwxMDVqDn>{ut1(yfo{Lfwu!5fT;N5$ zm#LF*6|vh3UQmsoa)JV0H8`t~;}TTN_jH-DlJSTVpObu+=0Z1tON&H*k&VXPfobfK z47NNj8i0XpItC7eP@DZeXg&k?UhLb5Z*z!m61+gA4U+|T5>WH5WDIY9&X)ipm)@ zWdJ3ZnD=l5W<`qrS>8c0D!4yTe$VcR(%OQ)Oka$0paM|#DeoT(aJHnpX(Y&oz%WAU zJlv+7wr)w-fu4FZz2=!-RtE7nx5-$+zu#Ay1 zQJhAg?u@S{l8&^n>k4;^SL!b?qRb_(8#UjD#6$uObouXwSJP~GF6E~%lqLU~K+0T1 zlL4c~dNy=!J%)*9^L4uycyd=;m__H|ppS9RSpwtq$xzs43F;g|8->@b76VG97pG+C z%*NGy-H5QtH30>Fa!#vi38?$7WKpaHy8)bQ!Gopph16vmK$5&L*G{w9K?YefOCso! z$|)kHEQySmiU1|EQ+Vc?h)0T+^9i!5OF~xSXoXqkBk_m zo2)N7YFa<0f(PNiHWwAwDQJ@D03=MO6u+GRBzjaGD0eepMYu9Lv$@S<3fuAcIv;mY zxsZA|pj;)_ibCj*_YsK1TPvnu-GKpK-!ZFD@=C8Q%174go_4a%0(1wTS7wjj=(BvT?g3 zY040-a70u-7@Xy>*qTwi=SFcdVDRVM`x;Vibh>-~KHPP~1&BqT589{Xq)%;I7ynlez%H0?vGuw@#hra9m^5ChutgXCb-ASDYCN8|Wxf=e1(o|9_@=CCSIE zCNE-?52Pl`a3KXCn%15bkmXyE2@FFg8Iv&12&JCD`!3G7j^uV{pEvP#w2CIbK zoR^>*%Ejg!r~x3Ps?^QvL7iq2Hv^)YYfJDPRbn=bGm+R9^o;7W0kY!VDnaqVe-&z8 zB$8MVB9BBdNaTWvkr0U14;(-KH>|n#-^o09xzq>+hhW5zT zcBR|oir0pw1_>QA-{Pdx$@+DBT)z(bKnvte>(^N>5%0noEV7blR5ZaZSa4Aa9MNn! zCRrCAwQLS@jxHf9jP8sj<7E>;r5MCmb!2nsF;L~4^*V)$#9|Wq+^DG+bbTk3e?z`R zb7_fGggOMArEQ166ziR6a;mBa5h0x&j#JCo1Y4n(8=vG^KFN1Fy}a#=PO*0H)I7&4 z_n(r^Ge-Ta2@>KW+@d!eXR-4Pfu-WOXAXH~{#_NL#%TuwqfIFV zmk;HuD83OaK6hU6p&&1|uJw_;u8PEzU4G$MMsSv}Ac0swa4G9s%HLv%)NgP=db8S` z^)e|=gWi-_X_AIFHi|iH6zrOaT8F^(x`PWSm{R_zm2yqgDYO6?r?DxdRSr4!D~0&M zDQdmmFo!C`SFs$*PPFi`z{$l#LnPxDf^L9&Q|v1v%4$7kC){Ir&oEgh;E;Y|)MbDWvqHNUm#gny~gK+F0d$Jo0k;#6_nlv3cP3_J2 z%{hLw2oeF*Yqw&(tnHMrMBd>h@(yPrjfk;_+AM0x&;H>XjWO^fBP~gJs6gD9- z(lAElb2C6sGE@=j$-*(I@${2ToS0a5jq0I)G z(mF;)=!<|{RYilP@~}kn+7^qW_G{u>?{VA21GC_pa-yj$e+bFEl+|^$ZYSYdW7N}w zQ>(Y|!pr912_V-NY9TKfU8-GhAy$nXvTSo97z4!I2|85v*_H)A+#>|}wW zxXaa)P;W}><`((l4MO4J3~t_bPc^gv!N8i{t@CdHmKORq#A96#74LTsU_3wv(RlA7 zL~s64?o?Q1)01Mwwi`*g7cPfK^`@KqY`TG0K?`;hGu;%H4Ky#$k6$Od1ZB#gusz9O zMNy0@TUHv~3XAy_EstWkr(*XeBil{06nF?rDk z>%(?BmhGkOArdJckG2|v;WTgj-h=%wBKMviT@0=or&rzH*%!NKTMas*j^ApWy%^wn zvYn3Q7x<7(y2C-?Aj5Ctyw|1%x;N@gw;CK{+rVz)Vu(ZJ2*>{nRX4^%iYVD?0_PstaA6XR9`zK#7Hkynkg z{PgMqXSN3yIlh;}?%;fA`|Z=yaei$_WZJfU^qcK!^R1Ws{2JQ-6#hP;*V)q@+kQT} zKAjtWeiH|u!k@K&synv56`qX!pN@{3I1bxSwY_bBD>^@J{}8|b@5dhx?fzfW9oz0{ z`=8P6r=#n=gX5papSAx;cWgV-hChpQ=-sXT=de$oFXQi%__OwJ=n1y{3^fcsasR!C z-#!kW|L7OxWZO=)tv$cp$F|S#`;UV5-_`cE{ZQM}W6*Qj^Xu1Je}WzAQ@h^t&&V&f z{l1=P_qX=;{(q|NALx0PpOqck9_fHl`(MRh-2N}{9rcNI(?9(R4)C!pwFy6ZIrr6{ zVJ~d|k+!$(_wB{Bg+AVvZT~82|82dYZS8sOhIVY*zm3{|r0s3{^(WR+wsv3p_V1$h z(+l~NbA=zt{HmnqSrSw*8*{pzZCs?Xv$6wZHs|{9@bxh#nxm|363VAL)d( z?YDp1?j+mz{{I%W|1@NjO`r2TL6+pcHx;A=RIUeWG<^sQUm@aS8- z+4?Yge`{~sAL6vI{nm%le(OVNZ|hW!{QKMSC(xL#W%s|O?LVjO-?bBUdn-Er6x!4M zZ%5x-``?Mar*r9J+s|ry`PTpcK<|I+m;HCNXYK6UUr)3@{TDgo{vQ=v6pyyHemBwn zZ$2*rcjp)EPO^>L-%qsv=nK;RzrIl4zNPKs{`<~}wExTZbOPyR?EbbrO5FeWA7!PC zX7nFjr+5ds(Rcq<+JChn$G?HiJ^b0cvw212!RC&fDgQtEA8G%`e;s~X9=~5owEy~_ P3&(lSUQ{m=9d7*}gCyTH From 05e347c133ce5a97e6d2c1f2f630c1a0cf62c920 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 3 Apr 2019 19:13:01 -0700 Subject: [PATCH 17/31] Updated --- Rover/GStreamer/server-wrapper.cpp | 1 - Rover/GStreamer/server.cpp | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Rover/GStreamer/server-wrapper.cpp b/Rover/GStreamer/server-wrapper.cpp index f2f7234..2a224e1 100644 --- a/Rover/GStreamer/server-wrapper.cpp +++ b/Rover/GStreamer/server-wrapper.cpp @@ -1,4 +1,3 @@ -#include "server.h" #include "server.cpp" int diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 9632e4e..6103b0f 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -1,3 +1,5 @@ +#include "server.h" + using namespace std; unordered_map*, const char*>> table; From d242ca50403f2e790f70af53e075a04ffa6f14a6 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 4 Apr 2019 02:24:38 +0000 Subject: [PATCH 18/31] object detection stuff --- Rover/zed_depth/.gitignore | 1 + Rover/zed_depth/build | 5 + Rover/zed_depth/ground.png | Bin 0 -> 20748 bytes Rover/zed_depth/run | 1 + Rover/zed_depth/save_depth.cpp | 98 +++++++++++++ Rover/zed_depth/zed_depth.cpp | 242 +++++++++++++++++++++++++++++++++ 6 files changed, 347 insertions(+) create mode 100644 Rover/zed_depth/.gitignore create mode 100755 Rover/zed_depth/build create mode 100644 Rover/zed_depth/ground.png create mode 100755 Rover/zed_depth/run create mode 100644 Rover/zed_depth/save_depth.cpp create mode 100644 Rover/zed_depth/zed_depth.cpp diff --git a/Rover/zed_depth/.gitignore b/Rover/zed_depth/.gitignore new file mode 100644 index 0000000..778879d --- /dev/null +++ b/Rover/zed_depth/.gitignore @@ -0,0 +1 @@ +zed_depth diff --git a/Rover/zed_depth/build b/Rover/zed_depth/build new file mode 100755 index 0000000..2bfab5d --- /dev/null +++ b/Rover/zed_depth/build @@ -0,0 +1,5 @@ + + +#g++ -ggdb -std=c++14 zed_depth.cpp -o zed_depth `pkg-config --cflags --libs opencv` -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so +g++ -O3 -std=c++14 zed_depth.cpp -o zed_depth `pkg-config --cflags --libs opencv gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd +#g++ -std=c++14 save_depth.cpp -o save_depth `pkg-config --cflags --libs opencv` -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so diff --git a/Rover/zed_depth/ground.png b/Rover/zed_depth/ground.png new file mode 100644 index 0000000000000000000000000000000000000000..0c34efbe24c4f924c478ce7d6571228dbecc331f GIT binary patch literal 20748 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 E0i(N0HUIzs literal 0 HcmV?d00001 diff --git a/Rover/zed_depth/run b/Rover/zed_depth/run new file mode 100755 index 0000000..af8223d --- /dev/null +++ b/Rover/zed_depth/run @@ -0,0 +1 @@ +./zed_depth \ No newline at end of file diff --git a/Rover/zed_depth/save_depth.cpp b/Rover/zed_depth/save_depth.cpp new file mode 100644 index 0000000..4601ebf --- /dev/null +++ b/Rover/zed_depth/save_depth.cpp @@ -0,0 +1,98 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +cv::Mat slMat2cvMat(const sl::Mat &input) +{ + // Mapping between MAT_TYPE and CV_TYPE + int cv_type = -1; + switch (input.getDataType()) + { + case sl::MAT_TYPE_32F_C1: cv_type = CV_32FC1; break; + case sl::MAT_TYPE_32F_C2: cv_type = CV_32FC2; break; + case sl::MAT_TYPE_32F_C3: cv_type = CV_32FC3; break; + case sl::MAT_TYPE_32F_C4: cv_type = CV_32FC4; break; + case sl::MAT_TYPE_8U_C1: cv_type = CV_8UC1; break; + case sl::MAT_TYPE_8U_C2: cv_type = CV_8UC2; break; + case sl::MAT_TYPE_8U_C3: cv_type = CV_8UC3; break; + case sl::MAT_TYPE_8U_C4: cv_type = CV_8UC4; break; + default: break; + } + + // Since cv::Mat data requires a uchar* pointer, we get the uchar1 pointer from sl::Mat (getPtr()) + // cv::Mat and sl::Mat will share a single memory structure + return cv::Mat(input.getHeight(), input.getWidth(), cv_type, input.getPtr(sl::MEM_CPU)); +} + +int main(void) +{ + sl::InitParameters init_params; + init_params.camera_resolution = sl::RESOLUTION_HD1080; + init_params.depth_mode = sl::DEPTH_MODE_QUALITY; + init_params.coordinate_units = sl::UNIT_METER; + + sl::Camera zed; + if(zed.open(init_params) != sl::SUCCESS) + { + std::cout << "Failed to open camera.\n"; + return(1); + } + + sl::RuntimeParameters runtime_params; + runtime_params.sensing_mode = sl::SENSING_MODE_STANDARD; + runtime_params.enable_point_cloud = false; + sl::Resolution image_size = zed.getResolution(); + int32_t new_width = image_size.width / 2; + int32_t new_height = image_size.height / 2; + + sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); + cv::Mat image_cv = slMat2cvMat(img_zed); + + sl::Mat depth_img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); + cv::Mat depth_img_cv = slMat2cvMat(depth_img_zed); + + sl::Mat sl_depth_f32; + cv::Mat cv_depth_f32; + + constexpr int num_pics = 10; + + if(zed.grab(runtime_params) == sl::SUCCESS) + { + zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); + zed.retrieveImage(depth_img_zed, sl::VIEW_DEPTH, sl::MEM_CPU, new_width, new_height); + zed.retrieveMeasure(sl_depth_f32, sl::MEASURE_DEPTH); + cv::Mat tmp = slMat2cvMat(sl_depth_f32); + cv_depth_f32 = tmp; + std::cout << "Frame 1" << std::endl; + } + else + { + std::cout << "Failed to grab frame" << std::endl; + } + for(int i = 0; i < num_pics - 1; i++) + { + if(zed.grab(runtime_params) == sl::SUCCESS) + { + zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); + zed.retrieveImage(depth_img_zed, sl::VIEW_DEPTH, sl::MEM_CPU, new_width, new_height); + zed.retrieveMeasure(sl_depth_f32, sl::MEASURE_DEPTH); + cv::Mat this_cv_depth_f32 = slMat2cvMat(sl_depth_f32); + cv_depth_f32 += this_cv_depth_f32; + std::cout << "Frame " << (i + 1) << std::endl; + } + else + { + std::cout << "Failed to grab frame.\n"; + } + cv::waitKey(100); + } + cv_depth_f32 /= num_pics; + imwrite("ground.png", cv_depth_f32); + zed.close(); + return(0); +} diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp new file mode 100644 index 0000000..e181c86 --- /dev/null +++ b/Rover/zed_depth/zed_depth.cpp @@ -0,0 +1,242 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "server.h" + +cv::Mat slMat2cvMat(const sl::Mat &input) +{ + // Mapping between MAT_TYPE and CV_TYPE + int cv_type = -1; + switch (input.getDataType()) + { + case sl::MAT_TYPE_32F_C1: cv_type = CV_32FC1; break; + case sl::MAT_TYPE_32F_C2: cv_type = CV_32FC2; break; + case sl::MAT_TYPE_32F_C3: cv_type = CV_32FC3; break; + case sl::MAT_TYPE_32F_C4: cv_type = CV_32FC4; break; + case sl::MAT_TYPE_8U_C1: cv_type = CV_8UC1; break; + case sl::MAT_TYPE_8U_C2: cv_type = CV_8UC2; break; + case sl::MAT_TYPE_8U_C3: cv_type = CV_8UC3; break; + case sl::MAT_TYPE_8U_C4: cv_type = CV_8UC4; break; + default: break; + } + + // Since cv::Mat data requires a uchar* pointer, we get the uchar1 pointer from sl::Mat (getPtr()) + // cv::Mat and sl::Mat will share a single memory structure + return cv::Mat(input.getHeight(), input.getWidth(), cv_type, input.getPtr(sl::MEM_CPU)); +} + +int main(void) +{ + sl::InitParameters init_params; + init_params.camera_resolution = sl::RESOLUTION_HD1080; + init_params.depth_mode = sl::DEPTH_MODE_QUALITY; + init_params.coordinate_units = sl::UNIT_METER; + + sl::Camera zed; + if(zed.open(init_params) != sl::SUCCESS) + { + std::cout << "Failed to open camera.\n"; + return(1); + } + + sl::RuntimeParameters runtime_params; + runtime_params.sensing_mode = sl::SENSING_MODE_STANDARD; + runtime_params.enable_point_cloud = false; + sl::Resolution image_size = zed.getResolution(); + int32_t new_width = image_size.width / 2; + int32_t new_height = image_size.height / 2; + + sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); + + // depth images + sl::Mat depth_img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); + cv::Mat depth_img_cv = slMat2cvMat(depth_img_zed); + + sl::Mat sl_depth_f32; + + char key = ' '; + for(char key = ' '; key != 'q'; key = cv::waitKey(10)) + { + if(zed.grab(runtime_params) == sl::SUCCESS) + { + // get depth map form zed + zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); + zed.retrieveImage(depth_img_zed, sl::VIEW_DEPTH, sl::MEM_CPU, new_width, new_height); + zed.retrieveMeasure(sl_depth_f32, sl::MEASURE_DEPTH); + + std::vector hierarchy; + cv::Mat edges, blur_kern; + std::vector > contours; + + cv::Mat img_cv = slMat2cvMat(img_zed); + +#define TIME std::chrono::duration(end - start).count() +#define NOW std::chrono::high_resolution_clock::now(); + auto start = NOW; + // blur image + cv::cvtColor(img_cv, img_cv, CV_8U, 3); + cv::Mat img_cv_blur(img_cv.size(), CV_8UC3); + cv::bilateralFilter(img_cv, img_cv_blur, 9, 150.0, 150.0, cv::BORDER_DEFAULT); + + // setup for contours for regular image + cv::resize(img_cv_blur, img_cv_blur, cv::Size(960, 540)); + cv::Canny(img_cv_blur, edges, 100, 200); + + auto end = NOW; + auto ms = TIME; + std::cout << "Preprocessing Time: " << ms << " ms\n"; + + start = NOW; + // make contours for watershed with 8-bit single-channel image + cv::findContours(edges, contours, hierarchy, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE); + if(hierarchy.empty()) + continue; + + // make contours to cv mat + cv::Mat contour_img(edges.size(), CV_32S); + cv::Mat contour_img_visible(edges.size(), CV_32S); + + // reset contours + contour_img = 0; + contour_img_visible = 0; + int idx = 0; + int comp_count = 0; + + for(; idx >= 0; idx = hierarchy[idx][0], comp_count++) + { + cv::drawContours(contour_img, + contours, + idx, + cv::Scalar::all(idx), + -1, + 8, + hierarchy, + 1); + + cv::drawContours(contour_img_visible, + contours, + idx, + cv::Scalar::all(INT_MAX), + -1, + 8, + hierarchy, + 1); + } + + // convert to cv mat + cv::Mat cv_depth_f32 = slMat2cvMat(sl_depth_f32); + cv::Mat depth_f32; + cv::resize(cv_depth_f32, depth_f32, cv::Size(960, 540)); + cv::Mat three_channel_img; + cv::cvtColor(img_cv_blur, three_channel_img, cv::COLOR_BGRA2BGR); + cv::imshow("contours", contour_img_visible); + + end = NOW; + ms = TIME; + std::cout << "Contours Time: " << ms << " ms\n"; + + start = NOW; + // watershed the image + cv::watershed(three_channel_img, contour_img); + cv::Mat wshed(contour_img.size(), CV_8UC3); + + end = NOW; + ms = TIME; + std::cout << "Watershed Time: " << ms << " ms\n"; + + start = NOW; + // for each segment in watershed image make color + cv::Mat temp, temp_f32; + std::vector colors(comp_count); + std::vector obstacle(comp_count); + std::vector > rects(comp_count); + for(int i = 0; i < comp_count; i++) + { + colors[i] = cv::Vec3b(0, rand() % 255, 0); + cv::inRange(contour_img, i, i, temp); + + // convert this mat to f32 + temp.convertTo(temp_f32, CV_32F, 1.0f / 255.0f); + + // size in pixels of segments to filter out + double dist; + cv::minMaxLoc(depth_f32.mul(temp_f32), nullptr, &dist); + float z = static_cast(dist); + + rects[i] = std::make_pair(cv::boundingRect(temp), z); + + int nonzero = cv::countNonZero(temp); + obstacle[i] = 5000 <= nonzero && nonzero <= 200000 + && rects[i].first.y + rects[i].first.height < contour_img.rows - 1 + && z != NAN + && z > 0 + && z <= 6.0; + } + end = NOW; + ms = TIME; + std::cout << "Obstacles Time: " << ms << " ms\n"; + + start = NOW; + // put color in segment + cv::Mat wshed_mask(contour_img.size(), CV_8UC3); + for(int i = 0; i < contour_img.rows; i++) + for(int j = 0; j < contour_img.cols; j++) + { + int index = contour_img.at(i, j); + if(index == -1) + wshed.at(i, j) = cv::Vec3b(255, 255, 255); + else if(index <= 0 || index > comp_count || !obstacle[index]) + wshed.at(i, j) = cv::Vec3b(0, 0, 0); + else + wshed.at(i, j) = colors[index]; + } + for(int i = 0; i < comp_count; i++) + { + constexpr int thickness = 6; + if(!obstacle[i]) + continue; + auto rect = rects[i].first; + cv::rectangle(wshed, rect, cv::Scalar(0, 0, 255), thickness); + std::ostringstream ss; + ss << rects[i].second << " meters"; + cv::putText(wshed, + ss.str(), + cv::Point(rect.x + thickness, rect.y + rect.height - thickness), + cv::FONT_HERSHEY_SIMPLEX, + 0.4, + cv::Scalar(0, 255, 0)); + + } + end = NOW; + ms = TIME; + std::cout << "Coloring Time: " << ms << " ms\n"; + std::cout << std::endl; + + cv::imshow("watershed", wshed); +#if 0 + cv::Mat three_channel; + cv::cvtColor(depth_img_cv, three_channel, cv::COLOR_BGRA2BGR); + cv::applyColorMap(three_channel, bgr, cv::COLORMAP_JET); + cv::imshow("Original", image_cv); + cv::imshow("Depth", depth_img_cv); + cv::imshow("Depth", bgr); + cv::imshow("Depth2", cv_depth_u8); + cv::imshow("Point Cloud", point_cloud_cv); + cv::imshow("Depth Measure", cv_depth_f32); +#endif + } + else + { + std::cout << "Failed to grab frame.\n"; + } + } + + zed.close(); + return(0); +} From cbc71262f68de21a7e31b34cf7ef0594063e0758 Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 3 Apr 2019 19:30:25 -0700 Subject: [PATCH 19/31] Cleaned up Rover folder --- .../GStreamerServerRewrite/ServerRewrite.sln | 25 --- .../ServerRewrite/App.config | 6 - .../ServerRewrite/PipelineFactory.cs | 121 -------------- .../ServerRewrite/Program.cs | 153 ------------------ .../ServerRewrite/Properties/AssemblyInfo.cs | 36 ----- .../ServerRewrite/ServerRewrite.csproj | 74 --------- .../ServerRewrite/StreamParameters.cs | 24 --- .../ServerRewrite/packages.config | 4 - Rover/{ => Map}/Makefile | 0 Rover/{ => Map}/Map.cpp | 0 Rover/{ => Map}/Map.h | 0 Rover/{ => Map}/TestMap.cpp | 0 Rover/README.md | 1 - 13 files changed, 444 deletions(-) delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite.sln delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/App.config delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/Program.cs delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs delete mode 100644 Rover/GStreamerServerRewrite/ServerRewrite/packages.config rename Rover/{ => Map}/Makefile (100%) rename Rover/{ => Map}/Map.cpp (100%) rename Rover/{ => Map}/Map.h (100%) rename Rover/{ => Map}/TestMap.cpp (100%) delete mode 100644 Rover/README.md diff --git a/Rover/GStreamerServerRewrite/ServerRewrite.sln b/Rover/GStreamerServerRewrite/ServerRewrite.sln deleted file mode 100644 index e9eebeb..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.271 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerRewrite", "ServerRewrite\ServerRewrite.csproj", "{80577C8B-6A59-47B4-93B9-9DF75F475A83}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80577C8B-6A59-47B4-93B9-9DF75F475A83}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A4449349-34A8-4DC6-A457-2C362C9CC589} - EndGlobalSection -EndGlobal diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/App.config b/Rover/GStreamerServerRewrite/ServerRewrite/App.config deleted file mode 100644 index 731f6de..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs b/Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs deleted file mode 100644 index 50f9869..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite/PipelineFactory.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Gst; - -namespace ServerRewrite -{ - class PipelineFactory - { - private static readonly Dictionary StreamParameters = new Dictionary - { - { "RICOH THETA S", new StreamParameters(1280, 720, 0.5f, 5555) }, - { "ZED", new StreamParameters(3840, 1080, 0.25f, 5556) }, - { "USB 2.0 Camera", new StreamParameters(1280, 720, 0.25f, 5557) }, - { "Microsoft LifeCam Front", new StreamParameters(640, 480, 1.0f, 5558) }, - { "Microsoft LifeCam Rear", new StreamParameters(640, 480, 1.0f, 5559) }, - { "HD USB Camera", new StreamParameters(1920, 1080, 0.25f, 5560) } - }; - - // Windows: - // ksvideosrc device-index=GetWindowsDeviceIndex() ! - // "video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720" ! - // videoconvert ! - // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! - // openh264enc ! - // 'video/x-h264, stream-format=(string)byte-stream' ! - // h264parse ! - // rtph264pay ! - // udpsink host=192.168.0.5 port=5555 - public static Bin GetWindowsPipeline(Device dev, String destinationIp) - { - Element source = ElementFactory.Make("ksvideosrc"); - source["device-index"] = Devices.GetWindowsDeviceIndex(dev); - - Element encoder = ElementFactory.Make("openh264enc"); - return GetCommonPipeline(dev.DisplayName, destinationIp, source, "YUY2", encoder); - } - - // Linux: - // v4l2src device="/dev/video0" ! - // "video/x-raw, format=(string)I420, width=(int)1280, height=(int)720" ! - // omxh264enc ! - // 'video/x-h264, stream-format=(string)byte-stream' ! - // h264parse ! - // rtph264pay ! - // udpsink host=192.168.0.5 port=5555 - public static Bin GetLinuxPipeline(Device dev, String destinationIp) - { - Element source = ElementFactory.Make("v4l2src"); - source["device"] = dev.PathString; - Element encoder = ElementFactory.Make("omxh264enc"); - - return GetCommonPipeline(dev.Name, destinationIp, source, "I420", encoder); - } - - private static Bin GetCommonPipeline(String name, String destinationIp, Element source, String sourceType, Element encoder) - { - Pipeline pipeline = new Pipeline(); - - Element sourceCap = ElementFactory.Make("capsfilter"); - Element sourceCap2 = ElementFactory.Make("capsfilter"); - - Element videoConvert = ElementFactory.Make("videoconvert"); - - Element convertCap = ElementFactory.Make("capsfilter"); - Element encoderCap = ElementFactory.Make("capsfilter"); - Element rtpPay = ElementFactory.Make("rtph264pay"); - - Element parser = ElementFactory.Make("h264parse"); - Element sink = ElementFactory.Make("udpsink"); - - Element scale = ElementFactory.Make("videoscale"); - Element scaleCap = ElementFactory.Make("capsfilter"); - Element videoRate = ElementFactory.Make("videorate"); - Element videoCap = ElementFactory.Make("capsfilter"); - - if (sourceCap == null || videoConvert == null - || convertCap == null || encoderCap == null || rtpPay == null || parser == null - || sink == null || scale == null || scaleCap == null || videoRate == null - || videoRate == null || videoCap == null) - { - Console.WriteLine("Failed to create an element"); - } - - int scaledWidth = (int)(StreamParameters[name].Width * StreamParameters[name].Scale); - int scaledHeight = (int)(StreamParameters[name].Height * StreamParameters[name].Scale); - - sourceCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + StreamParameters[name].Width + ", height=(int)" + StreamParameters[name].Height); - - sourceCap2["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" + scaledWidth + ", height=(int)" + scaledHeight); - - convertCap["caps"] = Caps.FromString("video/x-raw, format=(string)I420, width=(int)" - + scaledWidth + ", height=(int)" + scaledHeight); - - encoderCap["caps"] = Caps.FromString("video/x-h264, stream-format=(string)byte-stream"); - - - scaleCap["caps"] = Caps.FromString("video/x-raw, format=(string)" + sourceType + ", width=(int)" - + scaledWidth + ", height=(int)" + scaledHeight); - - videoCap["caps"] = Caps.FromString("video/x-raw, framerate=10/1"); - - sink["host"] = destinationIp; - sink["port"] = StreamParameters[name].Port; - - pipeline.Add(source, sourceCap, videoRate, videoCap, scale, - scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink); - if (!Element.Link(source, sourceCap, videoRate, videoCap, scale, - scaleCap, sourceCap2, videoConvert, convertCap, encoder, encoderCap, parser, rtpPay, sink)) - { - Console.WriteLine("Failed to Link"); - } - - pipeline.SetState(State.Null); - - return pipeline; - } - } -} diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs b/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs deleted file mode 100644 index 4b4cd19..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite/Program.cs +++ /dev/null @@ -1,153 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Gst; - -namespace ServerRewrite -{ - class Program - { - static void Main(string[] args) - { - if (args.Length < 1) - { - Console.WriteLine("Usage: "); - return; - } - - DeviceMonitor devmon = InitializeGStreamer(args); - - if (devmon == null) - { - return; - } - - PlatformID os = GetOS(); - - Console.WriteLine("Serve Devices:"); - for (int i = 1; i - 1 < devmon.Devices.Length; i++) - { - Console.Write("[" + i + "] "); - Devices.DumpDevice(devmon.Devices[i-1]); - } - - String devicesToStart = Console.ReadLine(); - string[] deviceIndices = devicesToStart.Split(' '); - - for (int i = 0; i < deviceIndices.Length; i++) - { - System.Threading.Tasks.Task.Factory.StartNew(() => Devices.StartDevice(devmon.Devices[Convert.ToInt32(deviceIndices[i]) - 1], args[0], os)); - } - - // Keep the program open until killed by user - var loop = new GLib.MainLoop(); - loop.Run(); - } - - static PlatformID GetOS() - { - Console.WriteLine("Choose your OS: \n [1] Windows \n [2] Linux"); - - GET_OS: - int os = -1; - try - { - String input = Console.ReadLine(); - os = Convert.ToInt32(input); - if (os != 1 && os != 2) - { - Console.WriteLine("Choose your OS: \n [1] Windows \n [2] Linux"); - goto GET_OS; - } - } - catch - { - Console.WriteLine("Choose your OS: \n [1] Windows \n [2] Linux"); - goto GET_OS; - } - - return os == 1 ? PlatformID.Win32NT : PlatformID.Unix; - } - - private static DeviceMonitor InitializeGStreamer(string[] args) - { - Application.Init(ref args); - GtkSharp.GstreamerSharp.ObjectManager.Initialize(); - - var devmon = new DeviceMonitor(); - - // to show only cameras - var caps = new Caps("video/x-raw"); - var filtId = devmon.AddFilter("Video/Source", caps); - var bus = devmon.Bus; - bus.AddWatch(Devices.OnBusMessage); - if (!devmon.Start()) - { - Console.WriteLine("Device monitor cannot start"); - return null; - } - - return devmon; - } - } - - static class Devices - { - public static void StartDevice (Device d, String destinationIp, PlatformID id) - { - Pipeline pipeline = null; - - if (id == PlatformID.Unix) - { - pipeline = (Pipeline) PipelineFactory.GetLinuxPipeline(d, destinationIp); - } - else if (id == PlatformID.Win32NT) - { - pipeline = (Pipeline) PipelineFactory.GetWindowsPipeline(d, destinationIp); - } - - if (pipeline == null) - { - Console.WriteLine("Pipeline not created"); - return; - } - - StateChangeReturn ret = pipeline.SetState(State.Playing); - } - - public static void DumpDevice(Device d) - { - Console.WriteLine($"{d.DeviceClass} : {d.DisplayName} : {d.Name} : {GetWindowsDeviceIndex(d)} "); - } - - public static int GetWindowsDeviceIndex(Device d) - { - return Convert.ToInt32(d.Name.Substring(8)); - } - - public static bool OnBusMessage(Bus bus, Message message) - { - switch (message.Type) - { - case MessageType.DeviceAdded: - { - var dev = message.ParseDeviceAdded(); - Console.WriteLine("Device added: "); - DumpDevice(dev); - break; - } - case MessageType.DeviceRemoved: - { - var dev = message.ParseDeviceRemoved(); - Console.WriteLine("Device removed: "); - DumpDevice(dev); - break; - } - } - return true; - } - } -} diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs b/Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs deleted file mode 100644 index 197dbef..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ServerRewrite")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ServerRewrite")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("80577c8b-6a59-47b4-93b9-9df75f475a83")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj b/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj deleted file mode 100644 index 8d729f9..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite/ServerRewrite.csproj +++ /dev/null @@ -1,74 +0,0 @@ - - - - - Debug - AnyCPU - {80577C8B-6A59-47B4-93B9-9DF75F475A83} - Exe - ServerRewrite - ServerRewrite - v4.6.1 - 512 - true - true - - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\GstSharp.1.14.2\lib\net45\gio-sharp.dll - - - ..\packages\GstSharp.1.14.2\lib\net45\glib-sharp.dll - - - ..\packages\GstSharp.1.14.2\lib\net45\gstreamer-sharp.dll - - - - - - - - - - - - - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs b/Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs deleted file mode 100644 index 4040f5b..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite/StreamParameters.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ServerRewrite -{ - class StreamParameters - { - public int Width; - public int Height; - public int Port; - public float Scale; - - public StreamParameters(int Width, int Height, float Scale, int Port) - { - this.Width = Width; - this.Height = Height; - this.Port = Port; - this.Scale = Scale; - } - } -} diff --git a/Rover/GStreamerServerRewrite/ServerRewrite/packages.config b/Rover/GStreamerServerRewrite/ServerRewrite/packages.config deleted file mode 100644 index 8edeaa0..0000000 --- a/Rover/GStreamerServerRewrite/ServerRewrite/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Rover/Makefile b/Rover/Map/Makefile similarity index 100% rename from Rover/Makefile rename to Rover/Map/Makefile diff --git a/Rover/Map.cpp b/Rover/Map/Map.cpp similarity index 100% rename from Rover/Map.cpp rename to Rover/Map/Map.cpp diff --git a/Rover/Map.h b/Rover/Map/Map.h similarity index 100% rename from Rover/Map.h rename to Rover/Map/Map.h diff --git a/Rover/TestMap.cpp b/Rover/Map/TestMap.cpp similarity index 100% rename from Rover/TestMap.cpp rename to Rover/Map/TestMap.cpp diff --git a/Rover/README.md b/Rover/README.md deleted file mode 100644 index 7490f6c..0000000 --- a/Rover/README.md +++ /dev/null @@ -1 +0,0 @@ -# Default From 9290066f4d32e492252977157bc7b55ef03c39ef Mon Sep 17 00:00:00 2001 From: Nathan Wreggit Date: Wed, 3 Apr 2019 19:41:11 -0700 Subject: [PATCH 20/31] Pipeline --- Rover/zed_depth/zed_depth.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp index e181c86..492ea66 100644 --- a/Rover/zed_depth/zed_depth.cpp +++ b/Rover/zed_depth/zed_depth.cpp @@ -60,6 +60,9 @@ int main(void) sl::Mat sl_depth_f32; + cv::VideoWriter writer; + writer.open("appsrc ! intervideosink", CAP_GSTREAMER, 0, 10, Size(1144, 592), true); + char key = ' '; for(char key = ' '; key != 'q'; key = cv::waitKey(10)) { @@ -75,7 +78,7 @@ int main(void) std::vector > contours; cv::Mat img_cv = slMat2cvMat(img_zed); - + writer.write(img_cv); #define TIME std::chrono::duration(end - start).count() #define NOW std::chrono::high_resolution_clock::now(); auto start = NOW; From fd9bc9cd60343efce2927a4a7c2edc6d766494a2 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 4 Apr 2019 02:57:29 +0000 Subject: [PATCH 21/31] Memes --- Rover/zed_depth/zed_depth.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp index 492ea66..f3ffb03 100644 --- a/Rover/zed_depth/zed_depth.cpp +++ b/Rover/zed_depth/zed_depth.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include "server.h" @@ -61,7 +62,10 @@ int main(void) sl::Mat sl_depth_f32; cv::VideoWriter writer; - writer.open("appsrc ! intervideosink", CAP_GSTREAMER, 0, 10, Size(1144, 592), true); + writer.open("appsrc ! autovideoconvert ! intervideosink", cv::CAP_GSTREAMER, 0, 10, cv::Size(1144, 592), true); + + if(!writer.isOpened()) + printf("\033[7;31mFailed to Open Writer\n\033[0m"); char key = ' '; for(char key = ' '; key != 'q'; key = cv::waitKey(10)) From 2b9ca323b0cd2d6ccbb9b69fd85e71bd3712c187 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Fri, 5 Apr 2019 18:34:33 +0000 Subject: [PATCH 22/31] Fixed possible overflow bug, example of working pipeline, fixed other refactor bugs --- .gitignore | 4 +- Rover/GStreamer/device-scanner.cpp | 2 +- Rover/GStreamer/server.cpp | 15 ++++-- Rover/GStreamer/server.h | 7 --- Rover/zed_depth/build | 7 +-- Rover/zed_depth/videowriter_basic.cpp | 77 +++++++++++++++++++++++++++ Rover/zed_depth/zed_depth.cpp | 16 ++++-- 7 files changed, 109 insertions(+), 19 deletions(-) create mode 100644 Rover/zed_depth/videowriter_basic.cpp diff --git a/.gitignore b/.gitignore index a955754..687d221 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,6 @@ packages .vs/ *.csproj.user *.suo -*.pdb \ No newline at end of file +*.pdb + +*.o diff --git a/Rover/GStreamer/device-scanner.cpp b/Rover/GStreamer/device-scanner.cpp index 8a4dc9a..803c522 100644 --- a/Rover/GStreamer/device-scanner.cpp +++ b/Rover/GStreamer/device-scanner.cpp @@ -67,7 +67,7 @@ int main(int argc, char *argv[]) int mypid = fork(); if(mypid == 0) { - int ret = execl("./server", argv[0], name, path, NULL); + int ret = execl("./server-wrapper", argv[0], name, path, NULL); return ret; // Shouldn't reach this line } cur = g_list_next(cur); diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 6103b0f..18febb7 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -1,3 +1,10 @@ +#include +#include +#include +#include +#include +#include + #include "server.h" using namespace std; @@ -110,15 +117,15 @@ start_server (int argc, char *argv[]) /* get the mount points for this server, every server has a default object * that be used to map uri mount points to media factories */ GstRTSPMountPoints * mounts = gst_rtsp_server_get_mount_points (server); - char attachment[8]; + char attachment[32]; - for (int i = 0; i < (int) pipelines.size(); i++) + for (unsigned short i = 0; i < (int) pipelines.size(); i++) { GstRTSPMediaFactory * factory = gst_rtsp_media_factory_new (); gst_rtsp_media_factory_set_launch (factory, pipelines[i]); gst_rtsp_media_factory_set_shared (factory, TRUE); - - snprintf(attachment, 8, "/feed%d", i); + + snprintf(attachment, 10, "/feed%hu", i); gst_rtsp_mount_points_add_factory (mounts, attachment, factory); g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); } diff --git a/Rover/GStreamer/server.h b/Rover/GStreamer/server.h index 0c243c0..e2e480c 100644 --- a/Rover/GStreamer/server.h +++ b/Rover/GStreamer/server.h @@ -1,13 +1,6 @@ #ifndef SERVER_H_ /* Include guard */ #define SERVER_H_ -#include -#include -#include -#include -#include -#include - int start_server (int argc, char *argv[]); #endif // SERVER_H_ diff --git a/Rover/zed_depth/build b/Rover/zed_depth/build index 2bfab5d..ad66ab0 100755 --- a/Rover/zed_depth/build +++ b/Rover/zed_depth/build @@ -1,5 +1,6 @@ +g++ -O3 -c ../GStreamer/server.cpp `pkg-config --cflags gstreamer-1.0` -I../GStreamer -#g++ -ggdb -std=c++14 zed_depth.cpp -o zed_depth `pkg-config --cflags --libs opencv` -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -g++ -O3 -std=c++14 zed_depth.cpp -o zed_depth `pkg-config --cflags --libs opencv gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd -#g++ -std=c++14 save_depth.cpp -o save_depth `pkg-config --cflags --libs opencv` -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so +g++ -O3 -std=c++14 zed_depth.cpp server.o -o zed_depth `pkg-config --cflags --libs opencv4 gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd + +rm server.o diff --git a/Rover/zed_depth/videowriter_basic.cpp b/Rover/zed_depth/videowriter_basic.cpp new file mode 100644 index 0000000..1a8bf12 --- /dev/null +++ b/Rover/zed_depth/videowriter_basic.cpp @@ -0,0 +1,77 @@ +/** + @file videowriter_basic.cpp + @brief A very basic sample for using VideoWriter and VideoCapture + @author PkLab.net + @date Aug 24, 2016 +*/ + +#include +#include +#include +#include +#include +#include +#include "server.h" + +using namespace cv; +using namespace std; + +int main(int argc, char* argv[]) +{ + Mat src; + // use default camera as video source + VideoCapture cap("videotestsrc ! video/x-raw,width=1280,height=720,framerate=30/1 ! appsink sync=false"); + // check if we succeeded + if (!cap.isOpened()) { + cerr << "ERROR! Unable to open camera\n"; + return -1; + } + // get one frame from camera to know frame size and type + cap >> src; + // check if we succeeded + if (src.empty()) { + cerr << "ERROR! blank frame grabbed\n"; + return -1; + } + bool isColor = (src.type() == CV_8UC3); + + //--- INITIALIZE VIDEOWRITER + VideoWriter writer; + double fps = 30.0; // framerate of the created video stream + string filename = "appsrc ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink"; + writer.open(filename, cv::CAP_GSTREAMER, 0, fps, src.size(), isColor); + // check if we succeeded + if (!writer.isOpened()) { + cerr << "Could not open the output video file for write\n"; + return -1; + } + + const char * test[5]; + test[0] = argv[0]; + test[1] = "intervideosrc"; + test[2] = "."; + test[3] = "8888"; + test[4] = "intervideosrc ! autovideoconvert ! rtpvrawpay name=pay0 pt=96"; + + thread t1(start_server, 5, (char **) test); + + //--- GRAB AND WRITE LOOP + cout << "Writing videofile: " << filename << endl + << "Press any key to terminate" << endl; + for (;;) + { + // check if we succeeded + if (!cap.read(src)) { + cerr << "ERROR! blank frame grabbed\n"; + break; + } + // encode the frame into the videofile stream + writer.write(src); + // show live and wait for a key with timeout long enough to show images + //imshow("Live", src); + //if (waitKey(5) >= 0) + // break; + } + // the videofile will be closed and released automatically in VideoWriter destructor + return 0; +} diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp index f3ffb03..4015043 100644 --- a/Rover/zed_depth/zed_depth.cpp +++ b/Rover/zed_depth/zed_depth.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "server.h" cv::Mat slMat2cvMat(const sl::Mat &input) @@ -32,7 +33,7 @@ cv::Mat slMat2cvMat(const sl::Mat &input) return cv::Mat(input.getHeight(), input.getWidth(), cv_type, input.getPtr(sl::MEM_CPU)); } -int main(void) +int main(int argc, char * argv[]) { sl::InitParameters init_params; init_params.camera_resolution = sl::RESOLUTION_HD1080; @@ -62,8 +63,17 @@ int main(void) sl::Mat sl_depth_f32; cv::VideoWriter writer; - writer.open("appsrc ! autovideoconvert ! intervideosink", cv::CAP_GSTREAMER, 0, 10, cv::Size(1144, 592), true); + writer.open("appsrc ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink", 0, 10, cv::Size(1144, 592), true); + const char * args[5]; + args[0] = argv[0]; + args[1] = "intervideosrc"; + args[2] = "zed_depth"; + args[3] = "8888"; + args[4] = "intervideosrc ! autovideoconvert ! rtpvrawpay name=pay0 pt=96"; + std::thread t1(start_server, 5, (char **) args); + + if(!writer.isOpened()) printf("\033[7;31mFailed to Open Writer\n\033[0m"); @@ -82,7 +92,7 @@ int main(void) std::vector > contours; cv::Mat img_cv = slMat2cvMat(img_zed); - writer.write(img_cv); + writer << img_cv; #define TIME std::chrono::duration(end - start).count() #define NOW std::chrono::high_resolution_clock::now(); auto start = NOW; From 2a267d6f36a5cdb5c8d0bb511c687a9c050c1718 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Sat, 6 Apr 2019 19:42:38 +0000 Subject: [PATCH 23/31] Working zed camera stream --- Rover/GStreamer/server.cpp | 213 ++++++++++++++++++---------------- Rover/GStreamer/server.h | 9 ++ Rover/zed_depth/build | 7 +- Rover/zed_depth/zed_depth.cpp | 61 +++++++--- 4 files changed, 166 insertions(+), 124 deletions(-) diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 18febb7..e82852b 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -14,130 +14,137 @@ unordered_map*, const char*>> char * construct_pipeline(const char * devpath, const char * input_type, int width, int height, float scale) { - char * output = (char *) malloc(512); + char * output = (char *) malloc(512); - int scaled_width = width * scale; - int scaled_height = height * scale; + int scaled_width = width * scale; + int scaled_height = height * scale; - if (strcmp(input_type, "I420") != 0) - { - snprintf(output, 512, "intervideosrc ! video/x-raw, format=%s, width=%d, height=%d ! videoscale ! videoconvert ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", input_type, width, height, scaled_width, scaled_height); - } - else - { - snprintf(output, 512, "intervideosrc ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", width, height, scaled_width, scaled_height); - } + if (strcmp(input_type, "I420") != 0) + { + snprintf(output, 512, "intervideosrc ! video/x-raw, format=%s, width=%d, height=%d ! videoscale ! videoconvert ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", input_type, width, height, scaled_width, scaled_height); + } + else + { + snprintf(output, 512, "intervideosrc ! video/x-raw, format=I420, width=%d, height=%d ! videoscale ! video/x-raw, format=I420, width=%d, height=%d ! rtpvrawpay name=pay0 pt=96", width, height, scaled_width, scaled_height); + } - return output; + return output; } void setup_map() { - vector * zedlist = new vector; - zedlist->push_back(0.25f); - zedlist->push_back(0.1f); - vector * usb2list = new vector; - usb2list->push_back(0.25f); - usb2list->push_back(0.1f); - table["ZED"] = make_tuple("5556", 4416, 1242, zedlist, "YUY2"); - table["USB 2.0 Camera"] = make_tuple("5557", 1920, 1080, usb2list, "YUY2"); + vector * zedlist = new vector; + zedlist->push_back(0.25f); + zedlist->push_back(0.1f); + vector * usb2list = new vector; + usb2list->push_back(0.25f); + usb2list->push_back(0.1f); + table["ZED"] = make_tuple("5556", 4416, 1242, zedlist, "YUY2"); + table["USB 2.0 Camera"] = make_tuple("5557", 1920, 1080, usb2list, "YUY2"); } int start_server (int argc, char *argv[]) { - GMainLoop *loop; - GstRTSPServer *server; - const char * devname; - const char * devpath; - const char * port; - vector pipelines; - setup_map(); - gst_init(&argc, &argv); + GMainLoop *loop; + GstRTSPServer *server; + const char * devname; + const char * devpath; + const char * port; + vector pipelines; + setup_map(); + gst_init(&argc, &argv); - if (argc == 3) // Want to run a predefined camera which is at defined path - { - devname = argv[1]; - devpath = argv[2]; - if (table.count(devname) == 0) + if (argc == 3) // Want to run a predefined camera which is at defined path { - g_print("%s@%s > No pipeline found; provide pipeline argument\n", devname, devpath); - return -1; + devname = argv[1]; + devpath = argv[2]; + if (table.count(devname) == 0) + { + g_print("%s@%s > No pipeline found; provide pipeline argument\n", devname, devpath); + return -1; + } + else + { + string input = "v4l2src device="; + input += devpath; + input += " ! videorate ! video/x-raw, framerate=10/1 ! intervideosink"; + GstElement * inputpipe = gst_parse_launch(input.c_str(), NULL); + int ret = gst_element_set_state(inputpipe, GST_STATE_PLAYING); + + if (ret == GST_STATE_CHANGE_FAILURE) + { + exit(-1); + } + else + { + g_print("%s@%s > Opened camera successfully\n", devname, devpath); + } + + tuple*, const char*> item = table.at(devname); + for (int i = 0; i < (int) get<3>(item)->size(); i++) + { + pipelines.push_back(construct_pipeline(devpath, get<4>(item), get<1>(item), get<2>(item), (*(get<3>(item)))[i])); +#ifdef DEBUG + g_print("%s@%s > %s\n", devname, devpath, pipelines[i]); +#endif + } + + port = get<0>(item); + } + } + else if (argc == 5) // Likely from command line where everything is defined as an argument + { + devname = argv[1]; + devpath = argv[2]; + port = argv[3]; + pipelines.push_back(argv[4]); } else { - string input = "v4l2src device="; - input += devpath; - input += " ! videorate ! video/x-raw, framerate=10/1 ! intervideosink"; - GstElement * inputpipe = gst_parse_launch(input.c_str(), NULL); - int ret = gst_element_set_state(inputpipe, GST_STATE_PLAYING); - - if (ret == GST_STATE_CHANGE_FAILURE) - { - exit(-1); - } - else - { - g_print("%s@%s > Opened camera successfully\n", devname, devpath); - } - - tuple*, const char*> item = table.at(devname); - for (int i = 0; i < (int) get<3>(item)->size(); i++) - { - pipelines.push_back(construct_pipeline(devpath, get<4>(item), get<1>(item), get<2>(item), (*(get<3>(item)))[i])); - #ifdef DEBUG - g_print("%s@%s > %s\n", devname, devpath, pipelines[i]); - #endif - } - - port = get<0>(item); + g_print("Usage ./serve \n"); + return -1; + } + + loop = g_main_loop_new (NULL, FALSE); + + /* create a server instance */ + server = gst_rtsp_server_new (); + g_object_set (server, "service", port, NULL); + + /* get the mount points for this server, every server has a default object + * that be used to map uri mount points to media factories */ + GstRTSPMountPoints * mounts = gst_rtsp_server_get_mount_points (server); + char attachment[32]; + + for (unsigned short i = 0; i < (int) pipelines.size(); i++) + { + GstRTSPMediaFactory * factory = gst_rtsp_media_factory_new (); + gst_rtsp_media_factory_set_launch (factory, pipelines[i]); + gst_rtsp_media_factory_set_shared (factory, TRUE); + printf("%s\n", pipelines[i]); + snprintf(attachment, 10, "/feed%hu", i); + gst_rtsp_mount_points_add_factory (mounts, attachment, factory); + g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); } - } - else if (argc == 5) // Likely from command line where everything is defined as an argument - { - devname = argv[1]; - devpath = argv[2]; - port = argv[3]; - pipelines.push_back(argv[4]); - } - else - { - g_print("Usage ./serve \n"); - return -1; - } - - loop = g_main_loop_new (NULL, FALSE); - - /* create a server instance */ - server = gst_rtsp_server_new (); - g_object_set (server, "service", port, NULL); - - /* get the mount points for this server, every server has a default object - * that be used to map uri mount points to media factories */ - GstRTSPMountPoints * mounts = gst_rtsp_server_get_mount_points (server); - char attachment[32]; - - for (unsigned short i = 0; i < (int) pipelines.size(); i++) - { - GstRTSPMediaFactory * factory = gst_rtsp_media_factory_new (); - gst_rtsp_media_factory_set_launch (factory, pipelines[i]); - gst_rtsp_media_factory_set_shared (factory, TRUE); - - snprintf(attachment, 10, "/feed%hu", i); - gst_rtsp_mount_points_add_factory (mounts, attachment, factory); - g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); - } - /* don't need the ref to the mapper anymore */ - g_object_unref (mounts); + /* don't need the ref to the mapper anymore */ + g_object_unref (mounts); - /* attach the server to the default maincontext */ - gst_rtsp_server_attach (server, NULL); + /* attach the server to the default maincontext */ + gst_rtsp_server_attach (server, NULL); - /* start serving */ - g_main_loop_run (loop); - g_main_loop_unref(loop); - return 0; + /* start serving */ + g_main_loop_run (loop); + g_main_loop_unref(loop); + return 0; +} + +void *g_start_server(void *data) +{ + g_server_data *as_struct = reinterpret_cast(data); + start_server(as_struct->argc, const_cast(as_struct->argv)); + return nullptr; } diff --git a/Rover/GStreamer/server.h b/Rover/GStreamer/server.h index e2e480c..e126437 100644 --- a/Rover/GStreamer/server.h +++ b/Rover/GStreamer/server.h @@ -1,6 +1,15 @@ #ifndef SERVER_H_ /* Include guard */ #define SERVER_H_ +struct g_server_data +{ + int argc; + const char *argv[5]; + + g_server_data() : argc(5) {} +}; + int start_server (int argc, char *argv[]); +void *g_start_server(void *data); #endif // SERVER_H_ diff --git a/Rover/zed_depth/build b/Rover/zed_depth/build index ad66ab0..c490e07 100755 --- a/Rover/zed_depth/build +++ b/Rover/zed_depth/build @@ -1,6 +1,9 @@ -g++ -O3 -c ../GStreamer/server.cpp `pkg-config --cflags gstreamer-1.0` -I../GStreamer -g++ -O3 -std=c++14 zed_depth.cpp server.o -o zed_depth `pkg-config --cflags --libs opencv4 gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd +#g++ -O3 -c ../GStreamer/server.cpp `pkg-config --cflags gstreamer-1.0` -I../GStreamer +#g++ -O3 -std=c++14 zed_depth.cpp server.o -o zed_depth `pkg-config --cflags --libs opencv4 gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd + +g++ -ggdb -c ../GStreamer/server.cpp `pkg-config --cflags gstreamer-1.0` -I../GStreamer +g++ -ggdb -std=c++14 zed_depth.cpp server.o -o zed_depth `pkg-config --cflags --libs opencv4 gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd rm server.o diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp index 4015043..2bea139 100644 --- a/Rover/zed_depth/zed_depth.cpp +++ b/Rover/zed_depth/zed_depth.cpp @@ -10,6 +10,28 @@ #include #include #include "server.h" +#include + +cv::Mat slMat2cvMat(const sl::Mat &input); +sl::Camera zed; +cv::VideoWriter writer; + +void getSomeImages() +{ + sl::Resolution image_size = zed.getResolution(); + int32_t new_width = image_size.width / 2; + int32_t new_height = image_size.height / 2; + sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); + for(;;) + { + zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); + cv::Mat three_channel_bgr; + cv::Mat img_cv = slMat2cvMat(img_zed); + cv::cvtColor(img_cv, three_channel_bgr, cv::COLOR_BGRA2BGR); + writer.write(three_channel_bgr); + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + } +} cv::Mat slMat2cvMat(const sl::Mat &input) { @@ -33,14 +55,13 @@ cv::Mat slMat2cvMat(const sl::Mat &input) return cv::Mat(input.getHeight(), input.getWidth(), cv_type, input.getPtr(sl::MEM_CPU)); } -int main(int argc, char * argv[]) +int main(int argc, char *argv[]) { sl::InitParameters init_params; init_params.camera_resolution = sl::RESOLUTION_HD1080; init_params.depth_mode = sl::DEPTH_MODE_QUALITY; init_params.coordinate_units = sl::UNIT_METER; - sl::Camera zed; if(zed.open(init_params) != sl::SUCCESS) { std::cout << "Failed to open camera.\n"; @@ -62,22 +83,21 @@ int main(int argc, char * argv[]) sl::Mat sl_depth_f32; - cv::VideoWriter writer; - writer.open("appsrc ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink", 0, 10, cv::Size(1144, 592), true); - - const char * args[5]; - args[0] = argv[0]; - args[1] = "intervideosrc"; - args[2] = "zed_depth"; - args[3] = "8888"; - args[4] = "intervideosrc ! autovideoconvert ! rtpvrawpay name=pay0 pt=96"; - std::thread t1(start_server, 5, (char **) args); + writer.open("appsrc ! video/x-raw,format=BGR ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink", 0, 10, cv::Size(img_zed.getWidth(), img_zed.getHeight()), true); + g_server_data data; + data.argv[0] = argv[0]; + data.argv[1] = "intervideosrc"; + data.argv[2] = "zed_depth"; + data.argv[3] = "8888"; + data.argv[4] = "intervideosrc ! autovideoconvert ! rtpvrawpay name=pay0 pt=96"; if(!writer.isOpened()) printf("\033[7;31mFailed to Open Writer\n\033[0m"); + + GThread *t1 = g_thread_new("memes", g_start_server, &data); + std::thread t2(getSomeImages); - char key = ' '; for(char key = ' '; key != 'q'; key = cv::waitKey(10)) { if(zed.grab(runtime_params) == sl::SUCCESS) @@ -91,8 +111,10 @@ int main(int argc, char * argv[]) cv::Mat edges, blur_kern; std::vector > contours; + //cv::Mat three_channel_bgr; cv::Mat img_cv = slMat2cvMat(img_zed); - writer << img_cv; + //cv::cvtColor(img_cv, three_channel_bgr, cv::COLOR_BGRA2BGR); + //writer.write(three_channel_bgr); #define TIME std::chrono::duration(end - start).count() #define NOW std::chrono::high_resolution_clock::now(); auto start = NOW; @@ -106,7 +128,7 @@ int main(int argc, char * argv[]) cv::Canny(img_cv_blur, edges, 100, 200); auto end = NOW; - auto ms = TIME; + auto ms = TIME; std::cout << "Preprocessing Time: " << ms << " ms\n"; start = NOW; @@ -114,7 +136,6 @@ int main(int argc, char * argv[]) cv::findContours(edges, contours, hierarchy, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE); if(hierarchy.empty()) continue; - // make contours to cv mat cv::Mat contour_img(edges.size(), CV_32S); cv::Mat contour_img_visible(edges.size(), CV_32S); @@ -124,7 +145,6 @@ int main(int argc, char * argv[]) contour_img_visible = 0; int idx = 0; int comp_count = 0; - for(; idx >= 0; idx = hierarchy[idx][0], comp_count++) { cv::drawContours(contour_img, @@ -152,7 +172,10 @@ int main(int argc, char * argv[]) cv::resize(cv_depth_f32, depth_f32, cv::Size(960, 540)); cv::Mat three_channel_img; cv::cvtColor(img_cv_blur, three_channel_img, cv::COLOR_BGRA2BGR); - cv::imshow("contours", contour_img_visible); + + cv::Mat bork; + contour_img_visible.convertTo(bork, CV_8U, 255); + //cv::imshow("contours", bork); end = NOW; ms = TIME; @@ -235,7 +258,7 @@ int main(int argc, char * argv[]) std::cout << "Coloring Time: " << ms << " ms\n"; std::cout << std::endl; - cv::imshow("watershed", wshed); + //cv::imshow("watershed", wshed); #if 0 cv::Mat three_channel; cv::cvtColor(depth_img_cv, three_channel, cv::COLOR_BGRA2BGR); From 0b1519599fcef792a3f67d33838d9f845c28020f Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 11 Feb 2016 17:50:16 +0000 Subject: [PATCH 24/31] Callback to reduce pipeline --- Rover/GStreamer/server.cpp | 44 +++++++++++++++++++++++++++-------- Rover/GStreamer/server.h | 15 ++++++++---- Rover/zed_depth/zed_depth.cpp | 22 ++++++++++++------ 3 files changed, 59 insertions(+), 22 deletions(-) diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index e82852b..5dfdf7b 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -11,6 +11,32 @@ using namespace std; unordered_map*, const char*>> table; +void +media_configure (GstRTSPMediaFactory * factory, GstRTSPMedia * media, gpointer user_data) +{ + printf("MEDIA_CONFIGURE\n"); + GstElement *element, *appsrc; + MyContext *ctx; + + element = gst_rtsp_media_get_element(media); + appsrc = gst_bin_get_by_name_recurse_up (GST_BIN (element), "mysrc"); + + gst_util_set_object_arg (G_OBJECT (appsrc), "format", "time"); + + ctx = g_new0(MyContext, 1); + ctx->white = FALSE; + ctx->timestamp = 0; + + g_object_set_data_full (G_OBJECT (media), "my-extra-data", ctx, (GDestroyNotify) g_free); + + printf("Connecting need-data\n"); + g_signal_connect (appsrc, "need-data", (GCallback) *(void (**) (GstElement *, guint, MyContext *)) user_data, ctx); + + gst_object_unref(appsrc); + gst_object_unref(element); + printf("Configured pipeline\n"); +} + char * construct_pipeline(const char * devpath, const char * input_type, int width, int height, float scale) { @@ -45,8 +71,8 @@ setup_map() table["USB 2.0 Camera"] = make_tuple("5557", 1920, 1080, usb2list, "YUY2"); } -int -start_server (int argc, char *argv[]) +int +start_server (int argc, char *argv[], void (*fnc) (GstElement *, guint, MyContext *)) { GMainLoop *loop; GstRTSPServer *server; @@ -56,7 +82,7 @@ start_server (int argc, char *argv[]) vector pipelines; setup_map(); gst_init(&argc, &argv); - + if (argc == 3) // Want to run a predefined camera which is at defined path { devname = argv[1]; @@ -124,6 +150,11 @@ start_server (int argc, char *argv[]) GstRTSPMediaFactory * factory = gst_rtsp_media_factory_new (); gst_rtsp_media_factory_set_launch (factory, pipelines[i]); gst_rtsp_media_factory_set_shared (factory, TRUE); + if (fnc != NULL) + { + g_signal_connect (factory, "media-configure", (GCallback) media_configure, NULL); + printf("Connected configure\n"); + } printf("%s\n", pipelines[i]); snprintf(attachment, 10, "/feed%hu", i); gst_rtsp_mount_points_add_factory (mounts, attachment, factory); @@ -141,10 +172,3 @@ start_server (int argc, char *argv[]) g_main_loop_unref(loop); return 0; } - -void *g_start_server(void *data) -{ - g_server_data *as_struct = reinterpret_cast(data); - start_server(as_struct->argc, const_cast(as_struct->argv)); - return nullptr; -} diff --git a/Rover/GStreamer/server.h b/Rover/GStreamer/server.h index e126437..7e012b1 100644 --- a/Rover/GStreamer/server.h +++ b/Rover/GStreamer/server.h @@ -1,15 +1,20 @@ #ifndef SERVER_H_ /* Include guard */ #define SERVER_H_ +#include + struct g_server_data { int argc; - const char *argv[5]; - - g_server_data() : argc(5) {} + const char *argv[8]; }; -int start_server (int argc, char *argv[]); -void *g_start_server(void *data); +typedef struct +{ + gboolean white; + GstClockTime timestamp; +} MyContext; + +int start_server (int argc, char *argv[], void (*fnc)(GstElement *, guint, MyContext *)); #endif // SERVER_H_ diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp index 2bea139..79938a0 100644 --- a/Rover/zed_depth/zed_depth.cpp +++ b/Rover/zed_depth/zed_depth.cpp @@ -14,7 +14,13 @@ cv::Mat slMat2cvMat(const sl::Mat &input); sl::Camera zed; -cv::VideoWriter writer; +//cv::VideoWriter writer; + +void +need_data_callback(GstElement * appsrc, guint unused, MyContext * ctx) +{ + printf("Hello\n"); +} void getSomeImages() { @@ -28,7 +34,7 @@ void getSomeImages() cv::Mat three_channel_bgr; cv::Mat img_cv = slMat2cvMat(img_zed); cv::cvtColor(img_cv, three_channel_bgr, cv::COLOR_BGRA2BGR); - writer.write(three_channel_bgr); + //writer.write(three_channel_bgr); std::this_thread::sleep_for(std::chrono::milliseconds(20)); } } @@ -83,19 +89,21 @@ int main(int argc, char *argv[]) sl::Mat sl_depth_f32; - writer.open("appsrc ! video/x-raw,format=BGR ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink", 0, 10, cv::Size(img_zed.getWidth(), img_zed.getHeight()), true); + //writer.open("appsrc name=mysrc ! video/x-raw,format=BGR ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink", 0, 10, cv::Size(img_zed.getWidth(), img_zed.getHeight()), true); g_server_data data; + data.argc = 5; data.argv[0] = argv[0]; data.argv[1] = "intervideosrc"; data.argv[2] = "zed_depth"; data.argv[3] = "8888"; - data.argv[4] = "intervideosrc ! autovideoconvert ! rtpvrawpay name=pay0 pt=96"; + data.argv[4] = "appsrc name=mysrc ! video/x-raw,format=BGR ! autovideoconvert ! video/x-raw,format=I420 ! rtpvrawpay name=pay0 pt=96"; - if(!writer.isOpened()) - printf("\033[7;31mFailed to Open Writer\n\033[0m"); + //if(!writer.isOpened()) +// printf("\033[7;31mFailed to Open Writer\n\033[0m"); - GThread *t1 = g_thread_new("memes", g_start_server, &data); + std::thread t1(start_server, data.argc, (char **) data.argv, need_data_callback); + printf("Thread started\n"); std::thread t2(getSomeImages); for(char key = ' '; key != 'q'; key = cv::waitKey(10)) From 86690399765be734676ff27098b88719cfce6888 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Sat, 13 Apr 2019 19:12:20 +0000 Subject: [PATCH 25/31] Intervideosrc with smaller frames and faster --- Rover/GStreamer/Makefile | 18 +++-- Rover/GStreamer/device-scanner.cpp | 11 ++- Rover/GStreamer/server-wrapper.cpp | 4 +- Rover/GStreamer/server.cpp | 7 +- Rover/zed_depth/Makefile | 26 ++++++ Rover/zed_depth/build | 10 +-- Rover/zed_depth/videowriter_basic.cpp | 77 ------------------ Rover/zed_depth/zed_depth.cpp | 109 +++++++++++++++++--------- 8 files changed, 123 insertions(+), 139 deletions(-) create mode 100644 Rover/zed_depth/Makefile delete mode 100644 Rover/zed_depth/videowriter_basic.cpp diff --git a/Rover/GStreamer/Makefile b/Rover/GStreamer/Makefile index 60a183a..a166b01 100644 --- a/Rover/GStreamer/Makefile +++ b/Rover/GStreamer/Makefile @@ -2,25 +2,29 @@ CPP= g++ CFLAGS= -g -Wall -Wpedantic -std=c++14 GSFLAGS= `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 HEADERS= -OBJS= ricoh.o DEV= device-scanner SERVER= server-wrapper all: $(DEV) $(SERVER) + rm *.o debug: $(DEV)_debug $(SERVER)_debug + rm *.o -server-wrapper: $(HEADERS) $(SERVER).cpp - $(CPP) $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) +server: $(HEADERS) server.cpp + $(CPP) -O3 -c server.cpp $(GSFLAGS) $(CFLAGS) + +server-wrapper: $(HEADERS) $(SERVER).cpp server + $(CPP) -O3 $(SERVER).cpp -o $(SERVER) server.o $(GSFLAGS) $(CFLAGS) device-scanner: $(HEADERS) $(DEV).cpp - $(CPP) $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) + $(CPP) -O3 $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) -server-wrapper_debug: $(HEADERS) $(SERVER).cpp - $(CPP) -D DEBUG $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) +server-wrapper_debug: $(HEADERS) $(SERVER).cpp server + $(CPP) -ggdb -D DEBUG $(SERVER).cpp -o $(SERVER) $(GSFLAGS) $(CFLAGS) device-scanner_debug: $(HEADERS) $(DEV).cpp - $(CPP) -D DEBUG $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) + $(CPP) -ggdb -D DEBUG $(DEV).cpp -o $(DEV) $(GSFLAGS) $(CFLAGS) clean: rm $(DEV) $(SERVER) diff --git a/Rover/GStreamer/device-scanner.cpp b/Rover/GStreamer/device-scanner.cpp index 803c522..2a21ec6 100644 --- a/Rover/GStreamer/device-scanner.cpp +++ b/Rover/GStreamer/device-scanner.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #ifdef DEBUG void structure_fields(const GstStructure *device) @@ -67,7 +68,15 @@ int main(int argc, char *argv[]) int mypid = fork(); if(mypid == 0) { - int ret = execl("./server-wrapper", argv[0], name, path, NULL); + int ret; + if (strcmp(name, "ZED") == 0) + { + ret = execl("../zed_depth/zed_depth", argv[0]); + } + else + { + ret = execl("./server-wrapper", argv[0], name, path, NULL); + } return ret; // Shouldn't reach this line } cur = g_list_next(cur); diff --git a/Rover/GStreamer/server-wrapper.cpp b/Rover/GStreamer/server-wrapper.cpp index 2a224e1..171c113 100644 --- a/Rover/GStreamer/server-wrapper.cpp +++ b/Rover/GStreamer/server-wrapper.cpp @@ -1,7 +1,7 @@ -#include "server.cpp" +#include "server.h" int main (int argc, char *argv[]) { - return start_server(argc, argv); + return start_server(argc, argv, nullptr); } diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 5dfdf7b..64531c7 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -14,7 +14,6 @@ unordered_map*, const char*>> void media_configure (GstRTSPMediaFactory * factory, GstRTSPMedia * media, gpointer user_data) { - printf("MEDIA_CONFIGURE\n"); GstElement *element, *appsrc; MyContext *ctx; @@ -29,12 +28,10 @@ media_configure (GstRTSPMediaFactory * factory, GstRTSPMedia * media, gpointer u g_object_set_data_full (G_OBJECT (media), "my-extra-data", ctx, (GDestroyNotify) g_free); - printf("Connecting need-data\n"); g_signal_connect (appsrc, "need-data", (GCallback) *(void (**) (GstElement *, guint, MyContext *)) user_data, ctx); gst_object_unref(appsrc); gst_object_unref(element); - printf("Configured pipeline\n"); } char * @@ -152,10 +149,8 @@ start_server (int argc, char *argv[], void (*fnc) (GstElement *, guint, MyContex gst_rtsp_media_factory_set_shared (factory, TRUE); if (fnc != NULL) { - g_signal_connect (factory, "media-configure", (GCallback) media_configure, NULL); - printf("Connected configure\n"); + g_signal_connect (factory, "media-configure", (GCallback) media_configure, &fnc); } - printf("%s\n", pipelines[i]); snprintf(attachment, 10, "/feed%hu", i); gst_rtsp_mount_points_add_factory (mounts, attachment, factory); g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); diff --git a/Rover/zed_depth/Makefile b/Rover/zed_depth/Makefile new file mode 100644 index 0000000..a709407 --- /dev/null +++ b/Rover/zed_depth/Makefile @@ -0,0 +1,26 @@ +CPP= g++ +CFLAGS= -g -std=c++14 +GSFLAGS= `pkg-config --cflags --libs gstreamer-1.0` -lgstrtspserver-1.0 +CVFLAGS= `pkg-config --cflags --libs opencv4` +INCLUDES= -I/usr/local/zed/include -I/usr/local/cuda/include -I../GStreamer +LIBS= /usr/local/zed/lib/*.so -march=armv8-a+simd +HEADERS= +DEPTH= zed_depth + +all: $(DEPTH) + rm *.o + +debug: $(DEPTH)_debug + rm *.o + +server: $(HEADERS) ../GStreamer/server.cpp + $(CPP) -O3 -c ../GStreamer/server.cpp $(GSFLAGS) $(CFLAGS) + +zed_depth: $(HEADERS) $(DEPTH).cpp server + $(CPP) -O3 $(DEPTH).cpp -o $(DEPTH) server.o $(GSFLAGS) $(CVFLAGS) $(CFLAGS) $(INCLUDES) $(LIBS) + +zed_depth_debug: $(HEADERS) $(SERVER).cpp server + $(CPP) -ggdb -D DEBUG $(DEPTH).cpp -o $(DEPTH) server.o $(GSFLAGS) $(CVFLAGS) $(CFLAGS) $(INCLUDES) $(LIBS) + +clean: + rm $(DEPTH) diff --git a/Rover/zed_depth/build b/Rover/zed_depth/build index c490e07..8f58e6d 100755 --- a/Rover/zed_depth/build +++ b/Rover/zed_depth/build @@ -1,9 +1 @@ - - -#g++ -O3 -c ../GStreamer/server.cpp `pkg-config --cflags gstreamer-1.0` -I../GStreamer - -#g++ -O3 -std=c++14 zed_depth.cpp server.o -o zed_depth `pkg-config --cflags --libs opencv4 gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd - -g++ -ggdb -c ../GStreamer/server.cpp `pkg-config --cflags gstreamer-1.0` -I../GStreamer -g++ -ggdb -std=c++14 zed_depth.cpp server.o -o zed_depth `pkg-config --cflags --libs opencv4 gstreamer-1.0` -lgstrtspserver-1.0 -I../GStreamer -I/usr/local/zed/include -I/usr/local/cuda/include /usr/local/zed/lib/*.so -march=armv8-a+simd -rm server.o +make diff --git a/Rover/zed_depth/videowriter_basic.cpp b/Rover/zed_depth/videowriter_basic.cpp deleted file mode 100644 index 1a8bf12..0000000 --- a/Rover/zed_depth/videowriter_basic.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/** - @file videowriter_basic.cpp - @brief A very basic sample for using VideoWriter and VideoCapture - @author PkLab.net - @date Aug 24, 2016 -*/ - -#include -#include -#include -#include -#include -#include -#include "server.h" - -using namespace cv; -using namespace std; - -int main(int argc, char* argv[]) -{ - Mat src; - // use default camera as video source - VideoCapture cap("videotestsrc ! video/x-raw,width=1280,height=720,framerate=30/1 ! appsink sync=false"); - // check if we succeeded - if (!cap.isOpened()) { - cerr << "ERROR! Unable to open camera\n"; - return -1; - } - // get one frame from camera to know frame size and type - cap >> src; - // check if we succeeded - if (src.empty()) { - cerr << "ERROR! blank frame grabbed\n"; - return -1; - } - bool isColor = (src.type() == CV_8UC3); - - //--- INITIALIZE VIDEOWRITER - VideoWriter writer; - double fps = 30.0; // framerate of the created video stream - string filename = "appsrc ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink"; - writer.open(filename, cv::CAP_GSTREAMER, 0, fps, src.size(), isColor); - // check if we succeeded - if (!writer.isOpened()) { - cerr << "Could not open the output video file for write\n"; - return -1; - } - - const char * test[5]; - test[0] = argv[0]; - test[1] = "intervideosrc"; - test[2] = "."; - test[3] = "8888"; - test[4] = "intervideosrc ! autovideoconvert ! rtpvrawpay name=pay0 pt=96"; - - thread t1(start_server, 5, (char **) test); - - //--- GRAB AND WRITE LOOP - cout << "Writing videofile: " << filename << endl - << "Press any key to terminate" << endl; - for (;;) - { - // check if we succeeded - if (!cap.read(src)) { - cerr << "ERROR! blank frame grabbed\n"; - break; - } - // encode the frame into the videofile stream - writer.write(src); - // show live and wait for a key with timeout long enough to show images - //imshow("Live", src); - //if (waitKey(5) >= 0) - // break; - } - // the videofile will be closed and released automatically in VideoWriter destructor - return 0; -} diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp index 79938a0..4b55756 100644 --- a/Rover/zed_depth/zed_depth.cpp +++ b/Rover/zed_depth/zed_depth.cpp @@ -14,29 +14,49 @@ cv::Mat slMat2cvMat(const sl::Mat &input); sl::Camera zed; -//cv::VideoWriter writer; +cv::VideoWriter writer; +cv::VideoWriter writer_debug; +int32_t new_width; +int32_t new_height; void need_data_callback(GstElement * appsrc, guint unused, MyContext * ctx) { - printf("Hello\n"); + GstBuffer *buffer; + guint size; + GstFlowReturn ret; + + sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); + zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); + cv::Mat img_cv = slMat2cvMat(img_zed); + + size = new_width * new_height * 4; + buffer = gst_buffer_new_wrapped_full((GstMemoryFlags) 0, img_cv.data, size, 0, size, NULL, NULL); + + GST_BUFFER_PTS(buffer) = ctx->timestamp; + GST_BUFFER_DURATION(buffer) = gst_util_uint64_scale_int (1, GST_SECOND, 2); + + ctx->timestamp += GST_BUFFER_DURATION (buffer); + + g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret); + + gst_buffer_unref(buffer); } -void getSomeImages() +void +getSomeImages() { - sl::Resolution image_size = zed.getResolution(); - int32_t new_width = image_size.width / 2; - int32_t new_height = image_size.height / 2; - sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); - for(;;) - { - zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); - cv::Mat three_channel_bgr; - cv::Mat img_cv = slMat2cvMat(img_zed); - cv::cvtColor(img_cv, three_channel_bgr, cv::COLOR_BGRA2BGR); - //writer.write(three_channel_bgr); - std::this_thread::sleep_for(std::chrono::milliseconds(20)); - } + sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); + + for(;;) + { + zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); + cv::Mat three_channel_bgr; + cv::Mat img_cv = slMat2cvMat(img_zed); + cv::cvtColor(img_cv, three_channel_bgr, cv::COLOR_BGRA2BGR); + writer.write(three_channel_bgr); + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + } } cv::Mat slMat2cvMat(const sl::Mat &input) @@ -64,7 +84,7 @@ cv::Mat slMat2cvMat(const sl::Mat &input) int main(int argc, char *argv[]) { sl::InitParameters init_params; - init_params.camera_resolution = sl::RESOLUTION_HD1080; + init_params.camera_resolution = sl::RESOLUTION_VGA; init_params.depth_mode = sl::DEPTH_MODE_QUALITY; init_params.coordinate_units = sl::UNIT_METER; @@ -78,8 +98,10 @@ int main(int argc, char *argv[]) runtime_params.sensing_mode = sl::SENSING_MODE_STANDARD; runtime_params.enable_point_cloud = false; sl::Resolution image_size = zed.getResolution(); - int32_t new_width = image_size.width / 2; - int32_t new_height = image_size.height / 2; + + // scale image ? + new_width = image_size.width / 2; + new_height = image_size.height / 2; sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); @@ -89,21 +111,34 @@ int main(int argc, char *argv[]) sl::Mat sl_depth_f32; - //writer.open("appsrc name=mysrc ! video/x-raw,format=BGR ! autovideoconvert ! video/x-raw,format=I420 ! intervideosink", 0, 10, cv::Size(img_zed.getWidth(), img_zed.getHeight()), true); - g_server_data data; data.argc = 5; data.argv[0] = argv[0]; data.argv[1] = "intervideosrc"; data.argv[2] = "zed_depth"; data.argv[3] = "8888"; - data.argv[4] = "appsrc name=mysrc ! video/x-raw,format=BGR ! autovideoconvert ! video/x-raw,format=I420 ! rtpvrawpay name=pay0 pt=96"; + //data.argv[4] = "appsrc name=mysrc ! video/x-raw,format=BGRA,width=new_width,height=new_height,framerate=0/1 ! videoconvert ! video/x-raw,format=I420 ! rtpvrawpay name=pay0 pt=96"; + data.argv[4] = "intervideosrc channel=rgb ! rtpvrawpay name=pay0 pt=96"; - //if(!writer.isOpened()) -// printf("\033[7;31mFailed to Open Writer\n\033[0m"); - - std::thread t1(start_server, data.argc, (char **) data.argv, need_data_callback); - printf("Thread started\n"); + writer.open("appsrc ! video/x-raw,format=BGR ! videoconvert ! video/x-raw,format=I420 ! intervideosink channel=rgb", 0, 10, cv::Size(img_zed.getWidth(), img_zed.getHeight()), true); + + //std::thread t1(start_server, data.argc, (char **) data.argv, need_data_callback); + std::thread t1(start_server, data.argc, (char **) data.argv, nullptr); + +#ifdef DEBUG + g_server_data data2; + data2.argc = 5; + data2.argv[0] = argv[0]; + data2.argv[1] = "intervideosrc"; + data2.argv[2] = "zed_depth_debug"; + data2.argv[3] = "8889"; + data2.argv[4] = "intervideosrc channel=wshed ! rtpvrawpay name=pay0 pt=96"; + + writer_debug.open("appsrc ! video/x-raw,format=BGR ! videoconvert ! video/x-raw,format=I420 ! intervideosink channel=wshed", 0, 10, cv::Size(img_zed.getWidth(), img_zed.getHeight()), true); + + std::thread t3(start_server, data2.argc, (char **) data2.argv, nullptr); +#endif + std::thread t2(getSomeImages); for(char key = ' '; key != 'q'; key = cv::waitKey(10)) @@ -119,10 +154,7 @@ int main(int argc, char *argv[]) cv::Mat edges, blur_kern; std::vector > contours; - //cv::Mat three_channel_bgr; cv::Mat img_cv = slMat2cvMat(img_zed); - //cv::cvtColor(img_cv, three_channel_bgr, cv::COLOR_BGRA2BGR); - //writer.write(three_channel_bgr); #define TIME std::chrono::duration(end - start).count() #define NOW std::chrono::high_resolution_clock::now(); auto start = NOW; @@ -132,7 +164,7 @@ int main(int argc, char *argv[]) cv::bilateralFilter(img_cv, img_cv_blur, 9, 150.0, 150.0, cv::BORDER_DEFAULT); // setup for contours for regular image - cv::resize(img_cv_blur, img_cv_blur, cv::Size(960, 540)); + cv::resize(img_cv_blur, img_cv_blur, cv::Size(new_width, new_height)); cv::Canny(img_cv_blur, edges, 100, 200); auto end = NOW; @@ -177,7 +209,7 @@ int main(int argc, char *argv[]) // convert to cv mat cv::Mat cv_depth_f32 = slMat2cvMat(sl_depth_f32); cv::Mat depth_f32; - cv::resize(cv_depth_f32, depth_f32, cv::Size(960, 540)); + cv::resize(cv_depth_f32, depth_f32, cv::Size(new_width, new_height)); cv::Mat three_channel_img; cv::cvtColor(img_cv_blur, three_channel_img, cv::COLOR_BGRA2BGR); @@ -187,7 +219,7 @@ int main(int argc, char *argv[]) end = NOW; ms = TIME; - std::cout << "Contours Time: " << ms << " ms\n"; + //std::cout << "Contours Time: " << ms << " ms\n"; start = NOW; // watershed the image @@ -196,7 +228,7 @@ int main(int argc, char *argv[]) end = NOW; ms = TIME; - std::cout << "Watershed Time: " << ms << " ms\n"; + //std::cout << "Watershed Time: " << ms << " ms\n"; start = NOW; // for each segment in watershed image make color @@ -228,7 +260,7 @@ int main(int argc, char *argv[]) } end = NOW; ms = TIME; - std::cout << "Obstacles Time: " << ms << " ms\n"; + //std::cout << "Obstacles Time: " << ms << " ms\n"; start = NOW; // put color in segment @@ -263,10 +295,13 @@ int main(int argc, char *argv[]) } end = NOW; ms = TIME; - std::cout << "Coloring Time: " << ms << " ms\n"; - std::cout << std::endl; + //std::cout << "Coloring Time: " << ms << " ms\n"; + //std::cout << std::endl; //cv::imshow("watershed", wshed); +#ifdef DEBUG + writer_debug.write(wshed); +#endif #if 0 cv::Mat three_channel; cv::cvtColor(depth_img_cv, three_channel, cv::COLOR_BGRA2BGR); From b77d905887d5774005bb37a610cad94d62765529 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Sat, 13 Apr 2019 19:16:53 +0000 Subject: [PATCH 26/31] Fixed debug target --- Rover/zed_depth/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rover/zed_depth/Makefile b/Rover/zed_depth/Makefile index a709407..7659780 100644 --- a/Rover/zed_depth/Makefile +++ b/Rover/zed_depth/Makefile @@ -19,7 +19,7 @@ server: $(HEADERS) ../GStreamer/server.cpp zed_depth: $(HEADERS) $(DEPTH).cpp server $(CPP) -O3 $(DEPTH).cpp -o $(DEPTH) server.o $(GSFLAGS) $(CVFLAGS) $(CFLAGS) $(INCLUDES) $(LIBS) -zed_depth_debug: $(HEADERS) $(SERVER).cpp server +zed_depth_debug: $(HEADERS) $(DEPTH).cpp server $(CPP) -ggdb -D DEBUG $(DEPTH).cpp -o $(DEPTH) server.o $(GSFLAGS) $(CVFLAGS) $(CFLAGS) $(INCLUDES) $(LIBS) clean: From 3383ec2e81c868b8aa4ce197d7e353b3411987c8 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 2 May 2019 01:32:42 +0000 Subject: [PATCH 27/31] Removed legacy code and reorganized creation of threads --- Rover/zed_depth/zed_depth.cpp | 45 ++++++++--------------------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/Rover/zed_depth/zed_depth.cpp b/Rover/zed_depth/zed_depth.cpp index 4b55756..02eaed4 100644 --- a/Rover/zed_depth/zed_depth.cpp +++ b/Rover/zed_depth/zed_depth.cpp @@ -19,30 +19,6 @@ cv::VideoWriter writer_debug; int32_t new_width; int32_t new_height; -void -need_data_callback(GstElement * appsrc, guint unused, MyContext * ctx) -{ - GstBuffer *buffer; - guint size; - GstFlowReturn ret; - - sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); - zed.retrieveImage(img_zed, sl::VIEW_LEFT, sl::MEM_CPU, new_width, new_height); - cv::Mat img_cv = slMat2cvMat(img_zed); - - size = new_width * new_height * 4; - buffer = gst_buffer_new_wrapped_full((GstMemoryFlags) 0, img_cv.data, size, 0, size, NULL, NULL); - - GST_BUFFER_PTS(buffer) = ctx->timestamp; - GST_BUFFER_DURATION(buffer) = gst_util_uint64_scale_int (1, GST_SECOND, 2); - - ctx->timestamp += GST_BUFFER_DURATION (buffer); - - g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret); - - gst_buffer_unref(buffer); -} - void getSomeImages() { @@ -100,8 +76,10 @@ int main(int argc, char *argv[]) sl::Resolution image_size = zed.getResolution(); // scale image ? - new_width = image_size.width / 2; - new_height = image_size.height / 2; + //new_width = image_size.width / 2; + //new_height = image_size.height / 2; + new_width = image_size.width; + new_height = image_size.height; sl::Mat img_zed(new_width, new_height, sl::MAT_TYPE_8U_C4); @@ -117,13 +95,12 @@ int main(int argc, char *argv[]) data.argv[1] = "intervideosrc"; data.argv[2] = "zed_depth"; data.argv[3] = "8888"; - //data.argv[4] = "appsrc name=mysrc ! video/x-raw,format=BGRA,width=new_width,height=new_height,framerate=0/1 ! videoconvert ! video/x-raw,format=I420 ! rtpvrawpay name=pay0 pt=96"; data.argv[4] = "intervideosrc channel=rgb ! rtpvrawpay name=pay0 pt=96"; writer.open("appsrc ! video/x-raw,format=BGR ! videoconvert ! video/x-raw,format=I420 ! intervideosink channel=rgb", 0, 10, cv::Size(img_zed.getWidth(), img_zed.getHeight()), true); - //std::thread t1(start_server, data.argc, (char **) data.argv, need_data_callback); std::thread t1(start_server, data.argc, (char **) data.argv, nullptr); + std::thread t2(getSomeImages); #ifdef DEBUG g_server_data data2; @@ -139,8 +116,6 @@ int main(int argc, char *argv[]) std::thread t3(start_server, data2.argc, (char **) data2.argv, nullptr); #endif - std::thread t2(getSomeImages); - for(char key = ' '; key != 'q'; key = cv::waitKey(10)) { if(zed.grab(runtime_params) == sl::SUCCESS) @@ -219,7 +194,7 @@ int main(int argc, char *argv[]) end = NOW; ms = TIME; - //std::cout << "Contours Time: " << ms << " ms\n"; + std::cout << "Contours Time: " << ms << " ms\n"; start = NOW; // watershed the image @@ -228,7 +203,7 @@ int main(int argc, char *argv[]) end = NOW; ms = TIME; - //std::cout << "Watershed Time: " << ms << " ms\n"; + std::cout << "Watershed Time: " << ms << " ms\n"; start = NOW; // for each segment in watershed image make color @@ -260,7 +235,7 @@ int main(int argc, char *argv[]) } end = NOW; ms = TIME; - //std::cout << "Obstacles Time: " << ms << " ms\n"; + std::cout << "Obstacles Time: " << ms << " ms\n"; start = NOW; // put color in segment @@ -295,8 +270,8 @@ int main(int argc, char *argv[]) } end = NOW; ms = TIME; - //std::cout << "Coloring Time: " << ms << " ms\n"; - //std::cout << std::endl; + std::cout << "Coloring Time: " << ms << " ms\n"; + std::cout << std::endl; //cv::imshow("watershed", wshed); #ifdef DEBUG From 6a49670dfbca3199092afbb33aeba3bd64f50a12 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 2 May 2019 01:59:40 +0000 Subject: [PATCH 28/31] OPENCV_BUILD --- Scripts/BUILD_OPENCV_4.0.1.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 Scripts/BUILD_OPENCV_4.0.1.sh diff --git a/Scripts/BUILD_OPENCV_4.0.1.sh b/Scripts/BUILD_OPENCV_4.0.1.sh new file mode 100755 index 0000000..ebb20b3 --- /dev/null +++ b/Scripts/BUILD_OPENCV_4.0.1.sh @@ -0,0 +1,23 @@ +OPENCV_VERSION=4.0.1 +ARCH_BIN=6.2 +GCC_VERSION=6 # Version 6 required for CUDA 9 +GXX_VERSION=6 +WORKING_DIR=$(pwd) + +wget http://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip +unzip ${OPENCV_VERSION}.zip +rm ${OPENCV_VERSION}.zip + +wget http://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip +unzip ${OPENCV_VERSION}.zip +rm ${OPENCV_VERSION}.zip + +cd opencv-${OPENCV_VERSION} +mkdir build +cd build + +cmake -DCMAKE_C_COMPILER=gcc-${GCC_VERSION} -DCMAKE_CXX_COMPILER=g++-${GXX_VERSION} -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_CUDA=ON -DCUDA_ARCH_BIN=${ARCH_BIN} -DCUDA_ARCH_PTX="" -DWITH_CUBLAS=ON -DWITH_GSTREAMER=ON -DWITH_QT=ON -DWITH_OPENGL=ON -DBUILD_opencv_java=OFF -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_EXTRA_MODULES_PATH=${WORKING_DIR}/opencv_contrib-${OPENCV_VERSION}/modules -DENABLE_FAST_MATH=ON -DCUDA_FAST_MATH=ON -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DWITH_NVCUVID=ON .. + +make -j6 +sudo make install +sudo ldconfig From 7b99b120e7903d16bf48af6049cbb12092c195ef Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 2 May 2019 02:00:40 +0000 Subject: [PATCH 29/31] Comments --- Scripts/BUILD_OPENCV_4.0.1.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Scripts/BUILD_OPENCV_4.0.1.sh b/Scripts/BUILD_OPENCV_4.0.1.sh index ebb20b3..228428a 100755 --- a/Scripts/BUILD_OPENCV_4.0.1.sh +++ b/Scripts/BUILD_OPENCV_4.0.1.sh @@ -1,3 +1,6 @@ +# Only works for OpenCV version 4+ +# Expects all dependencies to be preinstalled + OPENCV_VERSION=4.0.1 ARCH_BIN=6.2 GCC_VERSION=6 # Version 6 required for CUDA 9 From 761d9577dbe379cf4e2859f9e391d40ea8d5a64f Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 2 May 2019 02:03:39 +0000 Subject: [PATCH 30/31] Added dependency installation --- Scripts/BUILD_OPENCV_4.0.1.sh | 48 ++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/Scripts/BUILD_OPENCV_4.0.1.sh b/Scripts/BUILD_OPENCV_4.0.1.sh index 228428a..b5c3428 100755 --- a/Scripts/BUILD_OPENCV_4.0.1.sh +++ b/Scripts/BUILD_OPENCV_4.0.1.sh @@ -1,12 +1,48 @@ -# Only works for OpenCV version 4+ -# Expects all dependencies to be preinstalled - -OPENCV_VERSION=4.0.1 -ARCH_BIN=6.2 +OPENCV_VERSION=4.0.1 # Only works for OpenCV version 4+ +ARCH_BIN=6.2 # For Jetson TX2 GCC_VERSION=6 # Version 6 required for CUDA 9 -GXX_VERSION=6 +GXX_VERSION=6 # Version 6 required for CUDA 9 WORKING_DIR=$(pwd) +# 1. KEEP UBUNTU OR DEBIAN UP TO DATE + +sudo apt-get -y update +sudo apt-get -y upgrade +sudo apt-get -y dist-upgrade +sudo apt-get -y autoremove + + +# 2. INSTALL THE DEPENDENCIES + +# Build tools: +sudo apt-get install -y build-essential cmake + +# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake): +sudo apt-get install -y qt5-default libvtk6-dev + +# Media I/O: +sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev + +# Video I/O: +sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev + +# Parallelism and linear algebra libraries: +sudo apt-get install -y libtbb-dev libeigen3-dev + +# Python: +sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy + +# Java: +sudo apt-get install -y ant default-jdk + +# Documentation: +sudo apt-get install -y doxygen + + +# 3. INSTALL THE LIBRARY + +sudo apt-get install -y unzip wget + wget http://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip unzip ${OPENCV_VERSION}.zip rm ${OPENCV_VERSION}.zip From 5801e51ab71ae2d00fe657f0026be73ad321c841 Mon Sep 17 00:00:00 2001 From: Tommy Jetson TX2 Date: Thu, 2 May 2019 02:19:00 +0000 Subject: [PATCH 31/31] Organized some stuff --- Rover/GStreamer/{Readme => README.md} | 0 Rover/GStreamer/server-wrapper.cpp | 2 +- Rover/GStreamer/server.cpp | 29 +----------------- Rover/GStreamer/server.h | 8 +---- Rover/JetsonGStreamerServer/build | 1 - Rover/README.md | 3 ++ .../Makefile | 0 .../gserver.cpp | 0 .../gserver.h | 0 .../remap_x.txt | 0 .../remap_y.txt | 0 .../remapping.java | 0 .../ricoh.cpp | 0 .../ricoh.h | 0 Rover/{zed_depth => ZedDepth}/.gitignore | 0 Rover/{zed_depth => ZedDepth}/Makefile | 6 ++-- Rover/ZedDepth/README.md | 1 + Rover/{zed_depth => ZedDepth}/build | 0 Rover/{zed_depth => ZedDepth}/ground.png | Bin Rover/ZedDepth/run | 1 + .../save-depth.cpp} | 0 Rover/ZedDepth/zed-depth | Bin 0 -> 1334440 bytes .../zed_depth.cpp => ZedDepth/zed-depth.cpp} | 8 ++--- Rover/zed_depth/run | 1 - 24 files changed, 15 insertions(+), 45 deletions(-) rename Rover/GStreamer/{Readme => README.md} (100%) delete mode 100755 Rover/JetsonGStreamerServer/build create mode 100644 Rover/README.md rename Rover/{JetsonGStreamerServer => RicohServer}/Makefile (100%) rename Rover/{JetsonGStreamerServer => RicohServer}/gserver.cpp (100%) rename Rover/{JetsonGStreamerServer => RicohServer}/gserver.h (100%) rename Rover/{JetsonGStreamerServer => RicohServer}/remap_x.txt (100%) rename Rover/{JetsonGStreamerServer => RicohServer}/remap_y.txt (100%) rename Rover/{JetsonGStreamerServer => RicohServer}/remapping.java (100%) rename Rover/{JetsonGStreamerServer => RicohServer}/ricoh.cpp (100%) rename Rover/{JetsonGStreamerServer => RicohServer}/ricoh.h (100%) rename Rover/{zed_depth => ZedDepth}/.gitignore (100%) rename Rover/{zed_depth => ZedDepth}/Makefile (86%) create mode 100644 Rover/ZedDepth/README.md rename Rover/{zed_depth => ZedDepth}/build (100%) rename Rover/{zed_depth => ZedDepth}/ground.png (100%) create mode 100755 Rover/ZedDepth/run rename Rover/{zed_depth/save_depth.cpp => ZedDepth/save-depth.cpp} (100%) create mode 100755 Rover/ZedDepth/zed-depth rename Rover/{zed_depth/zed_depth.cpp => ZedDepth/zed-depth.cpp} (98%) delete mode 100755 Rover/zed_depth/run diff --git a/Rover/GStreamer/Readme b/Rover/GStreamer/README.md similarity index 100% rename from Rover/GStreamer/Readme rename to Rover/GStreamer/README.md diff --git a/Rover/GStreamer/server-wrapper.cpp b/Rover/GStreamer/server-wrapper.cpp index 171c113..8ce32fc 100644 --- a/Rover/GStreamer/server-wrapper.cpp +++ b/Rover/GStreamer/server-wrapper.cpp @@ -3,5 +3,5 @@ int main (int argc, char *argv[]) { - return start_server(argc, argv, nullptr); + return start_server(argc, argv); } diff --git a/Rover/GStreamer/server.cpp b/Rover/GStreamer/server.cpp index 64531c7..89e8ef8 100644 --- a/Rover/GStreamer/server.cpp +++ b/Rover/GStreamer/server.cpp @@ -11,29 +11,6 @@ using namespace std; unordered_map*, const char*>> table; -void -media_configure (GstRTSPMediaFactory * factory, GstRTSPMedia * media, gpointer user_data) -{ - GstElement *element, *appsrc; - MyContext *ctx; - - element = gst_rtsp_media_get_element(media); - appsrc = gst_bin_get_by_name_recurse_up (GST_BIN (element), "mysrc"); - - gst_util_set_object_arg (G_OBJECT (appsrc), "format", "time"); - - ctx = g_new0(MyContext, 1); - ctx->white = FALSE; - ctx->timestamp = 0; - - g_object_set_data_full (G_OBJECT (media), "my-extra-data", ctx, (GDestroyNotify) g_free); - - g_signal_connect (appsrc, "need-data", (GCallback) *(void (**) (GstElement *, guint, MyContext *)) user_data, ctx); - - gst_object_unref(appsrc); - gst_object_unref(element); -} - char * construct_pipeline(const char * devpath, const char * input_type, int width, int height, float scale) { @@ -69,7 +46,7 @@ setup_map() } int -start_server (int argc, char *argv[], void (*fnc) (GstElement *, guint, MyContext *)) +start_server (int argc, char *argv[]) { GMainLoop *loop; GstRTSPServer *server; @@ -147,10 +124,6 @@ start_server (int argc, char *argv[], void (*fnc) (GstElement *, guint, MyContex GstRTSPMediaFactory * factory = gst_rtsp_media_factory_new (); gst_rtsp_media_factory_set_launch (factory, pipelines[i]); gst_rtsp_media_factory_set_shared (factory, TRUE); - if (fnc != NULL) - { - g_signal_connect (factory, "media-configure", (GCallback) media_configure, &fnc); - } snprintf(attachment, 10, "/feed%hu", i); gst_rtsp_mount_points_add_factory (mounts, attachment, factory); g_print ("%s@%s: stream ready at rtsp://127.0.0.1:%s/feed%d\n", devname, devpath, port, i); diff --git a/Rover/GStreamer/server.h b/Rover/GStreamer/server.h index 7e012b1..29f9366 100644 --- a/Rover/GStreamer/server.h +++ b/Rover/GStreamer/server.h @@ -9,12 +9,6 @@ struct g_server_data const char *argv[8]; }; -typedef struct -{ - gboolean white; - GstClockTime timestamp; -} MyContext; - -int start_server (int argc, char *argv[], void (*fnc)(GstElement *, guint, MyContext *)); +int start_server (int argc, char *argv[]); #endif // SERVER_H_ diff --git a/Rover/JetsonGStreamerServer/build b/Rover/JetsonGStreamerServer/build deleted file mode 100755 index 0d6075a..0000000 --- a/Rover/JetsonGStreamerServer/build +++ /dev/null @@ -1 +0,0 @@ -g++ gserver.cpp -ggdb -std=c++14 -o gserver -lopencv_core -lopencv_video -lopencv_videoio -lopencv_imgproc -lopencv_highgui -pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/aarch64-linux-gnu/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 diff --git a/Rover/README.md b/Rover/README.md new file mode 100644 index 0000000..5cf8eb9 --- /dev/null +++ b/Rover/README.md @@ -0,0 +1,3 @@ +# Running GStreamer +Run the device-scanner binary in the GStreamer folder. +This binary will also start the zed-depth program. diff --git a/Rover/JetsonGStreamerServer/Makefile b/Rover/RicohServer/Makefile similarity index 100% rename from Rover/JetsonGStreamerServer/Makefile rename to Rover/RicohServer/Makefile diff --git a/Rover/JetsonGStreamerServer/gserver.cpp b/Rover/RicohServer/gserver.cpp similarity index 100% rename from Rover/JetsonGStreamerServer/gserver.cpp rename to Rover/RicohServer/gserver.cpp diff --git a/Rover/JetsonGStreamerServer/gserver.h b/Rover/RicohServer/gserver.h similarity index 100% rename from Rover/JetsonGStreamerServer/gserver.h rename to Rover/RicohServer/gserver.h diff --git a/Rover/JetsonGStreamerServer/remap_x.txt b/Rover/RicohServer/remap_x.txt similarity index 100% rename from Rover/JetsonGStreamerServer/remap_x.txt rename to Rover/RicohServer/remap_x.txt diff --git a/Rover/JetsonGStreamerServer/remap_y.txt b/Rover/RicohServer/remap_y.txt similarity index 100% rename from Rover/JetsonGStreamerServer/remap_y.txt rename to Rover/RicohServer/remap_y.txt diff --git a/Rover/JetsonGStreamerServer/remapping.java b/Rover/RicohServer/remapping.java similarity index 100% rename from Rover/JetsonGStreamerServer/remapping.java rename to Rover/RicohServer/remapping.java diff --git a/Rover/JetsonGStreamerServer/ricoh.cpp b/Rover/RicohServer/ricoh.cpp similarity index 100% rename from Rover/JetsonGStreamerServer/ricoh.cpp rename to Rover/RicohServer/ricoh.cpp diff --git a/Rover/JetsonGStreamerServer/ricoh.h b/Rover/RicohServer/ricoh.h similarity index 100% rename from Rover/JetsonGStreamerServer/ricoh.h rename to Rover/RicohServer/ricoh.h diff --git a/Rover/zed_depth/.gitignore b/Rover/ZedDepth/.gitignore similarity index 100% rename from Rover/zed_depth/.gitignore rename to Rover/ZedDepth/.gitignore diff --git a/Rover/zed_depth/Makefile b/Rover/ZedDepth/Makefile similarity index 86% rename from Rover/zed_depth/Makefile rename to Rover/ZedDepth/Makefile index 7659780..9dfe8f4 100644 --- a/Rover/zed_depth/Makefile +++ b/Rover/ZedDepth/Makefile @@ -5,7 +5,7 @@ CVFLAGS= `pkg-config --cflags --libs opencv4` INCLUDES= -I/usr/local/zed/include -I/usr/local/cuda/include -I../GStreamer LIBS= /usr/local/zed/lib/*.so -march=armv8-a+simd HEADERS= -DEPTH= zed_depth +DEPTH= zed-depth all: $(DEPTH) rm *.o @@ -16,10 +16,10 @@ debug: $(DEPTH)_debug server: $(HEADERS) ../GStreamer/server.cpp $(CPP) -O3 -c ../GStreamer/server.cpp $(GSFLAGS) $(CFLAGS) -zed_depth: $(HEADERS) $(DEPTH).cpp server +zed-depth: $(HEADERS) $(DEPTH).cpp server $(CPP) -O3 $(DEPTH).cpp -o $(DEPTH) server.o $(GSFLAGS) $(CVFLAGS) $(CFLAGS) $(INCLUDES) $(LIBS) -zed_depth_debug: $(HEADERS) $(DEPTH).cpp server +zed-depth_debug: $(HEADERS) $(DEPTH).cpp server $(CPP) -ggdb -D DEBUG $(DEPTH).cpp -o $(DEPTH) server.o $(GSFLAGS) $(CVFLAGS) $(CFLAGS) $(INCLUDES) $(LIBS) clean: diff --git a/Rover/ZedDepth/README.md b/Rover/ZedDepth/README.md new file mode 100644 index 0000000..85f7bd1 --- /dev/null +++ b/Rover/ZedDepth/README.md @@ -0,0 +1 @@ +# DO NOT run zed-depth binary directly except for testing. Run device-scanner binary in /Rover/GStreamer/ to operate other cameras over the network diff --git a/Rover/zed_depth/build b/Rover/ZedDepth/build similarity index 100% rename from Rover/zed_depth/build rename to Rover/ZedDepth/build diff --git a/Rover/zed_depth/ground.png b/Rover/ZedDepth/ground.png similarity index 100% rename from Rover/zed_depth/ground.png rename to Rover/ZedDepth/ground.png diff --git a/Rover/ZedDepth/run b/Rover/ZedDepth/run new file mode 100755 index 0000000..4666cdb --- /dev/null +++ b/Rover/ZedDepth/run @@ -0,0 +1 @@ +./zed-depth diff --git a/Rover/zed_depth/save_depth.cpp b/Rover/ZedDepth/save-depth.cpp similarity index 100% rename from Rover/zed_depth/save_depth.cpp rename to Rover/ZedDepth/save-depth.cpp diff --git a/Rover/ZedDepth/zed-depth b/Rover/ZedDepth/zed-depth new file mode 100755 index 0000000000000000000000000000000000000000..348bfb81084aa03d9125a67284bf3fe42c3612bd GIT binary patch literal 1334440 zcmeFad3+Q_`afQC-?WaX%s`;I+<7f@TFZ3PMJ~`M#g->PcmoVRiTW{k?vF zY-{J~=iOD$^VCySPgPgf&?~d%OxNpl2F4FPdztBQJ%5p;AnISnigNoYJpGYa3cCh> zN3wVp4n9o5=nmbJy3h_1hC`!~D$7Wr5od~C1yb~qa-q>7D$F#>#VEFszRpA9mnwZ> zugYqaDLK@?WNYMW>ix*q(v=I1Mn$N2N)MH4`N%xVm%#HS@O&EG#qHOqRz4~loq7Cz zo?Ze+yhMa$Dt|jErKKbLbaeq;$2_gDpptT-(PW-bqguY7As^ZKV~;4FFo)|4<(Cd_ zzecrs7++GHKfa{khLYm4n%Wy|wn}@^Qjna+7>YJ7eB$iYBUW?qbC+)S3vR z`-eJi{brEGcW^<;;`!1elV<0QvkhI1dsH@((+y{0R8&K{IgCjx(WG-7Ha?VLbXu9y z{LGqLdVH|oczeBZ;EE-q+32Y(To)g?e)LGDGsO&It7cw|>yt5}Z-mLzV}F>W-#Evy zCUe57Y?JerJodcK>TpCe*05%~ad@;YVaKeY#y*Krx~Q1yp8W@`9j>3LTNc%)VMOE` z*_C7qwL9`LmE#(mWS7=ldf}Q5vbQfzh-Lk84#cS)gK z&95H;m2p0bb0f~jaB9aUTx`MlIL;?y;g7waJ9Xzv{kQbUXzkeMD8A+Ohvk~O zo-4lS)BBCR@6IV}OI_6c-aDQ(ADeskSJPT6BHzB_P0OYYL&q;o_#rcQ$b#no`MTHO zZ6{v)=i*iS53lNW?7ODlfByFm5A;61_m6j-xAi*v*$Z( z9R+(M4}X56+&8Uu%8(1c{OFSfBcU&8Z(UFG>mz*2k64!d^68>q-}Bh+8?Md%`_v^z zE`Ha)^u($!FUCFi^vrt>zaURLuwwB1*;TKGPwm<7@oC$JR_xu<{f8G{??1c8*OQiq zZy7af`*#zPox_jc)b!?w*B@ST&*X!b?^tRbo%PCb{Ob)L-0@KA$v?L|x*{&WAmW+r=L+V3wRzb-V@BoY$G_?|F>2R? zuE&r4Ic|qDYkyJ7i1{0SJ!t!hlV9lmklbcm@y=v()_Z4TZ~28M?RTj?pR&L9m*(py zdQK)hx2bL4`L)yBZM{bI+4TEQx4b;&jreHSt&jdt``!A!X%g@b_j4t$e{jc;C4awl z)>E%+82Uz1d~zo6WwRE)lm%+c_#)DsG{X0cW%Bz8ue4{4pO<#wwS#X>ZPb1C#i7>4 zc`rP?Wm?*R`LiF%k#C58?DdF(yCW-}sf#>=W)}3IwrC1+hhjr8ocdcZeAG2+oWkuc z$Ai6s;}HmIeb^w@ekff@AEi^XeSiRnTUQ)UAP@$_zXKQyKNbRiI)pthgpmKc5ON0e z46b)7f_N}{T0*2BfxsRt{jYlm$9EWl<9pz-zN|ajn<^>3OXMCL8bbd4AZO0WKImK7=3Mf{tM6DRu|L4`E^y&w8?s5(z0V4^#eP zz7rNa{i+atTZN3l=(| zOC$w(lH;$TolyF{Z*)!nChuR8q^9S|+2_37rttI*exo6TJtsrh|HlyRb|$yS%I$}H zmE-*o{bEjtc$gF-{`3wJH)u{0to)fJtw#a@`dIw}glrpM|h08B1o1FR=oe}&GL{~~{@M`fcZBfU{k)wp-cGW) z0t4!c+PSGhQV^~ESVPDu4be{GLc||>o(ksAbb3bdd|3=3}RL{6w`XM;87DtFK2x$q7-97Zf?Y*sJR$ zMeYdYFPX|0U8> z`)OM*DITD87&@*G(SAM;(eH+ah(Du3^t%s3#Ifr`%+nqZ5y$i);_x>i@R|^IGOPomQeIwRsVS>0T*xf5^5$9!3M&g26<1XkR_4vk zC@C*1%(LZ}6e4wb{yl~EYMykFrJ}O9teROYi%QGOELGLE%4&SnzBwQ zRfWh)>Vhk)sVeX6Ss*0+@$|YU=0bP~AA(w7gY}M5^u2F$Y3k!;EmW4KZb$R77Re6!E zvamq0DMSjvYBfc94Gga+hwG{=wt@mpT&E1Kd=bi4DkQ!lf#O}w;;yFAEfll7qOi=q z#8OnesAy45G1Yl8YTa_@yb1OtDfT7R8RaGAm03Bn=jB?Gk}R{zDr&0JD=TfwI5fd> zYfZHuD=y|aC(gB1CnXjX+Db~w?eKlp5`JS+VPz%c6_dc~DHe;pwl*m#X+plOs@RTd zLTgzx%br`Elw^n3EY+2^;_9kd_N-hR{$yok&$j2LS~Ml8m1t?UvPC6@+?XkdSZ_dC6~q`084ytrKO;%vB)5~kYA%g|h^^U8xeuAo5h+=RrMiUN2oqr9vdtMtXy z%chsu7WpknO1ho&+)-JK?l);E5iYb#1#y90QfHFAYUOspGeY3W)I1d7KfSVw3&{Do z#rG8|&d(S8R9w2KqO#l`#7`4TYf6F@Msv@UvU0WgX~iJtPPQXz!3o9Lv;7sCG{H_C zV_tdLorRT}(}Vek1lV#_onqVIZb~gJE}Ltsol|ZPW>$7V?nFyA$~ifkdaF{<+{u>Q z2^P)E6A)kus3Oa2DyxEtP`g&wev~`OQe50sDwj6}eJ!uBwwg-{(&GQUp4C;EQgxy; zii`981uCetEe$A82r~jAhSKRRUByyKyXw~TOv*1VL8VsON~RZ=fc{wD6&DmJJrqG? zqQ$%feZRcYg7{K63qd45D+?$MUspsX1R*q-0t6t67s0e~%O+*m%F49(*QG@Tt4dg- zxo&c0VHJ8qFwwzs!Y!S>hZhRbBy}lyrK+f~Ahe($^&#{=dwFG{(Dfj5N^w~Z0%=gw z(3bIkFat?sRf&a*Q@m4EGC5ZX;{HHWRg$U<8hOhq3jI+g0L+=4o2Ygee||0L>ss|bTYo&~O%I5%r<7S~A$G=;Nst0&p3p$r2?Nn`Cn6iD#;ObK*I!TlY%;5;F2V>^U{S{@s>0mzRD_}8GEC&EX(p1BTb@T< zAn*2hNr}p|$d+HcBq@oeNF}zaDhoAfq+eK0HJe+Vib}@Fgit^OVcsl?F?q8vImcfL ze|fX+!C$ntl;ZL#CHyH3gqI-ic0|WX{z(_6{P{HtgU!33%(AGq)>45cRbFN*!BoVu zM42AumQTb`q;xEru32WzRZv;!7g*H%VtIR@CCRk>{V>p#(hQO-A0HRe@ zK?zM2F@v>P^6@NGX2C=kPXgq7_H|kfF3?EsoDp z9Z0Px#e$K&+E!cwPiI#mOyR+?h#F=^c}cN-SyD3kTv=gZ0f)0ngEdt0P+?h3Y1b~- zwa1orHiNu8l+OPo^V6CqRUA37OIy*NIRvRc^7#mngC3PDN^JH*lns92&i@w;BblC} zv$Em(ATa@fPqort#vf@71vpy;o*xS6xs5C-TZ+F*Bf%g*{eTzWj_b1WiI&?ZBu%JV zhDC)^go$$d;)!MDOSJ&N8yc_l-0IH0R9;hUDPL%*qzMdf3PMxKP=^GREmdn)CFP6o zuo<%Nb@~8v!4PqgKaaxx-0G4lj1_?otid{vJrCVy61tBv8}V0r(j+)aT^do_0Y#z2 znzG`1YYHtDnDbzW)WQhvBo`DewAGYUqotQ%s8>g(?CDFE{0G&Ri0W(wKUOVklj63c_a0nPtwf zOc<9mh0VywuuOzk6lnf@Tqlo9O6kg`vW)rj)6KIiN#iDto7DAQQWti@gf47q7j8n5 zC`S}3CQ}zomA`tX{%61*LAvUu?752ohh=M~1MQ*g4y43bSjU0oQRPr6<)b@BB|Ysn z!0Q!U>y*@#gHH9GiJG7OQl4%+2QHC@w39?SDYvGLXqY0Sdq8@UL3i;wL6Jv!v1II* z(hY0Gs(u}8(&0Y?FG(aQ7F!ier(Dxtl1I3DkE|htyg(^ciY06%SDLcs&X@`OW_c5C z_F~(B(LtKZv5-#hHB30OuUm!{@gA&6xW8VwujcR8CI8D;+&2jKyRo^DsJ%BS>e!58 z_GW+LHWe#;Pqv@)HShcZsk^hIoVO|WuVEi^zEa^M*;&s2a^+~qi(ub#{$AyNIJ>5w zs&knlFO0=-{`emjV<&-;jpTgw=toiAdX@;D4%fbPh3epPwayf_^Su!8F)F0|)%Mpw zWS2di+I}d))!N{h_Kq6D1!xOT({_;3vbH3@i}fF}ree*sSv@M!{`BH)h*xFq1(K3KXv zQ@{&^^w|PlEa3A6{5k=*3OMaY)s7+o&(T283IW&NNzv_E0jKz+9S#Af{j=J!R=^i( zAZWdSQ_RzjEdoAH13?=E+$`Wb1^i9{-zDHf1bnZ6)1Djca0>W%4Fo+b;CKb*KaL9c zy?&IjQvyCyz+D1!>*t{n~mw`d^fS^*y^;PnE&K)|;MIEF0$(IDXS{3v5P1$=~n z?-KAr0pBa&_Y1gFz-t8juz=qq;70|#UcgTY_;dkx2{;B=|IsGkRzJ#EyMX^pz&iwd zk$|%Uo$dcx0gn{$IsuOo@KFLDBjB?H+$7)$0-hk?l>(k9;4uQ8BH-fuK@#vHA^l7N z$CeNOkuBhA$<b|eV+L=6N@6ma?tjCQ05_*4x9l>~f{fX@{0UkP}&fZr(K^99^4;8p>j zFW^N2jt2|>Q6b=^eiZW`0iPn^4gs$c@U;S7F5vY7K10B_2>4I|ZxC=vz;_DxZ34ba zz;74u%ggsQUN$hfwmaK+dHMdGPJ`tH-EIed6w|UkKg{q(d2W_X`q&e(Cc}H$iF>>H z=p}EIo+?t2z)$vy{=RLb>QO# zehhfCz>fo;FYpt<*9rV&@Y@A`D)<8ee-n6*z?;GA^_}{sgO3;ZTfmzIejfOIfzJV7 zC-Ap}-!AZXf1?Oc7eYS`~iV~ z0K7-w>%i-co%$aFA20B~0&f=hUxUvV_(#Fl3H&DT+Xem!@CO9`Y49F_-ws|M)~WwD z;Nu0p3A|b0e-A!i;Qs`^PT*exzg^(}4E}(?zYg9b@CU%_!#nl=6@0wF{|&rZ;QtqV zzQ7*?UnlSQO#ehhfCz>fo;FYpt<*9rV&@Y@A`D)<8ee-n6*z?;GAyLIZH4nAJsZvk%> z_<7*-1wIFSoxtA?e!IZm3I2e<-woa)@cH2N-8=O!1RpQ(_kcGGd>QzBfv*H#C-6(a zZx{Icz#kC!2f%v-z7D*;ho-;2&qLtj1^!py%>w^x@c9D&DEK;o-voZUz&`>0fWSWu z-Xrka!Rvc=>i-S+c!6&MZx;C9gU=WEKY_0k_?N(M7x+JeKOpe0gZBvh0r2`>o%;U@ zK3?Ge2Hq_2{|i1};E#c?6ZjM0w+s9S;18($<>k%FIQ{JceIo|w`V;xFvQsa4T~nBs zF~_lUxw^*Vz^k^KB81%Ue1Dl?OJU1xWf_!*P)X8Paz5Y$> zm3#e_d*8y&J^Gtum!W^tLgjvR(;DSIF9&cda3^Hw9GTv9Bb%&TugLW7@5!%gf%o9o z)xf*)>k8o4@aq!b5&XIccsRc<0ItcjW_oRUHrYKz@;c#f6JvkF9`-%wa?=~XU0`m! zI7ISZUjBwMZ;D4f?1xQyhtV5nilWDiqiR``v99pxpt zl#gV`nR?44AHT+zNyl*H_vDx`5H%YBjN4KYm#(l~@P z4axE~Nb`!ArUGdigfxz1nIX*|#5C1N;}p_ZljV!3vuDLLwMgR<(n!hjmq@c&OtS)M znBY58vV0n8)*;PA=(L4PUTSye&@OF^?RFV-O?xg=`-*OQ8`PJP_>Pm>mNgbW(=}es zVDhGFf_VWGOufRr2GrYe=t&BpwM3O*F;x$lkWgUeeY^n zeT`g)JZ_|AnFrGHojp2SEj?u42A$WJ8@|l-h9m71Y&?y0tp@fdL;K6eJS(k#azo}0 zXRi*|vpwZ!rQRLeoxMAJ!+WOsHuOw=3+deld!dc@l70Jh-W|~8hECV&Uh-dXkMtiQ zI}E+$H;F>l8$@BlUx-3iK6B)>0!quC9cJnPagyEmj?_QV>RJ-6cAhjVow znK|cNa@l*!t*;oGTQ)>2^L(hg>~7IrmYf4FonByQ-U*#l&eKTSI(%-b8#cE-+dH)t znB6(A<5_1+2i^B>gTMxEvA zn%T?)X$^=o?icjST)B=kBV>JwIz5ecpj#nr7(u?kc>vestKSUhJNm;*zRlaibBeWl z&-2Lp*$c+z&kRvA*5!6RguecqW0Z_Fv|U*D-?hd$O185E zIUd($Q-b_yzwV9aGRDYp;9Gn2Xr%TR$41MZ#dj-h%=4V7YtK$qt5h@PjNUd z;hA0yh>`9H-Q`cnmf2Zeo0-Y6Om{|N_-9>U3quS(|3YT7Zv*o_0iI$o+4SkbzVdVM zoe?p2jWk6rjA4x)#7b(H)lsb3%u?lo9%$36jdDwb&YOX}u84H61O0^Bew>lw*Ucw% zh%c^ZjdGl0jC?ozjaBMnXQy0KD)nglrUzT}H2MDX@sXwOmT0-#uFT8CU$h$=yYJ4t z>|Gqz_4$Nz89T?Tfg1%k>+~^zOaKHVP5ymtB?-o44ku9rL}I=dt0{Yy{_C< zY3@6KEx>8PX6)8}-}ry+lY)R1!?bz+BYu7eS3 z-J%Xo`zhw^M{MY=^A4ao_}+||#&(g-r|mIv9Bg)H#K_^OlM%3)VwgdX z@@Djr(;@TI>!JT)*s>1iBRDs#N;`eM!P`3C;B{?XmG&{WhwNCDZXHJTr`bljTOph3 zlA$hLhH!Z`WGX&}jjlW36WH8ot7>Nq{H|+dA&$U&xIb$Z9KhfzkhKYkeb zg#18h8Pfd>ILV=WaqM~}PaVbka^}4c_eMhBCDiw4Nb``vkrM|WIdqPkh0?A{2TpHG zxa@{6+$h(D)nW2!!=R>2l!MCSfuBBuF5f5c*;hE>FW))T0osxa{``#l?Nij-1>R;F zzo&kCdn4WpoiV+{^2n}M!w}iE)$FCZq;{mVp_V~tdlKq%kn9<+_j>GoWcN0-muGQ4 zkMjkz?F9xewW(GM+Rlrs(&nKoB#&gZt{$rNBa*4evky__Wekx$6Cn>{f%|31c?IV_ zoChIq9hdhAQlC>|8e(Sa>R4G% zF(PA_Y(R{lewQAZGunf4#G4v&T=rqI8+|QKYRK`ROdiM>4qH8FL)14Z_P9|->OWfi zY58nbn&%A8uW+729iBnG!B?$c8N8nFSEbQ-NcyQwwHo4-czXI^tgPs3iIx4j5DS#{ z3|;Zi8BCYk2l)one+16%IENTjU9q6ib!o@Zu1Ob_v1N6zOJ+7WSX4&Ip zr5qV?YHUTnpfXWBZ5ddX<{5%B7Uyv2m<`#eyOvvxUeEP)X-}g(sW=%Ms>BB^E>Mi1 zcJHM4U_u|)IgU}^r`WIxc2QiQdxXsef1zCRDlxz?plKQS5s*nSKi&%8!^a-9O%v4# z>cItnDKQJaA>Wd3JiISIfxK$}9f2_^!%K0#v;W5P{u?iQW}v?f?<>27NE*UDzb^%po@c80kD+traV zLWv2w44u*z+<(BcieZ$@hBNu42QasK0d};El-)DP_c(9GnTvA)Y_)*eaW2BS80UvZ zuQPnWI`=2YQ&pF?2zuTPXYYIuKW>}KzJ7BH%iC{e@8}V06`x$nJRWDnTnOvTW>ALb z$(xz}48t=da}vL8+DxA>FaGR`<5EA}x=-}_Ggbpzw_mS6f{jvnv5YOd*~q?*jby2g zNS5b;o|_}t*OqCl)&k5G!Lc5|N>ohJuqa?ps#rrfPuCCFTPlW4IjX!EV3$dGCTUnAu%UWIM}v;1O9nPa z#h8Yr09&DAR?H`3f2*%0f1Lb*$v(^pebM^ni$6?1PJPKY9M|96f7~}v=cVU!-*>*v z`+u0eLC*%RJ260d^uqVLW?c{6I`{Wz*F3Kq`7R)z2YDQrSDG0+qC-4LKwbyhcEbav ztzY1}Cyndq=M>L3qRwM6KV{jdL+8`eHu`*fq?OW!mvsxD{xi-@L&ZO4kDBrFIaGHuH&|rN%|o=fID>by2%2DK@Rr=MVEd3;R~YZKb|A67l1cZYh`k<++Z112=h$VM$8?~dw;6PoUqCr2eo2^vwHzEN zn_$CsltUSdC@vUcnp$|;T9m_sG%TuY7{!e?j9YG!3HdI>d(zPc`Cme&)3jHKE9ZFL zLSXcqgRuzzjF01(2e!fI$0*kP;6>kkJIjmu-%bA2U9zl=H?p7UFB#V2*?SWD!@bT* z{F8d93)iCA&Azw8yyz$Qx;{bwY^h7Tf!fV+m;60 z>Wuzplxty+YunXzI?B1u2NtS<)H~8TFxS|P`|gUmzQ!rrFb~vqcjGxMlQmSFkK zNX;hrd_--22VSN=ariElcRE~Z{Wu4wOX= zABLTtO^M(Wz`GVm-r=?J9VdD*`C<-}x9Qm#^fx*EQ(qp{=MwnNZI`^tc))bQ#>Dyt zJWs|suSefh$HUiPJB^2g6ZT6g3m*?(!nKX+V<}<+#xsm<_0+aJ_EG$~W)z-J@vMpG z8XD_d8KY$PQq;q8oGWpz#<<-*%e&r$X^_{ySV_s&Jk zJ-u>za|HY}nzzq=XuCHc?z$`)UK%&tD>J={KAHz-WO!TbnO@4%%8XmxJ#<_9A^yZ7 z&oc+4`;O$WJOkDTOmWU97G9cuJbc;0j#w7{IRkDt8rE42hIRJE_F6peFJqBXstIwE z#-X?#Oy0-zi%ZdN9kuy;V~s4ycG;I_V(NX9k)_goN>6Fe{@}~|4EZd&h{fx_^W{AQ zKPo;p#bOK_B2$cWTj0Mc=8b@TREKxwcGg`(G|M9&tU_C%Ho{ErKA~G?gRQ#H8zB2S zYeUYbh%cWWjF&$}oBR~(5U{0whCynk=Vq3DAnlVCtZ{k-+S3u%Y}7e&ruUYb58__B z!I`G`p4v6q^k)ZI^QUjKX7^G&Cu811bNA7x2kQZyJO$KuaNsgmmE`rTPEzItZj0n~ zuMYF}$6CU-sI$mO>9XY5GL7PqmHBnna`>^VD@~iMe zGtMXNF>syNR;Pt7GAe|H~y+&&>%o#uI!wzNcRqugqai+0y1n#@+Sy&Ur91gy7 z!-sBrUzz65%6t}cFyCyP_P(jES!{Rff-G-~B@6M=cxLnrmWN%`N2tvyu@`f-<&Z~y zZ#&pWwqguGJI&GM9Y_m@zg-bO$G;tmv0w<+8t@#2weIfjgHkh#VLyw#pEc54IxdFw zp>aidc7!|^=Jr%4HrVZ&VfK=3+PcsR!VtsAS5$tASL7S*el_lskI9GoVHdThXHXYZ zN93oXd*Uu>byrM&K%3KI#WQDpc_qNyOHt1>FTPrwkjDDs#EZ}=#)*~SwK(xxTvMB; zwjYNW!fMS}>$|%H{#w_sR`MppzYdR->XKOUs$S`-l$K&mJnZOC_C+9GUu8^dNaykX z*kSETjZ^GT*M$JXjHi*!DJb)D9!T<1XOe4gu^ zjedjqxKjQXRGt3vBb{I0A2Pi$nBT{;7-h|IH0fJ5Gln>8+ioV$a`jF1A?^fu;^QGp`uP;L1 zz^m)SKZ2~zkuJ_?_6_9v4A6&XSw-KF0DVa3*B49Wi}UMykMw<(an&~Cx`FH441J#& z)HZ|XbQhk}6@6!rUu?ff=hydD2Fe%f*Vjz?UcS0M=NPVU3iQ3q^&N-4lU&~`0s4^6 zuWujp8HV}wJw^H+zPi4KQC#22>CL`}xjw#*q?B)6fIg)2>wARCH`K3h73sU<>iQfb zxW1*(cL&$U*TEEhn5%U0C(`-#VJ_h|4DstLBz>cPHhc)IdjC@JyqBVevKu5P1i5V!FT z*!TvwaRF?^y7~>!<2j<**d-1kt>4bKVdv@remf21m(5q#>FCdOUc~#7&0J>&bYh)f zsRyiccJT|+`Soohzx4O(`;5wnwK}Js?QXy|%^g=W)30cLP2*+Y96N5EFE8P;Zy@BQ z;yEi7YYnN@;B^?wFrFQabEsqG0j$NeL7s$p!EaC|Hk9>^J*2xgZZiCfbw7FsM)zHt zC9kzF+vD1R_cTPYPB@NyfOl1RA+nL)Ta8ipNI3!YqCK-Q8uJM6;w-$AncmnoYDVej z<7bwhoieM`mC-|fA9>s>F)ubmkMTrI$6Q^)d|UT7TTiy<^78b?bGc@`!_H{LJ5!nV z{jCX@-(*0?VU%Z|zTX+$SH8Ua@ebB%W^xkn=PuE;L9wrxt}(~B9{6fp+st^Uf%(in zlxZ*WyRdc`Pxj;8iHRuIa@&dGz0FVskCq1$h3{P#e7n<;Zx3|2@J@UTuItb?89isX zCd%pXp*cqKTCg^5eI5Qo8j0R%!KYt|zBggb3iF8puxTQE^eV~2vxpx2H)Io@#eI<7 z_XpAw({u^fW9b_6LNBhf=sF`#zJTky6+BixhwG&ZK1^=Mb-jWQmA}Asqk<2SKgaa} z1s^0+d-_npW8_v`pI7i`nfg~Q*#m$41J~UY+xp8N;yMx6Zmc0&3Q_C{z{?Nio%hQ`v7cZM(Swoli$qcXp=^3VNgv&`3{@7Y#zzBGV-%=vo*sD<;Na%vZ-hd&o-^=|qn#Q=R%GHjfV zbQL(=NaMk?6QxnskJ~7XuIYNDNu&FC=U#<4rrwX{ZAaHMTq!5^Nuj=u;+o7H=Vy%|Awb)6ex`Y1{2oQqs9#zf%%*b>)6|Y6@4od7)b@D;Kgz68GM>|p#(`oiI|D2a zW7yHSlIa*P@GQh)Pf&Uqw*%A1Vf{DmQpSe3OX=%yZh)NKSo1w5ZM$vl-*l|H8J?N-Aw!TEIV^>Z1Ib&L=IBP}chfbt;C;?E#=c(pfWA?Rk-l5`fT7W*H#V+(Ags}e z_Y*t14aIU*%t<% z(|*a_;5TkJ;k~BhZTW=Z^)L2O9yBQR@oh$!yaax$!~P+}7wiL4_ZLx{dl|kwbWW|u z2gSWDNav_y^2fNxU@y&s7}mbpuwPL}`&4lMLPT_<`(_9BqTrl?b2d)wXIg=>(%uW& zZ$WEA@i^V9X&$AMPtRt}-(HV3s`1R*YG=*orr`QU#0`{--i1&)haPKT!o33ABO90m zy+a&n_>En^7R4^9IW~&jyB~dAk&pIrE$R&YA_;r?@?39Vu632?5EI%TmC1ESI_CIz zM?>!tu-C?Aaj5g{BQ#eN)?JVeF-3ik@V12X1C=$09#l6N>#wQ{ZBWs5QNrAw>*9V> zo+q}dx~M<-*Ex{ZuWy@#y;bVEzVjPj-d89;-aQSZeWecQ|6k=gy6JvgQ@o-05)MBR zr8G5qbxf{Os9v5;Hlxq)fgDQXRr2e`P;AuV>3>QY#uEHu{RH(}79};)*kbNMbEMc4 zs86QJH!-PMVys!-}jXF>g=)FsKGbeca=MeWRG@Rzsq zzM7679OiL%qi?OkxS`o;)noj|o@i}e5Gr4`nolWPU>=kO^N8U3%>Smo zP#sg<~&rkQOKj%Cd_lluE2EHhDb-UOz%0?ZatrP%6LJ1}36>6EXhK-Z7Ig zy+d2Wodz3dEZ3oZ>u`;C7hT!~+Vs&l?2QHWl75n_VV!k=y~4N;{eD@R&(40W&Nr1j z681qMU4$qHSfCu=*IW+PcQiR4a5-AJB&sj8Z>oRV$4l)zALX(z!x;yEW(|WqR85)6s`Dd(DuqVK3mm$UiTn-@)baw5f0T?d+UiQ=8)R z>s>UzZh$@7yqe}c48FgJa@4?H1LoZ}+{e7kOJm{WIa1>%`sf#&gQf2pu;1kz=G`lA zVqX_w&b>06eeK4a+bPVsR~Ai7IgdIN=iSZ_^X?6pcSj2IZa4f+zFdv`t}b(K1LoWV znx4V^)#OV)=N^gv1XmtqY`8oIw(C$1<#`rkc^R)mCn(Y&w4#2{rghYwobmE^em`}# z(>(Yb4@kSoUo;K_#D)V zy%{TqsdG?kxFgNlO`Y%N$E$NtZT@LPI&J=Gy$)+$%KS50>FZjIn2Y+*u4x?p7EnEhqc#_*IQLb z&jq|*`26CtcGQb7*Py<=1UAugJ6%`d`ZxT#0@wR-?XNH1mYAfMKSq1Q{s;L(qWL=c zeWKej&*9_qd(d-v`K!XX$C|Jvva1R)*NV91ibbr&xchB1qj&V)ZxJsT#+ZT7Nqqvp z|2Vn^;}L%QQBQUieD@5;fTeHou09aPGy$?>h$y~8BT)A(=2+OB7pBPG)?`hD01 zgMJLHjb6m>P&y!&en&P8viIxbhk0;Pd3C4@S}Tupjg{jf6NZ^_PGl*=@^Ib^e>Uh@ zGW^;6nPK3V^WCx6#xP*aX{0wmr}B)CH9vaRRO*!7AWwjN;@hs5E{pGIXgwUZD)VWK zw~!Y-=2OT#4S7LjHH?>Ie}pXYccoZY>m2v7#z1Y5;t(@n+()}w3VAGQ%rF}7W3j); z6HRM1mUA z$@wSb*n-HRJ-sBy202(4I%;MUl5)4ANmHTm!j=70}EKK&lFf%i?PxL$_-sI8Zgzp2kW1ONOU{X*rVo1Ows?=jB6uQZ<` z9pqc`y;YfG>Y7TRgZl47pn>aU60Q4SUT4R>i;zR(gfAoP9j#ALA0XdeM11nVM$hx) ze`*_gygxJqeLwZ(&D~1f3(zk1v1Z@Oo{c{2bt}Xgm;0a|`)Kv@d}^EfFjne!TYQipu>dsT+iYDckl0Tze6F6_Tez%}~um{!z>0do!N%Xl|=jDA;_ zPI-~Wjcb=-aMQ=&TamT}HhBy~l{qT)@pZt-o~m%xr|Krww*$Ip?-kjF__g@V_f#)~ zn|{H|L49p9@-UQXET@&AR4#gtjJCA_irgVQpI@ePCb`ZY371yia%l?pyPo^a^q^0^|rb#kASH$9e z2W%!kbigMqly_05FAn$Rz5rEy5##rT$MiqP$QK^>-fvtFXE&}vc{|{Tjrcut!$XAWGzb0W=Z}j!Gpwzdqf1~Mto1eLRur6g7#V>Zr zH|Y)NpN_K-C)t3$-%K{352EiG6#erd%Y|4+{<2>5?Izzs_Z7a~kG;mR@E7?O|1QBm zihGcOb$O#q_R!vH7utgR5vIKNp?0DJeonz9?@h=p~>TLZ2Iu%^<79c;hUFMu5e+OK- z#>E^-bN`L0@ z=NRtMICBUyB~TQ={|mgLi0`?+M)w;%w$ozt+~Vs7$nuLhtQp z-e@vPjcXzMB5-RC=E~jB*Z;x$x{>XsevUj!+Z%xPMdL5MCvl-%1JL)WZ5~H#w+8fk z@+ZY2WqwTm7KQR|O`Xf@BhaqVwh=eZxUpA#JMuFFp7RhB-h(aDW#6O|=xelZfOLkE zBd!}nuaz2C;x|_ecF{Y|IM|(zF`4x1jSTY?^*t$-o92iEai9D^&o8z5fk(Vp6JoxM z4K9>f*Rk?AHawUbbIiZb5x{C$E2eF?5|3Wy?jmT=z`vxY01+$T@v9e#_SX%nJRG zbqwh}h}RU?sBC{m89&hvQrZH|X(+x>+iwGY8`=i_J0af1nT?w(S>qO7cJjsdRasaw z|Euz>LvxL@NKgHaDSlvQiZHjpJm}a!ocR6Y?i95D6Sz;h&^BO0r>?&vFZn1AX(=7; z`_TNOu5Gd=@<%@_+BUCm^4E9hljI*}=yxO)zt^UiuK8zq7yk@tvhung!iKDq@H>Vn z(b(f~PwL*2`hn{P!@sl#?UH^l_YdY)=%>^MDq-6`eGKd7 zLfh!-pMFg{{Ql`cJ5l{J1m&gnLH@b%`~!-ANSErLPF)WQ{-JcLf5dfFyvswZ*V>XA z7xYbdu56=O=%?;d(OafXW_?wA9Z$ zxYi+#&43*X58z!t`aM1OV(n@-&4&xkOs4mm>FAG`|0wURT+lfJ@l-!T@*1fhN51z& z+}i$I>+Z94VE@{le8|8v5@HDRK6qbThbIjC_3sqzu4CR!y#}Dovpr-N`mlE?WV#TKT*yo1CmW>5{ZFv9 zx~-ei=piRO1oZ zd$JTrz#Y4P2eur=EhhKik;8_;F*oH+XidDaf z#C#Ze_hBy+?Q^1-x9^gn5%ZtTtbyL~U8%dSS9;_2^}5EhN<2~5!^lsMVbV@>DF-}Rk0#lB==2|nGIG({m6 zTgjqwd^@uUANrvT?fl=hPy8QA$>&c$AyG|l$Jb=>87$?qRB9F_otDoUm~V=$Y*}$> zMTzoJok9yZ{uv_0JimQgLgkx~MBn@>P(I!zCFd6} z`tgF>x!lBGtNw}M)bA&)yjQV1nClgz;Ym&YS}yk|*?kqkn%p)n_vlZz`zL<|2cN3- zmq&U;_18}+&%dQmX^owJ+{^VgaQYMKDbbQzSXzNky`jxgQItdTV`BYJFHbOmn!L4K zUInLD*eTdThG_lzRH*c!+8@5VL}k(RM#}%H9Fwc)Yd~TT;UdTkznp9?Cxz21>ucHGm|j>HWTne~(WK_WCeYI%Mur=8z>!&eiPj{{n0l%TMlg6~%^ zDPLSzi4TfRs;;RhDV%jn_VnW7>}-2hF+Qe+zUc3ce))Sf`8+=VWcm1Vn0hG1^vjLe zC@FxI%T@2%6D+eI3CGq6sNUSJYT6wO_eHT{7B$&tDfsQ z#q%|2l*`}Csgu*goF3(LE!UI4^~40|iK$ohrf|HWM&EBCUTm>sf+80%o&46OVeX zCxNF=RR{iog%nVRj7RZ6+kmqc z55WukQ;J_G>HS}y#a9-mPQ@n>?d4_ozFv*J+Ei9kQerAAuQn~g7iSBU)bz(^_Fsw@ zHzYy2`h7R3#!{Jj4Yf?;af!p}^Z7o(_k}+yZi3IL<>hfw^ zNy2DTTAC@*v|@#+03Y%*#ig0%-8N?q?JQ-y^Ers{GNB{$iX?>dj`#_&1$!pbH1dUbhKr5!2p z`Dc9c5uZg=a^Z&@lO|23%P#3m_98st6qck_F3LB>nJTL*mf&mc6}DxjGRRHCMWU&q zIxQ7B@o7#7Mj}PW_}UwgaO}eJO4yfXo{^*7K&>pnH;Og3Yr0v<6B2PpFrm0?v1kMA z%f<&uE6eSL_$XxAB2ykd$~x6VcAHA8x)IerC9mDOL;JkB22dg#x8jS+HhiVGDgZaB zAH0T~5YA)4Xz1MR7%8NpV>rG}n|B+-O3(AnQ7DTje5r{1H?i zxe8l#5xC0gstQvDK1Pab%?CHBQW>NCC?FfZ5FaKUSyZDKrP(#rq<*T|M4t~|X0lbI zOIKA)9X~#4!jy4|_%CVd$SO5w0T-wnVz@CG@%KTR&=qb>4(00%c z&`266-uC%Sppl>{pi!XNpfR9Dpe9fUXaeXK&_vK(pedk-L9;yE&<4=GpnE|NgB}Gv1=< zXe9bi1E>VL3om+hfgT1u44QBfA4T%hM2{^vO7_z*7j|#|Y3lI32(f z2}|!~ddm2;!Ms5~^B*4{hj-M2@>k5qJ@B zD!X>j^=~;ISl&ax=OcX&Eiovi{|I6NZ(Ee87M}y#(fIEZW{S4^4LFA7G zz7u$${h7eG1WA7v@cJNlHSo1T@b$nQzys~y0lXpz{wi>55d2->*+Jx=1wIpap#4Sw zDM8W?1)dlLr+G#~5PS}B6YxO$3xG!j!B+rhLGX>h+uyjdJ^U7U8*s{|9n{Vb0XP*T z{YSu$2Eoq*KO6+_fw_khc%c0wfbR-|PXpc%1kVFrA4Gl$@U_4L?Oy}DHi(=jffohA zcLSdv1b++oOyGfWpcS|jB>g4ei9zswm@}Dz;A4SD1(BZ#JQ8?dyt<3yf&Q!p-tpHf z{k$G{TM&E)@KeA8%k?Voqre08zRU4Iy=Q?tgUB~xF1ITPJ`{LE5WUI3w*bdb?LS7~ zY7X#v;L5nj$G?mX`i;6-7y;i^hd@eK&E+OjZZRE=ltQ{Ek&f*8SMm-a9hK`}$vca5 zhzYBP65WE_AQ2D*bXuS>Vxv1M>+@61?KO8IX&5XwftmfGSX3bGX*=9 zc0Q-8op&J}`BBtE`sqPGSif2ioctS@eh2XSAo#1m$&SFd@GfvFpNP|3mJZ#0*>jYc zZp7BVV9(zWZN5uorm~U$dtiQK{2sNO-Yfg5Zckrh-VnJl!u(kHrm*RojlbyjkB?8j zcY^w9I-Xr9UnV`v{MqMw7uQ$j$=GbXvuhqoMt)d9&pyyc*V-`_7aKW#7lC3sxCL@l z#hIF?Dg7a&PeA;&3h9;l2$G)crSd7`2bJ@>5aqn9tId=z6X|K(e-hV5osv(P<3ksD z1(W>r?q=*gD>$d5dnHzd+?7lg2OGGvFoIIt~9Qmyu%@;8reHGWn zxk^6ismP}z%p1ZthRt|PskZlcMU$Sfcvh@{Ju7gHG9*3~{&bjmgK?w5{Fpu)(s^1$ zapj6qDQ&6%`Sv28(qA(C`MQ*24$|&`Jq{W18S^yb+Ze3Udnx5GQ#qznIexJ@QlH-K zWI8nP7I=HNljcrNFP${wry4k@eCHvr0)CkfYJ60Y=QKQ(^7NF<4U;!cn(CI1E)IZ*#Pk-`T{niV5bJ(nN`mmYj^#*JBsgvdp-cSGN z!}Rc3;WN|2XNTXC9zHjG&YX|`!OPOCK1Nld>VPnage*veCih3bN+j zlc(PQ;KPr?XF~oh5I-k;?u;vCgvwodW$yHDYLU{r6e(RRQo2_1bj=s(-7|h-j*4!l zPNoO*N_uzul?G-0_~K+!%lA}|r@NaUi`*1pe%$y3R(`r|ye4yV_?ED(`X_aZAo|0P-v6Mpl!`fu zoHdXWgSERZawxZ%atji#B4`@KwIYPmS|F`&7_n)yOW87L{8oIfSB7K1hdS*TfylWN zYj-J>|1%|j5dYdylFm}x-Gx)zO9|ve(YOu~#+{0s&N$A;BfW((YEhiA5}2_A`P$K5 zDD)bCspLDVPk$=m=~3p*@mu2NZn$pa$j3%(8veNHiP){fp1d|}=FqTNL&9zu95#DU z*qoTKxdX%I4G6onzrL(n_`L92DFP~y5E1d?e*`$cAM{;{#=LkJ)&f-*`2YHRy597R zzgs84m2365)Sz8Dsa?m`aEM?!qpXMFvcq~KR$$KZd%Z})UB)dswpYgm(EH(PBUbDW z=~`82Fujf_G43$32A%P!k-e*%gNOXLjOyK&^dw`NacvgMG&-`_9OKRmR%`5#*iN0X z!%TwP%@Ah1l+O0*jpx(ZCB5-%I;%GrThrN-1|#-@?lu_f(^;D#0e2gW#={xxw?^YB zGuv%6wo7bHnDJC5`)!zUMr>&ffRXHes&Ld^*lwLwx#&L@t*{*xVPL1=PTJKjDK{qNozmljka8p9ebaz6)~@@%}`N=_0=sYcC={ z7tih@Uyiwu$gdCJUk>2YFox67LnUl)s-#@ukyANdT`wsVzb96X$k);pI)w8voDSyH z#P1K~JU5?x`-88Xpe=fd2*c8`a%2yX6pAT}a%_o^6xvN?*)*DH;NZnn_Kp#c*OXlj z?pD^ePqh!TALU5k8Mzq7-Ak`Am7{)~q)-j-7_0J{-83H3!QJlH|AS90&*AGOHw{KGMwVawb-OKYw-K^f9k&!XglyF;qO<8q~DP>&JxWpSK)hJxj14)y| zB_@wnQFa$1r5aq-5ILU@m<@a&>nKqLY5|m$s=PL#j|||W0(fnswU%Dn5UueE0qGM1 zcx_{|mR<_DuWeA)?9(7;KYXhVsfUghW8#u4Y-x*T10Po*u&eTKOaIV>-Z9La_Z3DU{U)wOR=}#rcBc1@PGcyp{8sd~IXB z#{VD6-UG~v+It^QX70VY>@2X9<+3boDX#S90@6W>B1jQLdY2|e=^X_{L^^^Lks?h& zlp;tG1RK&UpeTqSf{0+jhJyNk&&edScjfc_J^y{4Y-aMl=cH#&GRfQ_S#Yz_KG9F_ zQ$B9upY7ipe0i4pSF_yj^Y2Z3?`OIHFw6bPEb^E9dlUapS#Wb8BGFH;IT&H?%>fA$ zzd0yj?#+P-b8ik#7C(Z|g}BXe&K>X>_T(8i?S9EdUZ=HQCC zHwR42y*UVC?#)3Yb8iknnR|1f!`xSVv>vC_+?xYScl+r#2R)KZetfGQ(k>5%mJiM z{=GS1)y=;*2eqQU{JIhK7+LD$caPNf^s7ryS_pY`ugK2eXa zuKV{NKB@0{aU5YkO^v@#nx^l~L^V2H-_s&C{h5hzJ-++zzZg;);^62qXH03VJP)rH z5rf{7Vqf2QcHd~|2dvlj4TWaz4~rL^p~HHK_TuFcj<_x>9t(*QAz8m?At9>%w%rj$ zqs_fYLHr7X(X$=yM4qB^JvFBI+^G6(D1B<&X>r}#@IMOUa&2skRoVYgj$WyVv8;iw#|q=>G{Lx?EyS#7+|d9d#yA@ZfUi5^|yP@G9AUrj&))~Xsc zkbeZwH?W=OO#VemLOZ}Ot0V7)#cDv*kTuN7NN4FyYVU!FIENT$<^3p8R#BOx|9(4) zdy86hf0)sWK&}u<`bCjpcxx2xoNz@ zoDn&RQ(6=sA&F*4b$XF2wu5juomSzyUNFzZNF@G-$E@wE|wuczu5wMs780xOZJ(lMC`r1M+kg2J3g-t4QqX2kt%1|abvhR_n1`4-B6WS_sNt$ zF8Acfx9GG_;>V@$2?-iYY7mK2&xM%3+CdcJJgK^TCq)Zj9pH2e+K1W}`A52_jRjJ* z$Ku;yVACvam1HW;{9DjjqKl>KaWf>Af%?jS=^|A7QIz?MQq}E`Ups#rj1LS;)M9L- zRG092H1(WReK3&7QJ~RYlpxxmNHZt%7pTS$-N|*}?y-E^`Z81hma6T@ zh>)Lvc0Qh(DXq#;f1icIKf%aBlVCfVabM4@Fps0IZbx000Ih8LIA?v&(CgYc~(Np6gqw9QdD(X5z68@LkTbUAQ~*Q9-pD&O4E zB-$NT$&$F!YSPD!I@HLI?p_ccup}-fO^Ujz))J{T4FO@SB~eicx5WXp_;gp@2V;;s z{j(q}F(eVp;DnhZvlRU()XmR*01){pA!rA$#8!B z?aD&`ELR<=79{Mt0 zR7BUgYEB*W+vx~jLRfr{6q>coRbvWcym}1`+VL5%L}^k9G#G&?+P@flF)hHK~=fG=*6u8XFpKk=h6<4L~L?5mIFvAdp zn=}jg`_)x%FVO~$Yyqq-;jFyKpRk9c9jk@ux#ixo1}Skv>h2X0=1AK3In|K$!?Z|I zeEl@qq4J+(nrVr=A@z375EJDqV81~UwunSwoJWn83aObzLR#y`z`u;w%A7hORSJi? zC_?!={lio&lO8uR7j=1GNR@s)qDiSBq#2UXc>9og1m-qnQPu=jpK#q)e`t%8_X?>G z&-;;d1lB!}XMAu-6~TD`mLCi3u|R%9Clt^4kP46UN2Vpf));wz_+rwNA=UCRpF{@& z4_T5PzL+#Cq_TbMk4zUp_{oy=@WrI1A$18&p9jK(>}dLMx=i%QboW{0X){O|dzn-L zgc_Elhg2pV2&tOGV3X0f+XjSwairkcCS0Z;gHAkLnLZiRd6sS;Z9emKNPUH``ZIGQ zSUcjFKIv*m)z9H4@naCawj?$&bdEXVKSJtJm~O1@CRi#*T#iGV@hisB%3&48$RG;= zq?3@kNVJw32T@J+!|EK4SFn}_AT+lmT_j9u6;_vS_=)NR!lRa?pAAgv8&-!gjbu&F zfUv@n_yK7xB;hiBR9H2_ck-CN3)DlFo~hiJ`BYf-#7;S8UI2?uX6k(CM#7{;VKx49 zKZyxBg(v_Q^a*YJ>xj37)tBr2`n?0Jx|XS1$_@|3ayhI%uIN95+Ji92lGr*8>LSGS z>Jc>w4NOh}ZN8=Q6EKs~W)Za?;+&CJzYEizyL{H)(L0N+46IGJQrweKFpzu9~3U`(L_nnYlWmE?`#3$?gr-n0RJT7Mi|2 zqPk+igfl-M)E6zCu5?W#eM5%*!-c6Z-PiBKnEy*e4SmPv&#@D}t;HOVsDmFn2qulO$D54AE}ll)IN zTBaXTs_-5^`!hgYdkcEjT%1#CH^wP$TW^8?>Hm=N3+i{|qMjecPoO4XvqY9^)rG4^ zI8IiDs1m3AT$BL6&MjnuNu;j$8d3FPdtc^3@E^T}3}+=%2{($WVSD`wc?SG7w~*mZ zLI3>xw2Z1_8Ggm@1OJO#$nbze|9qK#(d46x{CIu^KN}WWbs1Qu&~d^^`owsr$B$siUdSA zmKWXaP*i<=PehxTo56aIm}GWjT1uewh)@a^iJ~W>s`JYLzXa`)RZ7i8xci4g-&aw! z5yvMv8YdY837l`nd`+uz-$#|ix)9^VfZZP8+i0=pA4D)F%xgum0kFFReAN(SEJrr= zQE}g7?g4D1!GnoDw>aT4yiX|~V&{Uj(lRq8_GkubW_>obaGh_-?*{9z zWoAk&GY^B=(`Q};>xO08*!{#Z{flhsE61<0+AF`>l*Zn%E3swuu z%#_$+G&A@+n~EOvOST_aqb)O2VwqVqL4AQ`5$;p-z*=XSHg-R;OfR3Hh9&!X+Yc(f zEB@caGP6N~`e&@4gezd(w9HJ2Jxu+#Wr7;s(bt(TzYw><{ihi)b7+E^(a>ks1FNlN zW=$;9A4^b8%K4Q$7}SaXr3;st^Agl4oYLn~SOgY+I>t{zro=vujul;*pz@dS>)-%b zpIBz5l4a&Q32NChegRx17FOZ1)T>{zO#dW7RmY@_lTZ-Uvj3$Emzft5)b~UDQfLg; z1D2U7vAL_GgZ&2Pk+5iu@ktH=Ym#MhH1ton*}lav6!lbvB4J)-l#9VyZJCrUpVZq^ zIoCuqX)g%JEy=3$?F-g9(NpPnNlpI&)a=;frwbsS&ZXcN1q;scRJgXI1=Ar^*$PrM z`-xfasqL#>O=<>0cS{PiXQIFDsnh~~+Q)+W?Ej$abfi4rS&D?Cs>On^*bL@-aETT0 zijJPV`gvrZ!E#p#6l2PrmtB%byE`Jj0sBuQL21wu+(!8yOSqR$;DPXRINO|i{YPrS zR8%`$;=dc+Tg4<&5?@7KUCK7%Tv*%#VizKpeEXJUS)G&h3#~$2%60@VV#b0!+eq9h zSz3a!9=(~Z$Z}YOVDB*!x5&EAHORmBfiVE$WkbG&dXac+u_LI7wl49hi*Zhf*0J@D z;CFISYNJVaVYZvrG>xw3$=lqB*oZfHMJARNqG-!IxfKttg`(tROOw3izH1*SJW5k82p=vTNqRsm{XkP|^jDUKzV7!dg+{>?EIy`1@f zCXD6dMTzSRn zd7V)MUa{%kQM^&`ip}t*^ZiV3CHu3yz3k8SuCYJI%W<4|bG?e}&-0qGKi})m{@Vvk^Seq{xWX_`^&vW?62^)v%k{&g#8!2 zU)f*lC8O(k#a{AivcJLW#QrPZDE43V=Cl8rw~zhJ-YNFCc)zp1)ywr6$#3(@vj4i* zg#GPa@<|Hc;gx0o4X-)-JH3JI@A77_zuS9*{XO0Z_V;=>*?-F`^f}4z_v)~Jz#G8+ z+uk$mzvFFS|6T6@`|o+*u#Ynl$VmlQe_S* z?2^R_%N$h7C5xrW98|m|iNpz&^aw2tSZ;0ZV+_B;AGE=je{s zE6*Ur84eD{ti8BiD+?}hM7VQ-7(AjckzIromOJ?S|`U@fO~3+~nJtCoGD$ z%DxnBRJ<+;Dt>>`lph>Xt*8(U;GD5gEE!Mv1y8QxZ4-|m_yM?11{Ntr_TjgHA4q($ zeMk&J=m?9X@Ay0-ia(fr`y)8!jYwt!nNR3rl-^t%VK+5+A;yjM2;O7`HPl1Noan-D zBlwts@2zJV<%L&$1QIGvdpB%haFrW7BcQYT3 z@G6$WacIsMHL|9oIn98#vmDlw>;7quDE^olbQm@9FtCvZ*P~o6ny(a}qL%MP7M}sO z(BP7y6)T;ccr9LhcG5|F{e)hj%hy2IP9!d(ujO0cqSP0uH|INIHQ`4r26F@*oOExLD9Gs;4Cb^>I-Q_4z>7B3OLDDqW(;e`d2*kE<9pRjp0gChic+Xg} zMZtMrNJfVO8Ew&=UE2)doR#a^bp&6aoyGvCp1OhbA?j%H|10Wy7a$o;b9s2fu>n#a z!hK50U&|czX-q>1{Q>S*i~cui8oD5RJB|sM_ffT?u9%C&gz&ktjyM9LPe|`+iuJr4+#Fb!gz&Yd5%C?u ze>IqHe7yC@U%@X>8w@uPr;bvuK;cd9=PLh{Mqlh-Z^#R#so+}Es$RH}dzOe+aMrGkQ5;owr zGHDg79SSSFGe<6DZ#jwo3UQq(5gmtsV{-9Wgrv7mNL_+2B+2xy3CBqMHT*;4X>gjt zdM2EwFgEl=>ie&ulco1b_=CcTjF;>32keEpy>j-n&^-|F^2o%iw_#HNtqywyrOLfr ziqbHVWUem}Sq%R~?Ah1C!b_HEWJ5&>9N+s9;T4r?JtV0+bR+@dYJu?&4-;Mqsa{hUBx@q~W!eDrtrk#X$-YL>HMOp|uvTgH$I_7KD|$6^V5^gqKgIQC6cAp4^#2hDb#p_M(6VMCP(i z{(U7N>hr!@*?A)o7``HD;ddD8 zekeeFElR0Qn^=l!e~L`}{&rLQGo)%a7fV0sNK6GPs0>a%*Zz|-?IP7afn57@q}q=C zBUJnCNr1RofNTF*sUE<~7J^5`!@BktN%c}!J=J=i@R}sf|0s2S?XSZYl0jjv{T+tn z*Zvl%&UAGJNqlJ_UHhD9UHjP3F&{sCTpuI{xs-H~ITEh@575NMN+zY>io~`5F?L!+ z940lhB(8lb5Wn`nkV=fx<=2NuO%R=5`%`5anY~d8*R_8}s=Jm(1O?0|vQ9SF{?}5K z#RfPkyRAl#R_53KMQrYw8Dd#o`&KSOv`FNOVTUP<<=dzIL);caAIP45l%YkBXmU)%eL{kq;0%&X@OWWRwo zp2P3*rm^49dzSr1-U{}cc(s{#w|5Ww_jqmDZ|ZetznS+X^O}3#v45ZU8~ZIh$#^So z0sF1J(d3uT@LpxVs`vX>bYIQObr#R7>LbzWe=OJ)mT!`%het!Za&wEpb;I=BP9@C8qRr!_GD`43031`@aiJCse$xHmEL=>m{?}I z3Srqvb~KoN;)p0sGrh7Cz4xHXD?7>ioBb!fhrXu!Y2MT9KjW=te}=b<{h8j!?9cMP zV}Fj9=REP}dllJV;5A`?k=K*`#ok2rmv}F*|Gc-4{pH?y_E&j-u)o?1W4*~MyT(gl zf2~)S{dHbf_Sbt8*?-wv!2SmBb@qSCSB2B@TfQr!NdEVHA948gd{^23Ghf3C6#iGf z5c@asm0)}0zuj6~=dV2R>B)_+}oBfBpPucI|U17hk=i&ntUb%i=0rvZQ z71jNr=&g z+wxDzR9dk}&bv~I@))K*eFzH=SV^EMyKE03IR{rFMmsFaPnKn=eMAY2(LUSq3uOr! zSG4$BQgv+=X7K}Y;*xGf?2ej{m?O(|N1JM2`cA}tM5>y2yZN(aQ`9=fWZIij{zs`M zmB8!Dzx-?0HN|Sdq^aMH}6q55&L*ZS)*= z7h>o3#JVevM8qWgjS>^)KH?gci=rJ#<le~$Mvo2oYUauNwz%R7#Me3<9zn$=c62;mGz!seVpm6ndn0%{7<1s9GgKL&a-D&7 zb5xHh$i-TOZ#I}7OW&4LFy~9`>7=$rdw*M=9419#FDEZOC`Imn@Qb{O8)fQSC>oi& zymCe2Oj&@61%_?q*4|Hu!>fG1_YM1P^fFZCPM&j_!h3s#*zfCAXTP6!AN+YTDHImt zE1|*tRwpE~HK|adBJ|~bb%YezUQrKWbM}ha7y;TKv@4vmmhLz`@5nE{b49k!Dyb}r zj>X1+@w8!amh_ri=oB$0N!2tLDsDL#uik>CBR#8zm`D$Tblean(unrV3EQWp7|vDT z*DZ$*0Qj7T)fZTcr)OsB{(&`Ij6^b1dsBO{LJj75qnb=4I4 z)1t6=8Euho#wk272l_Wl-wKNnV=x8$IK0l8fZPokK1@`ZA4b6r!T-gGm7^jng%@Z4 zA>(hJ+=dpp-GFf`w*XHs5Mpv=R0$cTMJA^bF5N-BT~Q=Ic5n`G#E$o|rg;hSKTx*b z#GP~};F41O=Y8P<3dDssU2_`B_ar#kAxhWKy~$=?pFyv0L}FgO?aRH{|4pbs=e zcvHgqAB66AWJ3ZEs}GK$;ZnL~Z-7G#LAT!jmZ^vmcb<&oz+AKnnlNQZzTzZvj+V<$ z)6ke|gw*}}!eTCzNhc}t6e&G`e@E$}+NWR;TezPSxv#7K$}ctf5(vM?zCk-tvv&*15Rzq&|~zi#f|;88$QQ&PRTcur>5dKTgh z@>GL2mB2fXNpZ)v;?x7z%C2`~Z~0w$I>398*}q~2k-uS{A88`N0SnOH@;Aye2Ob5i zcaGKqqiITSi~^}!1oE5jk;F}Rpz`+M9Z0_6*>G+qnMM> zHX<4s&enY3*ngtwc4mjic{CNy0h|O!e>?Pwbvdirt;?eFhdU>0D5(X|6FC zxkSFLn?fRXZ_b|pL{o?sYaV_aQzn6cBsgahXp*>+I6`w;hKs{~DuIB~h9lBxMK0Dl z{K6tVoo@i-ZbGM1MCr6*5_=$gXulK-5YP?C03)l%LQUxw?t;fGQ6>YPX(>xt%P=&j zSg&xqTzb;D2JmY{p*W<|#ELi-Mk^?GrL6T=*IYqR>lNt{u@d@P zU)~TF>qv3xgU2OG|LKJ7)v&&D6A}7#FvG8dlxI*OGjsF7s}v%~W{0DPgqVV8=fgR# zQ0}-6cx+BN`Xj8m`QfWwrC1026~hrJ#r}cxvhXjf!(u-|-w%*89e}J0C;cMDX@q`j z5P2SUnMmh?eLY-jf}T5(;_fj^}xnOsOt8dnnVt~tKp*(yyB6%ykTk5iJ z1h{1u%KcP5?}SyiFi&0k0v?)$vJ20T*uii+j1KgWoDO(FJmqh>7TZl?N5UTt*UP^z z$KxVORhIhxJ=E+^Cak^_1y3O&g@R&d!mDpcaUL??k=#3!J&l|Ve~35Ievr)kn_?KeICBq$N zYEByPvRODEP)761@Pny1GX@=vfVU(Lm5HzCIB|-|aNoN$ryuZPSva&KJa(H5FZ~{G zRG?=D@aN(=Ni>U!ohrm#H%b+f*5?9d6tVI$;SlCKy1MgISS&+^cjOL>PoUv*(sGV! zNJG_RxZLK5_yNKH7${SPYf=pv{&}htd1?qz7>?!Tx1^*1H-b7coV-a2N<=l_wTW|; z;27<5k5!Vzs2LaFX3#)}U+EuVPEYXq1zb9v6{{kPy@YfW;6~9{hQEKu5x+pyEbyKs zE~j0?&1Lv7U{di4+#3e=E0rt0tqezg(JDR$e$sIKcF{?OzrCha{0!)(fit&@UNU_3 zu?VLk83kJuPM1KYb}>MP+oSzbO78^TFbjv<#iKI()B`Rjw=?j*#Gz8k+%87T@a)N& z^BC}FvT(RvOp@VG>Para)xckk=ft?2MQ1my@o;|LC;<=c7Z-5*MhMm`H@iG|I)Gfy!e-U?`^g=yZ&bBySRP@TFjH}t2^ zOLSp`>Sx)~45~ryNa@dKQ2*jlD}7l8^|{3ADL7DqCXMG;QF>=EBC!rc|NH1mG>^VS zdh}6$Or%F2jeMeN#f=n0Z*P8Gj20BNkb{Qx3X6<^xmdT8iw+rOOi)GeM3=)s7z^j* zqU>*!j7?F^up%MnAbhF8BwdLjl@CDnQ67$^R`j%bXAKhjCg6jX9OJ@llMB%G*p*$mumq9oQ#4%@pP>)D~R+pX|898xga)qy{0|>pd zXrhjtkt$U^DRqHQ1mWp;O+kZ$we1iUj27Mf~TQ%rCX!WK+(;&g}Gz5s$70pO= zL}Jc*|L+D(eV7|G_ob@cAWsdtcLOwNiaKb}tlKu|lT86NMg+~^oKn=rY=hpe@T#&0 z!Uq~m(v@w{q{%ku&RD;Yvj8u)S{#>o@4l%=H`e?jOQTkzRew)#0>W)1WJ0gK|x38KnVLB$)GP8g$YRAwk6}?*Y`t z!0`?GP@%9^F%bAr!wDKRU{>)ApoIpGZ_tSa9nEQNnt}!y zrEGdtYk52II>M`3+k1@tI^Iy)1XQ)2S08Egs@C`JW50pdkNvy6C)jW3tzf^Aw}bu0 z-U;@bc;CZcB6GG5iPYNJ2i}j5MezDyYPy@RiNbYCQBmV4=b67{20X3y3NC@uGI3_)q^-XC%_I#Z737(FNnc@0yIs5 zbFz~*jWw1|=@E!vF~V0HOy*}oKPXRaE1d#&qGRs@_^u)7Rh5q4 z^n!tPKVb7d^-<|8xvo|00RE=oXe%#uv~&jlp;dea=xYP}DyV0qj+f4tJCHTx>IU!# zs)SRaONOog)G5;Gx>H9}1bFEzoKG;rOr0*B8mS@Ha~JUYET;mO*B?E=nJb;!#z^M$ z0sd$_=M!0QOGKn@lFpqg!kq8vav&CyQnyHFqF;^(={`!NZkNt`IOaqJKe21qM@8x` z8KFuN?o`M>T+6K~5QkZt{ zHSBsx?d9Zfu#%9U`@;Yyam7oHDA-ttVsK7P%F|TI*dQl)4L*WX9pQHwOx7ntjGJ~J zCm*Se5?ElsLt&9R)^U#A5n}cr1P&vqCR|EfBao6Up5R_Xlk-E_FC|$x$lzT$r%LXWxgJFjY zRz!)Gw&@XC>5j);lXws^u94=tnS>MDW2NmC8;GbpTn9kb#AM6hS=O^GdEN2Xt zm+7o+8)Hg_ki4k+B5<5z$(*3GR$m&+Xmei6e= zxS+FA0n7N#+L}7+AKY1~CexN-{>{yEX*1IV@hqv6h9>v{bbUyvo=cgs%`;;;THi&4 z|7}VDp+y3;aE6p^X!1}V-=;X92nINORLG!JPEbUb8pEI(|aMXKZ&iU zh;8#cgmteqNYrFN(*oEu&n9nacqO290c@J*<0l+W)LVewBbc*oo9B(=TKX)Y?+u)# zc}~Q;Kgw6=UMvE_`6_4{LeG+-fGK^&0hKp!mgc$QBV9C2fVZ|BE@0a{ci#+gGy{N- z$igwrv(7`BGYj})%h}51WtykhBU#TD;BUrrg64T5HOz?)n&r;UCKuUu)29@)Y) zbaaCIU_HoV(0T&S@y3M=27~Gh>=XGt!hbiI%*O=N31-fMaAI>j#Nb#sYbR)vDn&ua z$jV^UHY}|s=mdEFh$x}96GV}A3g`znn8b=v#I_T>F-?k>k*KEt%?x1E32u8r!)pO; z3}DjsfJL&})#1XM}r1Z1sKCm4p6=n80GHQ?eq0ohJm zO4??eDyy%69fzj9CWgI(p!YH&)EYFi+oz^!Qy80Ix@l7qQnTYlluVtM;{pV4?}A08 z)PLyM8f6>Bi3}tsS*ywM9H{+>Q!=ORcLP5fpECI8Hd}`(H(v zTxJ4F;h0npEe?s*EwEdkq;8JahI-;X7+ooK@lA~jhMp$6bW9=+Lj3mXIJ$sD)Eb9r zB2-;8iJ;PpPef3>MnQkd#eVFNf`WeMBnzjvh8#60s^@qGL9r#L$1vTf2Ty zC%Ncg2wid1#0HLNjN&MRRfAwwFd5s{xi+Wy7qY`7*jV(BCjGlna;VCMxkD@)UjP(I zd^Or=b+;9%XR-T`&J>(Sr1n(BLuh;EOaZmS^lV-ERK?E|T`?8Jm*HN6b0nDs=2S&@ zv`az{!X2|Hzpy1Ge5QadU^mjjNa{-?Fa#j#9!TZ?j=I55*!Pd)3@>Br2Z*=9m4$Ou z=BQ^6#*-VN4dI$v)JFZUq!S$!xAr`5Z<;$+r?aK|xYNJ0(i)&!Yzx9BiQrk#=$hmHGQB z@iA~>%sHs?=S4I{5}>#k@m-)mEvtgbP4VUO5HP=(|&wp zn9&G5dEhi^(;igcB^(N*^rq#-hip0Z^lZ+O`uOU* zwFbrERj=-K!+N%N=e=GLye}gEF7{h{eb{g7JQylw1v_D=Zzuk3g6@*F4m zE?yP(yL$Kg{-f-7^XB;eYw%0fC>8R)V0s_!2#7)%7aDrhO%>Q0Y$29PexSA#H9nDU$zl%Y zt0v)`FAW`&Zbd+pod*c=^VNIQ5K-f6_uEk+mU_fW&6f5)Va8&MtW_=gAg5j7r=?u{hL^4}VHp`q5&4P!n=qE081 z*3@^}p-a^&pKv>Zwn@6HRlejy?;tP@A zZtPc`HXdqf_wrO{41)fy!Pfnsz{iY)-EnaZuK`I=Uc$d02%ZmxcE`o& zS~?nhycj#d;52M@T)cnNhi?N^*21*of}3}gN~!8qto=~F%fVbV`Cgtm-%TKS>wI?y zV)I?S1NQ$Q;02243Mrr~NgSJR)@$;;r8GEi0e;U&*nFS)$Ppwc&*I-jg0E%HcXxb& zot6I!D2#M#*yQ`d;~@kw0?3^iKAJolY0)2KpC=&BbDK zaqq)ERL)$C!A04&1CTi<^z%x*ikgaJYn1DGh;R`_+UO*zsup8&rSh;6BR3&@r@`dC zM957?XCk9yfiIB^86{N9ydYIxoEnwq5%P&P<_ppxn8?F2MoV`xN<1x%!-LOYky5rrNH;6}IxXvI!fBkT#EUFB0^nno z(2la931_9cCpQwf5a3!%APqWd&B6h{vxhOZ>;dD5Ws#c9EZ0%(x1l$m2jdsZDm}>L zKlBrodWNIM=R}&bbw{^=;~eY7KR)1JXJ`0{;$hL5l$Qfu-Ebu5i@$IjY2&D#qp{vd zq}CvGwj|D*CiQbvsU0Cr8VSPVmPBb1Av#(a8Rw`1vtb@R2XLJw*b4Aj>m4<21LArU zjDwcNYI4(FugD{^_5#|}%imUx>~vIP9N;FV{2BlLFd`y1?Z%4?mFmP3mVLlcbDqFj zFR_dCK(mE&dQu(nmy{!i9d!nF6>F;ttP$bdRyBSC#|F^sS-vZ<-c~+0ZFGtZmlcZ* zhHn1Ua^#Go-o!J3NOA`L%_BBz%T1qJjtr9-=>hv&N0k{JVv^hi=3B((wDGr;BR@In z9z3{M+bLk@tTv7R>8OouaFPYV@&^6uY31o#%MlmfGS0vo7s`7ou(SZDZ!Jd>U6sF! zkJkiNKfvi*%aLS!i}?%=bdc(fz`6%GeQP;V*i~)bifDW+u*U+N&SphQx@yJl5O-I( z1lWoIr}Ju&(yn?PV>Y*kUBKS5IDaKMQr%U<*Q3pUhVZWmqmtzQD>R`Q6kxN2ybdth zD>Fe-2N(P;EpK(_0TN6M?>#9QnjmzZQ`? z-V(qo5GP0~b1t~*uH8CG@^0Yw$LrxQCP#j9)r96ct8yR+LyaQ+Mdip1SM{imA9O&X zMv8>gG@O8YpN7z@ zzd;VV7y$4QLlAlCE3tJ(gvVgw!$Zl_fEF8Aau4KK`1`OC ze5tv7k%(q)1?%m2CP$~48$&Ale1EVz1J)1mOdcdP^WBhoaW-a#)Y+qb@Y5e~I(r;@ zFzE8fW+NrT>NOm2WqLJG8^qCtCe;h8Qy2Yob^_tyI1*<|@JA{m?ZRr&FpTt%gE7Oh z=n*19^v&@|zpyHgv#D|w!1ab8LVd7+64@746L8MV*^BUF1`D3kBDCOPus*=|h_UI# zxd6sbaV(Lm-#!%oZ{Zsutnh{VVwV$~&ODm~x`JP&Iyxi6ZSjuSDFa45%i>}PiYQbO z3-NUtI^paS5a9!$b+=Sv3HRxj@fFpHPPo*0mj?%DEC`Pol5poN0NzA~cj9SF%AF;^ zUN*RH5W1SHrlZeyjwk`+iJ9+!b>ddc)>Y8{@LA+fu!oIO;rs~Jzr?iT0e_KGgdX}4 z<@E@dqjBgk8J1L0I9(oeC34f&!N@>aDhXzr%u7GgQRjv5lUMz;HUX!#m7qik&Djth z_=}&)0l>$`aU>J-FMJiMpNgn$cxOEugyojRCe4qfpiPtJMbx*Q9I*|Acj8Iei-W{# z7G#w17v0Dn#J9YW?W$9Xq5t88|2_R-*5!Q6K^Dvj|1m$n_=zAq5ze_lwwgKN|7sJA z(`h7PAo)Gv=7fLCoM@f34W?}-5v6F;8e-!Qp9CiZ*PaBYLCBs2pFQ6Zogh37PX0{8 z(-K?-C&5Wil)zh`1gAYEBz`1LT+;3TI0?RG27b}OvPo9QXitKF)+!<>4f&8}`3L3H zo&;}jIm`*IWFdPJoXXoC{-#9p;cqVd)bLoGz>Bm>EC~ZIb#-2xzKcAVgIZ8!#`ATA zsTb*(Kp`SuuX1Rto%kl2ujpgc#`z{Gg(M?go$L6-;HyZ$>u^p^8Ync<(>a9WZyzA^ zgh6C-0QYtF{Nsr40R3v=RD%1xoej|sQt#kZNC-(_oidFeJ>QKykgXA(t4ZTq;Yr*k zc?7Pb1wl-I0bc=#TvaLU@Kqqt8zGD)I8Hf|)#%Uaui_Cw$><5BAE8wUP2%aw<$PSd z6r4_9)Q$Y62Cs`SZ7#x|v-Fgz46T;DGBL7;|+5)8IBd}@20R0O;Y%!oDC6C8iWi>;sVrof>a$} z!S7!IYiseklm?CGkm{#4j_40;OdPHgnm>bbh)vZLQ1e!B)N_3AZntToRN->$Y z2Wn3g$b}CnL`q6^2UQI6^cL7O-3-z$@~7j?UIbqhI^8uS&H?+`;v~Tt6rtld$P&TN zN##0^!C9e!=7!6p#SSJxdyZ0Xu9{jDr_C_mF9fsP%=g)RFegi@LD8+}`>lZ3`Tpbh z4WNk#m__lP$FE;Wx{}1P^L^H9=KFgwsh6(--fkr9e7|Ez2ojVZ;@_tPe+PwjoumFB zEG-cHBmVtnVKd)U93|03}X|KbZ1GJU%rGSFP?#6{U>Uq?2Bng6TPkpCHodLBjp#VI7-&ir%M!(h4| z;ad$R&l17T{0nVE)}n;kng8oAU~K*pAy=&oUHO8yp83m?NS3*X$b3OF z^RJBaW2UvYYA5<8+PV@#|b=d<^Wt_38Xoo%z!#BqGVF_&0;ttj*5+ zhXriR{GU6BBjd#0hJU+=&1thU|IOG>z}ij#J4HBavors@@XInR{~NFyfxMadPr%-H zDj=CW6pw2-U%#38&zp%)$q=3atY(0lng69ZzW%nrItI9z`LDyr6gd9jz{Uo+nfaHz zuDh#z7TA&iH#7g~=+oRDwgKB^aXa(h?x5a3LilOIDDT{VgPDKv!sry&2ppD~AgO}~ zGyj@(AebMF!iE*h{QoE;brPxrt3$Z10yFb}CBOff$_IgUvACJ}58aPZX()mx5EP`) z&ip%aV>C1W?v+B!lxskLEsKbm`S%G#F!S#-Fw9K(Iq2Vz2qn-j2Q%~E(Hhg4zW|1Z z#}UlTKVQ0|<1Gxl6mf#2nwfta>>r~f$p*li$Lp~(e|NL174-pOpivae{71d+E13#x zhEWpC{FnZ$i%PBqwlR=5Gyiodes13bb|jEDGygBkx+2FH$p5#%t_JdE=1+~Z8sTaL z*8kyjb=sMKm#`(}DS+l1SaJ{JSnSMy%cuUJ^9opR#xprOJM(W+R1b^tBv_Z?nLJ3^ng3JxAR-N* z(iw>f1Dwtt#~uv2cIJN>uR@q!3DjC~^kC+H;eynp2S9izj>OptX8x(eG3y!!##GCq z=S(p3zqtzK_B_BWMiC0X{PBDe8|0cf-nGdvL+RrExBQE% z=A!g|Kjg|j|KbQP%GTQpEe;!*u^vu=6MK;TXv!E=D9zYny&bjVZdXu%Y>a=+;G7a< zbvOBWCA!oQM-AD6Ml5>*=tp2_0@*^1jd0YSq8K_RBK&EC;j539Fcv1-kaWzl(dpG5|1>|OkHDUPwotzhgmEN!r|of$jmsM60!F^aT*4#GEvq;sZ8mmKvu zj)yVn9}u#QGuh|NX_CaMwBu@0aS+N|5+zF8qOt6*YF8Hzh=u^$SOV7(mAB6-=Bg)G zpjP^WG2F6P4O^_SE>2N8Bd;yi7=8!z`IA_W22(zdf2)j$wpe3bosxWPnBQ#0%DC#C z-!(}d0`ntcb0cJnG=^UdZMoLh_C2tltu~EUaaF#bVvXTd&zy-k z;ess7Z-HG6aI#oqEnS6$1g&39!1Eu@*H0E}tc|OxlyEhk4y;^&lf@cq@2czAGsN}X z1X%L`CyO=K*;Pvt@Rc;`vweUK3~>5U&R9QJeLu>Vp9*Y7fRi~H8|12S(W2;?NDyJ|12e7{bdB)efYD+<>$sfV9X%>+0pWmE!Ofe88_oO+y~ficjr|w@Q0b!z&aaTk`|v-Af(Q`?&>^@1Yv3% zNi%sa7fTDNeD|QFp9f>3WpUE^AP2vsjg<+hRycJo4}fvdutbPI`c*Nc>W#$%JEQYh|h2;X)&uA+A9obuj~ztv&!BwFI4se`jL~`Ii%(jP+RODS-1Vfi>tiM&sOY zg)}`1I2%FOVn`xHudrfULuw4!s0R`Lxxw@ru8xK+*{B zPGaqyLbQ8L@?tI}pY203Dv zHWvrp_Mz40;u9ytKT!J=joe$ZR?n1YWW!8v=abr->QrtOIpD4}*yv%wbV+l-L?R)(&8!CNnC_JuJaFM@R=Ugi+hm5$LYYOci7NJfdL7aOsi zsmK-tm3RX0|KT_XG7pVent<(0eJg^{2w+P~_=vKh31_8pZ$npm2;c}yAPqWd&BAu3 zL0w@-Jp;y4%OW+ISyeQqBQx-mDtXdvmq*=55SR@ zz?DW7;Ipuu>2ycrV+I({Sr)6Yi<)^CA@6oO(}ss#X3Bk_ziUK-Ma`6ejYZ8jce_lI zKY;lwu|K28?V@I57gRi&9=B*)EsafEp-jTUn7k2E{Ps2YWB*2 z@OuD1iz7(gzUZgnX**NSvS3{W;}^pU7By!N@ROK*8jL_VzX;5tW*J= zt*90V4Tz*$WMnShV`4i~*~cBNq!X|nMoF-!`F%S-A>)8O9>|+T&9viwB9;PM8OWPO z&F8jSQ27~HSK^t$plcU3TP^kJ5m*7a;B=Fq#0HC+ zqh|X#Dg#2zI1*>G>oqNc83v#9yNS!DGuFmlc?dFJ6iC?dP4 zIcgzR1xtcf(NcN%vD=x}zTt0YY6?P2Lkbo(S6ug>Y5jqXF}Q9Jx|+?R=Ct+tDdfxt z>&06!&7$T@ALs$gc@wOo#I)lo6bX7a~ z&;!!obbFw(v5T6!z6)_4}Nt*KfXAJ>tc5i-!q(3LNE zYg6^XX6PPsz*-Y8GY*mYg2q&xPTK{d#IvSq%4nqW7(%|V(q*{!(Q0f2rfTGKsQ(Gz z4NG{OvSCft(_2vnxiBkBgX1!gq(Mh*P1OY-K}|IRmc)6prfS2E_>?MX z`Wb|qmPBa^Ow~7EMG@wngGV2nEHs(`>$&3^@>e|0eKvMg3(P1Q>Cp~jl3v+6j^ zlmkG2#E1l@YSn-ZQ+4S1Fq7mWFkc|{Qxv&1Rp+$9m$VQp-@w1UgmYW9rt0FEQp?^`q-kPe1s1mHHI;wbxNm9+l`X8LuW=+)(12#<6cYB4HBs0LQNo>|_P1UpA@Z)2M zQnm%w(Q31%>W^()Ek7LC*g)RAe;q-De`ql()^tr_bOrix^Y& zdLRN*^^S*e1`^P0wd}ni(T(1(_W?FAkT<4ksn%if5aCmS&9L&;RK1Li z3UU>~UoogbvN@bn;9edC!tNLo|%T01}X$H7_{&kP1#YpNb^ zti|2Zy?+-q`*||1v7@9Y01yQWP;1oAapew zQ}t+n-5{L0V70gv)0nDlUUsz!)DNuD#I)l<7E|?sq9~79U@W%!=qfN(H^6?grfQ3} zy7@S7fpgeOQ1Y#*8pZ|_&d&wlzr}GR6RoLw2)hLnU`rN&)0t+ICf-yXxgS5o1w!3; zQedi*QO2e!*@Ggw0VZvEFRy<{^zT)^89ENeJDaM@&BY*dQRJWxNpo=@F3OgAAL@ct z)i>V5fUyIKc#{$`8T^97BmdL2DiMu}%l)gqXB$uS6d!b(@dDCiSlsyeA4 zECIO25*AQ4tf^XN4vf&<01sONY0yzyQ*{{TGxBRNu2~kT$;^VOTK66*k|oGLoX-D0 zs1cuKOx2?|5L6zFI}Iz|R9%K`PfJO8Yv7#?M{>Tbsrvl0K4~Nfk6RMw&6=vWXA5af zOF>v`NtC9*RNX{N5PJX~u>`I(s(`>$oiiL&dmfA*EQ{4xQ+4$c5UiiV8c{>9xG`?k`3{%DX~{llAG~w2eDb3HC5?{WPCPE)zi!HyH>l1&AP3rnrDTM zQi|s>IfB#Ltf@LZ1D}{9`J%vXBV5ZHQ}rR3;hgq*z#0d*F;yGlvr&w91NKmW8&kDE z4neX0Nx+^AaAT@o!Aykl<-pbixG`0Kz*+&<_da0n2DmX*!}$6?<7a_gw74}@tK(51 zZz5bR^YhMqJ}^}u#&0pmLIBIf5u|Qk##C)q1#0dB;~v8bOx2?!@Kaalcd{q2euV2H zG^Xmir~)=sCj*;iabv2!j;WtqhT!!CQC;g4T2r+fH%4Qsu6`uMO!*P$r?ZF{Q}y9M z1g7eh37RQGFJL7IjuYsYgE3WK>;hA@B*2RC1Y@fH9CCHM_W*B0oFJ*jR2>Slgpwo& z0v{Ex$C|1qu<@F*D(8amoKX~*s(Y(Nw35xhb{HkWs_JSO3M~IIu#PO zfL#ydjj7ssoFiVMQ&_o|V@Ilkm#GsuRxDX-(B`<&gIK5Z>O%`fbIS zs^7nc7Bv{)7)w~kgOxE=Tm1?RvjHwJ1Z%2Bl%t1|O@Q_qSaJ{J7HLh@XQsQF`8inM z#WOiNYpUkP)0&1w>7pUhc%W;Jb@Cu-P1T*)zQoLOU^R$m27|6ORsY0y=$PIK)IM?a zz*K#Ix=(rxggJ2}&Q@Tmj>GbeTnol#%cAE@V5(j{k52eLz@vr`n5w((MDzUy;lCP8 zKihRTHl}LpZ@@}GJjrmG8n8JeDoVpND-EoM#o1KVT8ycB-y?Vd(GrZ_mc_*o6p=Mm zL*+po3)+*GN~~b3=(at+sk$75HHH+Js%?aRwmAEMeQ0pqAapewQ?=aNx}crQVEuI~ zrZH8=j=&3WG8FQz!qPunFdk$vRlhxjtem;T-RIYVT4QrJj+Pfb6x#0Yb8Os4*y;u_%sySb6u72xk^_49-t!@Hs`u_ z;`|%K7Xe+dFrDk#gZFv(m=VINzH}T<8XS(DwHmf|-lq_5563pghYn4GaH4usKCr4P3Vf^2kx!knU=hM(r7WUL3WiO`&cnp3n~ zy%cOt(O$xK6S_YMcgE7qDcX1OiuM{puM@)2m{YWqUc@hLu0y56F(Q*G9&?Je2?Wak zs%l|+00gIKn>PrFdx3R~!?g~3iuR9+`2I5pV=ajb(4L~5RXHSP16yM8R7!(AMLT>V zOb}rE;&49_bBeYY4%43i;jAI)Zf8%?u0yp4r)baOXeG4{g{GAoPG?=`&77hwje`{F zz^YlCB(j{M%~uqa*c^-pEsM4A#w%*vL3@r;Z!Vv44LPG-R{6I2ll~u&VqO@agzyFB zfiI|8@WoJbu@4tzNl~VSfpTQcd<5aoC=F>;c6MQ4%6^QoR}p^QU^1Nuc42^8l8h2+ z7Y6R_g5f0XC9Jc;u|7#xzTmAF25x+hA*(G|{o`fIAu?akEDTVo$SCpb!oa3?5Ht@V z%dB)2N~I=XVIY}i^jiV$wS+qZ!da<`Z9)Q10K8xcq(Mh*7X}*rig<2-;k|5fMrty% zurN@kAmty7N|u$1%JNxeVW9pxt=1$faCxYDQsf`x&WKO!GD!B87a0k9go zFt7xpRIo5G@Jakq2bi(~{$&`E;2qW%n4J4;EDXe+$1l(kyEFdvBz7Z;+%62fi4T~v zw(-Cw6V7ebE)0~$*D6^4d0?xoyj>W`vkkiK!oZvhE|cUTFh8=|?7~3)fQ^NLPv(Z1 zB>x2SU#r_L4D36LA6Y=KOxXx)1x}~UE(|n08qxB10;@|n=gn@nnuBjl)x@ zVIc7@U4U{lu!#X~76y8uUsERJB495BxLFwZ|LD5z_$rDnInb#c zfhS+O@37_rTgtdG40QhhmicW6-b)bm9Ho^68wMJyu4@bfLn=wdl(#{DluE=H2HJTd zFbwp>M;C}Gb3>UF#-%c-Q&F1&==7-HnI2J+Pm?w1;T3qYryhs7%03SJ*pGJ z`xsfbuNcF?*kMqh9{~J_3AL26GKPV1bc*3Bfa?u`4Fh>E__QiH4CuUpr5b^%N3vny z?^8J0o(9%KVr_Jbp_wWTdiVgq0${|2u=pL;&p5fvss^kf<237W8`u~IhO9tZUBDQ| zELFl337XTRVs;|I8K5m;7{*QnWlz20VQBQZ0IBXbD@fyQGO`KFEmjYgCB-k*pV~$Ud zpxlE$hX`(s2-z@@>w->3UIlc6VPhD02VX8wY5xbvk78+QG7L}!;1gR2k4=x`lVdOZ zg#cHHsi@-i`is77~mbA;ajH7+(3)R(@XjA9~F%=7akUE;*JuVt50=X62tXjb9`&w3Q%U`Pakg6z2S_ z5x5Vw0MV@cXUy=4uRtGzFghm4+Do!#<-ZHd56Z?eAgc&HOsHA;tLCL(v+^GXe**gb z9j^0CH!J`4Ff!al=tDwOGG^u9Y&8y)`U1TcmqO&Xl#W^XSA<{;pi&I0b*)~M9S5)c*Db?>5QP3rQWeN6|617iHv!m8#!pioc;z1sUy9Yhz6`#~`Z|GhjIioi-Ut|SzR&(G?B zQ_k(`V7$RBMNlh$>fBy`4$^3jjl!$7*cxzajcxajEy_Q91&R>55A!x0J#3kn(bzA=WMAk-@r!GOgNzZbZ%jXnfKwdobnTv-!x!q>RFi zZlMs?E%bwR3;kf-a_^ZXY9rtcTvj~g&*+vjIFI;kg!VRwtm?s?t+p|6g8(#@;bel1 zZkeK<6GO%UsrtMI%tx+OEbNP}O1Xmm?NGQO7z`cDWW7ig;~$r{~Kf4g5$HvR+R z{|aa;LXB=w%}c>Xx4eh9ob)>m*Go({x@AZQzo>!Gx`e1?jBYtL0h@ym+QT5S1Ephh zOELsU0{W2QP~EZ}6Qm`;HiqCj4%RJYs`$l05Kb{kRUqq@ZZPrP0QP|Ku9OGXE#k{h3SB=G|w;*x&;AKlUnmGB3% zNmi%Gx@7}C(oA{CfIQ2+R1>UQ7UBoxr3gc;PH2Lxs$cDRMxU_Qjw!|L>M5S%d zhd&!+S$atky%A^D6plD8Gi=>$-mjFY3$lnLB;vgEb%A?wd4R9rvaYD46?9qps>y(8 zfZ!GelD7$OsqkykY7vGt$U(%@t zCr`?uAM?9(xU4J$N6-nS5%*BVK62a?+-PI;CBrqBPlU0>sZbwA7M~U1~`Wad591>kRnfOId5eTh;_iW z8(h~xMLHfdB7+s~pnSrz>3qiQ@EobThtXFMx*fh9w zhJC6Z6|kHWH?g+Qi}0cblPW`XZf-|MD{MKZupgbYk(CUBj@TOyK~ezaC!;M%|Lg&y z_#`xsr+-@2hgoPC!r#YbwWgvP{qrmrq~;)axq)Oy!j1l!*B$s4gPE?-2m#UUv!I8O z{-K@dtbb^?AkS^m%=3%W;7TxLHy|=A?mYcN@dOEcvHn5NQsS?Lh)eqUfAmkD<+kX{ zY?ZW1k@ZiOdoVzNFqufbsidrbdVGpnLhvevcy2=*qgWYHrd8$BjmS9)XJydbX2HP} za~s;~RYu`vZbKnFx1k?Ax1k?Aw|Nim#0w)J4wp5a@@M8Y;fYctBD9V{oEh-Pk6bOGiCpzlN&okU=LO0s5d zQ!xPsO9Wg5@)MzJ2{m&Y)w~pJ<~9TB1QabTY+aei-lgbfZu8!VfGCL2qJ*eq%-rVi zT=>Exw5CDi=ai0_+f;{OOF*3&4xQWlgAHdxflUg*bsRjmnHYuF^B}BclBz(S+kA!B z_j`dIXM8*5f#){S+x+4hu!kYIn~0g)ge`!*6CH&PcTh#tBZ}Xc{;&`2!sia>JRk-2 zj*4I>83{f5`P|{izHkEr)`fABNHw>4xg*w1!@-!qEN^Z@o!jfrK^o1m9k2~Awpvph z!rL%sK$K5{BLeA`+=rlB@?eL)r(6DN1TF9bqPh;wv8^SU^lcvMAw3 zw`?B;6`t8(Mz@fcO!S7Xu5KZJY}PI0Gsn6mZFXCff^bV*vJ~Q#J#pvh7K$fG;EQ$3 z%{Bogz9d9k($D{+TW(Ck=eL+mN$V6@w|sfsFDMVU2`Wz|W!*Ayk)<-~M{zX7x`o_> zShrB7Ra+=up`0ZT!LJj#<)0%dbPG8=l~K6SEfm7Kg?_MZp&zVUrVqu(JrFPfmsOYY zXLQTvz5%fip{ooc-}K#^LH_twcak-_C32r7C>s@kBoNw%P@`K^^HQ+UEkEPPBl`U|uI@}X zy5(9nSRoNQmJpSU(Jias9y}MJpBO~GOX(Qh(j0=@0qtivRJX`0wzvT7RtT=+VBL}w zj!jk|q(M8X)TOFG)-C_Rk0%eXB8(5CJg{zgxE~*U09H2ycM~zXWptT#Im12Fccq$oz2i-*+{TEDVWTiWC3=5>@m3$(hsg*f*FHF%&AB7c$?T^?E?ePx4VIc&$D=%um*Nl=lU^(IRrPvu@EHW%z zVLA^-E$5Z%&`(1WjB*_SSVPACE+m^F*wEm)^%m+d&kq#<+G*&VR_bg{&SNH4URe>dY_yD}UN_dE~ z8*f-*J}l|74X|zom&a5j>!HXK{<54Lf4Qf-jR9dQlXQ6$>0is4Jl{QhV>Jj{n4~H< zU#H(}k>I!Uen;`HwY=~61=FK&ak2QiOE4j=oo?p0sN*6yJS`!;o%zTv6#g+{dQP$Z zJ;GVNpf@%K*p>;;R1$?L zc^rm#2v2A^5a1|7&`qpcu!!ya2n}RoRVe3!@TnoCZ02$}lMXM@6=@F$$C#w@qGNj1 zb_$QNHR%Qj516F$qxwQE+xZBe9g_|!C<`uKWQy4B3k`9|V6xj6ii1#wNNE(VTBwQb z{F}}_^SL&#CI;8t-&UlzY^Umf?kAyogD`|is;zZ1zU?++imx#SPostA%lZBB!GVN< z>E=Rg$w?uKpKpONBX7$O7h~tZDCAXUo{rmu!A=&8cX=ATA1DdcEe^BL+=-lI-N7qncRwi3fssc`C zN^RBuCpp;%1$6hfGWis(6DWNQO%H?2&9FjBnCf(X6)BDbHp$>3^X!8dA&>laarDNe z2wusMeJ(eoqNTsjMYlrt0z1rj=DfRs&vgo}#ysaTf`9g);Te(tZBDHd)c+Cu+=Gtd zTUZG@oCjCXyR)K-bKug|mrbdJ@|1s350`$ve#UhCm7#N5YmZd=*|^^B%y3k$^s|n>x!B;8OF9U`DJH41vDaLy%TmX52ZXp2U&LQ>$N}RpsDxJkRLa_WCf3_2@`YLR{{xf@?f9a}wM zjW{;;nhVT^#~*@aPyFdmxRy8D>HafsRqIFKK?xNaN{-C4BszS?Va%q7D%|<{28ygi5aBEO9Cs$ID5^_ zZwQrI3*n6kqjr%LozMgv#QS<51a${EB!nP!|1w^4wVtDYO$Xy+!}7f5Iu5XO7B&I< zf^c1h#%peGX?LFV9kBC^8?U)`uOI`zA^0&tUJlu7?yIHLb&c2DPbe@kWxli6t$-_~ zi1C^`?1{i@t_8N#6H_+CpH?J78FcF**Z~R^UUS>mz!j(;z~P|;<282=?=)1p9|K=T z951WJYi{YDfKKQu;Dedjt=QWovy_?UIAY2V0Nh+4-HCOc^#@JtA$P1?2^qld$<{INGE;0gO zZbK0K&BaHb!Cqb#;nfVL`nTIOW;@;5I4>_q? z^_uHm6=o0+Du$9guempnw(^>z`Jf1{!2Gshg-MvrHh{!D`B8WHiXTs3>M|5#>(Zji z_xWFbihU=*TD2}Cs+`XMB~}*Y6k1kPIg|g(=YCN|{d`GOIh#L&9S}9u&vK&5x%}Jw z0nt$XEHA2@&)>*_p;`T`AgWx*-#87n#HpVziz+|l&w|BSZ}qbx_73Fl9u^RT)z8wU zM3qYg_7#Blk^YT*T`mwCL$-63O=RrH0s{--siJ=)XIBce#}Q4-^lxPCYJn5QaG<#U zjlBI-pl1nu%2xkI=B^d^9l!VJ-^kt115_wUI7R07ZvqyMQ{Y&eILZ#1iEX8DP3>|-EG84%E5(n*YE9s2(F~N(l{JHxQXr_!0|5l z72O?+#N9!<8y$talXSN<7w&$byP6|#_Y2)+ABnqrboVXYJ*KH*XgQ)fMK+{$omv)Y#(yyxH3iLXT!0AMd)6~91wbl`JV%q(RO24X3 z%wHRJB)OBQFKOyR-0zd0m$OCH$;BxH_)3iY^lU&>omPSpp`UwDLse%Kr--B&X{{XP z7q3pRaxBGvGFXkY&KJZ2XQCDL9sUo!W{J4p*V4;0?9|$Q%Uw@S{ms4EY;H!Go3eLZ zDBRq%!%gvoJ1Dic=KKv!A_rfAZvigr1m&LBoX-oPRI?Gj)L`-q5qQmc0NId1LV3-3 zXd7gXBIF{=(48yz;x*@`ShUH1U}d}N=0Pf%i%85BG;7YH$h-^^kJp?v$qtr)kQyxA zgmTGi&i9I=#aaRE!i1kZ0@j=b%VEwu9N-itPz*Y0UUROUkEA~VV+*q=nv^W8IamIP zhx$=4E;1{=l_@{3Iop>(mL7od)UZO=oLgu4#Z8Jl{3jvu;ZiLlRk`$X5^K(qN2Mmk zgYX)YRM~jV8N?7#F|`JvE0ZWs-kS5fj_3p<08V8BH-NY1+*cRnSOLaHW~pd+%~^gS zT7uV{{@YS9cHx-Jg+(F&9=AZ99G#@B-tO#!5kZ}IU_ta)|?No_!LPl19KI}&1=rn zaFwAXZe5H&-inTa8)+msdW#J4wZNNXS@W#<>F?|*?g~CHwAzd z@o=-|Oc>}vdaYtA#PFet79{5^yKmW^I$)|_)DA)3H1c*TdytwQ=dOQ1i# z*dhEn3$eh86RxY!tU1qRad&DZ1FOxrS#u8SgbcJraCd^d9P*m;!2;@xX3g2>bE%ke z2Iz}YiI_F#GfxC-&P&o#OnC_O??{9)=+;B9gI;r9?Ss=Reg*hPD8Z~b`*+eglwsHL zniW@yteQ2alU8R*mI7XhI9@`$=KN!m8&M+=-ZBw+YfiDs*17EuY_N&MJHlmf6Thy2 znZV|G@@A)2`b1ZL3$PuYyjgQvNWV6f{|vB;p1fIeCNKAk#dJpVBVbQhp4Xf?|HEj> zd;>->T&5DJub4IG*M10>0hqvqKU8NjYtAJw0?UQ~n;8PHIj{RR4B|u~~Co+m1EVaWKw@uz1bcYciIIzX5y3xLR{+ zWnk8vTaJL0^;aPZ55JR775LW;u;-w1Mye zlhl+Zbj|r8W(NyESQ|?6)|@mcQ?IdUJ}81wsQmJC2cjRrC#Ljm=b2i+m_bH{v z42Jg-P!B4j8prs=Pzd|P&=2;Bp&#rM^W!uev5tU+xU4ypKjRZqXf}30Aatie$8?a{~xQ>H;VzT6sA`6ysxpAq~ zrK&*oi8+;5iZZ|w82^Uyz&BM6ti!>u4g+ zCuSFV8ugAe%HH0+6b9vs@Q#29A(CDk zHUXz4E-Mdy2|I0T*yFC*PURYwC`kA~U_%*?`r-m?dbja8NqlaJ@L7Q7Gpuq*38j1; z91S=+^J}D;9t6UEz^{n3O&k&PFc3jhmJxBsGoouJ#QM@jKY&&wIU#+&-bIdT`!biU zi5UF%;nt1IDoVMnuCSp#r~hV@Smp;%!ho_AF(n51L*7@q$Lf8uj-r7%5v2=K8XxD8p8}oVYy<3V5AWzl zm1Orj^N{)07f`(;fQ@BbeJd~_%I}PL2|1mQ@J|V&W|34nw?dNqPWSD2k+c)waVFFy zmU5?xQf?Ss{mz<-IBykJof{xMAR?7QyIwbhAJB9&qaPiLGC;$ zI~;YfxWav@FO?0X6MrBx0oVc(ss=JI$HZN}j^0%tmsJ94o|b`KRtn}E|K2jW-_aEl?xvXqGKhg}0s-Q_+}5g}5Z z1mhyJR6@Fs3=cTrUJ=eq$9km&)ZYByU@QDqbe`G{17lCo9H%?daV zkGm}w53H((pDBsb%ndk!V{Xeg2iAshpX!4v1I|TQT;%|S4bMzbUe<8~Lv&p7d2B$UR4ak=DlV%zH7D!1OP~5g8^YfL)|PSBaZa3H z;e!B;U|4lIN+@NQ^8=19Pj7BX$9;`otmBBvG9s=yRE^Sc{=cB(NG^qrd+-Ld%PoZ6 z$7Q`uxn&)9gIdOP7Ky@!@En-hsq<1gHa)r#X7E8XX@s4fi^RYR64E_ zOx?04z(Ix}-=&0D$6Y^ztV{(sj|rhVZX7IzDkob&*v%vzi_vkz-$T*Q0=#4ho{swz z<@a=4u?;>kj0)y^gpWYuvfiisu#Q`B(tV>|5Li*hS;y6a6j11P802&)mQcgV` z_uXs6=mGRy!$_s$l5wQGoD6V|A;@q_gmv8aGXf$fLZsXb#x7>5gjmO&%I?#w3n2W$ zBo!6wxZCRjf{H4igWy9ct!PS$bzI^=SI6Z6R?x$Zj%(1|)p3=9B{9xAZX#Y2%jO7g zLzt>7)^Szd1vUWTBMm00RGyAoSqRerU@I68qXrGtajGY?jw?hFygZn9^M!hN?)`9TV1ciQ4dcl9Gv_L%JW(L?=+EWBtje)RH3mhlUs_QWOWMr7(u zk##P#0+DIfK>roI!zac}V$qE#ybJTf#9{u0ODrY7o)9HJ%2Lo6|Fc}Sj#dc>RiK=4 zRehpx;>xt`{y`avykU#P)sa+Ek^K}l+b6C`PZQsKIf$0H*1z&yDI74<{O{xnQi6F{hlc zVF=WU{5vP&YZA%%n#2(+c@Bn+`xlw4hF5oaj;5oE7TK>RI3mw6^&{A_!z=hvP-ZS$ z1R8w@qB%(Mp9E2=cr+nKW_GZtNnQeYlL<#Cx+t2t=IJS&c4K_vEQKJ!bhvaRy}%aR zq#_NHPUSY(N(xd82&I@b7k6$%Bcv0BS7gMgiO@Hhvz0iJ^j+sX%cN88zAd^Sq#xrd zX*|D53o0dU%BUL=q`HZ2*#fzbIqQV2gn+K8b57)b%5L=UP2F1D&lqY^6)rlCXPCw&(<~ z2c>$A3ZapYosUZ36(mAGG>H6_;1NKDT+4)ep8R6xk0(B{2hcHw|0FnU z3f@DjECea{<$v#rqQELt{VBTgAPh;*Dm1YGGVeopT3l8Zav(BRp%0Fse)1x?sDWf8 z;l?U-9dC1FC4*^gE`sC$5q-NkYL%=)CaocojtCE~w$*LLv5@ohxO8p~5r-dK zE$?FD0jvb$l(fjSv7RmR9L`DwRSz-uri`G{ieLpKS^g;wZYHg}6SBqAEla6&)6YXK z3_|z_iuV>pX|(Q;&8U)@2wrR;d7p5jb@T4SBVnV#jMi;{fas{+XkF5}Us*T;z?>FN zb-M^UDgr)y1gdtY6R6?a_DZ`@t$M2&gsOrKts=DPTDXaQAnKG_} zeg~ITn!1vy>TUD_T|guqE(OU7gqy0K<^a!SFjLi(^k}R685nzliRZ&+123cImhW4Y zU>QifS>(*OP?Y%!O^1I?;%z6xP)kr7bOEs^MV6J)(C9tqmGypc8R$45lL(C=G%Ve_ z*kX#ziC_r?##L*NZN-US$#j)7OR>Sqm4q>uxYtz`{(Z=|%9Z z3OCYd1jMLmj)>HZSCLpVkMnr?jm@n^=u?c9JU<(M?wJ4;f<&5|d`vo8(KS1bY zis~(jK;v~R=Qtcp+7iAJ*gC>H5w3ip5|gbcYJV9dz@{@g5*t{~$#Xu%lot{DlP6Nn zMv|vwEY-hdmxu+svE{@SbxCPpnaqewXTVpF*v&0xOYeUaBI@z0~sRgp8pHv1Q+;^v_#P zjYpQ~K{;Lp>GdWCkwvYaPRgRRfO6TFEa$cHeoZavG+!A$h3<&-OfX(+|^ zH?U_Mo5p{!oL1L-T0SBmMQ&WKeD0;FtzRwYZWeq2ljJJ^OCVe~m%{H_PGT;cK2Om$ z0oKx!ue}fH|86-MmZC#alMDnll;yLOq|$yTi&F2mY{mZ5agbBz~U;US3a ziRBFV!xkecwFAJ8a%{H3|FfJ~i{09|4(txgXCYsb#A;T7zDP}GAt$%QDpn+oHyQi~ zv^u}Mfn}#{JBzB>TCOmhGbLq3)ERUabjNmj1pR^*4px$fUHJ>ul+JdxyoFC7P%+yO zMp+bf6qeC;T86tNA3_*amZ&p(6bh6TNBO4pYq^g-IfY^4>DfF!T^XA_IhD_xwzJ?5 zOXu^XhpBw#wVhRKeLA0aJxndj3)s#Nzro>=DliC_Q#YRqD`Y$EcG|ir3lgUDsn*=Z zfYtJ8xvHL=!b)NrNNu+ZwO~2>{T?XaQ^$X6iY;h?CkFrt{ zq)CSi5^6s_h9Q(I=wF-8ujSSubbF|rT^Ih~iS2^^lV>eWBLCT+nM8MP3O90~-CwfH zR)ZFm_K|&P$S;Eai!kP>Or=YMX*w>QsT6YbEtJHvcG;?Mvz1ZZRwAEi()j1i*Yre) zG+{BSPF0gyO+@W14|a|;{zi*oy#lKjt`VVZrB9*;O-CISN#oBv3$rQ^=HOb+M9s;T z4SIdF?R=S852KyH4>M;tRb%AmbrH|&j(=W^EiME5m2n*hnnxtQ<@gW4lbX_zX)$rb zrAtj5oqe?^j#BJyjz1hP@Tf*gf|*2Y(kp62sIH-x&{21ABuC<4$Dd}4E^JFM`~2Uy z6?>xN@As9Z;+_cR;{O+S_26a1y~K7_!Y572ZQ$)RF$;n&YDF!_ zP}OMGO6+*vjzazeh7bPLy4dN6IGmlJGOs_|K4}D!QF_A-cse+iBVw$4ZciBuAJOd2zW< zfO@3CPuk9uX1dqQiomK6uAcx3KaH-5v;Wo5X$Gt{%PWu3#Phb(H_?@U57=;)*Z3vd zNeH*K{2XA5SYCOQCYHC$-OYwNRl67yui8%TlRia~hrm3}u_=$z#0qw~2Oj$u+nF;P zE&?FQNBHxE*!t=C?Q1C8uTa~&b&@hXJu->QEt|sc+Rpblu2adE16GM}El=){iND*< zXS>}O0*!#Z#dsF-zfMfDqG;(UZSwz2{L^-R=^judIU3CI%(lt@Gx0GL>1r2W25c4M z%8;D+gX16F2fbn!!jBL}tstp&MP!B!P;*<;_y@fY=Uia78K;JE@%?H1f1bq`0DxtL zV}+Ji4W~$I_f=vCpVI;!!b(jP0qdm@ruKwO?B#QcpSLurE(pz-L~<_aR2qNZK`@6R zIoTJ4VN6nbMkhDL=ZvqbHHZ8dgq2M4GUg)}y~N9D{6{CFyMGPFx6D%e>FAGktV>+t zbNb*aZNn1wvR+X9zozkbT;|ug_GLsR;L??#Go(n5()erVa{F@;5MCmZ(tMiq z!3rpMnbv=2pj))MAT&!wsz(ZUlg}yL$xW^=2*Ze^+DtwCY(?7YbH1q$dj&nQJ_cbK z$D~R3NWFgPb3QrXs_va298MLJB7N<1{@LJW{2B#tY5kd@dDY9X1|T#sB<-J&_+h|5_<>I= zpWeWR5UxtE)M2Eur#J9B3u52_32X`DN?&QmI7O--@K2r=5L-bw7)nx(amvLmv17m= zc@yV#T2&cRoCQe)?#4`XKw=~5&7||A-zP>P ze3HQ=-NB$pZ%5vcW$C4cj;MuncGbcP0PvSgzD}`4sOd><8B5cXAc0X`@roz0jda#b z)a>gByhBoVlt8|`fNRPqvb;o*>rP?^=@f6TIhnDmC<2$uB{M?e>oSTKsZr#{lh|20 zne*YmMQ{>uRr9#t!^JAGfhm(JIv;R}jrx=>X4@u3SezQQs~r`|rl7>@7>29tE>Hhx-Jf?jk* zsJ60YHnKbEwhEU{&JTQIHn=-+?IY>J6tgnH4FGB@b9$|0To_)s=+ZsEG`aaCKT zaXSr#>&D0}ou6yt9WdgHLOJr`(%IH+XWQp<X5Dv41k&1Z$jZ_6roX_JsGFR zB+bs89_u!7NA_sj3unDMkML4a$^?W}!)48;J~YNs;BKeSOHh{05Z=XLdKS8XSb6Dm z(WGv!<$@S)q{p3`BWY?o9YG6Na2d(Cj5E&0t%zA}2D*zGtBA2uXY86YbSA3l48Yq= z7>E+3$bg&8+fKR>NKRyj{R@{Wf>b$lSY zQV8p@6U+yDQV%eOGE3!4rC2@YV@o8Vu9Cx4uDSG)O z7zYeXs(R9_SEVx%zK)u86^uK~Qgx*!#7Xs}^ZPKD<&Qv{W~Ea~4G%Y(+Vm zJnNZq(pc$i9D^4H;K&E~^EZ)o&ax5t(|9$lRnzLEDcG71=`iSCLf)mPELUOyf(Wa~?)3N<+2+*1?mf<35tsNT=9Czs~tEVDEc4ZM{m`jPx`6 zG`7p*oXP9qZ((`kb>3 z-ND-ygx*Y2MW8?EGH{MaYUgv_uLR9F4vgu{BGskWFiAap&Z*s4>8u2}&JaZ2Wy8_a zyXI0Wb+vX+8sKw^eu4A2z>#P0=OU4nLWr#nM{fI@rWiZJe9kZ&JVKcK7k>n1vhLWX z1y9m6pR=|j-ZfA?MFEQ;-0Pfb>6EnE=PWAi4&W*vylx_KyAZ94l6Lu=tk>Ov(E$XS zGpFolwBSiP=W`CeBX@sJB)@fhTnAm!IOjalgFqGkP!sLz0|c79g@zPA`-G!-yf* zq3w*p=|#OcjlO#k-Gk)LFa~FtS(pQgoLw-&WuZ-BnXs=R(?mRk3T-X+a}oFbexYr} z=(}#2Xo^|ri(;SPKJ4WjLVfH_%#aF-IA{@!Br^(>wKzG7pMh)Q35Qfr<39`Day zE0Vr&{wzKb|CXJlYCxPvQ9q}A(2dYY6FWB$OtZytLg+>m?z6x`Fusj*p>NVvkQNW1Y9o#AqXQyyGAJsgALyGZ*2KITE`*EjMaTtOYBeH{=Mbob(MZY0KBz^Fzbox3r?u!BBPu%(UicI2dWm0Uk8Y^D%>g6sBA?ik zfl!)PjG!pIeFJj($etXgd+I-)j6xpRbAXUc*8HaR!~Z;iHVH~Qa*VE>ID%C3Yse?< zf`CY>rYBWux)kv_rM=`IoxLtb$`w_3gtUh|(U}}?MD?f$FE$kN1uT2SJNN(q)X8!q zFEo_Lvfpu`T?EnAB^SzJ+0$L<2NSCZ{~%I`_;|~1fy$#<-y<(V1(mn#Ixdu{07s~x zGM3%Vg^CeGMHS&o-$f1^S#~_^!4zRKLAqWPRNu1WT&S%Vp@M2ycCrf%@gmH<1s$T7 zWk0}S*c9PxFG2-%v+V0Gw8@K5LG3O3nF}5FB7AlSEjQM(k71re5&r5$sGw1nz0-y4 zf?Q+;4YTa2owW@Fo~EYAh2YT_zW}dhli@hkj_Wgo_Kn&hXXivMZ=V;qVr>{VUi>r=(A@Mo6&Q5B7!NEN@r z|3UpGYW#kx_^V-udwfpY_J6DKj4*$s%)i1TYzOKkg_pMNS74b|UBJu9{cR+$vUm>o|JBrJIPwFm=%<*ac_Su*9 zbMR9m<@PIu2mJP{m9Q8^f`^Q#&g;;Qecl%FdHnX%54HR?BQG=*<+lTqwCFPwQm3LG}H1AwVRx$dl?<9JTqj-!6@<8zi;MNV)Z*@OG$|_3qTi zh`ROic8|6qevse(aI{X&~$%mHZ!DP!n7I_R&#V z{+m?t3g6_ncf7CVZ>5s2P#X`MBYt}wma+7F^%do|R?tDe{iO@#C5Xx(!ZYE$Zv17x zJ#(S%SMi>df-d;&rGSXs$dk%l4L#((-)`YxzK&7c%ac;j9lzbhg(iAZ|BgTn$$&lM zvw)IX;Ylgz8Pam0J)YFBw^6RF0ejLF-9s*UQVPl#u;&1x9RBS|jZHw$j}6!ne%*(& z6yw@ZQ2v0O9}r2EAV}B7%T$Li2ket?X{j2Xl!9Ig*cSm2xxFWqhic>Xfc-fpB(#Vc z=1D0iIbiQ{p*fz^6RM3C0XwR9z;5${?(erfDFt;6 z*u4Nz4*kWsTzGPj;Zp38Q8>|E39|r7(aI2yu<{2rq-WK5szZbC2 z)X|To9Y)l}BZFvbpJPA7wi%MY$nt6x9yKbEnBw_j?2t zKe7Ui&R;uS@gw4%itt&uthn@8>KIquR_kFKS%cuM29hrkZd`T4aDJvdWH95ZOUXvJ zItdd5c|~6-2|I=HiVi@Uy`pc!=j8^tS;3I;Kx7Q=Jg;bqCrIFny`uANluEowh`6Mm z|Hmu3G;D2Sm`zFR6xl1fJ3M|U4~vOZl}gH9(a*O9R7Q6&#CuU_PanHTQ>N7mYPu0Q zE5zzAf~_wD*A}xEWo{|B4=dd4MWGPhi$XtmFADwOy(k&*ZJu}pRK;aArTm$_C`BgY z133t7Z4lYYgF9P0>IXz$K*JdBK(N`1va>F{fEnsa5bs41*oR>DqLjvca0Q5FFG~MD z0nrQe69_v)5ey(%vlr!2eV?Fg{08I?LWdA)_M)ifrC_rcrOz%LGK$~1O2Y_@OViC> zl-Nj|w1Ci82vNzHy(lGf;giA$eaj$n6s2SKqKuBf{zgE982$|oLEZ@^8+J-D1=ykx zT*twCQCh-bdNT;Sn4~I@_o8IM4*Ao-t}y-q<$?F2RBLRDKY{ts4^-|Y;cg;kFUq}& zmdF7@K||6biua=2Mc?!GqI@?*3hEuTz;0|L^fnXTixRyNhuZ@i%s5G;+KX}}8hcTu zfia(1s)m$7kvg~6pMx}-AKGZ{T zib!}TbAIGN(}b7BAi-r#rn=*kIUB<{N0vtTD+ZG@h`=XvQcsdWLiuD)=O@T?L`Z*@ zp*vUb#V2zPz?4YN0c%~T%v@?IouWCJlWGP2@8I#tob4JQ#d8R`#?p%^mwYm3?>mU* zF+dydsZ|l>3XgCVulL}uCUXER!UT#zC(S2wF2Oe>Wfd^$F^i%}$->E;v$KNL5sd!K zYK_KnS-&sEd28k1SDu6vCxS7{uyl_zUxV1N&=#LjB|2E>?X_e$(&6pBPaYdh);THlFV3Mif~-I=kv*&Ej%_( z=DhVMHgbX_6Y!@Ru~pvqWX}7;agHjIlr4d^CtQsqKAH1)Cu~VVupEj%qY2mY=4%k2 z?9&w_7XVx4;pSw{eE1FtRiNAnY@dgllQ{)&75`;mKYO@2nR6lbXDj>}FuMY$Z%*dC zdc&`VtIQ3ofQOrtIoDsaG@byg8smI2=dR+=AO9RFQ)KP6#1L z-M`GqoFB)dLo5bkg<)aDeydOB9E9B`s!Q$$c93vgh2~_=8o9MuNnQnZgK={*=bk~x zz!L-qU}i{>Lq3@^Om$szGG`|oTuDqBhd&iliI|f)BRvs#NVmY=3}VW*_|u(4D1&Z2 zn3Fk6;dlXS6u?QL1amTHvqYUkxdQk`;&_#5PUigTD$ZpGB#+?F8RB>e@yVQB_WE@J z?t}1%NV-P`rduNL#CEcxT2&+&E2977a;wvP4WbmhKve~l1Xhl4EpJZdyoDLKlCKA> zktc6X<~%bLdXCE96Ig#w-ki*N6YHJagiirBljZqj&c9EffNK!G)yTSi#hlFf>ECG3 zV*t-F;S0nkeCA|MKh&N44d5S!z$bGSFM_k%XgGz%W6pz1*RmR6sz>TmH0R@`_C%j% zmIo_2l&O-_%(XtJ=6*NMHemG%Why19nFoDN?Jh2J0$7VenV!;B@73vK&R1Y$P?_Bh z>i!VAenTIq>UYj&wKVBR5blMLBo#})d=E77J5P&Z;oyTUEh8>nZhD01m+yftey8O! zv`P%XVum32YY>S8AVY?@1_o38+ie%n174|Hk)yp^|-N^ zlR5LYz*eKRVC-d&AP3J+(^8(0a0tD2L#na#*Rn>cbwX_Ou#tgLly5U&8lq{L< z4LnJe?^wz5QEJ3zpMNkQO2%jDj@X3qKq^@-QgwjrIg>3>vQpNuK!Q0Ib@hpol{5c^ zL!CDxU_T{(iBtyNN#Y3QW>&I-jyJOsNX%T}3p_<`0KRJ^L^gWRm8|ak-83LbQ2LRn zbhxZ*)c3R1+lQkLYB|W} zMO1mQ8w9Cl;|39dd*y~efg)!HoO(bW3~#V#s0RbJq48iSY(yzglt1_YqZp=+uOV9e z1WekVspFrGXt==$ABoEH%XnK~$*Ab~G7b$o*_F_L&9ggkLcKmU)Z zqubxG`ZAkjb&722_^&BkP(YYSq}QpWZ0cx==>g?s1w(A==+Y#`2Z|}vYH3I}BIl+< zSnuN4jcwIZm^zle3R8!|jj4k|*wjHk*wjHk*wnG}DNHd4D2B^wNBJ|Rj!$ReD=i3p z-5|1u2Y0rHLIt$~)P>=`3f_+ov;^L9isiufzX5%~@OuQ$mCLhPqQziK%rb!6#+k@= z6=BbIny_qd4BQ%K+m5i~2JbY7%rU-3s5IKv|F?Ns@5F7|- z6vJwjuT2z|bndV6i`l?F4Z(FBYzJ8<1L7+X4lzm9F55xU`UBz;u$zp}r#!G7>!J03lR-MaYIUF2RVn1>DfV+)VBq7orYkyG7_omAZ>*deSwW; zoFr1&L0aOx5ql08%bBHWNGUk#`Cexa(ol~(FqnEg%pdLQx;73twP<4pWkgv$s0`|c zx`n#gWp2Vy55*~>6m}5t8}wf8B&>gMSxc$z*bY+kAh3!EPcoQXO9ZxqP*0LULfH<| z`Af+3K*&&*p*vUb#deTi@z{_{z}gxr^EtJYPSMyws8(c zJIDiggi7%m9(}k}5#=tA06R#54?&0qSegkGgHD?5Aaf=ms5%%;m_^Z~WWf&d(*zW@ z2N*+{)d`K|vWy+1Pkxm6BQO>kR;V51pHcyFfFj=pe6Qh1RW7!J+_G&=x&*>aCaJQq z9pv^Nx)ZmyV6?AiX^{>>x$)CYDI@HTL2|r{^9@M;6JTpR+}J_#AJG*k4*)yr z;l>Wqb(f{%zYgq>z(f+G@DU7+}Rb+}J^GPr>;N7+mr- zV6_-$J4h~USC?%OPMfQA|023)2T3S{Q9BCY^bms7{ma-vHf~3UUkS!K!}9DPZ{gqw zm4(B=z9n2Yfw6-OvD|M{{|f9L(ZTq$zMc96`fGa5U{#Sd`m5}2|) z{=Aw>#MnV{dm^xd?D@u4OxXqWek4K}l)4^_9i+(@#6`5S39y!)ys?A)eh;4Dn2*YVz=nGA#tu?+nk7Cad^WHJ zEYEh3>%%#M!lQ{c!de4l(I5*kUV%LDIWoRVhC&p`S(3nF=eZT zIS(#f%W4Fw9?5o)Z-cJVsSH-#P^LCd9^M#UhQ1VKP?g8~!2;H-T)QE6PbOVIHLP(N|<=H`QVJ<6ih?j`KrOQpv8P5*V z2wQ7p34mn{!Lx&`e1ub5Y9hRu!Bp3Do5t8de*6VyiJo8#3SqGwpQ-CdEoMt_4 zEXEG9t{|)_TfjKNEL9C&6|o&8IX}Koauu{YOjW~KL*$dE?( z&>}rDVt|!1xT-m+o7vbw`sCD&XVn9%^^2Is4)SX`p{GFafi<3(JWNyBLH=BdT3rOj zYL1WYJUfV*IT}02p-Z|;TBpFd#1fQ!wu2P;#LeX+;C?*HbVIB9Q$)6dG}#;wQ6Lm$ zlA6+l+CfIa@4gBM^+HLW9fT%j$_}E|UBRy~1C6~u31`R^nuxnG-`XN>@>=ve`lx`v z9yXwxj|!~EgHQ5D1#WzYJ@KUPK0`vAD6w1AHTl5pIWzENC;S+&?-=I;w_omv9jn0a z0D8c%noLtdDG%Hp066*^oQt3i+%Abc>75Pur~pw}M#Pnc54SpSdq4wBo=FaNMDtOB z!tX*&HHUN?T-GDXEg!hud?j)!2Lc#nK>36iYV%?OJ}NLcFQhXPYXKN5Ls`|$M+Ls0 zg_@JQfF3anJy+z93iO04h`b8$jv+_~(YohL{UowFz&eKD9k?Bdl)VGDSMKtO^i;6^U=AjBR?3fe;C6rQ>nUdf zo5wgGxc%jJ_hG&T*bWaj2X6l=0{X!1Gr%q~u8&^EM+KU}t|=cN{3&77ERyQktq^=v zVCcJe4rf7w=EtQ8IViuO2W~%mpby-x1X3~)sT8RW+@@l_=)mpN9gezK?EY0SJ`6@o z88DbPDL0@Mz`-Gnc^AAL%ECWUY zvs5x_RgqjrI>TUWRIDZ-v}2M=D^jJ^OFF-|mtr8Wag0}>h*c$fBP=)uS&hwp9aS?6 z#OMRpP=uJn{;&i1rAOsA{_F{m^km}B?L!NbI(ZWl1y&~(_P=@R44_5RnAW z>Wg2VI{CV%CEg=EC$MP7S)Js5)35M&Kvfx5nV^JHsuRj;^j~8UR}9YY9|kh36QZ(= zh)a*Jo+@>6pb=W0+g%0?H4ollgsIb@B_a z+l;e1+0arb*K+AYou|d6<@G7>_(sWxWnFbr5Li*hS)JS)fgV{E;k5{(W|36So;nfj zpibHX?9GH_#0pg>zv6udeWPRoNHd8@rAVbtsF*KOC#gFeb+OnJ4=`qqAg1yszl9+a z>f~x;bSlC;by6J;Q}P)|HZW^F#n0*lrxv0wL;;8~pxiKYR40_x=+SVW zSL)Ld&kVkuh!?Q9sS)Jdaeh+`PQ@rEFqQbMdwy3woI zMF3YbAyl2*^+}zR{UDrRl8(iwlj8p%nd<=W7=ouxwxax=IvMVVlOPo=YcnW8Tvi9l z537^$dtG%=7Fb2bS)Gi7ErE8b$cDh0dAOOKbg88Mw`E^o?=jBmRb@FOOs(&_!5ZG8=BLoggR-DU#w1MKr+Rs%)J#PQYQ~V zVs-M;U+6Qu*r`1k6M@V~a1J<&a9P>$%Tp(R)eDGRgl`A7i*Z&bZ^HUS_<2A-GORK| z38hpgl-207f1_$?c9N@w$v74}L}eKfmwA-C*lFJiEl+YO)XCPY$W3)f*TH4wr`)nS z>GK1avIBsg29$+~!Rlo2OFqPp7~}*nW`?p@o$SX7UdqpaZZnKj>SXsHh~qfG^M)W_ zqJ&tTtm}-*zX$LiCWNY!xS4p9LOIFW5})6|rOM*QV${h8m7x1y0vK-yo;vX(Vo#mq zj{u3HYX@d$Vppa7usRt#$yFDlfPKI?tCLzs-Py}hU@JY`sFR#nzNqc^dx0HhoYl#l zmgrVLBK#I%)GU%p=c$wb-iA8)4`4<#swN~8D^#7F-sV^8q%cTjiAbeLrB0}rFH$F| zI~;Yf*txfC5$ueZ;2BWNVmXcwW8eeaM)cPvCF;yh8a+HAO;VIi|c%%E0ssi0b_Y6i-$wC)wJH* z0ra3@q#6!c;B+J}0laAlvKJ-9!{MMnBF_K@+ql`3p~GQlI$P%?KL{n5q+>C|p(l<+ zkktUzGz4!rWJBcMaPaL4hyhfv-e3+S_7KVs4+q~wcQ{M~Hk)xC4l}#DXKQW*w#~!M zaJUWs8Z{hF0XxSy4~KN`Bd5P1{4rtFERyQk8xF1Ed~RhxgXY1d38RP=IvmcA(v$TH zASDu!N|9SD2Tu{An45HZE|ql1xYIAm&1;huG;xv~(Is%ilo}54$P*6- zqOuG!o(3*3G#o~Dz;GbB6vJWON%Vq_knV=dnoGIm;jrONw22%AV3GmlVq)-cSiHp& zE2unjB^aNFvUoU5ybskbj{rSm7^#LsPrTQVcL4rn2=X&Zh=;>FWL*fuL?r^3%BBn* z4vX;mOy#6B2(K_n$6|)Ve}_=mHvl#@1aCMLK+4{5So0Y^WJm=Y0p?g@e?j@-;qdH?V^qZid5qv)#4pRbV$5=i!iyO)T;$!X31kE-#hN8xGfN z!rw4Az!FUOn(`Yu94gh(rm$p?8W536k!m_1LpA%p#6GDeWuFHO%ld2%pVv>%<42PLr5KCKtoeaSn4rP$KHyobgF@KK= zHU-R?#Qu}=!^5EvY=LTRwI0|O#(6kQ#4cWip8$5o!_9DL1TO;hbhr=f5#u}@_N_#2 z(xJVw<5JBcsh+*zu%RekI~51`3KRaN{DuyP@ng_-Fy%A?sSOdS6sd*-74t>IA$5nN zE*5)pDu%;M#1xllio14*>zraZ)Cd_4!^gsSkJFOm8Ax2D^aJ?i4Tr&a?Gr}$BVbP$ z=iyKYOMAkzA&DqlT3mH)N+{)USOn?lnxl~?8V*fC=HWn8mJxA(FK{PIi!ii{lU$17 zkd@9X9}Vg8lw20dEf0sA)2SOT2C&9}GLjfP9CAFu=jEt8@*o(eLRmZ<8ox?UnO}ka zVHl}~gM5UP(sYp`8!nX#S&$Oq;qWs~i;_hFmSaNbaF~YHQ8}pxLUShRSj=$f_7KCN z7r+6A;0=dYku`5PjETcn*Qj6%!CX%4Qj{Ma4&##D?*28f{fzT)SW(D*I{XOi7Y{eX z;f>AiaCi>Phj!8N^KdBH2aObk@EF3VStOOt8xAu+$8e|wuoe@_6DxE$q#qqn!=VF6 z|D)@={4VwV3CeAL6IULNN>^vL3)=eAXSR=E}#^ZCLNL9 zq=O(G6hu)(K={s0CO2>P$M;8e=jEK#$<55UlgV@;BDEr!IZ!j7XAa2+91XG9$-lsT zw-7nSkI#+%qN_tv#|U${>@kO${jeP|m3S2?Zd3VhP+@#^*pH1l-Xz?QJW?QN+?vBj zL505zC_lq$Xj4Iv=CBI6$4sRqZe$K^L1uFxDyI?geXqGUORGA;94K9cIkcolX%mt9 zb1Lo~sx6yC?}EVOR{%B|P&Oh4o5P2_eBym-k30d!B`=H3;r$cD_=nIB+(MF>L%HwK zj?4gGHU!y*3Sx7Zi6_(YHGq|v;5CP=?*?^Enu5@tNjeu}4yT8p82Y&Ia6_=>PzTks z<}m1bP<%iQTM6b`Vt+{WVRNX2JyX=|e-PMl#@QThjC9T64zT+cH|B6DgDa&|;hemP zpz~*Q7`z8H&5!t338T{@sh_Pm6kG}IP#s_+CVWgRuQ_y^qos6rkOmNuT9M2gsF}|* zhvWl}hFENm{E*UXkyHFv*zi=DL(R?+=FksoudQdPMr$F4QHl4F;$JF%G!@3?Fd;wI z<)wi_HNp z2{3|Pq=-gPg(NeFBfZg%ya0SaWEG%3E{TpUx*%QNuQaxr5m2s6K2C)xLM7@_AsF8E12N;%<2*pAd$A z*XjAW*TkBxc6bR`ZpPUhHozMwOCr7^VRTv~^|LjH)g7^NekebIA2D(j0P>gm9t~9dN=3 z&H*Zn&7tiBEG8j5H?Vw+vpKx^txw_Q0aayK4Q(nY(i{$;PBCA6g;7FRhv6WzIS`f8 zi1@+S$55HWf$lH|N*7@c)$v|~{2HmhrQ%LgZP^@JUBx+(2LYTmp!}H_Yz~t<2yvC# zBkzOp)XQRXXoh7(c>aSYr@0VRA<4|)JG`zW69JYt1bLeZVsjY&AF^lwumuym=1>~z z|5Z);fiQweIu~OOFYQBvz5uwu5Ue?LM&+$J}In*iU ztyge<$s8tw%;rE;P9x%j*d$4r!?~U?2TB)V4x5|c*H)z7O~qxU+OjzmZ%5{E9>5I) z%3Q=?b4YO}C}OES()kGA|3pw(Xcn78*>=Qu1!#g{Br}JW@1t)k1FT~RGL8yjb7=f3 zs?r8vHzs(^p|8)a$ruo(GD+uR%pu=346+pf*BF8|hyG}yHHQM&&9^8u>@1jm>4r3tw6`mDXE{mI+r9W{2SLRR(SUJYo9L~Rt_SQ#ybHeDf z;FF8oAy{Pf*-tQsUI0fhp)9ey=8*brEv4sz^d%9g70Jwjn)y6)NIu|bh{X;#>WJ_q zE4{1~p#k3mtLO3VdLEP_*q3gfFo@kK(^C%hc6DvYx^tl8#M zcr!q)8CFA^3W_v`+o)5_J7&${0+87ph{|b1e0&*qkEb9|ggMm32bAR@r2dJD zYeKbUb7=JunDSQu4-6<<5QEL3$sT;7nA#(wKgLVo2r3KBVslt|ip;7Q(6WY+%p8sv z#5jEiU^7FIov9!;hwP=%%^v|A#00N7yt@yN%cv$ZKv={ior^JtW|vWsO#rtWf;ES+ zXreWTn#Tj82W58)%-@OKhw8)TaG-}PrC&gwra{m+o5QUVt|K--ump=6b69{=q|Bij zu-c5XIoxiK_O?cRSHkGDNNSzEIy5~C?eGb}sZ1C|EU!7>U3Dd;zXE9^5vdi)%z>Ku zJab4s;An`&e)k*9;dkT|KX?#M8C@Ml_K7fuDB9eF&EekGfEY_9CV*2M!I?;fu{k{c zI4C|Ryf(0UjI%i;=7XjM-WgC2hSkuff+Ee~U(_jPGo4?$I;;Vi&4H+#M#OK(=q_^k zw;#-b(nXlV*z+)l3rKy1iknTfWpnr@8`>rx0SNSULAj6^Yz{%}6S|z*BXfaK(92?T zc>MvHLj|C<3?rF2Y}$l6wFKDN5aicX5Sv4l0~oBs0FGyZ*Bt(==GQe@2EsZf>0FFC z^c;n%?gMzl5Ue@OL^G{9jKy}Z>Vf@3FrN~8Gu4O9q52Tl95SO%b0BD(&0)`S*AZJ1 zSXql3bCB4?MwvrHU`-ikb10o3HSK};frQa%k<`!D90py3XK4z+MNHU1EU!7Nz)VPv z)-53IB_g#VnK@81pJxuq2OJHt*xR|VlH)0IiXWR9IgvR`>mOkbi#_I$W0@lkQHf>2 zsf6JCM1`?A1n_~6vxGMV){1d9hd<*23hxhSD8p)KQ$dmD5C$A`iZ)RqbJ&hwYz{=_ zG+4S&)zuE+K`;kO7hw*KenxG6L)@PT&LyfXo5N|^;zGVK0RB$|1ZF^Lgfwe8ABVi!D$WYraxp9L49`j~bFWEXFThvsCUe zP9$F)iUqOElxkHAoVo~3M*Ono@a~Ver69Z$u!6B$-Rn+l3FhfIKD z3In5Ue?DpgzdawsjAYlrj*SQ4AY_Qo}M1 z!5Kqv%29pT98R5aXa7WCWf*63xVG0dm-@h(SlpOH?FX)-wI{HCjI%j>S{EmFBI3Uw zj82QB)>(7- z;U$ct_^X{!Lo$bN@QckMKMc^CL$%35yiFxG0jC9m(~t_|tHZd)xHJ;p57-dK*&G_) z#X?lzGXc$GSPg9|DAF8a0ms}Zhrvwda1p=Q9Ei$kMEvY4uu)p15&H?ufzm~o!`00g zAt{D|f#9^F+Ojz$(26LT7eG-1$_~U}bLjsAh6uGs)&irUm&N9A63=d=>;klpVI(t$ za39oZ0>GJuAbV0lY!1cip_^9&+{^^8ITU*4(=|B>!Y@qHxfpY3w*?jX2jG8(V9nu2 z^ouozpA+#hD{5FCJl8FV;0&SqusLMI*KO47Ul~{p#@QT(z`hmU8dyh*8*^}0`1H-v zaA0E?XLG1=5oOOq{0hS8v`Fe_YYy*!4Jo|?;4vnQB$n44zR0c3;a89z5RqDu%p9nh z&ohVQ1CEARY(4CY5H5&u6i++#Ds$L{Uu+IfpGBI(yC<;bh)V1TPB#Q+1{KEUkh7~F zUwH&R2H0nevpEdGuEc~d2lO?=YG_kIk>*ewa7-KQPN>Y`E`G5&5S7!2_^OrMMH)t zZyPBG03Br*$;_ebY~(Qq;BrHd>!~0%hbL7a+_nMS&jhbIjH&~F5!K`x2=|zzb1~-7 zWf&S89Ep_y2)eQQL>BNTokG7@b7*x2H{6unt6-KQ_AaUqn?ofyl+5K-+(9{Kv z;-o>%vm)r)%q31{`cPet1v2#0>+pa8E5$e!O;%MzeMkTYMb&`_S3)s~=c-`z(EeB8 z$Gwkr>2NML80QxShlbwYf_tpKh#yROy+qlVt-ini45_9fdY*w~Uc$}(SM&cwK5Go7 zZAOIOMnue>mB>}?e>Db{Z?^iTe&zkIf|~>4D7a4%WFh1$(}EkZ{}tlH1U`TNtMs^2 zrQ{Wm$R?Nc^Z)FBHS7s2gxQogicw2>|Emh!eX6318RGq~sDpW{ zZ)&{W5(oz(TdAUYtMBi|Mect!miE6QocF&%jNShVKkWWj_`&;MrHS{8JcuZW;MAb{ znf)uUGMhZ(>< z$7cVlscZ01p#NLg8T6eDdvF|H1)|yiYD`NZ+997)h`T@;bf!$r{#Qo_!z+u3zkxg^ zv^Sx={}p;COwnflt3G&fjDElJDc=7>&~&r^RhowZQ5Lb42vNnD{jaLD6QUtvTN*?T zq;kyuS8ZPsq8Fec4AVXbb|3Jwy@FyIuq7T`=fV459bM`Zn?cyaB-OjT|5ctZed0W@ z8;lR9I`IBiAJ6oQC%~dGNL1}5;cg*j|Et;2J`n>#oFVB`!TW%p!oalqUzH2{#e8&E zU9g*)6v_6#8dcsWx&s@^IHgFo|JA%7@LJ+@FcvaP^^m%L)5y1jJ-iQ9i0|FQr}w{_ zIo;jcsuWVHO|GaSdjBhPK*K`se`OA$&<}BxQN;dNBR682$vz$;5WyKkeaHJ>Jwudy z4S(>hT#d=8M6ml`VI*PyE1C(lTO|YnIWSDro309j+xPn|o%e-WpGP(7AO0)|GHoH{Jy6?H_$Q{b*nlY%JV=*A_RMU|qw4I@LG(fE}^8 z*#v7K?qO8@ZUeh#@q^gVCYS@?8h+WuQ%r&pAh`86n_xYFdsvBDe+-!oi@linI z)q&MvoHxN57RE%<2Jzhpqqa-RPVi>nC2={BBLGhG5TqVoW)rM$Gh%$L1Y@mX*-fyP z4#l1_$WtB!cARj13d|;0`BJ;<Z1TUSY*0)E+>4{w6CsdYeS^n?gg+>C_Au^ISo>_4e$`x3C+ zgzN4!n_$)0fiJKisVoDmf=zEW!CKhXr_(n9*21PYn_$hraxitX-w)Ujo8D}KRbv+( z^HTrJ0ydx1^Cno!`e7)nNBmBc)*UNm6RfIuPgkA+c$EnoX};jiz~wp2>5l-4siyVm z>D$|7dj@(;^y{f43!wZ4mde7^h~!PM+T?Mku!>;S^)gj)ya`tN7xlC#JAu{T%T$vj zZ-Vvnbhq?rV6E^n?WD__fp5Qq8!eitegO5Thi*5)dQj9Y{Z|kkdq}ETLJ3UT3_N-_ z^jP#XxIPi|=%TBG@PC0T4s8bBtUAt0QGg{4!ES=JBMNEWM0`_&sqyWe8nX%313ZUu zdVn#|!{SY_X61nqOa``)ak}+!b1|D>WyC#!vk{EL%u?N8yNEZz$~6LaHP=A9$5b`_ z@FrM=wrExEr1%{3AA)K)zQZzAsLjCVzo@S*P61%046X-+KFwwmtWt0>s;l2SV6}Q4 z(`q&5a;S^LU z-URDUEap|Ud;~lNuJrmutNv3&-UMq;eRzOCNMMq>rSWcpRrn`-#~g%ryd<>=mVa~} zOqr_#&O5VkR=a~S5+UkDJ@}q5u5`i5($$|$uRsOxJ+9t3iv(MEGj3fI&tOeHZ6H1g zS6{P%xJqU=5MPPBpTB|l9w5AdxHBC32N40}V4sRf?@--WXU;hVIkr$jo zCIxRG-t^_5poFptpqd09B=>~bK)mJlfGS3|2Go&Zvw?V~@tD zki1N|@h4oyC%mPDELAe&PnZvKOd`JRs{9FAXGQoEXvahLCwx%|3JHndM36U;uY4az z)}KK6gb94UKVkS)p^{JZB$xE_|M(Mpa~!da*;KSHk^Kobuw4Vy;T%DCsio{s@S(C) zmj?{7KY{jUV}AlwT1hNA5ZUJ7qkgoXc4$t7KjBYwNl}Fxe*(p@KY@O*KY@O*KcRxe z$5jx~7r_Z)*CF;Nyw%Mw#v^uyL1eUr+c{}|#LYUO4Gd>euVVpy4ro}Y zgEZ!#2@c{YqX>V(mfN@|>jVqxj^I?GzGHtv)i_LLqYyvYVDc>@us?xD67JA}vOi%p zp3uwh5p$5!(2<+a<4<5$!n?m=s`~@1;9R#3Ql)8t!rX+$l|a2B!^C4(!oEVNWddSK zaq9P|mh4Ixv<%Z_9e|CQ(9#m%O4wQeeb5cyU?xxwx@dMK{3(#lG%%Jhi?WGi!Ih9y z8&ThbagbTx;bgfi<4SlSQQ{Ra?i!ZYmC$~WPqe4ZL-X+b3PGJ2soKS^gg!0sfkGn1 zflz`;s%`8_`0#8{limWM36rQ!)|Jrhb=2@ffJ2zTC&0QAHou4a`_I8xz$}#wyAnRe zEM;8@&kh9@Q|<@-s7Yd73H>b_u7pBZtxhEQFaA6ub{90wx)Ne~>vCn5`MA$O&|{Td z38(5fI{jaV54eYVSjVqzZ?x4mqEWnix z!A);m3C*xPLgil^SZRwJSHkRHg~savYix1jO4wOIo2&c?SYL}9SHi0me9D~V6kszM zXIH|q*%%nB5xPcn4)|K$RA5q5uUiJ_q8MyEpSHeH7FbzBetSjMJ6Ti-+EwD}|6X7$igujls6&V5S zQ=8tn5(?IGTe}3o=uFySLLn9P3KC-$NDD+8=y2)v*6k{a&B)Cy1!14}jgs8ZOK zaQ3FqQ`k7LW_y{cICdqxm)&Kq2kS>KQ%#cWO6c~Y%e)NMKVGJtblH_qX|$uO5WNKY zA3^s9RaR&czAN@9w_lSIL8#&(sb*PMLXiXL*d}1KWfomRtSjM*!RWXC0EZfabtPPR z1M+@4;+GlBUZ;iMxDqZD18XZ7`#damB`m~JUgsjP-x*h~1bu>yE1`2Cm`Y$Np86u_ zHq&J%vcSSIK~c7n6Bq_D>J$d8G*hV~1-lZ~;vSL~066tPXlzKUm7#N_fyt&za6%u+9*Z%`}-S;gzp(KlVEqk2pU%vaSSm z=V)9BInKG)-xyq?;t*`#uq%N+Rjb-l8F)PpM^e0CSHdLtcsqd5he_&|#_LL`KRPJJ zgD}TSvioUou85b+GGXnp(p}*wbbjpdq5%<`&;@@griaQ}BYmQ3iwsxrB6(ul1JKaE zvM;>%H8#(5+PA`wS}A4Gu zL9r%UWdUcwKdbPWn(En-egT;A?JKy)ZkzHV>W-cNsAyk@K=lA_8D&c(Y)^@gP@bnX z*eNiUROmp&k2aV*7eVM8r~}WFoD1+vCj1gX=n}ZQ8HDWs4=~{d5u#P`-2zohqxfHd z{l@qmg%@~?$_@(@PYD~8U*i5BLDf#*9j4a}|s`2{*g6bq=K`3HKQq@8|jq;66 zb!4Z@sSdmzb96zpbiy|!Q0EC|gATwxVq7&f{r$)2r|E%oAG#}J#sQy9ocpSti@ppB z-xmR=BHFnO(O;S5BKmk&q?{YrIRLi=yAZvPq4c9N09p`u^`a1TI^-2Vw+L35raujD zm~UBN>|qFa^ow*>K&m6?)ANbbEfeazD)3)zwCfm7ZI%+7kYGz-5grT0gICsYB^}BB zm*I%X`SmR%dZR!K3^lpV`7E6yIslv@>1gF#AzD(RG{_nLgvxkak=b`4b?TKEiBPKWd<{F_?};RQ-mIP&LVx6JDn< z>NqQ+juV?AeHQuz9qL#o4a6A03Y0~uK}ek?&oouPwa4+PYsB_M;JQ(STQ^OYDc(1= z*`G~_5x^%RsH|jXu8k_Q$BGZ|M8LNubq&#ei2s$bc7$cTgKzKo)}^BU4`-oFeBU~kuH*CC$T|~(&PP?E+Whip)JEqD zM!9s-I@BMk=s}Gc$c@>(GALFeem!HuBO61*jT^HG6VDm&t}<7hU(=X^uVGlDG3@~h z)F6nUiqnnRf^{vDu$K^@*I*Hip|V7n82NgZM)&Lp{W2VDK@j^c*xX)y8VAd)MbN`f zLtiz*$79d|a;PEwieb}d^GE1eIuiM=_Hih)Ig{XdM`nu+kIIv(1%qX;EhzA5s6DslY#zFB5nj=33VE~a{KoX%A!)AC> zhL&S16V>L=fz4)ItDtv}p@G#Du3Zng$-#{jj98yL%7P{PwPuF^p>F;-7s$2AikTy)JfI1${B{r&=(l>as zr*z3ymxl~BLL)EvMPtOaA;eE3SzY|p(;YQ=hpFh85qHqCJnI8dWCwb!@`gYLf)tYu zL}JH$xE5vjIOPV6{A?{BqY)YUzHl5++7t~!B18WSlyw?v4&{u;CvMHx%KN=#5>04GrMpM$2EAAI(sWFM5 zlraf}hNq@$l~QLT>j7#^@FglL{gbm8oYT@x!Y*1RD0L4&eQat4f1a-WbVuYNcoLxL zoLb!>WSE(4#Rk-h`!9_>Kh$;E-YkYDrmq&Y{u^9SRJUdMt|5x98NH&sBd#I0Un$3| zR3DAhj{bE_Ks-Zi3Zzkpq~gUOsZzcjeWd`pCKtehOeh#Zs2jcRH`KN~z?w`bVheaT z6a#@gfD|Cp_vSw{|RnOWORozsz^m>sD%ur zERHYlA}0JTplSqVE{q|WzLktFlz=aQA^K$mr#3+&q{7kf zAlj3KB-kBAgQ9;ehrVb7up1NT z4%-k0M|Z;wsT=`tA`^Pq0!D=5;F4Pm=v#)9kD|Gup(XG!StL3FjvPv<^(a~pn!C^^ zs6w|1Q3YoVU_7K>luAuV+z~65l8XDr*qyJ>VaE! zDzg&0Nsh8*{ty~DQkU73knx11-PiypWNQND6Q<~VStbW?hC+we2E-IFM%hdhav=0U zoKMUIvVb$mqK4O@=t|g0=R3rHkKoLs?7!6`^H}r_EOa}D=*tFDC&SpaN`F4Obzzw8 zLoj@3n#w>|Qs;j$boK{4d(Nv)|#f7>5w-WtQvHc~f5iRPV+S*6k0{LaR}a>%nd6mdBO zC(sPPvg40^XXEok*n53|&6zNF00?Sm&^sGG+;BxBNgv?DnR6Gnm=W)6Y(1?>b3jL0#^{qXeaPP%!wrqzq7ICq+eVCc9(HVLG3RhsFgSK>5 z97IISif_<^^v=eB?{WUjI~&xmyvE}24Izeuy9Plf0Fk?JWY<_wK4Ai%zsBN^w{`Ld zp5&5#{+~4#qmByk3aX_|S#Wd86 zAYoq1SpS_}MsW+r;mRPIWfbS4aW4RRXT@*~8QT$rQ7@SED6&Bk1-&#mRD6_vQ-`EbfFhW8ID{07h}c(j(5ik+I}A_-rWiH-W!v zI8wDs-7W<2Mn+C77F49}APiuVYMUnEjf}$AajB=AJ_lg|lc-L18O5w>H~|{~?qz~H zX>(+jf}VPvNthhI+$=~1U|D17@-6JAC!u$Lyu zRbZ~;+;|y9*s`&VB28yalIOv^%z5)NiZybzw1_B$-xLHPVw=)L#3`8#? zh-NumLtaL)3l~`FGs`IEVyQMUuQfVgkK*gsI5L5--elW`@ z*5OXsi2)erC75LtTbc)Sxs`#}ASw=Cmqob-M+XL_6&4-s!bh_=+8I1#BvdPFU zqi79BHnmHx0=CX%VwX|mU+U=ehk*TL)0<@!X|4ox`n$mXvgyq-iaXEn4G8Mx)VO;~ zkDzVeXO>ZHDvz5>!sCIxO1L_myo}=50F0>Wh_7eTx?{yGqgZnuW2Ga&o=jMY{OlVU zsc323Sb%i@s7p6*WUMRcPE20{+GJpo@$chWfYH#=m}Kj2dk`?X(wG?Mp1T#TZM+8w)D{LGKz2axTO9deCi>o zX4z#F8&JAj0LCh2(bd5&qZo^u8@UVMK0^@xws^h~+!hEO`v-Rpmk@u?VEWpw&DboX zD4Kvl9^8xf{}3VuaCCdzCzSm=aHu1qV}T_yu9i{gT+A|x8E+t$nqV|%mg-;IMf^s_ z3A**}1=3+H? zQ_ConvCL+EJg0r7S zqmjW!E@B#Z3(-vsB##nqWbo2B+-!9+n32J$5D}AkDj<@*9IgqXk-`Bef)x|F$u_Y zLbDKRWUxBD6m4YiWvm9J-#ZX~WV(^Tg@e;-1&Ec0Ttw!ia*PbV zf&E}I0LsO%5_wvoLI!uib+|aN${t+j!7@102Y%5Agw{+_9mq2Hx6bf?0UOSE9;yS& z;8#ur#SCD}J-Azlk-^;;2gOzp_8C$#89Wgu*vjD4(Lq6@;}5W(m=wum@Yh(35{;o3 zgP=N1Qi^0U`1b;M)>s0J3e2)Hm}sAvh0!Br39CV4Bs!%UzYbkQt>FVsRau7UA4vnZQL7G&^+L`0=L ziuNPu_6KmXT$Yi+wf9p(Fv=K~R|bEEo49I}c|G9o8;(@%Vi}y`QBj8M6R)0Q-1RA@XHl`3YBTV;MYigkRUaBCu)}H!`^XU7yBV0&8z^BZD*H9!TXs z6xb+>8yWl(*7quW0kCBjH!`?O{eUu8xf9r4iyIldW4ojAE5L3s&NBF;dYD6=AwC73 z2kJ3T!^g_taf@Jqxd0aS5TqVoMg|ASbgF<+)3B@zK8ptnYDl&L_5tC#3yln(n?qzeL?cJdN`hr@JvA7O46f8dGv!a9Urd(7$l&HS31o1p`hLZf zp%Zxj2SHU(m*O`vxMXE4q|OJhn3rH=@Sy!ZRYO@5cmv|tsu~$w0dJ5~m1I}oeZBdx z3_elJuQQqg!c3EqmBHPx3%APT8(^DECRPUb$`RD*PXIe-(;FH5T`xzc{~Oq2o8HLa z@_nITamy()oWx9s;97){!NsxCuQuVuft4m)olcg)*|TCMc?uW7#ZxlfFbuG z!2V3ArzR`&Ho=4e7;=*UPB#R8n_&7Jzn)6g0NP<-sb&u~B3TCCFB;U$^I-kvWvb#> z2G7r~r$re&g@=C#`pl_3)g;L>ct0L?tBI^ISe3m@JL$3v9yZ>kHv_eUhi+x?XP6*V zp2I+x>>;UUSs7gE6I^PSgYgZs=;~l)aFJXf><4(%5UdP-QVp9#-a!062GiGeZN^3h z-^U|5C)H`(ej`K-U?YR~LKZoNfF&`mWU$V~$lzZWLk8CcqaCwU3vCy%3>FPh&H&Ix zF;z`J{5HXLywIy;@B$E)8IqO3QwrO%Rnas#x2CmX=U)gf8a+F;wvIJ!)Y`c89Zw)D$@|rEe#~c z5N>4fXDMOiJq%`KaC$_<4DNxXB!kDEi;%%>k(y<2LhGQI1nxEj`56#-3`bT5Q$Aq= zpD%-pelAsVKMJtPCH?$AGI-uyA&N4aiq<8v46eQo?_MLi7Lle=OIZg0>GP|KwquB8 z@VH75GMFl@WCI8r#&9%GgR7p03|6?2!4$(Xn0~MfrXMVWi~SuCH&B5) z2+mhjKO=)%W37M$H3~r?@*4}ca~5ud3juw_FAXBv$6??94o z;?Fz8egU<%GB|)oPE@Y!46Fy?YOJyhUfR~t>Bj+^%;{MMN7G4Q8C+^dK#}BTFn4fn zEQ2#zHe~Q<_`QfEZ{yEBVyn8b4DNkR7b#O*#x(;$*NtUxjx|E3F957C;X1u}8axqB z5!LqU!0K4s$lw*&%~atXfOWOFk-_cPx%rO&@3ZE+)m&u75?ff&?s zAFv}9H!^tFcA@dx!0s{5GWh8X42<9vJpVyZZC5sLWpGD&`z|lQ5*~uo9oxDWcaBL?cJnkY(_7 zTx{*r;1wx^V#;%%Ur(0A$lyP163E~l53xNCm@+jU*JMFZ6?FT-$lzIci0UK&EafE_ z8Qk*~zb>~f@TSDERW&lW%^aUDs2A`d-h5aF58CADjAnr_-(+NE@Pv|noylfkJ4_~4 z1{cL+80so{9@u4@-pJq_crie=_KCvybQl@j@wK3!TTb~BOd~gfYY|2U--ZXTH{oS~ zRUllQPL{#%<1IGX5b-TdT6e4%8T{s#s2thdFeap-`ND5xa9LcW%Nz%ienjErh%Jhs_R(#hoH}#%2Q2}EQ9B@aPuqy zR!uL{PP#0EC%1R$Z9whjp<5YTbGJLyjsan&hoqWiW$ z7+Nw+MFL9SsASE9E}Vv@`HQ*?Fr6cPC=Do89Wx(QdP?tz?XYCQW04Or^_P6 zRuB#|N!`+TWpKSYLRPoCqf3l`730w!i@~37?#2GgJm%NU>Q6cy93=t1^z;CT2lRt3~u)tUibm^MFfS& z_7-mE+*lY8c>xt=xC_BX2A{>c;0g?VL=em1j$5q^o`vIZBM^-Y9@h!3V9>V#Q3;5fC(49%D16c;Y zeoKgvz$P(1iR!>Ic+7V`u@u;P5AGIXWbo>t*trOV(}t8x2G7N5w=(!7zW+j_;~Cf~ zFuZirb=&gd`X9tQJmo(Oh@8L@7^f7;WN^ji&@q+4sKYEPgK2Qv@f;>=jz1H2WpL_; zuEf2LIw-A66;TJ&26aHgLLGE82kUVVM;S%P;1%OA)9gj!!&Haq)ORd{SC+%na1HVI z3?}Cgfn_j_BpD`@W$g-l4bDC=9ny30Q`;#t1SUCIQJg(!9jo*m_Rw`qFDwH%ZXav z2gCQfX&Ge`$$|{7fz=B#3mEyC^&(D|%Q7-})e=67rz%ux!7yNoE*#_u{fu*uAH6mFC zf3_TN`O_438>~lOrYeqQ@FxY`Jk$S;rGE(e%&9!pB*`*(&rfciWx=ZJW!g!XWpL`N z?kw5~)Q>%MD}x7JcT1lL!h8=&HOtE2&0nEg)`PK=S#+JTGPubGH1`a^i-urjaKTTo znBi~42OgLP+8XoTa!0-fD;pTG9v1H{cPSQlX<#)NS29>n21W+&`xG*`IT$^erOre| zfo5;HeDK0KV?mq7RAN~fJnNiZD&njL;X6aJGPrzK_nLMT*e?dx145r>BZC*buCGGQ zW3W>GV|qcIX3aD*xc&{lz6HtyR&ip|gr)C=yfS$IaH#kiVASXQ=*Y@ob?0bgaP{nN zUHgMGl2cIMunhj9qFc*(z*l=XQW04OfA?Wf`~bp9CaGH*uMBR39mswK;jx!wWiZ{8 zDH*J!Rk$7Q2V+ZNc}{E~02%ykM?4K~aR>$t89WXb*0>)qb6OdkWj>%9h<^*gxlg0f z$l%&pF>SX&bT;TU2tBZG4zBBswtK=d?t2JTw;-Qc}Q%`*7?lz3kZ z+(QWR8J(R=II=RB@(C08d>MSQl}?_HZi_g%q@Vvs27kK=uYNO|iq<8v49@X|5LAc8 zL<+P(OIZfrOzTq>?a2_!;LqWO;6>3?X(b!zKxB(r6Hqd^!;=UZT<;MCslts6rWlsN z^n+zE{a_g!$STC&sK8?cCp*>8$lxxMAOk_oil7krvW43@GvKI?2lN`l`3W{Mcs%Yu zt1*;75X;~vSc+yo*;Z%=WN>p3jSMb|jXH~iJ{oZoD1*|J*2v&c5p2MYh^0VQ5n7&5 zBZJlHrD!9AU&Eqk`h5!F0@IBQe(gGzj3D+OLR2wE2A{{C5-IT{EhB;27*?Q5{$#53ciI861sWgSvpwhe@gfSq9IjBgA-MGZ?Q$bzm8M_Ba(rxeL# zaGhazH@GGk4VYzRFb!@yp2K9#@dK!3!MZYKh7h*>p@Tc9u{xlNr~_()I-p^p4n8yo zTX7Ia8AZt82lG*_BS?Ib>QI;Zj%9Gg@|dlDL;ODmlkXCNWiX8-877ov@M(NPPv-g$ zPrVRSev*#dgwL13|Bl2I^bT0$K2;1(uyv;@fD2~Cm1PXMnnfpXAAvkZRY04CN)V5E3zT1MGKvLJ(NWA8?p3yi|d z%8HZavWyIVmlkqY0pl&h^2*?CkmBA<8M1>xM5qxGkKxM-+xE5w9D}zg5E+eLl z$DdbC61&Cv+m;O(94aRiNj3qq1+jZk;Vgr1#_4ipKVU;RHNnjaVrzpO(6}}e+cX;<1B;Yuo;w0FCCE+!P>l) z!38>FxEBXl*+YI+MBo3#jF&NDa%gW%{*#o)?eSr-oTz8?7!8za6ce-*Wuz8Fd z8JxN-hVHkB-cAsmYc(s`MbTk37>x}6r>bVkTcH1yEQyi9>1`6o;0hJ-{Xa0}OO7M* zBB%=LQg~7HnBOt=CINiIOE5CHiQ`u_l+A&EKpb0DBZI5efj6EC8V-DdHy@V4J-!X- zjFyA&waLiJ;E8wL+U^5(#AIS+aLQUfo&Gkkdp5n1!KZNhp(>FAUrkGk;GPa6gWE$t z(k-Vf0IV?K%Dz|zm%$pk8-!N}R)^EG46cULDcc~vn@Q`A6(fUJmB)x00dOJ{`m4#x zJPp478SH5(z*UC8GI+-ZcVgND=#+t_vOqN=Sq9fHk6ld2F#iBc`px-JOjR7q;Ix(C z{w8KNunKyaYLa9be5nr}0ur+_SdF|)JL$3vK5)RL_W*UEhi+x?)Rb;Lr-QJ}LsHGM zGI;zo^xIZ2_A!etAyx*jn})M;3E*`@urm0o1`upd5FZ73V~3`DYRuE%s1A_1xxpyp zVX+LZ^AiMa1z>M8u4J&D42%rEG7hYEVDx8}>NVR%{51GW_%xkKpv`6~v8)Up-%@WJ z;H(E>iy>JVJZ_ObdCqBIHw~@_gg(ti24}+lpi~XV2|6Mjg6@Tg0bykDeCz~AwQ%CV zDnm?~u=Kr#P!k2PAGD#Q8>0n8`FXy)v(Isk|*Q9g4P_2|fF_b!~891$}uu(KL z)i$q5mwlnA1K8@F@PWXFGoE!lK6jUN+ZXyWI-u~`fEF^W-d?7H3N@?QRh$}xY(+Rf z;FyoLA+J1t1fwqFm)-^K&tN8^avBlebO2;vQmj8^eym-MqjZ=EZsJi>QcZt!?~G_w zDm4wXLeK{{GO0Kf#m*02DW%oJovkv`>1{0Dp!z@cR2aYLBb~Mq@9l>J2Jm zpg(k(HtCcf0_|@Y`d(4j;uC+U-UHNP62RGpAeT@8ytEQH)>K205HmcayKz_;-?{hdra@Mfh}WvKjD6rK`|M9X9CUt0QWIL z4FxqQs}z?nF2w5Kqevpij@Kl$bg_KDpgsTRasqSXd*TT zDgdk$#18p4Ai~u^O#GUf0EgLD{D^C?Lv>99Tnq{h4NV!2e(Hz# zA(UgPmegs$D$SlZLMuTe|W|U8uz~?*6{{C2~wy&DrMPOzcya8!m zpZFw|BZ?~AILs)99cJ`{9cJ`{9cFiHU~w-Z;t-q?R6pY|Ycf@ea)_;A5Se7*cFt*^ z6wLs2V7MZ|#$lG@Cfg#BHYx>QP$bFxwr3 zIV0i>kc)&iCe%30)aj*Y<1kzJc~H^9*pw+Xf~FgX*-^-$+=$Ibh$_Z7%o=PAh%$(+ zY7p6+$}tYJ&Pdo8P#cD|Q^{m^H#SHFH7ul1Zuq*7( zy*{xXuTVDt)|PQfk<4M%3(j<3e=tTe%R0Y3&+QtsEyxIMlbPa@iOrknjhgt9niVDKjmk~jCfI4Y(0<6O>oB`w*>ITc{l}+B@>4J;5&JVLoE>K8GP${} z1h$rQV~5!iTw19Rc@Te&6Ry&;!>kUS1a_De#|4Q<@-h8+(QUL~hgm(#hQsXJ!{{E6 zWPbcfAhybz9cJgZ37uOtV6_QXcEk>|_$W7hdthB`dgCzjf8f@A6tM9YHx9E!_`Z{B z+cIEZS=>0xmLJB6LA2b9KZh-D9A^1m$K3?sxA5n8iyMd8#-TxFuJQ$JI-3T;ZJ%+N zji@3to*!5O=@(5Vb%-MRo+1Kp9I+&^16}fYA_my*=)Sz zPE45<>vQuUL?$r~vqd%u9A=p>W2b&FWi9+^NJ*%IZaT(XyY*Z4xf2dtt}0#yiIQ$WYu*A26K9LnB~LbMmY`f^G#ZJtQdz`v75MLtOvN03Dao4;B_MsYpLWJfENvc9cHUr z2sMSthk(MES9C8c3sWPK9cD$aNS-D;nH#L4UZyIJ9cFoOFRz$2!D`}Vs!5U^X46jN zV-J*PPq4;#nRe1;huPjWK22W)>en8+b(rOt@7JV#Ae{A(BsI%A%x=KVfM;Kc)_NFv5Hx$*K8ND!;C&Y=j;OQFjLj^!@CH~OzrL>a0`Ur4aqvp zeofM+*?9r}qbvv!145r><1kwl)~DGi23E!AF^$7)R$V=3I`4tiiI_YeB-=&c>237t zP%y@Eesp9VX6nw-ILvY%cCWwRfU}KLP~Wh_Y%cE0DZ)7e{Fa9!6_Fig$3ORrry!)p z^-ech-O_j+X3ua7@iGX-yd>)|qnk42FjLYhJQsJMu_X$^VHR5te{x{eWz6!gFyiwZ z4Mp`tCfYf5ER-oDwn!B*n@eIcpzZr7GKTH@cl`&)L`;2jqe{1mF{Im0LpG-2N0>k; z&wY`YzZI}-8Q}vBV@Lnv*>F=+F)O}fyFXs)zqV0{%dP z?%}5WG1XEprbQ8aW>n*1&Yhti#;1vjGlowSxg~VfCB!a105``0oN01%ECw;|Ca#Q_ zL|ivVM(oicTOz(ag3|&Up|P9e&Mu@Hfap;MlAQ=QZjO&?V78iJFyrPZg@~9Nxsa6H z9BZDO9F$L(z~{R;{CHo2k{3V$Ho2sq|HsX- z26ycZnN4YRiR|W}XKYl5?nLTMEoC>yyrh7t=s1Sh&2b+u$FZA(Dy?K89f)iV-_ftf z%*hqu<`|s=S1W}ZHwVSAn}dF^n}dF^nnKy>16k85AgGQPfLtMTE1|{*qRu@<8z0E+BbpWkQ%Q%Q z>Ba{#eK4jp#KsY#iZMQr7Ds)e9Aax2MDC_?j1Qz85;gj9%RZ3uqXS|Wu)~b+r#i3?hTkCby16ksuy(q8@Z8EIXb8!>VVpy4ro}YgC*wRFC4^CMiD-ceXB8D z1!5eL62Uo2eaAkK^Zx;hL42ISfqH`McM_zVJ4}zu@5A}V?5rcoNj^e7n7(? z)(2AMBx;xf7vHQ1x&zcnqZ43#AoUmFvQrq0(#%rXun(jQW-03fIl5UWrfdm%dy~Za zKzdj}8xYm)p7%xT1aM1`{tBx*=d=e8QycbpshKt3<#Q-#Q*z)o>`_JO=ZCxLw+ z*|D((k>oS{3A|!PKKnr4wQTr6K6q6qk}L#fF=DH_u@B@S&Z^3-7O=XU8~Z@I;;}Fl zB0J$vcfxgg;{$1jkwqOOKLs|);>HJ3CasIF1h&@V#s@M(xcMIhcHH8|2a*YDRF!`R z*nNu|AINVlg34TFsyw*{jt>VBZq1yU_SRnpbz9GadnUl5yh$ z8HLZR$zKuufFN5#_JI^ogVFdvmNmi_!C=Z9v3P3;Au@^afh5`_@PTBjiM8@z%D3>R z2_>Nly8U2$AZsRL>irO4e=ouKK*mCIt8%9TpGO>9RpSHsvjg5n0VFr#&u-$_g4hT0 zGCrW7GP(%DH6p2*UE_~^q3(F1tulEAERfgD#4Z}z0I!!ypA%Rf!gYG%0~z`WUS&d3 z`8u%5HoftIga_hTA+^65u+}!c@qzTb91w32J`mV&PR~A&x)U+Y&qVxUlhz$8#s@NQ z5D1$A?qNazpDngNkj)n{m@WXkVhHR5`K3K}ZzOYj0w^k<+c>E#P>o3TfegB(Cp#Gn zR-%`wien$hl49;;R|l;3y-YPpvJd1YZdg?5eZU&;W!g!XeIP%7;8u1SsOvm*>jN2I z&#mVn5PtTMRI{uPNEhOg@?sHkVC!TBk2Wf1mnsFq9+6611Vk&xqJb}8fK|pvt7hKkh|FH z#Q71l<4jf45BorVsqB7G;0_4)4axdIV)N)ecIYb<*%7qasR5x+v+;qX!nZ2b)vp9t zRiDQ+K9Ezp^qlE52df(~*-Vr9Kypt)e~bWQBIid()(4{Q9E}g;h2nbnI2*v(#VM## z>;rk$3melR!npwaj)x-^k$oU1S7Y@Au65}UbfeWRjn@Zqv}{o11)+qOWPKoXQ>J_% zN_T}9;tn*nFYGV265hItEngWvkSFkH$UHxWqJ|<9t+e-sUi`AA((7FX9f-tPg>fB$ zkp3NQl2M0YZEvtA(kGNjsr=wk+w0|+-ldKay1zhW>Wq^TY; zjmKdYAR+xYE<#AJ%NQY~`wYZ51e$;#htZeO%j3ujY04)|;PZv_u$`Fkfp+&Km-O@h z2(&`dfNT0#V6sp5!f<{wISx9I2L8ywJVu*!wU+kmCLYgYAv;`fAZ2QmZ z7i?}OLrKtBlHNNMo6o3Ptit5f0Ej-X!Q`+nCV7H_o^Ng zT@d>bA*vW7q%-%zYp{r&Y!G>p$}vLvWh7h*Xf4BDAzd#PI{*SZ?ZI^(ETl8d#p|*l zJY$t=nyk_92%i8c$E4aO>FeU6jmvW$?vIR&g;U>r6quaF*q#bSZ}$owYo`-Y?2 zr8P1Z6D-_@n_wcPDvDu&pc}8+#zHz}88@e*AS5w~>LmQ7_QEyP&j}sJP8G5)z?Mu< zCyh>k%Ub4y-lET&^#)@Yvs5-Lq)TCzvO>CEg@9tp6`-#%Nvx25-LfI1+nn?%k~|CM zC1R&U)2xtQyhWEQ9|04^+{U{22`7|U`gQuOz;Y3;(zB4BP@3viZyHul|BMeH?D8v; zd;`okIX4#4Q!E=ox@nGpBFUa$_T#)+NY}%HNh(rK#h+P(D?4H#eKaL@ts(qd{Mk&n zsvCcj;1euXpbnBJft|Ow5z-~`=@NxM0QSVn5?o|1S zz{*(M2(3+cxbF)$_~{tLpW?UJ&yLOOjd4EMDF zcX|j?k1r#nXRQS53>X&;%L?i1OYnjyRqDI2dDWI6LE$AO6OJanyRO44^ZwTqTxus&t8K5tsBve7S zAB>RxknWi`0sO&BFhY7>HlHr{BJkV9u~juf`j^em*iRKoeXium76T6e4%Assx8>p%dP!?Xyx zm!fID;Kc;p?;(d+fN_SvLV6vhXqv)gWkB@|ER}_+5y?XOSWlm3b^&Xkm#KEC?*!|#muV+m7Sb;rbLoGA`k#kxh4hqzZt0my;;s%s_lRl{ z{joxNY$vok35++GMVAmOq*LDmp((&thG5^m`3>(>Ieid6+F)vYyQjto>DIF`$mfFb zrH92r`UC7%>}&&egmERL^<-d#bYHyA!7!yG#V@Os=`*0hhu4(mwwK2FJ5c)J5A^r9Pp_zlgn(#cP5z=2*^Xprnp15K>E-zU;0B%~aJD{0OR zi6N1Ym{nPP##uiEMM9}`i;$bhNjHQE#WSk`kTF{o2-easZUqv~G6##u6Us*Se#Iy5 zAmTqNJQGc+bR>x*a?(eB6H4fOqg8?m(Z@UEUM43>&4Zv)i1c)!OQ;%Jybxa=qts;q zRU$Y$js5hsp>`8$gtmg+z`6YH>qaUeDmeH{9hZWP6#iewA8U zpK8bJ87}rj%^w2vl`(`UtckSi8S1SRqB@ei1UxTu`qe^DeJAOapB#N;=yNxjea88YBA6vKf{V4QLlSpo_FSTU-I>|5v$IZ7_*4N$SEtwr(O1}}$SyBb5L9#u zsaXzOK#}hb9*-1Gk>PPQLc~Qt?_tZS(Fi068W*bCcz6~~J{_t_6J#%7(!^V+m?}TJ zaqi)X8I3A0Qy2ZS-xITiYOf07YhZJ9qP%KP%$K{M)dJC-v`F?Qx%R}oumHoG0a~U# zG1(CjQz8efk|$8!+2um4-XL|0eI1XxOR;vW;|xXE`V&Ak?*2B7*9;)rXgYj zWZwqK?L@RECUU(LX8^dYL0LR8^Kkb4o|s;RoPwy61H8+RO%+|0O)m#pa=lBGgRGX3 zlSUR#%uiV1*x4G0E(XO`_$4u7zMt$CUFzk|)+OH~mOm-f#CERSLypV|$W9w&H(#V$#Wb(+Q{{!8&JZZs-ZTI{X>k!fdL5FeYW05)Sh zG5gU<`8_e`@(M=EDuCC}Dt=GQVLuw4m{pkEN+6krU0*`qrNqsYhQBYlm9>{3n@Mu! zs+rP|r-M`JFNf?Sqi;Mh1u%~Adtz$NbTUXD1@fe^W;`)P{AhS$YHV^b2p@C9jVv~m zH{*$^xLGABqalkWIp@uIV!}^irC}r@lOe0`*Vj`T>WsDX-W9T5e!2F<%)s3d*Ud!8 zruyaD6Z6xDst|GsWGnn~?TM+F->K5y4%u$MTzg`y`Yyg)<$1_1`Q_RZbLcg7IpaND zlpmWazwyMJEeQG)M0^R7QQ7&L_j_XMcSGT8LfAA2AQiu~C+2&)yY2x*AC2;RVn$ka z7AHeCgXByPr}o6W5uz5pm+wKg(#W+ZrY1g}BfmoQUK06pXgo1fnT&c$!`;~-jFi6t z{y2+@_QcHdtH2Wz3+D|XWw8dhoxsK!wCh28VwN;_3r9T&n+F55CnlG}PPY%_8HDj? zReNF%V__psXb$8HgY6hk%<=roY6vGVHv4pFPs{|YI>|Q^36NDKxw;~>C*}^;!e~xBX$e_7qi;Mh zeOe&z0}(%3>)Kq=o|t_@pgb4Cw+!GRH&*N0!`Ir*<+)P~fHe@V*8t;*`TIxJgvmn? zozr5;R~R$Wcw(~kbE!t>0Z^fh^!Z>UCuck{KCItQ&7yn;sEWZzZX}H-rV^gpGO{U9 z-Gh<-M%Q>^j$_RLhK~buS`ggtiK&XUGa0lLfVDv&E|%XD^9j~xlivby)S##f@q1#* z??Sy@f$)|F_&qT{yh|g86iofZ=BK88YP2UNTVIg86cCkzP{tFp{TOB-q(Iie$Z6DL zThX4Fgtw5yU?8R#6qnFnMaB~|b1I;31Gd6I3FTi0Wg#9RuqS3a0J}BF?}^!TL!CUw zdC2Z)xgvx*&Ds<5+Zt8TjDp2klzzSgEIES@O_sx663)tC05~v1D=>X=t;FFhOc<- ziHWBX$bWib8bM+_G2^bg#YjX#-naF37#Z}~eG}8X z=wO4wo9Q9|wEQT!OIi;WKc0YF#J46tK(SrI%K-Db^tet#9NR5C>?gc`h@bCzyplKh zAM(O@MNpRbGJG235wqZ1EAe&dUyu);+FxQv>5osrrx#rWuNCYpy&mE4s`-VWNa0)e zBF;6E{@{O@9!^gfVfw=VFg^SjlC({qLt)r7MGD`B&KSqTwBz~zF4eZe$Tj3e|A+j2 z>I_PJ7M=>ZD%JXcQf(-`2g#|VH9K8j#Gk-4PraN@Q2?S+M(pSW zjr!P$xYrMbh^Qr=_am^(ER^a3BhQkylDy}M%o`#oL!C*&347h&OA+;cb}nrGZCDs2 z>ZRO`Uc+Zk0C^2tc-}1-UZE;fW-e0Ab@==_m)Lc3FFl&HJ(Jg%-XcArF7NtCZV<}OF2$;e*{g^2K$ zxD&?axJ{yIl4a>K(zVzn;t*d^%T#rzvV5?NbmG(8vJr%>4IseyFzFe38Fv7XWf=KG zN`d{vQ6EZANFjWs6)|%lUuZCFLt$1+kChq1n6;2^H5j(z@?L?5e6RGZ#H+=QqY$1o z0Iq;(vL7BjL=C`;@bxjKhtPwH^Vd0*S7xd6rSe^@VG_@0OjxT>W4@E^UBU&DX0-N` z)PokWE{vsMqgCzvB%O?xYC0pfkCsSkkNhOviU~z>0)#USARFo1ES?nk#ZXXg34|XT zK%_r`X`b9Ch1dqsAtU}bNyG5$mD-}Kz{tF$tx5XHBaDI z$&N+Qarx&Xe|tT{aIuvH;&;ChmK^YWJsb~hAPIj#8_CbaJ{Wm%9~Q(yY%DfMWir2B zT@yzm8-9fu$B1sMMSOB~GsOC5B7elA4cQHd{szUFRQAt#5`V(khG>=%CsQJd^2Ma5 z_(~zDyvre9Z7^&?VepZnzk9nFvj_5H2E%sLWzkrAhUdlb{3?WZ4S=h0y)1-=H0osT zGsE3@-PR#0VB?ca)!ppU5GTi~Yk(_2k|4{KBJC@MPN}|JMx&N}CI7-2VYpnzw)I~w zd(gBGLn@=OIqFksb(@Zb+{GNkF4Pj)g2bjx9|B^?Pa)i70Nn!slOl^uM%E5Nc*+3M z{RvF-oNEZT8AMNv_}`by6R!{hp_C6O>CQZA?*@G{Jq%RumDz`9mTma(V7V$~@uWMn+GZ(eVl&_O&^OkizsF|yRw|Ei+_$gr=?MijDm zy>L%QJRFvnTZV|@4a)9CBNIVS4vIG{OGBd)hnKiS@s!B0n@;gDl0Ag&I5x+2%43Os zZLx6t^92hImMpyq$sb0_V^lIywo8{0JkUaW^(w?MNhpMDSX`DUgtVt2;+r(&B`U-n z-UJam!j7`sdFb3iw-4*8Aur`z#JmFc8pFp1!ifc0;Jrr>{Id*HFKU#HMPAJVRpBh`$quiWvrB zrU6_C08EO!QW}l;di35F$Q@Xr~eXyAi*=FGSpe(pg~SUDDQ#cq|%J z%Fun1aKgF~ACFRt`~$!ujAb4?LU)MrmchnN07QJi%hHImu0@p?v+E+&76#^X z;B75KQ2_(<8EYlyYdFlxhmDc(o)$JiVpB=Qf;kHlha zY{VbXGF9DXVBWSQNN@qdn+6bI90T))m`~|IR<8fp1K+3Bf0o@oVUghwlM(G5w1pQmWb-=$bFwK@u3io$96-uzOEDF z>m#`E^N?NNkS|~nt)IK=(^|i?@o3*tB8R^%#7Y?c4%;zoj!KlcZvE!gbg}e0B)=Ky zzgs_iF=j5rF%`Snt)CBRQ|tFG9%ga-l!6G;`q8P%(mqknMa(#w?N9B~APuMXiQt?j zpJLxWavi{r^ARxrc9N_TjClcMNI!s@_DkH5wc4 z#N#RUHZ{tO`r-$Sf4+R;6piM1#$h?NV^Dj5P4=c*3g3+Pi3oz^K6Z&l4N^8j=F2-7 zynr((9)|wQ1@_`QFc8}-{P{q6x^j_W{c4|#Lir#c^gra^m7s35OZePCd4P*;@#`og znVcQ))^a5=K=n}`@kr-5ZZUTGvf2Wcg8U_rW4NqD%d>$ zMB_#V@qI$f>0AWD8Le$VIHP@6;d?>kG^ButIYO^b5U5umCBOm z|52?mM~hQRIJe7;5uDp5d~VN=2QP7M&q1WmE&1K`xjh1|u7>P5Hc8_}b#B=;ug~p# z$b5zAVl31!{MjB*e&C<+*p$EgGXk{sOVvu{m1cK%M}#ZA?Fx z=SD~fV}6AESA+S5FyTdOV?i+_CoD=mX6I^DD2+RcVt8Y&>zsN2HL6*)iB53(hsYVh zTLi)je~yoK1`mRU@Gzz7edMi>+Yx>c@I0Aq@M-x_N9f|R>M`Q0h~x^QXNut=@CDOI zO!5;(3W+?i)o@~5mYeaIpE}y+>I8ylu*aay)S1V;h+7L;e7ifm zw*h?}(C+cjA*RAtHfVMr$PC{2CNZWs=KQjywSgcrd}GH;Onx|C81zFRh(?W^Cw6B= zT!3?>;fQ)OFbd35A8QCim2?auYd;J(Tr|a3Lq+;G81siBKdwGt_j|p zPDyb$JSGI0rd0$@I`VUvvlA%lb{~LG@khi=`ga0j|0@BmzC4{C;C>>n+r930k)?p=5 z30CyBOGgKC7R=cRpmZl&xW!t;bOFW?UnS5UQU9twRk|%0Yf$M*g6?z=xhP26_{5q~ z>E0kS?08h}E?v&jRL-+yRXKO#L3SCq6fOlC5?s#n|CJ3@&K*%)&hId{f~XdnZkLk| zIdlf+DB9mO1x;{#xqt26ohaYs_8=yr?0{%u&f?OY$C>XbJwW5TfBpbUao!t=T2RzPbjC<)5TN&h1GKr z6nUEep-y0_H?gKBViJQC`2-SNoxtZvC9Z2xIDu!n_m0H#1${jFZZ!7XyowneLOFLIlZa;bFe6XmBN`{){d+E{Y)W?kC6tK}!4^lILMF z^y9T0?p+v064lxR^VEJk?!*!%)r4R1$rC){9jA?QfB!x`^v$#4Q*`w(I_V216Yo=P z^nZ2rakchwPPgFsKAry~+9)$(S0E!KF`|kG)ec6?NpgzY==Hq=0vMs%vpl#38pwi9G9y$WAMSWG~3&%sS7-)^Lw_$GufaTl@dv&Iaf zxs_%o;+o^uDto+p{YNfQ;Rl!am2j8Z;4Sk6v~P)s5wA&d;U7Xf9MyFURy&yC**8mw zv+EH8!()-;9Plbr8T7xLb8h(N@OBF%$&jk7QyBmIi51nfb zA}DK^4ocku-sPU`-MyT~&nbAvTWb(gS%Vk&GrW}($m0?BX*7>ldi;#1Q@G>X1}z5D zJ+%yn&r!r3TtpY7`&LsSW&v_RL+IXIzJ(82i?}+=0qNl`ifTKA2j=dfwiUX^x1X!N zwGFk_!`%o2)B{)X&|gDnxUI(ADL*aY@}{~&L|LnBHj-3INTAaFKWqhz%Ei(?~);)-VT%g7sKM7*@$sjiu*X` z*U*Hm3QA!xA4tbvRGs~baE)JYAp|M5))1NwCgTW_QZ&UaTa#vugyT84L&)fqu-LdW+x=F1+FaSCK8C;?akL!Y_1sQ8FRq)VtpH7v` z$}|^dBgD0Sh~6Q^{nMfGxWyUVRFuoGGe@_6Jd!Jnn82Yq z-yiVJ5Z_nEo!E_GRdx4(Rd`5s6on!KlyP;Bip(2J=~*msS+bg&QipFY-)iLM+ma>F zVRn!e=?bAz6`8@K$lTAv%YuUJ)DXH)lBF2ZB9gM-Q zd?6WDLWkQ4@q?)m1UV&pz_sVBC$raraD(FtrrtPvO3wjYwc)E#MEYD;_yHd#ui;s? zTzmr@#Cvb8+#CM>B;5&+|)PoE64@OaOSQGk^hF3riMcJ8hLId+6dZ-xU0RHUJYNsa)Y?_EeSE72s*FQJC{zx({@ zA9X_^uVamjCTPxS;`7k2LqyZ6khB~t@UddtVKlLDhMwOiMX?Z>ZQ)_O{4L8La*1M= zti3|geiIVRR`joITTkO%siIP5JI4Ws%;q_RB?RQ_Vd#RM$(GGiCI`(?&gLnbgQg}{ z*|P(et*2VH^id8GdHI4Ap65NMzXtt^j)a#Go1+hny_Behr#coOmNgOGP>W;+%P)~? z8&5cVATkxQbS+nXW)WJh+LKg($Nf=vaoRlXJ>>_5FiyS<@SCJC2DT)HL=l?I=&4z= z1E@0rsU(U++{;@6I=-V{z@OG4F?<~moz_I+M8 z+B!`*;1n&A^ARSz1BP-u{>WBlPqvC^_p+5ane7Ogfox@d$##?ff6eB?P$^rPi`k0t z|K)6T`Tt6`F8H4>)B21MWsW;*tiTE|Fc1z>;&nlLCw!iGocERqVYSA<2>#zG1ES!+ zi~WDt{{IdC33ag(aUBm}9sJI@YvC@KX56+XiwmgeDW49JqGh+pi#w#qpjdyuRC>rK z7|o>ltP$!1CZ&Ibf460CU)|%%k6F41UMy(Y*H;eh5>0k5Ju?*Y0luTz)tfP;cNN9! zmVB*7H%}BW&@ZF?xmCJ^s{E|e^X8EdRj!2qyhk7^m!y!$MKh@@ zyPQ?Yfgqi$DDyR)o*Ee;D&746{Xi;Ivr5Ie599aBwVj?$E<5o%06Zd)->&l?DnUJ` z=hEA@r93!^(bxhleNUDeIX#8T+Lo#TP>(7_3+fr2Gdv_js6V$Y@QUfsEGlnR`JnNR|b%qCp$_{L&c99z$O? zg{&3HIdg_Sr#b^Lt%3?{=r<4O<*Q1QT1Hf_(60Z3e@>Gs=hF*n3SMEgoL2TiB z2H=SpNTo9V^?ICkehNzT2_PD!>U$H<*<_2f@Uj!osf@)0^A^3iQ|ZK=O<&d7+G)}DV5ynu|n>r@? zdsCVyrF&BjKdm?A$7jB(>r|)QD8LLk2elavKg|qx3cf~`%FQbQW=@>(o8j=&%p3+7 z-|g&9Rh$@3pE=e;gkC@T&2ac>W@wx)GGnkno_c|$RR!xYY=uq3L~;?flg4LZuI`xs zA}mT{hU14yxDqNCB9NoX#G)t#hJzzt^bZHUEkVf&lduvjHpf;Pf9v63NHTKU1kr7^ zNbX>{Jsg}o5y|z3Y^0V44+rTr5vhlRbMOUN!pX(heMkz&NK7F!9OPR7JshO>TWsxA z&%B>;Igs{g>@FE?3Yp;`P5d^)!RqH#wq!WUS`Zr-O;YG7!@*`v(c;zurkT;;Jd>Ik z4(`Nz7Hp?CVh0eAO5(qzz$b>0E#Ib%U>?R-Z%kI>tq=RE@m3%E|CIgz2>%JquruSW zpH5-2e;*ajZ3sM?z1rG z3?q6fl_)m~HNzd_;VA(fBfnJSA6NZ7AI01YbBC}wM$oGjW?Z#CCx~|u@prULUZ5Ea zrekb?8)|>Ym|wUUDf7LAML@7Q#*w*Px?`-)Xx%aP*oU=%0Fw2wYhuu*V~p%6#EaxQ z>IGSUl5^%v$G9j>2s-C-DrB!}d6tf`=Um&!#{jI=Ab-brejJ{dl9Bz8{h;MpI>x1k z-Kt!70C+?oDwm{?e_R#Mh127z9?RV-^Ut8_%VFcpD;3i*)^lK47D~J!0Idk*w`)4a zw=24or2znp%3?`(i~}mzmgWJlIEy9SF`mM@^K|;;1^~X)Al2OwDY&~!=mO?gl&f-c z(=mmP##K3|2hfLKhx5~?9(@MZnhLiVHb>_m`h2$<^eKk;crBA@ObEJbpkeueW+=QF zSIzlHGE%k$Je5@XGFsDTJEJvyYJ=hgl2fpoWzdE`N$FTGj84=0kbO*Y&YYpoq+)Ip)qso#pc;XwT#`b5 z`mE!^Y5I)wx>dT}0UAImlzF9M=u>PAUe=`&OaovZf&6w2eI_T_mR13B2sN_Y;K zRz`!$#%iV$+y)OZ+vyL`Py$j(RC~`OFDnWg4 z5Vi52Fdvbo6I{FzvvijWaS*oUw`5y)f@+zGx) z3U(*>5-e~h$d$sKAeBm#`{hrVrdI6u?0{B`*b;De*z04Qii0rsJvK)u`Z0eemAg6OKXF>LcmS<_j8cni|tN~!X2KigDA12yH4nuZY%d@m% zh0jP;u6qCo)Fqb-tI7qoVi&k@x)nQK8bfi)d>lX(Nrf`6R7@+@1LGksK~n(Q5s2!` z25INQEW8@PmWBc_K8q#YifzFYbGEbqfMr=M=~ispLp&g%1hxXOLxWT+Mx@|YZ176z z1j$ypB6w$j=@T_KfIj@XxxW+ay9h(j>~rw_A8d~LXe9mgd4ZM{FNyd{S|*ziz|dz% zP$#(NRfUwD0PjvJEg7xp(=(_O+|<&^AUPArR}9+F=lAw5(T>{ek04t^a?YHeKK(+( zDO7^o2ib8g&qANjukdw3GIAS$dm7}Y&*~{IWhCdzSOfzbCz6Fe>)K%ICUj*b0Fnqq z<&qTgcY^Jk0bqPn@}iw?Z-9o93T0lY82U7rWS3wz01F7@w`)4VS6WF`g0%o_&0d>uC`st_966sFxr=<|JL3B4Qk^@<8cY-hC$s(TR;nT-j9^47$Ko(3VxDB%=2q!bVX_`8LwNh}|8dO(D|>-o`D7=>)HQB2;o-lrK~1dri*VLL+*JCcA@64l-(^hC(Yk8JtwJwZc^PHqXV zA?oa|e4#qMmG*yu_3F4f{u5qCr0E1N!Ix495yxO#P9)p96LjO%v0D^7kLr$grV||8 z*zV-)PH-RIh~rMt_Pl4nog8>4xIdqLXJ~hVRXs{y-w6&uwyavnyY2)RAxF9sT!@r) zC-@G+z9LCrA?^gxnA=VavyG^ z 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

4@`(G{dVX&a)CzqOL)fS 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%0DswDTTLp_@?( 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�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�S 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