From c463c0ba5a05fc50c352b87db846f3d1574008ed Mon Sep 17 00:00:00 2001 From: dl2alf Date: Fri, 31 Dec 2021 09:08:48 +0100 Subject: [PATCH] V1.4.1.0 --- AeroWizard/AeroWizard/AeroWizard.csproj | 8 +- AeroWizard/AeroWizard/packages.config | 3 +- .../AirScout.AircraftPositions.csproj | 8 +- AirScout.AircraftPositions/packages.config | 3 +- AirScout.Aircrafts/AirScout.Aircrafts.csproj | 8 +- AirScout.Aircrafts/AircraftDatabase.cs | 45 +- AirScout.Aircrafts/Airline.cs | 2 +- AirScout.Aircrafts/PlaneInfoCache.cs | 164 +- AirScout.Aircrafts/Properties/AssemblyInfo.cs | 4 +- AirScout.Aircrafts/packages.config | 3 +- AirScout.CAT/AirScout.CAT.csproj | 71 + AirScout.CAT/CATWorker.cs | 289 ++ AirScout.CAT/Enums.cs | 125 + AirScout.CAT/ExtOmniRig.cs | 526 ++ AirScout.CAT/IRig.cs | 71 + AirScout.CAT/OmniRigX.cs | 1360 +++++ AirScout.CAT/Properties/AssemblyInfo.cs | 36 + AirScout.CAT/Properties/Settings.Designer.cs | 182 + AirScout.CAT/Properties/Settings.settings | 45 + AirScout.CAT/ScoutBaseRig.cs | 706 +++ AirScout.CAT/SupportedRig.cs | 14 + AirScout.CAT/app.config | 51 + AirScout.Core/AirScout.Core.csproj | 8 +- AirScout.Core/Enums.cs | 7 + AirScout.Core/PlaneInfo.cs | 31 + AirScout.Core/packages.config | 3 +- .../Properties/AssemblyInfo.cs | 4 +- AirScout.PlaneFeeds.Plugin.OpenSky/TLS.cs | 138 +- .../Properties/AssemblyInfo.cs | 4 +- .../TLS.cs | 145 +- .../VirtualRadarServer.cs | 3 +- .../AirScout.PlaneFeeds.csproj | 8 +- AirScout.PlaneFeeds/packages.config | 3 +- AirScout.Signals/AirScout.Signals.csproj | 8 +- AirScout.Signals/packages.config | 3 +- AirScout.sln | 142 +- AirScout/AirScout.csproj | 20 +- AirScout/Enums.cs | 24 + AirScout/HorizonDlg.cs | 2 +- AirScout/LICENSE | 29 +- AirScout/MapDlg.Designer.cs | 113 +- AirScout/MapDlg.cs | 1556 +++++- AirScout/MapDlg.resx | 28 +- AirScout/OptionsDlg.Designer.cs | 4514 +++++++++++------ AirScout/OptionsDlg.cs | 436 ++ AirScout/OptionsDlg.resx | 132 +- AirScout/PathCalculator.cs | 2 +- AirScout/Properties/AssemblyInfo.cs | 4 +- AirScout/Properties/Settings.Designer.cs | 230 +- AirScout/Properties/Settings.settings | 57 + AirScout/Requirements.txt | 5 + AirScout/TrackValues.cs | 30 + AirScout/VersionHistory.txt | 45 +- AirScout/WatchlistDlg.Designer.cs | 2 +- AirScout/app.config | 57 + AirScout/packages.config | 3 +- AirScoutDatabaseManager/MainDlg.Designer.cs | 1423 ------ AirScoutDatabaseManager/MainDlg.cs | 1902 ------- .../Properties/Settings.Designer.cs | 376 -- .../Properties/Settings.settings | 93 - .../StationDatabaseUpdater.cs | 132 - AirScoutDatabaseManager/app.config | 107 - AirScoutDatabaseManager/packages.config | 7 - .../AirScoutPlaneServer.csproj | 8 +- AirScoutPlaneServer/packages.config | 3 +- AirScoutViewClient/AirScoutViewClient.csproj | 21 +- AirScoutViewClient/MapViewDlg.Designer.cs | 270 +- AirScoutViewClient/MapViewDlg.cs | 59 +- AirScoutViewClient/MapViewDlg.resx | 50 +- AirScoutViewClient/Properties/AssemblyInfo.cs | 4 +- .../Properties/Settings.Designer.cs | 6 +- .../Properties/Settings.settings | 4 +- AirScoutViewClient/SettingsDlg.Designer.cs | 140 + AirScoutViewClient/SettingsDlg.cs | 19 + AirScoutViewClient/SettingsDlg.resx | 120 + AirScoutViewClient/packages.config | 3 +- AquaGauge/AquaGauge.csproj | 8 +- AquaGauge/packages.config | 3 +- CATCheck/AboutDlg.Designer.cs | 103 + CATCheck/AboutDlg.cs | 19 + CATCheck/AboutDlg.resx | 120 + CATCheck/CATCheck.csproj | 571 +++ CATCheck/ComboBoxItem.cs | 24 + CATCheck/FrequencyOfToneDlg.Designer.cs | 130 + CATCheck/FrequencyOfToneDlg.cs | 41 + CATCheck/FrequencyOfToneDlg.resx | 120 + CATCheck/Helpers.cs | 70 + CATCheck/MainDlg.Designer.cs | 1320 +++++ CATCheck/MainDlg.cs | 1305 +++++ CATCheck/MainDlg.resx | 214 + .../Program.cs | 2 +- CATCheck/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 6 +- .../Properties/Resources.resx | 0 CATCheck/Properties/Settings.Designer.cs | 61 + CATCheck/Properties/Settings.settings | 15 + CATCheck/Ressources/CAT.ico | Bin 0 -> 1150 bytes CATCheck/Ressources/CAT.png | Bin 0 -> 28748 bytes CATCheck/Ressources/eventlogError.ico | Bin 0 -> 2862 bytes CATCheck/Ressources/eventlogInfo.ico | Bin 0 -> 2862 bytes CATCheck/Ressources/eventlogWarn.ico | Bin 0 -> 2862 bytes CATCheck/Ressources/transceiver.png | Bin 0 -> 9984 bytes CATCheck/Rigs/ADT-200A.ini | 183 + CATCheck/Rigs/AORAR5000.ini | 179 + CATCheck/Rigs/AR8600.ini | 69 + CATCheck/Rigs/Bearcat996x.ini | 69 + CATCheck/Rigs/CODAN-Comments.txt | 42 + CATCheck/Rigs/CODAN.ini | 153 + CATCheck/Rigs/DX-77-Comments.txt | 47 + CATCheck/Rigs/DX-77.ini | 244 + CATCheck/Rigs/Elad-FDMSW2.ini | 174 + CATCheck/Rigs/Elecraft K2.ini | 191 + CATCheck/Rigs/Elecraft K3.ini | 195 + CATCheck/Rigs/Elecraft KX2.ini | 200 + CATCheck/Rigs/Elecraft KX3.ini | 197 + CATCheck/Rigs/ExpertSDR.ini | 201 + CATCheck/Rigs/FRG-100.ini | 81 + CATCheck/Rigs/FT-100 D.ini | 177 + CATCheck/Rigs/FT-1000 MP.ini | 196 + CATCheck/Rigs/FT-1000.ini | 192 + CATCheck/Rigs/FT-2000.ini | 219 + CATCheck/Rigs/FT-2000PEPV3.ini | 215 + CATCheck/Rigs/FT-2KAFSKPEPV3.ini | 221 + CATCheck/Rigs/FT-2KFSKPEPV3.ini | 222 + CATCheck/Rigs/FT-2K_Readme.txt | 16 + CATCheck/Rigs/FT-450.ini | 204 + CATCheck/Rigs/FT-450Dmod.ini | 208 + CATCheck/Rigs/FT-747.ini | 161 + CATCheck/Rigs/FT-747GX.ini | 175 + CATCheck/Rigs/FT-747GX1.ini | 179 + CATCheck/Rigs/FT-747GX2.ini | 183 + CATCheck/Rigs/FT-757GXII.ini | 213 + CATCheck/Rigs/FT-817.ini | 182 + CATCheck/Rigs/FT-840.ini | 190 + CATCheck/Rigs/FT-847.ini | 154 + CATCheck/Rigs/FT-857.ini | 180 + CATCheck/Rigs/FT-891.ini | 192 + CATCheck/Rigs/FT-897.ini | 170 + CATCheck/Rigs/FT-900.ini | 187 + CATCheck/Rigs/FT-920.ini | 200 + CATCheck/Rigs/FT-950.ini | 216 + CATCheck/Rigs/FT-990.ini | 191 + CATCheck/Rigs/FT-991-DATA.ini | 211 + CATCheck/Rigs/FT-991.ini | 211 + CATCheck/Rigs/FTDX-1200-DATA.ini | 221 + CATCheck/Rigs/FTDX-1200.ini | 224 + CATCheck/Rigs/FTDX-3000-DATA.ini | 221 + CATCheck/Rigs/FTDX-3000.ini | 222 + CATCheck/Rigs/FTDX-5000MP-DATA.ini | 219 + CATCheck/Rigs/FTDX-5000MP.ini | 219 + CATCheck/Rigs/FTDX-9000.ini | 220 + CATCheck/Rigs/HRD.ini | 177 + CATCheck/Rigs/IC- 821.ini | 187 + CATCheck/Rigs/IC- 970D.ini | 205 + CATCheck/Rigs/IC-275H.ini | 178 + CATCheck/Rigs/IC-7000.ini | 148 + CATCheck/Rigs/IC-7000v2.ini | 204 + CATCheck/Rigs/IC-703.ini | 178 + CATCheck/Rigs/IC-703a.ini | 159 + CATCheck/Rigs/IC-706 MKII.ini | 178 + CATCheck/Rigs/IC-706 MKIIG.ini | 178 + CATCheck/Rigs/IC-706.ini | 178 + CATCheck/Rigs/IC-7100.ini | 212 + CATCheck/Rigs/IC-7100e4-DATA.ini | 263 + CATCheck/Rigs/IC-7100e4.ini | 261 + CATCheck/Rigs/IC-718.ini | 217 + CATCheck/Rigs/IC-7200.ini | 205 + CATCheck/Rigs/IC-7200v2.ini | 200 + CATCheck/Rigs/IC-725.ini | 172 + CATCheck/Rigs/IC-725a.ini | 174 + CATCheck/Rigs/IC-726.ini | 217 + CATCheck/Rigs/IC-728.ini | 181 + CATCheck/Rigs/IC-7300-DATA.ini | 278 + CATCheck/Rigs/IC-7300.ini | 275 + CATCheck/Rigs/IC-7315.ini | 47 + CATCheck/Rigs/IC-735.ini | 93 + CATCheck/Rigs/IC-736 (untested).ini | 177 + CATCheck/Rigs/IC-737.ini | 176 + CATCheck/Rigs/IC-738.ini | 177 + CATCheck/Rigs/IC-7410 (1).ini | 162 + CATCheck/Rigs/IC-7410.ini | 151 + CATCheck/Rigs/IC-7410v2.ini | 223 + CATCheck/Rigs/IC-746 Pro.ini | 213 + CATCheck/Rigs/IC-746.ini | 203 + CATCheck/Rigs/IC-751.ini | 165 + CATCheck/Rigs/IC-756 Pro II.ini | 242 + CATCheck/Rigs/IC-756 Pro III.ini | 229 + CATCheck/Rigs/IC-756 Pro II_LSB.ini | 244 + CATCheck/Rigs/IC-756 Pro ini comments.txt | 51 + CATCheck/Rigs/IC-756 Pro.ini | 228 + CATCheck/Rigs/IC-756.ini | 214 + CATCheck/Rigs/IC-7600.ini | 148 + CATCheck/Rigs/IC-7600v2.ini | 279 + CATCheck/Rigs/IC-761.ini | 165 + CATCheck/Rigs/IC-7610-DATA.ini | 274 + CATCheck/Rigs/IC-7610.ini | 279 + CATCheck/Rigs/IC-765.ini | 175 + CATCheck/Rigs/IC-7700.ini | 230 + CATCheck/Rigs/IC-7700v2.ini | 279 + CATCheck/Rigs/IC-775.ini | 158 + CATCheck/Rigs/IC-78.ini | 217 + CATCheck/Rigs/IC-7800.ini | 211 + CATCheck/Rigs/IC-7800v3.ini | 285 ++ CATCheck/Rigs/IC-781.ini | 174 + CATCheck/Rigs/IC-781_2.ini | 185 + CATCheck/Rigs/IC-7850-DATA-FIL1.ini | 286 ++ CATCheck/Rigs/IC-7850-DATA.ini | 276 + CATCheck/Rigs/IC-7850.ini | 273 + CATCheck/Rigs/IC-7851-DATA-FIL1.ini | 286 ++ CATCheck/Rigs/IC-7851-DATA.ini | 276 + CATCheck/Rigs/IC-7851.ini | 273 + CATCheck/Rigs/IC-821PST.ini | 203 + CATCheck/Rigs/IC-910.ini | 174 + CATCheck/Rigs/IC-9100.ini | Bin 0 -> 10198 bytes CATCheck/Rigs/IC-9100v2.ini | 223 + CATCheck/Rigs/IC-9700.ini | 277 + CATCheck/Rigs/IC-M710.ini | 177 + CATCheck/Rigs/IC-R75-chromos.ini | 201 + CATCheck/Rigs/IC-R75.ini | 194 + CATCheck/Rigs/IC-R8500.ini | 193 + CATCheck/Rigs/IC-R9000.ini | 194 + CATCheck/Rigs/IC-R9500.ini | 201 + CATCheck/Rigs/ID-5100A.ini | 170 + CATCheck/Rigs/JST-245.ini | 97 + CATCheck/Rigs/Kenwood.ini | 211 + CATCheck/Rigs/NRD-535DG.ini | 107 + CATCheck/Rigs/Perseus.ini | 91 + CATCheck/Rigs/PowerRX2.ini | 216 + CATCheck/Rigs/PowerSDR.ini | 216 + CATCheck/Rigs/SmartSDR.ini | 210 + CATCheck/Rigs/TH-F6A.ini | 207 + CATCheck/Rigs/TH-F7E.ini | 207 + CATCheck/Rigs/TS-2000.ini | 202 + CATCheck/Rigs/TS-440.ini | 195 + CATCheck/Rigs/TS-480.ini | 202 + CATCheck/Rigs/TS-590.ini | 207 + CATCheck/Rigs/TS-690.ini | 193 + CATCheck/Rigs/TS-870.ini | 204 + CATCheck/Rigs/TS-930.ini | 204 + CATCheck/Rigs/TenTec Eagle.ini | 180 + CATCheck/Rigs/TenTec Jupiter.ini | 100 + CATCheck/Rigs/TenTec Omni VII.ini | 191 + CATCheck/Rigs/TenTec Omni VI_plus.ini | 122 + CATCheck/Rigs/TenTec Orion.ini | 193 + CATCheck/Rigs/TenTec Paragon II.ini | 200 + CATCheck/Rigs/TenTec RX-350.ini | 113 + CATCheck/Rigs/ZS-1.ini | 148 + CATCheck/Rigs/ic-9700-data.ini | 284 ++ CATCheck/Rigs/ic-9700-dl2alf.ini | 286 ++ CATCheck/SetFrequencyDlg.Designer.cs | 88 + CATCheck/SetFrequencyDlg.cs | 19 + CATCheck/SetFrequencyDlg.resx | 120 + CATCheck/Settings.cs | 28 + CATCheck/app.config | 18 + CubicSpline/CubicSpline/CubicSpline.csproj | 8 +- CubicSpline/CubicSpline/packages.config | 3 +- CustomScrollBar/CustomScrollBar.csproj | 8 +- CustomScrollBar/packages.config | 3 +- DotNetZip/Zip/Zip DLL.csproj | 8 +- DotNetZip/Zip/packages.config | 3 +- .../ElevationCoverageMapper.csproj | 101 + ElevationCoverageMapper/MainDlg.Designer.cs | 118 + ElevationCoverageMapper/MainDlg.cs | 229 + .../MainDlg.resx | 12 +- ElevationCoverageMapper/Program.cs | 21 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 71 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + .../WindowsFormsControlInvoke.cs | 56 + ElevationCoverageMapper/earth.tif | Bin 0 -> 4362004 bytes .../ElevationTileGenerator.csproj | 46 +- ElevationTileGenerator/MainDlg.Designer.cs | 333 +- ElevationTileGenerator/MainDlg.cs | 6 + ElevationTileGenerator/packages.config | 4 +- GreatMaps/GMap.NET.Core/GMap.NET.Core.csproj | 8 +- GreatMaps/GMap.NET.Core/packages.config | 3 +- .../GMap.NET.WindowsForms.csproj | 9 +- .../Markers/GMarkerGoogle.cs | 8 +- .../Properties/Resources.Designer.cs | 14 +- .../Properties/Resources.resx | 8 +- .../Resources/green-dot1.png | Bin 0 -> 1275 bytes .../GMap.NET.WindowsForms/packages.config | 3 +- HamLibSharp/.gitignore | 256 + HamLibSharp/Enums.cs | 664 +++ HamLibSharp/HamLib.cs | 276 + HamLibSharp/HamLibPortNative.cs | 160 + HamLibSharp/HamLibSharp-master.zip | Bin 0 -> 3683295 bytes HamLibSharp/HamLibSharp.csproj | 123 + HamLibSharp/HamLibSharp.sln | 35 + .../HamLibSharpTest/HamLibSharpTest.csproj | 44 + HamLibSharp/HamLibSharpTest/Program.cs | 120 + .../Properties/AssemblyInfo.cs | 50 + HamLibSharp/IChannelCapability.cs | 89 + HamLibSharp/IChannelList.cs | 38 + HamLibSharp/IConfigurationParameter.cs | 47 + HamLibSharp/IModeValue.cs | 34 + HamLibSharp/IRigCapsNative.cs | 316 ++ HamLibSharp/IRigStateNative.cs | 105 + HamLibSharp/LICENSE | 502 ++ HamLibSharp/Properties/AssemblyInfo.cs | 50 + HamLibSharp/README.md | 31 + HamLibSharp/Rig.cs | 2022 ++++++++ HamLibSharp/RigCaps.cs | 658 +++ HamLibSharp/RigCaps/Program.cs | 559 ++ .../RigCaps/Properties/AssemblyInfo.cs | 50 + HamLibSharp/RigCaps/RigCaps.csproj | 53 + HamLibSharp/RigException.cs | 41 + HamLibSharp/RigNative.cs | 507 ++ HamLibSharp/RigVfo.cs | 72 + HamLibSharp/Structs.cs | 149 + HamLibSharp/Utils/CastedList.cs | 95 + HamLibSharp/Utils/IntPtrExtensions.cs | 46 + HamLibSharp/Utils/Library.cs | 147 + HamLibSharp/Utils/TextNameAttribute.cs | 71 + HamLibSharp/app.config | 6 + HamLibSharp/bin_libs/.keep | 0 HamLibSharp/bin_libs/libhamlib.so.2.1.1 | Bin 0 -> 8919560 bytes HamLibSharp/bin_libs/x64/.keep | 0 HamLibSharp/bin_libs/x64/libgcc_s_sjlj-1.dll | Bin 0 -> 1109458 bytes HamLibSharp/bin_libs/x64/libhamlib-2.dll | Bin 0 -> 8363520 bytes HamLibSharp/bin_libs/x64/libusb-1.0.dll | Bin 0 -> 280371 bytes HamLibSharp/bin_libs/x64/libwinpthread-1.dll | Bin 0 -> 592104 bytes HamLibSharp/bin_libs/x86/.keep | 0 HamLibSharp/bin_libs/x86/libgcc_s_sjlj-1.dll | Bin 0 -> 1109458 bytes HamLibSharp/bin_libs/x86/libhamlib-2.dll | Bin 0 -> 7382016 bytes HamLibSharp/bin_libs/x86/libusb-1.0.dll | Bin 0 -> 257912 bytes HamLibSharp/bin_libs/x86/libwinpthread-1.dll | Bin 0 -> 512561 bytes HamLibSharp/bin_libs_ori/.keep | 0 HamLibSharp/bin_libs_ori/libhamlib.so.2.1.1 | Bin 0 -> 8919560 bytes HamLibSharp/bin_libs_ori/x64/.keep | 0 .../bin_libs_ori/x64/libgcc_s_seh-1.dll | Bin 0 -> 551026 bytes HamLibSharp/bin_libs_ori/x64/libhamlib-2.dll | Bin 0 -> 2752000 bytes HamLibSharp/bin_libs_ori/x64/libusb-1.0.dll | Bin 0 -> 274311 bytes .../bin_libs_ori/x64/libwinpthread-1.dll | Bin 0 -> 310612 bytes HamLibSharp/bin_libs_ori/x86/.keep | 0 .../bin_libs_ori/x86/libgcc_s_sjlj-1.dll | Bin 0 -> 507989 bytes HamLibSharp/bin_libs_ori/x86/libhamlib-2.dll | Bin 0 -> 2467840 bytes HamLibSharp/bin_libs_ori/x86/libusb-1.0.dll | Bin 0 -> 252580 bytes HamLibSharp/bin_libs_ori/x86/libusb0.dll | Bin 0 -> 67008 bytes .../bin_libs_ori/x86/libwinpthread-1.dll | Bin 0 -> 251903 bytes HamLibSharp/hamlib-4.1.tar.gz | Bin 0 -> 2260629 bytes HamLibSharp/hamlib-w32-4.1.zip | Bin 0 -> 1695981 bytes HamLibSharp/hamlib-w64-4.1.zip | Bin 0 -> 1780594 bytes HamLibSharp/x64/ChannelCapability64.cs | 97 + HamLibSharp/x64/ChannelList64.cs | 50 + HamLibSharp/x64/ConfigurationParameter64.cs | 76 + HamLibSharp/x64/ModeValue64.cs | 43 + HamLibSharp/x64/NativeRig64.cs | 50 + HamLibSharp/x64/NativeRig64v2.cs | 50 + HamLibSharp/x64/RigCapsNative64.cs | 454 ++ HamLibSharp/x64/RigCapsNative64v2.cs | 456 ++ HamLibSharp/x64/RigCapsNative64v301.cs | 456 ++ HamLibSharp/x64/RigStateNative64.cs | 179 + HamLibSharp/x64/RigStateNative64v2.cs | 178 + HamLibSharp/x86/ChannelCapability32.cs | 96 + HamLibSharp/x86/ChannelList32.cs | 49 + HamLibSharp/x86/ConfigurationParameter32.cs | 76 + HamLibSharp/x86/ModeValue32.cs | 43 + HamLibSharp/x86/NativeRig32.cs | 50 + HamLibSharp/x86/NativeRig32v2.cs | 50 + HamLibSharp/x86/RigCapsNative32.cs | 465 ++ HamLibSharp/x86/RigCapsNative32v2.cs | 603 +++ HamLibSharp/x86/RigCapsNative32v301.cs | 603 +++ HamLibSharp/x86/RigStateNative32.cs | 178 + HamLibSharp/x86/RigStateNative32v2.cs | 178 + HorizonGenerator/HorizonGenerator.csproj | 8 +- HorizonGenerator/packages.config | 3 +- LibADSB/LibADSB.csproj | 8 +- LibADSB/packages.config | 3 +- MapTileGenerator/MapTileGenerator.csproj | 8 +- MapTileGenerator/packages.config | 3 +- NDDE/NDde/Source/NDde/NDde.csproj | 8 +- NDDE/NDde/Source/NDde/packages.config | 3 +- .../OrbitTools/Orbit.Core/Orbit.Core.csproj | 8 +- .../OrbitTools/Orbit.Core/packages.config | 3 +- OrbitTools/OrbitTools/Orbit/Orbit.csproj | 8 +- OrbitTools/OrbitTools/Orbit/packages.config | 3 +- .../OxyPlot.WindowsForms.csproj | 8 +- .../OxyPlot.WindowsForms/packages.config | 3 +- OxyPlot/Source/OxyPlot/OxyPlot.csproj | 8 +- OxyPlot/Source/OxyPlot/packages.config | 3 +- Radars/Radars/Generic.cs | 19 + .../Radars}/Properties/AssemblyInfo.cs | 14 +- Radars/Radars/RadarEU_CZ.cs | 76 + Radars/Radars/Radars.csproj | 78 + RainScout.Core/ColorDlg.Designer.cs | 71 + RainScout.Core/ColorDlg.cs | 19 + RainScout.Core/ColorDlg.resx | 120 + RainScout.Core/Properties/AssemblyInfo.cs | 36 + RainScout.Core/RainScout.Core.csproj | 70 + RainScout.Core/SupportFunctions.cs | 1191 +++++ RainScout.Core/ValueColorTable.cs | 227 + RainScout.Core/packages.config | 4 + RainScout.Radars/GenericRadar.cs | 40 + RainScout.Radars/Properties/AssemblyInfo.cs | 36 + RainScout.Radars/Radar3D_DE.cs | 539 ++ RainScout.Radars/RadarEU_CZ.cs | 302 ++ RainScout.Radars/RadarHD_EU.cs | 812 +++ RainScout.Radars/RadarLayer.cs | 15 + RainScout.Radars/RadarNone.cs | 29 + RainScout.Radars/RainScout.Radars.csproj | 111 + RainScout.Radars/packages.config | 15 + RainScout/BandSettings.cs | 153 + RainScout/DatabaseStatus.cs | 66 + RainScout/GMapImage.cs | 48 + RainScout/LatLon.cs | 258 + RainScout/LocationEntry.cs | 17 + RainScout/MainDlg.Designer.cs | 1591 ++++++ RainScout/MainDlg.cs | 2110 ++++++++ RainScout/MainDlg.resx | 163 + RainScout/OptionsDlg.Designer.cs | 718 +++ RainScout/OptionsDlg.cs | 229 + RainScout/OptionsDlg.resx | 120 + RainScout/Program.cs | 21 + RainScout/Properties/AssemblyInfo.cs | 36 + RainScout/Properties/Resources.Designer.cs | 63 + RainScout/Properties/Resources.resx | 117 + RainScout/Properties/Settings.Designer.cs | 877 ++++ RainScout/Properties/Settings.settings | 219 + RainScout/RAINSCOUTSTATUS.cs | 16 + RainScout/RadarMap.cs | 343 ++ .../RainScout.csproj | 182 +- RainScout/SCPPOTENTIAL.cs | 16 + RainScout/WCCheck.cs | 499 ++ RainScout/Wait.cmd | 1 + RainScout/app.config | 222 + RainScout/packages.config | 15 + .../SQLiteDatabase/SQLiteDatabase.csproj | 8 +- SQLiteDatabase/SQLiteDatabase/packages.config | 3 +- ScoutBase/ScoutBase.CAT/BitMask.cs | 19 + ScoutBase/ScoutBase.CAT/ByteFuns.cs | 68 + ScoutBase/ScoutBase.CAT/CATUpdater.cs | 197 + ScoutBase/ScoutBase.CAT/CommPort.cs | 881 ++++ .../ScoutBase.CAT/CommPortStartParams.cs | 18 + ScoutBase/ScoutBase.CAT/CommReceived.cs | 24 + ScoutBase/ScoutBase.CAT/CommStatusBits.cs | 25 + ScoutBase/ScoutBase.CAT/CommWorker.cs | 148 + ScoutBase/ScoutBase.CAT/CommandKind.cs | 15 + ScoutBase/ScoutBase.CAT/CommandQueue.cs | 59 + ScoutBase/ScoutBase.CAT/CustomRig.cs | 836 +++ ScoutBase/ScoutBase.CAT/ExchangePhase.cs | 14 + ScoutBase/ScoutBase.CAT/Helpers.cs | 26 + ScoutBase/ScoutBase.CAT/LogNotifyEventArgs.cs | 37 + ScoutBase/ScoutBase.CAT/OmniRig.cs | 173 + ScoutBase/ScoutBase.CAT/ParamValue.cs | 26 + ScoutBase/ScoutBase.CAT/PortBits.cs | 28 + .../ScoutBase.CAT/Properties/AssemblyInfo.cs | 36 + .../Properties/Settings.Designer.cs | 62 + .../Properties/Settings.settings | 15 + ScoutBase/ScoutBase.CAT/QueueItem.cs | 26 + ScoutBase/ScoutBase.CAT/Rig.cs | 674 +++ ScoutBase/ScoutBase.CAT/RigCommand.cs | 27 + ScoutBase/ScoutBase.CAT/RigCommands.cs | 879 ++++ ScoutBase/ScoutBase.CAT/RigCtlStatus.cs | 16 + ScoutBase/ScoutBase.CAT/RigDatabase.cs | 75 + ScoutBase/ScoutBase.CAT/RigParam.cs | 108 + ScoutBase/ScoutBase.CAT/RigSettings.cs | 120 + ScoutBase/ScoutBase.CAT/ScoutBase.CAT.csproj | 102 + .../ScoutBase.CAT}/Settings.cs | 2 +- ScoutBase/ScoutBase.CAT/ValueFormat.cs | 24 + ScoutBase/ScoutBase.CAT/app.config | 21 + ScoutBase/ScoutBase.CAT/packages.config | 4 + ScoutBase/ScoutBase.Core/Band.cs | 27 +- ScoutBase/ScoutBase.Core/BitmapHelpers.cs | 40 + ScoutBase/ScoutBase.Core/Cloning.cs | 30 + ScoutBase/ScoutBase.Core/EnumHelpers.cs | 78 + ScoutBase/ScoutBase.Core/Propagation.cs | 72 +- .../ScoutBase.Core/ScoutBase.Core.csproj | 11 +- ScoutBase/ScoutBase.Core/SpecialTextBoxes.cs | 170 + ScoutBase/ScoutBase.Core/SupportFunctions.cs | 2 +- ScoutBase/ScoutBase.Core/packages.config | 3 +- .../ScoutBase.Database.csproj | 8 +- ScoutBase/ScoutBase.Database/packages.config | 3 +- .../ScoutBase.Elevation/ElevationDatabase.cs | 480 +- .../ElevationDatabaseUpdater.cs | 6 +- .../ScoutBase.Elevation/ElevationModel.cs | 8 + .../ScoutBase.Elevation/LocalObstruction.cs | 1 + .../ScoutBase.Elevation.csproj | 8 +- ScoutBase/ScoutBase.Elevation/packages.config | 3 +- .../ScoutBase.Maps/ScoutBase.Maps.csproj | 8 +- ScoutBase/ScoutBase.Maps/packages.config | 3 +- .../PropagationDatabase.cs | 263 +- .../PropagationHorizon.cs | 4 +- .../ScoutBase.Propagation/PropagationPath.cs | 4 +- .../ScoutBase.Propagation.csproj | 8 +- .../ScoutBase.Propagation/packages.config | 3 +- .../ScoutBase.Stations.csproj | 8 +- .../StationDatabaseUpdater.cs | 2 +- ScoutBase/ScoutBase.Stations/packages.config | 3 +- .../SerializableGenerics.csproj | 8 +- SerializableGenerics/packages.config | 3 +- WinTest/WinTest.csproj | 8 +- WinTest/packages.config | 3 +- 495 files changed, 73108 insertions(+), 7033 deletions(-) create mode 100644 AirScout.CAT/AirScout.CAT.csproj create mode 100644 AirScout.CAT/CATWorker.cs create mode 100644 AirScout.CAT/Enums.cs create mode 100644 AirScout.CAT/ExtOmniRig.cs create mode 100644 AirScout.CAT/IRig.cs create mode 100644 AirScout.CAT/OmniRigX.cs create mode 100644 AirScout.CAT/Properties/AssemblyInfo.cs create mode 100644 AirScout.CAT/Properties/Settings.Designer.cs create mode 100644 AirScout.CAT/Properties/Settings.settings create mode 100644 AirScout.CAT/ScoutBaseRig.cs create mode 100644 AirScout.CAT/SupportedRig.cs create mode 100644 AirScout.CAT/app.config create mode 100644 AirScout/Enums.cs create mode 100644 AirScout/Requirements.txt create mode 100644 AirScout/TrackValues.cs delete mode 100644 AirScoutDatabaseManager/MainDlg.Designer.cs delete mode 100644 AirScoutDatabaseManager/MainDlg.cs delete mode 100644 AirScoutDatabaseManager/Properties/Settings.Designer.cs delete mode 100644 AirScoutDatabaseManager/Properties/Settings.settings delete mode 100644 AirScoutDatabaseManager/StationDatabaseUpdater.cs delete mode 100644 AirScoutDatabaseManager/app.config delete mode 100644 AirScoutDatabaseManager/packages.config create mode 100644 AirScoutViewClient/SettingsDlg.Designer.cs create mode 100644 AirScoutViewClient/SettingsDlg.cs create mode 100644 AirScoutViewClient/SettingsDlg.resx create mode 100644 CATCheck/AboutDlg.Designer.cs create mode 100644 CATCheck/AboutDlg.cs create mode 100644 CATCheck/AboutDlg.resx create mode 100644 CATCheck/CATCheck.csproj create mode 100644 CATCheck/ComboBoxItem.cs create mode 100644 CATCheck/FrequencyOfToneDlg.Designer.cs create mode 100644 CATCheck/FrequencyOfToneDlg.cs create mode 100644 CATCheck/FrequencyOfToneDlg.resx create mode 100644 CATCheck/Helpers.cs create mode 100644 CATCheck/MainDlg.Designer.cs create mode 100644 CATCheck/MainDlg.cs create mode 100644 CATCheck/MainDlg.resx rename {AirScoutDatabaseManager => CATCheck}/Program.cs (93%) create mode 100644 CATCheck/Properties/AssemblyInfo.cs rename {AirScoutDatabaseManager => CATCheck}/Properties/Resources.Designer.cs (93%) rename {AirScoutDatabaseManager => CATCheck}/Properties/Resources.resx (100%) create mode 100644 CATCheck/Properties/Settings.Designer.cs create mode 100644 CATCheck/Properties/Settings.settings create mode 100644 CATCheck/Ressources/CAT.ico create mode 100644 CATCheck/Ressources/CAT.png create mode 100644 CATCheck/Ressources/eventlogError.ico create mode 100644 CATCheck/Ressources/eventlogInfo.ico create mode 100644 CATCheck/Ressources/eventlogWarn.ico create mode 100644 CATCheck/Ressources/transceiver.png create mode 100644 CATCheck/Rigs/ADT-200A.ini create mode 100644 CATCheck/Rigs/AORAR5000.ini create mode 100644 CATCheck/Rigs/AR8600.ini create mode 100644 CATCheck/Rigs/Bearcat996x.ini create mode 100644 CATCheck/Rigs/CODAN-Comments.txt create mode 100644 CATCheck/Rigs/CODAN.ini create mode 100644 CATCheck/Rigs/DX-77-Comments.txt create mode 100644 CATCheck/Rigs/DX-77.ini create mode 100644 CATCheck/Rigs/Elad-FDMSW2.ini create mode 100644 CATCheck/Rigs/Elecraft K2.ini create mode 100644 CATCheck/Rigs/Elecraft K3.ini create mode 100644 CATCheck/Rigs/Elecraft KX2.ini create mode 100644 CATCheck/Rigs/Elecraft KX3.ini create mode 100644 CATCheck/Rigs/ExpertSDR.ini create mode 100644 CATCheck/Rigs/FRG-100.ini create mode 100644 CATCheck/Rigs/FT-100 D.ini create mode 100644 CATCheck/Rigs/FT-1000 MP.ini create mode 100644 CATCheck/Rigs/FT-1000.ini create mode 100644 CATCheck/Rigs/FT-2000.ini create mode 100644 CATCheck/Rigs/FT-2000PEPV3.ini create mode 100644 CATCheck/Rigs/FT-2KAFSKPEPV3.ini create mode 100644 CATCheck/Rigs/FT-2KFSKPEPV3.ini create mode 100644 CATCheck/Rigs/FT-2K_Readme.txt create mode 100644 CATCheck/Rigs/FT-450.ini create mode 100644 CATCheck/Rigs/FT-450Dmod.ini create mode 100644 CATCheck/Rigs/FT-747.ini create mode 100644 CATCheck/Rigs/FT-747GX.ini create mode 100644 CATCheck/Rigs/FT-747GX1.ini create mode 100644 CATCheck/Rigs/FT-747GX2.ini create mode 100644 CATCheck/Rigs/FT-757GXII.ini create mode 100644 CATCheck/Rigs/FT-817.ini create mode 100644 CATCheck/Rigs/FT-840.ini create mode 100644 CATCheck/Rigs/FT-847.ini create mode 100644 CATCheck/Rigs/FT-857.ini create mode 100644 CATCheck/Rigs/FT-891.ini create mode 100644 CATCheck/Rigs/FT-897.ini create mode 100644 CATCheck/Rigs/FT-900.ini create mode 100644 CATCheck/Rigs/FT-920.ini create mode 100644 CATCheck/Rigs/FT-950.ini create mode 100644 CATCheck/Rigs/FT-990.ini create mode 100644 CATCheck/Rigs/FT-991-DATA.ini create mode 100644 CATCheck/Rigs/FT-991.ini create mode 100644 CATCheck/Rigs/FTDX-1200-DATA.ini create mode 100644 CATCheck/Rigs/FTDX-1200.ini create mode 100644 CATCheck/Rigs/FTDX-3000-DATA.ini create mode 100644 CATCheck/Rigs/FTDX-3000.ini create mode 100644 CATCheck/Rigs/FTDX-5000MP-DATA.ini create mode 100644 CATCheck/Rigs/FTDX-5000MP.ini create mode 100644 CATCheck/Rigs/FTDX-9000.ini create mode 100644 CATCheck/Rigs/HRD.ini create mode 100644 CATCheck/Rigs/IC- 821.ini create mode 100644 CATCheck/Rigs/IC- 970D.ini create mode 100644 CATCheck/Rigs/IC-275H.ini create mode 100644 CATCheck/Rigs/IC-7000.ini create mode 100644 CATCheck/Rigs/IC-7000v2.ini create mode 100644 CATCheck/Rigs/IC-703.ini create mode 100644 CATCheck/Rigs/IC-703a.ini create mode 100644 CATCheck/Rigs/IC-706 MKII.ini create mode 100644 CATCheck/Rigs/IC-706 MKIIG.ini create mode 100644 CATCheck/Rigs/IC-706.ini create mode 100644 CATCheck/Rigs/IC-7100.ini create mode 100644 CATCheck/Rigs/IC-7100e4-DATA.ini create mode 100644 CATCheck/Rigs/IC-7100e4.ini create mode 100644 CATCheck/Rigs/IC-718.ini create mode 100644 CATCheck/Rigs/IC-7200.ini create mode 100644 CATCheck/Rigs/IC-7200v2.ini create mode 100644 CATCheck/Rigs/IC-725.ini create mode 100644 CATCheck/Rigs/IC-725a.ini create mode 100644 CATCheck/Rigs/IC-726.ini create mode 100644 CATCheck/Rigs/IC-728.ini create mode 100644 CATCheck/Rigs/IC-7300-DATA.ini create mode 100644 CATCheck/Rigs/IC-7300.ini create mode 100644 CATCheck/Rigs/IC-7315.ini create mode 100644 CATCheck/Rigs/IC-735.ini create mode 100644 CATCheck/Rigs/IC-736 (untested).ini create mode 100644 CATCheck/Rigs/IC-737.ini create mode 100644 CATCheck/Rigs/IC-738.ini create mode 100644 CATCheck/Rigs/IC-7410 (1).ini create mode 100644 CATCheck/Rigs/IC-7410.ini create mode 100644 CATCheck/Rigs/IC-7410v2.ini create mode 100644 CATCheck/Rigs/IC-746 Pro.ini create mode 100644 CATCheck/Rigs/IC-746.ini create mode 100644 CATCheck/Rigs/IC-751.ini create mode 100644 CATCheck/Rigs/IC-756 Pro II.ini create mode 100644 CATCheck/Rigs/IC-756 Pro III.ini create mode 100644 CATCheck/Rigs/IC-756 Pro II_LSB.ini create mode 100644 CATCheck/Rigs/IC-756 Pro ini comments.txt create mode 100644 CATCheck/Rigs/IC-756 Pro.ini create mode 100644 CATCheck/Rigs/IC-756.ini create mode 100644 CATCheck/Rigs/IC-7600.ini create mode 100644 CATCheck/Rigs/IC-7600v2.ini create mode 100644 CATCheck/Rigs/IC-761.ini create mode 100644 CATCheck/Rigs/IC-7610-DATA.ini create mode 100644 CATCheck/Rigs/IC-7610.ini create mode 100644 CATCheck/Rigs/IC-765.ini create mode 100644 CATCheck/Rigs/IC-7700.ini create mode 100644 CATCheck/Rigs/IC-7700v2.ini create mode 100644 CATCheck/Rigs/IC-775.ini create mode 100644 CATCheck/Rigs/IC-78.ini create mode 100644 CATCheck/Rigs/IC-7800.ini create mode 100644 CATCheck/Rigs/IC-7800v3.ini create mode 100644 CATCheck/Rigs/IC-781.ini create mode 100644 CATCheck/Rigs/IC-781_2.ini create mode 100644 CATCheck/Rigs/IC-7850-DATA-FIL1.ini create mode 100644 CATCheck/Rigs/IC-7850-DATA.ini create mode 100644 CATCheck/Rigs/IC-7850.ini create mode 100644 CATCheck/Rigs/IC-7851-DATA-FIL1.ini create mode 100644 CATCheck/Rigs/IC-7851-DATA.ini create mode 100644 CATCheck/Rigs/IC-7851.ini create mode 100644 CATCheck/Rigs/IC-821PST.ini create mode 100644 CATCheck/Rigs/IC-910.ini create mode 100644 CATCheck/Rigs/IC-9100.ini create mode 100644 CATCheck/Rigs/IC-9100v2.ini create mode 100644 CATCheck/Rigs/IC-9700.ini create mode 100644 CATCheck/Rigs/IC-M710.ini create mode 100644 CATCheck/Rigs/IC-R75-chromos.ini create mode 100644 CATCheck/Rigs/IC-R75.ini create mode 100644 CATCheck/Rigs/IC-R8500.ini create mode 100644 CATCheck/Rigs/IC-R9000.ini create mode 100644 CATCheck/Rigs/IC-R9500.ini create mode 100644 CATCheck/Rigs/ID-5100A.ini create mode 100644 CATCheck/Rigs/JST-245.ini create mode 100644 CATCheck/Rigs/Kenwood.ini create mode 100644 CATCheck/Rigs/NRD-535DG.ini create mode 100644 CATCheck/Rigs/Perseus.ini create mode 100644 CATCheck/Rigs/PowerRX2.ini create mode 100644 CATCheck/Rigs/PowerSDR.ini create mode 100644 CATCheck/Rigs/SmartSDR.ini create mode 100644 CATCheck/Rigs/TH-F6A.ini create mode 100644 CATCheck/Rigs/TH-F7E.ini create mode 100644 CATCheck/Rigs/TS-2000.ini create mode 100644 CATCheck/Rigs/TS-440.ini create mode 100644 CATCheck/Rigs/TS-480.ini create mode 100644 CATCheck/Rigs/TS-590.ini create mode 100644 CATCheck/Rigs/TS-690.ini create mode 100644 CATCheck/Rigs/TS-870.ini create mode 100644 CATCheck/Rigs/TS-930.ini create mode 100644 CATCheck/Rigs/TenTec Eagle.ini create mode 100644 CATCheck/Rigs/TenTec Jupiter.ini create mode 100644 CATCheck/Rigs/TenTec Omni VII.ini create mode 100644 CATCheck/Rigs/TenTec Omni VI_plus.ini create mode 100644 CATCheck/Rigs/TenTec Orion.ini create mode 100644 CATCheck/Rigs/TenTec Paragon II.ini create mode 100644 CATCheck/Rigs/TenTec RX-350.ini create mode 100644 CATCheck/Rigs/ZS-1.ini create mode 100644 CATCheck/Rigs/ic-9700-data.ini create mode 100644 CATCheck/Rigs/ic-9700-dl2alf.ini create mode 100644 CATCheck/SetFrequencyDlg.Designer.cs create mode 100644 CATCheck/SetFrequencyDlg.cs create mode 100644 CATCheck/SetFrequencyDlg.resx create mode 100644 CATCheck/Settings.cs create mode 100644 CATCheck/app.config create mode 100644 ElevationCoverageMapper/ElevationCoverageMapper.csproj create mode 100644 ElevationCoverageMapper/MainDlg.Designer.cs create mode 100644 ElevationCoverageMapper/MainDlg.cs rename {AirScoutDatabaseManager => ElevationCoverageMapper}/MainDlg.resx (90%) create mode 100644 ElevationCoverageMapper/Program.cs create mode 100644 ElevationCoverageMapper/Properties/AssemblyInfo.cs create mode 100644 ElevationCoverageMapper/Properties/Resources.Designer.cs create mode 100644 ElevationCoverageMapper/Properties/Resources.resx create mode 100644 ElevationCoverageMapper/Properties/Settings.Designer.cs create mode 100644 ElevationCoverageMapper/Properties/Settings.settings create mode 100644 ElevationCoverageMapper/WindowsFormsControlInvoke.cs create mode 100644 ElevationCoverageMapper/earth.tif create mode 100644 GreatMaps/GMap.NET.WindowsForms/Resources/green-dot1.png create mode 100644 HamLibSharp/.gitignore create mode 100644 HamLibSharp/Enums.cs create mode 100644 HamLibSharp/HamLib.cs create mode 100644 HamLibSharp/HamLibPortNative.cs create mode 100644 HamLibSharp/HamLibSharp-master.zip create mode 100644 HamLibSharp/HamLibSharp.csproj create mode 100644 HamLibSharp/HamLibSharp.sln create mode 100644 HamLibSharp/HamLibSharpTest/HamLibSharpTest.csproj create mode 100644 HamLibSharp/HamLibSharpTest/Program.cs create mode 100644 HamLibSharp/HamLibSharpTest/Properties/AssemblyInfo.cs create mode 100644 HamLibSharp/IChannelCapability.cs create mode 100644 HamLibSharp/IChannelList.cs create mode 100644 HamLibSharp/IConfigurationParameter.cs create mode 100644 HamLibSharp/IModeValue.cs create mode 100644 HamLibSharp/IRigCapsNative.cs create mode 100644 HamLibSharp/IRigStateNative.cs create mode 100644 HamLibSharp/LICENSE create mode 100644 HamLibSharp/Properties/AssemblyInfo.cs create mode 100644 HamLibSharp/README.md create mode 100644 HamLibSharp/Rig.cs create mode 100644 HamLibSharp/RigCaps.cs create mode 100644 HamLibSharp/RigCaps/Program.cs create mode 100644 HamLibSharp/RigCaps/Properties/AssemblyInfo.cs create mode 100644 HamLibSharp/RigCaps/RigCaps.csproj create mode 100644 HamLibSharp/RigException.cs create mode 100644 HamLibSharp/RigNative.cs create mode 100644 HamLibSharp/RigVfo.cs create mode 100644 HamLibSharp/Structs.cs create mode 100644 HamLibSharp/Utils/CastedList.cs create mode 100644 HamLibSharp/Utils/IntPtrExtensions.cs create mode 100644 HamLibSharp/Utils/Library.cs create mode 100644 HamLibSharp/Utils/TextNameAttribute.cs create mode 100644 HamLibSharp/app.config create mode 100644 HamLibSharp/bin_libs/.keep create mode 100644 HamLibSharp/bin_libs/libhamlib.so.2.1.1 create mode 100644 HamLibSharp/bin_libs/x64/.keep create mode 100644 HamLibSharp/bin_libs/x64/libgcc_s_sjlj-1.dll create mode 100644 HamLibSharp/bin_libs/x64/libhamlib-2.dll create mode 100644 HamLibSharp/bin_libs/x64/libusb-1.0.dll create mode 100644 HamLibSharp/bin_libs/x64/libwinpthread-1.dll create mode 100644 HamLibSharp/bin_libs/x86/.keep create mode 100644 HamLibSharp/bin_libs/x86/libgcc_s_sjlj-1.dll create mode 100644 HamLibSharp/bin_libs/x86/libhamlib-2.dll create mode 100644 HamLibSharp/bin_libs/x86/libusb-1.0.dll create mode 100644 HamLibSharp/bin_libs/x86/libwinpthread-1.dll create mode 100644 HamLibSharp/bin_libs_ori/.keep create mode 100644 HamLibSharp/bin_libs_ori/libhamlib.so.2.1.1 create mode 100644 HamLibSharp/bin_libs_ori/x64/.keep create mode 100644 HamLibSharp/bin_libs_ori/x64/libgcc_s_seh-1.dll create mode 100644 HamLibSharp/bin_libs_ori/x64/libhamlib-2.dll create mode 100644 HamLibSharp/bin_libs_ori/x64/libusb-1.0.dll create mode 100644 HamLibSharp/bin_libs_ori/x64/libwinpthread-1.dll create mode 100644 HamLibSharp/bin_libs_ori/x86/.keep create mode 100644 HamLibSharp/bin_libs_ori/x86/libgcc_s_sjlj-1.dll create mode 100644 HamLibSharp/bin_libs_ori/x86/libhamlib-2.dll create mode 100644 HamLibSharp/bin_libs_ori/x86/libusb-1.0.dll create mode 100644 HamLibSharp/bin_libs_ori/x86/libusb0.dll create mode 100644 HamLibSharp/bin_libs_ori/x86/libwinpthread-1.dll create mode 100644 HamLibSharp/hamlib-4.1.tar.gz create mode 100644 HamLibSharp/hamlib-w32-4.1.zip create mode 100644 HamLibSharp/hamlib-w64-4.1.zip create mode 100644 HamLibSharp/x64/ChannelCapability64.cs create mode 100644 HamLibSharp/x64/ChannelList64.cs create mode 100644 HamLibSharp/x64/ConfigurationParameter64.cs create mode 100644 HamLibSharp/x64/ModeValue64.cs create mode 100644 HamLibSharp/x64/NativeRig64.cs create mode 100644 HamLibSharp/x64/NativeRig64v2.cs create mode 100644 HamLibSharp/x64/RigCapsNative64.cs create mode 100644 HamLibSharp/x64/RigCapsNative64v2.cs create mode 100644 HamLibSharp/x64/RigCapsNative64v301.cs create mode 100644 HamLibSharp/x64/RigStateNative64.cs create mode 100644 HamLibSharp/x64/RigStateNative64v2.cs create mode 100644 HamLibSharp/x86/ChannelCapability32.cs create mode 100644 HamLibSharp/x86/ChannelList32.cs create mode 100644 HamLibSharp/x86/ConfigurationParameter32.cs create mode 100644 HamLibSharp/x86/ModeValue32.cs create mode 100644 HamLibSharp/x86/NativeRig32.cs create mode 100644 HamLibSharp/x86/NativeRig32v2.cs create mode 100644 HamLibSharp/x86/RigCapsNative32.cs create mode 100644 HamLibSharp/x86/RigCapsNative32v2.cs create mode 100644 HamLibSharp/x86/RigCapsNative32v301.cs create mode 100644 HamLibSharp/x86/RigStateNative32.cs create mode 100644 HamLibSharp/x86/RigStateNative32v2.cs create mode 100644 Radars/Radars/Generic.cs rename {AirScoutDatabaseManager => Radars/Radars}/Properties/AssemblyInfo.cs (78%) create mode 100644 Radars/Radars/RadarEU_CZ.cs create mode 100644 Radars/Radars/Radars.csproj create mode 100644 RainScout.Core/ColorDlg.Designer.cs create mode 100644 RainScout.Core/ColorDlg.cs create mode 100644 RainScout.Core/ColorDlg.resx create mode 100644 RainScout.Core/Properties/AssemblyInfo.cs create mode 100644 RainScout.Core/RainScout.Core.csproj create mode 100644 RainScout.Core/SupportFunctions.cs create mode 100644 RainScout.Core/ValueColorTable.cs create mode 100644 RainScout.Core/packages.config create mode 100644 RainScout.Radars/GenericRadar.cs create mode 100644 RainScout.Radars/Properties/AssemblyInfo.cs create mode 100644 RainScout.Radars/Radar3D_DE.cs create mode 100644 RainScout.Radars/RadarEU_CZ.cs create mode 100644 RainScout.Radars/RadarHD_EU.cs create mode 100644 RainScout.Radars/RadarLayer.cs create mode 100644 RainScout.Radars/RadarNone.cs create mode 100644 RainScout.Radars/RainScout.Radars.csproj create mode 100644 RainScout.Radars/packages.config create mode 100644 RainScout/BandSettings.cs create mode 100644 RainScout/DatabaseStatus.cs create mode 100644 RainScout/GMapImage.cs create mode 100644 RainScout/LatLon.cs create mode 100644 RainScout/LocationEntry.cs create mode 100644 RainScout/MainDlg.Designer.cs create mode 100644 RainScout/MainDlg.cs create mode 100644 RainScout/MainDlg.resx create mode 100644 RainScout/OptionsDlg.Designer.cs create mode 100644 RainScout/OptionsDlg.cs create mode 100644 RainScout/OptionsDlg.resx create mode 100644 RainScout/Program.cs create mode 100644 RainScout/Properties/AssemblyInfo.cs create mode 100644 RainScout/Properties/Resources.Designer.cs create mode 100644 RainScout/Properties/Resources.resx create mode 100644 RainScout/Properties/Settings.Designer.cs create mode 100644 RainScout/Properties/Settings.settings create mode 100644 RainScout/RAINSCOUTSTATUS.cs create mode 100644 RainScout/RadarMap.cs rename AirScoutDatabaseManager/AirScoutDatabaseManager.csproj => RainScout/RainScout.csproj (51%) create mode 100644 RainScout/SCPPOTENTIAL.cs create mode 100644 RainScout/WCCheck.cs create mode 100644 RainScout/Wait.cmd create mode 100644 RainScout/app.config create mode 100644 RainScout/packages.config create mode 100644 ScoutBase/ScoutBase.CAT/BitMask.cs create mode 100644 ScoutBase/ScoutBase.CAT/ByteFuns.cs create mode 100644 ScoutBase/ScoutBase.CAT/CATUpdater.cs create mode 100644 ScoutBase/ScoutBase.CAT/CommPort.cs create mode 100644 ScoutBase/ScoutBase.CAT/CommPortStartParams.cs create mode 100644 ScoutBase/ScoutBase.CAT/CommReceived.cs create mode 100644 ScoutBase/ScoutBase.CAT/CommStatusBits.cs create mode 100644 ScoutBase/ScoutBase.CAT/CommWorker.cs create mode 100644 ScoutBase/ScoutBase.CAT/CommandKind.cs create mode 100644 ScoutBase/ScoutBase.CAT/CommandQueue.cs create mode 100644 ScoutBase/ScoutBase.CAT/CustomRig.cs create mode 100644 ScoutBase/ScoutBase.CAT/ExchangePhase.cs create mode 100644 ScoutBase/ScoutBase.CAT/Helpers.cs create mode 100644 ScoutBase/ScoutBase.CAT/LogNotifyEventArgs.cs create mode 100644 ScoutBase/ScoutBase.CAT/OmniRig.cs create mode 100644 ScoutBase/ScoutBase.CAT/ParamValue.cs create mode 100644 ScoutBase/ScoutBase.CAT/PortBits.cs create mode 100644 ScoutBase/ScoutBase.CAT/Properties/AssemblyInfo.cs create mode 100644 ScoutBase/ScoutBase.CAT/Properties/Settings.Designer.cs create mode 100644 ScoutBase/ScoutBase.CAT/Properties/Settings.settings create mode 100644 ScoutBase/ScoutBase.CAT/QueueItem.cs create mode 100644 ScoutBase/ScoutBase.CAT/Rig.cs create mode 100644 ScoutBase/ScoutBase.CAT/RigCommand.cs create mode 100644 ScoutBase/ScoutBase.CAT/RigCommands.cs create mode 100644 ScoutBase/ScoutBase.CAT/RigCtlStatus.cs create mode 100644 ScoutBase/ScoutBase.CAT/RigDatabase.cs create mode 100644 ScoutBase/ScoutBase.CAT/RigParam.cs create mode 100644 ScoutBase/ScoutBase.CAT/RigSettings.cs create mode 100644 ScoutBase/ScoutBase.CAT/ScoutBase.CAT.csproj rename {AirScoutDatabaseManager => ScoutBase/ScoutBase.CAT}/Settings.cs (96%) create mode 100644 ScoutBase/ScoutBase.CAT/ValueFormat.cs create mode 100644 ScoutBase/ScoutBase.CAT/app.config create mode 100644 ScoutBase/ScoutBase.CAT/packages.config create mode 100644 ScoutBase/ScoutBase.Core/BitmapHelpers.cs create mode 100644 ScoutBase/ScoutBase.Core/Cloning.cs create mode 100644 ScoutBase/ScoutBase.Core/EnumHelpers.cs diff --git a/AeroWizard/AeroWizard/AeroWizard.csproj b/AeroWizard/AeroWizard/AeroWizard.csproj index 8052163..0f6d659 100644 --- a/AeroWizard/AeroWizard/AeroWizard.csproj +++ b/AeroWizard/AeroWizard/AeroWizard.csproj @@ -96,8 +96,8 @@ ..\..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll - - ..\..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -246,11 +246,11 @@ - + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + \ No newline at end of file diff --git a/AeroWizard/AeroWizard/packages.config b/AeroWizard/AeroWizard/packages.config index 2bc3b5b..05a4de8 100644 --- a/AeroWizard/AeroWizard/packages.config +++ b/AeroWizard/AeroWizard/packages.config @@ -1,5 +1,6 @@  - + + \ No newline at end of file diff --git a/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj b/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj index 2769597..59486ef 100644 --- a/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj +++ b/AirScout.AircraftPositions/AirScout.AircraftPositions.csproj @@ -37,8 +37,8 @@ - - ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -93,12 +93,12 @@ - + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + plane heading @@ -2465,7 +2482,7 @@ namespace AirScout.Aircrafts if ((i4 != null) && ((imin == null) || (i4.QRB < imin.QRB))) imin = i4; // check hot planes which are very near the path first - if ((imin != null) && (imin.QRB <= maxdist)) + if ((imin != null) && (imin.QRB <= maxdist) && (imin.Dist1 <= ppath.Distance)) { // plane is near path // use the minimum qrb info @@ -2506,7 +2523,7 @@ namespace AirScout.Aircrafts else { // plane is far from path --> check only intersection i1 = planes moves towards path - if ((i1 != null) && (i1.Min_H <= maxalt)) + if ((i1 != null) && (i1.Min_H <= maxalt) && (i1.Dist1 <= ppath.Distance)) { plane.IntPoint = new LatLon.GPoint(i1.Lat, i1.Lon); plane.IntQRB = i1.QRB; diff --git a/AirScout.Aircrafts/Airline.cs b/AirScout.Aircrafts/Airline.cs index 9cb2559..6f5d860 100644 --- a/AirScout.Aircrafts/Airline.cs +++ b/AirScout.Aircrafts/Airline.cs @@ -81,7 +81,7 @@ namespace AirScout.Aircrafts DataColumn ICAO = this.Columns.Add("ICAO", typeof(string)); DataColumn Airline = this.Columns.Add("Airline", typeof(string)); DataColumn Country = this.Columns.Add("Country", typeof(string)); - DataColumn LastUpdated = this.Columns.Add("LastUpdated", typeof(string)); + DataColumn LastUpdated = this.Columns.Add("LastUpdated", typeof(int)); // create primary key DataColumn[] keys = new DataColumn[2]; keys[0] = IATA; diff --git a/AirScout.Aircrafts/PlaneInfoCache.cs b/AirScout.Aircrafts/PlaneInfoCache.cs index 15c1acf..7e7d8c0 100644 --- a/AirScout.Aircrafts/PlaneInfoCache.cs +++ b/AirScout.Aircrafts/PlaneInfoCache.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using AirScout.Core; +using System.IO; namespace AirScout.Aircrafts { @@ -20,7 +21,7 @@ namespace AirScout.Aircrafts PlaneInfo oldplane = null; if (!this.TryGetValue(plane.Hex, out oldplane)) { - // add plane + // not found --> add plane this.Add(plane.Hex, plane); i = 1; } @@ -29,6 +30,15 @@ namespace AirScout.Aircrafts // plane already in cache --> check time and update if newer if (plane.Time > oldplane.Time) { + // keep old values + oldplane.OldTime = oldplane.Time; + oldplane.OldLat = oldplane.Lat; + oldplane.OldLon = oldplane.Lon; + oldplane.OldAlt = oldplane.Alt; + oldplane.OldSpeed = oldplane.Speed; + oldplane.OldTrack = oldplane.Track; + + // update values oldplane.Alt = plane.Alt; oldplane.AltDiff = plane.AltDiff; oldplane.Angle = plane.Angle; @@ -121,21 +131,89 @@ namespace AirScout.Aircrafts return null; // create new plane info PlaneInfo info = new PlaneInfo(plane); - // estimate new position + // estimate new values + double alt = 0; + double speed = 0; + double speed_kmh = 0; + double track = 0; + double dist = 0; + LatLon.GPoint newpos; + // use stored old values if available + if (plane.OldTime != DateTime.MinValue) + { + double oldtimediff = (plane.Time - plane.OldTime).TotalSeconds; + double newtimediff = (at - plane.Time).TotalSeconds; + + // adjust values if there is a valid timespan in history + if ((oldtimediff > 0) && (newtimediff > 0)) + { + alt = (plane.Alt - plane.OldAlt) / oldtimediff * newtimediff + plane.Alt; + track = (plane.Track - plane.OldTrack) / oldtimediff * newtimediff + plane.Track; + speed = (plane.Speed - plane.OldSpeed) / oldtimediff * newtimediff + plane.Speed; + } + else + { + // do nothing + } + } + else + { + // no stored values available + } + + // --> estimate new position using speed and track + + // do plausibility check of calculated new absolute values + if ((alt > 0) && (alt <= 50000) && + (track > 0) && (track <= 360) && + (speed > 0) && (speed <= 700)) + { + // change speed to km/h + speed_kmh = UnitConverter.kts_kmh(speed); + // calculate distance after timespan + dist = speed_kmh * (at - info.Time).TotalHours; + // estimate new position + newpos = LatLon.DestinationPoint(info.Lat, info.Lon, track, dist); + + // check resulting motion vector against last reported track + // should be well inside the bounds + // a plane cannot move to a position to where it is not pointing to + double calctrack = LatLon.Bearing(info.Lat, info.Lon, newpos.Lat, newpos.Lon); + if (Math.Abs(info.Track - calctrack) < 45) + { + // valid --> use the calculated values + info.Lat = newpos.Lat; + info.Lon = newpos.Lon; + info.Alt = alt; + info.Track = track; + info.Speed = speed; + info.Time = at; + + // return calculated info + return info; + } + } + + // one of plausibility checks failed --> use last reported constant values for estimation // change speed to km/h - double speed = info.Speed_kmh; + speed_kmh = info.Speed_kmh; // calculate distance after timespan - double dist = speed * (at - info.Time).TotalHours; + dist = speed_kmh * (at - info.Time).TotalHours; // estimate new position - LatLon.GPoint newpos = LatLon.DestinationPoint(info.Lat, info.Lon, info.Track, dist); + newpos = LatLon.DestinationPoint(info.Lat, info.Lon, info.Track, dist); info.Lat = newpos.Lat; info.Lon = newpos.Lon; info.Time = at; + + // return calculated info return info; } public List GetAll(DateTime at, int ttl) { + string filename = "positions.csv"; + string call = "CSN464"; + List l = new List(); DateTime to = at; DateTime from = to - new TimeSpan(0, ttl, 0); @@ -147,14 +225,86 @@ namespace AirScout.Aircrafts continue; // create new plane info PlaneInfo info = new PlaneInfo(plane); - // estimate new position + // estimate new values + // use stored old values if available + if (plane.OldTime != DateTime.MinValue) + { + double oldtimediff = (plane.Time - plane.OldTime).TotalSeconds; + double newtimediff = (at - plane.Time).TotalSeconds; + + // adjust values if there is a valid timespan in history + if ((oldtimediff > 0) && (newtimediff > 0)) + { + double newalt = (plane.Alt - plane.OldAlt) / oldtimediff * newtimediff + plane.Alt; + double newtrack = (plane.Track - plane.OldTrack) / oldtimediff * newtimediff + plane.Track; + double newspeed = (plane.Speed - plane.OldSpeed) / oldtimediff * newtimediff + plane.Speed; + + if (plane.Call == call) + { + File.AppendAllText(filename, oldtimediff.ToString() + ";" + + newtimediff.ToString() + ";" + + plane.OldAlt.ToString("F8") + ";" + + plane.Alt.ToString("F8") + ";" + + newalt.ToString("F8") + ";" + + plane.OldTrack.ToString("F8") + ";" + + plane.Track.ToString("F8") + ";" + + newtrack.ToString("F8") + ";" + + plane.OldSpeed.ToString("F8") + ";" + + plane.Speed.ToString("F8") + ";" + + newspeed.ToString("F8") + ";" + + Environment.NewLine); + } + // do plausibility check of calculated values + if ((newalt > 0) && (newalt < 50000) && + (newtrack > 0) && (newtrack < 360) && + (newspeed > 0) && (newspeed < 700)) + { + info.Alt = newalt; + info.Track = newtrack; + info.Speed = newspeed; + } + else + { + // do nothing + if (plane.Call == call) + { + File.AppendAllText(filename, oldtimediff.ToString() + ";" + + newtimediff.ToString() + ";" + + plane.OldAlt.ToString("F8") + ";" + + plane.Alt.ToString("F8") + ";" + + newalt.ToString("F8") + ";" + + plane.OldTrack.ToString("F8") + ";" + + plane.Track.ToString("F8") + ";" + + newtrack.ToString("F8") + ";" + + plane.OldSpeed.ToString("F8") + ";" + + plane.Speed.ToString("F8") + ";" + + newspeed.ToString("F8") + ":" + + "invalid values!" + + Environment.NewLine); + } + } + } + else + { + // do nothing + if (plane.Call == call) + { + File.AppendAllText(filename, oldtimediff.ToString() + ";" + newtimediff.ToString() + "invalid timediff!" + Environment.NewLine); + } + } + } + else + { + // no stored values available + } + + // --> estimate new position using speed and track // change speed to km/h double speed = info.Speed_kmh; // calculate distance after timespan double dist = speed * (at - info.Time).TotalHours; // estimate new position LatLon.GPoint newpos = LatLon.DestinationPoint(info.Lat, info.Lon, info.Track, dist); - double d = LatLon.Distance(info.Lat, info.Lon, newpos.Lat, newpos.Lon); info.Lat = newpos.Lat; info.Lon = newpos.Lon; info.Time = at; diff --git a/AirScout.Aircrafts/Properties/AssemblyInfo.cs b/AirScout.Aircrafts/Properties/AssemblyInfo.cs index c38a19b..f7c80d9 100644 --- a/AirScout.Aircrafts/Properties/AssemblyInfo.cs +++ b/AirScout.Aircrafts/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] +[assembly: AssemblyVersion("1.3.1.0")] +[assembly: AssemblyFileVersion("1.3.1.0")] diff --git a/AirScout.Aircrafts/packages.config b/AirScout.Aircrafts/packages.config index 2bc3b5b..05a4de8 100644 --- a/AirScout.Aircrafts/packages.config +++ b/AirScout.Aircrafts/packages.config @@ -1,5 +1,6 @@  - + + \ No newline at end of file diff --git a/AirScout.CAT/AirScout.CAT.csproj b/AirScout.CAT/AirScout.CAT.csproj new file mode 100644 index 0000000..37c1229 --- /dev/null +++ b/AirScout.CAT/AirScout.CAT.csproj @@ -0,0 +1,71 @@ + + + + + Debug + AnyCPU + {FFDEC390-7BBC-4DEC-9826-1DD04279F3FA} + Library + Properties + AirScout.CAT + AirScout.CAT + v4.0 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + True + True + Settings.settings + + + + + + + + PublicSettingsSingleFileGenerator + Settings.Designer.cs + + + + + {c9291203-b5d0-4179-888d-04bc670b158f} + ScoutBase.CAT + + + + \ No newline at end of file diff --git a/AirScout.CAT/CATWorker.cs b/AirScout.CAT/CATWorker.cs new file mode 100644 index 0000000..39f91fb --- /dev/null +++ b/AirScout.CAT/CATWorker.cs @@ -0,0 +1,289 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data.OleDb; +using System.Globalization; +using System.Linq; +using System.Security.Policy; +using System.Text; +using System.Threading; +using ScoutBase.CAT; + +namespace AirScout.CAT +{ + + public class CATWorkerStartOptions + { + public string Name; + public string RigType = ""; + public string PortName = ""; + public int Baudrate = 9600; + public int DataBits = 8; + public PARITY Parity = PARITY.NONE; + public STOPBITS StopBits = STOPBITS.ONE; + public FLOWCONTROL RTS = FLOWCONTROL.LOW; + public FLOWCONTROL DTR = FLOWCONTROL.LOW; + public int Poll = 100; + public int Timeout = 500; + } + + public class CATWorker : BackgroundWorker + { + + public CATWorkerStartOptions StartOptions; + public IRig Rig = null; + + // doppler tracking + public DOPPLERSTRATEGY DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_NONE; + public long RxFrequency = 0; + public long TxFrequency = 0; + + public CATWorker() + { + this.WorkerReportsProgress = true; + this.WorkerSupportsCancellation = true; + } + + #region OmniRig + + #endregion + + // provides a list of supported rigs + public static List SupportedRigs() + { + List rigs = new List(); + // try to get external OmniRig supported rigs + try + { + List omnirigs = OmniRigX.SupportedRigs(); + foreach (SupportedRig omnirig in omnirigs) + { + rigs.Add(omnirig); + } + } + catch (Exception ex) + { + // add nothing if something goes wrong + } + + // try to get ScoutBase OmniRig supported rigs + try + { + List scoutbaserigs = ScoutBaseRig.SupportedRigs(); + foreach (SupportedRig scoutbaserig in scoutbaserigs) + { + rigs.Add(scoutbaserig); + } + } + catch (Exception ex) + { + // add nothing if something goes wrong + } + + // try to collect other rigs from other CAT interfaces here + + // return supported rigs + return rigs; + } + + protected override void OnDoWork(DoWorkEventArgs e) + { + StartOptions = (CATWorkerStartOptions)e.Argument; + this.ReportProgress(0, StartOptions.Name + " started."); + // name the thread for debugging + if (String.IsNullOrEmpty(Thread.CurrentThread.Name)) + Thread.CurrentThread.Name = StartOptions.Name + "_" + this.GetType().Name; + + // check if any CAT is working by getting all supported rigs + // handle exceptions + List rigs = new List(); + try + { + rigs = CATWorker.SupportedRigs(); + } + catch (Exception ex) + { + this.ReportProgress(-1, "Error while getting supported rigs from CAT: " + ex.Message); + this.ReportProgress(1, RIGSTATUS.NOCAT); + return; + } + + // check if any rig is found + if (rigs.Count == 0) + { + this.ReportProgress(-1, "Error while getting supported rigs from CAT: No available CAT found!"); + this.ReportProgress(1, RIGSTATUS.NORIG); + return; + } + + // check if the rig is among the currently supported rigs --> get a new IRig object + // be careful with ActiveX objects an handle exceptions + Rig = null; + try + { + foreach (SupportedRig rig in rigs) + { + if (rig.Type == StartOptions.RigType) + { + switch (rig.CATEngine) + { + case CATENGINE.OMNIRIGX: Rig = new OmniRigX(); break; + case CATENGINE.SCOUTBASE: Rig = new ScoutBaseRig(); break; + } + + // OK, we have a valid CAT and rig --> complete and download settings + RigSettings settings = new RigSettings(); + settings.Type = rig.Type; + settings.Model = rig.Model; + settings.PortName = StartOptions.PortName; + settings.Baudrate = StartOptions.Baudrate; + settings.DataBits = StartOptions.DataBits; + settings.Parity = StartOptions.Parity; + settings.StopBits = StartOptions.StopBits; + settings.RtsMode = StartOptions.RTS; + settings.DtrMode = StartOptions.DTR; + settings.PollMs = StartOptions.Poll; + settings.TimeoutMs = StartOptions.Timeout; + Rig.Settings = settings; + + // stop search + break; + } + } + } + catch (Exception ex) + { + this.ReportProgress(-1, "Error while trying to get a rig object from CAT: " + ex.ToString()); + } + + // report error if rig is still null + if (Rig == null) + { + this.ReportProgress(-1, "Rig is not supported by any available CAT!"); + this.ReportProgress(1, RIGSTATUS.NORIG); + return; + } + + + this.ReportProgress(0, "Opening CAT: Success!"); + this.ReportProgress(2, Rig); + + // old values for check changes + DOPPLERSTRATEGY olddoppler = DOPPLERSTRATEGY.DOPPLER_NONE; + RIGSTATUS oldrigstat = RIGSTATUS.NONE; + RIGMODE oldrigmode = RIGMODE.NONE; + RIGSPLIT oldrigsplit = RIGSPLIT.NONE; + RIGRIT oldrigrit = RIGRIT.NONE; + long oldrxfreq = -1; + long oldtxfreq = -1; + + // run polling loop + while (!this.CancellationPending) + { + try + { + RIGSTATUS rigstatus = Rig.GetStatus(); + if (oldrigstat != rigstatus) + { + oldrigstat = rigstatus; + this.ReportProgress(1, rigstatus); + } + + // get rig infos when rig is online + if (rigstatus == RIGSTATUS.ONLINE) + { + // get mode + RIGMODE rigmode = Rig.GetMode(); + if ( oldrigmode != rigmode) + { + lock (Rig) + { + oldrigmode = rigmode; + this.ReportProgress(2, Rig); + } + } + + // get split + RIGSPLIT rigsplit = Rig.GetSplit(); + if (oldrigsplit != rigsplit) + { + lock (Rig) + { + oldrigsplit = rigsplit; + this.ReportProgress(2, Rig); + } + } + + // get rit + RIGRIT rigrit = Rig.GetRit(); + if (oldrigrit != rigrit) + { + lock (Rig) + { + oldrigrit = rigrit; + this.ReportProgress(2, Rig); + } + } + + // get RX frequency + long rxfreq = Rig.GetRxFrequency(); + if (oldrxfreq != rxfreq) + { + lock (Rig) + { + oldrxfreq = rxfreq; + this.ReportProgress(2, Rig); + } + } + + // get TX frequency + long txfreq = Rig.GetTxFrequency(); + if (oldtxfreq != txfreq) + { + lock (Rig) + { + oldtxfreq = txfreq; + this.ReportProgress(2, Rig); + } + } + + } + + // check for Doppler settings changes + if (olddoppler != DopplerStrategy) + { + olddoppler = DopplerStrategy; + // check for Doppler tracking enabled + if ((DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_B) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_C) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_D)) + { + // enter doppler tracking + Rig.SetDopplerStrategy(DopplerStrategy); + Rig.EnterDoppler(); + } + else + { + // leave doppler tracking + Rig.SetDopplerStrategy(DOPPLERSTRATEGY.DOPPLER_NONE); + Rig.LeaveDoppler(); + } + } + + // Doppler tracking + if ((DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_B) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_C) || (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_D)) + { + Rig.SetSplitMode(RxFrequency, TxFrequency); + } + } + catch (Exception ex) + { + + } + + Thread.Sleep(Properties.Settings.Default.CAT_Update); + } + + // reset status + this.ReportProgress(1, RIGSTATUS.NONE); + } + } +} diff --git a/AirScout.CAT/Enums.cs b/AirScout.CAT/Enums.cs new file mode 100644 index 0000000..7fe1a1b --- /dev/null +++ b/AirScout.CAT/Enums.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace AirScout.CAT +{ + public enum CATENGINE + { + NONE = 0, + OMNIRIGX = 1, + SCOUTBASE = 2, + HAMLIB = 3 + } + + [Description("Rig Status")] + public enum RIGSTATUS + { + [Description("None")] + NONE = 0, + [Description("CAT not available")] + NOCAT = 1, + [Description("Port not available")] + NOPORT = 2, + [Description("Rig not available")] + NORIG = 4, + [Description("Rig not suitable")] + NOTSUITABLE = 8, + [Description("Rig offline")] + OFFLINE = 16, + [Description("Rig online")] + ONLINE = 64, + [Description("Error")] + ERROR = 128 + } + + public enum RIGSPLIT + { + NONE = 0, + SPLITOFF = 1, + SPLITON = 2, + ERROR = 128 + } + + public enum RIGRIT + { + NONE = 0, + RITON = 1, + RITOFF = 2, + ERROR = 128 + } + + public enum RIGMODE + { + NONE = 0, + CW = 1, + CW_R = 2, + LSB = 3, + USB = 4, + DIG = 5, + DIG_R = 6, + AM = 7, + FM = 8, + OTHER = 9, + ERROR = 128 + } + + public enum RIGVFO + { + NONE = 0, + A = 1, + B = 2, + ERROR = 128 + } + + [Description("Flow Control")] + public enum FLOWCONTROL + { + [Description("Low")] + LOW, + [Description("High")] + HIGH, + [Description("Handshake")] + HANDSHAKE + } + + [Description("Stopbits")] + public enum STOPBITS + { + [Description("1")] + ONE, + [Description("1,5")] + ONE_5, + [Description("2")] + TWO + } + + [Description("Parity")] + public enum PARITY + { + [Description("None")] + NONE, + [Description("Odd")] + ODD, + [Description("Even")] + EVEN, + [Description("Mark")] + MARK, + [Description("Space")] + SPACE + } + + public enum DOPPLERSTRATEGY + { + DOPPLER_NONE = 0, + DOPPLER_A = 1, + DOPPLER_B = 2, + DOPPLER_C = 4, + DOPPLER_D = 8, + ERROR = 128 + } + + +} diff --git a/AirScout.CAT/ExtOmniRig.cs b/AirScout.CAT/ExtOmniRig.cs new file mode 100644 index 0000000..d73003c --- /dev/null +++ b/AirScout.CAT/ExtOmniRig.cs @@ -0,0 +1,526 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Linq.Expressions; +using System.Runtime.InteropServices; +using System.Text; + +namespace AirScout.CAT +{ + + // can handle different versions dynamically + public static class ExtOmniRig + { + + private static dynamic OmniRigEngine = null; + private static string OmniRigVersion = ""; + private static OMNIRIGSTATUS Status = OMNIRIGSTATUS.ST_NOTCONFIGURED; + private static int Retries = 0; + + public static RIGSTATUS GetRigStatus(string rig) + { + try + { + OMNIRIGSTATUS omnistat = OMNIRIGSTATUS.ST_NOTCONFIGURED; + + if (rig == "OmniRig Rig 1") + { + omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig1.Status; + } + else if (rig == "OmniRig Rig 2") + { + omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig2.Status; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig3.Status; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + omnistat = (OMNIRIGSTATUS)ExtOmniRig.OmniRigEngine.Rig4.Status; + } + + // suppress sporadic "offline" status + if (omnistat != OMNIRIGSTATUS.ST_ONLINE) + { + if (Retries < 3) + { + omnistat = Status; + Retries++; + } + } + else + { + Status = omnistat; + Retries = 0; + } + + + // translate OmniRig status to rig status + switch (omnistat) + { + case OMNIRIGSTATUS.ST_ONLINE: + return RIGSTATUS.ONLINE; + case OMNIRIGSTATUS.ST_NOTRESPONDING: + return RIGSTATUS.OFFLINE; + default: + return RIGSTATUS.ERROR; + } + + } + catch (Exception ex) + { + // do nothing + } + + return RIGSTATUS.ERROR; + } + + public static RIGRIT GetRit(string rig) + { + try + { + if (rig == "OmniRig Rig 1") + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig1.Rit) + { + case OMNIRIGPARAM.PM_RITOFF: + return RIGRIT.RITOFF; + + case OMNIRIGPARAM.PM_RITON: + return RIGRIT.RITON; + default: + return RIGRIT.ERROR; + } + } + else if (rig == "OmniRig Rig 2") + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig2.Rit) + { + case OMNIRIGPARAM.PM_RITOFF: + return RIGRIT.RITOFF; + + case OMNIRIGPARAM.PM_RITON: + return RIGRIT.RITON; + default: + return RIGRIT.ERROR; + } + } + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig3.Rit) + { + case OMNIRIGPARAM.PM_RITOFF: + return RIGRIT.RITOFF; + + case OMNIRIGPARAM.PM_RITON: + return RIGRIT.RITON; + default: + return RIGRIT.ERROR; + } + } + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig4.Rit) + { + case OMNIRIGPARAM.PM_RITOFF: + return RIGRIT.RITOFF; + + case OMNIRIGPARAM.PM_RITON: + return RIGRIT.RITON; + default: + return RIGRIT.ERROR; + } + } + } + catch (Exception ex) + { + // do nothing + } + return RIGRIT.ERROR; ; + } + + public static RIGSPLIT GetSplit(string rig) + { + try + { + if (rig == "OmniRig Rig 1") + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig1.Split) + { + case OMNIRIGPARAM.PM_SPLITOFF: + return RIGSPLIT.SPLITOFF; + case OMNIRIGPARAM.PM_SPLITON: + return RIGSPLIT.SPLITON; + default: + return RIGSPLIT.ERROR; + } + } + else if (rig == "OmniRig Rig 2") + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig2.Split) + { + case OMNIRIGPARAM.PM_SPLITOFF: + return RIGSPLIT.SPLITOFF; + case OMNIRIGPARAM.PM_SPLITON: + return RIGSPLIT.SPLITON; + default: + return RIGSPLIT.ERROR; + } + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig3.Split) + { + case OMNIRIGPARAM.PM_SPLITOFF: + return RIGSPLIT.SPLITOFF; + case OMNIRIGPARAM.PM_SPLITON: + return RIGSPLIT.SPLITON; + default: + return RIGSPLIT.ERROR; + } + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig4.Split) + { + case OMNIRIGPARAM.PM_SPLITOFF: + return RIGSPLIT.SPLITOFF; + case OMNIRIGPARAM.PM_SPLITON: + return RIGSPLIT.SPLITON; + default: + return RIGSPLIT.ERROR; + } + } + } + catch (Exception ex) + { + // do nothing + } + return RIGSPLIT.ERROR; ; + } + + public static RIGMODE GetMode(string rig) + { + try + { + if (rig == "OmniRig Rig 1") + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig1.Mode) + { + case OMNIRIGPARAM.PM_CW_L: + return RIGMODE.CW; + case OMNIRIGPARAM.PM_CW_U: + return RIGMODE.CW_R; + case OMNIRIGPARAM.PM_SSB_L: + return RIGMODE.LSB; + case OMNIRIGPARAM.PM_SSB_U: + return RIGMODE.USB; + case OMNIRIGPARAM.PM_FM: + return RIGMODE.FM; + case OMNIRIGPARAM.PM_AM: + return RIGMODE.AM; + default: + return RIGMODE.OTHER; + } + } + else if (rig == "OmniRig Rig 2") + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig2.Mode) + { + case OMNIRIGPARAM.PM_CW_L: + return RIGMODE.CW; + case OMNIRIGPARAM.PM_CW_U: + return RIGMODE.CW_R; + case OMNIRIGPARAM.PM_SSB_L: + return RIGMODE.LSB; + case OMNIRIGPARAM.PM_SSB_U: + return RIGMODE.USB; + case OMNIRIGPARAM.PM_FM: + return RIGMODE.FM; + case OMNIRIGPARAM.PM_AM: + return RIGMODE.AM; + default: + return RIGMODE.OTHER; + } + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig3.Mode) + { + case OMNIRIGPARAM.PM_CW_L: + return RIGMODE.CW; + case OMNIRIGPARAM.PM_CW_U: + return RIGMODE.CW_R; + case OMNIRIGPARAM.PM_SSB_L: + return RIGMODE.LSB; + case OMNIRIGPARAM.PM_SSB_U: + return RIGMODE.USB; + case OMNIRIGPARAM.PM_FM: + return RIGMODE.FM; + case OMNIRIGPARAM.PM_AM: + return RIGMODE.AM; + default: + return RIGMODE.OTHER; + } + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + switch ((OMNIRIGPARAM)OmniRigEngine.Rig4.Mode) + { + case OMNIRIGPARAM.PM_CW_L: + return RIGMODE.CW; + case OMNIRIGPARAM.PM_CW_U: + return RIGMODE.CW_R; + case OMNIRIGPARAM.PM_SSB_L: + return RIGMODE.LSB; + case OMNIRIGPARAM.PM_SSB_U: + return RIGMODE.USB; + case OMNIRIGPARAM.PM_FM: + return RIGMODE.FM; + case OMNIRIGPARAM.PM_AM: + return RIGMODE.AM; + default: + return RIGMODE.OTHER; + } + } + } + catch (Exception ex) + { + // do nothing + } + return RIGMODE.ERROR; ; + } + + public static long GetRXFrequency(string rig) + { + try + { + if (rig == "OmniRig Rig 1") + { + return (long)OmniRigEngine.Rig1.GetRxFrequency(); + } + else if (rig == "OmniRig Rig 2") + { + return (long)OmniRigEngine.Rig2.GetRxFrequency(); + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + return (long)OmniRigEngine.Rig3.GetRxFrequency(); + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + return (long)OmniRigEngine.Rig4.GetRxFrequency(); + } + } + catch (Exception ex) + { + // do nothing + } + return 0; + } + + public static bool SetSplit(string rig, long rx, long tx) + { + try + { + if (rig == "OmniRig Rig 1") + { + // OmniRig can handle Int32 only + if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue)) + return false; + OmniRigEngine.Rig1.Split = OMNIRIGPARAM.PM_SPLITON; + OmniRigEngine.Rig1.FreqA = (int)rx; + OmniRigEngine.Rig1.FreqB = (int)tx; + return true; + } + else if (rig == "OmniRig Rig 2") + { + // OmniRig can handle Int32 only + if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue)) + return false; + OmniRigEngine.Rig2.Split = OMNIRIGPARAM.PM_SPLITON; + OmniRigEngine.Rig2.FreqA = (int)rx; + OmniRigEngine.Rig2.FreqB = (int)tx; + return true; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + // OmniRig can handle Int32 only + if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue)) + return false; + OmniRigEngine.Rig3.Split = OMNIRIGPARAM.PM_SPLITON; + OmniRigEngine.Rig3.FreqA = (int)rx; + OmniRigEngine.Rig3.FreqB = (int)tx; + return true; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + // OmniRig can handle Int32 only + if ((rx > Int32.MaxValue) || (tx > Int32.MaxValue)) + return false; + OmniRigEngine.Rig4.Split = OMNIRIGPARAM.PM_SPLITON; + OmniRigEngine.Rig4.FreqA = (int)rx; + OmniRigEngine.Rig4.FreqB = (int)tx; + return true; + } + } + catch (Exception ex) + { + // do nothing + } + + return false; + + } + + public static bool SetSimplex(string rig, long rx) + { + try + { + if (rig == "OmniRig Rig 1") + { + // OmniRig can handle Int32 only + if (rx > Int32.MaxValue) + return false; + OmniRigEngine.Rig1.Split = OMNIRIGPARAM.PM_SPLITOFF; + OmniRigEngine.Rig1.FreqA = (int)rx; + return true; + } + else if (rig == "OmniRig Rig 2") + { + // OmniRig can handle Int32 only + if (rx > Int32.MaxValue) + return false; + OmniRigEngine.Rig2.Split = OMNIRIGPARAM.PM_SPLITOFF; + OmniRigEngine.Rig2.FreqA = (int)rx; + return true; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + // OmniRig can handle Int32 only + if (rx > Int32.MaxValue) + return false; + OmniRigEngine.Rig3.Split = OMNIRIGPARAM.PM_SPLITOFF; + OmniRigEngine.Rig3.FreqA = (int)rx; + return true; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + // OmniRig can handle Int32 only + if (rx > Int32.MaxValue) + return false; + OmniRigEngine.Rig4.Split = OMNIRIGPARAM.PM_SPLITOFF; + OmniRigEngine.Rig4.FreqA = (int)rx; + return true; + } + } + catch (Exception ex) + { + // do nothing + } + + return false; + + } + + public static bool SetRit(string rig, RIGRIT rit) + { + try + { + if (rig == "OmniRig Rig 1") + { + OmniRigEngine.Rig1.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF; + return true; + } + else if (rig == "OmniRig Rig 2") + { + OmniRigEngine.Rig2.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF; + return true; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 3") + ) + { + OmniRigEngine.Rig3.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF; + return true; + } + + else if ((OmniRigEngine.InterfaceVersion >= 0x210) && + (OmniRigEngine.InterfaceVersion >= 0x299) && + (rig == "OmniRig 4") + ) + { + OmniRigEngine.Rig3.Rit = (rit == RIGRIT.RITON) ? OMNIRIGPARAM.PM_RITON : OMNIRIGPARAM.PM_RITOFF; + return true; + } + } + catch (Exception ex) + { + // do nothing + } + + return false; + + } + + } + +} diff --git a/AirScout.CAT/IRig.cs b/AirScout.CAT/IRig.cs new file mode 100644 index 0000000..be059b5 --- /dev/null +++ b/AirScout.CAT/IRig.cs @@ -0,0 +1,71 @@ +using ScoutBase.CAT; +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Text; + +namespace AirScout.CAT +{ + public class RigSettings + { + // rig type name + public string Type { get; set; } = ""; + public string Model { get; set; } = ""; + + // port settings + public string PortName { get; set; } = ""; + public int Baudrate { get; set; } = 0; + public int DataBits { get; set; } = 0; + public PARITY Parity { get; set; } = PARITY.NONE; + public STOPBITS StopBits { get; set; } = STOPBITS.ONE; + public FLOWCONTROL RtsMode { get; set; } = FLOWCONTROL.LOW; + public FLOWCONTROL DtrMode { get; set; } = FLOWCONTROL.LOW; + + // time settings + public int PollMs { get; set; } = 1000; + public int TimeoutMs { get; set; } = 5000; + + + } + + // repesents an interface to a rig connected via CAT interface + // supports variuos kinds of connections + public interface IRig + { + + // Rig + RigSettings Settings { get; set; } + CATENGINE CatEngine { get; } + string CatVersion { get; } + + // rig status, read-only + RIGSTATUS GetStatus(); + + // get rig values + RIGMODE GetMode(); + RIGSPLIT GetSplit(); + RIGRIT GetRit(); + RIGVFO GetVfo(); + long GetRxFrequency(); + long GetTxFrequency(); + + // set rig values + bool SetMode(RIGMODE mode); + bool SetSplit(RIGSPLIT split); + bool SetRit(RIGRIT rit); + bool SetVfo(RIGVFO vfo); + bool SetRxFrequency(long rx); + bool SetTxFrequency(long tx); + + // rig capabilities + bool SetSimplexMode(long freq, RIGMODE mode = RIGMODE.NONE); + bool SetSplitMode(long rxfreq, long txfreq, RIGMODE mode = RIGMODE.NONE); + + // doppler tracking + bool SetDopplerStrategy(DOPPLERSTRATEGY doppler); + bool EnterDoppler(); + bool LeaveDoppler(); + + } +} diff --git a/AirScout.CAT/OmniRigX.cs b/AirScout.CAT/OmniRigX.cs new file mode 100644 index 0000000..006ae3f --- /dev/null +++ b/AirScout.CAT/OmniRigX.cs @@ -0,0 +1,1360 @@ +using Microsoft.Win32; +using ScoutBase.CAT; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.Remoting.Channels; +using System.Text; + +namespace AirScout.CAT +{ + // OmniRig enums + // hopefully constant over all versions + + public enum OMNIRIGSTATUS + { + ST_NOTCONFIGURED = 0x00000000, + ST_DISABLED = 0x00000001, + ST_PORTBUSY = 0x00000002, + ST_NOTRESPONDING = 0x00000003, + ST_ONLINE = 0x00000004 + } + + public enum OMNIRIGPARAM + { + PM_UNKNOWN = 0x00000001, + PM_FREQ = 0x00000002, + PM_FREQA = 0x00000004, + PM_FREQB = 0x00000008, + PM_PITCH = 0x00000010, + PM_RITOFFSET = 0x00000020, + PM_RIT0 = 0x00000040, + PM_VFOAA = 0x00000080, + PM_VFOAB = 0x00000100, + PM_VFOBA = 0x00000200, + PM_VFOBB = 0x00000400, + PM_VFOA = 0x00000800, + PM_VFOB = 0x00001000, + PM_VFOEQUAL = 0x00002000, + PM_VFOSWAP = 0x00004000, + PM_SPLITON = 0x00008000, + PM_SPLITOFF = 0x00010000, + PM_RITON = 0x00020000, + PM_RITOFF = 0x00040000, + PM_XITON = 0x00080000, + PM_XITOFF = 0x00100000, + PM_RX = 0x00200000, + PM_TX = 0x00400000, + PM_CW_U = 0x00800000, + PM_CW_L = 0x01000000, + PM_SSB_U = 0x02000000, + PM_SSB_L = 0x04000000, + PM_DIG_U = 0x08000000, + PM_DIG_L = 0x10000000, + PM_AM = 0x20000000, + PM_FM = 0x40000000 + + } + + + // represents a rig connected via OmniRig ActiveX interface + public class OmniRigX : IRig + { + // holds the OmniRig ActiveX object + private static dynamic OmniRigEngine = null; + private static string OmniRigVersion = ""; + + // rig type constants + private static readonly string RigType1 = "[OmniRig] Rig 1"; + private static readonly string RigType2 = "[OmniRig] Rig 2"; + private static readonly string RigType3 = "[OmniRig] Rig 3"; + private static readonly string RigType4 = "[OmniRig] Rig 4"; + + // rig + private RigSettings Settings = new RigSettings(); + + // doppler tracking strategy + DOPPLERSTRATEGY DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_NONE; + + // save rig settings + private RIGMODE SaveRigMode; + private RIGSPLIT SaveRigSplit; + private RIGRIT SaveRigRit; + private long SaveRxFrequency; + private long SaveTxFrequency; + + private static void StartOmniRig() + { + if (OmniRigEngine == null) + { + try + { + // try to load recent version of OmniRig + // we want OmniRig interface V2.1 + Type COMType = System.Type.GetTypeFromProgID("OmniRig.OmniRigX"); + OmniRigVersion = "OmniRig V2.x"; + + // Leagcy support: try to load OmniRig V1.19 instead explicit, if loading of recent version fails + if (COMType == null) + { + COMType = System.Type.GetTypeFromCLSID(new Guid("4FE359C5-A58F-459D-BE95-CA559FB4F270")); + OmniRigVersion = "OmniRig V1.19"; + } + + // try to create COM-object dynamically + if (COMType != null) + { + OmniRigEngine = Activator.CreateInstance(COMType); + } + else + { + OmniRigEngine = null; + throw new NotSupportedException("OmniRig is not installed! or has unsupported version!"); + } + + // check supported versions + if (OmniRigEngine.InterfaceVersion != 0x110) + { + OmniRigVersion = "OmniRig V1.19"; + } + else if ((OmniRigEngine.InterfaceVersion < 0x210) && (OmniRigEngine.InterfaceVersion > 0x299)) + { + OmniRigVersion = "OmniRig V2.x"; + } + else + { + OmniRigEngine = null; + throw new NotSupportedException("OmniRig is not installed but has unsupported version:" + OmniRigEngine.InterfaceVersion.ToString()); + } + } + catch (Exception ex) + { + OmniRigEngine = null; + throw new NotSupportedException("Error while initializing OmniRig: " + ex.ToString()); + } + + + } + } + + // ************************ Interface ********************************* + + RigSettings IRig.Settings + { + get + { + if (OmniRigEngine == null) + StartOmniRig(); + + // refresh Settings with values from OmniRig + // we can set only rig model as we don't get more info + + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + Settings.Model = OmniRigX.OmniRigEngine.Rig1.RigType; + else if (Settings.Type == OmniRigX.RigType2) + Settings.Model = OmniRigX.OmniRigEngine.Rig2.RigType; + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + Settings.Model = OmniRigX.OmniRigEngine.Rig3.RigType; + else if (Settings.Type == OmniRigX.RigType4) + Settings.Model = OmniRigX.OmniRigEngine.Rig4.RigType; + } + + // return the current settings + return Settings; + } + set + { + // update settings + Settings = value; + + // we can only transfer rig model to OmniRig + if (OmniRigEngine == null) + StartOmniRig(); + + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + OmniRigX.OmniRigEngine.Rig1.RigType = Settings.Model; + else if (Settings.Type == OmniRigX.RigType2) + OmniRigX.OmniRigEngine.Rig2.RigType = Settings.Model; + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + OmniRigX.OmniRigEngine.Rig3.RigType = Settings.Model; + else if (Settings.Type == OmniRigX.RigType4) + OmniRigX.OmniRigEngine.Rig4.RigType = Settings.Model; + } + + } + } + + CATENGINE IRig.CatEngine + { + get + { + if (OmniRigEngine == null) + StartOmniRig(); + return CATENGINE.OMNIRIGX; + } + } + + string IRig.CatVersion + { + get + { + if (OmniRigEngine == null) + StartOmniRig(); + return OmniRigVersion; + } + } + + private bool Is2x() + { + try + { + return (OmniRigEngine.InterfaceVersion < 0x210) && (OmniRigEngine.InterfaceVersion > 0x299); + } + catch (Exception ex) + { + + } + + return false; + } + + private RIGSTATUS IntGetRigStatus (dynamic rig) + { + // translate result to RIGSTATUS values + switch ((OMNIRIGSTATUS)rig.Status) + { + case OMNIRIGSTATUS.ST_PORTBUSY: return RIGSTATUS.NOPORT; + case OMNIRIGSTATUS.ST_NOTCONFIGURED: return RIGSTATUS.NORIG; + case OMNIRIGSTATUS.ST_DISABLED: return RIGSTATUS.NORIG; + case OMNIRIGSTATUS.ST_NOTRESPONDING: return RIGSTATUS.OFFLINE; + } + + // rig is online + // check for rig capabilities here + if (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A) + { + // rig must support at least split operation + if ((!rig.IsParamReadable(OMNIRIGPARAM.PM_SPLITOFF)) || + (!rig.IsParamReadable(OMNIRIGPARAM.PM_SPLITON)) || + (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITOFF)) || + (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITON)) || + (!rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL)) + ) + { + return RIGSTATUS.NOTSUITABLE; + } + } + + // return online + return RIGSTATUS.ONLINE; + } + + public RIGSTATUS GetStatus() + { + if (OmniRigEngine == null) + StartOmniRig(); + + // return NOCAT if still null + if (OmniRigEngine == null) + return RIGSTATUS.NOCAT; + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig1); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig2); + } + + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig3); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntGetRigStatus(OmniRigX.OmniRigEngine.Rig4); + } + } + } + catch (Exception ex) + { + + } + return RIGSTATUS.NONE; + } + + private RIGMODE IntGetMode (dynamic rig) + { + switch ((OMNIRIGPARAM)rig.Mode) + { + case OMNIRIGPARAM.PM_CW_L: return RIGMODE.CW; + case OMNIRIGPARAM.PM_CW_U: return RIGMODE.CW_R; + case OMNIRIGPARAM.PM_SSB_L: return RIGMODE.LSB; + case OMNIRIGPARAM.PM_SSB_U: return RIGMODE.USB; + case OMNIRIGPARAM.PM_DIG_L: return RIGMODE.DIG; + case OMNIRIGPARAM.PM_DIG_U: return RIGMODE.DIG_R; + case OMNIRIGPARAM.PM_AM: return RIGMODE.AM; + case OMNIRIGPARAM.PM_FM: return RIGMODE.FM; + } + + return RIGMODE.NONE; + } + + public RIGMODE GetMode() + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntGetMode(OmniRigX.OmniRigEngine.Rig1); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntGetMode(OmniRigX.OmniRigEngine.Rig2); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntGetMode(OmniRigX.OmniRigEngine.Rig3); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntGetMode(OmniRigX.OmniRigEngine.Rig4); + } + } + } + catch (Exception ex) + { + + } + + return RIGMODE.NONE; + } + + public RIGSPLIT IntGetSplit(dynamic rig) + { + switch ((OMNIRIGPARAM)rig.Split) + { + case OMNIRIGPARAM.PM_SPLITOFF: return RIGSPLIT.SPLITOFF; + case OMNIRIGPARAM.PM_SPLITON: return RIGSPLIT.SPLITON; + } + + return RIGSPLIT.NONE; + } + + public RIGSPLIT GetSplit() + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntGetSplit(OmniRigX.OmniRigEngine.Rig1); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntGetSplit(OmniRigX.OmniRigEngine.Rig2); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntGetSplit(OmniRigX.OmniRigEngine.Rig3); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntGetSplit(OmniRigX.OmniRigEngine.Rig4); + } + } + } + catch (Exception ex) + { + + } + + return RIGSPLIT.NONE; + + } + + public RIGRIT IntGetRit (dynamic rig) + { + switch ((OMNIRIGPARAM)rig.Rit) + { + case OMNIRIGPARAM.PM_RITOFF: return RIGRIT.RITOFF; + case OMNIRIGPARAM.PM_RITON: return RIGRIT.RITON; + } + + return RIGRIT.NONE; + } + + public RIGRIT GetRit() + { + + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntGetRit(OmniRigX.OmniRigEngine.Rig1); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntGetRit(OmniRigX.OmniRigEngine.Rig2); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntGetRit(OmniRigX.OmniRigEngine.Rig3); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntGetRit(OmniRigX.OmniRigEngine.Rig4); + } + } + } + catch (Exception ex) + { + + } + + return RIGRIT.NONE; + + } + + public RIGVFO IntGetVfo(dynamic rig) + { + switch ((OMNIRIGPARAM)rig.Vfo) + { + case OMNIRIGPARAM.PM_VFOA: return RIGVFO.A; + case OMNIRIGPARAM.PM_VFOB: return RIGVFO.B; + } + + return RIGVFO.NONE; + } + + public RIGVFO GetVfo() + { + + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntGetVfo(OmniRigX.OmniRigEngine.Rig1); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntGetVfo(OmniRigX.OmniRigEngine.Rig2); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntGetVfo(OmniRigX.OmniRigEngine.Rig3); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntGetVfo(OmniRigX.OmniRigEngine.Rig4); + } + } + } + catch (Exception ex) + { + + } + + return RIGVFO.NONE; + + } + + private long IntGetRxFrequency(dynamic rig) + { + if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF) + { + // check if pmFreq is readable --> return Freq + if (rig.Freq > 0) + return rig.Freq; + // check if pmFreqA is readable --> return FreqA instead + if (rig.FreqA > 0) + return rig.FreqA; + } + else + { + // check if pmFreqA is readable --> return FreqA instead + if (rig.FreqA > 0) + return rig.FreqA; + } + + return 0; + } + + public long GetRxFrequency() + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig1); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig2); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig3); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntGetRxFrequency(OmniRigX.OmniRigEngine.Rig4); + } + } + } + catch (Exception ex) + { + + } + + return 0; + } + + private int IntGetTxFrequency(dynamic rig) + { + if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF) + { + // check if pmFreq is readable --> return Freq + if (rig.Freq > 0) + return rig.Freq; + // check if pmFreqA is readable --> return FreqA instead + if (rig.FreqA > 0) + return rig.FreqA; + } + else + { + // check if pmFreqB is readable --> return FreqB instead + if (rig.FreqB > 0) + return rig.FreqB; + } + + return 0; + } + + public long GetTxFrequency() + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig1); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig2); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig3); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntGetTxFrequency(OmniRigX.OmniRigEngine.Rig4); + } + } + } + catch (Exception ex) + { + + } + + return 0; + } + + // ******************************************************************** + + private bool IntSetMode(dynamic rig, RIGMODE mode) + { + switch (mode) + { + case RIGMODE.CW: rig.Mode = OMNIRIGPARAM.PM_CW_L; return true; + case RIGMODE.CW_R: rig.Mode = OMNIRIGPARAM.PM_CW_U; return true; + case RIGMODE.LSB: rig.Mode = OMNIRIGPARAM.PM_SSB_L; return true; + case RIGMODE.USB: rig.Mode = OMNIRIGPARAM.PM_SSB_U; return true; + case RIGMODE.DIG: rig.Mode = OMNIRIGPARAM.PM_DIG_L; return true; + case RIGMODE.DIG_R: rig.Mode = OMNIRIGPARAM.PM_DIG_U; return true; + case RIGMODE.AM: rig.Mode = OMNIRIGPARAM.PM_AM; return true; + case RIGMODE.FM: rig.Mode = OMNIRIGPARAM.PM_FM; return true; + } + + return false; + } + + public bool SetMode(RIGMODE mode) + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetMode(OmniRigX.OmniRigEngine.Rig1, mode); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetMode(OmniRigX.OmniRigEngine.Rig2, mode); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetMode(OmniRigX.OmniRigEngine.Rig3, mode); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetMode(OmniRigX.OmniRigEngine.Rig4, mode); + } + } + + } + catch (Exception ex) + { + } + + return false; + } + + private bool IntSetSplit(dynamic rig, RIGSPLIT split) + { + switch (split) + { + case RIGSPLIT.SPLITOFF: rig.Split = OMNIRIGPARAM.PM_SPLITOFF; return true; + case RIGSPLIT.SPLITON: rig.Split = OMNIRIGPARAM.PM_SPLITON; return true; + } + + return false; + } + + public bool SetSplit (RIGSPLIT split) + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetSplit(OmniRigX.OmniRigEngine.Rig1, split); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetSplit(OmniRigX.OmniRigEngine.Rig2, split); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetSplit(OmniRigX.OmniRigEngine.Rig3, split); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetSplit(OmniRigX.OmniRigEngine.Rig4, split); + } + } + } + catch (Exception ex) + { + + } + + + return false; + } + + private bool IntSetRit(dynamic rig, RIGRIT rit) + { + switch (rit) + { + case RIGRIT.RITOFF: rig.Rit = OMNIRIGPARAM.PM_RITOFF; return true; + case RIGRIT.RITON: rig.Rit = OMNIRIGPARAM.PM_RITON; return true; + } + + return false; + } + + public bool SetRit(RIGRIT rit) + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetRit(OmniRigX.OmniRigEngine.Rig1, rit); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetRit(OmniRigX.OmniRigEngine.Rig2, rit); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetRit(OmniRigX.OmniRigEngine.Rig3, rit); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetRit(OmniRigX.OmniRigEngine.Rig4, rit); + } + } + } + catch (Exception ex) + { + + } + + + return false; + } + + private bool IntSetVfo(dynamic rig, RIGVFO vfo) + { + switch (vfo) + { + case RIGVFO.A: rig.Vfo = OMNIRIGPARAM.PM_VFOA; return true; + case RIGVFO.B: rig.Vfo = OMNIRIGPARAM.PM_VFOB; return true; + } + + return false; + } + + public bool SetVfo(RIGVFO vfo) + { + if (OmniRigEngine == null) + StartOmniRig(); + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetVfo(OmniRigX.OmniRigEngine.Rig1, vfo); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetVfo(OmniRigX.OmniRigEngine.Rig2, vfo); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetVfo(OmniRigX.OmniRigEngine.Rig3, vfo); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetVfo(OmniRigX.OmniRigEngine.Rig4, vfo); + } + } + } + catch (Exception ex) + { + + } + + + return false; + } + + private bool IntSetRxFrequency(dynamic rig, long rx) + { + if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF) + { + // check if pmFreq is writeable --> set Freq + if (rig.IsWritable(OMNIRIGPARAM.PM_FREQ)) + { + rig.Freq = (int)rx; + return true; + } + // check if pmFreqA is writeable --> set FreqA instead + if (rig.IsWritable(OMNIRIGPARAM.PM_FREQA)) + { + rig.FreqA = (int)rx; + return true; + } + } + else + { + // check if pmFreqA is writeable --> set FreqA instead + if (rig.IsWritable(OMNIRIGPARAM.PM_FREQA)) + { + rig.FreqA = (int)rx; + return true; + } + } + + return false; + } + + public bool SetRxFrequency(long rx) + { + if (OmniRigEngine == null) + StartOmniRig(); + + // check bounds as OmniRig ActiveX only supperts 32bit values + if ((rx < Int32.MinValue) || (rx > int.MaxValue)) + return false; + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig1, rx); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig2, rx); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig3, rx); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetRxFrequency(OmniRigX.OmniRigEngine.Rig4, rx); + } + } + } + catch (Exception ex) + { + + } + + return false; + } + + private bool IntSetTxFrequency(dynamic rig, long tx) + { + if ((OMNIRIGPARAM)rig.Split == OMNIRIGPARAM.PM_SPLITOFF) + { + // check if pmFreq is writeable --> set Freq + if (rig.IsWritable(OMNIRIGPARAM.PM_FREQ)) + { + rig.Freq = (int)tx; + return true; + } + // check if pmFreqA is writeable --> set FreqA instead + if (rig.IsWritable(OMNIRIGPARAM.PM_FREQA)) + { + rig.FreqA = (int)tx; + return true; + } + } + else + { + // check if pmFreqB is writeable --> set FreqB instead + if (rig.IsWritable(OMNIRIGPARAM.PM_FREQB)) + { + rig.FreqB = (int)tx; + return true; + } + } + + return false; + } + + public bool SetTxFrequency(long tx) + { + if (OmniRigEngine == null) + StartOmniRig(); + + // check bounds as OmniRig ActiveX only supperts 32bit values + if ((tx < Int32.MinValue) || (tx > int.MaxValue)) + return false; + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig1, tx); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig2, tx); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig3, tx); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetTxFrequency(OmniRigX.OmniRigEngine.Rig4, tx); + } + } + } + catch (Exception ex) + { + + } + + return false; + } + + public bool IntSetSimplexMode(dynamic rig, long freq, RIGMODE mode) + { + // set frequency and switch split off + try + { + if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOAA)) + { + rig.Vfo = OMNIRIGPARAM.PM_VFOAA; + rig.FreqA = freq; + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITOFF)) + { + rig.Vfo = OMNIRIGPARAM.PM_VFOA; + rig.FreqA = freq; + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOB)) + { + rig.Vfo = OMNIRIGPARAM.PM_VFOB; + rig.Freq = freq; + rig.Vfo = OMNIRIGPARAM.PM_VFOA; + rig.Freq = freq; + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL)) + { + rig.Freq = freq; + rig.Vfo = OMNIRIGPARAM.PM_VFOEQUAL; + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOSWAP)) + { + rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP; + rig.Freq = freq; + rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP; + rig.Freq = freq; + } + // Added by RA6UAZ for Icom Marine Radio NMEA Command + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && !rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB)) + { + rig.Freq = freq; + rig.FreqB = freq; + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ)) + { + rig.Freq = freq; + } + + if (rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITOFF)) + { + rig.Split = OMNIRIGPARAM.PM_SPLITOFF; + } + + // simply set mode on current VFO + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + + return true; + } + catch (Exception ex) + { + + } + + return false; + } + + public bool SetSimplexMode(long freq, RIGMODE mode = RIGMODE.NONE) + { + + // we cannot use the "buil-in" function from OmniRig as it affects the Rit/Xit + if (OmniRigEngine == null) + StartOmniRig(); + + // check bounds as OmniRig ActiveX only supperts 32bit values + if ((freq < Int32.MinValue) || (freq > int.MaxValue)) + return false; + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig1, freq, mode); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig2, freq, mode); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig3, freq, mode); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetSimplexMode(OmniRigX.OmniRigEngine.Rig4, freq, mode); + } + } + + return true; + } + catch (Exception ex) + { + + } + + return false; + } + + private bool CanWriteMode(dynamic rig) + { + // check if modes are writable + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_CW_L)) + return false; + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_CW_U)) + return false; + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SSB_L)) + return false; + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_SSB_U)) + return false; + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_DIG_L)) + return false; + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_DIG_U)) + return false; + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_AM)) + return false; + if (!rig.IsParamWriteable(OMNIRIGPARAM.PM_FM)) + return false; + + return true; + } + + private bool IntSetSplitMode(dynamic rig, long rxfreq, long txfreq, RIGMODE mode = RIGMODE.NONE) + { + //set rx and tx frequencies and split + try + { + // try to set mode on both Vfos via VfoEqual which is the easiest way + if (rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL)) + { + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + rig.Vfo = OMNIRIGPARAM.PM_VFOEQUAL; + } + } + + if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOAB)) + { + // TS-570 + rig.Vfo = OMNIRIGPARAM.PM_VFOAB; + rig.FreqA = rxfreq; + rig.FreqB = txfreq; + // try to set mode once for both VFOs + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOEQUAL)) + { + // IC-746 + rig.Freq = txfreq; + // should work fine for both VFOs because of VfoEqual + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + rig.Vfo = OMNIRIGPARAM.PM_VFOEQUAL; + rig.Freq = rxfreq; + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOB) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA)) + { + // FT-100D + rig.Vfo = OMNIRIGPARAM.PM_VFOB; + rig.Freq = txfreq; + // should work fine for both VFOs because of switching to both VFOs + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + rig.Vfo = OMNIRIGPARAM.PM_VFOA; + rig.Freq = rxfreq; + // should work fine for both VFOs because of switching to both VFOs + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOSWAP)) + { + // FT-817 ? + rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP; + rig.Freq = txfreq; + // should work fine for both VFOs because of VfoSwap + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + rig.Vfo = OMNIRIGPARAM.PM_VFOSWAP; + rig.Freq = rxfreq; + // should work fine for both VFOs because of VfoSwap + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + } + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB) && rig.IsParamWriteable(OMNIRIGPARAM.PM_VFOA)) + { + //FT-1000 MP, IC-7610 + rig.Vfo = OMNIRIGPARAM.PM_VFOA; + rig.FreqA = rxfreq; + rig.FreqB = txfreq; + // can set only mode on VFO A + if (CanWriteMode(rig) && (mode != RIGMODE.NONE)) + { + rig.Mode = mode; + } + + } + // Added by RA6UAZ for Icom Marine Radio NMEA Command + else if (rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQ) && !rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQA) && rig.IsParamWriteable(OMNIRIGPARAM.PM_FREQB)) + { + rig.Freq = rxfreq; + rig.FreqB = txfreq; + } + + if (rig.IsParamWriteable(OMNIRIGPARAM.PM_SPLITON)) + { + rig.Split = OMNIRIGPARAM.PM_SPLITON; + } + + return true; + } + catch (Exception ex) + { + + } + + return false; + } + + public bool SetSplitMode(long rxfreq, long txfreq, RIGMODE mode = RIGMODE.NONE) + { + // we cannot use the "buil-in" split function from OmniRig as it affects the Rit/Xit + if (OmniRigEngine == null) + StartOmniRig(); + + // check bounds as OmniRig ActiveX only supperts 32bit values + if ((rxfreq < Int32.MinValue) || (rxfreq > int.MaxValue) || (txfreq < Int32.MinValue) || (txfreq > int.MaxValue)) + return false; + + try + { + // V1.19 + if (Settings.Type == OmniRigX.RigType1) + { + return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig1, rxfreq, txfreq, mode); + } + else if (Settings.Type == OmniRigX.RigType2) + { + return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig2, rxfreq, txfreq, mode); + } + // V2.x + if (Is2x()) + { + if (Settings.Type == OmniRigX.RigType3) + { + return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig3, rxfreq, txfreq, mode); + } + else if (Settings.Type == OmniRigX.RigType4) + { + return IntSetSplitMode(OmniRigX.OmniRigEngine.Rig4, rxfreq, txfreq, mode); + } + } + + return true; + } + catch (Exception ex) + { + + } + + return false; + } + + public bool SetDopplerStrategy(DOPPLERSTRATEGY doppler) + { + DopplerStrategy = doppler; + return true; + } + + public bool EnterDoppler() + { + // return false if we are not online or rig not suitable + if (GetStatus() != RIGSTATUS.ONLINE) + return false; + + // save rig settings + SaveRigMode = this.GetMode(); + SaveRigSplit = this.GetSplit(); + SaveRigRit = this.GetRit(); + SaveRxFrequency = this.GetRxFrequency(); + SaveTxFrequency = this.GetTxFrequency(); + + SetSplitMode(SaveRxFrequency, SaveRxFrequency, SaveRigMode); + + return true; + } + + public bool LeaveDoppler() + { + // restore rig settings + if (SaveRigMode != RIGMODE.NONE) + SetMode(SaveRigMode); + if (SaveRigSplit != RIGSPLIT.NONE) + SetSplit(SaveRigSplit); + if (SaveRigRit != RIGRIT.NONE) + SetRit(SaveRigRit); + if (SaveRxFrequency > 0) + SetRxFrequency(SaveRxFrequency); + if (SaveTxFrequency > 0) + SetTxFrequency(SaveTxFrequency); + + SetSimplexMode(SaveRxFrequency, SaveRigMode); + + return true; + } + + + // provides a list of supported rigs + public static List SupportedRigs() + { + List l = new List(); + + // try get OmniRig working + if (OmniRigEngine == null) + { + StartOmniRig(); + } + + if (OmniRigEngine != null) + { + // setup OmniRig virtual Rigs according to OmniRig version + + // legacy V1.19 --> supports only 2 rigs + if (OmniRigEngine.InterfaceVersion == 0x101) + { + SupportedRig rig = new SupportedRig(); + rig.Type = OmniRigX.RigType1; + rig.Model = OmniRigX.OmniRigEngine.Rig1.RigType; + rig.CATEngine = CATENGINE.OMNIRIGX; + l.Add(rig); + rig = new SupportedRig(); + rig.Type = OmniRigX.RigType2; + rig.Model = OmniRigX.OmniRigEngine.Rig2.RigType; + rig.CATEngine = CATENGINE.OMNIRIGX; + l.Add(rig); + } + // version 2.xx --> supports 4 rigs + else if ((OmniRigEngine.InterfaceVersion < 0x210) && (OmniRigEngine.InterfaceVersion > 0x299)) + { + SupportedRig rig = new SupportedRig(); + rig.Type = OmniRigX.RigType1; + rig.Model = OmniRigX.OmniRigEngine.Rig1.RigType; + rig.CATEngine = CATENGINE.OMNIRIGX; + l.Add(rig); + rig = new SupportedRig(); + rig.Type = OmniRigX.RigType2; + rig.Model = OmniRigX.OmniRigEngine.Rig2.RigType; + rig.CATEngine = CATENGINE.OMNIRIGX; + l.Add(rig); + rig = new SupportedRig(); + rig.Type = OmniRigX.RigType3; + rig.Model = OmniRigX.OmniRigEngine.Rig3.RigType; + rig.CATEngine = CATENGINE.OMNIRIGX; + l.Add(rig); + rig = new SupportedRig(); + rig.Type = OmniRigX.RigType4; + rig.Model = OmniRigX.OmniRigEngine.Rig4.RigType; + rig.CATEngine = CATENGINE.OMNIRIGX; + l.Add(rig); + } + + } + + // return list of rigs + return l; + } + + + } +} diff --git a/AirScout.CAT/Properties/AssemblyInfo.cs b/AirScout.CAT/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..eecb059 --- /dev/null +++ b/AirScout.CAT/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("AirScout.CAT")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AirScout.CAT")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("ffdec390-7bbc-4dec-9826-1dd04279f3fa")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/AirScout.CAT/Properties/Settings.Designer.cs b/AirScout.CAT/Properties/Settings.Designer.cs new file mode 100644 index 0000000..ba9d571 --- /dev/null +++ b/AirScout.CAT/Properties/Settings.Designer.cs @@ -0,0 +1,182 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace AirScout.CAT.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")] + public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool CAT_Activate { + get { + return ((bool)(this["CAT_Activate"])); + } + set { + this["CAT_Activate"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("500")] + public int CAT_Update { + get { + return ((int)(this["CAT_Update"])); + } + set { + this["CAT_Update"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("500")] + public int CAT_ResponseTimeout { + get { + return ((int)(this["CAT_ResponseTimeout"])); + } + set { + this["CAT_ResponseTimeout"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string CAT_RigType { + get { + return ((string)(this["CAT_RigType"])); + } + set { + this["CAT_RigType"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string CAT_PortName { + get { + return ((string)(this["CAT_PortName"])); + } + set { + this["CAT_PortName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("9600")] + public int CAT_Baudrate { + get { + return ((int)(this["CAT_Baudrate"])); + } + set { + this["CAT_Baudrate"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("8")] + public int CAT_DataBits { + get { + return ((int)(this["CAT_DataBits"])); + } + set { + this["CAT_DataBits"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("NONE")] + public global::AirScout.CAT.PARITY CAT_Parity { + get { + return ((global::AirScout.CAT.PARITY)(this["CAT_Parity"])); + } + set { + this["CAT_Parity"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("ONE")] + public global::AirScout.CAT.STOPBITS CAT_StopBits { + get { + return ((global::AirScout.CAT.STOPBITS)(this["CAT_StopBits"])); + } + set { + this["CAT_StopBits"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("LOW")] + public global::AirScout.CAT.FLOWCONTROL CAT_RTS { + get { + return ((global::AirScout.CAT.FLOWCONTROL)(this["CAT_RTS"])); + } + set { + this["CAT_RTS"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("LOW")] + public global::AirScout.CAT.FLOWCONTROL CAT_DTR { + get { + return ((global::AirScout.CAT.FLOWCONTROL)(this["CAT_DTR"])); + } + set { + this["CAT_DTR"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("100")] + public int CAT_Poll { + get { + return ((int)(this["CAT_Poll"])); + } + set { + this["CAT_Poll"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("500")] + public int CAT_Timeout { + get { + return ((int)(this["CAT_Timeout"])); + } + set { + this["CAT_Timeout"] = value; + } + } + } +} diff --git a/AirScout.CAT/Properties/Settings.settings b/AirScout.CAT/Properties/Settings.settings new file mode 100644 index 0000000..b66b028 --- /dev/null +++ b/AirScout.CAT/Properties/Settings.settings @@ -0,0 +1,45 @@ + + + + + + False + + + 500 + + + 500 + + + + + + + + + 9600 + + + 8 + + + NONE + + + ONE + + + LOW + + + LOW + + + 100 + + + 500 + + + \ No newline at end of file diff --git a/AirScout.CAT/ScoutBaseRig.cs b/AirScout.CAT/ScoutBaseRig.cs new file mode 100644 index 0000000..9b7fcf6 --- /dev/null +++ b/AirScout.CAT/ScoutBaseRig.cs @@ -0,0 +1,706 @@ +using ScoutBase.CAT; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Mime; +using System.Text; +using System.Xml.Schema; + +namespace AirScout.CAT +{ + // represents a rig connected directly via ScoutBase.CAT (OmniRig style) + public class ScoutBaseRig : ScoutBase.CAT.Rig, IRig + { + + private RigSettings Settings = new RigSettings(); + + // doppler tracking strategy + DOPPLERSTRATEGY DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_NONE; + + // save rig settings + private RIGMODE SaveRigMode; + private RIGSPLIT SaveRigSplit; + private RIGRIT SaveRigRit; + private long SaveRxFrequency; + private long SaveTxFrequency; + + + // ************************ Interface ********************************* + + RigSettings IRig.Settings + { + get + { + + return Settings; + } + set + { + Settings = value; + + this.Enabled = false; + + // copy settings to rig settings + ScoutBase.CAT.RigSettings settings = new ScoutBase.CAT.RigSettings(); + settings.RigType = Settings.Model; + settings.PortName = Settings.PortName; + settings.Baudrate = Settings.Baudrate; + settings.DataBits = Settings.DataBits; + switch(Settings.Parity) + { + case PARITY.EVEN: settings.Parity = Parity.ptEven; break; + case PARITY.ODD: settings.Parity = Parity.ptOdd; break; + case PARITY.MARK: settings.Parity = Parity.ptMark; break; + case PARITY.SPACE: settings.Parity = Parity.ptSpace; break; + default: settings.Parity = Parity.ptNone; break; + } + switch(Settings.StopBits) + { + case STOPBITS.ONE_5: settings.StopBits = StopBits.sbOne_5; break; + case STOPBITS.TWO: settings.StopBits = StopBits.sbTwo; break; + default: settings.StopBits = StopBits.sbOne; break; + } + switch (Settings.RtsMode) + { + case FLOWCONTROL.HIGH: settings.RtsMode = FlowControl.fcHigh; break; + case FLOWCONTROL.HANDSHAKE: settings.RtsMode = FlowControl.fcHandShake; break; + default: settings.RtsMode = FlowControl.fcLow; break; + } + switch (Settings.DtrMode) + { + case FLOWCONTROL.HIGH: settings.DtrMode = FlowControl.fcHigh; break; + case FLOWCONTROL.HANDSHAKE: settings.DtrMode = FlowControl.fcHandShake; break; + default: settings.DtrMode = FlowControl.fcLow; break; + } + settings.PollMs = Settings.PollMs; + settings.TimeoutMs = Settings.TimeoutMs; + + // transfer settings to rig and restart + settings.ToRig(this); + + // enable rig + this.Enabled = true; + } + } + + + CATENGINE IRig.CatEngine + { + get + { + return CATENGINE.SCOUTBASE; + } + } + + string IRig.CatVersion + { + get + { + return "ScoutBase.CAT V" + ScoutBase.CAT.OmniRig.InterfaceVersion; + } + } + + public RIGSTATUS GetStatus() + { + try + { + // translate result to RIGSTATUS values + switch ((RigCtlStatus)this.Status) + { + case RigCtlStatus.stPortBusy: return RIGSTATUS.NOPORT; + case RigCtlStatus.stNotConfigured: return RIGSTATUS.NORIG; + case RigCtlStatus.stDisabled: return RIGSTATUS.NORIG; + case RigCtlStatus.stNotResponding: return RIGSTATUS.OFFLINE; + } + + // rig is online + // check for rig capabilities here + if (DopplerStrategy == DOPPLERSTRATEGY.DOPPLER_A) + { + // rig must support at least split operation + if ((!this.IsParamReadable(RigParam.pmSplitOff)) || + (!this.IsParamReadable(RigParam.pmSplitOn)) || + (!this.IsParamWriteable(RigParam.pmSplitOff)) || + (!this.IsParamWriteable(RigParam.pmSplitOn)) || + (!this.IsParamWriteable(RigParam.pmVfoEqual)) + ) + { + return RIGSTATUS.NOTSUITABLE; + } + } + + // return online + return RIGSTATUS.ONLINE; + } + catch (Exception ex) + { + + } + + return RIGSTATUS.NONE; + } + + public RIGMODE GetMode() + { + try + { + switch ((RigParam)this.Mode) + { + case RigParam.pmCW_L: return RIGMODE.CW; + case RigParam.pmCW_U: return RIGMODE.CW_R; + case RigParam.pmSSB_L: return RIGMODE.LSB; + case RigParam.pmSSB_U: return RIGMODE.USB; + case RigParam.pmDIG_L: return RIGMODE.DIG; + case RigParam.pmDIG_U: return RIGMODE.DIG_R; + case RigParam.pmAM: return RIGMODE.AM; + case RigParam.pmFM: return RIGMODE.FM; + } + + return RIGMODE.NONE; + } + catch (Exception ex) + { + + } + + return RIGMODE.NONE; + } + + public RIGSPLIT GetSplit() + { + try + { + switch ((RigParam)this.Split) + { + case RigParam.pmSplitOff: return RIGSPLIT.SPLITOFF; + case RigParam.pmSplitOn: return RIGSPLIT.SPLITON; + } + } + catch (Exception ex) + { + + } + + return RIGSPLIT.NONE; + + } + + public RIGRIT GetRit() + { + try + { + switch ((RigParam)this.Rit) + { + case RigParam.pmRitOff: return RIGRIT.RITOFF; + case RigParam.pmRitOn: return RIGRIT.RITON; + } + } + catch (Exception ex) + { + + } + + return RIGRIT.NONE; + + } + + public RIGVFO GetVfo() + { + try + { + switch ((RigParam)this.Vfo) + { + case RigParam.pmVfoA: return RIGVFO.A; + case RigParam.pmVfoB: return RIGVFO.B; + } + } + catch (Exception ex) + { + + } + + return RIGVFO.NONE; + + } + + long IRig.GetRxFrequency() + { + try + { + if ((RigParam)this.Split == RigParam.pmSplitOff) + { + // check if pmFreq is readable --> return Freq + if (this.Freq > 0) + return this.Freq; + // check if pmFreqA is readable --> return FreqA instead + if (this.FreqA > 0) + return this.FreqA; + } + else + { + // check if pmFreqA is readable --> return FreqA instead + if (this.FreqA > 0) + return this.FreqA; + } + } + catch (Exception ex) + { + + } + + return 0; + } + + long IRig.GetTxFrequency() + { + try + { + if ((RigParam)this.Split == RigParam.pmSplitOff) + { + // check if pmFreq is readable --> return Freq + if (this.Freq > 0) + return this.Freq; + // check if pmFreqA is readable --> return FreqA instead + if (this.FreqA > 0) + return this.FreqA; + } + else + { + // check if pmFreqB is readable --> return FreqB instead + if (this.FreqB > 0) + return this.FreqB; + } + } + catch (Exception ex) + { + + } + + return 0; + } + + // ******************************************************************** + + public bool SetMode(RIGMODE mode) + { + try + { + switch (mode) + { + case RIGMODE.CW: this.Mode = RigParam.pmCW_L; return true; + case RIGMODE.CW_R: this.Mode = RigParam.pmCW_U; return true; + case RIGMODE.LSB: this.Mode = RigParam.pmSSB_L; return true; + case RIGMODE.USB: this.Mode = RigParam.pmSSB_U; return true; + case RIGMODE.DIG: this.Mode = RigParam.pmDIG_L; return true; + case RIGMODE.DIG_R: this.Mode = RigParam.pmDIG_U; return true; + case RIGMODE.AM: this.Mode = RigParam.pmAM; return true; + case RIGMODE.FM: this.Mode = RigParam.pmFM; return true; + } + + } + catch (Exception ex) + { + } + + return false; + } + + public bool SetSplit(RIGSPLIT split) + { + try + { + switch (split) + { + case RIGSPLIT.SPLITOFF: this.Split = RigParam.pmSplitOff; return true; + case RIGSPLIT.SPLITON: this.Split = RigParam.pmSplitOn; return true; + } + } + catch (Exception ex) + { + + } + + + return false; + } + + public bool SetRit(RIGRIT rit) + { + try + { + switch (rit) + { + case RIGRIT.RITOFF: this.Rit = RigParam.pmRitOff; return true; + case RIGRIT.RITON: this.Rit = RigParam.pmRitOn; return true; + } + } + catch (Exception ex) + { + + } + + + return false; + } + + public bool SetVfo(RIGVFO vfo) + { + try + { + switch (vfo) + { + case RIGVFO.A: this.Vfo = RigParam.pmVfoA; return true; + case RIGVFO.B: this.Vfo = RigParam.pmVfoB; return true; + } + } + catch (Exception ex) + { + + } + + + return false; + } + + public bool SetRxFrequency(long rx) + { + try + { + if ((RigParam)this.Split == RigParam.pmSplitOff) + { + // check if pmFreq is writeable --> set Freq + if (this.IsParamWriteable(RigParam.pmFreq)) + { + this.Freq = (int)rx; + return true; + } + // check if pmFreqA is writeable --> set FreqA instead + if (this.IsParamWriteable(RigParam.pmFreqA)) + { + this.FreqA = (int)rx; + return true; + } + } + else + { + // check if pmFreqA is writeable --> set FreqA instead + if (this.IsParamWriteable(RigParam.pmFreqA)) + { + this.FreqA = (int)rx; + return true; + } + } + } + catch (Exception ex) + { + + } + + return false; + } + + public bool SetTxFrequency(long tx) + { + try + { + if ((RigParam)this.Split == RigParam.pmSplitOff) + { + // check if pmFreq is writeable --> set Freq + if (this.IsParamWriteable(RigParam.pmFreq)) + { + this.Freq = (int)tx; + return true; + } + // check if pmFreqA is writeable --> set FreqA instead + if (this.IsParamWriteable(RigParam.pmFreqA)) + { + this.FreqA = (int)tx; + return true; + } + } + else + { + // check if pmFreqB is writeable --> set FreqB instead + if (this.IsParamWriteable(RigParam.pmFreqB)) + { + this.FreqB = (int)tx; + return true; + } + } + } + catch (Exception ex) + { + + } + + return false; + } + + public bool IntSetSimplexMode(dynamic rig, long freq, RIGMODE mode) + { + return false; + } + + public bool SetSimplexMode(long freq, RIGMODE mode = RIGMODE.NONE) + { + + // set frequency and switch split off + try + { + if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmVfoAA)) + { + this.Vfo = RigParam.pmVfoAA; + this.FreqA = freq; + } + else if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmVfoA) && this.IsParamWriteable(RigParam.pmSplitOff)) + { + this.Vfo = RigParam.pmVfoA; + this.FreqA = freq; + } + else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoA) && this.IsParamWriteable(RigParam.pmVfoB)) + { + this.Vfo = RigParam.pmVfoB; + this.Freq = freq; + this.Vfo = RigParam.pmVfoA; + this.Freq = freq; + } + else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoEqual)) + { + this.Freq = freq; + this.Vfo = RigParam.pmVfoEqual; + } + else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoSwap)) + { + this.Vfo = RigParam.pmVfoSwap; + this.Freq = freq; + this.Vfo = RigParam.pmVfoSwap; + this.Freq = freq; + } + // Added by RA6UAZ for Icom Marine Radio NMEA Command + else if (this.IsParamWriteable(RigParam.pmFreq) && !this.IsParamWriteable(RigParam.pmVfoA) && this.IsParamWriteable(RigParam.pmFreqB)) + { + this.Freq = freq; + this.FreqB = freq; + } + else if (this.IsParamWriteable(RigParam.pmFreq)) + { + this.Freq = freq; + } + + if (this.IsParamWriteable(RigParam.pmSplitOff)) + { + this.Split = RigParam.pmSplitOff; + } + + // simply set mode on current VFO + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + + return true; + } + catch (Exception ex) + { + + } + + return false; + } + + private bool CanWriteMode() + { + // check if modes are writable + if (!this.IsParamWriteable(RigParam.pmCW_L)) + return false; + if (!this.IsParamWriteable(RigParam.pmCW_U)) + return false; + if (!this.IsParamWriteable(RigParam.pmSSB_L)) + return false; + if (!this.IsParamWriteable(RigParam.pmSSB_U)) + return false; + if (!this.IsParamWriteable(RigParam.pmDIG_L)) + return false; + if (!this.IsParamWriteable(RigParam.pmDIG_U)) + return false; + if (!this.IsParamWriteable(RigParam.pmAM)) + return false; + if (!this.IsParamWriteable(RigParam.pmFM)) + return false; + + return true; + } + + public bool SetSplitMode(long rxfreq, long txfreq, RIGMODE mode = RIGMODE.NONE) + { + //set rx and tx frequencies and split + try + { + // try to set mode on both Vfos via VfoEqual which is the easiest way + if (this.IsParamWriteable(RigParam.pmVfoEqual)) + { + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + this.Vfo = RigParam.pmVfoEqual; + } + } + + if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmFreqB) && this.IsParamWriteable(RigParam.pmVfoAB)) + { + // TS-570 + this.Vfo = RigParam.pmVfoAB; + this.FreqA = rxfreq; + this.FreqB = txfreq; + // try to set mode once for both VFOs + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + } + else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoEqual)) + { + // IC-746 + this.Freq = txfreq; + // should work fine for both VFOs because of VfoEqual + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + this.Vfo = RigParam.pmVfoEqual; + this.Freq = rxfreq; + } + else if (this.IsParamWriteable(RigParam.pmVfoB) && this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoA)) + { + // FT-100D + this.Vfo = RigParam.pmVfoB; + this.Freq = txfreq; + // should work fine for both VFOs because of switching to both VFOs + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + this.Vfo = RigParam.pmVfoA; + this.Freq = rxfreq; + // should work fine for both VFOs because of switching to both VFOs + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + } + else if (this.IsParamWriteable(RigParam.pmFreq) && this.IsParamWriteable(RigParam.pmVfoSwap)) + { + // FT-817 ? + this.Vfo = RigParam.pmVfoSwap; + this.Freq = txfreq; + // should work fine for both VFOs because of VfoSwap + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + this.Vfo = RigParam.pmVfoSwap; + this.Freq = rxfreq; + // should work fine for both VFOs because of VfoSwap + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + } + else if (this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmFreqB) && this.IsParamWriteable(RigParam.pmVfoA)) + { + //FT-1000 MP, IC-7610 + this.Vfo = RigParam.pmVfoA; + this.FreqA = rxfreq; + this.FreqB = txfreq; + // can set only mode on VFO A + if (CanWriteMode() && (mode != RIGMODE.NONE)) + { + this.SetMode(mode); + } + + } + // Added by RA6UAZ for Icom Marine Radio NMEA Command + else if (this.IsParamWriteable(RigParam.pmFreq) && !this.IsParamWriteable(RigParam.pmFreqA) && this.IsParamWriteable(RigParam.pmFreqB)) + { + this.Freq = rxfreq; + this.FreqB = txfreq; + } + + if (this.IsParamWriteable(RigParam.pmSplitOn)) + { + this.Split = RigParam.pmSplitOn; + } + + return true; + } + catch (Exception ex) + { + + } + + return false; + } + + public bool SetDopplerStrategy(DOPPLERSTRATEGY doppler) + { + DopplerStrategy = doppler; + return true; + } + + public bool EnterDoppler() + { + // return false if we are not online or rig not suitable + if (GetStatus() != RIGSTATUS.ONLINE) + return false; + + // save rig settings + SaveRigMode = this.GetMode(); + SaveRigSplit = this.GetSplit(); + SaveRigRit = this.GetRit(); + SaveRxFrequency = this.GetRxFrequency(); + SaveTxFrequency = this.GetTxFrequency(); + + SetSplitMode(SaveRxFrequency, SaveRxFrequency, SaveRigMode); + + return true; + } + + public bool LeaveDoppler() + { + // restore rig settings + if (SaveRigMode != RIGMODE.NONE) + SetMode(SaveRigMode); + if (SaveRigSplit != RIGSPLIT.NONE) + SetSplit(SaveRigSplit); + if (SaveRigRit != RIGRIT.NONE) + SetRit(SaveRigRit); + if (SaveRxFrequency > 0) + SetRxFrequency(SaveRxFrequency); + if (SaveTxFrequency > 0) + SetTxFrequency(SaveTxFrequency); + + SetSimplexMode(SaveRxFrequency, SaveRigMode); + + return true; + } + + + + public static List SupportedRigs() + { + List rigs = new List(); + List rigtypes = ScoutBase.CAT.OmniRig.SupportedRigs(); + foreach (string rigtype in rigtypes) + { + SupportedRig rig = new SupportedRig(); + rig.Type = "[Serial] " + rigtype; + rig.Model = rigtype; + rig.CATEngine = CATENGINE.SCOUTBASE; + rigs.Add(rig); + } + + // return list of rigs + return rigs; + } + } +} diff --git a/AirScout.CAT/SupportedRig.cs b/AirScout.CAT/SupportedRig.cs new file mode 100644 index 0000000..2bcb938 --- /dev/null +++ b/AirScout.CAT/SupportedRig.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace AirScout.CAT +{ + public class SupportedRig + { + public string Type { get; set; } = ""; + public string Model { get; set; } = ""; + public CATENGINE CATEngine { get; set; } = CATENGINE.NONE; + } +} diff --git a/AirScout.CAT/app.config b/AirScout.CAT/app.config new file mode 100644 index 0000000..fb57df7 --- /dev/null +++ b/AirScout.CAT/app.config @@ -0,0 +1,51 @@ + + + + +
+ + + + + + False + + + 500 + + + 500 + + + + + + + + + 9600 + + + 8 + + + NONE + + + ONE + + + LOW + + + LOW + + + 100 + + + 500 + + + + \ No newline at end of file diff --git a/AirScout.Core/AirScout.Core.csproj b/AirScout.Core/AirScout.Core.csproj index 92d4100..450865a 100644 --- a/AirScout.Core/AirScout.Core.csproj +++ b/AirScout.Core/AirScout.Core.csproj @@ -37,8 +37,8 @@ - - ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -73,12 +73,12 @@ - + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + compare server time with local time and calculate offset @@ -376,6 +375,8 @@ namespace AirScout.PlaneFeeds.Plugin.VirtualRadarServer long toffset = 0; try { + // deserialize JSON + dynamic root = JsonConvert.DeserializeObject(json); // get local time of request in milliseconds DateTime lt = DateTime.UtcNow; long ltime = (long)(lt - new DateTime(1970, 1, 1)).TotalMilliseconds; diff --git a/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj b/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj index a9f67a6..3f5037a 100644 --- a/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj +++ b/AirScout.PlaneFeeds/AirScout.PlaneFeeds.csproj @@ -59,8 +59,8 @@ - - ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -123,12 +123,12 @@ - + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + try to find one in the database + if (String.IsNullOrEmpty(dxlocstr)) + { + LocationDesignator ld = StationData.Database.LocationFindLastRecent(dxcallstr); + if (ld != null) + dxlocstr = ld.Loc; + } + // skip when loc is still invalid + if (!MaidenheadLocator.Check(dxlocstr)) + continue; + + // skip own callsign + if (dxcallstr == Callsign.Cut(Properties.Settings.Default.MyCall)) + continue; + + // find or create call & loc combination in station database + LocationDesignator dxcall = StationData.Database.LocationFindOrCreate(dxcallstr, dxlocstr); + double qrb = LatLon.Distance(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, dxcall.Lat, dxcall.Lon); + + // add to watchlist + int index = Properties.Settings.Default.Watchlist.IndexOf(dxcallstr, dxlocstr); + // reset remove flag if item found, add to watchlist if not + if (index >= 0) + { + Properties.Settings.Default.Watchlist[index].Remove = false; + Properties.Settings.Default.Watchlist[index].OutOfRange = qrb > Properties.Settings.Default.Path_MaxLength; + if (!Properties.Settings.Default.Watchlist[index].OutOfRange) + { + Properties.Settings.Default.Watchlist[index].Checked = checkstr == "1"; + } + } + else + { + if (qrb > Properties.Settings.Default.Path_MaxLength) + { + Properties.Settings.Default.Watchlist.Add(new WatchlistItem(dxcallstr, dxlocstr, true)); + } + else + { + Properties.Settings.Default.Watchlist.Add(new WatchlistItem(dxcallstr, dxlocstr, false, checkstr == "1")); + } + } + } + + // update watchlist in map + UpdateWatchlistInMap(); + + // update ListView control + RefreshWatchlistView(); + + // refresh paths + UpdatePaths(); + + // start playing if at least one active watch + if (Properties.Settings.Default.Watchlist.Find(item => item.Checked) != null) + { + if (PlayMode == AIRSCOUTPLAYMODE.PAUSE) + Play(); + } + + st.Stop(); + Log.WriteMessage("Processing ASADDWATCH: " + st.ElapsedMilliseconds.ToString() + " ms."); + } + catch (Exception ex) + { + Log.WriteMessage(ex.ToString(), LogLevel.Error); + } + } + + private void ASRemoveWatch(wtMessage msg) + { + // abort if in wtKST sync mode + if (Properties.Settings.Default.Watchlist_SyncWithKST) + return; + + // maintain watchlist + try + { + Stopwatch st = new Stopwatch(); + st.Start(); + + // check for empty call sign list --> remove all + if (!msg.Data.Contains(",")) + { + // mark all watchlist items to remove wich are not currently tracked + foreach (WatchlistItem item in Properties.Settings.Default.Watchlist) + { + // nasty!! Should never be null! + if (item == null) + continue; + item.Remove = true; + } + } + else + { + // split message + string[] a = msg.Data.Split(','); + // ignore band string so far + string qrgstr = a[0]; + for (int i = 1; i < a.Length; i++) + { + // get call + string dxcallstr = a[i].Trim().ToUpper(); + + // mark all watchlist items to remove wich are not currently tracked + foreach (WatchlistItem item in Properties.Settings.Default.Watchlist) + { + // nasty!! Should never be null! + if (item == null) + continue; + if (item.Call == dxcallstr) + item.Remove = true; + } + } + } + + // remove all items from watchlist which marked as remove + Properties.Settings.Default.Watchlist.RemoveAll(item => item.Remove); + + // update watchlist in map + UpdateWatchlistInMap(); + + // update ListView control + RefreshWatchlistView(); + + // refresh paths + UpdatePaths(); + + // stop playing if no more active watches + if (Properties.Settings.Default.Watchlist.Find(item => item.Checked) == null) + { + if (PlayMode == AIRSCOUTPLAYMODE.FORWARD) + Pause(); + } + + st.Stop(); + Log.WriteMessage("Processing ASREMOVEWATCH: " + st.ElapsedMilliseconds.ToString() + " ms."); + } + catch (Exception ex) + { + Log.WriteMessage(ex.ToString(), LogLevel.Error); + } + } + private void DispatchWinTestMsg(wtMessage msg) { // a Win-Test message was received by the background thread @@ -6237,6 +6904,18 @@ namespace AirScout // dispatch it to main thread bw_WinTestReceive.ReportProgress(1, msg); } + else if (msg.Msg == WTMESSAGES.ASADDWATCH) + { + // add call to watchlist + // dispatch it to main thread + bw_WinTestReceive.ReportProgress(1, msg); + } + else if (msg.Msg == WTMESSAGES.ASREMOVEWATCH) + { + // add call to watchlist + // dispatch it to main thread + bw_WinTestReceive.ReportProgress(1, msg); + } } private void bw_WinTestReceive_ProgressChanged(object sender, ProgressChangedEventArgs e) @@ -6251,7 +6930,11 @@ namespace AirScout if (msg.Msg == WTMESSAGES.ASSHOWPATH) ASShowPath(msg); else if (msg.Msg == WTMESSAGES.ASWATCHLIST) - ASSWatchlist(msg); + ASWatchlist(msg); + else if (msg.Msg == WTMESSAGES.ASADDWATCH) + ASAddWatch(msg); + else if (msg.Msg == WTMESSAGES.ASREMOVEWATCH) + ASRemoveWatch(msg); } private void bw_WinTestReceive_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) @@ -6519,9 +7202,11 @@ namespace AirScout throw new NullReferenceException("[UDP]: Client and/or IP endpoint not initialized."); wtMessage msg; msg = new wtMessage(WTMESSAGES.SETAZIMUTH, Properties.Settings.Default.Server_Name, "", "AUTO", " 00 " + az.ToString("000")); - msg = new wtMessage(WTMESSAGES.SETELEVATION, Properties.Settings.Default.Server_Name, "", "AUTO", " 00 " + el.ToString("000")); byte[] bytes = msg.ToBytes(); client.Send(bytes, bytes.Length, ip); + msg = new wtMessage(WTMESSAGES.SETELEVATION, Properties.Settings.Default.Server_Name, "", "AUTO", " 00 " + el.ToString("000")); + bytes = msg.ToBytes(); + client.Send(bytes, bytes.Length, ip); return true; } @@ -6619,167 +7304,463 @@ namespace AirScout private void bw_Track_DoWork(object sender, DoWorkEventArgs e) { Log.WriteMessage("Started."); + // name the thread for debugging if (String.IsNullOrEmpty(Thread.CurrentThread.Name)) Thread.CurrentThread.Name = "bw_Track"; + + // last recent calculated values + TrackValues oldvalues = null; + TRACKSTATUS oldstatus = TRACKSTATUS.NONE; + // clients and ports DdeClient ddeclient = null; UdpClient udpclient = null; IPEndPoint udpip = null; SerialPort serialport = null; + // error counters int ddeerr = 0; int udperr = 0; int serialerr = 0; int maxerr = 10; + // outer loop do { - // intializations - if (Properties.Settings.Default.Track_DDE_HRD) - { - ddeclient = new DdeClient("HRDRotator", "Position"); - int result = ddeclient.TryConnect(); - - } - if (Properties.Settings.Default.Track_UDP_WinTest) - { - udpclient = new UdpClient(); - udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_WinTest_Port); - } - else if (Properties.Settings.Default.Track_UDP_AirScout) - { - udpclient = new UdpClient(); - udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_AirScout_Port); - } - if ((Properties.Settings.Default.Track_Serial_GS232_AZ) || (Properties.Settings.Default.Track_Serial_GS232_AZEL)) - { - serialport = new SerialPort(Properties.Settings.Default.Track_Serial_Port, - Properties.Settings.Default.Track_Serial_Baudrate, - Parity.None, - 8, - StopBits.One); - serialport.Handshake = System.IO.Ports.Handshake.None; - serialport.NewLine = "\r"; - serialport.Encoding = Encoding.ASCII; - serialport.ReadTimeout = 1000; - serialport.WriteTimeout = 1000; - serialport.Open(); - } - // inner loop - while (Properties.Settings.Default.Track_Activate && !bw_Track.CancellationPending) - { - try - { - // tracking - double az = Properties.Settings.Default.Track_SetAz; - double el = Properties.Settings.Default.Track_SetEl; - if (!double.IsNaN(az) && !double.IsNaN(el)) - { - if (Properties.Settings.Default.Track_DDE_HRD) - Track_DDE_HRD(ddeclient, az, el); - if (Properties.Settings.Default.Track_UDP_WinTest) - Track_UDP_WinTest(udpclient, udpip, az, el); - if (Properties.Settings.Default.Track_UDP_AirScout) - Track_UDP_WinTest(udpclient, udpip, az, el); - if (Properties.Settings.Default.Track_Serial_GS232_AZ) - Track_SER__GS_232A_AZ(serialport, az); - if (Properties.Settings.Default.Track_Serial_GS232_AZEL) - Track_SER__GS_232A_AZEL(serialport, az, el); - if (Properties.Settings.Default.Track_File_Native) - Track_File_Native(az, el); - if (Properties.Settings.Default.Track_File_WSJT) - Track_File_WSJT(az, el); - } - else - { - // no tracking! - } - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - //report error - bw_Track.ReportProgress(-1, ex.Message); - // increment error counters and switch off in case of subsequent errors - if (ex.Message.StartsWith("[DDE]:")) - { - ddeerr++; - if (ddeerr > maxerr) - { - // switch off DDE - Properties.Settings.Default.Track_DDE_None = true; - Properties.Settings.Default.Track_DDE_HRD = false; - bw_Track.ReportProgress(-1, "Tracking via DDE disabled."); - } - } - if (ex.Message.StartsWith("[UDP]:")) - { - udperr++; - if (udperr > maxerr) - { - // switch off UDP - Properties.Settings.Default.Track_UDP_None = true; - Properties.Settings.Default.Track_UDP_WinTest = false; - Properties.Settings.Default.Track_UDP_AirScout = false; - bw_Track.ReportProgress(-1, "Tracking via UDP disabled."); - } - } - if (ex.Message.StartsWith("[Serial]:")) - { - serialerr++; - if (serialerr > maxerr) - { - // switch off Serial - Properties.Settings.Default.Track_Serial_None = true; - Properties.Settings.Default.Track_Serial_GS232_AZ = false; - Properties.Settings.Default.Track_Serial_GS232_AZEL = false; - bw_Track.ReportProgress(-1, "Tracking via Serial disabled."); - } - if (ex.Message.StartsWith("[Serial]:")) - serialerr++; - } - // leave inner loop - break; - } - Thread.Sleep(1000); - } - Thread.Sleep(1000); - // try to close all connections try { - if ((ddeclient != null) && (ddeclient.IsConnected)) - ddeclient.Disconnect(); - if (udpclient != null) - udpclient.Close(); - if ((serialport != null) && (serialport.IsOpen)) - serialport.Close(); + // intializations + if (Properties.Settings.Default.Track_DDE_HRD) + { + ddeclient = new DdeClient("HRDRotator", "Position"); + int result = ddeclient.TryConnect(); + + } + if (Properties.Settings.Default.Track_UDP_WinTest) + { + udpclient = new UdpClient(); + udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_WinTest_Port); + } + else if (Properties.Settings.Default.Track_UDP_AirScout) + { + udpclient = new UdpClient(); + udpip = new IPEndPoint(IPAddress.Broadcast, Properties.Settings.Default.Track_UDP_AirScout_Port); + } + if ((Properties.Settings.Default.Track_Serial_GS232_AZ) || (Properties.Settings.Default.Track_Serial_GS232_AZEL)) + { + serialport = new SerialPort(Properties.Settings.Default.Track_Serial_Port, + Properties.Settings.Default.Track_Serial_Baudrate, + System.IO.Ports.Parity.None, + 8, + System.IO.Ports.StopBits.One); + serialport.Handshake = System.IO.Ports.Handshake.None; + serialport.NewLine = "\r"; + serialport.Encoding = Encoding.ASCII; + serialport.ReadTimeout = 1000; + serialport.WriteTimeout = 1000; + serialport.Open(); + } + + // init OK --> ready for tracking + bw_Track.ReportProgress(1, TRACKSTATUS.STOPPED); + bw_Track.ReportProgress(2, ROTSTATUS.STOPPED); + + // inner loop + while (Properties.Settings.Default.Track_Activate && !bw_Track.CancellationPending) + { + try + { + // get current plane position and calculate set of tracking values + DateTime time = DateTime.UtcNow.AddSeconds(Properties.Settings.Default.Track_Offset); + TrackValues trackvalues = new TrackValues(); + trackvalues.Timestamp = time; + if (TrackMode == AIRSCOUTTRACKMODE.TRACK) + { + // invalidate oldvalues on plane change + if ((oldvalues != null) && (Properties.Settings.Default.Track_CurrentPlane != null) && (oldvalues.Hex != Properties.Settings.Default.Track_CurrentPlane)) + { + oldvalues = null; + } + // track plane --> get plane position and calculate values + PlaneInfo plane = Planes.Get(Properties.Settings.Default.Track_CurrentPlane, time, Properties.Settings.Default.Planes_Position_TTL); + if (plane != null) + { + trackvalues.Hex = Properties.Settings.Default.Track_CurrentPlane; + trackvalues.MyAzimuth = LatLon.Bearing(Properties.Settings.Default.MyLat, + Properties.Settings.Default.MyLon, + plane.Lat, + plane.Lon); + trackvalues.DXAzimuth = LatLon.Bearing(Properties.Settings.Default.DXLat, + Properties.Settings.Default.DXLon, + plane.Lat, + plane.Lon); + double myh = (GetElevation(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon) + Properties.Settings.Default.MyHeight); + double dxh = (GetElevation(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon) + Properties.Settings.Default.DXHeight); + double H = plane.Alt_m; + trackvalues.MyDistance = LatLon.Distance(Properties.Settings.Default.MyLat, Properties.Settings.Default.MyLon, plane.Lat, plane.Lon); + trackvalues.MySlantRange = Propagation.SlantRangeFromHeights( + myh, + Properties.Settings.Default.MyLat, + Properties.Settings.Default.MyLon, + plane.Lat, + plane.Lon, + H, + LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor); + trackvalues.MyElevation = Propagation.EpsilonFromHeights(myh, + trackvalues.MyDistance, + H, + LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor) + / Math.PI * 180; + trackvalues.DXDistance = LatLon.Distance(Properties.Settings.Default.DXLat, Properties.Settings.Default.DXLon, plane.Lat, plane.Lon); + trackvalues.DXSlantRange = Propagation.SlantRangeFromHeights( + dxh, + Properties.Settings.Default.DXLat, + Properties.Settings.Default.DXLon, + plane.Lat, + plane.Lon, + H, + LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor); + trackvalues.DXElevation = Propagation.EpsilonFromHeights(dxh, + trackvalues.MyDistance, + H, + LatLon.Earth.Radius * Properties.Settings.Default.Path_Band_Settings[Properties.Settings.Default.Band].K_Factor) + / Math.PI * 180; + + // calculate doppler, we need a last recent calculated values to calculate relative speed + if (oldvalues != null) + { + // get both resulting speeds in m/s + double timediff = (trackvalues.Timestamp - oldvalues.Timestamp).TotalSeconds; + double myspeed = 0; + double dxspeed = 0; + + if (timediff > 0) + { + myspeed = (oldvalues.MySlantRange - trackvalues.MySlantRange) * 1000.0 / timediff; + dxspeed = (oldvalues.DXSlantRange - trackvalues.DXSlantRange) * 1000.0 / timediff; + } + + // calculate both doppler shifts + trackvalues.MyDoppler = Propagation.DopplerShift(Bands.ToHz(Properties.Settings.Default.Band), myspeed); + trackvalues.DXDoppler = Propagation.DopplerShift(Bands.ToHz(Properties.Settings.Default.Band), dxspeed); + } + } + } + else if (TrackMode == AIRSCOUTTRACKMODE.SINGLE) + { + // single shot --> get values from settings and track only once + trackvalues.MyAzimuth = Properties.Settings.Default.Track_SetAz; + trackvalues.MyElevation = Properties.Settings.Default.Track_SetEl; + } + + // valid values --> start tracking + if (!double.IsNaN(trackvalues.MyAzimuth) && + !double.IsNaN(trackvalues.MyElevation) && + (trackvalues.MyAzimuth >= 0) && + (trackvalues.MyAzimuth < 360)) + { + // report track start + if (TrackMode == AIRSCOUTTRACKMODE.SINGLE) + { + bw_Track.ReportProgress(1, TRACKSTATUS.SINGLE); + } + else if (TrackMode == AIRSCOUTTRACKMODE.TRACK) + { + bw_Track.ReportProgress(1, TRACKSTATUS.TRACKING); + } + + // rotator control + try + { + // log tracking to console + Console.WriteLine("Tracking[" + DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss,fff") + "]: Az=" + trackvalues.MyAzimuth + ", El=" + trackvalues.MyElevation); + if (Properties.Settings.Default.Track_DDE_HRD) + { + bw_Track.ReportProgress(2, ROTSTATUS.TRACKING); + Track_DDE_HRD(ddeclient, trackvalues.MyAzimuth, trackvalues.MyElevation); + } + if (Properties.Settings.Default.Track_UDP_WinTest) + { + bw_Track.ReportProgress(2, ROTSTATUS.TRACKING); + Track_UDP_WinTest(udpclient, udpip, trackvalues.MyAzimuth, trackvalues.MyElevation); + } + if (Properties.Settings.Default.Track_UDP_AirScout) + { + bw_Track.ReportProgress(2, ROTSTATUS.TRACKING); + Track_UDP_AirScout(udpclient, udpip, trackvalues.MyAzimuth, trackvalues.MyElevation); + } + if (Properties.Settings.Default.Track_Serial_GS232_AZ) + { + bw_Track.ReportProgress(2, ROTSTATUS.TRACKING); + Track_SER__GS_232A_AZ(serialport, trackvalues.MyAzimuth); + } + if (Properties.Settings.Default.Track_Serial_GS232_AZEL) + { + bw_Track.ReportProgress(2, ROTSTATUS.TRACKING); + Track_SER__GS_232A_AZEL(serialport, trackvalues.MyAzimuth, trackvalues.MyElevation); + } + if (Properties.Settings.Default.Track_File_Native) + { + bw_Track.ReportProgress(2, ROTSTATUS.TRACKING); + Track_File_Native(trackvalues.MyAzimuth, trackvalues.MyElevation); + } + if (Properties.Settings.Default.Track_File_WSJT) + { + bw_Track.ReportProgress(2, ROTSTATUS.TRACKING); + Track_File_WSJT(trackvalues.MyAzimuth, trackvalues.MyElevation); + } + } + catch (Exception ex) + { + Log.WriteMessage(ex.ToString(), LogLevel.Error); + //report error + bw_Track.ReportProgress(-1, ex.Message); + // increment error counters and switch off in case of subsequent errors + if (ex.Message.StartsWith("[DDE]:")) + { + ddeerr++; + if (ddeerr > maxerr) + { + // switch off DDE + Properties.Settings.Default.Track_DDE_None = true; + Properties.Settings.Default.Track_DDE_HRD = false; + bw_Track.ReportProgress(-1, "Tracking via DDE disabled."); + bw_Track.ReportProgress(2, ROTSTATUS.ERROR); + bw_Track.ReportProgress(1, TRACKSTATUS.ERROR); + + } + } + if (ex.Message.StartsWith("[UDP]:")) + { + udperr++; + if (udperr > maxerr) + { + // switch off UDP + Properties.Settings.Default.Track_UDP_None = true; + Properties.Settings.Default.Track_UDP_WinTest = false; + Properties.Settings.Default.Track_UDP_AirScout = false; + bw_Track.ReportProgress(-1, "Tracking via UDP disabled."); + bw_Track.ReportProgress(2, ROTSTATUS.ERROR); + bw_Track.ReportProgress(1, TRACKSTATUS.ERROR); + } + } + if (ex.Message.StartsWith("[Serial]:")) + { + serialerr++; + if (serialerr > maxerr) + { + // switch off Serial + Properties.Settings.Default.Track_Serial_None = true; + Properties.Settings.Default.Track_Serial_GS232_AZ = false; + Properties.Settings.Default.Track_Serial_GS232_AZEL = false; + bw_Track.ReportProgress(-1, "Tracking via Serial disabled."); + bw_Track.ReportProgress(2, ROTSTATUS.ERROR); + bw_Track.ReportProgress(1, TRACKSTATUS.ERROR); + } + if (ex.Message.StartsWith("[Serial]:")) + serialerr++; + } + + } + + // doppler shift compensation if activated + if (Properties.Settings.Default.Doppler_Strategy_A) + { + trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq + + (long)trackvalues.MyDoppler + + (long)trackvalues.DXDoppler; + trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq; + } + else if (Properties.Settings.Default.Doppler_Strategy_B) + { + trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq; + trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq - + (long)trackvalues.MyDoppler - + (long)trackvalues.DXDoppler; + } + else if (Properties.Settings.Default.Doppler_Strategy_C) + { + trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq + + (long)trackvalues.MyDoppler + + (long)trackvalues.DXDoppler; + trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq - + (long)trackvalues.MyDoppler - + (long)trackvalues.DXDoppler; + } + else if (Properties.Settings.Default.Doppler_Strategy_D) + { + trackvalues.RXFrequency = Properties.Settings.Default.Doppler_DialFreq + + (long)trackvalues.MyDoppler; + trackvalues.TXFrequency = Properties.Settings.Default.Doppler_DialFreq - + (long)trackvalues.MyDoppler; + } + + // report values + bw_Track.ReportProgress(3, trackvalues); + + // store last values + oldvalues = trackvalues; + + // stop tracking when single shot + if (TrackMode == AIRSCOUTTRACKMODE.SINGLE) + { + bw_Track.ReportProgress(1, TRACKSTATUS.STOPPED); + bw_Track.ReportProgress(2, ROTSTATUS.STOPPED); + } + + } + else + { + // no tracking! + bw_Track.ReportProgress(1, TRACKSTATUS.STOPPED); + bw_Track.ReportProgress(2, ROTSTATUS.STOPPED); + } + } + catch (Exception ex) + { + // leave inner loop + bw_Track.ReportProgress(1, TRACKSTATUS.ERROR); + break; + } + Thread.Sleep(1000); + } + Thread.Sleep(Properties.Settings.Default.Track_Update); + } catch (Exception ex) { - Log.WriteMessage(ex.ToString(), LogLevel.Error); + bw_Track.ReportProgress(-1, "Track error: " + ex.Message); + bw_Track.ReportProgress(1, TRACKSTATUS.ERROR); } + } while (!bw_Track.CancellationPending); + + // try to close all connections + try + { + if ((ddeclient != null) && (ddeclient.IsConnected)) + ddeclient.Disconnect(); + if (udpclient != null) + udpclient.Close(); + if ((serialport != null) && (serialport.IsOpen)) + serialport.Close(); + } + catch (Exception ex) + { + Log.WriteMessage(ex.ToString(), LogLevel.Error); + } + + bw_Track.ReportProgress(1, TRACKSTATUS.NONE); + bw_Track.ReportProgress(2, ROTSTATUS.NONE); + Log.WriteMessage("Finished."); } private void bw_Track_ProgressChanged(object sender, ProgressChangedEventArgs e) { - if (e.ProgressPercentage < 0) + if (e.ProgressPercentage <= 0) { // report Error tsl_Status.Text = (string)e.UserState; } - if (e.ProgressPercentage == 1) + else if (e.ProgressPercentage == 1) { - // report Azimuth - ag_Azimuth.Value = (float)(double)e.UserState; + // report tracking status + TRACKSTATUS trackstatus = (TRACKSTATUS)e.UserState; + switch (trackstatus) + { + case TRACKSTATUS.NONE: + SayTrack("TRK", Color.DarkGray, SystemColors.Control); + break; + case TRACKSTATUS.STOPPED: +// TrackMode = AIRSCOUTTRACKMODE.NONE; + SayTrack("TRK", SystemColors.Control, Color.DarkGray); + break; + case TRACKSTATUS.SINGLE: + case TRACKSTATUS.TRACKING: + SayTrack("TRK", Color.White, Color.DarkGreen); + break; + case TRACKSTATUS.ERROR: + SayTrack("TRK", Color.Yellow, Color.Red); + break; + default: + SayTrack("TRK", Color.DarkGray, SystemColors.Control); + break; + } + + // restore settings when returning from tracking + if ((trackstatus == TRACKSTATUS.TRACKING) || (trackstatus == TRACKSTATUS.SINGLE)) + { + if (bw_CAT != null) + { + if (Properties.Settings.Default.Doppler_Strategy_A) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_A; + else if (Properties.Settings.Default.Doppler_Strategy_B) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_B; + else if (Properties.Settings.Default.Doppler_Strategy_C) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_C; + else if (Properties.Settings.Default.Doppler_Strategy_D) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_D; + + } + } + else + { + if (bw_CAT != null) + { + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_NONE; + } + } + + // save TrackStatus + TrackStatus = trackstatus; } - if (e.ProgressPercentage == 2) + else if (e.ProgressPercentage == 2) { - // report Elevation - ag_Elevation.Value = (float)(double)e.UserState; + // report Status + RotStatus = (ROTSTATUS)e.UserState; + switch (RotStatus) + { + case ROTSTATUS.STOPPED: + SayRot("ROT", SystemColors.Control, Color.DarkGray); + break; + case ROTSTATUS.TRACKING: + SayRot("ROT", Color.White, Color.DarkGreen); + break; + case ROTSTATUS.ERROR: + SayRot("ROT", Color.Yellow, Color.Red); + break; + default: + SayRot("ROT", Color.DarkGray, SystemColors.Control); + break; + } + } + else if (e.ProgressPercentage == 3) + { + // report track values + TrackValues = (TrackValues)e.UserState; + if (Properties.Settings.Default.Doppler_Strategy_A || + Properties.Settings.Default.Doppler_Strategy_B || + Properties.Settings.Default.Doppler_Strategy_C || + Properties.Settings.Default.Doppler_Strategy_D) + { + // adjust rig if frequencies are valid + if ((bw_CAT != null) && (TrackValues.RXFrequency != 0) && (TrackValues.TXFrequency != 0)) + { + if (Properties.Settings.Default.Doppler_Strategy_A) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_A; + if (Properties.Settings.Default.Doppler_Strategy_B) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_B; + if (Properties.Settings.Default.Doppler_Strategy_C) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_C; + if (Properties.Settings.Default.Doppler_Strategy_D) + bw_CAT.DopplerStrategy = DOPPLERSTRATEGY.DOPPLER_D; + bw_CAT.RxFrequency = TrackValues.RXFrequency; + bw_CAT.TxFrequency = TrackValues.TXFrequency; + } + } } } @@ -7514,6 +8495,95 @@ namespace AirScout } + #endregion + + #region CATUpdater + + private void bw_CATUpdater_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + if (e.ProgressPercentage <= 0) + { + Say((string)e.UserState); + } + } + + + #endregion + + #region CAT + + private void bw_CAT_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + if (e.ProgressPercentage <= 0) + { + Say((string)e.UserState); + } + else if (e.ProgressPercentage == 1) + { + // new rig status received + RIGSTATUS status = (RIGSTATUS)e.UserState; + switch (status) + { + case RIGSTATUS.ONLINE: + SayCAT("CAT", Color.White, Color.DarkGreen); + break; + case RIGSTATUS.ERROR: + case RIGSTATUS.NOCAT: + case RIGSTATUS.NOPORT: + case RIGSTATUS.NORIG: + case RIGSTATUS.NOTSUITABLE: + SayCAT("CAT", Color.Yellow, Color.Red); + break; + case RIGSTATUS.OFFLINE: + SayCAT("CAT", Color.White, Color.DarkOrange); + break; + default: + SayCAT("CAT", Color.DarkGray, SystemColors.Control); + break; + } + + RigStatus = status; + } + else if (e.ProgressPercentage == 2) + { + // new rig info received + IRig rig = (IRig)e.UserState; + + // save info if a valid tracking is not going on + if (TrackStatus != TRACKSTATUS.TRACKING) + { + if (rig != null) + { + ConnectedRig = rig; + // save latest rig settings to switch back after tracking + Properties.Settings.Default.Doppler_DialFreq = rig.GetRxFrequency(); + Properties.Settings.Default.Doppler_DialMode = rig.GetMode(); + Properties.Settings.Default.Doppler_DialSplit = rig.GetSplit(); + Properties.Settings.Default.Doppler_DialRit = rig.GetRit(); + } + } + + // report to status bar + NumberFormatInfo info = new NumberFormatInfo(); + info.NumberDecimalSeparator = ";"; + info.NumberGroupSeparator = "."; + Say("Rig reports RX: " + rig.GetRxFrequency().ToString(info) + ", TX: " + rig.GetTxFrequency().ToString(info) + "Hz, Mode: " + rig.GetMode().ToString() + ", RIT: " + ((rig.GetRit() == RIGRIT.RITON) ? "ON" : "OFF") +", Split: " + ((rig.GetSplit() == RIGSPLIT.SPLITON)? "ON" : "OFF")); + } + + // set Tooltip + if (ConnectedRig != null) + { + tsl_CAT.ToolTipText = ConnectedRig.CatVersion + "\n" + ConnectedRig.Settings.Type + "\n\n"; + } + else + { + tsl_CAT.ToolTipText = "CAT error!" + "\n\n"; + } + tsl_CAT.ToolTipText = tsl_CAT.ToolTipText + RigStatus.ToString(); + + } + + #endregion #endregion diff --git a/AirScout/MapDlg.resx b/AirScout/MapDlg.resx index 735db0f..3417064 100644 --- a/AirScout/MapDlg.resx +++ b/AirScout/MapDlg.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc - DQAAAk1TRnQBSQFMAgEBAwEAAagBCwGoAQsBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + DQAAAk1TRnQBSQFMAgEBAwEAARABDAEQAQwBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABgAMAASADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -193,7 +193,7 @@ iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHbSURBVGhD7Zg/ + aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHbSURBVGhD7Zg/ S8NAGIejIAo6OCiiVnqNRRQXxclV3QUXQcTRr+DaUXAQWpOYSXBx1dk/30Ad3ZwUpA7VXFJEqfEuvi1t c4kpmEuU94HfcO9d7+4Z7npEQRAEQRAEQRAkCGJUiOK6XdAMhBy5fVnTGYVm+lA1WlB1epUvVjNQEpIv 0uGcTl9U3d6AUrrgImyDLkuFaHQdyj5AhI9jsY5ntfIAdKWDJpHGJkf2nvqhu0GrCI99nz20FqE7efwi @@ -211,7 +211,7 @@ iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEfSURBVGhD7dg9 + aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEfSURBVGhD7dg9 a8JwFMXhbAVbbZ2EDqJpoIPfy6WDn6DgWHAQhEQy9ONZROsLjXt6lHtBRXxLSO4fzgN3sGg8P+ikR0RE RERElwTx+q0Tzp7kpbvaUfKB+/OjzVczWtflz+6RkFTO3aCjkIOg1nD1Im+zD6NPhei5E4Sx50L07Adh 5DUhegs/TPp+vHyWj9uBcbeE6P2aC8Koe0L07ARhTJYQvV1QMFrU5LHFw4g8QvTmpQXhy/MMWbbHyWcp @@ -222,7 +222,7 @@ iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACGSURBVGhD7dix + aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACGSURBVGhD7dix CcMwEEBRjeJ0WcqQPvMkIdt5Btm9E4E6XZHiMMS8B6p0J/xbFwAA4BfTu14vz/U+nNc295FBu4t22lt9 5HjTo96+H7GPpy59ZNDuop32Vh85npBgR0gGIcGOkAxCgh0hGYQEO0IyCAl2hGQQEuwIyXCekLP8fAAA gD9Sygf13QPKE81S/AAAAABJRU5ErkJggg== @@ -275,7 +275,7 @@ XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+ tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/ - 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOawAADmsBVP4NBgAAAVJJREFUaEPdmL1KA0EU + 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOaQAADmkBKwDOjwAAAVJJREFUaEPdmL1KA0EU RtMFTDRaCRaSrAsWvpeNhU8QsAykCAR2ZQsfzxDy5+Kmn4zghWX4srk4S2Y+PzjNaeYe2DTpGGP+BVAy AiUjUDICJSNQMgIlI1AyAiUjUDICJSNQMgIlI1AyAqWGtveUrfppUT6gtzRAqaGt3eflTZLvJ6O8+ra8 oLc0QKnBd06A+YUnZDj7ugYBPCEnAoR4Q5QBQnwhSbEbJFn1Zo/bOsc2EU9ILWDjHKkhfIhngBAuJJ1v @@ -287,7 +287,7 @@ iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - awAADmsBVP4NBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHmSURBVGhD7Zg/ + aQAADmkBKwDOjwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHmSURBVGhD7Zg/ S8NAGIerIAo6OCiiVnuJRfwziZOruAtOIuLoV3DtKDgIrUnMJLi4iqvoN1BHNycFqUM1lxZRNL4v9Opx vUTBkhzyPvCjzeUgvwcu16M5giAIgiAIgiA6TcGvj7KjqK95GU8UdTGvxppXZmG74Ybl8udimQ83h7QU y4287fJL2+Gl5pAZzDvVAcsNjkEiwiSJMI+voyzOM0qkcBgsWW54JyTiREb2HvtlWYwZIqWoG4tAoXe5 @@ -305,43 +305,43 @@ iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= + wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= + wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= + wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= + wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= + wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= + wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= + wAAADsABataJCQAAABBJREFUGFdjqMcBhpREfT0AN/NfQdTsp04AAAAASUVORK5CYII= @@ -352,7 +352,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACM - DAAAAk1TRnQBSQFMAwEBAAEQAQoBEAEKASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + DAAAAk1TRnQBSQFMAwEBAAF4AQoBeAEKASABAAEgAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA AYADAAEgAwABAQEAAQgGAAEQGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm diff --git a/AirScout/OptionsDlg.Designer.cs b/AirScout/OptionsDlg.Designer.cs index 30fdbe7..ab78318 100644 --- a/AirScout/OptionsDlg.Designer.cs +++ b/AirScout/OptionsDlg.Designer.cs @@ -43,15 +43,34 @@ this.btn_DeleteAllMapTiles = new System.Windows.Forms.Button(); this.btn_Options_Open_PluginDirectory = new System.Windows.Forms.Button(); this.btn_Options_Open_AirScoutDirectory = new System.Windows.Forms.Button(); + this.pb_Donate = new System.Windows.Forms.PictureBox(); + this.rb_Options_Track_UDP_AirScout = new System.Windows.Forms.RadioButton(); + this.tb_Options_Track_DialFreq = new ScoutBase.Core.LongTextBox(); + this.cb_Options_Locations_RestrictToAreaOfInterest = new System.Windows.Forms.CheckBox(); + this.cb_Options_Path_BestCaseElevation = new System.Windows.Forms.CheckBox(); + this.cb_Options_Planes_KeepHistory = new System.Windows.Forms.CheckBox(); + this.tb_Options_Track_Serial_Baudrate = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Track_Serial_Port = new System.Windows.Forms.TextBox(); + this.tb_Options_Track_Offset = new ScoutBase.Core.Int32TextBox(); + this.int32TextBox2 = new ScoutBase.Core.Int32TextBox(); + this.cb_Options_Track_Activate = new System.Windows.Forms.CheckBox(); this.tab_Options_Planes = new System.Windows.Forms.TabPage(); this.groupBox48 = new System.Windows.Forms.GroupBox(); + this.int32TextBox1 = new ScoutBase.Core.Int32TextBox(); this.label33 = new System.Windows.Forms.Label(); + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled = new System.Windows.Forms.CheckBox(); + this.tb_Options_Planes_Interval = new ScoutBase.Core.Int32TextBox(); this.label22 = new System.Windows.Forms.Label(); + this.cb_Options_Planes_LogErrors = new System.Windows.Forms.CheckBox(); this.groupBox40 = new System.Windows.Forms.GroupBox(); this.label55 = new System.Windows.Forms.Label(); + this.ud_Options_Planes_Position_DatabaseLifetime = new System.Windows.Forms.NumericUpDown(); this.label53 = new System.Windows.Forms.Label(); this.label32 = new System.Windows.Forms.Label(); this.groupBox38 = new System.Windows.Forms.GroupBox(); + this.tb_Options_Planes_Positions_TTL = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Planes_MaxAlt = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Planes_MinAlt = new ScoutBase.Core.Int32TextBox(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); @@ -59,6 +78,8 @@ this.label7 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.groupBox26 = new System.Windows.Forms.GroupBox(); + this.tb_Options_Planes_Filter_MinAlt = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Planes_Filter_Max_Circumcircle = new ScoutBase.Core.Int32TextBox(); this.label96 = new System.Windows.Forms.Label(); this.label94 = new System.Windows.Forms.Label(); this.label95 = new System.Windows.Forms.Label(); @@ -89,6 +110,7 @@ this.groupBox1 = new System.Windows.Forms.GroupBox(); this.btn_Options_Path_Export = new System.Windows.Forms.Button(); this.label147 = new System.Windows.Forms.Label(); + this.tb_Options_Path_MaxLength = new ScoutBase.Core.DoubleTextBox(); this.label131 = new System.Windows.Forms.Label(); this.label130 = new System.Windows.Forms.Label(); this.tb_Options_Path_StepWidth = new System.Windows.Forms.TextBox(); @@ -103,6 +125,8 @@ this.groupBox13 = new System.Windows.Forms.GroupBox(); this.gm_Options_SRTM1 = new GMap.NET.WindowsForms.GMapControl(); this.groupBox12 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Elevation_SRTM1_EnableCache = new System.Windows.Forms.CheckBox(); + this.cb_Options_Elevation_SRTM1 = new System.Windows.Forms.CheckBox(); this.tab_Options_SRTM3 = new System.Windows.Forms.TabPage(); this.groupBox42 = new System.Windows.Forms.GroupBox(); this.label100 = new System.Windows.Forms.Label(); @@ -111,6 +135,8 @@ this.groupBox9 = new System.Windows.Forms.GroupBox(); this.gm_Options_SRTM3 = new GMap.NET.WindowsForms.GMapControl(); this.groupBox8 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Elevation_SRTM3_EnableCache = new System.Windows.Forms.CheckBox(); + this.cb_Options_Elevation_SRTM3 = new System.Windows.Forms.CheckBox(); this.tab_Options_GLOBE = new System.Windows.Forms.TabPage(); this.groupBox41 = new System.Windows.Forms.GroupBox(); this.label99 = new System.Windows.Forms.Label(); @@ -119,16 +145,32 @@ this.groupBox11 = new System.Windows.Forms.GroupBox(); this.gm_Options_GLOBE = new GMap.NET.WindowsForms.GMapControl(); this.groupBox10 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Elevation_GLOBE_EnableCache = new System.Windows.Forms.CheckBox(); + this.cb_Options_Elevation_GLOBE = new System.Windows.Forms.CheckBox(); this.tab_Options_Map = new System.Windows.Forms.TabPage(); this.groupBox49 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Map_SmallMarkers = new System.Windows.Forms.CheckBox(); + this.cb_Options_Map_LabelCalls = new System.Windows.Forms.CheckBox(); this.groupBox37 = new System.Windows.Forms.GroupBox(); this.label34 = new System.Windows.Forms.Label(); + this.ud_Options_Charts_FontSize = new System.Windows.Forms.NumericUpDown(); this.groupBox39 = new System.Windows.Forms.GroupBox(); + this.tb_Options_Map_Update_Interval = new ScoutBase.Core.Int32TextBox(); this.label97 = new System.Windows.Forms.Label(); this.label29 = new System.Windows.Forms.Label(); this.groupBox23 = new System.Windows.Forms.GroupBox(); + this.ud_Options_Map_Opacity = new AirScout.PercentageControl(); + this.label148 = new System.Windows.Forms.Label(); + this.ud_Options_Map_Preloader_MaxZoom = new System.Windows.Forms.NumericUpDown(); this.label144 = new System.Windows.Forms.Label(); + this.cb_Options_Map_Preloader_Enabled = new System.Windows.Forms.CheckBox(); + this.cb_Options_Watchlist_Activate = new System.Windows.Forms.CheckBox(); + this.cb_Options_Airports_Activate = new System.Windows.Forms.CheckBox(); this.groupBox30 = new System.Windows.Forms.GroupBox(); + this.tb_Options_Planes_IconSize_S = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Planes_IconSize_H = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Planes_IconSize_M = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Planes_IconSize_L = new ScoutBase.Core.Int32TextBox(); this.label84 = new System.Windows.Forms.Label(); this.label83 = new System.Windows.Forms.Label(); this.label82 = new System.Windows.Forms.Label(); @@ -139,10 +181,23 @@ this.label76 = new System.Windows.Forms.Label(); this.label74 = new System.Windows.Forms.Label(); this.label75 = new System.Windows.Forms.Label(); + this.cb_Options_InfoWin_Angle = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Speed = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Squint = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Epsilon = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Dist = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Time = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Type = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Track = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Alt = new System.Windows.Forms.CheckBox(); + this.cb_Options_InfoWin_Position = new System.Windows.Forms.CheckBox(); this.groupBox22 = new System.Windows.Forms.GroupBox(); + this.rb_Options_InfoWin_Imperial = new System.Windows.Forms.RadioButton(); + this.rb_Options_InfoWin_Metric = new System.Windows.Forms.RadioButton(); this.label72 = new System.Windows.Forms.Label(); this.btn_Options_SelectFont = new System.Windows.Forms.Button(); this.label62 = new System.Windows.Forms.Label(); + this.tb_Options_Map_ToolTipFont = new System.Windows.Forms.TextBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.label61 = new System.Windows.Forms.Label(); this.cb_Options_Map_Provider = new System.Windows.Forms.ComboBox(); @@ -179,12 +234,17 @@ this.label28 = new System.Windows.Forms.Label(); this.label41 = new System.Windows.Forms.Label(); this.groupBox14 = new System.Windows.Forms.GroupBox(); + this.cb_Options_SmallLettersForSubSquares = new System.Windows.Forms.CheckBox(); + this.cb_Options_Locator_AutoLength = new System.Windows.Forms.CheckBox(); this.label48 = new System.Windows.Forms.Label(); + this.ud_Options_Locator_MaxLength = new System.Windows.Forms.NumericUpDown(); this.groupBox16 = new System.Windows.Forms.GroupBox(); this.label52 = new System.Windows.Forms.Label(); this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.btn_Options_DXMap = new System.Windows.Forms.Button(); this.tb_Options_DXLon = new ScoutBase.Core.DoubleTextBox(); this.tb_Options_DXLat = new ScoutBase.Core.DoubleTextBox(); + this.tb_Options_DXLoc = new ScoutBase.Core.LocatorTextBox(); this.tb_Options_DXCall = new ScoutBase.Core.CallsignTextBox(); this.label21 = new System.Windows.Forms.Label(); this.btn_Options_DXHorizon = new System.Windows.Forms.Button(); @@ -196,9 +256,11 @@ this.label43 = new System.Windows.Forms.Label(); this.label44 = new System.Windows.Forms.Label(); this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.btn_Options_MyMap = new System.Windows.Forms.Button(); this.btn_Options_MyHorizon = new System.Windows.Forms.Button(); this.tb_Options_MyLon = new ScoutBase.Core.DoubleTextBox(); this.tb_Options_MyLat = new ScoutBase.Core.DoubleTextBox(); + this.tb_Options_MyLoc = new ScoutBase.Core.LocatorTextBox(); this.tb_Options_MyCall = new ScoutBase.Core.CallsignTextBox(); this.label18 = new System.Windows.Forms.Label(); this.btn_MyCall_QRZ = new System.Windows.Forms.Button(); @@ -210,6 +272,10 @@ this.label11 = new System.Windows.Forms.Label(); this.tab_Options_General = new System.Windows.Forms.TabPage(); this.groupBox25 = new System.Windows.Forms.GroupBox(); + this.tb_Coverage_MaxLat = new ScoutBase.Core.DoubleTextBox(); + this.tb_Coverage_MinLat = new ScoutBase.Core.DoubleTextBox(); + this.tb_Coverage_MaxLon = new ScoutBase.Core.DoubleTextBox(); + this.tb_Coverage_MinLon = new ScoutBase.Core.DoubleTextBox(); this.gm_Options_Coverage = new GMap.NET.WindowsForms.GMapControl(); this.label35 = new System.Windows.Forms.Label(); this.label54 = new System.Windows.Forms.Label(); @@ -221,7 +287,9 @@ this.groupBox27 = new System.Windows.Forms.GroupBox(); this.label108 = new System.Windows.Forms.Label(); this.gb_Options_Database_Settings = new System.Windows.Forms.GroupBox(); + this.cb_Options_Background_Calculations_Enable = new System.Windows.Forms.CheckBox(); this.label47 = new System.Windows.Forms.Label(); + this.ud_Options_Database_Update_Period = new System.Windows.Forms.NumericUpDown(); this.rb_Options_Database_Update_Periodically = new System.Windows.Forms.RadioButton(); this.rb_Options_Database_Update_OnStartup = new System.Windows.Forms.RadioButton(); this.rb_Options_Database_Update_Never = new System.Windows.Forms.RadioButton(); @@ -291,6 +359,8 @@ this.groupBox52 = new System.Windows.Forms.GroupBox(); this.gm_Options_ASTER3 = new GMap.NET.WindowsForms.GMapControl(); this.groupBox53 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Elevation_ASTER3_EnableCache = new System.Windows.Forms.CheckBox(); + this.cb_Options_Elevation_ASTER3 = new System.Windows.Forms.CheckBox(); this.tba_Option_ASTER1 = new System.Windows.Forms.TabPage(); this.groupBox54 = new System.Windows.Forms.GroupBox(); this.label145 = new System.Windows.Forms.Label(); @@ -298,51 +368,161 @@ this.groupBox55 = new System.Windows.Forms.GroupBox(); this.gm_Options_ASTER1 = new GMap.NET.WindowsForms.GMapControl(); this.groupBox56 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Elevation_ASTER1_EnableCache = new System.Windows.Forms.CheckBox(); + this.cb_Options_Elevation_ASTER1 = new System.Windows.Forms.CheckBox(); this.tab_Options_Alarm = new System.Windows.Forms.TabPage(); this.groupBox21 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Alarm_Activate = new System.Windows.Forms.CheckBox(); this.groupBox19 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Alarm_PlaySound = new System.Windows.Forms.CheckBox(); this.cb_Options_Alarm_BringWindowToFront = new System.Windows.Forms.CheckBox(); this.groupBox20 = new System.Windows.Forms.GroupBox(); + this.tb_Options_Alarm_Distance = new ScoutBase.Core.DoubleTextBox(); this.label36 = new System.Windows.Forms.Label(); this.label56 = new System.Windows.Forms.Label(); this.tab_Options_Network = new System.Windows.Forms.TabPage(); this.label86 = new System.Windows.Forms.Label(); this.groupBox32 = new System.Windows.Forms.GroupBox(); + this.tb_Options_Webserver_Port = new ScoutBase.Core.Int32TextBox(); this.label85 = new System.Windows.Forms.Label(); this.groupBox31 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Server_Activate = new System.Windows.Forms.CheckBox(); this.label3 = new System.Windows.Forms.Label(); this.groupBox24 = new System.Windows.Forms.GroupBox(); + this.tb_Options_Server_Port = new ScoutBase.Core.Int32TextBox(); this.label6 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); + this.tb_Options_Server_Name = new System.Windows.Forms.TextBox(); this.tab_Options_SpecLab = new System.Windows.Forms.TabPage(); this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.tb_Options_SpecLab_UpdateInterval = new ScoutBase.Core.DoubleTextBox(); + this.tb_Options_SpecLab_F2 = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_SpecLab_F1 = new ScoutBase.Core.Int32TextBox(); this.label70 = new System.Windows.Forms.Label(); this.label71 = new System.Windows.Forms.Label(); this.label68 = new System.Windows.Forms.Label(); this.label69 = new System.Windows.Forms.Label(); this.label67 = new System.Windows.Forms.Label(); this.label66 = new System.Windows.Forms.Label(); + this.tb_SpecLab_FileName = new System.Windows.Forms.TextBox(); this.label63 = new System.Windows.Forms.Label(); this.label64 = new System.Windows.Forms.Label(); this.label65 = new System.Windows.Forms.Label(); + this.tb_SpecLab_URL = new System.Windows.Forms.TextBox(); + this.cb_SpecLab_Enabled = new System.Windows.Forms.CheckBox(); this.tab_Options_Track = new System.Windows.Forms.TabPage(); - this.groupBox36 = new System.Windows.Forms.GroupBox(); - this.groupBox35 = new System.Windows.Forms.GroupBox(); - this.groupBox34 = new System.Windows.Forms.GroupBox(); + this.gb_Options_Doppler = new System.Windows.Forms.GroupBox(); + this.label150 = new System.Windows.Forms.Label(); + this.label180 = new System.Windows.Forms.Label(); + this.label181 = new System.Windows.Forms.Label(); + this.label182 = new System.Windows.Forms.Label(); + this.label183 = new System.Windows.Forms.Label(); + this.label184 = new System.Windows.Forms.Label(); + this.rb_Options_Doppler_Strategy_None = new System.Windows.Forms.RadioButton(); + this.label178 = new System.Windows.Forms.Label(); + this.label179 = new System.Windows.Forms.Label(); + this.label176 = new System.Windows.Forms.Label(); + this.label177 = new System.Windows.Forms.Label(); + this.label174 = new System.Windows.Forms.Label(); + this.label175 = new System.Windows.Forms.Label(); + this.label172 = new System.Windows.Forms.Label(); + this.label173 = new System.Windows.Forms.Label(); + this.label170 = new System.Windows.Forms.Label(); + this.label171 = new System.Windows.Forms.Label(); + this.label168 = new System.Windows.Forms.Label(); + this.label169 = new System.Windows.Forms.Label(); + this.label166 = new System.Windows.Forms.Label(); + this.label167 = new System.Windows.Forms.Label(); + this.label165 = new System.Windows.Forms.Label(); + this.label163 = new System.Windows.Forms.Label(); + this.label164 = new System.Windows.Forms.Label(); + this.label162 = new System.Windows.Forms.Label(); + this.label161 = new System.Windows.Forms.Label(); + this.label160 = new System.Windows.Forms.Label(); + this.label159 = new System.Windows.Forms.Label(); + this.label158 = new System.Windows.Forms.Label(); + this.label157 = new System.Windows.Forms.Label(); + this.label156 = new System.Windows.Forms.Label(); + this.label155 = new System.Windows.Forms.Label(); + this.rb_Options_Doppler_Strategy_D = new System.Windows.Forms.RadioButton(); + this.rb_Options_Doppler_Strategy_C = new System.Windows.Forms.RadioButton(); + this.rb_Options_Doppler_Strategy_B = new System.Windows.Forms.RadioButton(); + this.rb_Options_Doppler_Strategy_A = new System.Windows.Forms.RadioButton(); + this.label154 = new System.Windows.Forms.Label(); + this.label153 = new System.Windows.Forms.Label(); + this.label152 = new System.Windows.Forms.Label(); + this.gb_Options_Track_File = new System.Windows.Forms.GroupBox(); + this.rb_Options_Track_File_None = new System.Windows.Forms.RadioButton(); + this.rb_Options_Track_File_WSJT = new System.Windows.Forms.RadioButton(); + this.rb_Options_Track_File_Native = new System.Windows.Forms.RadioButton(); + this.gb_Options_Track_DDE = new System.Windows.Forms.GroupBox(); + this.rb_Options_Track_DDE_None = new System.Windows.Forms.RadioButton(); + this.rb_Options_Track_DDE_HRD = new System.Windows.Forms.RadioButton(); + this.gb_Options_Track_UDP = new System.Windows.Forms.GroupBox(); + this.tb_Options_Track_UDP_AirScout_Port = new ScoutBase.Core.Int32TextBox(); + this.tb_Options_Track_UDP_WinTest_Port = new ScoutBase.Core.Int32TextBox(); this.label90 = new System.Windows.Forms.Label(); this.label89 = new System.Windows.Forms.Label(); - this.groupBox33 = new System.Windows.Forms.GroupBox(); + this.rb_Options_Track_UDP_None = new System.Windows.Forms.RadioButton(); + this.rb_Options_Track_UDP_WinTest = new System.Windows.Forms.RadioButton(); + this.gb_Options_Track_Serial = new System.Windows.Forms.GroupBox(); + this.rb_Options_Track_Serial_None = new System.Windows.Forms.RadioButton(); this.label88 = new System.Windows.Forms.Label(); this.label87 = new System.Windows.Forms.Label(); + this.rb_Options_Track_Serial_GS232_AZEL = new System.Windows.Forms.RadioButton(); + this.rb_Options_Track_Serial_GS232_AZ = new System.Windows.Forms.RadioButton(); this.groupBox28 = new System.Windows.Forms.GroupBox(); + this.label186 = new System.Windows.Forms.Label(); + this.label187 = new System.Windows.Forms.Label(); + this.label185 = new System.Windows.Forms.Label(); + this.label151 = new System.Windows.Forms.Label(); + this.tab_Options_CAT = new System.Windows.Forms.TabPage(); + this.gb_Options_CAT_PortSettings = new System.Windows.Forms.GroupBox(); + this.ud_Options_CAT_Timeout = new System.Windows.Forms.NumericUpDown(); + this.label149 = new System.Windows.Forms.Label(); + this.ud_Options_CAT_Poll = new System.Windows.Forms.NumericUpDown(); + this.label190 = new System.Windows.Forms.Label(); + this.label191 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_DTR = new System.Windows.Forms.ComboBox(); + this.label192 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_RTS = new System.Windows.Forms.ComboBox(); + this.label193 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_StopBits = new System.Windows.Forms.ComboBox(); + this.label194 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_Parity = new System.Windows.Forms.ComboBox(); + this.label195 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_DataBits = new System.Windows.Forms.ComboBox(); + this.label196 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_Baudrate = new System.Windows.Forms.ComboBox(); + this.label197 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_PortName = new System.Windows.Forms.ComboBox(); + this.gb_Options_CAT_RigType = new System.Windows.Forms.GroupBox(); + this.richTextBox5 = new System.Windows.Forms.RichTextBox(); + this.richTextBox4 = new System.Windows.Forms.RichTextBox(); + this.richTextBox3 = new System.Windows.Forms.RichTextBox(); + this.label199 = new System.Windows.Forms.Label(); + this.richTextBox2 = new System.Windows.Forms.RichTextBox(); + this.cb_Options_CAT_Rig = new System.Windows.Forms.ComboBox(); + this.gb_Options_CAT_OperatingInstructions = new System.Windows.Forms.GroupBox(); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.groupBox57 = new System.Windows.Forms.GroupBox(); + this.ud_Options_CAT_Update = new System.Windows.Forms.NumericUpDown(); + this.label189 = new System.Windows.Forms.Label(); + this.cb_Options_CAT_Activate = new System.Windows.Forms.CheckBox(); this.tab_Options_Watchlist = new System.Windows.Forms.TabPage(); this.groupBox50 = new System.Windows.Forms.GroupBox(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); this.label37 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.btn_Options_Watchlist_Clear = new System.Windows.Forms.Button(); this.groupBox17 = new System.Windows.Forms.GroupBox(); + this.cb_Options_Watchlist_SyncWithKST = new System.Windows.Forms.CheckBox(); + this.tb_Options_Watchlist_MaxCount = new ScoutBase.Core.Int32TextBox(); this.label31 = new System.Windows.Forms.Label(); this.btn_Options_Watchlist_Manage = new System.Windows.Forms.Button(); this.tab_Options_Misc = new System.Windows.Forms.TabPage(); + this.pictureBox4 = new System.Windows.Forms.PictureBox(); this.label143 = new System.Windows.Forms.Label(); this.groupBox15 = new System.Windows.Forms.GroupBox(); this.tab_Options_Info = new System.Windows.Forms.TabPage(); @@ -373,109 +553,13 @@ this.bw_StationDataUpdater = new System.ComponentModel.BackgroundWorker(); this.bw_ASTER3_MapUpdater = new System.ComponentModel.BackgroundWorker(); this.bw_ASTER1_MapUpdater = new System.ComponentModel.BackgroundWorker(); - this.label148 = new System.Windows.Forms.Label(); - this.tb_Coverage_MaxLat = new ScoutBase.Core.DoubleTextBox(); - this.tb_Coverage_MinLat = new ScoutBase.Core.DoubleTextBox(); - this.tb_Coverage_MaxLon = new ScoutBase.Core.DoubleTextBox(); - this.tb_Coverage_MinLon = new ScoutBase.Core.DoubleTextBox(); - this.cb_Options_Background_Calculations_Enable = new System.Windows.Forms.CheckBox(); - this.ud_Options_Database_Update_Period = new System.Windows.Forms.NumericUpDown(); - this.cb_Options_Locations_RestrictToAreaOfInterest = new System.Windows.Forms.CheckBox(); - this.cb_Options_SmallLettersForSubSquares = new System.Windows.Forms.CheckBox(); - this.cb_Options_Locator_AutoLength = new System.Windows.Forms.CheckBox(); - this.ud_Options_Locator_MaxLength = new System.Windows.Forms.NumericUpDown(); - this.tb_Options_DXLoc = new ScoutBase.Core.LocatorTextBox(); - this.tb_Options_MyLoc = new ScoutBase.Core.LocatorTextBox(); - this.cb_Options_Map_SmallMarkers = new System.Windows.Forms.CheckBox(); - this.cb_Options_Map_LabelCalls = new System.Windows.Forms.CheckBox(); - this.ud_Options_Charts_FontSize = new System.Windows.Forms.NumericUpDown(); - this.tb_Options_Map_Update_Interval = new ScoutBase.Core.Int32TextBox(); - this.ud_Options_Map_Preloader_MaxZoom = new System.Windows.Forms.NumericUpDown(); - this.cb_Options_Map_Preloader_Enabled = new System.Windows.Forms.CheckBox(); - this.cb_Options_Watchlist_Activate = new System.Windows.Forms.CheckBox(); - this.cb_Options_Airports_Activate = new System.Windows.Forms.CheckBox(); - this.tb_Options_Planes_IconSize_S = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Planes_IconSize_H = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Planes_IconSize_M = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Planes_IconSize_L = new ScoutBase.Core.Int32TextBox(); - this.cb_Options_InfoWin_Angle = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Speed = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Squint = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Epsilon = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Dist = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Time = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Type = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Track = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Alt = new System.Windows.Forms.CheckBox(); - this.cb_Options_InfoWin_Position = new System.Windows.Forms.CheckBox(); - this.rb_Options_InfoWin_Imperial = new System.Windows.Forms.RadioButton(); - this.rb_Options_InfoWin_Metric = new System.Windows.Forms.RadioButton(); - this.tb_Options_Map_ToolTipFont = new System.Windows.Forms.TextBox(); - this.cb_Options_Elevation_GLOBE_EnableCache = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_GLOBE = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_SRTM3_EnableCache = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_SRTM3 = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_SRTM1_EnableCache = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_SRTM1 = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_ASTER3_EnableCache = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_ASTER3 = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_ASTER1_EnableCache = new System.Windows.Forms.CheckBox(); - this.cb_Options_Elevation_ASTER1 = new System.Windows.Forms.CheckBox(); - this.tb_Options_Path_MaxLength = new ScoutBase.Core.DoubleTextBox(); - this.cb_Options_Path_BestCaseElevation = new System.Windows.Forms.CheckBox(); - this.int32TextBox1 = new ScoutBase.Core.Int32TextBox(); - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled = new System.Windows.Forms.CheckBox(); - this.tb_Options_Planes_Interval = new ScoutBase.Core.Int32TextBox(); - this.cb_Options_Planes_LogErrors = new System.Windows.Forms.CheckBox(); - this.cb_Options_Planes_KeepHistory = new System.Windows.Forms.CheckBox(); - this.ud_Options_Planes_Position_DatabaseLifetime = new System.Windows.Forms.NumericUpDown(); - this.tb_Options_Planes_Positions_TTL = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Planes_MaxAlt = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Planes_MinAlt = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Planes_Filter_MinAlt = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Planes_Filter_Max_Circumcircle = new ScoutBase.Core.Int32TextBox(); - this.cb_Options_Alarm_Activate = new System.Windows.Forms.CheckBox(); - this.cb_Options_Alarm_PlaySound = new System.Windows.Forms.CheckBox(); - this.tb_Options_Alarm_Distance = new ScoutBase.Core.DoubleTextBox(); - this.tb_Options_Webserver_Port = new ScoutBase.Core.Int32TextBox(); - this.cb_Options_Server_Activate = new System.Windows.Forms.CheckBox(); - this.tb_Options_Server_Port = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Server_Name = new System.Windows.Forms.TextBox(); - this.tb_Options_SpecLab_UpdateInterval = new ScoutBase.Core.DoubleTextBox(); - this.tb_Options_SpecLab_F2 = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_SpecLab_F1 = new ScoutBase.Core.Int32TextBox(); - this.tb_SpecLab_FileName = new System.Windows.Forms.TextBox(); - this.tb_SpecLab_URL = new System.Windows.Forms.TextBox(); - this.cb_SpecLab_Enabled = new System.Windows.Forms.CheckBox(); - this.rb_Options_Track_File_None = new System.Windows.Forms.RadioButton(); - this.rb_Options_Track_File_WSJT = new System.Windows.Forms.RadioButton(); - this.rb_Options_Track_File_Native = new System.Windows.Forms.RadioButton(); - this.rb_Options_Track_DDE_None = new System.Windows.Forms.RadioButton(); - this.rb_Options_Track_DDE_HRD = new System.Windows.Forms.RadioButton(); - this.tb_Options_Track_UDP_AirScout_Port = new ScoutBase.Core.Int32TextBox(); - this.tb_Options_Track_UDP_WinTest_Port = new ScoutBase.Core.Int32TextBox(); - this.rb_Options_Track_UDP_None = new System.Windows.Forms.RadioButton(); - this.rb_Options_Track_UDP_AirScout = new System.Windows.Forms.RadioButton(); - this.rb_Options_Track_UDP_WinTest = new System.Windows.Forms.RadioButton(); - this.tb_Options_Track_Serial_Baudrate = new ScoutBase.Core.Int32TextBox(); - this.rb_Options_Track_Serial_None = new System.Windows.Forms.RadioButton(); - this.tb_Options_Track_Serial_Port = new System.Windows.Forms.TextBox(); - this.rb_Options_Track_Serial_GS232_AZEL = new System.Windows.Forms.RadioButton(); - this.rb_Options_Track_Serial_GS232_AZ = new System.Windows.Forms.RadioButton(); - this.cb_Options_Track_Activate = new System.Windows.Forms.CheckBox(); - this.cb_Options_Watchlist_SyncWithKST = new System.Windows.Forms.CheckBox(); - this.tb_Options_Watchlist_MaxCount = new ScoutBase.Core.Int32TextBox(); - this.btn_Options_DXMap = new System.Windows.Forms.Button(); - this.btn_Options_MyMap = new System.Windows.Forms.Button(); - this.pictureBox3 = new System.Windows.Forms.PictureBox(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.pb_Donate = new System.Windows.Forms.PictureBox(); - this.pictureBox4 = new System.Windows.Forms.PictureBox(); - this.ud_Options_Map_Opacity = new AirScout.PercentageControl(); + this.cb_Options_Locators_Activate = new System.Windows.Forms.CheckBox(); + this.cb_Options_Distances_Activated = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).BeginInit(); this.tab_Options_Planes.SuspendLayout(); this.groupBox48.SuspendLayout(); this.groupBox40.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).BeginInit(); this.groupBox38.SuspendLayout(); this.groupBox26.SuspendLayout(); this.groupBox6.SuspendLayout(); @@ -497,8 +581,11 @@ this.tab_Options_Map.SuspendLayout(); this.groupBox49.SuspendLayout(); this.groupBox37.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).BeginInit(); this.groupBox39.SuspendLayout(); this.groupBox23.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).BeginInit(); this.groupBox30.SuspendLayout(); this.groupBox7.SuspendLayout(); this.groupBox29.SuspendLayout(); @@ -510,6 +597,7 @@ this.groupBox45.SuspendLayout(); this.groupBox44.SuspendLayout(); this.groupBox14.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).BeginInit(); this.groupBox16.SuspendLayout(); this.groupBox5.SuspendLayout(); this.groupBox4.SuspendLayout(); @@ -520,6 +608,7 @@ this.groupBox47.SuspendLayout(); this.groupBox27.SuspendLayout(); this.gb_Options_Database_Settings.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).BeginInit(); this.gb_Options_Database_Info.SuspendLayout(); this.tab_Options_ASTER3.SuspendLayout(); this.groupBox51.SuspendLayout(); @@ -540,29 +629,31 @@ this.tab_Options_SpecLab.SuspendLayout(); this.groupBox3.SuspendLayout(); this.tab_Options_Track.SuspendLayout(); - this.groupBox36.SuspendLayout(); - this.groupBox35.SuspendLayout(); - this.groupBox34.SuspendLayout(); - this.groupBox33.SuspendLayout(); + this.gb_Options_Doppler.SuspendLayout(); + this.gb_Options_Track_File.SuspendLayout(); + this.gb_Options_Track_DDE.SuspendLayout(); + this.gb_Options_Track_UDP.SuspendLayout(); + this.gb_Options_Track_Serial.SuspendLayout(); this.groupBox28.SuspendLayout(); + this.tab_Options_CAT.SuspendLayout(); + this.gb_Options_CAT_PortSettings.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Timeout)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Poll)).BeginInit(); + this.gb_Options_CAT_RigType.SuspendLayout(); + this.gb_Options_CAT_OperatingInstructions.SuspendLayout(); + this.groupBox57.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Update)).BeginInit(); this.tab_Options_Watchlist.SuspendLayout(); this.groupBox50.SuspendLayout(); - this.groupBox17.SuspendLayout(); - this.tab_Options_Misc.SuspendLayout(); - this.groupBox15.SuspendLayout(); - this.tab_Options_Info.SuspendLayout(); - this.ss_Options.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).BeginInit(); + this.groupBox17.SuspendLayout(); + this.tab_Options_Misc.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).BeginInit(); + this.groupBox15.SuspendLayout(); + this.tab_Options_Info.SuspendLayout(); + this.ss_Options.SuspendLayout(); this.SuspendLayout(); // // btn_Options_OK @@ -708,6 +799,176 @@ this.btn_Options_Open_AirScoutDirectory.UseVisualStyleBackColor = true; this.btn_Options_Open_AirScoutDirectory.Click += new System.EventHandler(this.btn_Options_Open_AirScoutDirectory_Click); // + // pb_Donate + // + this.pb_Donate.Image = ((System.Drawing.Image)(resources.GetObject("pb_Donate.Image"))); + this.pb_Donate.InitialImage = ((System.Drawing.Image)(resources.GetObject("pb_Donate.InitialImage"))); + this.pb_Donate.Location = new System.Drawing.Point(18, 272); + this.pb_Donate.Name = "pb_Donate"; + this.pb_Donate.Size = new System.Drawing.Size(306, 113); + this.pb_Donate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pb_Donate.TabIndex = 38; + this.pb_Donate.TabStop = false; + this.tt_Options.SetToolTip(this.pb_Donate, "Click here to open a browser window with link."); + this.pb_Donate.Click += new System.EventHandler(this.pb_Donate_Click); + // + // rb_Options_Track_UDP_AirScout + // + this.rb_Options_Track_UDP_AirScout.AutoSize = true; + this.rb_Options_Track_UDP_AirScout.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_UDP_AirScout.Location = new System.Drawing.Point(17, 65); + this.rb_Options_Track_UDP_AirScout.Name = "rb_Options_Track_UDP_AirScout"; + this.rb_Options_Track_UDP_AirScout.Size = new System.Drawing.Size(180, 17); + this.rb_Options_Track_UDP_AirScout.TabIndex = 7; + this.rb_Options_Track_UDP_AirScout.Tag = ""; + this.rb_Options_Track_UDP_AirScout.Text = "UDP Broadcast (AirScout) Az/El "; + this.tt_Options.SetToolTip(this.rb_Options_Track_UDP_AirScout, "Not implemented yet"); + this.rb_Options_Track_UDP_AirScout.UseVisualStyleBackColor = true; + this.rb_Options_Track_UDP_AirScout.CheckedChanged += new System.EventHandler(this.gb_Options_Track_UDP_CheckedChanged); + // + // tb_Options_Track_DialFreq + // + this.tb_Options_Track_DialFreq.BackColor = System.Drawing.Color.Gray; + this.tb_Options_Track_DialFreq.Font = new System.Drawing.Font("Courier New", 15.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Track_DialFreq.ForeColor = System.Drawing.Color.Chartreuse; + this.tb_Options_Track_DialFreq.FormatSpecifier = "F0"; + this.tb_Options_Track_DialFreq.Location = new System.Drawing.Point(278, 34); + this.tb_Options_Track_DialFreq.MaxValue = ((long)(0)); + this.tb_Options_Track_DialFreq.MinValue = ((long)(0)); + this.tb_Options_Track_DialFreq.Name = "tb_Options_Track_DialFreq"; + this.tb_Options_Track_DialFreq.Size = new System.Drawing.Size(296, 31); + this.tb_Options_Track_DialFreq.TabIndex = 20; + this.tb_Options_Track_DialFreq.Text = "0"; + this.tt_Options.SetToolTip(this.tb_Options_Track_DialFreq, "This is the RX frequency of your rig. To change this, simply dial on your rig whe" + + "n not in tracking mode."); + this.tb_Options_Track_DialFreq.Value = ((long)(0)); + this.tb_Options_Track_DialFreq.TextChanged += new System.EventHandler(this.tb_Options_CAT_DialFreq_TextChanged); + // + // cb_Options_Locations_RestrictToAreaOfInterest + // + this.cb_Options_Locations_RestrictToAreaOfInterest.AutoSize = true; + this.cb_Options_Locations_RestrictToAreaOfInterest.Checked = global::AirScout.Properties.Settings.Default.Location_RestrictToAreaOfInterest; + this.cb_Options_Locations_RestrictToAreaOfInterest.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Locations_RestrictToAreaOfInterest.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Location_RestrictToAreaOfInterest", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Locations_RestrictToAreaOfInterest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Locations_RestrictToAreaOfInterest.Location = new System.Drawing.Point(12, 58); + this.cb_Options_Locations_RestrictToAreaOfInterest.Name = "cb_Options_Locations_RestrictToAreaOfInterest"; + this.cb_Options_Locations_RestrictToAreaOfInterest.Size = new System.Drawing.Size(230, 17); + this.cb_Options_Locations_RestrictToAreaOfInterest.TabIndex = 12; + this.cb_Options_Locations_RestrictToAreaOfInterest.Text = "Restrict locations to current Area of Interest"; + this.tt_Options.SetToolTip(this.cb_Options_Locations_RestrictToAreaOfInterest, "Restrict stations kept in the database to Area of Interest \r\n(all other stations" + + " will be removed during the update process)"); + this.cb_Options_Locations_RestrictToAreaOfInterest.UseVisualStyleBackColor = true; + // + // cb_Options_Path_BestCaseElevation + // + this.cb_Options_Path_BestCaseElevation.AutoSize = true; + this.cb_Options_Path_BestCaseElevation.Checked = global::AirScout.Properties.Settings.Default.Path_BestCaseElevation; + this.cb_Options_Path_BestCaseElevation.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Path_BestCaseElevation.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Path_BestCaseElevation", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Path_BestCaseElevation.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Path_BestCaseElevation.Location = new System.Drawing.Point(6, 411); + this.cb_Options_Path_BestCaseElevation.Name = "cb_Options_Path_BestCaseElevation"; + this.cb_Options_Path_BestCaseElevation.Size = new System.Drawing.Size(438, 17); + this.cb_Options_Path_BestCaseElevation.TabIndex = 28; + this.cb_Options_Path_BestCaseElevation.Tag = ""; + this.cb_Options_Path_BestCaseElevation.Text = "Use best case elevation from grid square for both stations if precise location is" + + " unknown"; + this.tt_Options.SetToolTip(this.cb_Options_Path_BestCaseElevation, "If an exact position of a station is not available, use highest available elevati" + + "on within the given grid square. \r\nThis position is ONLY used for path calculati" + + "on and is not kept in database."); + this.cb_Options_Path_BestCaseElevation.UseVisualStyleBackColor = true; + // + // cb_Options_Planes_KeepHistory + // + this.cb_Options_Planes_KeepHistory.AutoSize = true; + this.cb_Options_Planes_KeepHistory.Checked = global::AirScout.Properties.Settings.Default.Planes_KeepHistory; + this.cb_Options_Planes_KeepHistory.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_KeepHistory", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Planes_KeepHistory.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Planes_KeepHistory.Location = new System.Drawing.Point(18, 81); + this.cb_Options_Planes_KeepHistory.Name = "cb_Options_Planes_KeepHistory"; + this.cb_Options_Planes_KeepHistory.Size = new System.Drawing.Size(156, 17); + this.cb_Options_Planes_KeepHistory.TabIndex = 4; + this.cb_Options_Planes_KeepHistory.Text = "Keep Plane Position History"; + this.tt_Options.SetToolTip(this.cb_Options_Planes_KeepHistory, "Check this option to keep plane positions in database for history analysis.\r\nCAUT" + + "ION! This will need lot of CPU performance and space on disk!"); + this.cb_Options_Planes_KeepHistory.UseVisualStyleBackColor = true; + // + // tb_Options_Track_Serial_Baudrate + // + this.tb_Options_Track_Serial_Baudrate.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Serial_Baudrate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Track_Serial_Baudrate.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Track_Serial_Baudrate.FormatSpecifier = "F0"; + this.tb_Options_Track_Serial_Baudrate.Location = new System.Drawing.Point(190, 40); + this.tb_Options_Track_Serial_Baudrate.MaxValue = 115200; + this.tb_Options_Track_Serial_Baudrate.MinValue = 0; + this.tb_Options_Track_Serial_Baudrate.Name = "tb_Options_Track_Serial_Baudrate"; + this.tb_Options_Track_Serial_Baudrate.Size = new System.Drawing.Size(72, 22); + this.tb_Options_Track_Serial_Baudrate.TabIndex = 11; + this.tb_Options_Track_Serial_Baudrate.Text = "4800"; + this.tt_Options.SetToolTip(this.tb_Options_Track_Serial_Baudrate, "Set the serial port baudrate for rotator control here.\\nBe sure that the baudrate" + + " is supported."); + this.tb_Options_Track_Serial_Baudrate.Value = global::AirScout.Properties.Settings.Default.Track_Serial_Baudrate; + // + // tb_Options_Track_Serial_Port + // + this.tb_Options_Track_Serial_Port.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.tb_Options_Track_Serial_Port.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Track_Serial_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Track_Serial_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Track_Serial_Port.Location = new System.Drawing.Point(190, 17); + this.tb_Options_Track_Serial_Port.Name = "tb_Options_Track_Serial_Port"; + this.tb_Options_Track_Serial_Port.Size = new System.Drawing.Size(54, 22); + this.tb_Options_Track_Serial_Port.TabIndex = 6; + this.tb_Options_Track_Serial_Port.Tag = ""; + this.tb_Options_Track_Serial_Port.Text = global::AirScout.Properties.Settings.Default.Track_Serial_Port; + this.tt_Options.SetToolTip(this.tb_Options_Track_Serial_Port, "Set the serial port for rotator control here.\\nBe sure that the port exists on yo" + + "ur computer."); + // + // tb_Options_Track_Offset + // + this.tb_Options_Track_Offset.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Offset", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Track_Offset.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Track_Offset.FormatSpecifier = "F0"; + this.tb_Options_Track_Offset.Location = new System.Drawing.Point(569, 17); + this.tb_Options_Track_Offset.MaxValue = 30; + this.tb_Options_Track_Offset.MinValue = -30; + this.tb_Options_Track_Offset.Name = "tb_Options_Track_Offset"; + this.tb_Options_Track_Offset.Size = new System.Drawing.Size(43, 22); + this.tb_Options_Track_Offset.TabIndex = 57; + this.tb_Options_Track_Offset.Text = "0"; + this.tt_Options.SetToolTip(this.tb_Options_Track_Offset, "Allows you to set an offset in time when calculating aircraft position.\\n Use thi" + + "s to compensate delay in your rotator control."); + this.tb_Options_Track_Offset.Value = global::AirScout.Properties.Settings.Default.Track_Offset; + // + // int32TextBox2 + // + this.int32TextBox2.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.int32TextBox2.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.int32TextBox2.FormatSpecifier = "F0"; + this.int32TextBox2.Location = new System.Drawing.Point(332, 17); + this.int32TextBox2.MaxValue = 10000; + this.int32TextBox2.MinValue = 100; + this.int32TextBox2.Name = "int32TextBox2"; + this.int32TextBox2.Size = new System.Drawing.Size(48, 22); + this.int32TextBox2.TabIndex = 1; + this.int32TextBox2.Text = "1000"; + this.tt_Options.SetToolTip(this.int32TextBox2, "Set the tracling update refresh rate.\\nBe sure that your rotator control and your" + + " rig can handle this rate."); + this.int32TextBox2.Value = global::AirScout.Properties.Settings.Default.Track_Update; + // + // cb_Options_Track_Activate + // + this.cb_Options_Track_Activate.Checked = global::AirScout.Properties.Settings.Default.Track_Activate; + this.cb_Options_Track_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Track_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Track_Activate.Location = new System.Drawing.Point(13, 15); + this.cb_Options_Track_Activate.Name = "cb_Options_Track_Activate"; + this.cb_Options_Track_Activate.Size = new System.Drawing.Size(129, 24); + this.cb_Options_Track_Activate.TabIndex = 0; + this.cb_Options_Track_Activate.Text = "Activate Tracking"; + this.tt_Options.SetToolTip(this.cb_Options_Track_Activate, "Click here to activate/deactivate tracking"); + this.cb_Options_Track_Activate.CheckedChanged += new System.EventHandler(this.cb_Options_Track_Activate_CheckedChanged); + // // tab_Options_Planes // this.tab_Options_Planes.BackColor = System.Drawing.SystemColors.Control; @@ -740,6 +1001,20 @@ this.groupBox48.TabStop = false; this.groupBox48.Text = "General Plane Feed Settings"; // + // int32TextBox1 + // + this.int32TextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_MaxErrorDist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.int32TextBox1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.int32TextBox1.FormatSpecifier = "F0"; + this.int32TextBox1.Location = new System.Drawing.Point(199, 84); + this.int32TextBox1.MaxValue = 600; + this.int32TextBox1.MinValue = 10; + this.int32TextBox1.Name = "int32TextBox1"; + this.int32TextBox1.Size = new System.Drawing.Size(52, 22); + this.int32TextBox1.TabIndex = 46; + this.int32TextBox1.Text = "10"; + this.int32TextBox1.Value = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_MaxErrorDist; + // // label33 // this.label33.AutoSize = true; @@ -750,6 +1025,34 @@ this.label33.TabIndex = 45; this.label33.Text = "Max. allowed distance between \r\nreported and estimated position [km]:"; // + // cb_Options_Planes_ExtendedPlausibilityCheck_Enabled + // + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.AutoSize = true; + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Checked = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_Enabled; + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Location = new System.Drawing.Point(13, 53); + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Name = "cb_Options_Planes_ExtendedPlausibilityCheck_Enabled"; + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Size = new System.Drawing.Size(256, 17); + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.TabIndex = 44; + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Text = "Enable extended plausibility check of aircraft info"; + this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.UseVisualStyleBackColor = true; + // + // tb_Options_Planes_Interval + // + this.tb_Options_Planes_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Interval", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_Interval.FormatSpecifier = "F0"; + this.tb_Options_Planes_Interval.Location = new System.Drawing.Point(199, 22); + this.tb_Options_Planes_Interval.MaxValue = 600; + this.tb_Options_Planes_Interval.MinValue = 10; + this.tb_Options_Planes_Interval.Name = "tb_Options_Planes_Interval"; + this.tb_Options_Planes_Interval.Size = new System.Drawing.Size(52, 22); + this.tb_Options_Planes_Interval.TabIndex = 43; + this.tb_Options_Planes_Interval.Text = "60"; + this.tb_Options_Planes_Interval.Value = global::AirScout.Properties.Settings.Default.Planes_Interval; + // // label22 // this.label22.AutoSize = true; @@ -760,6 +1063,19 @@ this.label22.TabIndex = 35; this.label22.Text = "Interval [sec]:"; // + // cb_Options_Planes_LogErrors + // + this.cb_Options_Planes_LogErrors.AutoSize = true; + this.cb_Options_Planes_LogErrors.Checked = global::AirScout.Properties.Settings.Default.Planes_LogErrors; + this.cb_Options_Planes_LogErrors.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_LogErrors", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Planes_LogErrors.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Planes_LogErrors.Location = new System.Drawing.Point(12, 118); + this.cb_Options_Planes_LogErrors.Name = "cb_Options_Planes_LogErrors"; + this.cb_Options_Planes_LogErrors.Size = new System.Drawing.Size(249, 17); + this.cb_Options_Planes_LogErrors.TabIndex = 0; + this.cb_Options_Planes_LogErrors.Text = "Log errors as warnings to AirScout\'s main logfile"; + this.cb_Options_Planes_LogErrors.UseVisualStyleBackColor = true; + // // groupBox40 // this.groupBox40.Controls.Add(this.cb_Options_Planes_KeepHistory); @@ -784,6 +1100,26 @@ this.label55.TabIndex = 3; this.label55.Text = "Aircraft positions older than above entered value will be deleted on next startup" + " (0 = forever)."; + // + // ud_Options_Planes_Position_DatabaseLifetime + // + this.ud_Options_Planes_Position_DatabaseLifetime.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "AircraftDatabase_MaxDaysLifetime", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ud_Options_Planes_Position_DatabaseLifetime.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_Planes_Position_DatabaseLifetime.Location = new System.Drawing.Point(199, 14); + this.ud_Options_Planes_Position_DatabaseLifetime.Maximum = new decimal(new int[] { + 365, + 0, + 0, + 0}); + this.ud_Options_Planes_Position_DatabaseLifetime.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.ud_Options_Planes_Position_DatabaseLifetime.Name = "ud_Options_Planes_Position_DatabaseLifetime"; + this.ud_Options_Planes_Position_DatabaseLifetime.Size = new System.Drawing.Size(49, 22); + this.ud_Options_Planes_Position_DatabaseLifetime.TabIndex = 2; + this.ud_Options_Planes_Position_DatabaseLifetime.Value = global::AirScout.Properties.Settings.Default.AircraftDatabase_MaxDaysLifetime; // // label53 // @@ -824,6 +1160,48 @@ this.groupBox38.TabStop = false; this.groupBox38.Text = "Plane Position Database Filters"; // + // tb_Options_Planes_Positions_TTL + // + this.tb_Options_Planes_Positions_TTL.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Position_TTL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_Positions_TTL.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_Positions_TTL.FormatSpecifier = "F0"; + this.tb_Options_Planes_Positions_TTL.Location = new System.Drawing.Point(192, 65); + this.tb_Options_Planes_Positions_TTL.MaxValue = 30; + this.tb_Options_Planes_Positions_TTL.MinValue = 0; + this.tb_Options_Planes_Positions_TTL.Name = "tb_Options_Planes_Positions_TTL"; + this.tb_Options_Planes_Positions_TTL.Size = new System.Drawing.Size(52, 22); + this.tb_Options_Planes_Positions_TTL.TabIndex = 43; + this.tb_Options_Planes_Positions_TTL.Text = "5"; + this.tb_Options_Planes_Positions_TTL.Value = global::AirScout.Properties.Settings.Default.Planes_Position_TTL; + // + // tb_Options_Planes_MaxAlt + // + this.tb_Options_Planes_MaxAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MaxAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_MaxAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_MaxAlt.FormatSpecifier = "F0"; + this.tb_Options_Planes_MaxAlt.Location = new System.Drawing.Point(192, 39); + this.tb_Options_Planes_MaxAlt.MaxValue = 20000; + this.tb_Options_Planes_MaxAlt.MinValue = 0; + this.tb_Options_Planes_MaxAlt.Name = "tb_Options_Planes_MaxAlt"; + this.tb_Options_Planes_MaxAlt.Size = new System.Drawing.Size(52, 22); + this.tb_Options_Planes_MaxAlt.TabIndex = 42; + this.tb_Options_Planes_MaxAlt.Text = "12200"; + this.tb_Options_Planes_MaxAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MaxAlt; + // + // tb_Options_Planes_MinAlt + // + this.tb_Options_Planes_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MinAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_MinAlt.FormatSpecifier = "F0"; + this.tb_Options_Planes_MinAlt.Location = new System.Drawing.Point(192, 14); + this.tb_Options_Planes_MinAlt.MaxValue = 20000; + this.tb_Options_Planes_MinAlt.MinValue = 0; + this.tb_Options_Planes_MinAlt.Name = "tb_Options_Planes_MinAlt"; + this.tb_Options_Planes_MinAlt.Size = new System.Drawing.Size(52, 22); + this.tb_Options_Planes_MinAlt.TabIndex = 41; + this.tb_Options_Planes_MinAlt.Text = "5000"; + this.tb_Options_Planes_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MinAlt; + // // label2 // this.label2.AutoSize = true; @@ -902,6 +1280,34 @@ this.groupBox26.TabStop = false; this.groupBox26.Text = "Plane Live Position Filters"; // + // tb_Options_Planes_Filter_MinAlt + // + this.tb_Options_Planes_Filter_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Min_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_Filter_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_Filter_MinAlt.FormatSpecifier = "F0"; + this.tb_Options_Planes_Filter_MinAlt.Location = new System.Drawing.Point(192, 86); + this.tb_Options_Planes_Filter_MinAlt.MaxValue = 12000; + this.tb_Options_Planes_Filter_MinAlt.MinValue = 0; + this.tb_Options_Planes_Filter_MinAlt.Name = "tb_Options_Planes_Filter_MinAlt"; + this.tb_Options_Planes_Filter_MinAlt.Size = new System.Drawing.Size(52, 22); + this.tb_Options_Planes_Filter_MinAlt.TabIndex = 43; + this.tb_Options_Planes_Filter_MinAlt.Text = "0"; + this.tb_Options_Planes_Filter_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Min_Alt; + // + // tb_Options_Planes_Filter_Max_Circumcircle + // + this.tb_Options_Planes_Filter_Max_Circumcircle.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Max_Circumcircle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_Filter_Max_Circumcircle.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_Filter_Max_Circumcircle.FormatSpecifier = "F0"; + this.tb_Options_Planes_Filter_Max_Circumcircle.Location = new System.Drawing.Point(192, 59); + this.tb_Options_Planes_Filter_Max_Circumcircle.MaxValue = 1000; + this.tb_Options_Planes_Filter_Max_Circumcircle.MinValue = -1; + this.tb_Options_Planes_Filter_Max_Circumcircle.Name = "tb_Options_Planes_Filter_Max_Circumcircle"; + this.tb_Options_Planes_Filter_Max_Circumcircle.Size = new System.Drawing.Size(52, 22); + this.tb_Options_Planes_Filter_Max_Circumcircle.TabIndex = 42; + this.tb_Options_Planes_Filter_Max_Circumcircle.Text = "0"; + this.tb_Options_Planes_Filter_Max_Circumcircle.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Max_Circumcircle; + // // label96 // this.label96.AutoSize = true; @@ -1254,6 +1660,20 @@ this.label147.TabIndex = 40; this.label147.Text = "Export elevation path to CSV (do not change settings before as they may not have " + " effect):"; + // + // tb_Options_Path_MaxLength + // + this.tb_Options_Path_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Path_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Path_MaxLength.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Path_MaxLength.FormatSpecifier = "F0"; + this.tb_Options_Path_MaxLength.Location = new System.Drawing.Point(318, 385); + this.tb_Options_Path_MaxLength.MaxValue = double.NaN; + this.tb_Options_Path_MaxLength.MinValue = double.NaN; + this.tb_Options_Path_MaxLength.Name = "tb_Options_Path_MaxLength"; + this.tb_Options_Path_MaxLength.Size = new System.Drawing.Size(57, 20); + this.tb_Options_Path_MaxLength.TabIndex = 39; + this.tb_Options_Path_MaxLength.Text = "1000"; + this.tb_Options_Path_MaxLength.Value = global::AirScout.Properties.Settings.Default.Path_MaxLength; // // label131 // @@ -1404,6 +1824,7 @@ this.gm_Options_SRTM1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; this.gm_Options_SRTM1.Name = "gm_Options_SRTM1"; this.gm_Options_SRTM1.NegativeMode = false; + this.gm_Options_SRTM1.Opacity = 1D; this.gm_Options_SRTM1.PolygonsEnabled = true; this.gm_Options_SRTM1.RetryLoadTile = 0; this.gm_Options_SRTM1.RoutesEnabled = true; @@ -1425,6 +1846,34 @@ this.groupBox12.TabStop = false; this.groupBox12.Text = "Use Elevation Model"; // + // cb_Options_Elevation_SRTM1_EnableCache + // + this.cb_Options_Elevation_SRTM1_EnableCache.AutoSize = true; + this.cb_Options_Elevation_SRTM1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_EnableCache; + this.cb_Options_Elevation_SRTM1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_SRTM1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_SRTM1_EnableCache.Location = new System.Drawing.Point(6, 42); + this.cb_Options_Elevation_SRTM1_EnableCache.Name = "cb_Options_Elevation_SRTM1_EnableCache"; + this.cb_Options_Elevation_SRTM1_EnableCache.Size = new System.Drawing.Size(179, 17); + this.cb_Options_Elevation_SRTM1_EnableCache.TabIndex = 17; + this.cb_Options_Elevation_SRTM1_EnableCache.Tag = ""; + this.cb_Options_Elevation_SRTM1_EnableCache.Text = "Keep downloaded elevation tiles"; + this.cb_Options_Elevation_SRTM1_EnableCache.UseVisualStyleBackColor = true; + // + // cb_Options_Elevation_SRTM1 + // + this.cb_Options_Elevation_SRTM1.AutoSize = true; + this.cb_Options_Elevation_SRTM1.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_Enabled; + this.cb_Options_Elevation_SRTM1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_SRTM1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_SRTM1.Location = new System.Drawing.Point(6, 19); + this.cb_Options_Elevation_SRTM1.Name = "cb_Options_Elevation_SRTM1"; + this.cb_Options_Elevation_SRTM1.Size = new System.Drawing.Size(155, 17); + this.cb_Options_Elevation_SRTM1.TabIndex = 16; + this.cb_Options_Elevation_SRTM1.Tag = ""; + this.cb_Options_Elevation_SRTM1.Text = "Use SRTM1 elevation data"; + this.cb_Options_Elevation_SRTM1.UseVisualStyleBackColor = true; + // // tab_Options_SRTM3 // this.tab_Options_SRTM3.BackColor = System.Drawing.SystemColors.Control; @@ -1511,6 +1960,7 @@ this.gm_Options_SRTM3.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; this.gm_Options_SRTM3.Name = "gm_Options_SRTM3"; this.gm_Options_SRTM3.NegativeMode = false; + this.gm_Options_SRTM3.Opacity = 1D; this.gm_Options_SRTM3.PolygonsEnabled = true; this.gm_Options_SRTM3.RetryLoadTile = 0; this.gm_Options_SRTM3.RoutesEnabled = true; @@ -1532,6 +1982,34 @@ this.groupBox8.TabStop = false; this.groupBox8.Text = "Use Elevation Model"; // + // cb_Options_Elevation_SRTM3_EnableCache + // + this.cb_Options_Elevation_SRTM3_EnableCache.AutoSize = true; + this.cb_Options_Elevation_SRTM3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_EnableCache; + this.cb_Options_Elevation_SRTM3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_SRTM3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_SRTM3_EnableCache.Location = new System.Drawing.Point(6, 42); + this.cb_Options_Elevation_SRTM3_EnableCache.Name = "cb_Options_Elevation_SRTM3_EnableCache"; + this.cb_Options_Elevation_SRTM3_EnableCache.Size = new System.Drawing.Size(179, 17); + this.cb_Options_Elevation_SRTM3_EnableCache.TabIndex = 13; + this.cb_Options_Elevation_SRTM3_EnableCache.Tag = ""; + this.cb_Options_Elevation_SRTM3_EnableCache.Text = "Keep downloaded elevation tiles"; + this.cb_Options_Elevation_SRTM3_EnableCache.UseVisualStyleBackColor = true; + // + // cb_Options_Elevation_SRTM3 + // + this.cb_Options_Elevation_SRTM3.AutoSize = true; + this.cb_Options_Elevation_SRTM3.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_Enabled; + this.cb_Options_Elevation_SRTM3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_SRTM3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_SRTM3.Location = new System.Drawing.Point(6, 19); + this.cb_Options_Elevation_SRTM3.Name = "cb_Options_Elevation_SRTM3"; + this.cb_Options_Elevation_SRTM3.Size = new System.Drawing.Size(155, 17); + this.cb_Options_Elevation_SRTM3.TabIndex = 12; + this.cb_Options_Elevation_SRTM3.Tag = ""; + this.cb_Options_Elevation_SRTM3.Text = "Use SRTM3 elevation data"; + this.cb_Options_Elevation_SRTM3.UseVisualStyleBackColor = true; + // // tab_Options_GLOBE // this.tab_Options_GLOBE.BackColor = System.Drawing.SystemColors.Control; @@ -1618,6 +2096,7 @@ this.gm_Options_GLOBE.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; this.gm_Options_GLOBE.Name = "gm_Options_GLOBE"; this.gm_Options_GLOBE.NegativeMode = false; + this.gm_Options_GLOBE.Opacity = 1D; this.gm_Options_GLOBE.PolygonsEnabled = true; this.gm_Options_GLOBE.RetryLoadTile = 0; this.gm_Options_GLOBE.RoutesEnabled = true; @@ -1639,6 +2118,36 @@ this.groupBox10.TabStop = false; this.groupBox10.Text = "Use Elevation Model"; // + // cb_Options_Elevation_GLOBE_EnableCache + // + this.cb_Options_Elevation_GLOBE_EnableCache.AutoSize = true; + this.cb_Options_Elevation_GLOBE_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_EnableCache; + this.cb_Options_Elevation_GLOBE_EnableCache.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Elevation_GLOBE_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_GLOBE_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_GLOBE_EnableCache.Location = new System.Drawing.Point(12, 42); + this.cb_Options_Elevation_GLOBE_EnableCache.Name = "cb_Options_Elevation_GLOBE_EnableCache"; + this.cb_Options_Elevation_GLOBE_EnableCache.Size = new System.Drawing.Size(179, 17); + this.cb_Options_Elevation_GLOBE_EnableCache.TabIndex = 8; + this.cb_Options_Elevation_GLOBE_EnableCache.Tag = ""; + this.cb_Options_Elevation_GLOBE_EnableCache.Text = "Keep downloaded elevation tiles"; + this.cb_Options_Elevation_GLOBE_EnableCache.UseVisualStyleBackColor = true; + // + // cb_Options_Elevation_GLOBE + // + this.cb_Options_Elevation_GLOBE.AutoSize = true; + this.cb_Options_Elevation_GLOBE.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_Enabled; + this.cb_Options_Elevation_GLOBE.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Elevation_GLOBE.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_GLOBE.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_GLOBE.Location = new System.Drawing.Point(12, 19); + this.cb_Options_Elevation_GLOBE.Name = "cb_Options_Elevation_GLOBE"; + this.cb_Options_Elevation_GLOBE.Size = new System.Drawing.Size(154, 17); + this.cb_Options_Elevation_GLOBE.TabIndex = 7; + this.cb_Options_Elevation_GLOBE.Tag = ""; + this.cb_Options_Elevation_GLOBE.Text = "Use GLOBE elevation data"; + this.cb_Options_Elevation_GLOBE.UseVisualStyleBackColor = true; + // // tab_Options_Map // this.tab_Options_Map.BackColor = System.Drawing.SystemColors.Control; @@ -1670,6 +2179,34 @@ this.groupBox49.TabStop = false; this.groupBox49.Text = "Multi-Path"; // + // cb_Options_Map_SmallMarkers + // + this.cb_Options_Map_SmallMarkers.AutoSize = true; + this.cb_Options_Map_SmallMarkers.Checked = global::AirScout.Properties.Settings.Default.Map_SmallMarkers; + this.cb_Options_Map_SmallMarkers.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Map_SmallMarkers.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_SmallMarkers", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Map_SmallMarkers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Map_SmallMarkers.Location = new System.Drawing.Point(18, 22); + this.cb_Options_Map_SmallMarkers.Name = "cb_Options_Map_SmallMarkers"; + this.cb_Options_Map_SmallMarkers.Size = new System.Drawing.Size(199, 17); + this.cb_Options_Map_SmallMarkers.TabIndex = 2; + this.cb_Options_Map_SmallMarkers.Text = "Use Small Markers for all Path Marks"; + this.cb_Options_Map_SmallMarkers.UseVisualStyleBackColor = true; + // + // cb_Options_Map_LabelCalls + // + this.cb_Options_Map_LabelCalls.AutoSize = true; + this.cb_Options_Map_LabelCalls.Checked = global::AirScout.Properties.Settings.Default.Map_LabelCalls; + this.cb_Options_Map_LabelCalls.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Map_LabelCalls.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_LabelCalls", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Map_LabelCalls.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Map_LabelCalls.Location = new System.Drawing.Point(18, 45); + this.cb_Options_Map_LabelCalls.Name = "cb_Options_Map_LabelCalls"; + this.cb_Options_Map_LabelCalls.Size = new System.Drawing.Size(209, 17); + this.cb_Options_Map_LabelCalls.TabIndex = 3; + this.cb_Options_Map_LabelCalls.Text = "Show Labels with Callsign at Locations"; + this.cb_Options_Map_LabelCalls.UseVisualStyleBackColor = true; + // // groupBox37 // this.groupBox37.Controls.Add(this.label34); @@ -1692,6 +2229,26 @@ this.label34.TabIndex = 2; this.label34.Text = "Font Size for Axes in Diagrams etc.:"; // + // ud_Options_Charts_FontSize + // + this.ud_Options_Charts_FontSize.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Charts_FontSize", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ud_Options_Charts_FontSize.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_Charts_FontSize.Location = new System.Drawing.Point(192, 15); + this.ud_Options_Charts_FontSize.Maximum = new decimal(new int[] { + 16, + 0, + 0, + 0}); + this.ud_Options_Charts_FontSize.Minimum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.ud_Options_Charts_FontSize.Name = "ud_Options_Charts_FontSize"; + this.ud_Options_Charts_FontSize.Size = new System.Drawing.Size(45, 22); + this.ud_Options_Charts_FontSize.TabIndex = 0; + this.ud_Options_Charts_FontSize.Value = global::AirScout.Properties.Settings.Default.Charts_FontSize; + // // groupBox39 // this.groupBox39.Controls.Add(this.tb_Options_Map_Update_Interval); @@ -1705,6 +2262,20 @@ this.groupBox39.TabStop = false; this.groupBox39.Text = "Screen Updates"; // + // tb_Options_Map_Update_Interval + // + this.tb_Options_Map_Update_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Map_Update_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Map_Update_Interval.FormatSpecifier = "F0"; + this.tb_Options_Map_Update_Interval.Location = new System.Drawing.Point(119, 33); + this.tb_Options_Map_Update_Interval.MaxValue = 3600; + this.tb_Options_Map_Update_Interval.MinValue = 0; + this.tb_Options_Map_Update_Interval.Name = "tb_Options_Map_Update_Interval"; + this.tb_Options_Map_Update_Interval.Size = new System.Drawing.Size(37, 22); + this.tb_Options_Map_Update_Interval.TabIndex = 23; + this.tb_Options_Map_Update_Interval.Text = "1"; + this.tb_Options_Map_Update_Interval.Value = global::AirScout.Properties.Settings.Default.Map_Update; + // // label97 // this.label97.AutoSize = true; @@ -1727,6 +2298,8 @@ // // groupBox23 // + this.groupBox23.Controls.Add(this.cb_Options_Distances_Activated); + this.groupBox23.Controls.Add(this.cb_Options_Locators_Activate); this.groupBox23.Controls.Add(this.ud_Options_Map_Opacity); this.groupBox23.Controls.Add(this.label148); this.groupBox23.Controls.Add(this.ud_Options_Map_Preloader_MaxZoom); @@ -1742,15 +2315,102 @@ this.groupBox23.TabStop = false; this.groupBox23.Text = "General "; // + // ud_Options_Map_Opacity + // + this.ud_Options_Map_Opacity.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Opacity", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ud_Options_Map_Opacity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_Map_Opacity.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.ud_Options_Map_Opacity.Location = new System.Drawing.Point(320, 18); + this.ud_Options_Map_Opacity.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.ud_Options_Map_Opacity.Name = "ud_Options_Map_Opacity"; + this.ud_Options_Map_Opacity.Size = new System.Drawing.Size(54, 20); + this.ud_Options_Map_Opacity.TabIndex = 10; + this.ud_Options_Map_Opacity.Value = global::AirScout.Properties.Settings.Default.Map_Opacity; + // + // label148 + // + this.label148.AutoSize = true; + this.label148.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label148.Location = new System.Drawing.Point(234, 20); + this.label148.Name = "label148"; + this.label148.Size = new System.Drawing.Size(70, 13); + this.label148.TabIndex = 7; + this.label148.Text = "Map Opacity:"; + // + // ud_Options_Map_Preloader_MaxZoom + // + this.ud_Options_Map_Preloader_MaxZoom.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Preloader_MaxZoom", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ud_Options_Map_Preloader_MaxZoom.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_Map_Preloader_MaxZoom.Location = new System.Drawing.Point(319, 66); + this.ud_Options_Map_Preloader_MaxZoom.Maximum = new decimal(new int[] { + 11, + 0, + 0, + 0}); + this.ud_Options_Map_Preloader_MaxZoom.Name = "ud_Options_Map_Preloader_MaxZoom"; + this.ud_Options_Map_Preloader_MaxZoom.Size = new System.Drawing.Size(54, 22); + this.ud_Options_Map_Preloader_MaxZoom.TabIndex = 6; + this.ud_Options_Map_Preloader_MaxZoom.Value = global::AirScout.Properties.Settings.Default.Map_Preloader_MaxZoom; + // // label144 // this.label144.AutoSize = true; this.label144.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label144.Location = new System.Drawing.Point(226, 64); + this.label144.Location = new System.Drawing.Point(234, 64); this.label144.Name = "label144"; - this.label144.Size = new System.Drawing.Size(87, 26); + this.label144.Size = new System.Drawing.Size(78, 26); this.label144.TabIndex = 5; - this.label144.Text = "Preload down to \r\nZoom Level:"; + this.label144.Text = "Preload down \r\nto Zoom Level:"; + // + // cb_Options_Map_Preloader_Enabled + // + this.cb_Options_Map_Preloader_Enabled.AutoSize = true; + this.cb_Options_Map_Preloader_Enabled.Checked = global::AirScout.Properties.Settings.Default.Map_Preloader_Enabled; + this.cb_Options_Map_Preloader_Enabled.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Map_Preloader_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_Preloader_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Map_Preloader_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Map_Preloader_Enabled.Location = new System.Drawing.Point(237, 44); + this.cb_Options_Map_Preloader_Enabled.Name = "cb_Options_Map_Preloader_Enabled"; + this.cb_Options_Map_Preloader_Enabled.Size = new System.Drawing.Size(136, 17); + this.cb_Options_Map_Preloader_Enabled.TabIndex = 4; + this.cb_Options_Map_Preloader_Enabled.Text = "Enable Map Preloading"; + this.cb_Options_Map_Preloader_Enabled.UseVisualStyleBackColor = true; + // + // cb_Options_Watchlist_Activate + // + this.cb_Options_Watchlist_Activate.AutoSize = true; + this.cb_Options_Watchlist_Activate.Checked = global::AirScout.Properties.Settings.Default.Watchlist_Activated; + this.cb_Options_Watchlist_Activate.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Watchlist_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_Activated", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Watchlist_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Watchlist_Activate.Location = new System.Drawing.Point(16, 71); + this.cb_Options_Watchlist_Activate.Name = "cb_Options_Watchlist_Activate"; + this.cb_Options_Watchlist_Activate.Size = new System.Drawing.Size(144, 17); + this.cb_Options_Watchlist_Activate.TabIndex = 1; + this.cb_Options_Watchlist_Activate.Text = "Show Watchlist Callsigns"; + this.cb_Options_Watchlist_Activate.UseVisualStyleBackColor = true; + // + // cb_Options_Airports_Activate + // + this.cb_Options_Airports_Activate.AutoSize = true; + this.cb_Options_Airports_Activate.Checked = global::AirScout.Properties.Settings.Default.Airports_Activate; + this.cb_Options_Airports_Activate.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Airports_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Airports_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Airports_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Airports_Activate.Location = new System.Drawing.Point(16, 19); + this.cb_Options_Airports_Activate.Name = "cb_Options_Airports_Activate"; + this.cb_Options_Airports_Activate.Size = new System.Drawing.Size(91, 17); + this.cb_Options_Airports_Activate.TabIndex = 0; + this.cb_Options_Airports_Activate.Text = "Show Airports"; + this.cb_Options_Airports_Activate.UseVisualStyleBackColor = true; // // groupBox30 // @@ -1771,6 +2431,62 @@ this.groupBox30.TabStop = false; this.groupBox30.Text = "Plane Icon Sizes per Category"; // + // tb_Options_Planes_IconSize_S + // + this.tb_Options_Planes_IconSize_S.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_S", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_IconSize_S.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_IconSize_S.FormatSpecifier = "F0"; + this.tb_Options_Planes_IconSize_S.Location = new System.Drawing.Point(183, 47); + this.tb_Options_Planes_IconSize_S.MaxValue = 128; + this.tb_Options_Planes_IconSize_S.MinValue = 0; + this.tb_Options_Planes_IconSize_S.Name = "tb_Options_Planes_IconSize_S"; + this.tb_Options_Planes_IconSize_S.Size = new System.Drawing.Size(37, 22); + this.tb_Options_Planes_IconSize_S.TabIndex = 16; + this.tb_Options_Planes_IconSize_S.Text = "48"; + this.tb_Options_Planes_IconSize_S.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_S; + // + // tb_Options_Planes_IconSize_H + // + this.tb_Options_Planes_IconSize_H.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_H", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_IconSize_H.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_IconSize_H.FormatSpecifier = "F0"; + this.tb_Options_Planes_IconSize_H.Location = new System.Drawing.Point(183, 19); + this.tb_Options_Planes_IconSize_H.MaxValue = 128; + this.tb_Options_Planes_IconSize_H.MinValue = 0; + this.tb_Options_Planes_IconSize_H.Name = "tb_Options_Planes_IconSize_H"; + this.tb_Options_Planes_IconSize_H.Size = new System.Drawing.Size(37, 22); + this.tb_Options_Planes_IconSize_H.TabIndex = 15; + this.tb_Options_Planes_IconSize_H.Text = "36"; + this.tb_Options_Planes_IconSize_H.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_H; + // + // tb_Options_Planes_IconSize_M + // + this.tb_Options_Planes_IconSize_M.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_M", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_IconSize_M.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_IconSize_M.FormatSpecifier = "F0"; + this.tb_Options_Planes_IconSize_M.Location = new System.Drawing.Point(63, 47); + this.tb_Options_Planes_IconSize_M.MaxValue = 128; + this.tb_Options_Planes_IconSize_M.MinValue = 0; + this.tb_Options_Planes_IconSize_M.Name = "tb_Options_Planes_IconSize_M"; + this.tb_Options_Planes_IconSize_M.Size = new System.Drawing.Size(37, 22); + this.tb_Options_Planes_IconSize_M.TabIndex = 14; + this.tb_Options_Planes_IconSize_M.Text = "24"; + this.tb_Options_Planes_IconSize_M.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_M; + // + // tb_Options_Planes_IconSize_L + // + this.tb_Options_Planes_IconSize_L.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_L", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Planes_IconSize_L.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Planes_IconSize_L.FormatSpecifier = "F0"; + this.tb_Options_Planes_IconSize_L.Location = new System.Drawing.Point(63, 21); + this.tb_Options_Planes_IconSize_L.MaxValue = 128; + this.tb_Options_Planes_IconSize_L.MinValue = 0; + this.tb_Options_Planes_IconSize_L.Name = "tb_Options_Planes_IconSize_L"; + this.tb_Options_Planes_IconSize_L.Size = new System.Drawing.Size(37, 22); + this.tb_Options_Planes_IconSize_L.TabIndex = 13; + this.tb_Options_Planes_IconSize_L.Text = "16"; + this.tb_Options_Planes_IconSize_L.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_L; + // // label84 // this.label84.AutoSize = true; @@ -1859,7 +2575,7 @@ this.label76.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label76.Location = new System.Drawing.Point(10, 41); this.label76.Name = "label76"; - this.label76.Size = new System.Drawing.Size(116, 16); + this.label76.Size = new System.Drawing.Size(115, 16); this.label76.TabIndex = 18; this.label76.Text = "bold characters"; // @@ -1882,6 +2598,153 @@ this.label75.TabIndex = 17; this.label75.Text = "are affecting both Simple and Detailed Info Window."; // + // cb_Options_InfoWin_Angle + // + this.cb_Options_InfoWin_Angle.AutoSize = true; + this.cb_Options_InfoWin_Angle.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Angle; + this.cb_Options_InfoWin_Angle.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Angle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Angle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Angle.Location = new System.Drawing.Point(139, 75); + this.cb_Options_InfoWin_Angle.Name = "cb_Options_InfoWin_Angle"; + this.cb_Options_InfoWin_Angle.Size = new System.Drawing.Size(96, 17); + this.cb_Options_InfoWin_Angle.TabIndex = 15; + this.cb_Options_InfoWin_Angle.Tag = ""; + this.cb_Options_InfoWin_Angle.Text = "Crossing Angle"; + this.cb_Options_InfoWin_Angle.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Speed + // + this.cb_Options_InfoWin_Speed.AutoSize = true; + this.cb_Options_InfoWin_Speed.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Speed; + this.cb_Options_InfoWin_Speed.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Speed", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Speed.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Speed.Location = new System.Drawing.Point(26, 100); + this.cb_Options_InfoWin_Speed.Name = "cb_Options_InfoWin_Speed"; + this.cb_Options_InfoWin_Speed.Size = new System.Drawing.Size(87, 17); + this.cb_Options_InfoWin_Speed.TabIndex = 14; + this.cb_Options_InfoWin_Speed.Tag = ""; + this.cb_Options_InfoWin_Speed.Text = "Plane Speed"; + this.cb_Options_InfoWin_Speed.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Squint + // + this.cb_Options_InfoWin_Squint.AutoSize = true; + this.cb_Options_InfoWin_Squint.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Squint; + this.cb_Options_InfoWin_Squint.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_InfoWin_Squint.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Squint", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Squint.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Squint.Location = new System.Drawing.Point(139, 121); + this.cb_Options_InfoWin_Squint.Name = "cb_Options_InfoWin_Squint"; + this.cb_Options_InfoWin_Squint.Size = new System.Drawing.Size(86, 17); + this.cb_Options_InfoWin_Squint.TabIndex = 13; + this.cb_Options_InfoWin_Squint.Tag = ""; + this.cb_Options_InfoWin_Squint.Text = "Squint Angle"; + this.cb_Options_InfoWin_Squint.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Epsilon + // + this.cb_Options_InfoWin_Epsilon.AutoSize = true; + this.cb_Options_InfoWin_Epsilon.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Epsilon; + this.cb_Options_InfoWin_Epsilon.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Epsilon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Epsilon.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Epsilon.Location = new System.Drawing.Point(139, 98); + this.cb_Options_InfoWin_Epsilon.Name = "cb_Options_InfoWin_Epsilon"; + this.cb_Options_InfoWin_Epsilon.Size = new System.Drawing.Size(105, 17); + this.cb_Options_InfoWin_Epsilon.TabIndex = 12; + this.cb_Options_InfoWin_Epsilon.Tag = ""; + this.cb_Options_InfoWin_Epsilon.Text = "Elevation Angles"; + this.cb_Options_InfoWin_Epsilon.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Dist + // + this.cb_Options_InfoWin_Dist.AutoSize = true; + this.cb_Options_InfoWin_Dist.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Dist; + this.cb_Options_InfoWin_Dist.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_InfoWin_Dist.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Dist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Dist.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Dist.Location = new System.Drawing.Point(139, 29); + this.cb_Options_InfoWin_Dist.Name = "cb_Options_InfoWin_Dist"; + this.cb_Options_InfoWin_Dist.Size = new System.Drawing.Size(111, 17); + this.cb_Options_InfoWin_Dist.TabIndex = 11; + this.cb_Options_InfoWin_Dist.Tag = ""; + this.cb_Options_InfoWin_Dist.Text = "Crossing Distance"; + this.cb_Options_InfoWin_Dist.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Time + // + this.cb_Options_InfoWin_Time.AutoSize = true; + this.cb_Options_InfoWin_Time.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Time; + this.cb_Options_InfoWin_Time.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_InfoWin_Time.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Time", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Time.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Time.Location = new System.Drawing.Point(139, 52); + this.cb_Options_InfoWin_Time.Name = "cb_Options_InfoWin_Time"; + this.cb_Options_InfoWin_Time.Size = new System.Drawing.Size(92, 17); + this.cb_Options_InfoWin_Time.TabIndex = 10; + this.cb_Options_InfoWin_Time.Tag = ""; + this.cb_Options_InfoWin_Time.Text = "Crossing Time"; + this.cb_Options_InfoWin_Time.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Type + // + this.cb_Options_InfoWin_Type.AutoSize = true; + this.cb_Options_InfoWin_Type.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Type; + this.cb_Options_InfoWin_Type.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_InfoWin_Type.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Type", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Type.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Type.Location = new System.Drawing.Point(26, 123); + this.cb_Options_InfoWin_Type.Name = "cb_Options_InfoWin_Type"; + this.cb_Options_InfoWin_Type.Size = new System.Drawing.Size(90, 17); + this.cb_Options_InfoWin_Type.TabIndex = 9; + this.cb_Options_InfoWin_Type.Tag = ""; + this.cb_Options_InfoWin_Type.Text = "Plane Type"; + this.cb_Options_InfoWin_Type.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Track + // + this.cb_Options_InfoWin_Track.AutoSize = true; + this.cb_Options_InfoWin_Track.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Track; + this.cb_Options_InfoWin_Track.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_InfoWin_Track.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Track", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Track.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Track.Location = new System.Drawing.Point(26, 77); + this.cb_Options_InfoWin_Track.Name = "cb_Options_InfoWin_Track"; + this.cb_Options_InfoWin_Track.Size = new System.Drawing.Size(95, 17); + this.cb_Options_InfoWin_Track.TabIndex = 8; + this.cb_Options_InfoWin_Track.Tag = ""; + this.cb_Options_InfoWin_Track.Text = "Plane Track"; + this.cb_Options_InfoWin_Track.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Alt + // + this.cb_Options_InfoWin_Alt.AutoSize = true; + this.cb_Options_InfoWin_Alt.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Alt; + this.cb_Options_InfoWin_Alt.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_InfoWin_Alt.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Alt.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Alt.Location = new System.Drawing.Point(26, 54); + this.cb_Options_InfoWin_Alt.Name = "cb_Options_InfoWin_Alt"; + this.cb_Options_InfoWin_Alt.Size = new System.Drawing.Size(105, 17); + this.cb_Options_InfoWin_Alt.TabIndex = 7; + this.cb_Options_InfoWin_Alt.Tag = ""; + this.cb_Options_InfoWin_Alt.Text = "Plane Altitude"; + this.cb_Options_InfoWin_Alt.UseVisualStyleBackColor = true; + // + // cb_Options_InfoWin_Position + // + this.cb_Options_InfoWin_Position.AutoSize = true; + this.cb_Options_InfoWin_Position.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Position; + this.cb_Options_InfoWin_Position.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_InfoWin_Position.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Position", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_InfoWin_Position.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_InfoWin_Position.Location = new System.Drawing.Point(26, 31); + this.cb_Options_InfoWin_Position.Name = "cb_Options_InfoWin_Position"; + this.cb_Options_InfoWin_Position.Size = new System.Drawing.Size(107, 17); + this.cb_Options_InfoWin_Position.TabIndex = 6; + this.cb_Options_InfoWin_Position.Tag = ""; + this.cb_Options_InfoWin_Position.Text = "Plane Position"; + this.cb_Options_InfoWin_Position.UseVisualStyleBackColor = true; + // // groupBox22 // this.groupBox22.Controls.Add(this.rb_Options_InfoWin_Imperial); @@ -1898,6 +2761,35 @@ this.groupBox22.TabStop = false; this.groupBox22.Text = "Info Window Options"; // + // rb_Options_InfoWin_Imperial + // + this.rb_Options_InfoWin_Imperial.AutoSize = true; + this.rb_Options_InfoWin_Imperial.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Imperial; + this.rb_Options_InfoWin_Imperial.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Imperial", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.rb_Options_InfoWin_Imperial.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_InfoWin_Imperial.Location = new System.Drawing.Point(156, 18); + this.rb_Options_InfoWin_Imperial.Name = "rb_Options_InfoWin_Imperial"; + this.rb_Options_InfoWin_Imperial.Size = new System.Drawing.Size(61, 17); + this.rb_Options_InfoWin_Imperial.TabIndex = 5; + this.rb_Options_InfoWin_Imperial.Tag = ""; + this.rb_Options_InfoWin_Imperial.Text = "Imperial"; + this.rb_Options_InfoWin_Imperial.UseVisualStyleBackColor = true; + // + // rb_Options_InfoWin_Metric + // + this.rb_Options_InfoWin_Metric.AutoSize = true; + this.rb_Options_InfoWin_Metric.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Metric; + this.rb_Options_InfoWin_Metric.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Metric", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.rb_Options_InfoWin_Metric.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_InfoWin_Metric.Location = new System.Drawing.Point(83, 18); + this.rb_Options_InfoWin_Metric.Name = "rb_Options_InfoWin_Metric"; + this.rb_Options_InfoWin_Metric.Size = new System.Drawing.Size(54, 17); + this.rb_Options_InfoWin_Metric.TabIndex = 4; + this.rb_Options_InfoWin_Metric.TabStop = true; + this.rb_Options_InfoWin_Metric.Tag = ""; + this.rb_Options_InfoWin_Metric.Text = "Metric"; + this.rb_Options_InfoWin_Metric.UseVisualStyleBackColor = true; + // // label72 // this.label72.AutoSize = true; @@ -1929,6 +2821,17 @@ this.label62.TabIndex = 1; this.label62.Text = "Font:"; // + // tb_Options_Map_ToolTipFont + // + this.tb_Options_Map_ToolTipFont.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Map_ToolTipFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Map_ToolTipFont.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Map_ToolTipFont.Location = new System.Drawing.Point(72, 39); + this.tb_Options_Map_ToolTipFont.Name = "tb_Options_Map_ToolTipFont"; + this.tb_Options_Map_ToolTipFont.ReadOnly = true; + this.tb_Options_Map_ToolTipFont.Size = new System.Drawing.Size(179, 20); + this.tb_Options_Map_ToolTipFont.TabIndex = 0; + this.tb_Options_Map_ToolTipFont.Text = global::AirScout.Properties.Settings.Default.Map_ToolTipFont; + // // groupBox2 // this.groupBox2.Controls.Add(this.label61); @@ -2350,6 +3253,34 @@ this.groupBox14.TabStop = false; this.groupBox14.Text = "Location Settings"; // + // cb_Options_SmallLettersForSubSquares + // + this.cb_Options_SmallLettersForSubSquares.AutoSize = true; + this.cb_Options_SmallLettersForSubSquares.Checked = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares; + this.cb_Options_SmallLettersForSubSquares.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_SmallLettersForSubSquares.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_SmallLettersForSubSquares.Location = new System.Drawing.Point(239, 16); + this.cb_Options_SmallLettersForSubSquares.Name = "cb_Options_SmallLettersForSubSquares"; + this.cb_Options_SmallLettersForSubSquares.Size = new System.Drawing.Size(157, 17); + this.cb_Options_SmallLettersForSubSquares.TabIndex = 11; + this.cb_Options_SmallLettersForSubSquares.Text = "Small letters for subsquares:"; + this.cb_Options_SmallLettersForSubSquares.UseVisualStyleBackColor = true; + this.cb_Options_SmallLettersForSubSquares.CheckedChanged += new System.EventHandler(this.cb_Options_SmallLettersForSubSquares_CheckedChanged); + // + // cb_Options_Locator_AutoLength + // + this.cb_Options_Locator_AutoLength.AutoSize = true; + this.cb_Options_Locator_AutoLength.Checked = global::AirScout.Properties.Settings.Default.Locator_AutoLength; + this.cb_Options_Locator_AutoLength.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Locator_AutoLength.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_AutoLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Locator_AutoLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Locator_AutoLength.Location = new System.Drawing.Point(12, 38); + this.cb_Options_Locator_AutoLength.Name = "cb_Options_Locator_AutoLength"; + this.cb_Options_Locator_AutoLength.Size = new System.Drawing.Size(319, 17); + this.cb_Options_Locator_AutoLength.TabIndex = 10; + this.cb_Options_Locator_AutoLength.Text = "Cut locator to significant digits automatically (Minimum 6 digits):"; + this.cb_Options_Locator_AutoLength.UseVisualStyleBackColor = true; + // // label48 // this.label48.AutoSize = true; @@ -2360,6 +3291,31 @@ this.label48.TabIndex = 1; this.label48.Text = "Number of Locator digits (6 ..14):"; // + // ud_Options_Locator_MaxLength + // + this.ud_Options_Locator_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Locator_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ud_Options_Locator_MaxLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_Locator_MaxLength.Increment = new decimal(new int[] { + 2, + 0, + 0, + 0}); + this.ud_Options_Locator_MaxLength.Location = new System.Drawing.Point(180, 15); + this.ud_Options_Locator_MaxLength.Maximum = new decimal(new int[] { + 14, + 0, + 0, + 0}); + this.ud_Options_Locator_MaxLength.Minimum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.ud_Options_Locator_MaxLength.Name = "ud_Options_Locator_MaxLength"; + this.ud_Options_Locator_MaxLength.Size = new System.Drawing.Size(50, 20); + this.ud_Options_Locator_MaxLength.TabIndex = 9; + this.ud_Options_Locator_MaxLength.Value = global::AirScout.Properties.Settings.Default.Locator_MaxLength; + // // groupBox16 // this.groupBox16.Controls.Add(this.label52); @@ -2406,6 +3362,18 @@ this.groupBox5.TabStop = false; this.groupBox5.Text = "DX Station"; // + // btn_Options_DXMap + // + this.btn_Options_DXMap.BackgroundImage = global::AirScout.Properties.Resources.Map2; + this.btn_Options_DXMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btn_Options_DXMap.Location = new System.Drawing.Point(8, 135); + this.btn_Options_DXMap.Name = "btn_Options_DXMap"; + this.btn_Options_DXMap.Size = new System.Drawing.Size(75, 81); + this.btn_Options_DXMap.TabIndex = 29; + this.btn_Options_DXMap.Text = "\r\nMap"; + this.btn_Options_DXMap.UseVisualStyleBackColor = true; + this.btn_Options_DXMap.Click += new System.EventHandler(this.btn_Options_DXMap_Click); + // // tb_Options_DXLon // this.tb_Options_DXLon.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -2434,6 +3402,21 @@ this.tb_Options_DXLat.Value = 52.05626084D; this.tb_Options_DXLat.TextChanged += new System.EventHandler(this.tb_Options_DXLat_TextChanged); // + // tb_Options_DXLoc + // + this.tb_Options_DXLoc.BackColor = System.Drawing.SystemColors.Window; + this.tb_Options_DXLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_DXLoc.ErrorBackColor = System.Drawing.Color.Red; + this.tb_Options_DXLoc.ErrorForeColor = System.Drawing.Color.White; + this.tb_Options_DXLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_DXLoc.ForeColor = System.Drawing.SystemColors.WindowText; + this.tb_Options_DXLoc.Location = new System.Drawing.Point(90, 36); + this.tb_Options_DXLoc.Name = "tb_Options_DXLoc"; + this.tb_Options_DXLoc.Size = new System.Drawing.Size(100, 21); + this.tb_Options_DXLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares; + this.tb_Options_DXLoc.TabIndex = 6; + this.tb_Options_DXLoc.TextChanged += new System.EventHandler(this.tb_Options_DXLoc_TextChanged); + // // tb_Options_DXCall // this.tb_Options_DXCall.BackColor = System.Drawing.SystemColors.Window; @@ -2565,6 +3548,18 @@ this.groupBox4.TabStop = false; this.groupBox4.Text = "My Station"; // + // btn_Options_MyMap + // + this.btn_Options_MyMap.BackgroundImage = global::AirScout.Properties.Resources.Map2; + this.btn_Options_MyMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.btn_Options_MyMap.Location = new System.Drawing.Point(7, 134); + this.btn_Options_MyMap.Name = "btn_Options_MyMap"; + this.btn_Options_MyMap.Size = new System.Drawing.Size(75, 81); + this.btn_Options_MyMap.TabIndex = 30; + this.btn_Options_MyMap.Text = "\r\nMap"; + this.btn_Options_MyMap.UseVisualStyleBackColor = true; + this.btn_Options_MyMap.Click += new System.EventHandler(this.btn_Options_MyMap_Click); + // // btn_Options_MyHorizon // this.btn_Options_MyHorizon.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -2604,6 +3599,21 @@ this.tb_Options_MyLat.Value = 50.937067D; this.tb_Options_MyLat.TextChanged += new System.EventHandler(this.tb_Options_MyLat_TextChanged); // + // tb_Options_MyLoc + // + this.tb_Options_MyLoc.BackColor = System.Drawing.SystemColors.Window; + this.tb_Options_MyLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_MyLoc.ErrorBackColor = System.Drawing.Color.Red; + this.tb_Options_MyLoc.ErrorForeColor = System.Drawing.Color.White; + this.tb_Options_MyLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_MyLoc.ForeColor = System.Drawing.SystemColors.WindowText; + this.tb_Options_MyLoc.Location = new System.Drawing.Point(89, 36); + this.tb_Options_MyLoc.Name = "tb_Options_MyLoc"; + this.tb_Options_MyLoc.Size = new System.Drawing.Size(100, 21); + this.tb_Options_MyLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares; + this.tb_Options_MyLoc.TabIndex = 2; + this.tb_Options_MyLoc.TextChanged += new System.EventHandler(this.tb_Options_MyLoc_TextChanged); + // // tb_Options_MyCall // this.tb_Options_MyCall.BackColor = System.Drawing.SystemColors.Window; @@ -2732,6 +3742,66 @@ this.groupBox25.TabStop = false; this.groupBox25.Text = "Covered Area"; // + // tb_Coverage_MaxLat + // + this.tb_Coverage_MaxLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Coverage_MaxLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Coverage_MaxLat.FormatSpecifier = "F0"; + this.tb_Coverage_MaxLat.Location = new System.Drawing.Point(589, 416); + this.tb_Coverage_MaxLat.MaxValue = 90D; + this.tb_Coverage_MaxLat.MinValue = -90D; + this.tb_Coverage_MaxLat.Name = "tb_Coverage_MaxLat"; + this.tb_Coverage_MaxLat.Size = new System.Drawing.Size(50, 22); + this.tb_Coverage_MaxLat.TabIndex = 4; + this.tb_Coverage_MaxLat.Text = "60"; + this.tb_Coverage_MaxLat.Value = global::AirScout.Properties.Settings.Default.MaxLat; + this.tb_Coverage_MaxLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update); + // + // tb_Coverage_MinLat + // + this.tb_Coverage_MinLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Coverage_MinLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Coverage_MinLat.FormatSpecifier = "F0"; + this.tb_Coverage_MinLat.Location = new System.Drawing.Point(589, 391); + this.tb_Coverage_MinLat.MaxValue = 90D; + this.tb_Coverage_MinLat.MinValue = -90D; + this.tb_Coverage_MinLat.Name = "tb_Coverage_MinLat"; + this.tb_Coverage_MinLat.Size = new System.Drawing.Size(50, 22); + this.tb_Coverage_MinLat.TabIndex = 3; + this.tb_Coverage_MinLat.Text = "35"; + this.tb_Coverage_MinLat.Value = global::AirScout.Properties.Settings.Default.MinLat; + this.tb_Coverage_MinLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update); + // + // tb_Coverage_MaxLon + // + this.tb_Coverage_MaxLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Coverage_MaxLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Coverage_MaxLon.FormatSpecifier = "F0"; + this.tb_Coverage_MaxLon.Location = new System.Drawing.Point(589, 364); + this.tb_Coverage_MaxLon.MaxValue = 180D; + this.tb_Coverage_MaxLon.MinValue = -180D; + this.tb_Coverage_MaxLon.Name = "tb_Coverage_MaxLon"; + this.tb_Coverage_MaxLon.Size = new System.Drawing.Size(50, 22); + this.tb_Coverage_MaxLon.TabIndex = 2; + this.tb_Coverage_MaxLon.Text = "30"; + this.tb_Coverage_MaxLon.Value = global::AirScout.Properties.Settings.Default.MaxLon; + this.tb_Coverage_MaxLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update); + // + // tb_Coverage_MinLon + // + this.tb_Coverage_MinLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Coverage_MinLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Coverage_MinLon.FormatSpecifier = "F0"; + this.tb_Coverage_MinLon.Location = new System.Drawing.Point(589, 337); + this.tb_Coverage_MinLon.MaxValue = 180D; + this.tb_Coverage_MinLon.MinValue = -180D; + this.tb_Coverage_MinLon.Name = "tb_Coverage_MinLon"; + this.tb_Coverage_MinLon.Size = new System.Drawing.Size(50, 22); + this.tb_Coverage_MinLon.TabIndex = 1; + this.tb_Coverage_MinLon.Text = "-15"; + this.tb_Coverage_MinLon.Value = global::AirScout.Properties.Settings.Default.MinLon; + this.tb_Coverage_MinLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update); + // // gm_Options_Coverage // this.gm_Options_Coverage.Bearing = 0F; @@ -2747,6 +3817,7 @@ this.gm_Options_Coverage.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; this.gm_Options_Coverage.Name = "gm_Options_Coverage"; this.gm_Options_Coverage.NegativeMode = false; + this.gm_Options_Coverage.Opacity = 1D; this.gm_Options_Coverage.PolygonsEnabled = true; this.gm_Options_Coverage.RetryLoadTile = 0; this.gm_Options_Coverage.RoutesEnabled = true; @@ -2813,6 +3884,7 @@ this.tc_Options.Controls.Add(this.tab_Options_Network); this.tc_Options.Controls.Add(this.tab_Options_SpecLab); this.tc_Options.Controls.Add(this.tab_Options_Track); + this.tc_Options.Controls.Add(this.tab_Options_CAT); this.tc_Options.Controls.Add(this.tab_Options_Watchlist); this.tc_Options.Controls.Add(this.tab_Options_Misc); this.tc_Options.Controls.Add(this.tab_Options_Info); @@ -2891,6 +3963,20 @@ this.gb_Options_Database_Settings.TabStop = false; this.gb_Options_Database_Settings.Text = "Background Update and Pre-Calculation Settings"; // + // cb_Options_Background_Calculations_Enable + // + this.cb_Options_Background_Calculations_Enable.AutoSize = true; + this.cb_Options_Background_Calculations_Enable.Checked = global::AirScout.Properties.Settings.Default.Background_Calculations_Enable; + this.cb_Options_Background_Calculations_Enable.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Background_Calculations_Enable.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Background_Calculations_Enable", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Background_Calculations_Enable.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Background_Calculations_Enable.Location = new System.Drawing.Point(22, 126); + this.cb_Options_Background_Calculations_Enable.Name = "cb_Options_Background_Calculations_Enable"; + this.cb_Options_Background_Calculations_Enable.Size = new System.Drawing.Size(308, 17); + this.cb_Options_Background_Calculations_Enable.TabIndex = 6; + this.cb_Options_Background_Calculations_Enable.Text = "Enable Background Pre-Calculations for paths/horizons etc."; + this.cb_Options_Background_Calculations_Enable.UseVisualStyleBackColor = true; + // // label47 // this.label47.AutoSize = true; @@ -2901,6 +3987,26 @@ this.label47.TabIndex = 5; this.label47.Text = "Update interval [min]:"; // + // ud_Options_Database_Update_Period + // + this.ud_Options_Database_Update_Period.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Background_Update_Period", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ud_Options_Database_Update_Period.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_Database_Update_Period.Location = new System.Drawing.Point(278, 84); + this.ud_Options_Database_Update_Period.Maximum = new decimal(new int[] { + 6000, + 0, + 0, + 0}); + this.ud_Options_Database_Update_Period.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.ud_Options_Database_Update_Period.Name = "ud_Options_Database_Update_Period"; + this.ud_Options_Database_Update_Period.Size = new System.Drawing.Size(39, 20); + this.ud_Options_Database_Update_Period.TabIndex = 3; + this.ud_Options_Database_Update_Period.Value = global::AirScout.Properties.Settings.Default.Background_Update_Period; + // // rb_Options_Database_Update_Periodically // this.rb_Options_Database_Update_Periodically.AutoSize = true; @@ -3521,7 +4627,7 @@ this.label104.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label104.Location = new System.Drawing.Point(60, 10); this.label104.Name = "label104"; - this.label104.Size = new System.Drawing.Size(473, 16); + this.label104.Size = new System.Drawing.Size(472, 16); this.label104.TabIndex = 10; this.label104.Text = "This box is showing general info about the SQLite databases used by AirScout."; // @@ -3680,6 +4786,7 @@ this.gm_Options_ASTER3.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; this.gm_Options_ASTER3.Name = "gm_Options_ASTER3"; this.gm_Options_ASTER3.NegativeMode = false; + this.gm_Options_ASTER3.Opacity = 1D; this.gm_Options_ASTER3.PolygonsEnabled = true; this.gm_Options_ASTER3.RetryLoadTile = 0; this.gm_Options_ASTER3.RoutesEnabled = true; @@ -3701,6 +4808,34 @@ this.groupBox53.TabStop = false; this.groupBox53.Text = "Use Elevation Model"; // + // cb_Options_Elevation_ASTER3_EnableCache + // + this.cb_Options_Elevation_ASTER3_EnableCache.AutoSize = true; + this.cb_Options_Elevation_ASTER3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_EnableCache; + this.cb_Options_Elevation_ASTER3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_ASTER3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_ASTER3_EnableCache.Location = new System.Drawing.Point(6, 42); + this.cb_Options_Elevation_ASTER3_EnableCache.Name = "cb_Options_Elevation_ASTER3_EnableCache"; + this.cb_Options_Elevation_ASTER3_EnableCache.Size = new System.Drawing.Size(179, 17); + this.cb_Options_Elevation_ASTER3_EnableCache.TabIndex = 13; + this.cb_Options_Elevation_ASTER3_EnableCache.Tag = ""; + this.cb_Options_Elevation_ASTER3_EnableCache.Text = "Keep downloaded elevation tiles"; + this.cb_Options_Elevation_ASTER3_EnableCache.UseVisualStyleBackColor = true; + // + // cb_Options_Elevation_ASTER3 + // + this.cb_Options_Elevation_ASTER3.AutoSize = true; + this.cb_Options_Elevation_ASTER3.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_Enabled; + this.cb_Options_Elevation_ASTER3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_ASTER3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_ASTER3.Location = new System.Drawing.Point(6, 19); + this.cb_Options_Elevation_ASTER3.Name = "cb_Options_Elevation_ASTER3"; + this.cb_Options_Elevation_ASTER3.Size = new System.Drawing.Size(160, 17); + this.cb_Options_Elevation_ASTER3.TabIndex = 12; + this.cb_Options_Elevation_ASTER3.Tag = ""; + this.cb_Options_Elevation_ASTER3.Text = "Use ASTER3 elevation data"; + this.cb_Options_Elevation_ASTER3.UseVisualStyleBackColor = true; + // // tba_Option_ASTER1 // this.tba_Option_ASTER1.BackColor = System.Drawing.SystemColors.Control; @@ -3776,6 +4911,7 @@ this.gm_Options_ASTER1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; this.gm_Options_ASTER1.Name = "gm_Options_ASTER1"; this.gm_Options_ASTER1.NegativeMode = false; + this.gm_Options_ASTER1.Opacity = 1D; this.gm_Options_ASTER1.PolygonsEnabled = true; this.gm_Options_ASTER1.RetryLoadTile = 0; this.gm_Options_ASTER1.RoutesEnabled = true; @@ -3797,6 +4933,34 @@ this.groupBox56.TabStop = false; this.groupBox56.Text = "Use Elevation Model"; // + // cb_Options_Elevation_ASTER1_EnableCache + // + this.cb_Options_Elevation_ASTER1_EnableCache.AutoSize = true; + this.cb_Options_Elevation_ASTER1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_EnableCache; + this.cb_Options_Elevation_ASTER1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_ASTER1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_ASTER1_EnableCache.Location = new System.Drawing.Point(6, 42); + this.cb_Options_Elevation_ASTER1_EnableCache.Name = "cb_Options_Elevation_ASTER1_EnableCache"; + this.cb_Options_Elevation_ASTER1_EnableCache.Size = new System.Drawing.Size(179, 17); + this.cb_Options_Elevation_ASTER1_EnableCache.TabIndex = 13; + this.cb_Options_Elevation_ASTER1_EnableCache.Tag = ""; + this.cb_Options_Elevation_ASTER1_EnableCache.Text = "Keep downloaded elevation tiles"; + this.cb_Options_Elevation_ASTER1_EnableCache.UseVisualStyleBackColor = true; + // + // cb_Options_Elevation_ASTER1 + // + this.cb_Options_Elevation_ASTER1.AutoSize = true; + this.cb_Options_Elevation_ASTER1.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_Enabled; + this.cb_Options_Elevation_ASTER1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Elevation_ASTER1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Elevation_ASTER1.Location = new System.Drawing.Point(6, 19); + this.cb_Options_Elevation_ASTER1.Name = "cb_Options_Elevation_ASTER1"; + this.cb_Options_Elevation_ASTER1.Size = new System.Drawing.Size(160, 17); + this.cb_Options_Elevation_ASTER1.TabIndex = 12; + this.cb_Options_Elevation_ASTER1.Tag = ""; + this.cb_Options_Elevation_ASTER1.Text = "Use ASTER1 elevation data"; + this.cb_Options_Elevation_ASTER1.UseVisualStyleBackColor = true; + // // tab_Options_Alarm // this.tab_Options_Alarm.BackColor = System.Drawing.SystemColors.Control; @@ -3821,6 +4985,20 @@ this.groupBox21.TabStop = false; this.groupBox21.Text = "Activate Alarm"; // + // cb_Options_Alarm_Activate + // + this.cb_Options_Alarm_Activate.AutoSize = true; + this.cb_Options_Alarm_Activate.Checked = global::AirScout.Properties.Settings.Default.Alarm_Activate; + this.cb_Options_Alarm_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Alarm_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Alarm_Activate.Location = new System.Drawing.Point(13, 19); + this.cb_Options_Alarm_Activate.Name = "cb_Options_Alarm_Activate"; + this.cb_Options_Alarm_Activate.Size = new System.Drawing.Size(94, 17); + this.cb_Options_Alarm_Activate.TabIndex = 1; + this.cb_Options_Alarm_Activate.Tag = ""; + this.cb_Options_Alarm_Activate.Text = "Activate Alarm"; + this.cb_Options_Alarm_Activate.UseVisualStyleBackColor = true; + // // groupBox19 // this.groupBox19.Controls.Add(this.cb_Options_Alarm_PlaySound); @@ -3833,6 +5011,21 @@ this.groupBox19.TabStop = false; this.groupBox19.Text = "Alarm Settings"; // + // cb_Options_Alarm_PlaySound + // + this.cb_Options_Alarm_PlaySound.AutoSize = true; + this.cb_Options_Alarm_PlaySound.Checked = global::AirScout.Properties.Settings.Default.Alarm_PlaySound; + this.cb_Options_Alarm_PlaySound.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Alarm_PlaySound.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_PlaySound", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Alarm_PlaySound.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Alarm_PlaySound.Location = new System.Drawing.Point(13, 53); + this.cb_Options_Alarm_PlaySound.Name = "cb_Options_Alarm_PlaySound"; + this.cb_Options_Alarm_PlaySound.Size = new System.Drawing.Size(78, 17); + this.cb_Options_Alarm_PlaySound.TabIndex = 1; + this.cb_Options_Alarm_PlaySound.Tag = ""; + this.cb_Options_Alarm_PlaySound.Text = "Play sound"; + this.cb_Options_Alarm_PlaySound.UseVisualStyleBackColor = true; + // // cb_Options_Alarm_BringWindowToFront // this.cb_Options_Alarm_BringWindowToFront.AutoSize = true; @@ -3860,6 +5053,20 @@ this.groupBox20.TabStop = false; this.groupBox20.Text = "Generate Alarm"; // + // tb_Options_Alarm_Distance + // + this.tb_Options_Alarm_Distance.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Alarm_Distance", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Alarm_Distance.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Alarm_Distance.FormatSpecifier = "F0"; + this.tb_Options_Alarm_Distance.Location = new System.Drawing.Point(143, 49); + this.tb_Options_Alarm_Distance.MaxValue = 1000D; + this.tb_Options_Alarm_Distance.MinValue = 0D; + this.tb_Options_Alarm_Distance.Name = "tb_Options_Alarm_Distance"; + this.tb_Options_Alarm_Distance.Size = new System.Drawing.Size(75, 22); + this.tb_Options_Alarm_Distance.TabIndex = 3; + this.tb_Options_Alarm_Distance.Text = "100"; + this.tb_Options_Alarm_Distance.Value = global::AirScout.Properties.Settings.Default.Alarm_Distance; + // // label36 // this.label36.AutoSize = true; @@ -3920,6 +5127,20 @@ this.groupBox32.TabStop = false; this.groupBox32.Text = "HTTP Server Settings"; // + // tb_Options_Webserver_Port + // + this.tb_Options_Webserver_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Webserver_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Webserver_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Webserver_Port.FormatSpecifier = "F0"; + this.tb_Options_Webserver_Port.Location = new System.Drawing.Point(150, 28); + this.tb_Options_Webserver_Port.MaxValue = 65535; + this.tb_Options_Webserver_Port.MinValue = 0; + this.tb_Options_Webserver_Port.Name = "tb_Options_Webserver_Port"; + this.tb_Options_Webserver_Port.Size = new System.Drawing.Size(57, 22); + this.tb_Options_Webserver_Port.TabIndex = 8; + this.tb_Options_Webserver_Port.Text = "9880"; + this.tb_Options_Webserver_Port.Value = global::AirScout.Properties.Settings.Default.Webserver_Port; + // // label85 // this.label85.AutoSize = true; @@ -3942,6 +5163,20 @@ this.groupBox31.TabStop = false; this.groupBox31.Text = "Activate Server"; // + // cb_Options_Server_Activate + // + this.cb_Options_Server_Activate.AutoSize = true; + this.cb_Options_Server_Activate.Checked = global::AirScout.Properties.Settings.Default.Server_Activate; + this.cb_Options_Server_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Server_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Server_Activate.Location = new System.Drawing.Point(13, 23); + this.cb_Options_Server_Activate.Name = "cb_Options_Server_Activate"; + this.cb_Options_Server_Activate.Size = new System.Drawing.Size(142, 17); + this.cb_Options_Server_Activate.TabIndex = 1; + this.cb_Options_Server_Activate.Tag = ""; + this.cb_Options_Server_Activate.Text = "Activate Network Server"; + this.cb_Options_Server_Activate.UseVisualStyleBackColor = true; + // // label3 // this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -3965,6 +5200,20 @@ this.groupBox24.TabStop = false; this.groupBox24.Text = "UDP Server Settings"; // + // tb_Options_Server_Port + // + this.tb_Options_Server_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Server_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Server_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Server_Port.FormatSpecifier = "F0"; + this.tb_Options_Server_Port.Location = new System.Drawing.Point(153, 56); + this.tb_Options_Server_Port.MaxValue = 65535; + this.tb_Options_Server_Port.MinValue = 0; + this.tb_Options_Server_Port.Name = "tb_Options_Server_Port"; + this.tb_Options_Server_Port.Size = new System.Drawing.Size(57, 22); + this.tb_Options_Server_Port.TabIndex = 6; + this.tb_Options_Server_Port.Text = "9872"; + this.tb_Options_Server_Port.Value = global::AirScout.Properties.Settings.Default.Server_Port; + // // label6 // this.label6.AutoSize = true; @@ -3985,6 +5234,18 @@ this.label4.TabIndex = 4; this.label4.Text = "AirScout UDP Server Name:"; // + // tb_Options_Server_Name + // + this.tb_Options_Server_Name.BackColor = System.Drawing.Color.FloralWhite; + this.tb_Options_Server_Name.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Server_Name", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Server_Name.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Server_Name.Location = new System.Drawing.Point(153, 30); + this.tb_Options_Server_Name.Name = "tb_Options_Server_Name"; + this.tb_Options_Server_Name.Size = new System.Drawing.Size(57, 20); + this.tb_Options_Server_Name.TabIndex = 2; + this.tb_Options_Server_Name.Tag = ""; + this.tb_Options_Server_Name.Text = global::AirScout.Properties.Settings.Default.Server_Name; + // // tab_Options_SpecLab // this.tab_Options_SpecLab.BackColor = System.Drawing.SystemColors.Control; @@ -4022,6 +5283,48 @@ this.groupBox3.TabStop = false; this.groupBox3.Text = "Spectrum Lab Settings"; // + // tb_Options_SpecLab_UpdateInterval + // + this.tb_Options_SpecLab_UpdateInterval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_SpecLab_UpdateInterval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_SpecLab_UpdateInterval.FormatSpecifier = "F1"; + this.tb_Options_SpecLab_UpdateInterval.Location = new System.Drawing.Point(106, 230); + this.tb_Options_SpecLab_UpdateInterval.MaxValue = 100D; + this.tb_Options_SpecLab_UpdateInterval.MinValue = 0D; + this.tb_Options_SpecLab_UpdateInterval.Name = "tb_Options_SpecLab_UpdateInterval"; + this.tb_Options_SpecLab_UpdateInterval.Size = new System.Drawing.Size(63, 22); + this.tb_Options_SpecLab_UpdateInterval.TabIndex = 18; + this.tb_Options_SpecLab_UpdateInterval.Text = "1.0"; + this.tb_Options_SpecLab_UpdateInterval.Value = global::AirScout.Properties.Settings.Default.SpecLab_Update; + // + // tb_Options_SpecLab_F2 + // + this.tb_Options_SpecLab_F2.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F2", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_SpecLab_F2.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_SpecLab_F2.FormatSpecifier = "F0"; + this.tb_Options_SpecLab_F2.Location = new System.Drawing.Point(109, 205); + this.tb_Options_SpecLab_F2.MaxValue = 10000; + this.tb_Options_SpecLab_F2.MinValue = 0; + this.tb_Options_SpecLab_F2.Name = "tb_Options_SpecLab_F2"; + this.tb_Options_SpecLab_F2.Size = new System.Drawing.Size(60, 22); + this.tb_Options_SpecLab_F2.TabIndex = 17; + this.tb_Options_SpecLab_F2.Text = "1600"; + this.tb_Options_SpecLab_F2.Value = global::AirScout.Properties.Settings.Default.SpecLab_F2; + // + // tb_Options_SpecLab_F1 + // + this.tb_Options_SpecLab_F1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F1", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_SpecLab_F1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_SpecLab_F1.FormatSpecifier = "F0"; + this.tb_Options_SpecLab_F1.Location = new System.Drawing.Point(109, 179); + this.tb_Options_SpecLab_F1.MaxValue = 10000; + this.tb_Options_SpecLab_F1.MinValue = 0; + this.tb_Options_SpecLab_F1.Name = "tb_Options_SpecLab_F1"; + this.tb_Options_SpecLab_F1.Size = new System.Drawing.Size(60, 22); + this.tb_Options_SpecLab_F1.TabIndex = 16; + this.tb_Options_SpecLab_F1.Text = "400"; + this.tb_Options_SpecLab_F1.Value = global::AirScout.Properties.Settings.Default.SpecLab_F1; + // // label70 // this.label70.AutoSize = true; @@ -4082,6 +5385,18 @@ this.label66.TabIndex = 8; this.label66.Text = "F1:"; // + // tb_SpecLab_FileName + // + this.tb_SpecLab_FileName.BackColor = System.Drawing.Color.FloralWhite; + this.tb_SpecLab_FileName.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_FileName", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_SpecLab_FileName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_SpecLab_FileName.Location = new System.Drawing.Point(109, 153); + this.tb_SpecLab_FileName.Name = "tb_SpecLab_FileName"; + this.tb_SpecLab_FileName.Size = new System.Drawing.Size(347, 20); + this.tb_SpecLab_FileName.TabIndex = 6; + this.tb_SpecLab_FileName.Tag = ""; + this.tb_SpecLab_FileName.Text = global::AirScout.Properties.Settings.Default.SpecLab_FileName; + // // label63 // this.label63.AutoSize = true; @@ -4111,68 +5426,637 @@ this.label65.TabIndex = 3; this.label65.Text = resources.GetString("label65.Text"); // + // tb_SpecLab_URL + // + this.tb_SpecLab_URL.BackColor = System.Drawing.Color.FloralWhite; + this.tb_SpecLab_URL.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_SpecLab_URL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_SpecLab_URL.Location = new System.Drawing.Point(109, 126); + this.tb_SpecLab_URL.Name = "tb_SpecLab_URL"; + this.tb_SpecLab_URL.Size = new System.Drawing.Size(347, 20); + this.tb_SpecLab_URL.TabIndex = 2; + this.tb_SpecLab_URL.Tag = ""; + this.tb_SpecLab_URL.Text = global::AirScout.Properties.Settings.Default.SpecLab_URL; + // + // cb_SpecLab_Enabled + // + this.cb_SpecLab_Enabled.AutoSize = true; + this.cb_SpecLab_Enabled.Checked = global::AirScout.Properties.Settings.Default.SpecLab_Enabled; + this.cb_SpecLab_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "SpecLab_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_SpecLab_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_SpecLab_Enabled.Location = new System.Drawing.Point(18, 90); + this.cb_SpecLab_Enabled.Name = "cb_SpecLab_Enabled"; + this.cb_SpecLab_Enabled.Size = new System.Drawing.Size(122, 17); + this.cb_SpecLab_Enabled.TabIndex = 1; + this.cb_SpecLab_Enabled.Tag = ""; + this.cb_SpecLab_Enabled.Text = "Activate Connection"; + this.cb_SpecLab_Enabled.UseVisualStyleBackColor = true; + // // tab_Options_Track // this.tab_Options_Track.BackColor = System.Drawing.SystemColors.Control; - this.tab_Options_Track.Controls.Add(this.groupBox36); - this.tab_Options_Track.Controls.Add(this.groupBox35); - this.tab_Options_Track.Controls.Add(this.groupBox34); - this.tab_Options_Track.Controls.Add(this.groupBox33); + this.tab_Options_Track.Controls.Add(this.gb_Options_Doppler); + this.tab_Options_Track.Controls.Add(this.gb_Options_Track_File); + this.tab_Options_Track.Controls.Add(this.gb_Options_Track_DDE); + this.tab_Options_Track.Controls.Add(this.gb_Options_Track_UDP); + this.tab_Options_Track.Controls.Add(this.gb_Options_Track_Serial); this.tab_Options_Track.Controls.Add(this.groupBox28); this.tab_Options_Track.Location = new System.Drawing.Point(4, 40); this.tab_Options_Track.Name = "tab_Options_Track"; this.tab_Options_Track.Size = new System.Drawing.Size(671, 480); this.tab_Options_Track.TabIndex = 14; this.tab_Options_Track.Text = "Track"; + this.tab_Options_Track.Enter += new System.EventHandler(this.tab_Options_Track_Enter); this.tab_Options_Track.Validating += new System.ComponentModel.CancelEventHandler(this.tc_Track_Validating); // - // groupBox36 + // gb_Options_Doppler // - this.groupBox36.Controls.Add(this.rb_Options_Track_File_None); - this.groupBox36.Controls.Add(this.rb_Options_Track_File_WSJT); - this.groupBox36.Controls.Add(this.rb_Options_Track_File_Native); - this.groupBox36.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.groupBox36.Location = new System.Drawing.Point(16, 347); - this.groupBox36.Name = "groupBox36"; - this.groupBox36.Size = new System.Drawing.Size(619, 96); - this.groupBox36.TabIndex = 12; - this.groupBox36.TabStop = false; - this.groupBox36.Text = "File Output"; + this.gb_Options_Doppler.Controls.Add(this.label150); + this.gb_Options_Doppler.Controls.Add(this.tb_Options_Track_DialFreq); + this.gb_Options_Doppler.Controls.Add(this.label180); + this.gb_Options_Doppler.Controls.Add(this.label181); + this.gb_Options_Doppler.Controls.Add(this.label182); + this.gb_Options_Doppler.Controls.Add(this.label183); + this.gb_Options_Doppler.Controls.Add(this.label184); + this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_None); + this.gb_Options_Doppler.Controls.Add(this.label178); + this.gb_Options_Doppler.Controls.Add(this.label179); + this.gb_Options_Doppler.Controls.Add(this.label176); + this.gb_Options_Doppler.Controls.Add(this.label177); + this.gb_Options_Doppler.Controls.Add(this.label174); + this.gb_Options_Doppler.Controls.Add(this.label175); + this.gb_Options_Doppler.Controls.Add(this.label172); + this.gb_Options_Doppler.Controls.Add(this.label173); + this.gb_Options_Doppler.Controls.Add(this.label170); + this.gb_Options_Doppler.Controls.Add(this.label171); + this.gb_Options_Doppler.Controls.Add(this.label168); + this.gb_Options_Doppler.Controls.Add(this.label169); + this.gb_Options_Doppler.Controls.Add(this.label166); + this.gb_Options_Doppler.Controls.Add(this.label167); + this.gb_Options_Doppler.Controls.Add(this.label165); + this.gb_Options_Doppler.Controls.Add(this.label163); + this.gb_Options_Doppler.Controls.Add(this.label164); + this.gb_Options_Doppler.Controls.Add(this.label162); + this.gb_Options_Doppler.Controls.Add(this.label161); + this.gb_Options_Doppler.Controls.Add(this.label160); + this.gb_Options_Doppler.Controls.Add(this.label159); + this.gb_Options_Doppler.Controls.Add(this.label158); + this.gb_Options_Doppler.Controls.Add(this.label157); + this.gb_Options_Doppler.Controls.Add(this.label156); + this.gb_Options_Doppler.Controls.Add(this.label155); + this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_D); + this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_C); + this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_B); + this.gb_Options_Doppler.Controls.Add(this.rb_Options_Doppler_Strategy_A); + this.gb_Options_Doppler.Controls.Add(this.label154); + this.gb_Options_Doppler.Controls.Add(this.label153); + this.gb_Options_Doppler.Controls.Add(this.label152); + this.gb_Options_Doppler.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_Doppler.Location = new System.Drawing.Point(16, 246); + this.gb_Options_Doppler.Name = "gb_Options_Doppler"; + this.gb_Options_Doppler.Size = new System.Drawing.Size(640, 226); + this.gb_Options_Doppler.TabIndex = 14; + this.gb_Options_Doppler.TabStop = false; + this.gb_Options_Doppler.Text = "Doppler Compensation (requires activated CAT and Rig connected)"; // - // groupBox35 + // label150 // - this.groupBox35.Controls.Add(this.rb_Options_Track_DDE_None); - this.groupBox35.Controls.Add(this.rb_Options_Track_DDE_HRD); - this.groupBox35.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.groupBox35.Location = new System.Drawing.Point(16, 261); - this.groupBox35.Name = "groupBox35"; - this.groupBox35.Size = new System.Drawing.Size(619, 80); - this.groupBox35.TabIndex = 11; - this.groupBox35.TabStop = false; - this.groupBox35.Text = "DDE Output"; + this.label150.AutoSize = true; + this.label150.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label150.Location = new System.Drawing.Point(584, 41); + this.label150.Name = "label150"; + this.label150.Size = new System.Drawing.Size(23, 16); + this.label150.TabIndex = 59; + this.label150.Text = "Hz"; // - // groupBox34 + // label180 // - this.groupBox34.Controls.Add(this.tb_Options_Track_UDP_AirScout_Port); - this.groupBox34.Controls.Add(this.tb_Options_Track_UDP_WinTest_Port); - this.groupBox34.Controls.Add(this.label90); - this.groupBox34.Controls.Add(this.label89); - this.groupBox34.Controls.Add(this.rb_Options_Track_UDP_None); - this.groupBox34.Controls.Add(this.rb_Options_Track_UDP_AirScout); - this.groupBox34.Controls.Add(this.rb_Options_Track_UDP_WinTest); - this.groupBox34.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.groupBox34.Location = new System.Drawing.Point(16, 157); - this.groupBox34.Name = "groupBox34"; - this.groupBox34.Size = new System.Drawing.Size(619, 98); - this.groupBox34.TabIndex = 10; - this.groupBox34.TabStop = false; - this.groupBox34.Text = "Network Output"; + this.label180.AutoSize = true; + this.label180.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label180.Location = new System.Drawing.Point(538, 123); + this.label180.Name = "label180"; + this.label180.Size = new System.Drawing.Size(19, 13); + this.label180.TabIndex = 58; + this.label180.Text = "no"; + // + // label181 + // + this.label181.AutoSize = true; + this.label181.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label181.Location = new System.Drawing.Point(585, 123); + this.label181.Name = "label181"; + this.label181.Size = new System.Drawing.Size(19, 13); + this.label181.TabIndex = 57; + this.label181.Text = "no"; + // + // label182 + // + this.label182.AutoSize = true; + this.label182.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label182.Location = new System.Drawing.Point(55, 123); + this.label182.Name = "label182"; + this.label182.Size = new System.Drawing.Size(19, 13); + this.label182.TabIndex = 56; + this.label182.Text = "no"; + // + // label183 + // + this.label183.AutoSize = true; + this.label183.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label183.Location = new System.Drawing.Point(102, 123); + this.label183.Name = "label183"; + this.label183.Size = new System.Drawing.Size(19, 13); + this.label183.TabIndex = 55; + this.label183.Text = "no"; + // + // label184 + // + this.label184.AutoSize = true; + this.label184.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label184.Location = new System.Drawing.Point(265, 123); + this.label184.Name = "label184"; + this.label184.Size = new System.Drawing.Size(33, 13); + this.label184.TabIndex = 54; + this.label184.Text = "None"; + // + // rb_Options_Doppler_Strategy_None + // + this.rb_Options_Doppler_Strategy_None.AutoSize = true; + this.rb_Options_Doppler_Strategy_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Doppler_Strategy_None.Location = new System.Drawing.Point(16, 123); + this.rb_Options_Doppler_Strategy_None.Name = "rb_Options_Doppler_Strategy_None"; + this.rb_Options_Doppler_Strategy_None.Size = new System.Drawing.Size(14, 13); + this.rb_Options_Doppler_Strategy_None.TabIndex = 53; + this.rb_Options_Doppler_Strategy_None.Tag = ""; + this.rb_Options_Doppler_Strategy_None.UseVisualStyleBackColor = true; + this.rb_Options_Doppler_Strategy_None.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged); + // + // label178 + // + this.label178.AutoSize = true; + this.label178.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label178.Location = new System.Drawing.Point(538, 200); + this.label178.Name = "label178"; + this.label178.Size = new System.Drawing.Size(23, 13); + this.label178.TabIndex = 52; + this.label178.Text = "yes"; + // + // label179 + // + this.label179.AutoSize = true; + this.label179.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label179.Location = new System.Drawing.Point(585, 200); + this.label179.Name = "label179"; + this.label179.Size = new System.Drawing.Size(23, 13); + this.label179.TabIndex = 51; + this.label179.Text = "yes"; + // + // label176 + // + this.label176.AutoSize = true; + this.label176.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label176.Location = new System.Drawing.Point(538, 182); + this.label176.Name = "label176"; + this.label176.Size = new System.Drawing.Size(19, 13); + this.label176.TabIndex = 50; + this.label176.Text = "no"; + // + // label177 + // + this.label177.AutoSize = true; + this.label177.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label177.Location = new System.Drawing.Point(585, 182); + this.label177.Name = "label177"; + this.label177.Size = new System.Drawing.Size(19, 13); + this.label177.TabIndex = 49; + this.label177.Text = "no"; + // + // label174 + // + this.label174.AutoSize = true; + this.label174.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label174.Location = new System.Drawing.Point(538, 162); + this.label174.Name = "label174"; + this.label174.Size = new System.Drawing.Size(23, 13); + this.label174.TabIndex = 48; + this.label174.Text = "yes"; + // + // label175 + // + this.label175.AutoSize = true; + this.label175.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label175.Location = new System.Drawing.Point(585, 162); + this.label175.Name = "label175"; + this.label175.Size = new System.Drawing.Size(19, 13); + this.label175.TabIndex = 47; + this.label175.Text = "no"; + // + // label172 + // + this.label172.AutoSize = true; + this.label172.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label172.Location = new System.Drawing.Point(538, 142); + this.label172.Name = "label172"; + this.label172.Size = new System.Drawing.Size(19, 13); + this.label172.TabIndex = 46; + this.label172.Text = "no"; + // + // label173 + // + this.label173.AutoSize = true; + this.label173.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label173.Location = new System.Drawing.Point(585, 142); + this.label173.Name = "label173"; + this.label173.Size = new System.Drawing.Size(23, 13); + this.label173.TabIndex = 45; + this.label173.Text = "yes"; + // + // label170 + // + this.label170.AutoSize = true; + this.label170.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label170.Location = new System.Drawing.Point(55, 202); + this.label170.Name = "label170"; + this.label170.Size = new System.Drawing.Size(23, 13); + this.label170.TabIndex = 44; + this.label170.Text = "yes"; + // + // label171 + // + this.label171.AutoSize = true; + this.label171.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label171.Location = new System.Drawing.Point(102, 202); + this.label171.Name = "label171"; + this.label171.Size = new System.Drawing.Size(23, 13); + this.label171.TabIndex = 43; + this.label171.Text = "yes"; + // + // label168 + // + this.label168.AutoSize = true; + this.label168.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label168.Location = new System.Drawing.Point(55, 182); + this.label168.Name = "label168"; + this.label168.Size = new System.Drawing.Size(23, 13); + this.label168.TabIndex = 42; + this.label168.Text = "yes"; + // + // label169 + // + this.label169.AutoSize = true; + this.label169.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label169.Location = new System.Drawing.Point(102, 182); + this.label169.Name = "label169"; + this.label169.Size = new System.Drawing.Size(23, 13); + this.label169.TabIndex = 41; + this.label169.Text = "yes"; + // + // label166 + // + this.label166.AutoSize = true; + this.label166.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label166.Location = new System.Drawing.Point(55, 162); + this.label166.Name = "label166"; + this.label166.Size = new System.Drawing.Size(23, 13); + this.label166.TabIndex = 40; + this.label166.Text = "yes"; + // + // label167 + // + this.label167.AutoSize = true; + this.label167.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label167.Location = new System.Drawing.Point(102, 162); + this.label167.Name = "label167"; + this.label167.Size = new System.Drawing.Size(19, 13); + this.label167.TabIndex = 39; + this.label167.Text = "no"; + // + // label165 + // + this.label165.AutoSize = true; + this.label165.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label165.Location = new System.Drawing.Point(55, 142); + this.label165.Name = "label165"; + this.label165.Size = new System.Drawing.Size(19, 13); + this.label165.TabIndex = 38; + this.label165.Text = "no"; + // + // label163 + // + this.label163.AutoSize = true; + this.label163.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label163.Location = new System.Drawing.Point(581, 103); + this.label163.Name = "label163"; + this.label163.Size = new System.Drawing.Size(24, 13); + this.label163.TabIndex = 37; + this.label163.Text = "RX"; + // + // label164 + // + this.label164.AutoSize = true; + this.label164.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label164.Location = new System.Drawing.Point(538, 103); + this.label164.Name = "label164"; + this.label164.Size = new System.Drawing.Size(23, 13); + this.label164.TabIndex = 36; + this.label164.Text = "TX"; + // + // label162 + // + this.label162.AutoSize = true; + this.label162.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label162.Location = new System.Drawing.Point(94, 103); + this.label162.Name = "label162"; + this.label162.Size = new System.Drawing.Size(24, 13); + this.label162.TabIndex = 35; + this.label162.Text = "RX"; + // + // label161 + // + this.label161.AutoSize = true; + this.label161.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label161.Location = new System.Drawing.Point(51, 103); + this.label161.Name = "label161"; + this.label161.Size = new System.Drawing.Size(23, 13); + this.label161.TabIndex = 34; + this.label161.Text = "TX"; + // + // label160 + // + this.label160.AutoSize = true; + this.label160.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label160.Location = new System.Drawing.Point(102, 142); + this.label160.Name = "label160"; + this.label160.Size = new System.Drawing.Size(23, 13); + this.label160.TabIndex = 33; + this.label160.Text = "yes"; + // + // label159 + // + this.label159.AutoSize = true; + this.label159.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label159.Location = new System.Drawing.Point(138, 202); + this.label159.Name = "label159"; + this.label159.Size = new System.Drawing.Size(363, 13); + this.label159.TabIndex = 32; + this.label159.Text = "Constant frequency at aircraft: Both stations have to compensate RX + TX ."; + // + // label158 + // + this.label158.AutoSize = true; + this.label158.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label158.Location = new System.Drawing.Point(138, 182); + this.label158.Name = "label158"; + this.label158.Size = new System.Drawing.Size(343, 13); + this.label158.TabIndex = 31; + this.label158.Text = "Compensate both RX + TX at my station: DX station does nothing at all."; + // + // label157 + // + this.label157.AutoSize = true; + this.label157.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label157.Location = new System.Drawing.Point(138, 162); + this.label157.Name = "label157"; + this.label157.Size = new System.Drawing.Size(333, 13); + this.label157.TabIndex = 30; + this.label157.Text = "Constant RX: Both stations compensate their own TX frequency only."; + // + // label156 + // + this.label156.AutoSize = true; + this.label156.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label156.Location = new System.Drawing.Point(138, 142); + this.label156.Name = "label156"; + this.label156.Size = new System.Drawing.Size(333, 13); + this.label156.TabIndex = 29; + this.label156.Text = "Constant TX: Both stations compensate their own RX frequency only."; + // + // label155 + // + this.label155.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label155.Location = new System.Drawing.Point(5, 24); + this.label155.Name = "label155"; + this.label155.Size = new System.Drawing.Size(267, 60); + this.label155.TabIndex = 28; + this.label155.Text = "You can see the dial frequency from rig here and choose how to compensate Doppler" + + " shift on your site and on DX site."; + // + // rb_Options_Doppler_Strategy_D + // + this.rb_Options_Doppler_Strategy_D.AutoSize = true; + this.rb_Options_Doppler_Strategy_D.Location = new System.Drawing.Point(16, 204); + this.rb_Options_Doppler_Strategy_D.Name = "rb_Options_Doppler_Strategy_D"; + this.rb_Options_Doppler_Strategy_D.Size = new System.Drawing.Size(14, 13); + this.rb_Options_Doppler_Strategy_D.TabIndex = 27; + this.rb_Options_Doppler_Strategy_D.UseVisualStyleBackColor = true; + this.rb_Options_Doppler_Strategy_D.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged); + // + // rb_Options_Doppler_Strategy_C + // + this.rb_Options_Doppler_Strategy_C.AutoSize = true; + this.rb_Options_Doppler_Strategy_C.Location = new System.Drawing.Point(16, 182); + this.rb_Options_Doppler_Strategy_C.Name = "rb_Options_Doppler_Strategy_C"; + this.rb_Options_Doppler_Strategy_C.Size = new System.Drawing.Size(14, 13); + this.rb_Options_Doppler_Strategy_C.TabIndex = 26; + this.rb_Options_Doppler_Strategy_C.UseVisualStyleBackColor = true; + this.rb_Options_Doppler_Strategy_C.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged); + // + // rb_Options_Doppler_Strategy_B + // + this.rb_Options_Doppler_Strategy_B.AutoSize = true; + this.rb_Options_Doppler_Strategy_B.Checked = true; + this.rb_Options_Doppler_Strategy_B.Location = new System.Drawing.Point(16, 162); + this.rb_Options_Doppler_Strategy_B.Name = "rb_Options_Doppler_Strategy_B"; + this.rb_Options_Doppler_Strategy_B.Size = new System.Drawing.Size(14, 13); + this.rb_Options_Doppler_Strategy_B.TabIndex = 25; + this.rb_Options_Doppler_Strategy_B.TabStop = true; + this.rb_Options_Doppler_Strategy_B.UseVisualStyleBackColor = true; + this.rb_Options_Doppler_Strategy_B.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged); + // + // rb_Options_Doppler_Strategy_A + // + this.rb_Options_Doppler_Strategy_A.AutoSize = true; + this.rb_Options_Doppler_Strategy_A.Location = new System.Drawing.Point(16, 142); + this.rb_Options_Doppler_Strategy_A.Name = "rb_Options_Doppler_Strategy_A"; + this.rb_Options_Doppler_Strategy_A.Size = new System.Drawing.Size(14, 13); + this.rb_Options_Doppler_Strategy_A.TabIndex = 24; + this.rb_Options_Doppler_Strategy_A.UseVisualStyleBackColor = true; + this.rb_Options_Doppler_Strategy_A.CheckedChanged += new System.EventHandler(this.gb_Options_Doppler_CheckedChanged); + // + // label154 + // + this.label154.AutoSize = true; + this.label154.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label154.Location = new System.Drawing.Point(223, 85); + this.label154.Name = "label154"; + this.label154.Size = new System.Drawing.Size(134, 13); + this.label154.TabIndex = 23; + this.label154.Text = "Doppler Compensation"; + // + // label153 + // + this.label153.AutoSize = true; + this.label153.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label153.Location = new System.Drawing.Point(538, 85); + this.label153.Name = "label153"; + this.label153.Size = new System.Drawing.Size(68, 13); + this.label153.TabIndex = 22; + this.label153.Text = "DX Station"; + // + // label152 + // + this.label152.AutoSize = true; + this.label152.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label152.Location = new System.Drawing.Point(51, 85); + this.label152.Name = "label152"; + this.label152.Size = new System.Drawing.Size(67, 13); + this.label152.TabIndex = 21; + this.label152.Text = "My Station"; + // + // gb_Options_Track_File + // + this.gb_Options_Track_File.Controls.Add(this.rb_Options_Track_File_None); + this.gb_Options_Track_File.Controls.Add(this.rb_Options_Track_File_WSJT); + this.gb_Options_Track_File.Controls.Add(this.rb_Options_Track_File_Native); + this.gb_Options_Track_File.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_Track_File.Location = new System.Drawing.Point(331, 160); + this.gb_Options_Track_File.Name = "gb_Options_Track_File"; + this.gb_Options_Track_File.Size = new System.Drawing.Size(325, 80); + this.gb_Options_Track_File.TabIndex = 12; + this.gb_Options_Track_File.TabStop = false; + this.gb_Options_Track_File.Text = "Rotator Control File Output"; + // + // rb_Options_Track_File_None + // + this.rb_Options_Track_File_None.AutoSize = true; + this.rb_Options_Track_File_None.Checked = true; + this.rb_Options_Track_File_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_File_None.Location = new System.Drawing.Point(17, 19); + this.rb_Options_Track_File_None.Name = "rb_Options_Track_File_None"; + this.rb_Options_Track_File_None.Size = new System.Drawing.Size(51, 17); + this.rb_Options_Track_File_None.TabIndex = 12; + this.rb_Options_Track_File_None.TabStop = true; + this.rb_Options_Track_File_None.Tag = ""; + this.rb_Options_Track_File_None.Text = "None"; + this.rb_Options_Track_File_None.UseVisualStyleBackColor = true; + this.rb_Options_Track_File_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_File_CheckedChanged); + // + // rb_Options_Track_File_WSJT + // + this.rb_Options_Track_File_WSJT.AutoSize = true; + this.rb_Options_Track_File_WSJT.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_File_WSJT.Location = new System.Drawing.Point(17, 55); + this.rb_Options_Track_File_WSJT.Name = "rb_Options_Track_File_WSJT"; + this.rb_Options_Track_File_WSJT.Size = new System.Drawing.Size(84, 17); + this.rb_Options_Track_File_WSJT.TabIndex = 7; + this.rb_Options_Track_File_WSJT.Tag = ""; + this.rb_Options_Track_File_WSJT.Text = "WSJT Az/El"; + this.rb_Options_Track_File_WSJT.UseVisualStyleBackColor = true; + this.rb_Options_Track_File_WSJT.CheckedChanged += new System.EventHandler(this.gb_Options_Track_File_CheckedChanged); + // + // rb_Options_Track_File_Native + // + this.rb_Options_Track_File_Native.AutoSize = true; + this.rb_Options_Track_File_Native.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_File_Native.Location = new System.Drawing.Point(17, 37); + this.rb_Options_Track_File_Native.Name = "rb_Options_Track_File_Native"; + this.rb_Options_Track_File_Native.Size = new System.Drawing.Size(85, 17); + this.rb_Options_Track_File_Native.TabIndex = 6; + this.rb_Options_Track_File_Native.Tag = ""; + this.rb_Options_Track_File_Native.Text = "Native Az/El"; + this.rb_Options_Track_File_Native.UseVisualStyleBackColor = true; + this.rb_Options_Track_File_Native.CheckedChanged += new System.EventHandler(this.gb_Options_Track_File_CheckedChanged); + // + // gb_Options_Track_DDE + // + this.gb_Options_Track_DDE.Controls.Add(this.rb_Options_Track_DDE_None); + this.gb_Options_Track_DDE.Controls.Add(this.rb_Options_Track_DDE_HRD); + this.gb_Options_Track_DDE.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_Track_DDE.Location = new System.Drawing.Point(16, 160); + this.gb_Options_Track_DDE.Name = "gb_Options_Track_DDE"; + this.gb_Options_Track_DDE.Size = new System.Drawing.Size(309, 80); + this.gb_Options_Track_DDE.TabIndex = 11; + this.gb_Options_Track_DDE.TabStop = false; + this.gb_Options_Track_DDE.Text = "Rotator Control DDE Output"; + // + // rb_Options_Track_DDE_None + // + this.rb_Options_Track_DDE_None.AutoSize = true; + this.rb_Options_Track_DDE_None.Checked = true; + this.rb_Options_Track_DDE_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_DDE_None.Location = new System.Drawing.Point(17, 19); + this.rb_Options_Track_DDE_None.Name = "rb_Options_Track_DDE_None"; + this.rb_Options_Track_DDE_None.Size = new System.Drawing.Size(51, 17); + this.rb_Options_Track_DDE_None.TabIndex = 11; + this.rb_Options_Track_DDE_None.TabStop = true; + this.rb_Options_Track_DDE_None.Tag = ""; + this.rb_Options_Track_DDE_None.Text = "None"; + this.rb_Options_Track_DDE_None.UseVisualStyleBackColor = true; + this.rb_Options_Track_DDE_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_DDE_CheckedChanged); + // + // rb_Options_Track_DDE_HRD + // + this.rb_Options_Track_DDE_HRD.AutoSize = true; + this.rb_Options_Track_DDE_HRD.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_DDE_HRD.Location = new System.Drawing.Point(17, 37); + this.rb_Options_Track_DDE_HRD.Name = "rb_Options_Track_DDE_HRD"; + this.rb_Options_Track_DDE_HRD.Size = new System.Drawing.Size(202, 17); + this.rb_Options_Track_DDE_HRD.TabIndex = 6; + this.rb_Options_Track_DDE_HRD.Tag = ""; + this.rb_Options_Track_DDE_HRD.Text = "Ham Radio Deluxe (HRDRotator.exe)"; + this.rb_Options_Track_DDE_HRD.UseVisualStyleBackColor = true; + this.rb_Options_Track_DDE_HRD.CheckedChanged += new System.EventHandler(this.gb_Options_Track_DDE_CheckedChanged); + // + // gb_Options_Track_UDP + // + this.gb_Options_Track_UDP.Controls.Add(this.tb_Options_Track_UDP_AirScout_Port); + this.gb_Options_Track_UDP.Controls.Add(this.tb_Options_Track_UDP_WinTest_Port); + this.gb_Options_Track_UDP.Controls.Add(this.label90); + this.gb_Options_Track_UDP.Controls.Add(this.label89); + this.gb_Options_Track_UDP.Controls.Add(this.rb_Options_Track_UDP_None); + this.gb_Options_Track_UDP.Controls.Add(this.rb_Options_Track_UDP_AirScout); + this.gb_Options_Track_UDP.Controls.Add(this.rb_Options_Track_UDP_WinTest); + this.gb_Options_Track_UDP.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_Track_UDP.Location = new System.Drawing.Point(331, 64); + this.gb_Options_Track_UDP.Name = "gb_Options_Track_UDP"; + this.gb_Options_Track_UDP.Size = new System.Drawing.Size(325, 90); + this.gb_Options_Track_UDP.TabIndex = 10; + this.gb_Options_Track_UDP.TabStop = false; + this.gb_Options_Track_UDP.Text = "Rotator Control Network Output"; + // + // tb_Options_Track_UDP_AirScout_Port + // + this.tb_Options_Track_UDP_AirScout_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_AirScout_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Track_UDP_AirScout_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Track_UDP_AirScout_Port.FormatSpecifier = "F0"; + this.tb_Options_Track_UDP_AirScout_Port.Location = new System.Drawing.Point(254, 60); + this.tb_Options_Track_UDP_AirScout_Port.MaxValue = 0; + this.tb_Options_Track_UDP_AirScout_Port.MinValue = 0; + this.tb_Options_Track_UDP_AirScout_Port.Name = "tb_Options_Track_UDP_AirScout_Port"; + this.tb_Options_Track_UDP_AirScout_Port.Size = new System.Drawing.Size(43, 22); + this.tb_Options_Track_UDP_AirScout_Port.TabIndex = 17; + this.tb_Options_Track_UDP_AirScout_Port.Text = "9872"; + this.tb_Options_Track_UDP_AirScout_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_AirScout_Port; + // + // tb_Options_Track_UDP_WinTest_Port + // + this.tb_Options_Track_UDP_WinTest_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_WinTest_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Track_UDP_WinTest_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Track_UDP_WinTest_Port.FormatSpecifier = "F0"; + this.tb_Options_Track_UDP_WinTest_Port.Location = new System.Drawing.Point(254, 37); + this.tb_Options_Track_UDP_WinTest_Port.MaxValue = 0; + this.tb_Options_Track_UDP_WinTest_Port.MinValue = 0; + this.tb_Options_Track_UDP_WinTest_Port.Name = "tb_Options_Track_UDP_WinTest_Port"; + this.tb_Options_Track_UDP_WinTest_Port.Size = new System.Drawing.Size(43, 22); + this.tb_Options_Track_UDP_WinTest_Port.TabIndex = 16; + this.tb_Options_Track_UDP_WinTest_Port.Text = "9871"; + this.tb_Options_Track_UDP_WinTest_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_WinTest_Port; // // label90 // this.label90.AutoSize = true; this.label90.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label90.Location = new System.Drawing.Point(491, 75); + this.label90.Location = new System.Drawing.Point(219, 64); this.label90.Name = "label90"; this.label90.Size = new System.Drawing.Size(29, 13); this.label90.TabIndex = 15; @@ -4182,34 +6066,77 @@ // this.label89.AutoSize = true; this.label89.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label89.Location = new System.Drawing.Point(491, 46); + this.label89.Location = new System.Drawing.Point(219, 41); this.label89.Name = "label89"; this.label89.Size = new System.Drawing.Size(29, 13); this.label89.TabIndex = 13; this.label89.Text = "Port:"; // - // groupBox33 + // rb_Options_Track_UDP_None // - this.groupBox33.Controls.Add(this.tb_Options_Track_Serial_Baudrate); - this.groupBox33.Controls.Add(this.rb_Options_Track_Serial_None); - this.groupBox33.Controls.Add(this.label88); - this.groupBox33.Controls.Add(this.label87); - this.groupBox33.Controls.Add(this.tb_Options_Track_Serial_Port); - this.groupBox33.Controls.Add(this.rb_Options_Track_Serial_GS232_AZEL); - this.groupBox33.Controls.Add(this.rb_Options_Track_Serial_GS232_AZ); - this.groupBox33.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.groupBox33.Location = new System.Drawing.Point(16, 64); - this.groupBox33.Name = "groupBox33"; - this.groupBox33.Size = new System.Drawing.Size(619, 87); - this.groupBox33.TabIndex = 9; - this.groupBox33.TabStop = false; - this.groupBox33.Text = "Serial Output"; + this.rb_Options_Track_UDP_None.AutoSize = true; + this.rb_Options_Track_UDP_None.Checked = true; + this.rb_Options_Track_UDP_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_UDP_None.Location = new System.Drawing.Point(17, 19); + this.rb_Options_Track_UDP_None.Name = "rb_Options_Track_UDP_None"; + this.rb_Options_Track_UDP_None.Size = new System.Drawing.Size(51, 17); + this.rb_Options_Track_UDP_None.TabIndex = 11; + this.rb_Options_Track_UDP_None.TabStop = true; + this.rb_Options_Track_UDP_None.Tag = ""; + this.rb_Options_Track_UDP_None.Text = "None"; + this.rb_Options_Track_UDP_None.UseVisualStyleBackColor = true; + this.rb_Options_Track_UDP_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_UDP_CheckedChanged); + // + // rb_Options_Track_UDP_WinTest + // + this.rb_Options_Track_UDP_WinTest.AutoSize = true; + this.rb_Options_Track_UDP_WinTest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_UDP_WinTest.Location = new System.Drawing.Point(17, 42); + this.rb_Options_Track_UDP_WinTest.Name = "rb_Options_Track_UDP_WinTest"; + this.rb_Options_Track_UDP_WinTest.Size = new System.Drawing.Size(188, 17); + this.rb_Options_Track_UDP_WinTest.TabIndex = 6; + this.rb_Options_Track_UDP_WinTest.Tag = ""; + this.rb_Options_Track_UDP_WinTest.Text = "UDP Broadcast (Win-Test) Az only"; + this.rb_Options_Track_UDP_WinTest.UseVisualStyleBackColor = true; + this.rb_Options_Track_UDP_WinTest.CheckedChanged += new System.EventHandler(this.gb_Options_Track_UDP_CheckedChanged); + // + // gb_Options_Track_Serial + // + this.gb_Options_Track_Serial.Controls.Add(this.tb_Options_Track_Serial_Baudrate); + this.gb_Options_Track_Serial.Controls.Add(this.rb_Options_Track_Serial_None); + this.gb_Options_Track_Serial.Controls.Add(this.label88); + this.gb_Options_Track_Serial.Controls.Add(this.label87); + this.gb_Options_Track_Serial.Controls.Add(this.tb_Options_Track_Serial_Port); + this.gb_Options_Track_Serial.Controls.Add(this.rb_Options_Track_Serial_GS232_AZEL); + this.gb_Options_Track_Serial.Controls.Add(this.rb_Options_Track_Serial_GS232_AZ); + this.gb_Options_Track_Serial.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_Track_Serial.Location = new System.Drawing.Point(16, 64); + this.gb_Options_Track_Serial.Name = "gb_Options_Track_Serial"; + this.gb_Options_Track_Serial.Size = new System.Drawing.Size(309, 90); + this.gb_Options_Track_Serial.TabIndex = 9; + this.gb_Options_Track_Serial.TabStop = false; + this.gb_Options_Track_Serial.Text = "Rotator Control Serial Output"; + // + // rb_Options_Track_Serial_None + // + this.rb_Options_Track_Serial_None.AutoSize = true; + this.rb_Options_Track_Serial_None.Checked = true; + this.rb_Options_Track_Serial_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_Serial_None.Location = new System.Drawing.Point(17, 19); + this.rb_Options_Track_Serial_None.Name = "rb_Options_Track_Serial_None"; + this.rb_Options_Track_Serial_None.Size = new System.Drawing.Size(51, 17); + this.rb_Options_Track_Serial_None.TabIndex = 10; + this.rb_Options_Track_Serial_None.TabStop = true; + this.rb_Options_Track_Serial_None.Tag = ""; + this.rb_Options_Track_Serial_None.Text = "None"; + this.rb_Options_Track_Serial_None.UseVisualStyleBackColor = true; + this.rb_Options_Track_Serial_None.CheckedChanged += new System.EventHandler(this.gb_Options_Track_Serial_CheckedChanged); // // label88 // this.label88.AutoSize = true; this.label88.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label88.Location = new System.Drawing.Point(467, 17); + this.label88.Location = new System.Drawing.Point(128, 44); this.label88.Name = "label88"; this.label88.Size = new System.Drawing.Size(53, 13); this.label88.TabIndex = 9; @@ -4219,24 +6146,550 @@ // this.label87.AutoSize = true; this.label87.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label87.Location = new System.Drawing.Point(373, 17); + this.label87.Location = new System.Drawing.Point(134, 21); this.label87.Name = "label87"; this.label87.Size = new System.Drawing.Size(29, 13); this.label87.TabIndex = 7; this.label87.Text = "Port:"; // + // rb_Options_Track_Serial_GS232_AZEL + // + this.rb_Options_Track_Serial_GS232_AZEL.AutoSize = true; + this.rb_Options_Track_Serial_GS232_AZEL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_Serial_GS232_AZEL.Location = new System.Drawing.Point(17, 65); + this.rb_Options_Track_Serial_GS232_AZEL.Name = "rb_Options_Track_Serial_GS232_AZEL"; + this.rb_Options_Track_Serial_GS232_AZEL.Size = new System.Drawing.Size(97, 17); + this.rb_Options_Track_Serial_GS232_AZEL.TabIndex = 5; + this.rb_Options_Track_Serial_GS232_AZEL.Tag = ""; + this.rb_Options_Track_Serial_GS232_AZEL.Text = "GS-232A Az/El"; + this.rb_Options_Track_Serial_GS232_AZEL.UseVisualStyleBackColor = true; + this.rb_Options_Track_Serial_GS232_AZEL.CheckedChanged += new System.EventHandler(this.gb_Options_Track_Serial_CheckedChanged); + // + // rb_Options_Track_Serial_GS232_AZ + // + this.rb_Options_Track_Serial_GS232_AZ.AutoSize = true; + this.rb_Options_Track_Serial_GS232_AZ.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rb_Options_Track_Serial_GS232_AZ.Location = new System.Drawing.Point(17, 42); + this.rb_Options_Track_Serial_GS232_AZ.Name = "rb_Options_Track_Serial_GS232_AZ"; + this.rb_Options_Track_Serial_GS232_AZ.Size = new System.Drawing.Size(105, 17); + this.rb_Options_Track_Serial_GS232_AZ.TabIndex = 0; + this.rb_Options_Track_Serial_GS232_AZ.Tag = ""; + this.rb_Options_Track_Serial_GS232_AZ.Text = "GS-232A Az only"; + this.rb_Options_Track_Serial_GS232_AZ.UseVisualStyleBackColor = true; + this.rb_Options_Track_Serial_GS232_AZ.CheckedChanged += new System.EventHandler(this.gb_Options_Track_Serial_CheckedChanged); + // // groupBox28 // + this.groupBox28.Controls.Add(this.label186); + this.groupBox28.Controls.Add(this.label187); + this.groupBox28.Controls.Add(this.tb_Options_Track_Offset); + this.groupBox28.Controls.Add(this.label185); + this.groupBox28.Controls.Add(this.label151); + this.groupBox28.Controls.Add(this.int32TextBox2); this.groupBox28.Controls.Add(this.cb_Options_Track_Activate); this.groupBox28.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.groupBox28.Location = new System.Drawing.Point(3, 13); + this.groupBox28.Location = new System.Drawing.Point(16, 13); this.groupBox28.Name = "groupBox28"; - this.groupBox28.Size = new System.Drawing.Size(632, 45); + this.groupBox28.Size = new System.Drawing.Size(640, 45); this.groupBox28.TabIndex = 8; this.groupBox28.TabStop = false; - this.groupBox28.Text = "Activate Antenna Tracking"; + this.groupBox28.Text = "Activate Tracking"; this.groupBox28.Enter += new System.EventHandler(this.tab_Options_Track_Enter); // + // label186 + // + this.label186.AutoSize = true; + this.label186.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label186.Location = new System.Drawing.Point(622, 20); + this.label186.Name = "label186"; + this.label186.Size = new System.Drawing.Size(12, 13); + this.label186.TabIndex = 59; + this.label186.Text = "s"; + // + // label187 + // + this.label187.AutoSize = true; + this.label187.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label187.Location = new System.Drawing.Point(454, 20); + this.label187.Name = "label187"; + this.label187.Size = new System.Drawing.Size(109, 13); + this.label187.TabIndex = 58; + this.label187.Text = "Tracking Time Offset:"; + // + // label185 + // + this.label185.AutoSize = true; + this.label185.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label185.Location = new System.Drawing.Point(386, 21); + this.label185.Name = "label185"; + this.label185.Size = new System.Drawing.Size(20, 13); + this.label185.TabIndex = 56; + this.label185.Text = "ms"; + // + // label151 + // + this.label151.AutoSize = true; + this.label151.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label151.Location = new System.Drawing.Point(205, 20); + this.label151.Name = "label151"; + this.label151.Size = new System.Drawing.Size(104, 13); + this.label151.TabIndex = 55; + this.label151.Text = "Track Refresh Rate:"; + // + // tab_Options_CAT + // + this.tab_Options_CAT.BackColor = System.Drawing.SystemColors.Control; + this.tab_Options_CAT.Controls.Add(this.gb_Options_CAT_PortSettings); + this.tab_Options_CAT.Controls.Add(this.gb_Options_CAT_RigType); + this.tab_Options_CAT.Controls.Add(this.gb_Options_CAT_OperatingInstructions); + this.tab_Options_CAT.Controls.Add(this.groupBox57); + this.tab_Options_CAT.Location = new System.Drawing.Point(4, 40); + this.tab_Options_CAT.Name = "tab_Options_CAT"; + this.tab_Options_CAT.Size = new System.Drawing.Size(671, 480); + this.tab_Options_CAT.TabIndex = 20; + this.tab_Options_CAT.Text = "CAT"; + this.tab_Options_CAT.Enter += new System.EventHandler(this.tab_Options_CAT_Enter); + // + // gb_Options_CAT_PortSettings + // + this.gb_Options_CAT_PortSettings.Controls.Add(this.ud_Options_CAT_Timeout); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label149); + this.gb_Options_CAT_PortSettings.Controls.Add(this.ud_Options_CAT_Poll); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label190); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label191); + this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_DTR); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label192); + this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_RTS); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label193); + this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_StopBits); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label194); + this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_Parity); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label195); + this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_DataBits); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label196); + this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_Baudrate); + this.gb_Options_CAT_PortSettings.Controls.Add(this.label197); + this.gb_Options_CAT_PortSettings.Controls.Add(this.cb_Options_CAT_PortName); + this.gb_Options_CAT_PortSettings.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_CAT_PortSettings.Location = new System.Drawing.Point(423, 67); + this.gb_Options_CAT_PortSettings.Name = "gb_Options_CAT_PortSettings"; + this.gb_Options_CAT_PortSettings.Size = new System.Drawing.Size(231, 277); + this.gb_Options_CAT_PortSettings.TabIndex = 3; + this.gb_Options_CAT_PortSettings.TabStop = false; + this.gb_Options_CAT_PortSettings.Text = "Serial Port Settings"; + // + // ud_Options_CAT_Timeout + // + this.ud_Options_CAT_Timeout.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_CAT_Timeout.Increment = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_Options_CAT_Timeout.Location = new System.Drawing.Point(146, 235); + this.ud_Options_CAT_Timeout.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.ud_Options_CAT_Timeout.Minimum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_Options_CAT_Timeout.Name = "ud_Options_CAT_Timeout"; + this.ud_Options_CAT_Timeout.Size = new System.Drawing.Size(69, 20); + this.ud_Options_CAT_Timeout.TabIndex = 46; + this.ud_Options_CAT_Timeout.Value = new decimal(new int[] { + 5000, + 0, + 0, + 0}); + this.ud_Options_CAT_Timeout.ValueChanged += new System.EventHandler(this.ud_Options_CAT_Timeout_ValueChanged); + // + // label149 + // + this.label149.AutoSize = true; + this.label149.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label149.Location = new System.Drawing.Point(30, 237); + this.label149.Name = "label149"; + this.label149.Size = new System.Drawing.Size(70, 13); + this.label149.TabIndex = 47; + this.label149.Text = "Timeout [ms]:"; + // + // ud_Options_CAT_Poll + // + this.ud_Options_CAT_Poll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_CAT_Poll.Increment = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_Options_CAT_Poll.Location = new System.Drawing.Point(146, 209); + this.ud_Options_CAT_Poll.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.ud_Options_CAT_Poll.Minimum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_Options_CAT_Poll.Name = "ud_Options_CAT_Poll"; + this.ud_Options_CAT_Poll.Size = new System.Drawing.Size(69, 20); + this.ud_Options_CAT_Poll.TabIndex = 29; + this.ud_Options_CAT_Poll.Value = new decimal(new int[] { + 500, + 0, + 0, + 0}); + this.ud_Options_CAT_Poll.ValueChanged += new System.EventHandler(this.ud_Options_CAT_Poll_ValueChanged); + // + // label190 + // + this.label190.AutoSize = true; + this.label190.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label190.Location = new System.Drawing.Point(30, 211); + this.label190.Name = "label190"; + this.label190.Size = new System.Drawing.Size(64, 13); + this.label190.TabIndex = 45; + this.label190.Text = "Poll Int [ms]:"; + // + // label191 + // + this.label191.AutoSize = true; + this.label191.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label191.Location = new System.Drawing.Point(30, 184); + this.label191.Name = "label191"; + this.label191.Size = new System.Drawing.Size(33, 13); + this.label191.TabIndex = 44; + this.label191.Text = "DTR:"; + // + // cb_Options_CAT_DTR + // + this.cb_Options_CAT_DTR.DisplayMember = "Text"; + this.cb_Options_CAT_DTR.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_DTR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_DTR.FormattingEnabled = true; + this.cb_Options_CAT_DTR.Location = new System.Drawing.Point(108, 181); + this.cb_Options_CAT_DTR.Name = "cb_Options_CAT_DTR"; + this.cb_Options_CAT_DTR.Size = new System.Drawing.Size(107, 21); + this.cb_Options_CAT_DTR.TabIndex = 43; + this.cb_Options_CAT_DTR.ValueMember = "Value"; + this.cb_Options_CAT_DTR.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_DTR_SelectedIndexChanged); + // + // label192 + // + this.label192.AutoSize = true; + this.label192.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label192.Location = new System.Drawing.Point(30, 157); + this.label192.Name = "label192"; + this.label192.Size = new System.Drawing.Size(32, 13); + this.label192.TabIndex = 42; + this.label192.Text = "RTS:"; + // + // cb_Options_CAT_RTS + // + this.cb_Options_CAT_RTS.DisplayMember = "Text"; + this.cb_Options_CAT_RTS.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_RTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_RTS.FormattingEnabled = true; + this.cb_Options_CAT_RTS.Location = new System.Drawing.Point(108, 154); + this.cb_Options_CAT_RTS.Name = "cb_Options_CAT_RTS"; + this.cb_Options_CAT_RTS.Size = new System.Drawing.Size(107, 21); + this.cb_Options_CAT_RTS.TabIndex = 41; + this.cb_Options_CAT_RTS.ValueMember = "Value"; + this.cb_Options_CAT_RTS.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_RTS_SelectedIndexChanged); + // + // label193 + // + this.label193.AutoSize = true; + this.label193.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label193.Location = new System.Drawing.Point(30, 130); + this.label193.Name = "label193"; + this.label193.Size = new System.Drawing.Size(48, 13); + this.label193.TabIndex = 40; + this.label193.Text = "Stopbits:"; + // + // cb_Options_CAT_StopBits + // + this.cb_Options_CAT_StopBits.DisplayMember = "Text"; + this.cb_Options_CAT_StopBits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_StopBits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_StopBits.FormattingEnabled = true; + this.cb_Options_CAT_StopBits.Location = new System.Drawing.Point(108, 127); + this.cb_Options_CAT_StopBits.Name = "cb_Options_CAT_StopBits"; + this.cb_Options_CAT_StopBits.Size = new System.Drawing.Size(107, 21); + this.cb_Options_CAT_StopBits.TabIndex = 39; + this.cb_Options_CAT_StopBits.ValueMember = "Value"; + this.cb_Options_CAT_StopBits.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_Stopbits_SelectedIndexChanged); + // + // label194 + // + this.label194.AutoSize = true; + this.label194.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label194.Location = new System.Drawing.Point(30, 103); + this.label194.Name = "label194"; + this.label194.Size = new System.Drawing.Size(36, 13); + this.label194.TabIndex = 38; + this.label194.Text = "Parity:"; + // + // cb_Options_CAT_Parity + // + this.cb_Options_CAT_Parity.DisplayMember = "Text"; + this.cb_Options_CAT_Parity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_Parity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_Parity.FormattingEnabled = true; + this.cb_Options_CAT_Parity.Location = new System.Drawing.Point(108, 100); + this.cb_Options_CAT_Parity.Name = "cb_Options_CAT_Parity"; + this.cb_Options_CAT_Parity.Size = new System.Drawing.Size(107, 21); + this.cb_Options_CAT_Parity.TabIndex = 37; + this.cb_Options_CAT_Parity.ValueMember = "Value"; + this.cb_Options_CAT_Parity.SelectedIndexChanged += new System.EventHandler(this.cb_Parity_SelectedIndexChanged); + // + // label195 + // + this.label195.AutoSize = true; + this.label195.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label195.Location = new System.Drawing.Point(30, 76); + this.label195.Name = "label195"; + this.label195.Size = new System.Drawing.Size(49, 13); + this.label195.TabIndex = 36; + this.label195.Text = "Databits:"; + // + // cb_Options_CAT_DataBits + // + this.cb_Options_CAT_DataBits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_DataBits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_DataBits.FormattingEnabled = true; + this.cb_Options_CAT_DataBits.Location = new System.Drawing.Point(108, 73); + this.cb_Options_CAT_DataBits.Name = "cb_Options_CAT_DataBits"; + this.cb_Options_CAT_DataBits.Size = new System.Drawing.Size(107, 21); + this.cb_Options_CAT_DataBits.TabIndex = 35; + this.cb_Options_CAT_DataBits.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_DataBits_SelectedIndexChanged); + // + // label196 + // + this.label196.AutoSize = true; + this.label196.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label196.Location = new System.Drawing.Point(30, 49); + this.label196.Name = "label196"; + this.label196.Size = new System.Drawing.Size(53, 13); + this.label196.TabIndex = 34; + this.label196.Text = "Baudrate:"; + // + // cb_Options_CAT_Baudrate + // + this.cb_Options_CAT_Baudrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_Baudrate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_Baudrate.FormattingEnabled = true; + this.cb_Options_CAT_Baudrate.Location = new System.Drawing.Point(108, 46); + this.cb_Options_CAT_Baudrate.Name = "cb_Options_CAT_Baudrate"; + this.cb_Options_CAT_Baudrate.Size = new System.Drawing.Size(107, 21); + this.cb_Options_CAT_Baudrate.TabIndex = 33; + this.cb_Options_CAT_Baudrate.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_Baudrate_SelectedIndexChanged); + // + // label197 + // + this.label197.AutoSize = true; + this.label197.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label197.Location = new System.Drawing.Point(30, 22); + this.label197.Name = "label197"; + this.label197.Size = new System.Drawing.Size(57, 13); + this.label197.TabIndex = 32; + this.label197.Text = "PortName:"; + // + // cb_Options_CAT_PortName + // + this.cb_Options_CAT_PortName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_PortName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_PortName.FormattingEnabled = true; + this.cb_Options_CAT_PortName.Location = new System.Drawing.Point(108, 19); + this.cb_Options_CAT_PortName.Name = "cb_Options_CAT_PortName"; + this.cb_Options_CAT_PortName.Size = new System.Drawing.Size(107, 21); + this.cb_Options_CAT_PortName.TabIndex = 31; + this.cb_Options_CAT_PortName.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_PortName_SelectedIndexChanged); + // + // gb_Options_CAT_RigType + // + this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox5); + this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox4); + this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox3); + this.gb_Options_CAT_RigType.Controls.Add(this.label199); + this.gb_Options_CAT_RigType.Controls.Add(this.richTextBox2); + this.gb_Options_CAT_RigType.Controls.Add(this.cb_Options_CAT_Rig); + this.gb_Options_CAT_RigType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_CAT_RigType.Location = new System.Drawing.Point(21, 67); + this.gb_Options_CAT_RigType.Name = "gb_Options_CAT_RigType"; + this.gb_Options_CAT_RigType.Size = new System.Drawing.Size(396, 277); + this.gb_Options_CAT_RigType.TabIndex = 2; + this.gb_Options_CAT_RigType.TabStop = false; + this.gb_Options_CAT_RigType.Text = "Rig Type"; + // + // richTextBox5 + // + this.richTextBox5.BackColor = System.Drawing.SystemColors.Control; + this.richTextBox5.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBox5.ForeColor = System.Drawing.Color.RoyalBlue; + this.richTextBox5.Location = new System.Drawing.Point(18, 121); + this.richTextBox5.Name = "richTextBox5"; + this.richTextBox5.ReadOnly = true; + this.richTextBox5.Size = new System.Drawing.Size(372, 32); + this.richTextBox5.TabIndex = 35; + this.richTextBox5.Text = "2. ScoutBase.CAT via serial port (Windows/Linux)\n(with OmniRig rig definitions, r" + + "equires exclusive access to rig)"; + // + // richTextBox4 + // + this.richTextBox4.BackColor = System.Drawing.SystemColors.Control; + this.richTextBox4.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBox4.Location = new System.Drawing.Point(18, 170); + this.richTextBox4.Name = "richTextBox4"; + this.richTextBox4.ReadOnly = true; + this.richTextBox4.Size = new System.Drawing.Size(372, 96); + this.richTextBox4.TabIndex = 34; + this.richTextBox4.Text = resources.GetString("richTextBox4.Text"); + // + // richTextBox3 + // + this.richTextBox3.BackColor = System.Drawing.SystemColors.Control; + this.richTextBox3.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBox3.ForeColor = System.Drawing.Color.RoyalBlue; + this.richTextBox3.Location = new System.Drawing.Point(18, 77); + this.richTextBox3.Name = "richTextBox3"; + this.richTextBox3.ReadOnly = true; + this.richTextBox3.Size = new System.Drawing.Size(372, 43); + this.richTextBox3.TabIndex = 32; + this.richTextBox3.Text = "1. OmniRig V1.19 or V2.x via ActiveX (Windows only)\n(multiple access to rig from " + + "different applications possible)"; + // + // label199 + // + this.label199.AutoSize = true; + this.label199.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label199.Location = new System.Drawing.Point(27, 22); + this.label199.Name = "label199"; + this.label199.Size = new System.Drawing.Size(155, 13); + this.label199.TabIndex = 31; + this.label199.Text = "Select CAT-Engine & Rig-Type:"; + this.label199.UseMnemonic = false; + // + // richTextBox2 + // + this.richTextBox2.BackColor = System.Drawing.SystemColors.Control; + this.richTextBox2.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBox2.Location = new System.Drawing.Point(18, 49); + this.richTextBox2.Name = "richTextBox2"; + this.richTextBox2.ReadOnly = true; + this.richTextBox2.Size = new System.Drawing.Size(372, 18); + this.richTextBox2.TabIndex = 1; + this.richTextBox2.Text = "AirScout supports the following CAT-Engines:"; + // + // cb_Options_CAT_Rig + // + this.cb_Options_CAT_Rig.DisplayMember = "Type"; + this.cb_Options_CAT_Rig.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Options_CAT_Rig.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_Rig.FormattingEnabled = true; + this.cb_Options_CAT_Rig.Location = new System.Drawing.Point(194, 19); + this.cb_Options_CAT_Rig.Name = "cb_Options_CAT_Rig"; + this.cb_Options_CAT_Rig.Size = new System.Drawing.Size(170, 21); + this.cb_Options_CAT_Rig.TabIndex = 0; + this.cb_Options_CAT_Rig.ValueMember = "Type"; + this.cb_Options_CAT_Rig.SelectedIndexChanged += new System.EventHandler(this.cb_Options_CAT_Rig_SelectedIndexChanged); + // + // gb_Options_CAT_OperatingInstructions + // + this.gb_Options_CAT_OperatingInstructions.Controls.Add(this.richTextBox1); + this.gb_Options_CAT_OperatingInstructions.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Options_CAT_OperatingInstructions.Location = new System.Drawing.Point(21, 350); + this.gb_Options_CAT_OperatingInstructions.Name = "gb_Options_CAT_OperatingInstructions"; + this.gb_Options_CAT_OperatingInstructions.Size = new System.Drawing.Size(633, 121); + this.gb_Options_CAT_OperatingInstructions.TabIndex = 1; + this.gb_Options_CAT_OperatingInstructions.TabStop = false; + this.gb_Options_CAT_OperatingInstructions.Text = "Operating Instructions"; + // + // richTextBox1 + // + this.richTextBox1.BackColor = System.Drawing.SystemColors.Control; + this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.richTextBox1.Location = new System.Drawing.Point(18, 19); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.ReadOnly = true; + this.richTextBox1.Size = new System.Drawing.Size(609, 109); + this.richTextBox1.TabIndex = 0; + this.richTextBox1.Text = resources.GetString("richTextBox1.Text"); + // + // groupBox57 + // + this.groupBox57.Controls.Add(this.ud_Options_CAT_Update); + this.groupBox57.Controls.Add(this.label189); + this.groupBox57.Controls.Add(this.cb_Options_CAT_Activate); + this.groupBox57.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox57.Location = new System.Drawing.Point(20, 12); + this.groupBox57.Name = "groupBox57"; + this.groupBox57.Size = new System.Drawing.Size(634, 49); + this.groupBox57.TabIndex = 0; + this.groupBox57.TabStop = false; + this.groupBox57.Text = "Activate CAT Interface"; + // + // ud_Options_CAT_Update + // + this.ud_Options_CAT_Update.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Options_CAT_Update.Increment = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_Options_CAT_Update.Location = new System.Drawing.Point(549, 18); + this.ud_Options_CAT_Update.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.ud_Options_CAT_Update.Minimum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_Options_CAT_Update.Name = "ud_Options_CAT_Update"; + this.ud_Options_CAT_Update.Size = new System.Drawing.Size(69, 20); + this.ud_Options_CAT_Update.TabIndex = 61; + this.ud_Options_CAT_Update.Value = new decimal(new int[] { + 500, + 0, + 0, + 0}); + // + // label189 + // + this.label189.AutoSize = true; + this.label189.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label189.Location = new System.Drawing.Point(433, 20); + this.label189.Name = "label189"; + this.label189.Size = new System.Drawing.Size(93, 13); + this.label189.TabIndex = 60; + this.label189.Text = "CAT Refresh [ms]:"; + // + // cb_Options_CAT_Activate + // + this.cb_Options_CAT_Activate.AutoSize = true; + this.cb_Options_CAT_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_CAT_Activate.Location = new System.Drawing.Point(19, 19); + this.cb_Options_CAT_Activate.Name = "cb_Options_CAT_Activate"; + this.cb_Options_CAT_Activate.Size = new System.Drawing.Size(134, 17); + this.cb_Options_CAT_Activate.TabIndex = 2; + this.cb_Options_CAT_Activate.Tag = ""; + this.cb_Options_CAT_Activate.Text = "Activate CAT Interface"; + this.cb_Options_CAT_Activate.UseVisualStyleBackColor = true; + this.cb_Options_CAT_Activate.CheckedChanged += new System.EventHandler(this.cb_Options_CAT_Activate_CheckedChanged); + // // tab_Options_Watchlist // this.tab_Options_Watchlist.BackColor = System.Drawing.SystemColors.Control; @@ -4266,6 +6719,26 @@ this.groupBox50.TabStop = false; this.groupBox50.Text = "Info"; // + // pictureBox3 + // + this.pictureBox3.Image = global::AirScout.Properties.Resources.AirScout_Watchlist; + this.pictureBox3.Location = new System.Drawing.Point(520, 19); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new System.Drawing.Size(113, 344); + this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox3.TabIndex = 3; + this.pictureBox3.TabStop = false; + // + // pictureBox2 + // + this.pictureBox2.Image = global::AirScout.Properties.Resources.AirScout_Marker; + this.pictureBox2.Location = new System.Drawing.Point(281, 36); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(210, 118); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox2.TabIndex = 2; + this.pictureBox2.TabStop = false; + // // label37 // this.label37.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -4276,6 +6749,17 @@ this.label37.Text = resources.GetString("label37.Text"); this.label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // + // pictureBox1 + // + this.pictureBox1.Image = global::AirScout.Properties.Resources.AirScout_Multi; + this.pictureBox1.InitialImage = global::AirScout.Properties.Resources.AirScout_Multi; + this.pictureBox1.Location = new System.Drawing.Point(6, 15); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(283, 153); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // // btn_Options_Watchlist_Clear // this.btn_Options_Watchlist_Clear.Enabled = false; @@ -4301,6 +6785,39 @@ this.groupBox17.TabStop = false; this.groupBox17.Text = "General"; // + // cb_Options_Watchlist_SyncWithKST + // + this.cb_Options_Watchlist_SyncWithKST.AutoSize = true; + this.cb_Options_Watchlist_SyncWithKST.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.cb_Options_Watchlist_SyncWithKST.Checked = global::AirScout.Properties.Settings.Default.Watchlist_SyncWithKST; + this.cb_Options_Watchlist_SyncWithKST.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Enabled", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_SyncWithKST", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Watchlist_SyncWithKST.Enabled = global::AirScout.Properties.Settings.Default.Server_Activate; + this.cb_Options_Watchlist_SyncWithKST.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Watchlist_SyncWithKST.Location = new System.Drawing.Point(6, 47); + this.cb_Options_Watchlist_SyncWithKST.Name = "cb_Options_Watchlist_SyncWithKST"; + this.cb_Options_Watchlist_SyncWithKST.Size = new System.Drawing.Size(436, 17); + this.cb_Options_Watchlist_SyncWithKST.TabIndex = 6; + this.cb_Options_Watchlist_SyncWithKST.Text = "Keep in sync with KST user list (needs wtKST > V3.1 and network functions activat" + + "ed):"; + this.cb_Options_Watchlist_SyncWithKST.UseVisualStyleBackColor = true; + this.cb_Options_Watchlist_SyncWithKST.CheckedChanged += new System.EventHandler(this.cb_Options_Watchlist_SyncWithKST_CheckedChanged); + // + // tb_Options_Watchlist_MaxCount + // + this.tb_Options_Watchlist_MaxCount.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Watchlist_MaxCount", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_Options_Watchlist_MaxCount.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Options_Watchlist_MaxCount.FormatSpecifier = "F0"; + this.tb_Options_Watchlist_MaxCount.Location = new System.Drawing.Point(395, 20); + this.tb_Options_Watchlist_MaxCount.MaxValue = 1000; + this.tb_Options_Watchlist_MaxCount.MinValue = 1; + this.tb_Options_Watchlist_MaxCount.Name = "tb_Options_Watchlist_MaxCount"; + this.tb_Options_Watchlist_MaxCount.Size = new System.Drawing.Size(47, 22); + this.tb_Options_Watchlist_MaxCount.TabIndex = 5; + this.tb_Options_Watchlist_MaxCount.Text = "1000"; + this.tb_Options_Watchlist_MaxCount.Value = global::AirScout.Properties.Settings.Default.Watchlist_MaxCount; + // // label31 // this.label31.AutoSize = true; @@ -4336,6 +6853,18 @@ this.tab_Options_Misc.TabIndex = 17; this.tab_Options_Misc.Text = "Misc."; // + // pictureBox4 + // + this.pictureBox4.BackColor = System.Drawing.Color.White; + this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox4.Image = global::AirScout.Properties.Resources.Settings; + this.pictureBox4.Location = new System.Drawing.Point(343, 108); + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.Size = new System.Drawing.Size(306, 277); + this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox4.TabIndex = 5; + this.pictureBox4.TabStop = false; + // // label143 // this.label143.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -4426,7 +6955,7 @@ this.lbl_Options_Elevation_SRTM1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lbl_Options_Elevation_SRTM1.Location = new System.Drawing.Point(89, 314); this.lbl_Options_Elevation_SRTM1.Name = "lbl_Options_Elevation_SRTM1"; - this.lbl_Options_Elevation_SRTM1.Size = new System.Drawing.Size(478, 16); + this.lbl_Options_Elevation_SRTM1.Size = new System.Drawing.Size(477, 16); this.lbl_Options_Elevation_SRTM1.TabIndex = 41; this.lbl_Options_Elevation_SRTM1.TabStop = true; this.lbl_Options_Elevation_SRTM1.Text = "1arsec (30m x 30m) Elevation Data from SRTM - Project and ASTER"; @@ -4447,7 +6976,7 @@ this.lbl_Options_Elevation_SRTM3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lbl_Options_Elevation_SRTM3.Location = new System.Drawing.Point(89, 250); this.lbl_Options_Elevation_SRTM3.Name = "lbl_Options_Elevation_SRTM3"; - this.lbl_Options_Elevation_SRTM3.Size = new System.Drawing.Size(478, 16); + this.lbl_Options_Elevation_SRTM3.Size = new System.Drawing.Size(477, 16); this.lbl_Options_Elevation_SRTM3.TabIndex = 39; this.lbl_Options_Elevation_SRTM3.TabStop = true; this.lbl_Options_Elevation_SRTM3.Text = "3arsec (90m x 90m) Elevation Data from SRTM - Project and ASTER"; @@ -4458,7 +6987,7 @@ this.lbl_Options_Elevation_GLOBE.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lbl_Options_Elevation_GLOBE.Location = new System.Drawing.Point(164, 211); this.lbl_Options_Elevation_GLOBE.Name = "lbl_Options_Elevation_GLOBE"; - this.lbl_Options_Elevation_GLOBE.Size = new System.Drawing.Size(340, 16); + this.lbl_Options_Elevation_GLOBE.Size = new System.Drawing.Size(339, 16); this.lbl_Options_Elevation_GLOBE.TabIndex = 38; this.lbl_Options_Elevation_GLOBE.TabStop = true; this.lbl_Options_Elevation_GLOBE.Text = "1km based Elevation Data from GLOBE - Project"; @@ -4489,7 +7018,7 @@ this.label25.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label25.Location = new System.Drawing.Point(105, 391); this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(495, 16); + this.label25.Size = new System.Drawing.Size(494, 16); this.label25.TabIndex = 33; this.label25.Text = "special tnx to DF9IC and DL8AAU for extensive discussions and testing"; // @@ -4649,1442 +7178,32 @@ this.bw_ASTER1_MapUpdater.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_ASTER1_MapUpdater_ProgressChanged); this.bw_ASTER1_MapUpdater.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_ASTER1_MapUpdater_RunWorkerCompleted); // - // label148 - // - this.label148.AutoSize = true; - this.label148.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label148.Location = new System.Drawing.Point(218, 20); - this.label148.Name = "label148"; - this.label148.Size = new System.Drawing.Size(96, 13); - this.label148.TabIndex = 7; - this.label148.Text = "Main Map Opacity:"; - // - // tb_Coverage_MaxLat - // - this.tb_Coverage_MaxLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MaxLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MaxLat.FormatSpecifier = "F0"; - this.tb_Coverage_MaxLat.Location = new System.Drawing.Point(589, 416); - this.tb_Coverage_MaxLat.MaxValue = 90D; - this.tb_Coverage_MaxLat.MinValue = -90D; - this.tb_Coverage_MaxLat.Name = "tb_Coverage_MaxLat"; - this.tb_Coverage_MaxLat.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MaxLat.TabIndex = 4; - this.tb_Coverage_MaxLat.Text = "60"; - this.tb_Coverage_MaxLat.Value = global::AirScout.Properties.Settings.Default.MaxLat; - this.tb_Coverage_MaxLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update); - // - // tb_Coverage_MinLat - // - this.tb_Coverage_MinLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MinLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MinLat.FormatSpecifier = "F0"; - this.tb_Coverage_MinLat.Location = new System.Drawing.Point(589, 391); - this.tb_Coverage_MinLat.MaxValue = 90D; - this.tb_Coverage_MinLat.MinValue = -90D; - this.tb_Coverage_MinLat.Name = "tb_Coverage_MinLat"; - this.tb_Coverage_MinLat.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MinLat.TabIndex = 3; - this.tb_Coverage_MinLat.Text = "35"; - this.tb_Coverage_MinLat.Value = global::AirScout.Properties.Settings.Default.MinLat; - this.tb_Coverage_MinLat.TextChanged += new System.EventHandler(this.tab_Options_General_Update); - // - // tb_Coverage_MaxLon - // - this.tb_Coverage_MaxLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MaxLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MaxLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MaxLon.FormatSpecifier = "F0"; - this.tb_Coverage_MaxLon.Location = new System.Drawing.Point(589, 364); - this.tb_Coverage_MaxLon.MaxValue = 180D; - this.tb_Coverage_MaxLon.MinValue = -180D; - this.tb_Coverage_MaxLon.Name = "tb_Coverage_MaxLon"; - this.tb_Coverage_MaxLon.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MaxLon.TabIndex = 2; - this.tb_Coverage_MaxLon.Text = "30"; - this.tb_Coverage_MaxLon.Value = global::AirScout.Properties.Settings.Default.MaxLon; - this.tb_Coverage_MaxLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update); - // - // tb_Coverage_MinLon - // - this.tb_Coverage_MinLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "MinLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MinLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MinLon.FormatSpecifier = "F0"; - this.tb_Coverage_MinLon.Location = new System.Drawing.Point(589, 337); - this.tb_Coverage_MinLon.MaxValue = 180D; - this.tb_Coverage_MinLon.MinValue = -180D; - this.tb_Coverage_MinLon.Name = "tb_Coverage_MinLon"; - this.tb_Coverage_MinLon.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MinLon.TabIndex = 1; - this.tb_Coverage_MinLon.Text = "-15"; - this.tb_Coverage_MinLon.Value = global::AirScout.Properties.Settings.Default.MinLon; - this.tb_Coverage_MinLon.TextChanged += new System.EventHandler(this.tab_Options_General_Update); - // - // cb_Options_Background_Calculations_Enable - // - this.cb_Options_Background_Calculations_Enable.AutoSize = true; - this.cb_Options_Background_Calculations_Enable.Checked = global::AirScout.Properties.Settings.Default.Background_Calculations_Enable; - this.cb_Options_Background_Calculations_Enable.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Background_Calculations_Enable.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Background_Calculations_Enable", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Background_Calculations_Enable.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Background_Calculations_Enable.Location = new System.Drawing.Point(22, 126); - this.cb_Options_Background_Calculations_Enable.Name = "cb_Options_Background_Calculations_Enable"; - this.cb_Options_Background_Calculations_Enable.Size = new System.Drawing.Size(308, 17); - this.cb_Options_Background_Calculations_Enable.TabIndex = 6; - this.cb_Options_Background_Calculations_Enable.Text = "Enable Background Pre-Calculations for paths/horizons etc."; - this.cb_Options_Background_Calculations_Enable.UseVisualStyleBackColor = true; - // - // ud_Options_Database_Update_Period - // - this.ud_Options_Database_Update_Period.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Background_Update_Period", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ud_Options_Database_Update_Period.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ud_Options_Database_Update_Period.Location = new System.Drawing.Point(278, 84); - this.ud_Options_Database_Update_Period.Maximum = new decimal(new int[] { - 6000, - 0, - 0, - 0}); - this.ud_Options_Database_Update_Period.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.ud_Options_Database_Update_Period.Name = "ud_Options_Database_Update_Period"; - this.ud_Options_Database_Update_Period.Size = new System.Drawing.Size(39, 20); - this.ud_Options_Database_Update_Period.TabIndex = 3; - this.ud_Options_Database_Update_Period.Value = global::AirScout.Properties.Settings.Default.Background_Update_Period; - // - // cb_Options_Locations_RestrictToAreaOfInterest - // - this.cb_Options_Locations_RestrictToAreaOfInterest.AutoSize = true; - this.cb_Options_Locations_RestrictToAreaOfInterest.Checked = global::AirScout.Properties.Settings.Default.Location_RestrictToAreaOfInterest; - this.cb_Options_Locations_RestrictToAreaOfInterest.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Locations_RestrictToAreaOfInterest.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Location_RestrictToAreaOfInterest", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Locations_RestrictToAreaOfInterest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Locations_RestrictToAreaOfInterest.Location = new System.Drawing.Point(12, 58); - this.cb_Options_Locations_RestrictToAreaOfInterest.Name = "cb_Options_Locations_RestrictToAreaOfInterest"; - this.cb_Options_Locations_RestrictToAreaOfInterest.Size = new System.Drawing.Size(230, 17); - this.cb_Options_Locations_RestrictToAreaOfInterest.TabIndex = 12; - this.cb_Options_Locations_RestrictToAreaOfInterest.Text = "Restrict locations to current Area of Interest"; - this.tt_Options.SetToolTip(this.cb_Options_Locations_RestrictToAreaOfInterest, "Restrict stations kept in the database to Area of Interest \r\n(all other stations" + - " will be removed during the update process)"); - this.cb_Options_Locations_RestrictToAreaOfInterest.UseVisualStyleBackColor = true; - // - // cb_Options_SmallLettersForSubSquares - // - this.cb_Options_SmallLettersForSubSquares.AutoSize = true; - this.cb_Options_SmallLettersForSubSquares.Checked = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares; - this.cb_Options_SmallLettersForSubSquares.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_SmallLettersForSubSquares.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_SmallLettersForSubSquares.Location = new System.Drawing.Point(239, 16); - this.cb_Options_SmallLettersForSubSquares.Name = "cb_Options_SmallLettersForSubSquares"; - this.cb_Options_SmallLettersForSubSquares.Size = new System.Drawing.Size(157, 17); - this.cb_Options_SmallLettersForSubSquares.TabIndex = 11; - this.cb_Options_SmallLettersForSubSquares.Text = "Small letters for subsquares:"; - this.cb_Options_SmallLettersForSubSquares.UseVisualStyleBackColor = true; - this.cb_Options_SmallLettersForSubSquares.CheckedChanged += new System.EventHandler(this.cb_Options_SmallLettersForSubSquares_CheckedChanged); - // - // cb_Options_Locator_AutoLength - // - this.cb_Options_Locator_AutoLength.AutoSize = true; - this.cb_Options_Locator_AutoLength.Checked = global::AirScout.Properties.Settings.Default.Locator_AutoLength; - this.cb_Options_Locator_AutoLength.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Locator_AutoLength.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Locator_AutoLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Locator_AutoLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Locator_AutoLength.Location = new System.Drawing.Point(12, 38); - this.cb_Options_Locator_AutoLength.Name = "cb_Options_Locator_AutoLength"; - this.cb_Options_Locator_AutoLength.Size = new System.Drawing.Size(319, 17); - this.cb_Options_Locator_AutoLength.TabIndex = 10; - this.cb_Options_Locator_AutoLength.Text = "Cut locator to significant digits automatically (Minimum 6 digits):"; - this.cb_Options_Locator_AutoLength.UseVisualStyleBackColor = true; - // - // ud_Options_Locator_MaxLength - // - this.ud_Options_Locator_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Locator_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ud_Options_Locator_MaxLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ud_Options_Locator_MaxLength.Increment = new decimal(new int[] { - 2, - 0, - 0, - 0}); - this.ud_Options_Locator_MaxLength.Location = new System.Drawing.Point(180, 15); - this.ud_Options_Locator_MaxLength.Maximum = new decimal(new int[] { - 14, - 0, - 0, - 0}); - this.ud_Options_Locator_MaxLength.Minimum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.ud_Options_Locator_MaxLength.Name = "ud_Options_Locator_MaxLength"; - this.ud_Options_Locator_MaxLength.Size = new System.Drawing.Size(50, 20); - this.ud_Options_Locator_MaxLength.TabIndex = 9; - this.ud_Options_Locator_MaxLength.Value = global::AirScout.Properties.Settings.Default.Locator_MaxLength; - // - // tb_Options_DXLoc - // - this.tb_Options_DXLoc.BackColor = System.Drawing.SystemColors.Window; - this.tb_Options_DXLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_DXLoc.ErrorBackColor = System.Drawing.Color.Red; - this.tb_Options_DXLoc.ErrorForeColor = System.Drawing.Color.White; - this.tb_Options_DXLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_DXLoc.ForeColor = System.Drawing.SystemColors.WindowText; - this.tb_Options_DXLoc.Location = new System.Drawing.Point(90, 36); - this.tb_Options_DXLoc.Name = "tb_Options_DXLoc"; - this.tb_Options_DXLoc.Size = new System.Drawing.Size(100, 21); - this.tb_Options_DXLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares; - this.tb_Options_DXLoc.TabIndex = 6; - this.tb_Options_DXLoc.TextChanged += new System.EventHandler(this.tb_Options_DXLoc_TextChanged); - // - // tb_Options_MyLoc - // - this.tb_Options_MyLoc.BackColor = System.Drawing.SystemColors.Window; - this.tb_Options_MyLoc.DataBindings.Add(new System.Windows.Forms.Binding("SmallLettersForSubsquares", global::AirScout.Properties.Settings.Default, "Locator_SmallLettersForSubsquares", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_MyLoc.ErrorBackColor = System.Drawing.Color.Red; - this.tb_Options_MyLoc.ErrorForeColor = System.Drawing.Color.White; - this.tb_Options_MyLoc.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_MyLoc.ForeColor = System.Drawing.SystemColors.WindowText; - this.tb_Options_MyLoc.Location = new System.Drawing.Point(89, 36); - this.tb_Options_MyLoc.Name = "tb_Options_MyLoc"; - this.tb_Options_MyLoc.Size = new System.Drawing.Size(100, 21); - this.tb_Options_MyLoc.SmallLettersForSubsquares = global::AirScout.Properties.Settings.Default.Locator_SmallLettersForSubsquares; - this.tb_Options_MyLoc.TabIndex = 2; - this.tb_Options_MyLoc.TextChanged += new System.EventHandler(this.tb_Options_MyLoc_TextChanged); - // - // cb_Options_Map_SmallMarkers - // - this.cb_Options_Map_SmallMarkers.AutoSize = true; - this.cb_Options_Map_SmallMarkers.Checked = global::AirScout.Properties.Settings.Default.Map_SmallMarkers; - this.cb_Options_Map_SmallMarkers.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Map_SmallMarkers.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_SmallMarkers", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Map_SmallMarkers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Map_SmallMarkers.Location = new System.Drawing.Point(18, 22); - this.cb_Options_Map_SmallMarkers.Name = "cb_Options_Map_SmallMarkers"; - this.cb_Options_Map_SmallMarkers.Size = new System.Drawing.Size(199, 17); - this.cb_Options_Map_SmallMarkers.TabIndex = 2; - this.cb_Options_Map_SmallMarkers.Text = "Use Small Markers for all Path Marks"; - this.cb_Options_Map_SmallMarkers.UseVisualStyleBackColor = true; - // - // cb_Options_Map_LabelCalls - // - this.cb_Options_Map_LabelCalls.AutoSize = true; - this.cb_Options_Map_LabelCalls.Checked = global::AirScout.Properties.Settings.Default.Map_LabelCalls; - this.cb_Options_Map_LabelCalls.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Map_LabelCalls.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_LabelCalls", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Map_LabelCalls.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Map_LabelCalls.Location = new System.Drawing.Point(18, 45); - this.cb_Options_Map_LabelCalls.Name = "cb_Options_Map_LabelCalls"; - this.cb_Options_Map_LabelCalls.Size = new System.Drawing.Size(209, 17); - this.cb_Options_Map_LabelCalls.TabIndex = 3; - this.cb_Options_Map_LabelCalls.Text = "Show Labels with Callsign at Locations"; - this.cb_Options_Map_LabelCalls.UseVisualStyleBackColor = true; - // - // ud_Options_Charts_FontSize - // - this.ud_Options_Charts_FontSize.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Charts_FontSize", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ud_Options_Charts_FontSize.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ud_Options_Charts_FontSize.Location = new System.Drawing.Point(192, 15); - this.ud_Options_Charts_FontSize.Maximum = new decimal(new int[] { - 16, - 0, - 0, - 0}); - this.ud_Options_Charts_FontSize.Minimum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.ud_Options_Charts_FontSize.Name = "ud_Options_Charts_FontSize"; - this.ud_Options_Charts_FontSize.Size = new System.Drawing.Size(45, 22); - this.ud_Options_Charts_FontSize.TabIndex = 0; - this.ud_Options_Charts_FontSize.Value = global::AirScout.Properties.Settings.Default.Charts_FontSize; - // - // tb_Options_Map_Update_Interval - // - this.tb_Options_Map_Update_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Map_Update_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Map_Update_Interval.FormatSpecifier = "F0"; - this.tb_Options_Map_Update_Interval.Location = new System.Drawing.Point(119, 33); - this.tb_Options_Map_Update_Interval.MaxValue = 3600; - this.tb_Options_Map_Update_Interval.MinValue = 0; - this.tb_Options_Map_Update_Interval.Name = "tb_Options_Map_Update_Interval"; - this.tb_Options_Map_Update_Interval.Size = new System.Drawing.Size(37, 22); - this.tb_Options_Map_Update_Interval.TabIndex = 23; - this.tb_Options_Map_Update_Interval.Text = "1"; - this.tb_Options_Map_Update_Interval.Value = global::AirScout.Properties.Settings.Default.Map_Update; - // - // ud_Options_Map_Preloader_MaxZoom - // - this.ud_Options_Map_Preloader_MaxZoom.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Preloader_MaxZoom", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ud_Options_Map_Preloader_MaxZoom.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ud_Options_Map_Preloader_MaxZoom.Location = new System.Drawing.Point(319, 66); - this.ud_Options_Map_Preloader_MaxZoom.Maximum = new decimal(new int[] { - 11, - 0, - 0, - 0}); - this.ud_Options_Map_Preloader_MaxZoom.Name = "ud_Options_Map_Preloader_MaxZoom"; - this.ud_Options_Map_Preloader_MaxZoom.Size = new System.Drawing.Size(54, 22); - this.ud_Options_Map_Preloader_MaxZoom.TabIndex = 6; - this.ud_Options_Map_Preloader_MaxZoom.Value = global::AirScout.Properties.Settings.Default.Map_Preloader_MaxZoom; - // - // cb_Options_Map_Preloader_Enabled - // - this.cb_Options_Map_Preloader_Enabled.AutoSize = true; - this.cb_Options_Map_Preloader_Enabled.Checked = global::AirScout.Properties.Settings.Default.Map_Preloader_Enabled; - this.cb_Options_Map_Preloader_Enabled.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Map_Preloader_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_Preloader_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Map_Preloader_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Map_Preloader_Enabled.Location = new System.Drawing.Point(15, 63); - this.cb_Options_Map_Preloader_Enabled.Name = "cb_Options_Map_Preloader_Enabled"; - this.cb_Options_Map_Preloader_Enabled.Size = new System.Drawing.Size(205, 30); - this.cb_Options_Map_Preloader_Enabled.TabIndex = 4; - this.cb_Options_Map_Preloader_Enabled.Text = "Enable Map Preloading from AirScout \r\nWeb Server or Selected Provider"; - this.cb_Options_Map_Preloader_Enabled.UseVisualStyleBackColor = true; - // - // cb_Options_Watchlist_Activate - // - this.cb_Options_Watchlist_Activate.AutoSize = true; - this.cb_Options_Watchlist_Activate.Checked = global::AirScout.Properties.Settings.Default.Watchlist_Activated; - this.cb_Options_Watchlist_Activate.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Watchlist_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_Activated", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Watchlist_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Watchlist_Activate.Location = new System.Drawing.Point(15, 43); - this.cb_Options_Watchlist_Activate.Name = "cb_Options_Watchlist_Activate"; - this.cb_Options_Watchlist_Activate.Size = new System.Drawing.Size(144, 17); - this.cb_Options_Watchlist_Activate.TabIndex = 1; - this.cb_Options_Watchlist_Activate.Text = "Show Watchlist Callsigns"; - this.cb_Options_Watchlist_Activate.UseVisualStyleBackColor = true; - // - // cb_Options_Airports_Activate - // - this.cb_Options_Airports_Activate.AutoSize = true; - this.cb_Options_Airports_Activate.Checked = global::AirScout.Properties.Settings.Default.Airports_Activate; - this.cb_Options_Airports_Activate.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Airports_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Airports_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Airports_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Airports_Activate.Location = new System.Drawing.Point(16, 19); - this.cb_Options_Airports_Activate.Name = "cb_Options_Airports_Activate"; - this.cb_Options_Airports_Activate.Size = new System.Drawing.Size(91, 17); - this.cb_Options_Airports_Activate.TabIndex = 0; - this.cb_Options_Airports_Activate.Text = "Show Airports"; - this.cb_Options_Airports_Activate.UseVisualStyleBackColor = true; - // - // tb_Options_Planes_IconSize_S - // - this.tb_Options_Planes_IconSize_S.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_S", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_IconSize_S.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_IconSize_S.FormatSpecifier = "F0"; - this.tb_Options_Planes_IconSize_S.Location = new System.Drawing.Point(183, 47); - this.tb_Options_Planes_IconSize_S.MaxValue = 128; - this.tb_Options_Planes_IconSize_S.MinValue = 0; - this.tb_Options_Planes_IconSize_S.Name = "tb_Options_Planes_IconSize_S"; - this.tb_Options_Planes_IconSize_S.Size = new System.Drawing.Size(37, 22); - this.tb_Options_Planes_IconSize_S.TabIndex = 16; - this.tb_Options_Planes_IconSize_S.Text = "48"; - this.tb_Options_Planes_IconSize_S.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_S; - // - // tb_Options_Planes_IconSize_H - // - this.tb_Options_Planes_IconSize_H.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_H", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_IconSize_H.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_IconSize_H.FormatSpecifier = "F0"; - this.tb_Options_Planes_IconSize_H.Location = new System.Drawing.Point(183, 19); - this.tb_Options_Planes_IconSize_H.MaxValue = 128; - this.tb_Options_Planes_IconSize_H.MinValue = 0; - this.tb_Options_Planes_IconSize_H.Name = "tb_Options_Planes_IconSize_H"; - this.tb_Options_Planes_IconSize_H.Size = new System.Drawing.Size(37, 22); - this.tb_Options_Planes_IconSize_H.TabIndex = 15; - this.tb_Options_Planes_IconSize_H.Text = "36"; - this.tb_Options_Planes_IconSize_H.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_H; - // - // tb_Options_Planes_IconSize_M - // - this.tb_Options_Planes_IconSize_M.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_M", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_IconSize_M.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_IconSize_M.FormatSpecifier = "F0"; - this.tb_Options_Planes_IconSize_M.Location = new System.Drawing.Point(63, 47); - this.tb_Options_Planes_IconSize_M.MaxValue = 128; - this.tb_Options_Planes_IconSize_M.MinValue = 0; - this.tb_Options_Planes_IconSize_M.Name = "tb_Options_Planes_IconSize_M"; - this.tb_Options_Planes_IconSize_M.Size = new System.Drawing.Size(37, 22); - this.tb_Options_Planes_IconSize_M.TabIndex = 14; - this.tb_Options_Planes_IconSize_M.Text = "24"; - this.tb_Options_Planes_IconSize_M.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_M; - // - // tb_Options_Planes_IconSize_L - // - this.tb_Options_Planes_IconSize_L.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_IconSize_L", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_IconSize_L.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_IconSize_L.FormatSpecifier = "F0"; - this.tb_Options_Planes_IconSize_L.Location = new System.Drawing.Point(63, 21); - this.tb_Options_Planes_IconSize_L.MaxValue = 128; - this.tb_Options_Planes_IconSize_L.MinValue = 0; - this.tb_Options_Planes_IconSize_L.Name = "tb_Options_Planes_IconSize_L"; - this.tb_Options_Planes_IconSize_L.Size = new System.Drawing.Size(37, 22); - this.tb_Options_Planes_IconSize_L.TabIndex = 13; - this.tb_Options_Planes_IconSize_L.Text = "16"; - this.tb_Options_Planes_IconSize_L.Value = global::AirScout.Properties.Settings.Default.Planes_IconSize_L; - // - // cb_Options_InfoWin_Angle - // - this.cb_Options_InfoWin_Angle.AutoSize = true; - this.cb_Options_InfoWin_Angle.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Angle; - this.cb_Options_InfoWin_Angle.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Angle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Angle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Angle.Location = new System.Drawing.Point(139, 75); - this.cb_Options_InfoWin_Angle.Name = "cb_Options_InfoWin_Angle"; - this.cb_Options_InfoWin_Angle.Size = new System.Drawing.Size(96, 17); - this.cb_Options_InfoWin_Angle.TabIndex = 15; - this.cb_Options_InfoWin_Angle.Tag = ""; - this.cb_Options_InfoWin_Angle.Text = "Crossing Angle"; - this.cb_Options_InfoWin_Angle.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Speed - // - this.cb_Options_InfoWin_Speed.AutoSize = true; - this.cb_Options_InfoWin_Speed.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Speed; - this.cb_Options_InfoWin_Speed.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Speed", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Speed.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Speed.Location = new System.Drawing.Point(26, 100); - this.cb_Options_InfoWin_Speed.Name = "cb_Options_InfoWin_Speed"; - this.cb_Options_InfoWin_Speed.Size = new System.Drawing.Size(87, 17); - this.cb_Options_InfoWin_Speed.TabIndex = 14; - this.cb_Options_InfoWin_Speed.Tag = ""; - this.cb_Options_InfoWin_Speed.Text = "Plane Speed"; - this.cb_Options_InfoWin_Speed.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Squint - // - this.cb_Options_InfoWin_Squint.AutoSize = true; - this.cb_Options_InfoWin_Squint.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Squint; - this.cb_Options_InfoWin_Squint.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_InfoWin_Squint.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Squint", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Squint.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Squint.Location = new System.Drawing.Point(139, 121); - this.cb_Options_InfoWin_Squint.Name = "cb_Options_InfoWin_Squint"; - this.cb_Options_InfoWin_Squint.Size = new System.Drawing.Size(86, 17); - this.cb_Options_InfoWin_Squint.TabIndex = 13; - this.cb_Options_InfoWin_Squint.Tag = ""; - this.cb_Options_InfoWin_Squint.Text = "Squint Angle"; - this.cb_Options_InfoWin_Squint.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Epsilon - // - this.cb_Options_InfoWin_Epsilon.AutoSize = true; - this.cb_Options_InfoWin_Epsilon.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Epsilon; - this.cb_Options_InfoWin_Epsilon.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Epsilon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Epsilon.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Epsilon.Location = new System.Drawing.Point(139, 98); - this.cb_Options_InfoWin_Epsilon.Name = "cb_Options_InfoWin_Epsilon"; - this.cb_Options_InfoWin_Epsilon.Size = new System.Drawing.Size(105, 17); - this.cb_Options_InfoWin_Epsilon.TabIndex = 12; - this.cb_Options_InfoWin_Epsilon.Tag = ""; - this.cb_Options_InfoWin_Epsilon.Text = "Elevation Angles"; - this.cb_Options_InfoWin_Epsilon.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Dist - // - this.cb_Options_InfoWin_Dist.AutoSize = true; - this.cb_Options_InfoWin_Dist.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Dist; - this.cb_Options_InfoWin_Dist.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_InfoWin_Dist.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Dist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Dist.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Dist.Location = new System.Drawing.Point(139, 29); - this.cb_Options_InfoWin_Dist.Name = "cb_Options_InfoWin_Dist"; - this.cb_Options_InfoWin_Dist.Size = new System.Drawing.Size(111, 17); - this.cb_Options_InfoWin_Dist.TabIndex = 11; - this.cb_Options_InfoWin_Dist.Tag = ""; - this.cb_Options_InfoWin_Dist.Text = "Crossing Distance"; - this.cb_Options_InfoWin_Dist.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Time - // - this.cb_Options_InfoWin_Time.AutoSize = true; - this.cb_Options_InfoWin_Time.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Time; - this.cb_Options_InfoWin_Time.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_InfoWin_Time.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Time", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Time.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Time.Location = new System.Drawing.Point(139, 52); - this.cb_Options_InfoWin_Time.Name = "cb_Options_InfoWin_Time"; - this.cb_Options_InfoWin_Time.Size = new System.Drawing.Size(92, 17); - this.cb_Options_InfoWin_Time.TabIndex = 10; - this.cb_Options_InfoWin_Time.Tag = ""; - this.cb_Options_InfoWin_Time.Text = "Crossing Time"; - this.cb_Options_InfoWin_Time.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Type - // - this.cb_Options_InfoWin_Type.AutoSize = true; - this.cb_Options_InfoWin_Type.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Type; - this.cb_Options_InfoWin_Type.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_InfoWin_Type.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Type", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Type.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Type.Location = new System.Drawing.Point(26, 123); - this.cb_Options_InfoWin_Type.Name = "cb_Options_InfoWin_Type"; - this.cb_Options_InfoWin_Type.Size = new System.Drawing.Size(90, 17); - this.cb_Options_InfoWin_Type.TabIndex = 9; - this.cb_Options_InfoWin_Type.Tag = ""; - this.cb_Options_InfoWin_Type.Text = "Plane Type"; - this.cb_Options_InfoWin_Type.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Track - // - this.cb_Options_InfoWin_Track.AutoSize = true; - this.cb_Options_InfoWin_Track.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Track; - this.cb_Options_InfoWin_Track.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_InfoWin_Track.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Track", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Track.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Track.Location = new System.Drawing.Point(26, 77); - this.cb_Options_InfoWin_Track.Name = "cb_Options_InfoWin_Track"; - this.cb_Options_InfoWin_Track.Size = new System.Drawing.Size(95, 17); - this.cb_Options_InfoWin_Track.TabIndex = 8; - this.cb_Options_InfoWin_Track.Tag = ""; - this.cb_Options_InfoWin_Track.Text = "Plane Track"; - this.cb_Options_InfoWin_Track.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Alt - // - this.cb_Options_InfoWin_Alt.AutoSize = true; - this.cb_Options_InfoWin_Alt.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Alt; - this.cb_Options_InfoWin_Alt.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_InfoWin_Alt.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Alt.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Alt.Location = new System.Drawing.Point(26, 54); - this.cb_Options_InfoWin_Alt.Name = "cb_Options_InfoWin_Alt"; - this.cb_Options_InfoWin_Alt.Size = new System.Drawing.Size(105, 17); - this.cb_Options_InfoWin_Alt.TabIndex = 7; - this.cb_Options_InfoWin_Alt.Tag = ""; - this.cb_Options_InfoWin_Alt.Text = "Plane Altitude"; - this.cb_Options_InfoWin_Alt.UseVisualStyleBackColor = true; - // - // cb_Options_InfoWin_Position - // - this.cb_Options_InfoWin_Position.AutoSize = true; - this.cb_Options_InfoWin_Position.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Position; - this.cb_Options_InfoWin_Position.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_InfoWin_Position.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Position", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_InfoWin_Position.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_InfoWin_Position.Location = new System.Drawing.Point(26, 31); - this.cb_Options_InfoWin_Position.Name = "cb_Options_InfoWin_Position"; - this.cb_Options_InfoWin_Position.Size = new System.Drawing.Size(107, 17); - this.cb_Options_InfoWin_Position.TabIndex = 6; - this.cb_Options_InfoWin_Position.Tag = ""; - this.cb_Options_InfoWin_Position.Text = "Plane Position"; - this.cb_Options_InfoWin_Position.UseVisualStyleBackColor = true; - // - // rb_Options_InfoWin_Imperial - // - this.rb_Options_InfoWin_Imperial.AutoSize = true; - this.rb_Options_InfoWin_Imperial.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Imperial; - this.rb_Options_InfoWin_Imperial.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Imperial", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_InfoWin_Imperial.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_InfoWin_Imperial.Location = new System.Drawing.Point(156, 18); - this.rb_Options_InfoWin_Imperial.Name = "rb_Options_InfoWin_Imperial"; - this.rb_Options_InfoWin_Imperial.Size = new System.Drawing.Size(61, 17); - this.rb_Options_InfoWin_Imperial.TabIndex = 5; - this.rb_Options_InfoWin_Imperial.Tag = ""; - this.rb_Options_InfoWin_Imperial.Text = "Imperial"; - this.rb_Options_InfoWin_Imperial.UseVisualStyleBackColor = true; - // - // rb_Options_InfoWin_Metric - // - this.rb_Options_InfoWin_Metric.AutoSize = true; - this.rb_Options_InfoWin_Metric.Checked = global::AirScout.Properties.Settings.Default.InfoWin_Metric; - this.rb_Options_InfoWin_Metric.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "InfoWin_Metric", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_InfoWin_Metric.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_InfoWin_Metric.Location = new System.Drawing.Point(83, 18); - this.rb_Options_InfoWin_Metric.Name = "rb_Options_InfoWin_Metric"; - this.rb_Options_InfoWin_Metric.Size = new System.Drawing.Size(54, 17); - this.rb_Options_InfoWin_Metric.TabIndex = 4; - this.rb_Options_InfoWin_Metric.TabStop = true; - this.rb_Options_InfoWin_Metric.Tag = ""; - this.rb_Options_InfoWin_Metric.Text = "Metric"; - this.rb_Options_InfoWin_Metric.UseVisualStyleBackColor = true; - // - // tb_Options_Map_ToolTipFont - // - this.tb_Options_Map_ToolTipFont.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Map_ToolTipFont", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Map_ToolTipFont.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Map_ToolTipFont.Location = new System.Drawing.Point(72, 39); - this.tb_Options_Map_ToolTipFont.Name = "tb_Options_Map_ToolTipFont"; - this.tb_Options_Map_ToolTipFont.ReadOnly = true; - this.tb_Options_Map_ToolTipFont.Size = new System.Drawing.Size(179, 20); - this.tb_Options_Map_ToolTipFont.TabIndex = 0; - this.tb_Options_Map_ToolTipFont.Text = global::AirScout.Properties.Settings.Default.Map_ToolTipFont; - // - // cb_Options_Elevation_GLOBE_EnableCache - // - this.cb_Options_Elevation_GLOBE_EnableCache.AutoSize = true; - this.cb_Options_Elevation_GLOBE_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_EnableCache; - this.cb_Options_Elevation_GLOBE_EnableCache.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Elevation_GLOBE_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_GLOBE_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_GLOBE_EnableCache.Location = new System.Drawing.Point(12, 42); - this.cb_Options_Elevation_GLOBE_EnableCache.Name = "cb_Options_Elevation_GLOBE_EnableCache"; - this.cb_Options_Elevation_GLOBE_EnableCache.Size = new System.Drawing.Size(179, 17); - this.cb_Options_Elevation_GLOBE_EnableCache.TabIndex = 8; - this.cb_Options_Elevation_GLOBE_EnableCache.Tag = ""; - this.cb_Options_Elevation_GLOBE_EnableCache.Text = "Keep downloaded elevation tiles"; - this.cb_Options_Elevation_GLOBE_EnableCache.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_GLOBE - // - this.cb_Options_Elevation_GLOBE.AutoSize = true; - this.cb_Options_Elevation_GLOBE.Checked = global::AirScout.Properties.Settings.Default.Elevation_GLOBE_Enabled; - this.cb_Options_Elevation_GLOBE.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Elevation_GLOBE.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_GLOBE_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_GLOBE.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_GLOBE.Location = new System.Drawing.Point(12, 19); - this.cb_Options_Elevation_GLOBE.Name = "cb_Options_Elevation_GLOBE"; - this.cb_Options_Elevation_GLOBE.Size = new System.Drawing.Size(154, 17); - this.cb_Options_Elevation_GLOBE.TabIndex = 7; - this.cb_Options_Elevation_GLOBE.Tag = ""; - this.cb_Options_Elevation_GLOBE.Text = "Use GLOBE elevation data"; - this.cb_Options_Elevation_GLOBE.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_SRTM3_EnableCache - // - this.cb_Options_Elevation_SRTM3_EnableCache.AutoSize = true; - this.cb_Options_Elevation_SRTM3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_EnableCache; - this.cb_Options_Elevation_SRTM3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_SRTM3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_SRTM3_EnableCache.Location = new System.Drawing.Point(6, 42); - this.cb_Options_Elevation_SRTM3_EnableCache.Name = "cb_Options_Elevation_SRTM3_EnableCache"; - this.cb_Options_Elevation_SRTM3_EnableCache.Size = new System.Drawing.Size(179, 17); - this.cb_Options_Elevation_SRTM3_EnableCache.TabIndex = 13; - this.cb_Options_Elevation_SRTM3_EnableCache.Tag = ""; - this.cb_Options_Elevation_SRTM3_EnableCache.Text = "Keep downloaded elevation tiles"; - this.cb_Options_Elevation_SRTM3_EnableCache.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_SRTM3 - // - this.cb_Options_Elevation_SRTM3.AutoSize = true; - this.cb_Options_Elevation_SRTM3.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM3_Enabled; - this.cb_Options_Elevation_SRTM3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_SRTM3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_SRTM3.Location = new System.Drawing.Point(6, 19); - this.cb_Options_Elevation_SRTM3.Name = "cb_Options_Elevation_SRTM3"; - this.cb_Options_Elevation_SRTM3.Size = new System.Drawing.Size(155, 17); - this.cb_Options_Elevation_SRTM3.TabIndex = 12; - this.cb_Options_Elevation_SRTM3.Tag = ""; - this.cb_Options_Elevation_SRTM3.Text = "Use SRTM3 elevation data"; - this.cb_Options_Elevation_SRTM3.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_SRTM1_EnableCache - // - this.cb_Options_Elevation_SRTM1_EnableCache.AutoSize = true; - this.cb_Options_Elevation_SRTM1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_EnableCache; - this.cb_Options_Elevation_SRTM1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_SRTM1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_SRTM1_EnableCache.Location = new System.Drawing.Point(6, 42); - this.cb_Options_Elevation_SRTM1_EnableCache.Name = "cb_Options_Elevation_SRTM1_EnableCache"; - this.cb_Options_Elevation_SRTM1_EnableCache.Size = new System.Drawing.Size(179, 17); - this.cb_Options_Elevation_SRTM1_EnableCache.TabIndex = 17; - this.cb_Options_Elevation_SRTM1_EnableCache.Tag = ""; - this.cb_Options_Elevation_SRTM1_EnableCache.Text = "Keep downloaded elevation tiles"; - this.cb_Options_Elevation_SRTM1_EnableCache.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_SRTM1 - // - this.cb_Options_Elevation_SRTM1.AutoSize = true; - this.cb_Options_Elevation_SRTM1.Checked = global::AirScout.Properties.Settings.Default.Elevation_SRTM1_Enabled; - this.cb_Options_Elevation_SRTM1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_SRTM1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_SRTM1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_SRTM1.Location = new System.Drawing.Point(6, 19); - this.cb_Options_Elevation_SRTM1.Name = "cb_Options_Elevation_SRTM1"; - this.cb_Options_Elevation_SRTM1.Size = new System.Drawing.Size(155, 17); - this.cb_Options_Elevation_SRTM1.TabIndex = 16; - this.cb_Options_Elevation_SRTM1.Tag = ""; - this.cb_Options_Elevation_SRTM1.Text = "Use SRTM1 elevation data"; - this.cb_Options_Elevation_SRTM1.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_ASTER3_EnableCache - // - this.cb_Options_Elevation_ASTER3_EnableCache.AutoSize = true; - this.cb_Options_Elevation_ASTER3_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_EnableCache; - this.cb_Options_Elevation_ASTER3_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_ASTER3_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_ASTER3_EnableCache.Location = new System.Drawing.Point(6, 42); - this.cb_Options_Elevation_ASTER3_EnableCache.Name = "cb_Options_Elevation_ASTER3_EnableCache"; - this.cb_Options_Elevation_ASTER3_EnableCache.Size = new System.Drawing.Size(179, 17); - this.cb_Options_Elevation_ASTER3_EnableCache.TabIndex = 13; - this.cb_Options_Elevation_ASTER3_EnableCache.Tag = ""; - this.cb_Options_Elevation_ASTER3_EnableCache.Text = "Keep downloaded elevation tiles"; - this.cb_Options_Elevation_ASTER3_EnableCache.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_ASTER3 - // - this.cb_Options_Elevation_ASTER3.AutoSize = true; - this.cb_Options_Elevation_ASTER3.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER3_Enabled; - this.cb_Options_Elevation_ASTER3.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER3_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_ASTER3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_ASTER3.Location = new System.Drawing.Point(6, 19); - this.cb_Options_Elevation_ASTER3.Name = "cb_Options_Elevation_ASTER3"; - this.cb_Options_Elevation_ASTER3.Size = new System.Drawing.Size(160, 17); - this.cb_Options_Elevation_ASTER3.TabIndex = 12; - this.cb_Options_Elevation_ASTER3.Tag = ""; - this.cb_Options_Elevation_ASTER3.Text = "Use ASTER3 elevation data"; - this.cb_Options_Elevation_ASTER3.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_ASTER1_EnableCache - // - this.cb_Options_Elevation_ASTER1_EnableCache.AutoSize = true; - this.cb_Options_Elevation_ASTER1_EnableCache.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_EnableCache; - this.cb_Options_Elevation_ASTER1_EnableCache.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_EnableCache", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_ASTER1_EnableCache.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_ASTER1_EnableCache.Location = new System.Drawing.Point(6, 42); - this.cb_Options_Elevation_ASTER1_EnableCache.Name = "cb_Options_Elevation_ASTER1_EnableCache"; - this.cb_Options_Elevation_ASTER1_EnableCache.Size = new System.Drawing.Size(179, 17); - this.cb_Options_Elevation_ASTER1_EnableCache.TabIndex = 13; - this.cb_Options_Elevation_ASTER1_EnableCache.Tag = ""; - this.cb_Options_Elevation_ASTER1_EnableCache.Text = "Keep downloaded elevation tiles"; - this.cb_Options_Elevation_ASTER1_EnableCache.UseVisualStyleBackColor = true; - // - // cb_Options_Elevation_ASTER1 - // - this.cb_Options_Elevation_ASTER1.AutoSize = true; - this.cb_Options_Elevation_ASTER1.Checked = global::AirScout.Properties.Settings.Default.Elevation_ASTER1_Enabled; - this.cb_Options_Elevation_ASTER1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Elevation_ASTER1_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Elevation_ASTER1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Elevation_ASTER1.Location = new System.Drawing.Point(6, 19); - this.cb_Options_Elevation_ASTER1.Name = "cb_Options_Elevation_ASTER1"; - this.cb_Options_Elevation_ASTER1.Size = new System.Drawing.Size(160, 17); - this.cb_Options_Elevation_ASTER1.TabIndex = 12; - this.cb_Options_Elevation_ASTER1.Tag = ""; - this.cb_Options_Elevation_ASTER1.Text = "Use ASTER1 elevation data"; - this.cb_Options_Elevation_ASTER1.UseVisualStyleBackColor = true; - // - // tb_Options_Path_MaxLength - // - this.tb_Options_Path_MaxLength.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Path_MaxLength", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Path_MaxLength.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Path_MaxLength.FormatSpecifier = "F0"; - this.tb_Options_Path_MaxLength.Location = new System.Drawing.Point(318, 385); - this.tb_Options_Path_MaxLength.MaxValue = double.NaN; - this.tb_Options_Path_MaxLength.MinValue = double.NaN; - this.tb_Options_Path_MaxLength.Name = "tb_Options_Path_MaxLength"; - this.tb_Options_Path_MaxLength.Size = new System.Drawing.Size(57, 20); - this.tb_Options_Path_MaxLength.TabIndex = 39; - this.tb_Options_Path_MaxLength.Text = "1000"; - this.tb_Options_Path_MaxLength.Value = global::AirScout.Properties.Settings.Default.Path_MaxLength; - // - // cb_Options_Path_BestCaseElevation - // - this.cb_Options_Path_BestCaseElevation.AutoSize = true; - this.cb_Options_Path_BestCaseElevation.Checked = global::AirScout.Properties.Settings.Default.Path_BestCaseElevation; - this.cb_Options_Path_BestCaseElevation.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Path_BestCaseElevation.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Path_BestCaseElevation", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Path_BestCaseElevation.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Path_BestCaseElevation.Location = new System.Drawing.Point(6, 411); - this.cb_Options_Path_BestCaseElevation.Name = "cb_Options_Path_BestCaseElevation"; - this.cb_Options_Path_BestCaseElevation.Size = new System.Drawing.Size(438, 17); - this.cb_Options_Path_BestCaseElevation.TabIndex = 28; - this.cb_Options_Path_BestCaseElevation.Tag = ""; - this.cb_Options_Path_BestCaseElevation.Text = "Use best case elevation from grid square for both stations if precise location is" + - " unknown"; - this.tt_Options.SetToolTip(this.cb_Options_Path_BestCaseElevation, "If an exact position of a station is not available, use highest available elevati" + - "on within the given grid square. \r\nThis position is ONLY used for path calculati" + - "on and is not kept in database."); - this.cb_Options_Path_BestCaseElevation.UseVisualStyleBackColor = true; - // - // int32TextBox1 - // - this.int32TextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_MaxErrorDist", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.int32TextBox1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.int32TextBox1.FormatSpecifier = "F0"; - this.int32TextBox1.Location = new System.Drawing.Point(199, 84); - this.int32TextBox1.MaxValue = 600; - this.int32TextBox1.MinValue = 10; - this.int32TextBox1.Name = "int32TextBox1"; - this.int32TextBox1.Size = new System.Drawing.Size(52, 22); - this.int32TextBox1.TabIndex = 46; - this.int32TextBox1.Text = "10"; - this.int32TextBox1.Value = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_MaxErrorDist; - // - // cb_Options_Planes_ExtendedPlausibilityCheck_Enabled - // - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.AutoSize = true; - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Checked = global::AirScout.Properties.Settings.Default.Planes_ExtendedPlausibilityCheck_Enabled; - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_ExtendedPlausibilityCheck_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Location = new System.Drawing.Point(13, 53); - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Name = "cb_Options_Planes_ExtendedPlausibilityCheck_Enabled"; - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Size = new System.Drawing.Size(256, 17); - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.TabIndex = 44; - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.Text = "Enable extended plausibility check of aircraft info"; - this.cb_Options_Planes_ExtendedPlausibilityCheck_Enabled.UseVisualStyleBackColor = true; - // - // tb_Options_Planes_Interval - // - this.tb_Options_Planes_Interval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Interval", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_Interval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_Interval.FormatSpecifier = "F0"; - this.tb_Options_Planes_Interval.Location = new System.Drawing.Point(199, 22); - this.tb_Options_Planes_Interval.MaxValue = 600; - this.tb_Options_Planes_Interval.MinValue = 10; - this.tb_Options_Planes_Interval.Name = "tb_Options_Planes_Interval"; - this.tb_Options_Planes_Interval.Size = new System.Drawing.Size(52, 22); - this.tb_Options_Planes_Interval.TabIndex = 43; - this.tb_Options_Planes_Interval.Text = "60"; - this.tb_Options_Planes_Interval.Value = global::AirScout.Properties.Settings.Default.Planes_Interval; - // - // cb_Options_Planes_LogErrors - // - this.cb_Options_Planes_LogErrors.AutoSize = true; - this.cb_Options_Planes_LogErrors.Checked = global::AirScout.Properties.Settings.Default.Planes_LogErrors; - this.cb_Options_Planes_LogErrors.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_LogErrors", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Planes_LogErrors.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Planes_LogErrors.Location = new System.Drawing.Point(12, 118); - this.cb_Options_Planes_LogErrors.Name = "cb_Options_Planes_LogErrors"; - this.cb_Options_Planes_LogErrors.Size = new System.Drawing.Size(249, 17); - this.cb_Options_Planes_LogErrors.TabIndex = 0; - this.cb_Options_Planes_LogErrors.Text = "Log errors as warnings to AirScout\'s main logfile"; - this.cb_Options_Planes_LogErrors.UseVisualStyleBackColor = true; - // - // cb_Options_Planes_KeepHistory - // - this.cb_Options_Planes_KeepHistory.AutoSize = true; - this.cb_Options_Planes_KeepHistory.Checked = global::AirScout.Properties.Settings.Default.Planes_KeepHistory; - this.cb_Options_Planes_KeepHistory.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Planes_KeepHistory", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Planes_KeepHistory.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Planes_KeepHistory.Location = new System.Drawing.Point(18, 81); - this.cb_Options_Planes_KeepHistory.Name = "cb_Options_Planes_KeepHistory"; - this.cb_Options_Planes_KeepHistory.Size = new System.Drawing.Size(156, 17); - this.cb_Options_Planes_KeepHistory.TabIndex = 4; - this.cb_Options_Planes_KeepHistory.Text = "Keep Plane Position History"; - this.tt_Options.SetToolTip(this.cb_Options_Planes_KeepHistory, "Check this option to keep plane positions in database for history analysis.\r\nCAUT" + - "ION! This will need lot of CPU performance and space on disk!"); - this.cb_Options_Planes_KeepHistory.UseVisualStyleBackColor = true; - // - // ud_Options_Planes_Position_DatabaseLifetime - // - this.ud_Options_Planes_Position_DatabaseLifetime.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "AircraftDatabase_MaxDaysLifetime", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ud_Options_Planes_Position_DatabaseLifetime.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ud_Options_Planes_Position_DatabaseLifetime.Location = new System.Drawing.Point(199, 14); - this.ud_Options_Planes_Position_DatabaseLifetime.Maximum = new decimal(new int[] { - 365, - 0, - 0, - 0}); - this.ud_Options_Planes_Position_DatabaseLifetime.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.ud_Options_Planes_Position_DatabaseLifetime.Name = "ud_Options_Planes_Position_DatabaseLifetime"; - this.ud_Options_Planes_Position_DatabaseLifetime.Size = new System.Drawing.Size(49, 22); - this.ud_Options_Planes_Position_DatabaseLifetime.TabIndex = 2; - this.ud_Options_Planes_Position_DatabaseLifetime.Value = global::AirScout.Properties.Settings.Default.AircraftDatabase_MaxDaysLifetime; - // - // tb_Options_Planes_Positions_TTL - // - this.tb_Options_Planes_Positions_TTL.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Position_TTL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_Positions_TTL.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_Positions_TTL.FormatSpecifier = "F0"; - this.tb_Options_Planes_Positions_TTL.Location = new System.Drawing.Point(192, 65); - this.tb_Options_Planes_Positions_TTL.MaxValue = 30; - this.tb_Options_Planes_Positions_TTL.MinValue = 0; - this.tb_Options_Planes_Positions_TTL.Name = "tb_Options_Planes_Positions_TTL"; - this.tb_Options_Planes_Positions_TTL.Size = new System.Drawing.Size(52, 22); - this.tb_Options_Planes_Positions_TTL.TabIndex = 43; - this.tb_Options_Planes_Positions_TTL.Text = "5"; - this.tb_Options_Planes_Positions_TTL.Value = global::AirScout.Properties.Settings.Default.Planes_Position_TTL; - // - // tb_Options_Planes_MaxAlt - // - this.tb_Options_Planes_MaxAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MaxAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_MaxAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_MaxAlt.FormatSpecifier = "F0"; - this.tb_Options_Planes_MaxAlt.Location = new System.Drawing.Point(192, 39); - this.tb_Options_Planes_MaxAlt.MaxValue = 20000; - this.tb_Options_Planes_MaxAlt.MinValue = 0; - this.tb_Options_Planes_MaxAlt.Name = "tb_Options_Planes_MaxAlt"; - this.tb_Options_Planes_MaxAlt.Size = new System.Drawing.Size(52, 22); - this.tb_Options_Planes_MaxAlt.TabIndex = 42; - this.tb_Options_Planes_MaxAlt.Text = "12200"; - this.tb_Options_Planes_MaxAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MaxAlt; - // - // tb_Options_Planes_MinAlt - // - this.tb_Options_Planes_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_MinAlt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_MinAlt.FormatSpecifier = "F0"; - this.tb_Options_Planes_MinAlt.Location = new System.Drawing.Point(192, 14); - this.tb_Options_Planes_MinAlt.MaxValue = 20000; - this.tb_Options_Planes_MinAlt.MinValue = 0; - this.tb_Options_Planes_MinAlt.Name = "tb_Options_Planes_MinAlt"; - this.tb_Options_Planes_MinAlt.Size = new System.Drawing.Size(52, 22); - this.tb_Options_Planes_MinAlt.TabIndex = 41; - this.tb_Options_Planes_MinAlt.Text = "5000"; - this.tb_Options_Planes_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_MinAlt; - // - // tb_Options_Planes_Filter_MinAlt - // - this.tb_Options_Planes_Filter_MinAlt.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Min_Alt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_Filter_MinAlt.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_Filter_MinAlt.FormatSpecifier = "F0"; - this.tb_Options_Planes_Filter_MinAlt.Location = new System.Drawing.Point(192, 86); - this.tb_Options_Planes_Filter_MinAlt.MaxValue = 12000; - this.tb_Options_Planes_Filter_MinAlt.MinValue = 0; - this.tb_Options_Planes_Filter_MinAlt.Name = "tb_Options_Planes_Filter_MinAlt"; - this.tb_Options_Planes_Filter_MinAlt.Size = new System.Drawing.Size(52, 22); - this.tb_Options_Planes_Filter_MinAlt.TabIndex = 43; - this.tb_Options_Planes_Filter_MinAlt.Text = "0"; - this.tb_Options_Planes_Filter_MinAlt.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Min_Alt; - // - // tb_Options_Planes_Filter_Max_Circumcircle - // - this.tb_Options_Planes_Filter_Max_Circumcircle.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Planes_Filter_Max_Circumcircle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Planes_Filter_Max_Circumcircle.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Planes_Filter_Max_Circumcircle.FormatSpecifier = "F0"; - this.tb_Options_Planes_Filter_Max_Circumcircle.Location = new System.Drawing.Point(192, 59); - this.tb_Options_Planes_Filter_Max_Circumcircle.MaxValue = 1000; - this.tb_Options_Planes_Filter_Max_Circumcircle.MinValue = -1; - this.tb_Options_Planes_Filter_Max_Circumcircle.Name = "tb_Options_Planes_Filter_Max_Circumcircle"; - this.tb_Options_Planes_Filter_Max_Circumcircle.Size = new System.Drawing.Size(52, 22); - this.tb_Options_Planes_Filter_Max_Circumcircle.TabIndex = 42; - this.tb_Options_Planes_Filter_Max_Circumcircle.Text = "0"; - this.tb_Options_Planes_Filter_Max_Circumcircle.Value = global::AirScout.Properties.Settings.Default.Planes_Filter_Max_Circumcircle; - // - // cb_Options_Alarm_Activate - // - this.cb_Options_Alarm_Activate.AutoSize = true; - this.cb_Options_Alarm_Activate.Checked = global::AirScout.Properties.Settings.Default.Alarm_Activate; - this.cb_Options_Alarm_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Alarm_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Alarm_Activate.Location = new System.Drawing.Point(13, 19); - this.cb_Options_Alarm_Activate.Name = "cb_Options_Alarm_Activate"; - this.cb_Options_Alarm_Activate.Size = new System.Drawing.Size(94, 17); - this.cb_Options_Alarm_Activate.TabIndex = 1; - this.cb_Options_Alarm_Activate.Tag = ""; - this.cb_Options_Alarm_Activate.Text = "Activate Alarm"; - this.cb_Options_Alarm_Activate.UseVisualStyleBackColor = true; - // - // cb_Options_Alarm_PlaySound - // - this.cb_Options_Alarm_PlaySound.AutoSize = true; - this.cb_Options_Alarm_PlaySound.Checked = global::AirScout.Properties.Settings.Default.Alarm_PlaySound; - this.cb_Options_Alarm_PlaySound.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Alarm_PlaySound.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Alarm_PlaySound", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Alarm_PlaySound.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Alarm_PlaySound.Location = new System.Drawing.Point(13, 53); - this.cb_Options_Alarm_PlaySound.Name = "cb_Options_Alarm_PlaySound"; - this.cb_Options_Alarm_PlaySound.Size = new System.Drawing.Size(78, 17); - this.cb_Options_Alarm_PlaySound.TabIndex = 1; - this.cb_Options_Alarm_PlaySound.Tag = ""; - this.cb_Options_Alarm_PlaySound.Text = "Play sound"; - this.cb_Options_Alarm_PlaySound.UseVisualStyleBackColor = true; - // - // tb_Options_Alarm_Distance - // - this.tb_Options_Alarm_Distance.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Alarm_Distance", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Alarm_Distance.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Alarm_Distance.FormatSpecifier = "F0"; - this.tb_Options_Alarm_Distance.Location = new System.Drawing.Point(143, 49); - this.tb_Options_Alarm_Distance.MaxValue = 1000D; - this.tb_Options_Alarm_Distance.MinValue = 0D; - this.tb_Options_Alarm_Distance.Name = "tb_Options_Alarm_Distance"; - this.tb_Options_Alarm_Distance.Size = new System.Drawing.Size(75, 22); - this.tb_Options_Alarm_Distance.TabIndex = 3; - this.tb_Options_Alarm_Distance.Text = "100"; - this.tb_Options_Alarm_Distance.Value = global::AirScout.Properties.Settings.Default.Alarm_Distance; - // - // tb_Options_Webserver_Port - // - this.tb_Options_Webserver_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Webserver_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Webserver_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Webserver_Port.FormatSpecifier = "F0"; - this.tb_Options_Webserver_Port.Location = new System.Drawing.Point(150, 28); - this.tb_Options_Webserver_Port.MaxValue = 65535; - this.tb_Options_Webserver_Port.MinValue = 0; - this.tb_Options_Webserver_Port.Name = "tb_Options_Webserver_Port"; - this.tb_Options_Webserver_Port.Size = new System.Drawing.Size(57, 22); - this.tb_Options_Webserver_Port.TabIndex = 8; - this.tb_Options_Webserver_Port.Text = "9880"; - this.tb_Options_Webserver_Port.Value = global::AirScout.Properties.Settings.Default.Webserver_Port; - // - // cb_Options_Server_Activate - // - this.cb_Options_Server_Activate.AutoSize = true; - this.cb_Options_Server_Activate.Checked = global::AirScout.Properties.Settings.Default.Server_Activate; - this.cb_Options_Server_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Server_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Server_Activate.Location = new System.Drawing.Point(13, 23); - this.cb_Options_Server_Activate.Name = "cb_Options_Server_Activate"; - this.cb_Options_Server_Activate.Size = new System.Drawing.Size(142, 17); - this.cb_Options_Server_Activate.TabIndex = 1; - this.cb_Options_Server_Activate.Tag = ""; - this.cb_Options_Server_Activate.Text = "Activate Network Server"; - this.cb_Options_Server_Activate.UseVisualStyleBackColor = true; - // - // tb_Options_Server_Port - // - this.tb_Options_Server_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Server_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Server_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Server_Port.FormatSpecifier = "F0"; - this.tb_Options_Server_Port.Location = new System.Drawing.Point(153, 56); - this.tb_Options_Server_Port.MaxValue = 65535; - this.tb_Options_Server_Port.MinValue = 0; - this.tb_Options_Server_Port.Name = "tb_Options_Server_Port"; - this.tb_Options_Server_Port.Size = new System.Drawing.Size(57, 22); - this.tb_Options_Server_Port.TabIndex = 6; - this.tb_Options_Server_Port.Text = "9872"; - this.tb_Options_Server_Port.Value = global::AirScout.Properties.Settings.Default.Server_Port; - // - // tb_Options_Server_Name - // - this.tb_Options_Server_Name.BackColor = System.Drawing.Color.FloralWhite; - this.tb_Options_Server_Name.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Server_Name", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Server_Name.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Server_Name.Location = new System.Drawing.Point(153, 30); - this.tb_Options_Server_Name.Name = "tb_Options_Server_Name"; - this.tb_Options_Server_Name.Size = new System.Drawing.Size(57, 20); - this.tb_Options_Server_Name.TabIndex = 2; - this.tb_Options_Server_Name.Tag = ""; - this.tb_Options_Server_Name.Text = global::AirScout.Properties.Settings.Default.Server_Name; - // - // tb_Options_SpecLab_UpdateInterval - // - this.tb_Options_SpecLab_UpdateInterval.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_Update", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_SpecLab_UpdateInterval.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_SpecLab_UpdateInterval.FormatSpecifier = "F1"; - this.tb_Options_SpecLab_UpdateInterval.Location = new System.Drawing.Point(106, 230); - this.tb_Options_SpecLab_UpdateInterval.MaxValue = 100D; - this.tb_Options_SpecLab_UpdateInterval.MinValue = 0D; - this.tb_Options_SpecLab_UpdateInterval.Name = "tb_Options_SpecLab_UpdateInterval"; - this.tb_Options_SpecLab_UpdateInterval.Size = new System.Drawing.Size(63, 22); - this.tb_Options_SpecLab_UpdateInterval.TabIndex = 18; - this.tb_Options_SpecLab_UpdateInterval.Text = "1.0"; - this.tb_Options_SpecLab_UpdateInterval.Value = global::AirScout.Properties.Settings.Default.SpecLab_Update; - // - // tb_Options_SpecLab_F2 - // - this.tb_Options_SpecLab_F2.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F2", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_SpecLab_F2.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_SpecLab_F2.FormatSpecifier = "F0"; - this.tb_Options_SpecLab_F2.Location = new System.Drawing.Point(109, 205); - this.tb_Options_SpecLab_F2.MaxValue = 10000; - this.tb_Options_SpecLab_F2.MinValue = 0; - this.tb_Options_SpecLab_F2.Name = "tb_Options_SpecLab_F2"; - this.tb_Options_SpecLab_F2.Size = new System.Drawing.Size(60, 22); - this.tb_Options_SpecLab_F2.TabIndex = 17; - this.tb_Options_SpecLab_F2.Text = "1600"; - this.tb_Options_SpecLab_F2.Value = global::AirScout.Properties.Settings.Default.SpecLab_F2; - // - // tb_Options_SpecLab_F1 - // - this.tb_Options_SpecLab_F1.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "SpecLab_F1", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_SpecLab_F1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_SpecLab_F1.FormatSpecifier = "F0"; - this.tb_Options_SpecLab_F1.Location = new System.Drawing.Point(109, 179); - this.tb_Options_SpecLab_F1.MaxValue = 10000; - this.tb_Options_SpecLab_F1.MinValue = 0; - this.tb_Options_SpecLab_F1.Name = "tb_Options_SpecLab_F1"; - this.tb_Options_SpecLab_F1.Size = new System.Drawing.Size(60, 22); - this.tb_Options_SpecLab_F1.TabIndex = 16; - this.tb_Options_SpecLab_F1.Text = "400"; - this.tb_Options_SpecLab_F1.Value = global::AirScout.Properties.Settings.Default.SpecLab_F1; - // - // tb_SpecLab_FileName - // - this.tb_SpecLab_FileName.BackColor = System.Drawing.Color.FloralWhite; - this.tb_SpecLab_FileName.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_FileName", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_SpecLab_FileName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_SpecLab_FileName.Location = new System.Drawing.Point(109, 153); - this.tb_SpecLab_FileName.Name = "tb_SpecLab_FileName"; - this.tb_SpecLab_FileName.Size = new System.Drawing.Size(347, 20); - this.tb_SpecLab_FileName.TabIndex = 6; - this.tb_SpecLab_FileName.Tag = ""; - this.tb_SpecLab_FileName.Text = global::AirScout.Properties.Settings.Default.SpecLab_FileName; - // - // tb_SpecLab_URL - // - this.tb_SpecLab_URL.BackColor = System.Drawing.Color.FloralWhite; - this.tb_SpecLab_URL.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "SpecLab_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_SpecLab_URL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_SpecLab_URL.Location = new System.Drawing.Point(109, 126); - this.tb_SpecLab_URL.Name = "tb_SpecLab_URL"; - this.tb_SpecLab_URL.Size = new System.Drawing.Size(347, 20); - this.tb_SpecLab_URL.TabIndex = 2; - this.tb_SpecLab_URL.Tag = ""; - this.tb_SpecLab_URL.Text = global::AirScout.Properties.Settings.Default.SpecLab_URL; - // - // cb_SpecLab_Enabled - // - this.cb_SpecLab_Enabled.AutoSize = true; - this.cb_SpecLab_Enabled.Checked = global::AirScout.Properties.Settings.Default.SpecLab_Enabled; - this.cb_SpecLab_Enabled.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "SpecLab_Enabled", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_SpecLab_Enabled.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_SpecLab_Enabled.Location = new System.Drawing.Point(18, 90); - this.cb_SpecLab_Enabled.Name = "cb_SpecLab_Enabled"; - this.cb_SpecLab_Enabled.Size = new System.Drawing.Size(122, 17); - this.cb_SpecLab_Enabled.TabIndex = 1; - this.cb_SpecLab_Enabled.Tag = ""; - this.cb_SpecLab_Enabled.Text = "Activate Connection"; - this.cb_SpecLab_Enabled.UseVisualStyleBackColor = true; - // - // rb_Options_Track_File_None - // - this.rb_Options_Track_File_None.AutoSize = true; - this.rb_Options_Track_File_None.Checked = global::AirScout.Properties.Settings.Default.Track_File_None; - this.rb_Options_Track_File_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_File_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_File_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_File_None.Location = new System.Drawing.Point(17, 19); - this.rb_Options_Track_File_None.Name = "rb_Options_Track_File_None"; - this.rb_Options_Track_File_None.Size = new System.Drawing.Size(51, 17); - this.rb_Options_Track_File_None.TabIndex = 12; - this.rb_Options_Track_File_None.TabStop = true; - this.rb_Options_Track_File_None.Tag = ""; - this.rb_Options_Track_File_None.Text = "None"; - this.rb_Options_Track_File_None.UseVisualStyleBackColor = true; - // - // rb_Options_Track_File_WSJT - // - this.rb_Options_Track_File_WSJT.AutoSize = true; - this.rb_Options_Track_File_WSJT.Checked = global::AirScout.Properties.Settings.Default.Track_File_WSJT; - this.rb_Options_Track_File_WSJT.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_File_WSJT", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_File_WSJT.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_File_WSJT.Location = new System.Drawing.Point(17, 66); - this.rb_Options_Track_File_WSJT.Name = "rb_Options_Track_File_WSJT"; - this.rb_Options_Track_File_WSJT.Size = new System.Drawing.Size(84, 17); - this.rb_Options_Track_File_WSJT.TabIndex = 7; - this.rb_Options_Track_File_WSJT.Tag = ""; - this.rb_Options_Track_File_WSJT.Text = "WSJT Az/El"; - this.rb_Options_Track_File_WSJT.UseVisualStyleBackColor = true; - // - // rb_Options_Track_File_Native - // - this.rb_Options_Track_File_Native.AutoSize = true; - this.rb_Options_Track_File_Native.Checked = global::AirScout.Properties.Settings.Default.Track_File_Native; - this.rb_Options_Track_File_Native.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_File_Native", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_File_Native.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_File_Native.Location = new System.Drawing.Point(17, 43); - this.rb_Options_Track_File_Native.Name = "rb_Options_Track_File_Native"; - this.rb_Options_Track_File_Native.Size = new System.Drawing.Size(85, 17); - this.rb_Options_Track_File_Native.TabIndex = 6; - this.rb_Options_Track_File_Native.Tag = ""; - this.rb_Options_Track_File_Native.Text = "Native Az/El"; - this.rb_Options_Track_File_Native.UseVisualStyleBackColor = true; - // - // rb_Options_Track_DDE_None - // - this.rb_Options_Track_DDE_None.AutoSize = true; - this.rb_Options_Track_DDE_None.Checked = global::AirScout.Properties.Settings.Default.Track_DDE_None; - this.rb_Options_Track_DDE_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_DDE_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_DDE_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_DDE_None.Location = new System.Drawing.Point(17, 19); - this.rb_Options_Track_DDE_None.Name = "rb_Options_Track_DDE_None"; - this.rb_Options_Track_DDE_None.Size = new System.Drawing.Size(51, 17); - this.rb_Options_Track_DDE_None.TabIndex = 11; - this.rb_Options_Track_DDE_None.TabStop = true; - this.rb_Options_Track_DDE_None.Tag = ""; - this.rb_Options_Track_DDE_None.Text = "None"; - this.rb_Options_Track_DDE_None.UseVisualStyleBackColor = true; - // - // rb_Options_Track_DDE_HRD - // - this.rb_Options_Track_DDE_HRD.AutoSize = true; - this.rb_Options_Track_DDE_HRD.Checked = global::AirScout.Properties.Settings.Default.Track_DDE_HRD; - this.rb_Options_Track_DDE_HRD.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_DDE_HRD", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_DDE_HRD.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_DDE_HRD.Location = new System.Drawing.Point(17, 42); - this.rb_Options_Track_DDE_HRD.Name = "rb_Options_Track_DDE_HRD"; - this.rb_Options_Track_DDE_HRD.Size = new System.Drawing.Size(202, 17); - this.rb_Options_Track_DDE_HRD.TabIndex = 6; - this.rb_Options_Track_DDE_HRD.Tag = ""; - this.rb_Options_Track_DDE_HRD.Text = "Ham Radio Deluxe (HRDRotator.exe)"; - this.rb_Options_Track_DDE_HRD.UseVisualStyleBackColor = true; - // - // tb_Options_Track_UDP_AirScout_Port - // - this.tb_Options_Track_UDP_AirScout_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_AirScout_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Track_UDP_AirScout_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Track_UDP_AirScout_Port.FormatSpecifier = "F0"; - this.tb_Options_Track_UDP_AirScout_Port.Location = new System.Drawing.Point(526, 71); - this.tb_Options_Track_UDP_AirScout_Port.MaxValue = 0; - this.tb_Options_Track_UDP_AirScout_Port.MinValue = 0; - this.tb_Options_Track_UDP_AirScout_Port.Name = "tb_Options_Track_UDP_AirScout_Port"; - this.tb_Options_Track_UDP_AirScout_Port.Size = new System.Drawing.Size(43, 22); - this.tb_Options_Track_UDP_AirScout_Port.TabIndex = 17; - this.tb_Options_Track_UDP_AirScout_Port.Text = "9872"; - this.tb_Options_Track_UDP_AirScout_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_AirScout_Port; - // - // tb_Options_Track_UDP_WinTest_Port - // - this.tb_Options_Track_UDP_WinTest_Port.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_UDP_WinTest_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Track_UDP_WinTest_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Track_UDP_WinTest_Port.FormatSpecifier = "F0"; - this.tb_Options_Track_UDP_WinTest_Port.Location = new System.Drawing.Point(526, 42); - this.tb_Options_Track_UDP_WinTest_Port.MaxValue = 0; - this.tb_Options_Track_UDP_WinTest_Port.MinValue = 0; - this.tb_Options_Track_UDP_WinTest_Port.Name = "tb_Options_Track_UDP_WinTest_Port"; - this.tb_Options_Track_UDP_WinTest_Port.Size = new System.Drawing.Size(43, 22); - this.tb_Options_Track_UDP_WinTest_Port.TabIndex = 16; - this.tb_Options_Track_UDP_WinTest_Port.Text = "9871"; - this.tb_Options_Track_UDP_WinTest_Port.Value = global::AirScout.Properties.Settings.Default.Track_UDP_WinTest_Port; - // - // rb_Options_Track_UDP_None - // - this.rb_Options_Track_UDP_None.AutoSize = true; - this.rb_Options_Track_UDP_None.Checked = global::AirScout.Properties.Settings.Default.Track_UDP_None; - this.rb_Options_Track_UDP_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_UDP_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_UDP_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_UDP_None.Location = new System.Drawing.Point(17, 19); - this.rb_Options_Track_UDP_None.Name = "rb_Options_Track_UDP_None"; - this.rb_Options_Track_UDP_None.Size = new System.Drawing.Size(51, 17); - this.rb_Options_Track_UDP_None.TabIndex = 11; - this.rb_Options_Track_UDP_None.TabStop = true; - this.rb_Options_Track_UDP_None.Tag = ""; - this.rb_Options_Track_UDP_None.Text = "None"; - this.rb_Options_Track_UDP_None.UseVisualStyleBackColor = true; - // - // rb_Options_Track_UDP_AirScout - // - this.rb_Options_Track_UDP_AirScout.AutoSize = true; - this.rb_Options_Track_UDP_AirScout.Checked = global::AirScout.Properties.Settings.Default.Track_UDP_AirScout; - this.rb_Options_Track_UDP_AirScout.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_UDP_AirScout", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_UDP_AirScout.Enabled = false; - this.rb_Options_Track_UDP_AirScout.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_UDP_AirScout.Location = new System.Drawing.Point(17, 65); - this.rb_Options_Track_UDP_AirScout.Name = "rb_Options_Track_UDP_AirScout"; - this.rb_Options_Track_UDP_AirScout.Size = new System.Drawing.Size(280, 17); - this.rb_Options_Track_UDP_AirScout.TabIndex = 7; - this.rb_Options_Track_UDP_AirScout.Tag = ""; - this.rb_Options_Track_UDP_AirScout.Text = "UDP Broadcast (AirScout) Az/El (not implemented yet)"; - this.rb_Options_Track_UDP_AirScout.UseVisualStyleBackColor = true; - // - // rb_Options_Track_UDP_WinTest - // - this.rb_Options_Track_UDP_WinTest.AutoSize = true; - this.rb_Options_Track_UDP_WinTest.Checked = global::AirScout.Properties.Settings.Default.Track_UDP_WinTest; - this.rb_Options_Track_UDP_WinTest.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_UDP_WinTest", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_UDP_WinTest.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_UDP_WinTest.Location = new System.Drawing.Point(17, 42); - this.rb_Options_Track_UDP_WinTest.Name = "rb_Options_Track_UDP_WinTest"; - this.rb_Options_Track_UDP_WinTest.Size = new System.Drawing.Size(188, 17); - this.rb_Options_Track_UDP_WinTest.TabIndex = 6; - this.rb_Options_Track_UDP_WinTest.Tag = ""; - this.rb_Options_Track_UDP_WinTest.Text = "UDP Broadcast (Win-Test) Az only"; - this.rb_Options_Track_UDP_WinTest.UseVisualStyleBackColor = true; - // - // tb_Options_Track_Serial_Baudrate - // - this.tb_Options_Track_Serial_Baudrate.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Track_Serial_Baudrate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Track_Serial_Baudrate.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Track_Serial_Baudrate.FormatSpecifier = "F0"; - this.tb_Options_Track_Serial_Baudrate.Location = new System.Drawing.Point(526, 13); - this.tb_Options_Track_Serial_Baudrate.MaxValue = 115200; - this.tb_Options_Track_Serial_Baudrate.MinValue = 0; - this.tb_Options_Track_Serial_Baudrate.Name = "tb_Options_Track_Serial_Baudrate"; - this.tb_Options_Track_Serial_Baudrate.Size = new System.Drawing.Size(72, 22); - this.tb_Options_Track_Serial_Baudrate.TabIndex = 11; - this.tb_Options_Track_Serial_Baudrate.Text = "4800"; - this.tb_Options_Track_Serial_Baudrate.Value = global::AirScout.Properties.Settings.Default.Track_Serial_Baudrate; - // - // rb_Options_Track_Serial_None - // - this.rb_Options_Track_Serial_None.AutoSize = true; - this.rb_Options_Track_Serial_None.Checked = global::AirScout.Properties.Settings.Default.Track_Serial_None; - this.rb_Options_Track_Serial_None.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Serial_None", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_Serial_None.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_Serial_None.Location = new System.Drawing.Point(17, 15); - this.rb_Options_Track_Serial_None.Name = "rb_Options_Track_Serial_None"; - this.rb_Options_Track_Serial_None.Size = new System.Drawing.Size(51, 17); - this.rb_Options_Track_Serial_None.TabIndex = 10; - this.rb_Options_Track_Serial_None.TabStop = true; - this.rb_Options_Track_Serial_None.Tag = ""; - this.rb_Options_Track_Serial_None.Text = "None"; - this.rb_Options_Track_Serial_None.UseVisualStyleBackColor = true; - // - // tb_Options_Track_Serial_Port - // - this.tb_Options_Track_Serial_Port.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.tb_Options_Track_Serial_Port.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScout.Properties.Settings.Default, "Track_Serial_Port", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Track_Serial_Port.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Track_Serial_Port.Location = new System.Drawing.Point(407, 14); - this.tb_Options_Track_Serial_Port.Name = "tb_Options_Track_Serial_Port"; - this.tb_Options_Track_Serial_Port.Size = new System.Drawing.Size(54, 22); - this.tb_Options_Track_Serial_Port.TabIndex = 6; - this.tb_Options_Track_Serial_Port.Tag = ""; - this.tb_Options_Track_Serial_Port.Text = global::AirScout.Properties.Settings.Default.Track_Serial_Port; - // - // rb_Options_Track_Serial_GS232_AZEL - // - this.rb_Options_Track_Serial_GS232_AZEL.AutoSize = true; - this.rb_Options_Track_Serial_GS232_AZEL.Checked = global::AirScout.Properties.Settings.Default.Track_Serial_GS232_AZEL; - this.rb_Options_Track_Serial_GS232_AZEL.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Serial_GS232_AZEL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_Serial_GS232_AZEL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_Serial_GS232_AZEL.Location = new System.Drawing.Point(17, 61); - this.rb_Options_Track_Serial_GS232_AZEL.Name = "rb_Options_Track_Serial_GS232_AZEL"; - this.rb_Options_Track_Serial_GS232_AZEL.Size = new System.Drawing.Size(97, 17); - this.rb_Options_Track_Serial_GS232_AZEL.TabIndex = 5; - this.rb_Options_Track_Serial_GS232_AZEL.Tag = ""; - this.rb_Options_Track_Serial_GS232_AZEL.Text = "GS-232A Az/El"; - this.rb_Options_Track_Serial_GS232_AZEL.UseVisualStyleBackColor = true; - // - // rb_Options_Track_Serial_GS232_AZ - // - this.rb_Options_Track_Serial_GS232_AZ.AutoSize = true; - this.rb_Options_Track_Serial_GS232_AZ.Checked = global::AirScout.Properties.Settings.Default.Track_Serial_GS232_AZ; - this.rb_Options_Track_Serial_GS232_AZ.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Serial_GS232_AZ", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.rb_Options_Track_Serial_GS232_AZ.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rb_Options_Track_Serial_GS232_AZ.Location = new System.Drawing.Point(17, 38); - this.rb_Options_Track_Serial_GS232_AZ.Name = "rb_Options_Track_Serial_GS232_AZ"; - this.rb_Options_Track_Serial_GS232_AZ.Size = new System.Drawing.Size(105, 17); - this.rb_Options_Track_Serial_GS232_AZ.TabIndex = 0; - this.rb_Options_Track_Serial_GS232_AZ.Tag = ""; - this.rb_Options_Track_Serial_GS232_AZ.Text = "GS-232A Az only"; - this.rb_Options_Track_Serial_GS232_AZ.UseVisualStyleBackColor = true; - // - // cb_Options_Track_Activate - // - this.cb_Options_Track_Activate.AutoSize = true; - this.cb_Options_Track_Activate.Checked = global::AirScout.Properties.Settings.Default.Track_Activate; - this.cb_Options_Track_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Track_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Track_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Track_Activate.Location = new System.Drawing.Point(13, 19); - this.cb_Options_Track_Activate.Name = "cb_Options_Track_Activate"; - this.cb_Options_Track_Activate.Size = new System.Drawing.Size(153, 17); - this.cb_Options_Track_Activate.TabIndex = 1; - this.cb_Options_Track_Activate.Tag = ""; - this.cb_Options_Track_Activate.Text = "Activate Antenna Tracking"; - this.cb_Options_Track_Activate.UseVisualStyleBackColor = true; - // - // cb_Options_Watchlist_SyncWithKST - // - this.cb_Options_Watchlist_SyncWithKST.AutoSize = true; - this.cb_Options_Watchlist_SyncWithKST.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; - this.cb_Options_Watchlist_SyncWithKST.Checked = global::AirScout.Properties.Settings.Default.Watchlist_SyncWithKST; - this.cb_Options_Watchlist_SyncWithKST.CheckState = System.Windows.Forms.CheckState.Checked; - this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Enabled", global::AirScout.Properties.Settings.Default, "Server_Activate", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Watchlist_SyncWithKST.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Watchlist_SyncWithKST", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.cb_Options_Watchlist_SyncWithKST.Enabled = global::AirScout.Properties.Settings.Default.Server_Activate; - this.cb_Options_Watchlist_SyncWithKST.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cb_Options_Watchlist_SyncWithKST.Location = new System.Drawing.Point(6, 47); - this.cb_Options_Watchlist_SyncWithKST.Name = "cb_Options_Watchlist_SyncWithKST"; - this.cb_Options_Watchlist_SyncWithKST.Size = new System.Drawing.Size(436, 17); - this.cb_Options_Watchlist_SyncWithKST.TabIndex = 6; - this.cb_Options_Watchlist_SyncWithKST.Text = "Keep in sync with KST user list (needs wtKST > V3.1 and network functions activat" + - "ed):"; - this.cb_Options_Watchlist_SyncWithKST.UseVisualStyleBackColor = true; - this.cb_Options_Watchlist_SyncWithKST.CheckedChanged += new System.EventHandler(this.cb_Options_Watchlist_SyncWithKST_CheckedChanged); - // - // tb_Options_Watchlist_MaxCount - // - this.tb_Options_Watchlist_MaxCount.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Watchlist_MaxCount", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Options_Watchlist_MaxCount.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Options_Watchlist_MaxCount.FormatSpecifier = "F0"; - this.tb_Options_Watchlist_MaxCount.Location = new System.Drawing.Point(395, 20); - this.tb_Options_Watchlist_MaxCount.MaxValue = 1000; - this.tb_Options_Watchlist_MaxCount.MinValue = 1; - this.tb_Options_Watchlist_MaxCount.Name = "tb_Options_Watchlist_MaxCount"; - this.tb_Options_Watchlist_MaxCount.Size = new System.Drawing.Size(47, 22); - this.tb_Options_Watchlist_MaxCount.TabIndex = 5; - this.tb_Options_Watchlist_MaxCount.Text = "1000"; - this.tb_Options_Watchlist_MaxCount.Value = global::AirScout.Properties.Settings.Default.Watchlist_MaxCount; - // - // btn_Options_DXMap - // - this.btn_Options_DXMap.BackgroundImage = global::AirScout.Properties.Resources.Map2; - this.btn_Options_DXMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btn_Options_DXMap.Location = new System.Drawing.Point(8, 135); - this.btn_Options_DXMap.Name = "btn_Options_DXMap"; - this.btn_Options_DXMap.Size = new System.Drawing.Size(75, 81); - this.btn_Options_DXMap.TabIndex = 29; - this.btn_Options_DXMap.Text = "\r\nMap"; - this.btn_Options_DXMap.UseVisualStyleBackColor = true; - this.btn_Options_DXMap.Click += new System.EventHandler(this.btn_Options_DXMap_Click); - // - // btn_Options_MyMap - // - this.btn_Options_MyMap.BackgroundImage = global::AirScout.Properties.Resources.Map2; - this.btn_Options_MyMap.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.btn_Options_MyMap.Location = new System.Drawing.Point(7, 134); - this.btn_Options_MyMap.Name = "btn_Options_MyMap"; - this.btn_Options_MyMap.Size = new System.Drawing.Size(75, 81); - this.btn_Options_MyMap.TabIndex = 30; - this.btn_Options_MyMap.Text = "\r\nMap"; - this.btn_Options_MyMap.UseVisualStyleBackColor = true; - this.btn_Options_MyMap.Click += new System.EventHandler(this.btn_Options_MyMap_Click); - // - // pictureBox3 - // - this.pictureBox3.Image = global::AirScout.Properties.Resources.AirScout_Watchlist; - this.pictureBox3.Location = new System.Drawing.Point(520, 19); - this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.Size = new System.Drawing.Size(113, 344); - this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pictureBox3.TabIndex = 3; - this.pictureBox3.TabStop = false; - // - // pictureBox2 - // - this.pictureBox2.Image = global::AirScout.Properties.Resources.AirScout_Marker; - this.pictureBox2.Location = new System.Drawing.Point(281, 36); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(210, 118); - this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pictureBox2.TabIndex = 2; - this.pictureBox2.TabStop = false; - // - // pictureBox1 - // - this.pictureBox1.Image = global::AirScout.Properties.Resources.AirScout_Multi; - this.pictureBox1.InitialImage = global::AirScout.Properties.Resources.AirScout_Multi; - this.pictureBox1.Location = new System.Drawing.Point(6, 15); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(283, 153); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // pb_Donate - // - this.pb_Donate.Image = ((System.Drawing.Image)(resources.GetObject("pb_Donate.Image"))); - this.pb_Donate.InitialImage = ((System.Drawing.Image)(resources.GetObject("pb_Donate.InitialImage"))); - this.pb_Donate.Location = new System.Drawing.Point(18, 272); - this.pb_Donate.Name = "pb_Donate"; - this.pb_Donate.Size = new System.Drawing.Size(306, 113); - this.pb_Donate.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pb_Donate.TabIndex = 38; - this.pb_Donate.TabStop = false; - this.tt_Options.SetToolTip(this.pb_Donate, "Click here to open a browser window with link."); - this.pb_Donate.Click += new System.EventHandler(this.pb_Donate_Click); - // - // pictureBox4 - // - this.pictureBox4.BackColor = System.Drawing.Color.White; - this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBox4.Image = global::AirScout.Properties.Resources.Settings; - this.pictureBox4.Location = new System.Drawing.Point(343, 108); - this.pictureBox4.Name = "pictureBox4"; - this.pictureBox4.Size = new System.Drawing.Size(306, 277); - this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pictureBox4.TabIndex = 5; - this.pictureBox4.TabStop = false; - // - // ud_Options_Map_Opacity - // - this.ud_Options_Map_Opacity.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScout.Properties.Settings.Default, "Map_Opacity", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ud_Options_Map_Opacity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ud_Options_Map_Opacity.Increment = new decimal(new int[] { - 1, - 0, - 0, - 65536}); - this.ud_Options_Map_Opacity.Location = new System.Drawing.Point(320, 18); - this.ud_Options_Map_Opacity.Maximum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.ud_Options_Map_Opacity.Name = "ud_Options_Map_Opacity"; - this.ud_Options_Map_Opacity.Size = new System.Drawing.Size(54, 20); - this.ud_Options_Map_Opacity.TabIndex = 10; - this.ud_Options_Map_Opacity.Value = global::AirScout.Properties.Settings.Default.Map_Opacity; + // cb_Options_Locators_Activate + // + this.cb_Options_Locators_Activate.AutoSize = true; + this.cb_Options_Locators_Activate.Checked = global::AirScout.Properties.Settings.Default.Map_ShowLocators; + this.cb_Options_Locators_Activate.CheckState = System.Windows.Forms.CheckState.Checked; + this.cb_Options_Locators_Activate.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_ShowLocators", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Locators_Activate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Locators_Activate.Location = new System.Drawing.Point(16, 37); + this.cb_Options_Locators_Activate.Name = "cb_Options_Locators_Activate"; + this.cb_Options_Locators_Activate.Size = new System.Drawing.Size(114, 17); + this.cb_Options_Locators_Activate.TabIndex = 11; + this.cb_Options_Locators_Activate.Text = "Show Locator Grid"; + this.cb_Options_Locators_Activate.UseVisualStyleBackColor = true; + // + // cb_Options_Distances_Activated + // + this.cb_Options_Distances_Activated.AutoSize = true; + this.cb_Options_Distances_Activated.Checked = global::AirScout.Properties.Settings.Default.Map_ShowDistances; + this.cb_Options_Distances_Activated.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::AirScout.Properties.Settings.Default, "Map_ShowDistances", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.cb_Options_Distances_Activated.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Options_Distances_Activated.Location = new System.Drawing.Point(16, 54); + this.cb_Options_Distances_Activated.Name = "cb_Options_Distances_Activated"; + this.cb_Options_Distances_Activated.Size = new System.Drawing.Size(132, 17); + this.cb_Options_Distances_Activated.TabIndex = 12; + this.cb_Options_Distances_Activated.Text = "Show Distance Circles"; + this.cb_Options_Distances_Activated.UseVisualStyleBackColor = true; // // OptionsDlg // @@ -6103,11 +7222,13 @@ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OptionsDlg_FormClosing); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.OptionsDlg_FormClosed); this.Load += new System.EventHandler(this.OptionsDlg_Load); + ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).EndInit(); this.tab_Options_Planes.ResumeLayout(false); this.groupBox48.ResumeLayout(false); this.groupBox48.PerformLayout(); this.groupBox40.ResumeLayout(false); this.groupBox40.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).EndInit(); this.groupBox38.ResumeLayout(false); this.groupBox38.PerformLayout(); this.groupBox26.ResumeLayout(false); @@ -6141,10 +7262,13 @@ this.groupBox49.PerformLayout(); this.groupBox37.ResumeLayout(false); this.groupBox37.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).EndInit(); this.groupBox39.ResumeLayout(false); this.groupBox39.PerformLayout(); this.groupBox23.ResumeLayout(false); this.groupBox23.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).EndInit(); this.groupBox30.ResumeLayout(false); this.groupBox30.PerformLayout(); this.groupBox7.ResumeLayout(false); @@ -6165,6 +7289,7 @@ this.groupBox44.PerformLayout(); this.groupBox14.ResumeLayout(false); this.groupBox14.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).EndInit(); this.groupBox16.ResumeLayout(false); this.groupBox5.ResumeLayout(false); this.groupBox5.PerformLayout(); @@ -6180,6 +7305,7 @@ this.groupBox27.PerformLayout(); this.gb_Options_Database_Settings.ResumeLayout(false); this.gb_Options_Database_Settings.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).EndInit(); this.gb_Options_Database_Info.ResumeLayout(false); this.gb_Options_Database_Info.PerformLayout(); this.tab_Options_ASTER3.ResumeLayout(false); @@ -6212,37 +7338,43 @@ this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); this.tab_Options_Track.ResumeLayout(false); - this.groupBox36.ResumeLayout(false); - this.groupBox36.PerformLayout(); - this.groupBox35.ResumeLayout(false); - this.groupBox35.PerformLayout(); - this.groupBox34.ResumeLayout(false); - this.groupBox34.PerformLayout(); - this.groupBox33.ResumeLayout(false); - this.groupBox33.PerformLayout(); + this.gb_Options_Doppler.ResumeLayout(false); + this.gb_Options_Doppler.PerformLayout(); + this.gb_Options_Track_File.ResumeLayout(false); + this.gb_Options_Track_File.PerformLayout(); + this.gb_Options_Track_DDE.ResumeLayout(false); + this.gb_Options_Track_DDE.PerformLayout(); + this.gb_Options_Track_UDP.ResumeLayout(false); + this.gb_Options_Track_UDP.PerformLayout(); + this.gb_Options_Track_Serial.ResumeLayout(false); + this.gb_Options_Track_Serial.PerformLayout(); this.groupBox28.ResumeLayout(false); this.groupBox28.PerformLayout(); + this.tab_Options_CAT.ResumeLayout(false); + this.gb_Options_CAT_PortSettings.ResumeLayout(false); + this.gb_Options_CAT_PortSettings.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Timeout)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Poll)).EndInit(); + this.gb_Options_CAT_RigType.ResumeLayout(false); + this.gb_Options_CAT_RigType.PerformLayout(); + this.gb_Options_CAT_OperatingInstructions.ResumeLayout(false); + this.groupBox57.ResumeLayout(false); + this.groupBox57.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Options_CAT_Update)).EndInit(); this.tab_Options_Watchlist.ResumeLayout(false); this.groupBox50.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.groupBox17.ResumeLayout(false); this.groupBox17.PerformLayout(); this.tab_Options_Misc.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); this.groupBox15.ResumeLayout(false); this.tab_Options_Info.ResumeLayout(false); this.tab_Options_Info.PerformLayout(); this.ss_Options.ResumeLayout(false); this.ss_Options.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Database_Update_Period)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Locator_MaxLength)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Charts_FontSize)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Preloader_MaxZoom)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Planes_Position_DatabaseLifetime)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pb_Donate)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ud_Options_Map_Opacity)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -6381,18 +7513,18 @@ private System.Windows.Forms.GroupBox groupBox31; private System.Windows.Forms.Label label86; private System.Windows.Forms.GroupBox groupBox32; - private System.Windows.Forms.GroupBox groupBox33; + private System.Windows.Forms.GroupBox gb_Options_Track_Serial; private System.Windows.Forms.Label label88; private System.Windows.Forms.Label label87; private System.Windows.Forms.TextBox tb_Options_Track_Serial_Port; private System.Windows.Forms.RadioButton rb_Options_Track_Serial_GS232_AZEL; private System.Windows.Forms.RadioButton rb_Options_Track_Serial_GS232_AZ; - private System.Windows.Forms.GroupBox groupBox34; + private System.Windows.Forms.GroupBox gb_Options_Track_UDP; private System.Windows.Forms.RadioButton rb_Options_Track_UDP_WinTest; - private System.Windows.Forms.GroupBox groupBox35; + private System.Windows.Forms.GroupBox gb_Options_Track_DDE; private System.Windows.Forms.RadioButton rb_Options_Track_DDE_HRD; private System.Windows.Forms.RadioButton rb_Options_Track_UDP_AirScout; - private System.Windows.Forms.GroupBox groupBox36; + private System.Windows.Forms.GroupBox gb_Options_Track_File; private System.Windows.Forms.RadioButton rb_Options_Track_File_WSJT; private System.Windows.Forms.RadioButton rb_Options_Track_File_Native; private System.Windows.Forms.RadioButton rb_Options_Track_Serial_None; @@ -6693,5 +7825,87 @@ private System.Windows.Forms.Label label147; private System.Windows.Forms.Label label148; private PercentageControl ud_Options_Map_Opacity; + private System.Windows.Forms.TabPage tab_Options_CAT; + private System.Windows.Forms.GroupBox groupBox57; + private System.Windows.Forms.ComboBox cb_Options_CAT_Rig; + private System.Windows.Forms.CheckBox cb_Options_CAT_Activate; + private System.Windows.Forms.GroupBox gb_Options_Doppler; + private ScoutBase.Core.LongTextBox tb_Options_Track_DialFreq; + private System.Windows.Forms.GroupBox gb_Options_CAT_OperatingInstructions; + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Label label154; + private System.Windows.Forms.Label label153; + private System.Windows.Forms.Label label152; + private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_D; + private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_C; + private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_B; + private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_A; + private System.Windows.Forms.Label label155; + private System.Windows.Forms.Label label178; + private System.Windows.Forms.Label label179; + private System.Windows.Forms.Label label176; + private System.Windows.Forms.Label label177; + private System.Windows.Forms.Label label174; + private System.Windows.Forms.Label label175; + private System.Windows.Forms.Label label172; + private System.Windows.Forms.Label label173; + private System.Windows.Forms.Label label170; + private System.Windows.Forms.Label label171; + private System.Windows.Forms.Label label168; + private System.Windows.Forms.Label label169; + private System.Windows.Forms.Label label166; + private System.Windows.Forms.Label label167; + private System.Windows.Forms.Label label165; + private System.Windows.Forms.Label label163; + private System.Windows.Forms.Label label164; + private System.Windows.Forms.Label label162; + private System.Windows.Forms.Label label161; + private System.Windows.Forms.Label label160; + private System.Windows.Forms.Label label159; + private System.Windows.Forms.Label label158; + private System.Windows.Forms.Label label157; + private System.Windows.Forms.Label label156; + private System.Windows.Forms.RadioButton rb_Options_Doppler_Strategy_None; + private System.Windows.Forms.Label label180; + private System.Windows.Forms.Label label181; + private System.Windows.Forms.Label label182; + private System.Windows.Forms.Label label183; + private System.Windows.Forms.Label label184; + private System.Windows.Forms.Label label150; + private System.Windows.Forms.Label label185; + private System.Windows.Forms.Label label151; + private ScoutBase.Core.Int32TextBox int32TextBox2; + private System.Windows.Forms.Label label186; + private System.Windows.Forms.Label label187; + private ScoutBase.Core.Int32TextBox tb_Options_Track_Offset; + private System.Windows.Forms.Label label189; + private System.Windows.Forms.GroupBox gb_Options_CAT_PortSettings; + private System.Windows.Forms.GroupBox gb_Options_CAT_RigType; + private System.Windows.Forms.NumericUpDown ud_Options_CAT_Timeout; + private System.Windows.Forms.Label label149; + private System.Windows.Forms.NumericUpDown ud_Options_CAT_Poll; + private System.Windows.Forms.Label label190; + private System.Windows.Forms.Label label191; + private System.Windows.Forms.ComboBox cb_Options_CAT_DTR; + private System.Windows.Forms.Label label192; + private System.Windows.Forms.ComboBox cb_Options_CAT_RTS; + private System.Windows.Forms.Label label193; + private System.Windows.Forms.ComboBox cb_Options_CAT_StopBits; + private System.Windows.Forms.Label label194; + private System.Windows.Forms.ComboBox cb_Options_CAT_Parity; + private System.Windows.Forms.Label label195; + private System.Windows.Forms.ComboBox cb_Options_CAT_DataBits; + private System.Windows.Forms.Label label196; + private System.Windows.Forms.ComboBox cb_Options_CAT_Baudrate; + private System.Windows.Forms.Label label197; + private System.Windows.Forms.ComboBox cb_Options_CAT_PortName; + private System.Windows.Forms.Label label199; + private System.Windows.Forms.RichTextBox richTextBox2; + private System.Windows.Forms.NumericUpDown ud_Options_CAT_Update; + private System.Windows.Forms.RichTextBox richTextBox3; + private System.Windows.Forms.RichTextBox richTextBox5; + private System.Windows.Forms.RichTextBox richTextBox4; + private System.Windows.Forms.CheckBox cb_Options_Locators_Activate; + private System.Windows.Forms.CheckBox cb_Options_Distances_Activated; } } \ No newline at end of file diff --git a/AirScout/OptionsDlg.cs b/AirScout/OptionsDlg.cs index d3147ee..8f4067c 100644 --- a/AirScout/OptionsDlg.cs +++ b/AirScout/OptionsDlg.cs @@ -31,6 +31,7 @@ using ScoutBase; using Newtonsoft.Json; using static ScoutBase.Core.ZIP; using AirScout.PlaneFeeds.Plugin.MEFContract; +using AirScout.CAT; namespace AirScout { @@ -52,6 +53,8 @@ namespace AirScout private LogWriter Log = LogWriter.Instance; + private bool LoadingTab = false; + public OptionsDlg(MapDlg parentDlg) { InitializeComponent(); @@ -2538,7 +2541,45 @@ namespace AirScout private void tab_Options_Track_Enter(object sender, EventArgs e) { + if (AirScout.CAT.Properties.Settings.Default.CAT_Activate) + { + gb_Options_Doppler.Enabled = true; + } + else + { + gb_Options_Doppler.Enabled = false; + } + // check/uncheck radio buttons + // do not use property binding here! + if (Properties.Settings.Default.Track_Serial_None) { rb_Options_Track_Serial_None.Checked = true; } + else if (Properties.Settings.Default.Track_Serial_GS232_AZ) { rb_Options_Track_Serial_GS232_AZ.Checked = true; } + else if (Properties.Settings.Default.Track_Serial_GS232_AZEL) { rb_Options_Track_Serial_GS232_AZEL.Checked = true; } + + if (Properties.Settings.Default.Track_DDE_None) { rb_Options_Track_DDE_None.Checked = true; } + else if (Properties.Settings.Default.Track_DDE_HRD) { rb_Options_Track_DDE_HRD.Checked = true; } + + if (Properties.Settings.Default.Track_UDP_None) { rb_Options_Track_UDP_None.Checked = true; } + else if (Properties.Settings.Default.Track_UDP_WinTest) { rb_Options_Track_UDP_WinTest.Checked = true; } + else if (Properties.Settings.Default.Track_UDP_AirScout) { rb_Options_Track_UDP_AirScout.Checked = true; } + + if (Properties.Settings.Default.Track_File_None) { rb_Options_Track_File_None.Checked = true; } + else if (Properties.Settings.Default.Track_File_Native) { rb_Options_Track_File_Native.Checked = true; } + else if (Properties.Settings.Default.Track_File_WSJT) { rb_Options_Track_File_WSJT.Checked = true; } + + if (Properties.Settings.Default.Doppler_Strategy_None) { rb_Options_Doppler_Strategy_None.Checked = true; } + else if (Properties.Settings.Default.Doppler_Strategy_A) { rb_Options_Doppler_Strategy_A.Checked = true; } + else if (Properties.Settings.Default.Doppler_Strategy_B) { rb_Options_Doppler_Strategy_B.Checked = true; } + else if (Properties.Settings.Default.Doppler_Strategy_C) { rb_Options_Doppler_Strategy_C.Checked = true; } + else if (Properties.Settings.Default.Doppler_Strategy_D) { rb_Options_Doppler_Strategy_D.Checked = true; } + + ud_Options_CAT_Update.Value = AirScout.CAT.Properties.Settings.Default.CAT_Update; + tb_Options_Track_DialFreq.SilentValue = Properties.Settings.Default.Doppler_DialFreq; + cb_Options_Track_Activate_CheckedChanged(this, null); + } + + private void tb_Options_CAT_DialFreq_TextChanged(object sender, EventArgs e) + { } private void tc_Track_Validating(object sender, CancelEventArgs e) @@ -2560,8 +2601,403 @@ namespace AirScout } } + private void cb_Options_Track_Activate_CheckedChanged(object sender, EventArgs e) + { + if (cb_Options_Track_Activate.Checked) + { + gb_Options_Track_Serial.Enabled = true; + gb_Options_Track_UDP.Enabled = true; + gb_Options_Track_DDE.Enabled = true; + gb_Options_Track_File.Enabled = true; + if (AirScout.CAT.Properties.Settings.Default.CAT_Activate) + { + gb_Options_Doppler.Enabled = true; + } + } + else + { + gb_Options_Track_Serial.Enabled = false; + gb_Options_Track_UDP.Enabled = false; + gb_Options_Track_DDE.Enabled = false; + gb_Options_Track_File.Enabled = false; + gb_Options_Doppler.Enabled = false; + } + } + + private void gb_Options_Track_Serial_CheckedChanged(object sender, EventArgs e) + { + Properties.Settings.Default.Track_Serial_None = rb_Options_Track_Serial_None.Checked; + Properties.Settings.Default.Track_Serial_GS232_AZ = rb_Options_Track_Serial_GS232_AZ.Checked; + Properties.Settings.Default.Track_Serial_GS232_AZEL = rb_Options_Track_Serial_GS232_AZEL.Checked; + } + + private void gb_Options_Track_DDE_CheckedChanged(object sender, EventArgs e) + { + Properties.Settings.Default.Track_DDE_None = rb_Options_Track_DDE_None.Checked; + Properties.Settings.Default.Track_DDE_HRD = rb_Options_Track_DDE_HRD.Checked; + } + + private void gb_Options_Track_UDP_CheckedChanged(object sender, EventArgs e) + { + Properties.Settings.Default.Track_UDP_None = rb_Options_Track_UDP_None.Checked; + Properties.Settings.Default.Track_UDP_WinTest = rb_Options_Track_UDP_WinTest.Checked; + Properties.Settings.Default.Track_UDP_AirScout = rb_Options_Track_UDP_AirScout.Checked; + } + + private void gb_Options_Track_File_CheckedChanged(object sender, EventArgs e) + { + Properties.Settings.Default.Track_File_None = rb_Options_Track_File_None.Checked; + Properties.Settings.Default.Track_File_Native = rb_Options_Track_File_Native.Checked; + Properties.Settings.Default.Track_File_WSJT = rb_Options_Track_File_WSJT.Checked; + } + + private void gb_Options_Doppler_CheckedChanged(object sender, EventArgs e) + { + Properties.Settings.Default.Doppler_Strategy_None = rb_Options_Doppler_Strategy_None.Checked; + Properties.Settings.Default.Doppler_Strategy_A = rb_Options_Doppler_Strategy_A.Checked; + Properties.Settings.Default.Doppler_Strategy_B = rb_Options_Doppler_Strategy_B.Checked; + Properties.Settings.Default.Doppler_Strategy_C = rb_Options_Doppler_Strategy_C.Checked; + Properties.Settings.Default.Doppler_Strategy_D = rb_Options_Doppler_Strategy_D.Checked; + } + + #endregion + #region tab_Options_CAT + + private void tab_Options_CAT_Enter(object sender, EventArgs e) + { + LoadingTab = true; + + cb_Options_CAT_Activate.Checked = AirScout.CAT.Properties.Settings.Default.CAT_Activate; + + + // get a list of supported rigs and add them to combo box + List rigs = CATWorker.SupportedRigs(); + cb_Options_CAT_Rig.Items.Clear(); + foreach (SupportedRig rig in rigs) + { + cb_Options_CAT_Rig.Items.Add(rig); + } + + // try to select settings + if (AirScout.CAT.Properties.Settings.Default.CAT_RigType != null) + { + try + { + int index = cb_Options_CAT_Rig.FindString(AirScout.CAT.Properties.Settings.Default.CAT_RigType); + if (index >= 0) + { + cb_Options_CAT_Rig.SelectedIndex = index; + } + } + catch + { + // do nothing if something goes wrong + } + } + try + { + cb_Options_CAT_PortName.DataSource = System.IO.Ports.SerialPort.GetPortNames(); + cb_Options_CAT_PortName.SelectedItem = AirScout.CAT.Properties.Settings.Default.CAT_PortName; + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + cb_Options_CAT_Baudrate.DataSource = new string[] { "110", "300", "600", "1200", "2400", "4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200", "128000", "256000" }; + cb_Options_CAT_Baudrate.SelectedItem = AirScout.CAT.Properties.Settings.Default.CAT_Baudrate.ToString(); + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + cb_Options_CAT_DataBits.DataSource = new string[] { "5", "6", "7", "8" }; + cb_Options_CAT_DataBits.SelectedItem = AirScout.CAT.Properties.Settings.Default.CAT_DataBits.ToString(); + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + EnumHelpers.BindToEnum(cb_Options_CAT_Parity); + cb_Options_CAT_Parity.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_Parity; + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + EnumHelpers.BindToEnum(cb_Options_CAT_StopBits); + cb_Options_CAT_StopBits.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_StopBits; + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + EnumHelpers.BindToEnum(cb_Options_CAT_RTS); + cb_Options_CAT_RTS.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_RTS; + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + EnumHelpers.BindToEnum(cb_Options_CAT_DTR); + cb_Options_CAT_DTR.SelectedValue = (int)AirScout.CAT.Properties.Settings.Default.CAT_DTR; + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + ud_Options_CAT_Poll.Value = AirScout.CAT.Properties.Settings.Default.CAT_Poll; + } + catch (Exception ex) + { + // do nothing if fails + } + try + { + ud_Options_CAT_Timeout.Value = AirScout.CAT.Properties.Settings.Default.CAT_Timeout; + } + catch (Exception ex) + { + // do nothing if fails + } + + cb_Options_CAT_Activate_CheckedChanged(this, null); + + LoadingTab = false; + } + + private void cb_Options_CAT_Activate_CheckedChanged(object sender, EventArgs e) + { + AirScout.CAT.Properties.Settings.Default.CAT_Activate = cb_Options_CAT_Activate.Checked; + + // check if port settings must be enabled (depending on rig type) + bool portenabled = true; + try + { + SupportedRig rig = (SupportedRig)cb_Options_CAT_Rig.SelectedItem; + if (rig.CATEngine == CATENGINE.OMNIRIGX) + portenabled = false; + } + catch + { + + } + + if (cb_Options_CAT_Activate.Checked) + { + ud_Options_CAT_Update.Enabled = true; + gb_Options_CAT_RigType.Enabled = true; + if (portenabled) + gb_Options_CAT_PortSettings.Enabled = true; + else + gb_Options_CAT_PortSettings.Enabled = false; + gb_Options_CAT_OperatingInstructions.Enabled = true; + if (Properties.Settings.Default.Track_Activate) + { + gb_Options_Doppler.Enabled = true; + } + } + else + { + ud_Options_CAT_Update.Enabled = false; + gb_Options_CAT_RigType.Enabled = false; + gb_Options_CAT_PortSettings.Enabled = false; + gb_Options_CAT_OperatingInstructions.Enabled = false; + gb_Options_Doppler.Enabled = false; + } + } + + private void cb_Options_CAT_Rig_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + SupportedRig rig = (SupportedRig)cb_Options_CAT_Rig.SelectedItem; + if (rig != null) + { + AirScout.CAT.Properties.Settings.Default.CAT_RigType = rig.Type; + + // disable port settings when using OmniRig ActiveX + if (rig.CATEngine == CATENGINE.OMNIRIGX) + { + gb_Options_CAT_PortSettings.Enabled = false; + } + else + { + gb_Options_CAT_PortSettings.Enabled = true; + } + } + + } + catch + { + // do nothing if fails + } + } + + private void ud_Options_CAT_Update_ValueChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + AirScout.CAT.Properties.Settings.Default.CAT_Update = (int)ud_Options_CAT_Update.Value; + } + + private void cb_Options_CAT_PortName_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_PortName = (string)cb_Options_CAT_PortName.SelectedItem; + } + catch + { + // do nothing if fails + } + } + + private void cb_Options_CAT_Baudrate_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_Baudrate = System.Convert.ToInt32(cb_Options_CAT_Baudrate.SelectedItem); + } + catch + { + // do nothing if fails + } + } + + private void cb_Options_CAT_DataBits_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_DataBits = System.Convert.ToInt32(cb_Options_CAT_DataBits.SelectedItem); + } + catch + { + // do nothing if fails + } + } + + private void cb_Parity_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_Parity = (PARITY)cb_Options_CAT_Parity.SelectedValue; + } + catch + { + // do nothing if fails + } + } + + private void cb_Options_CAT_Stopbits_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_StopBits = (STOPBITS)cb_Options_CAT_StopBits.SelectedValue; + } + catch + { + // do nothing if fails + } + } + + private void cb_Options_CAT_RTS_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_RTS = (FLOWCONTROL)cb_Options_CAT_RTS.SelectedValue; + } + catch + { + // do nothing if fails + } + } + + private void cb_Options_CAT_DTR_SelectedIndexChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_DTR = (FLOWCONTROL)cb_Options_CAT_DTR.SelectedValue; + } + catch + { + // do nothing if fails + } + } + + private void ud_Options_CAT_Poll_ValueChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_Poll = (int)ud_Options_CAT_Poll.Value; } + catch + { + // do nothing if fails + } + + } + + private void ud_Options_CAT_Timeout_ValueChanged(object sender, EventArgs e) + { + if (LoadingTab) + return; + + try + { + AirScout.CAT.Properties.Settings.Default.CAT_Timeout = (int)ud_Options_CAT_Timeout.Value; + } + catch + { + // do nothing if fails + } + } + + #endregion + + #region tab_Options_Info private void tab_Options_Info_Enter(object sender, EventArgs e) diff --git a/AirScout/OptionsDlg.resx b/AirScout/OptionsDlg.resx index 69701ef..dd52d3d 100644 --- a/AirScout/OptionsDlg.resx +++ b/AirScout/OptionsDlg.resx @@ -120,65 +120,6 @@ 17, 17 - - You can select different map provider from the list below. Depending on your selection some maps may not be available for your choosen area. Please note that the selection of maps is taken from Great Maps regardless of their legal status. Some of them might be copyrighted or otherwise restricted in use. -You were asked to agree with the terms of use first. -Open Street Map is recommended as a default. - - - Information from callsign database and other sources are used to prefill fields. You can overwrite and complete entries here. Your local database is updated. If you want to share the information with the AirScout community please use the "Send Update!" buttons. - - - CAUTION: Running a web service is a potential security hole! You should activate this function only inside a private network. - -Depending on your user profile you will prompted several times by the Operating System on first run. Please accept all security queries with "Yes" or "Accept". -Otherwise the web service will not run properly. - - - AirScout can work as a server in a network. - -UDP Server: -You can ask for a path calculation between two stations and AirScout will return the planes near path and their portential for a reflection. - -HTTP Server: -You can ask for latest plane positions via simple http-request (e.g. from a web browser. The result is delivered as a JSON file which can used to run own services and calculations. - -See documentation for further details. - - - AirScout can get FFT data from Spectrum Lab software via Network. You must have Spectrum Lab software installed with default settings. Do not forget to activate http - server functionaltiy in Spectrum Lab. - - - Watchlist allows you to pick a number of stations out of your database. -This is very helpful especially when working in Multi-Path Mode. - -All stations on watchlist can be shown on map with small markers and callsign labels for quick showing/hiding path to them. - -If a station is selected from watchlist by checking the assigned checkbox, path is shown on map and entry is coloured according to aircraft scatter potential. - -Watchlist can be synchronized with ON4KST chat user list instead of a local managed list to show all stations currently logged in in chat (Needs wtKST software and network functions enabbled). - - - 130, 17 - - - 353, 17 - - - 483, 17 - - - 706, 17 - - - 890, 17 - - - 1071, 17 - - - 1259, 17 - @@ -298,4 +239,77 @@ Watchlist can be synchronized with ON4KST chat user list instead of a local mana bOQwu7KRw+zKRg6zKxs5zK5s5DC7spHD7MpGDrMrGznMrkwUwn8BkAmqaXV391cAAAAASUVORK5CYII= + + You can select different map provider from the list below. Depending on your selection some maps may not be available for your choosen area. Please note that the selection of maps is taken from Great Maps regardless of their legal status. Some of them might be copyrighted or otherwise restricted in use. +You were asked to agree with the terms of use first. +Open Street Map is recommended as a default. + + + Information from callsign database and other sources are used to prefill fields. You can overwrite and complete entries here. Your local database is updated. If you want to share the information with the AirScout community please use the "Send Update!" buttons. + + + CAUTION: Running a web service is a potential security hole! You should activate this function only inside a private network. + +Depending on your user profile you will prompted several times by the Operating System on first run. Please accept all security queries with "Yes" or "Accept". +Otherwise the web service will not run properly. + + + AirScout can work as a server in a network. + +UDP Server: +You can ask for a path calculation between two stations and AirScout will return the planes near path and their portential for a reflection. + +HTTP Server: +You can ask for latest plane positions via simple http-request (e.g. from a web browser. The result is delivered as a JSON file which can used to run own services and calculations. + +See documentation for further details. + + + AirScout can get FFT data from Spectrum Lab software via Network. You must have Spectrum Lab software installed with default settings. Do not forget to activate http - server functionaltiy in Spectrum Lab. + + + Rig must support a minimum of CAT control capabilities: +- set frequency of VFO A and VFO B +- set/reset Split Mode + +A restart of AirScout might be required after settings change, especially when changing between different CAT engines. + + + CAT control is introduced for Doppler shift compensation (see "Track" tab for details). +AirScout is calculating tracking and Doppler shifts once per second by default. Each communication with rig must be completed within this period. The recommended settings for OmniRig are: + +- Polling interval: 100ms ...500ms +- Timeout: 500ms .. 1sec (essential for OmniRig) + + + Watchlist allows you to pick a number of stations out of your database. +This is very helpful especially when working in Multi-Path Mode. + +All stations on watchlist can be shown on map with small markers and callsign labels for quick showing/hiding path to them. + +If a station is selected from watchlist by checking the assigned checkbox, path is shown on map and entry is coloured according to aircraft scatter potential. + +Watchlist can be synchronized with ON4KST chat user list instead of a local managed list to show all stations currently logged in in chat (Needs wtKST software and network functions enabbled). + + + 130, 17 + + + 353, 17 + + + 483, 17 + + + 706, 17 + + + 890, 17 + + + 1071, 17 + + + 1259, 17 + \ No newline at end of file diff --git a/AirScout/PathCalculator.cs b/AirScout/PathCalculator.cs index 7f471c7..39b4fa2 100644 --- a/AirScout/PathCalculator.cs +++ b/AirScout/PathCalculator.cs @@ -263,7 +263,7 @@ namespace AirScout Log.WriteMessage(Name + " error processing call [" + ld.Call + "]: " + ex.ToString()); } // keep cpu load low --> TODO: find better solution here - Thread.Sleep(10); + Thread.Sleep(100); } // save station database timestamp SaveDatabaseTimeStamp(); diff --git a/AirScout/Properties/AssemblyInfo.cs b/AirScout/Properties/AssemblyInfo.cs index 1c79759..66cf7c2 100644 --- a/AirScout/Properties/AssemblyInfo.cs +++ b/AirScout/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.4.0.0")] -[assembly: AssemblyFileVersion("1.4.0.0")] +[assembly: AssemblyVersion("1.4.1.0")] +[assembly: AssemblyFileVersion("1.4.1.0")] diff --git a/AirScout/Properties/Settings.Designer.cs b/AirScout/Properties/Settings.Designer.cs index 51186ec..0df2f54 100644 --- a/AirScout/Properties/Settings.Designer.cs +++ b/AirScout/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace AirScout.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -2455,5 +2455,233 @@ Digital data base on the World Wide Web (URL: http://www.ngdc.noaa.gov/mgg/topo/ this["Map_Opacity"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0")] + public long Doppler_DialFreq { + get { + return ((long)(this["Doppler_DialFreq"])); + } + set { + this["Doppler_DialFreq"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0")] + public double Doppler_MyDoppler { + get { + return ((double)(this["Doppler_MyDoppler"])); + } + set { + this["Doppler_MyDoppler"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0")] + public double Doppler_DXDoppler { + get { + return ((double)(this["Doppler_DXDoppler"])); + } + set { + this["Doppler_DXDoppler"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool Doppler_Strategy_A { + get { + return ((bool)(this["Doppler_Strategy_A"])); + } + set { + this["Doppler_Strategy_A"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool Doppler_Strategy_B { + get { + return ((bool)(this["Doppler_Strategy_B"])); + } + set { + this["Doppler_Strategy_B"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool Doppler_Strategy_C { + get { + return ((bool)(this["Doppler_Strategy_C"])); + } + set { + this["Doppler_Strategy_C"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool Doppler_Strategy_D { + get { + return ((bool)(this["Doppler_Strategy_D"])); + } + set { + this["Doppler_Strategy_D"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0")] + public long Doppler_RXFreq { + get { + return ((long)(this["Doppler_RXFreq"])); + } + set { + this["Doppler_RXFreq"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0")] + public long Doppler_TXFreq { + get { + return ((long)(this["Doppler_TXFreq"])); + } + set { + this["Doppler_TXFreq"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Track_CurrentPlane { + get { + return ((string)(this["Track_CurrentPlane"])); + } + set { + this["Track_CurrentPlane"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0")] + public int Track_Offset { + get { + return ((int)(this["Track_Offset"])); + } + set { + this["Track_Offset"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool Doppler_Strategy_None { + get { + return ((bool)(this["Doppler_Strategy_None"])); + } + set { + this["Doppler_Strategy_None"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("NONE")] + public global::AirScout.CAT.RIGSPLIT Doppler_DialSplit { + get { + return ((global::AirScout.CAT.RIGSPLIT)(this["Doppler_DialSplit"])); + } + set { + this["Doppler_DialSplit"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("NONE")] + public global::AirScout.CAT.RIGMODE Doppler_DialMode { + get { + return ((global::AirScout.CAT.RIGMODE)(this["Doppler_DialMode"])); + } + set { + this["Doppler_DialMode"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("NONE")] + public global::AirScout.CAT.RIGRIT Doppler_DialRit { + get { + return ((global::AirScout.CAT.RIGRIT)(this["Doppler_DialRit"])); + } + set { + this["Doppler_DialRit"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("1000")] + public int Track_Update { + get { + return ((int)(this["Track_Update"])); + } + set { + this["Track_Update"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("\\ScoutBase\\RigData")] + public string Rig_Directory { + get { + return ((string)(this["Rig_Directory"])); + } + set { + this["Rig_Directory"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool Map_ShowLocators { + get { + return ((bool)(this["Map_ShowLocators"])); + } + set { + this["Map_ShowLocators"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool Map_ShowDistances { + get { + return ((bool)(this["Map_ShowDistances"])); + } + set { + this["Map_ShowDistances"] = value; + } + } } } diff --git a/AirScout/Properties/Settings.settings b/AirScout/Properties/Settings.settings index 7547043..59567ed 100644 --- a/AirScout/Properties/Settings.settings +++ b/AirScout/Properties/Settings.settings @@ -664,5 +664,62 @@ NASA/METI/AIST/Japan Spacesystems, and U.S./Japan ASTER Science Team (2019). AST 1 + + 0 + + + 0 + + + 0 + + + False + + + False + + + False + + + False + + + 0 + + + 0 + + + + + + 0 + + + True + + + NONE + + + NONE + + + NONE + + + 1000 + + + \ScoutBase\RigData + + + False + + + False + \ No newline at end of file diff --git a/AirScout/Requirements.txt b/AirScout/Requirements.txt new file mode 100644 index 0000000..69bf623 --- /dev/null +++ b/AirScout/Requirements.txt @@ -0,0 +1,5 @@ +***************** AirScout Requirements ************************** + +- Snooze button for alarm on main window, clickable in PLAY mode () + + diff --git a/AirScout/TrackValues.cs b/AirScout/TrackValues.cs new file mode 100644 index 0000000..842bbc0 --- /dev/null +++ b/AirScout/TrackValues.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace AirScout +{ + // keeps tracking values + public class TrackValues + { + public DateTime Timestamp = DateTime.UtcNow; + public string Hex = ""; + + public double MyAzimuth = double.NaN; + public double MyElevation = double.NaN; + public double MyDistance = double.NaN; + public double MySlantRange = double.NaN; + public double MyDoppler = 0; + + public double DXAzimuth = double.NaN; + public double DXElevation = double.NaN; + public double DXDistance = double.NaN; + public double DXSlantRange = double.NaN; + public double DXDoppler = 0; + + public long RXFrequency = 0; + public long TXFrequency = 0; + } +} diff --git a/AirScout/VersionHistory.txt b/AirScout/VersionHistory.txt index 18b517a..295e0d8 100644 --- a/AirScout/VersionHistory.txt +++ b/AirScout/VersionHistory.txt @@ -1,10 +1,51 @@ -2020-xx-xx: V1.4.0.0 +2021-xx-xx: V1.4.1.0 +==================== + +- Bugfix: RIT on rig is reset when tracking started --> fixed +- Bugfix: Exceptions while accessing elevation database from background processes and more than one elevation model was ticked --> database status shows "Error" --> fixed +- Bugfix: Exceptions while accessing elevation database and local obstructions have NULL values --> fixed +- Bugfix: Database update was not started when last status was "Error" and no other changes occured +- Bugfix: Exceptions were thrown sometimes on concurrent database access from different threads, missing database locks --> fixed +- Feature: configurable update rate for tracking +- Feature: configurable time offset for tracking +- Feature: optional show a locator grid on map +- Feature: optional show distance circles around own location + +2021-04-13: V1.4.0.2 +==================== + +- Feature: complete rework of tracking module with Status visualization +- Feature: CAT now handles OmniRi V1.19 or V2.x dynamically +- Feature: refined extrapolation of plane positions +- Bugfix: Planes were shown as hot when crossing path "behind" the DX station --> fixed + +2021-04-5: V1.4.0.1 +==================== + +- Feature: introducing CAT Interface with OmniRig V2.1 +- Feature: introducing Doppler shift compensation with CAT + +2021-xx-xx: V1.4.0.0 (not published) ==================== - Feature: introducing ASTER Digital Elevation Model covering earth surface almost complete, but data are very raw and have to filtered, only useful when coverage > 60° needed -- Feature: new OpenTopoMap provider, not really suitable for surpervising aircraft travel but has very nice contour levels (based on SRTM) +- Feature: new OpenTopoMap provider, not really suitable for supervising aircraft travel but has very nice contour levels (based on SRTM) - Feature: adjust main map opacity via "Options/Map" which is helpful in case map colors are very prominent +2021-12-23: V1.3.3.6 +==================== + +- Feature: Elevation grid overlay on "Optionms/Stations/Map" to better understand elevation resolution issues and local situation (for zoom levels >= 17) +- Bugfix: AirScout crashes when opening Crossing History Dialog window --> fixed (tnx PU34HAG) +- Bugfix: Near field suppression did not work correctly, showing strange local obstructions under some circumstances --> fixed +- Bugfix: No more planes visible (Exception messages shown in status bar and log file) with some language settings (at least Turkish) --> fixed (tnx TA2NC) + +2020-04-25: V1.3.3.5 +==================== + +- Bugfix: Chunked transport of web content failed while fetching plane feeds (OpenSky, Virtual Radar Server) --> fixed +- Bugfix: Drawing map throws an exception under some circumstances --> fixed, added some error handling (tnx SM7LCB) + 2020-04-25: V1.3.3.4 ==================== diff --git a/AirScout/WatchlistDlg.Designer.cs b/AirScout/WatchlistDlg.Designer.cs index a8beef6..8219f8c 100644 --- a/AirScout/WatchlistDlg.Designer.cs +++ b/AirScout/WatchlistDlg.Designer.cs @@ -228,7 +228,7 @@ this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(180, 25); this.label2.TabIndex = 15; - this.label2.Text = "Availbale Callsigns"; + this.label2.Text = "Available Callsigns"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // label3 diff --git a/AirScout/app.config b/AirScout/app.config index 94f48c2..d6ec38b 100644 --- a/AirScout/app.config +++ b/AirScout/app.config @@ -663,6 +663,63 @@ NASA/METI/AIST/Japan Spacesystems, and U.S./Japan ASTER Science Team (2019). AST 1 + + 0 + + + 0 + + + 0 + + + False + + + False + + + False + + + False + + + 0 + + + 0 + + + + + + 0 + + + True + + + NONE + + + NONE + + + NONE + + + 1000 + + + \ScoutBase\RigData + + + False + + + False + diff --git a/AirScout/packages.config b/AirScout/packages.config index 79fcfe6..00bb9da 100644 --- a/AirScout/packages.config +++ b/AirScout/packages.config @@ -2,5 +2,6 @@ - + + \ No newline at end of file diff --git a/AirScoutDatabaseManager/MainDlg.Designer.cs b/AirScoutDatabaseManager/MainDlg.Designer.cs deleted file mode 100644 index c5def3d..0000000 --- a/AirScoutDatabaseManager/MainDlg.Designer.cs +++ /dev/null @@ -1,1423 +0,0 @@ -namespace AirScoutDatabaseManager -{ - partial class MainDlg - { - /// - /// Erforderliche Designervariable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Verwendete Ressourcen bereinigen. - /// - /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Vom Windows Form-Designer generierter Code - - /// - /// Erforderliche Methode für die Designerunterstützung. - /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. - /// - private void InitializeComponent() - { - this.ss_Main = new System.Windows.Forms.StatusStrip(); - this.tsl_Status = new System.Windows.Forms.ToolStripStatusLabel(); - this.tc_Main = new System.Windows.Forms.TabControl(); - this.tp_General = new System.Windows.Forms.TabPage(); - this.gm_Coverage = new GMap.NET.WindowsForms.GMapControl(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label35 = new System.Windows.Forms.Label(); - this.label54 = new System.Windows.Forms.Label(); - this.label59 = new System.Windows.Forms.Label(); - this.label60 = new System.Windows.Forms.Label(); - this.tp_Locations = new System.Windows.Forms.TabPage(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.dgv_Locations = new System.Windows.Forms.DataGridView(); - this.gm_Locations = new GMap.NET.WindowsForms.GMapControl(); - this.panel2 = new System.Windows.Forms.Panel(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.tb_Locations_Callsign_Filter = new System.Windows.Forms.TextBox(); - this.cb_Locations_ChangedOnly = new System.Windows.Forms.CheckBox(); - this.btn_Locations_Sort = new System.Windows.Forms.Button(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.btn_Locations_Import_USR = new System.Windows.Forms.Button(); - this.btn_Locations_Import_CSV = new System.Windows.Forms.Button(); - this.btn_Locations_Import_DTB = new System.Windows.Forms.Button(); - this.btn_Locations_Import_CALL3 = new System.Windows.Forms.Button(); - this.btn_Locations_Import_AirScout = new System.Windows.Forms.Button(); - this.btn_Locations_Export = new System.Windows.Forms.Button(); - this.btn_Locations_Save = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.btn_QRZ_Stop = new System.Windows.Forms.Button(); - this.btn_QRZ_Start = new System.Windows.Forms.Button(); - this.tb_Locations_Status = new System.Windows.Forms.TextBox(); - this.tp_QRV = new System.Windows.Forms.TabPage(); - this.dgv_QRV = new System.Windows.Forms.DataGridView(); - this.panel4 = new System.Windows.Forms.Panel(); - this.cb_QRV_ChangedOnly = new System.Windows.Forms.CheckBox(); - this.btn_QRV_Sort = new System.Windows.Forms.Button(); - this.btn_QRV_Export = new System.Windows.Forms.Button(); - this.btn_QRV_Save = new System.Windows.Forms.Button(); - this.label4 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.tb_QRV_Callsign_Filter = new System.Windows.Forms.TextBox(); - this.tb_QRV_Status = new System.Windows.Forms.TextBox(); - this.groupBox3 = new System.Windows.Forms.GroupBox(); - this.btn_QRV_Import_EDI = new System.Windows.Forms.Button(); - this.btn_QRV_Import_WinTest = new System.Windows.Forms.Button(); - this.tp_Aircrafts = new System.Windows.Forms.TabPage(); - this.lbl_Aircrafts_UnkownHex = new System.Windows.Forms.Label(); - this.lbl_Aircrafts_UnkownType = new System.Windows.Forms.Label(); - this.lbl_Aircrafts_UnkownCall = new System.Windows.Forms.Label(); - this.lbl_Aircrafts_Total = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.btn_Update_Aircrafts_Stop = new System.Windows.Forms.Button(); - this.btn_Update_Aicrafts_Start = new System.Windows.Forms.Button(); - this.btn_Update_Airports = new System.Windows.Forms.Button(); - this.btn_Update_Airlines = new System.Windows.Forms.Button(); - this.tp_Upload = new System.Windows.Forms.TabPage(); - this.groupBox5 = new System.Windows.Forms.GroupBox(); - this.label13 = new System.Windows.Forms.Label(); - this.label12 = new System.Windows.Forms.Label(); - this.label11 = new System.Windows.Forms.Label(); - this.btn_StationDatabase_Export = new System.Windows.Forms.Button(); - this.label10 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.tp_Extras = new System.Windows.Forms.TabPage(); - this.groupBox4 = new System.Windows.Forms.GroupBox(); - this.btn_SFTP_GenarateFile = new System.Windows.Forms.Button(); - this.label7 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.bw_QRZ = new System.ComponentModel.BackgroundWorker(); - this.bw_DatabaseUpdater = new System.ComponentModel.BackgroundWorker(); - this.bw_AircraftUpdater = new System.ComponentModel.BackgroundWorker(); - this.groupBox6 = new System.Windows.Forms.GroupBox(); - this.label14 = new System.Windows.Forms.Label(); - this.label15 = new System.Windows.Forms.Label(); - this.label16 = new System.Windows.Forms.Label(); - this.btn_AircraftDatabase_Export = new System.Windows.Forms.Button(); - this.label17 = new System.Windows.Forms.Label(); - this.label18 = new System.Windows.Forms.Label(); - this.tb_Coverage_MaxLat = new ScoutBase.Core.DoubleTextBox(); - this.tb_Coverage_MinLat = new ScoutBase.Core.DoubleTextBox(); - this.tb_Coverage_MaxLon = new ScoutBase.Core.DoubleTextBox(); - this.tb_Coverage_MinLon = new ScoutBase.Core.DoubleTextBox(); - this.tb_Update_Aircrafts = new System.Windows.Forms.TextBox(); - this.tb_Update_Airports = new System.Windows.Forms.TextBox(); - this.tb_Update_Airlines = new System.Windows.Forms.TextBox(); - this.tb_AircraftDatabase_RemoteHost = new System.Windows.Forms.TextBox(); - this.tb_AircraftDatabase_Password = new System.Windows.Forms.TextBox(); - this.tb_AircraftDatabase_User = new System.Windows.Forms.TextBox(); - this.tb_AircraftDatabase_RemoteDir = new System.Windows.Forms.TextBox(); - this.tb_AircraftDabase_LocalDir = new System.Windows.Forms.TextBox(); - this.tb_StationDatabase_RemoteHost = new System.Windows.Forms.TextBox(); - this.tb_StationDatabase_Export_Password = new System.Windows.Forms.TextBox(); - this.tb_StationDatabase_Export_User = new System.Windows.Forms.TextBox(); - this.tb_StationDatabase_RemoteDir = new System.Windows.Forms.TextBox(); - this.tb_StationDatabase_LocalDir = new System.Windows.Forms.TextBox(); - this.tb_SFTP_Password = new System.Windows.Forms.TextBox(); - this.tb_SFTP_User = new System.Windows.Forms.TextBox(); - this.tb_SFTP_URL = new System.Windows.Forms.TextBox(); - this.ss_Main.SuspendLayout(); - this.tc_Main.SuspendLayout(); - this.tp_General.SuspendLayout(); - this.panel1.SuspendLayout(); - this.tp_Locations.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv_Locations)).BeginInit(); - this.panel2.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.groupBox1.SuspendLayout(); - this.tp_QRV.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv_QRV)).BeginInit(); - this.panel4.SuspendLayout(); - this.groupBox3.SuspendLayout(); - this.tp_Aircrafts.SuspendLayout(); - this.tp_Upload.SuspendLayout(); - this.groupBox5.SuspendLayout(); - this.tp_Extras.SuspendLayout(); - this.groupBox4.SuspendLayout(); - this.groupBox6.SuspendLayout(); - this.SuspendLayout(); - // - // ss_Main - // - this.ss_Main.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsl_Status}); - this.ss_Main.Location = new System.Drawing.Point(0, 575); - this.ss_Main.Name = "ss_Main"; - this.ss_Main.Size = new System.Drawing.Size(1106, 22); - this.ss_Main.TabIndex = 0; - this.ss_Main.Text = "statusStrip1"; - // - // tsl_Status - // - this.tsl_Status.Name = "tsl_Status"; - this.tsl_Status.Size = new System.Drawing.Size(39, 17); - this.tsl_Status.Text = "Status"; - // - // tc_Main - // - this.tc_Main.Controls.Add(this.tp_General); - this.tc_Main.Controls.Add(this.tp_Locations); - this.tc_Main.Controls.Add(this.tp_QRV); - this.tc_Main.Controls.Add(this.tp_Aircrafts); - this.tc_Main.Controls.Add(this.tp_Upload); - this.tc_Main.Controls.Add(this.tp_Extras); - this.tc_Main.Dock = System.Windows.Forms.DockStyle.Fill; - this.tc_Main.Location = new System.Drawing.Point(0, 0); - this.tc_Main.Name = "tc_Main"; - this.tc_Main.SelectedIndex = 0; - this.tc_Main.Size = new System.Drawing.Size(1106, 575); - this.tc_Main.TabIndex = 1; - // - // tp_General - // - this.tp_General.BackColor = System.Drawing.SystemColors.Control; - this.tp_General.Controls.Add(this.gm_Coverage); - this.tp_General.Controls.Add(this.panel1); - this.tp_General.Location = new System.Drawing.Point(4, 22); - this.tp_General.Name = "tp_General"; - this.tp_General.Padding = new System.Windows.Forms.Padding(3); - this.tp_General.Size = new System.Drawing.Size(1098, 549); - this.tp_General.TabIndex = 0; - this.tp_General.Text = "General"; - this.tp_General.Enter += new System.EventHandler(this.tp_General_Enter); - // - // gm_Coverage - // - this.gm_Coverage.Bearing = 0F; - this.gm_Coverage.CanDragMap = true; - this.gm_Coverage.Dock = System.Windows.Forms.DockStyle.Fill; - this.gm_Coverage.EmptyTileColor = System.Drawing.Color.Navy; - this.gm_Coverage.GrayScaleMode = false; - this.gm_Coverage.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow; - this.gm_Coverage.LevelsKeepInMemmory = 5; - this.gm_Coverage.Location = new System.Drawing.Point(3, 3); - this.gm_Coverage.MarkersEnabled = true; - this.gm_Coverage.MaxZoom = 2; - this.gm_Coverage.MinZoom = 2; - this.gm_Coverage.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; - this.gm_Coverage.Name = "gm_Coverage"; - this.gm_Coverage.NegativeMode = false; - this.gm_Coverage.PolygonsEnabled = true; - this.gm_Coverage.RetryLoadTile = 0; - this.gm_Coverage.RoutesEnabled = true; - this.gm_Coverage.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225))))); - this.gm_Coverage.ShowTileGridLines = false; - this.gm_Coverage.Size = new System.Drawing.Size(917, 543); - this.gm_Coverage.TabIndex = 1; - this.gm_Coverage.Zoom = 0D; - // - // panel1 - // - this.panel1.Controls.Add(this.tb_Coverage_MaxLat); - this.panel1.Controls.Add(this.tb_Coverage_MinLat); - this.panel1.Controls.Add(this.tb_Coverage_MaxLon); - this.panel1.Controls.Add(this.tb_Coverage_MinLon); - this.panel1.Controls.Add(this.label35); - this.panel1.Controls.Add(this.label54); - this.panel1.Controls.Add(this.label59); - this.panel1.Controls.Add(this.label60); - this.panel1.Dock = System.Windows.Forms.DockStyle.Right; - this.panel1.Location = new System.Drawing.Point(920, 3); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(175, 543); - this.panel1.TabIndex = 0; - // - // label35 - // - this.label35.AutoSize = true; - this.label35.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label35.Location = new System.Drawing.Point(19, 109); - this.label35.Name = "label35"; - this.label35.Size = new System.Drawing.Size(74, 13); - this.label35.TabIndex = 32; - this.label35.Text = "Max. Latitude:"; - // - // label54 - // - this.label54.AutoSize = true; - this.label54.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label54.Location = new System.Drawing.Point(19, 83); - this.label54.Name = "label54"; - this.label54.Size = new System.Drawing.Size(71, 13); - this.label54.TabIndex = 31; - this.label54.Text = "Min. Latitude:"; - // - // label59 - // - this.label59.AutoSize = true; - this.label59.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label59.Location = new System.Drawing.Point(19, 56); - this.label59.Name = "label59"; - this.label59.Size = new System.Drawing.Size(83, 13); - this.label59.TabIndex = 30; - this.label59.Text = "Max. Longitude:"; - // - // label60 - // - this.label60.AutoSize = true; - this.label60.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label60.Location = new System.Drawing.Point(19, 30); - this.label60.Name = "label60"; - this.label60.Size = new System.Drawing.Size(80, 13); - this.label60.TabIndex = 29; - this.label60.Text = "Min. Longitude:"; - // - // tp_Locations - // - this.tp_Locations.BackColor = System.Drawing.SystemColors.Control; - this.tp_Locations.Controls.Add(this.splitContainer1); - this.tp_Locations.Controls.Add(this.panel2); - this.tp_Locations.Location = new System.Drawing.Point(4, 22); - this.tp_Locations.Name = "tp_Locations"; - this.tp_Locations.Padding = new System.Windows.Forms.Padding(3); - this.tp_Locations.Size = new System.Drawing.Size(1098, 549); - this.tp_Locations.TabIndex = 1; - this.tp_Locations.Text = "Locations"; - this.tp_Locations.Enter += new System.EventHandler(this.tp_Locations_Enter); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(3, 3); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.dgv_Locations); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.gm_Locations); - this.splitContainer1.Size = new System.Drawing.Size(1092, 414); - this.splitContainer1.SplitterDistance = 363; - this.splitContainer1.TabIndex = 3; - // - // dgv_Locations - // - this.dgv_Locations.AllowUserToResizeRows = false; - this.dgv_Locations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv_Locations.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv_Locations.Location = new System.Drawing.Point(0, 0); - this.dgv_Locations.Name = "dgv_Locations"; - this.dgv_Locations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dgv_Locations.Size = new System.Drawing.Size(363, 414); - this.dgv_Locations.TabIndex = 1; - this.dgv_Locations.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgv_Locations_CellFormatting); - this.dgv_Locations.SelectionChanged += new System.EventHandler(this.dgv_Locations_SelectionChanged); - // - // gm_Locations - // - this.gm_Locations.Bearing = 0F; - this.gm_Locations.CanDragMap = true; - this.gm_Locations.Dock = System.Windows.Forms.DockStyle.Fill; - this.gm_Locations.EmptyTileColor = System.Drawing.Color.Navy; - this.gm_Locations.GrayScaleMode = false; - this.gm_Locations.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow; - this.gm_Locations.LevelsKeepInMemmory = 5; - this.gm_Locations.Location = new System.Drawing.Point(0, 0); - this.gm_Locations.MarkersEnabled = true; - this.gm_Locations.MaxZoom = 2; - this.gm_Locations.MinZoom = 2; - this.gm_Locations.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; - this.gm_Locations.Name = "gm_Locations"; - this.gm_Locations.NegativeMode = false; - this.gm_Locations.PolygonsEnabled = true; - this.gm_Locations.RetryLoadTile = 0; - this.gm_Locations.RoutesEnabled = true; - this.gm_Locations.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225))))); - this.gm_Locations.ShowTileGridLines = false; - this.gm_Locations.Size = new System.Drawing.Size(725, 414); - this.gm_Locations.TabIndex = 2; - this.gm_Locations.Zoom = 0D; - this.gm_Locations.OnMarkerEnter += new GMap.NET.WindowsForms.MarkerEnter(this.gm_Locations_OnMarkerEnter); - this.gm_Locations.OnMarkerLeave += new GMap.NET.WindowsForms.MarkerLeave(this.gm_Locations_OnMarkerLeave); - this.gm_Locations.MouseDown += new System.Windows.Forms.MouseEventHandler(this.gm_Locations_MouseDown); - this.gm_Locations.MouseMove += new System.Windows.Forms.MouseEventHandler(this.gm_Locations_MouseMove); - this.gm_Locations.MouseUp += new System.Windows.Forms.MouseEventHandler(this.gm_Locations_MouseUp); - // - // panel2 - // - this.panel2.Controls.Add(this.label2); - this.panel2.Controls.Add(this.label1); - this.panel2.Controls.Add(this.tb_Locations_Callsign_Filter); - this.panel2.Controls.Add(this.cb_Locations_ChangedOnly); - this.panel2.Controls.Add(this.btn_Locations_Sort); - this.panel2.Controls.Add(this.groupBox2); - this.panel2.Controls.Add(this.btn_Locations_Export); - this.panel2.Controls.Add(this.btn_Locations_Save); - this.panel2.Controls.Add(this.groupBox1); - this.panel2.Controls.Add(this.tb_Locations_Status); - this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel2.Location = new System.Drawing.Point(3, 417); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(1092, 129); - this.panel2.TabIndex = 0; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(668, 12); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(68, 13); - this.label2.TabIndex = 10; - this.label2.Text = "Callsign Filter"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(17, 12); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(37, 13); - this.label1.TabIndex = 9; - this.label1.Text = "Status"; - // - // tb_Locations_Callsign_Filter - // - this.tb_Locations_Callsign_Filter.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.tb_Locations_Callsign_Filter.Location = new System.Drawing.Point(671, 36); - this.tb_Locations_Callsign_Filter.Name = "tb_Locations_Callsign_Filter"; - this.tb_Locations_Callsign_Filter.Size = new System.Drawing.Size(100, 20); - this.tb_Locations_Callsign_Filter.TabIndex = 8; - this.tb_Locations_Callsign_Filter.TextChanged += new System.EventHandler(this.tb_Locations_Callsign_Filter_TextChanged); - // - // cb_Locations_ChangedOnly - // - this.cb_Locations_ChangedOnly.AutoSize = true; - this.cb_Locations_ChangedOnly.Location = new System.Drawing.Point(797, 38); - this.cb_Locations_ChangedOnly.Name = "cb_Locations_ChangedOnly"; - this.cb_Locations_ChangedOnly.Size = new System.Drawing.Size(145, 17); - this.cb_Locations_ChangedOnly.TabIndex = 7; - this.cb_Locations_ChangedOnly.Text = "Show changed rows only"; - this.cb_Locations_ChangedOnly.UseVisualStyleBackColor = true; - this.cb_Locations_ChangedOnly.CheckedChanged += new System.EventHandler(this.cb_Locations_ChangedOnly_CheckedChanged); - // - // btn_Locations_Sort - // - this.btn_Locations_Sort.Location = new System.Drawing.Point(735, 94); - this.btn_Locations_Sort.Name = "btn_Locations_Sort"; - this.btn_Locations_Sort.Size = new System.Drawing.Size(75, 23); - this.btn_Locations_Sort.TabIndex = 6; - this.btn_Locations_Sort.Text = "Sort"; - this.btn_Locations_Sort.UseVisualStyleBackColor = true; - this.btn_Locations_Sort.Click += new System.EventHandler(this.btn_Locations_Sort_Click); - // - // groupBox2 - // - this.groupBox2.Controls.Add(this.btn_Locations_Import_USR); - this.groupBox2.Controls.Add(this.btn_Locations_Import_CSV); - this.groupBox2.Controls.Add(this.btn_Locations_Import_DTB); - this.groupBox2.Controls.Add(this.btn_Locations_Import_CALL3); - this.groupBox2.Controls.Add(this.btn_Locations_Import_AirScout); - this.groupBox2.Location = new System.Drawing.Point(188, 68); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(531, 55); - this.groupBox2.TabIndex = 5; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "Import"; - // - // btn_Locations_Import_USR - // - this.btn_Locations_Import_USR.Location = new System.Drawing.Point(113, 26); - this.btn_Locations_Import_USR.Name = "btn_Locations_Import_USR"; - this.btn_Locations_Import_USR.Size = new System.Drawing.Size(92, 23); - this.btn_Locations_Import_USR.TabIndex = 4; - this.btn_Locations_Import_USR.Text = "AirScout (USR)"; - this.btn_Locations_Import_USR.UseVisualStyleBackColor = true; - this.btn_Locations_Import_USR.Click += new System.EventHandler(this.btn_Locations_Import_USR_Click); - // - // btn_Locations_Import_CSV - // - this.btn_Locations_Import_CSV.Location = new System.Drawing.Point(432, 26); - this.btn_Locations_Import_CSV.Name = "btn_Locations_Import_CSV"; - this.btn_Locations_Import_CSV.Size = new System.Drawing.Size(93, 23); - this.btn_Locations_Import_CSV.TabIndex = 3; - this.btn_Locations_Import_CSV.Text = "LOC (CSV)"; - this.btn_Locations_Import_CSV.UseVisualStyleBackColor = true; - this.btn_Locations_Import_CSV.Click += new System.EventHandler(this.btn_Locations_Import_CSV_Click); - // - // btn_Locations_Import_DTB - // - this.btn_Locations_Import_DTB.Location = new System.Drawing.Point(333, 26); - this.btn_Locations_Import_DTB.Name = "btn_Locations_Import_DTB"; - this.btn_Locations_Import_DTB.Size = new System.Drawing.Size(93, 23); - this.btn_Locations_Import_DTB.TabIndex = 2; - this.btn_Locations_Import_DTB.Text = "DTB (Win-Test)"; - this.btn_Locations_Import_DTB.UseVisualStyleBackColor = true; - this.btn_Locations_Import_DTB.Click += new System.EventHandler(this.btn_Locations_Import_DTB_Click); - // - // btn_Locations_Import_CALL3 - // - this.btn_Locations_Import_CALL3.Location = new System.Drawing.Point(239, 26); - this.btn_Locations_Import_CALL3.Name = "btn_Locations_Import_CALL3"; - this.btn_Locations_Import_CALL3.Size = new System.Drawing.Size(88, 23); - this.btn_Locations_Import_CALL3.TabIndex = 1; - this.btn_Locations_Import_CALL3.Text = "CALL3 (WSJT)"; - this.btn_Locations_Import_CALL3.UseVisualStyleBackColor = true; - this.btn_Locations_Import_CALL3.Click += new System.EventHandler(this.btn_Locations_Import_CALL3_Click); - // - // btn_Locations_Import_AirScout - // - this.btn_Locations_Import_AirScout.Location = new System.Drawing.Point(15, 26); - this.btn_Locations_Import_AirScout.Name = "btn_Locations_Import_AirScout"; - this.btn_Locations_Import_AirScout.Size = new System.Drawing.Size(92, 23); - this.btn_Locations_Import_AirScout.TabIndex = 0; - this.btn_Locations_Import_AirScout.Text = "AirScout (TXT)"; - this.btn_Locations_Import_AirScout.UseVisualStyleBackColor = true; - this.btn_Locations_Import_AirScout.Click += new System.EventHandler(this.btn_Locations_Import_AirScout_Click); - // - // btn_Locations_Export - // - this.btn_Locations_Export.Location = new System.Drawing.Point(897, 94); - this.btn_Locations_Export.Name = "btn_Locations_Export"; - this.btn_Locations_Export.Size = new System.Drawing.Size(75, 23); - this.btn_Locations_Export.TabIndex = 4; - this.btn_Locations_Export.Text = "Export"; - this.btn_Locations_Export.UseVisualStyleBackColor = true; - this.btn_Locations_Export.Click += new System.EventHandler(this.btn_Locations_Export_Click); - // - // btn_Locations_Save - // - this.btn_Locations_Save.Location = new System.Drawing.Point(816, 94); - this.btn_Locations_Save.Name = "btn_Locations_Save"; - this.btn_Locations_Save.Size = new System.Drawing.Size(75, 23); - this.btn_Locations_Save.TabIndex = 3; - this.btn_Locations_Save.Text = "Save"; - this.btn_Locations_Save.UseVisualStyleBackColor = true; - this.btn_Locations_Save.Click += new System.EventHandler(this.btn_Locations_Save_Click); - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.btn_QRZ_Stop); - this.groupBox1.Controls.Add(this.btn_QRZ_Start); - this.groupBox1.Location = new System.Drawing.Point(5, 68); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(177, 55); - this.groupBox1.TabIndex = 0; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "QRZ.COM Update"; - // - // btn_QRZ_Stop - // - this.btn_QRZ_Stop.Location = new System.Drawing.Point(96, 26); - this.btn_QRZ_Stop.Name = "btn_QRZ_Stop"; - this.btn_QRZ_Stop.Size = new System.Drawing.Size(75, 23); - this.btn_QRZ_Stop.TabIndex = 1; - this.btn_QRZ_Stop.Text = "Stop"; - this.btn_QRZ_Stop.UseVisualStyleBackColor = true; - this.btn_QRZ_Stop.Click += new System.EventHandler(this.btn_QRZ_Stop_Click); - // - // btn_QRZ_Start - // - this.btn_QRZ_Start.Location = new System.Drawing.Point(15, 26); - this.btn_QRZ_Start.Name = "btn_QRZ_Start"; - this.btn_QRZ_Start.Size = new System.Drawing.Size(75, 23); - this.btn_QRZ_Start.TabIndex = 0; - this.btn_QRZ_Start.Text = "Start"; - this.btn_QRZ_Start.UseVisualStyleBackColor = true; - this.btn_QRZ_Start.Click += new System.EventHandler(this.btn_QRZ_Start_Click); - // - // tb_Locations_Status - // - this.tb_Locations_Status.Location = new System.Drawing.Point(20, 35); - this.tb_Locations_Status.Name = "tb_Locations_Status"; - this.tb_Locations_Status.ReadOnly = true; - this.tb_Locations_Status.Size = new System.Drawing.Size(608, 20); - this.tb_Locations_Status.TabIndex = 2; - // - // tp_QRV - // - this.tp_QRV.Controls.Add(this.dgv_QRV); - this.tp_QRV.Controls.Add(this.panel4); - this.tp_QRV.Location = new System.Drawing.Point(4, 22); - this.tp_QRV.Name = "tp_QRV"; - this.tp_QRV.Size = new System.Drawing.Size(1098, 549); - this.tp_QRV.TabIndex = 2; - this.tp_QRV.Text = "QRV"; - this.tp_QRV.UseVisualStyleBackColor = true; - this.tp_QRV.Enter += new System.EventHandler(this.tp_QRV_Enter); - // - // dgv_QRV - // - this.dgv_QRV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv_QRV.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv_QRV.Location = new System.Drawing.Point(0, 0); - this.dgv_QRV.Name = "dgv_QRV"; - this.dgv_QRV.Size = new System.Drawing.Size(1098, 404); - this.dgv_QRV.TabIndex = 2; - this.dgv_QRV.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_QRV_CellEndEdit); - this.dgv_QRV.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgv_QRV_CellFormatting); - this.dgv_QRV.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_QRV_CellValueChanged); - // - // panel4 - // - this.panel4.BackColor = System.Drawing.SystemColors.ControlLight; - this.panel4.Controls.Add(this.cb_QRV_ChangedOnly); - this.panel4.Controls.Add(this.btn_QRV_Sort); - this.panel4.Controls.Add(this.btn_QRV_Export); - this.panel4.Controls.Add(this.btn_QRV_Save); - this.panel4.Controls.Add(this.label4); - this.panel4.Controls.Add(this.label3); - this.panel4.Controls.Add(this.tb_QRV_Callsign_Filter); - this.panel4.Controls.Add(this.tb_QRV_Status); - this.panel4.Controls.Add(this.groupBox3); - this.panel4.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel4.Location = new System.Drawing.Point(0, 404); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(1098, 145); - this.panel4.TabIndex = 1; - // - // cb_QRV_ChangedOnly - // - this.cb_QRV_ChangedOnly.AutoSize = true; - this.cb_QRV_ChangedOnly.Location = new System.Drawing.Point(799, 38); - this.cb_QRV_ChangedOnly.Name = "cb_QRV_ChangedOnly"; - this.cb_QRV_ChangedOnly.Size = new System.Drawing.Size(145, 17); - this.cb_QRV_ChangedOnly.TabIndex = 10; - this.cb_QRV_ChangedOnly.Text = "Show changed rows only"; - this.cb_QRV_ChangedOnly.UseVisualStyleBackColor = true; - this.cb_QRV_ChangedOnly.CheckedChanged += new System.EventHandler(this.cb_QRV_ChangedOnly_CheckedChanged); - // - // btn_QRV_Sort - // - this.btn_QRV_Sort.Location = new System.Drawing.Point(707, 99); - this.btn_QRV_Sort.Name = "btn_QRV_Sort"; - this.btn_QRV_Sort.Size = new System.Drawing.Size(75, 23); - this.btn_QRV_Sort.TabIndex = 9; - this.btn_QRV_Sort.Text = "Sort"; - this.btn_QRV_Sort.UseVisualStyleBackColor = true; - this.btn_QRV_Sort.Click += new System.EventHandler(this.btn_QRV_Sort_Click); - // - // btn_QRV_Export - // - this.btn_QRV_Export.Location = new System.Drawing.Point(869, 99); - this.btn_QRV_Export.Name = "btn_QRV_Export"; - this.btn_QRV_Export.Size = new System.Drawing.Size(75, 23); - this.btn_QRV_Export.TabIndex = 8; - this.btn_QRV_Export.Text = "Export"; - this.btn_QRV_Export.UseVisualStyleBackColor = true; - this.btn_QRV_Export.Click += new System.EventHandler(this.btn_QRV_Export_Click); - // - // btn_QRV_Save - // - this.btn_QRV_Save.Location = new System.Drawing.Point(788, 99); - this.btn_QRV_Save.Name = "btn_QRV_Save"; - this.btn_QRV_Save.Size = new System.Drawing.Size(75, 23); - this.btn_QRV_Save.TabIndex = 7; - this.btn_QRV_Save.Text = "Save"; - this.btn_QRV_Save.UseVisualStyleBackColor = true; - this.btn_QRV_Save.Click += new System.EventHandler(this.btn_QRV_Save_Click); - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(628, 12); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(68, 13); - this.label4.TabIndex = 4; - this.label4.Text = "Callsign Filter"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(11, 12); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(37, 13); - this.label3.TabIndex = 3; - this.label3.Text = "Status"; - // - // tb_QRV_Callsign_Filter - // - this.tb_QRV_Callsign_Filter.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.tb_QRV_Callsign_Filter.Location = new System.Drawing.Point(631, 38); - this.tb_QRV_Callsign_Filter.Name = "tb_QRV_Callsign_Filter"; - this.tb_QRV_Callsign_Filter.Size = new System.Drawing.Size(100, 20); - this.tb_QRV_Callsign_Filter.TabIndex = 2; - this.tb_QRV_Callsign_Filter.TextChanged += new System.EventHandler(this.tb_QRV_Callsign_Filter_TextChanged); - // - // tb_QRV_Status - // - this.tb_QRV_Status.Location = new System.Drawing.Point(14, 38); - this.tb_QRV_Status.Name = "tb_QRV_Status"; - this.tb_QRV_Status.ReadOnly = true; - this.tb_QRV_Status.Size = new System.Drawing.Size(485, 20); - this.tb_QRV_Status.TabIndex = 1; - // - // groupBox3 - // - this.groupBox3.Controls.Add(this.btn_QRV_Import_EDI); - this.groupBox3.Controls.Add(this.btn_QRV_Import_WinTest); - this.groupBox3.Location = new System.Drawing.Point(8, 76); - this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(284, 52); - this.groupBox3.TabIndex = 0; - this.groupBox3.TabStop = false; - this.groupBox3.Text = "Import"; - // - // btn_QRV_Import_EDI - // - this.btn_QRV_Import_EDI.Location = new System.Drawing.Point(87, 23); - this.btn_QRV_Import_EDI.Name = "btn_QRV_Import_EDI"; - this.btn_QRV_Import_EDI.Size = new System.Drawing.Size(75, 23); - this.btn_QRV_Import_EDI.TabIndex = 1; - this.btn_QRV_Import_EDI.Text = "EDI"; - this.btn_QRV_Import_EDI.UseVisualStyleBackColor = true; - this.btn_QRV_Import_EDI.Click += new System.EventHandler(this.btn_QRV_Import_EDI_Click); - // - // btn_QRV_Import_WinTest - // - this.btn_QRV_Import_WinTest.Location = new System.Drawing.Point(6, 23); - this.btn_QRV_Import_WinTest.Name = "btn_QRV_Import_WinTest"; - this.btn_QRV_Import_WinTest.Size = new System.Drawing.Size(75, 23); - this.btn_QRV_Import_WinTest.TabIndex = 0; - this.btn_QRV_Import_WinTest.Text = "Win-Test (QRV)"; - this.btn_QRV_Import_WinTest.UseVisualStyleBackColor = true; - this.btn_QRV_Import_WinTest.Click += new System.EventHandler(this.btn_QRV_Import_WinTest_Click); - // - // tp_Aircrafts - // - this.tp_Aircrafts.BackColor = System.Drawing.SystemColors.Control; - this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_UnkownHex); - this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_UnkownType); - this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_UnkownCall); - this.tp_Aircrafts.Controls.Add(this.lbl_Aircrafts_Total); - this.tp_Aircrafts.Controls.Add(this.label8); - this.tp_Aircrafts.Controls.Add(this.button1); - this.tp_Aircrafts.Controls.Add(this.btn_Update_Aircrafts_Stop); - this.tp_Aircrafts.Controls.Add(this.btn_Update_Aicrafts_Start); - this.tp_Aircrafts.Controls.Add(this.btn_Update_Airports); - this.tp_Aircrafts.Controls.Add(this.btn_Update_Airlines); - this.tp_Aircrafts.Controls.Add(this.tb_Update_Aircrafts); - this.tp_Aircrafts.Controls.Add(this.tb_Update_Airports); - this.tp_Aircrafts.Controls.Add(this.tb_Update_Airlines); - this.tp_Aircrafts.Location = new System.Drawing.Point(4, 22); - this.tp_Aircrafts.Name = "tp_Aircrafts"; - this.tp_Aircrafts.Size = new System.Drawing.Size(1098, 549); - this.tp_Aircrafts.TabIndex = 4; - this.tp_Aircrafts.Text = "Aircrafts"; - this.tp_Aircrafts.Enter += new System.EventHandler(this.tp_Aircrafts_Enter); - // - // lbl_Aircrafts_UnkownHex - // - this.lbl_Aircrafts_UnkownHex.AutoSize = true; - this.lbl_Aircrafts_UnkownHex.Location = new System.Drawing.Point(330, 133); - this.lbl_Aircrafts_UnkownHex.Name = "lbl_Aircrafts_UnkownHex"; - this.lbl_Aircrafts_UnkownHex.Size = new System.Drawing.Size(30, 13); - this.lbl_Aircrafts_UnkownHex.TabIndex = 12; - this.lbl_Aircrafts_UnkownHex.Text = "total:"; - // - // lbl_Aircrafts_UnkownType - // - this.lbl_Aircrafts_UnkownType.AutoSize = true; - this.lbl_Aircrafts_UnkownType.Location = new System.Drawing.Point(738, 133); - this.lbl_Aircrafts_UnkownType.Name = "lbl_Aircrafts_UnkownType"; - this.lbl_Aircrafts_UnkownType.Size = new System.Drawing.Size(30, 13); - this.lbl_Aircrafts_UnkownType.TabIndex = 11; - this.lbl_Aircrafts_UnkownType.Text = "total:"; - // - // lbl_Aircrafts_UnkownCall - // - this.lbl_Aircrafts_UnkownCall.AutoSize = true; - this.lbl_Aircrafts_UnkownCall.Location = new System.Drawing.Point(517, 133); - this.lbl_Aircrafts_UnkownCall.Name = "lbl_Aircrafts_UnkownCall"; - this.lbl_Aircrafts_UnkownCall.Size = new System.Drawing.Size(30, 13); - this.lbl_Aircrafts_UnkownCall.TabIndex = 10; - this.lbl_Aircrafts_UnkownCall.Text = "total:"; - // - // lbl_Aircrafts_Total - // - this.lbl_Aircrafts_Total.AutoSize = true; - this.lbl_Aircrafts_Total.Location = new System.Drawing.Point(161, 133); - this.lbl_Aircrafts_Total.Name = "lbl_Aircrafts_Total"; - this.lbl_Aircrafts_Total.Size = new System.Drawing.Size(30, 13); - this.lbl_Aircrafts_Total.TabIndex = 9; - this.lbl_Aircrafts_Total.Text = "total:"; - // - // label8 - // - this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(8, 133); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(134, 13); - this.label8.TabIndex = 8; - this.label8.Text = "Aircraft Database Statistics"; - // - // button1 - // - this.button1.Enabled = false; - this.button1.Location = new System.Drawing.Point(8, 96); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(150, 23); - this.button1.TabIndex = 6; - this.button1.Text = "Update Aircrafts"; - this.button1.UseVisualStyleBackColor = true; - // - // btn_Update_Aircrafts_Stop - // - this.btn_Update_Aircrafts_Stop.Location = new System.Drawing.Point(1001, 96); - this.btn_Update_Aircrafts_Stop.Name = "btn_Update_Aircrafts_Stop"; - this.btn_Update_Aircrafts_Stop.Size = new System.Drawing.Size(75, 23); - this.btn_Update_Aircrafts_Stop.TabIndex = 5; - this.btn_Update_Aircrafts_Stop.Text = "Stop"; - this.btn_Update_Aircrafts_Stop.UseVisualStyleBackColor = true; - this.btn_Update_Aircrafts_Stop.Click += new System.EventHandler(this.btn_Update_Aircrafts_Stop_Click); - // - // btn_Update_Aicrafts_Start - // - this.btn_Update_Aicrafts_Start.Location = new System.Drawing.Point(906, 96); - this.btn_Update_Aicrafts_Start.Name = "btn_Update_Aicrafts_Start"; - this.btn_Update_Aicrafts_Start.Size = new System.Drawing.Size(75, 23); - this.btn_Update_Aicrafts_Start.TabIndex = 4; - this.btn_Update_Aicrafts_Start.Text = "Start"; - this.btn_Update_Aicrafts_Start.UseVisualStyleBackColor = true; - this.btn_Update_Aicrafts_Start.Click += new System.EventHandler(this.btn_Update_Aicrafts_Start_Click); - // - // btn_Update_Airports - // - this.btn_Update_Airports.Location = new System.Drawing.Point(8, 50); - this.btn_Update_Airports.Name = "btn_Update_Airports"; - this.btn_Update_Airports.Size = new System.Drawing.Size(150, 23); - this.btn_Update_Airports.TabIndex = 2; - this.btn_Update_Airports.Text = "Update Airports"; - this.btn_Update_Airports.UseVisualStyleBackColor = true; - this.btn_Update_Airports.Click += new System.EventHandler(this.btn_Update_Airports_Click); - // - // btn_Update_Airlines - // - this.btn_Update_Airlines.Location = new System.Drawing.Point(8, 21); - this.btn_Update_Airlines.Name = "btn_Update_Airlines"; - this.btn_Update_Airlines.Size = new System.Drawing.Size(150, 23); - this.btn_Update_Airlines.TabIndex = 0; - this.btn_Update_Airlines.Text = "Update Airlines"; - this.btn_Update_Airlines.UseVisualStyleBackColor = true; - this.btn_Update_Airlines.Click += new System.EventHandler(this.btn_Update_Airlines_Click); - // - // tp_Upload - // - this.tp_Upload.BackColor = System.Drawing.SystemColors.Control; - this.tp_Upload.Controls.Add(this.groupBox6); - this.tp_Upload.Controls.Add(this.groupBox5); - this.tp_Upload.Location = new System.Drawing.Point(4, 22); - this.tp_Upload.Name = "tp_Upload"; - this.tp_Upload.Size = new System.Drawing.Size(1098, 549); - this.tp_Upload.TabIndex = 5; - this.tp_Upload.Text = "Upload"; - // - // groupBox5 - // - this.groupBox5.Controls.Add(this.tb_StationDatabase_RemoteHost); - this.groupBox5.Controls.Add(this.label13); - this.groupBox5.Controls.Add(this.tb_StationDatabase_Export_Password); - this.groupBox5.Controls.Add(this.label12); - this.groupBox5.Controls.Add(this.tb_StationDatabase_Export_User); - this.groupBox5.Controls.Add(this.label11); - this.groupBox5.Controls.Add(this.btn_StationDatabase_Export); - this.groupBox5.Controls.Add(this.tb_StationDatabase_RemoteDir); - this.groupBox5.Controls.Add(this.label10); - this.groupBox5.Controls.Add(this.tb_StationDatabase_LocalDir); - this.groupBox5.Controls.Add(this.label9); - this.groupBox5.Location = new System.Drawing.Point(8, 15); - this.groupBox5.Name = "groupBox5"; - this.groupBox5.Size = new System.Drawing.Size(881, 189); - this.groupBox5.TabIndex = 2; - this.groupBox5.TabStop = false; - this.groupBox5.Text = "Station Database"; - // - // label13 - // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(9, 48); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(72, 13); - this.label13.TabIndex = 9; - this.label13.Text = "Remote Host:"; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(9, 127); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(56, 13); - this.label12.TabIndex = 7; - this.label12.Text = "Password:"; - // - // label11 - // - this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(9, 101); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(32, 13); - this.label11.TabIndex = 5; - this.label11.Text = "User:"; - // - // btn_StationDatabase_Export - // - this.btn_StationDatabase_Export.Location = new System.Drawing.Point(107, 150); - this.btn_StationDatabase_Export.Name = "btn_StationDatabase_Export"; - this.btn_StationDatabase_Export.Size = new System.Drawing.Size(178, 23); - this.btn_StationDatabase_Export.TabIndex = 4; - this.btn_StationDatabase_Export.Text = "Export to JSON and Upload"; - this.btn_StationDatabase_Export.UseVisualStyleBackColor = true; - this.btn_StationDatabase_Export.Click += new System.EventHandler(this.btn_StationDatabase_Export_Click); - // - // label10 - // - this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(9, 74); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(92, 13); - this.label10.TabIndex = 2; - this.label10.Text = "Remote Directory:"; - // - // label9 - // - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(9, 22); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(81, 13); - this.label9.TabIndex = 0; - this.label9.Text = "Local Directory:"; - // - // tp_Extras - // - this.tp_Extras.BackColor = System.Drawing.SystemColors.Control; - this.tp_Extras.Controls.Add(this.groupBox4); - this.tp_Extras.Location = new System.Drawing.Point(4, 22); - this.tp_Extras.Name = "tp_Extras"; - this.tp_Extras.Size = new System.Drawing.Size(1098, 549); - this.tp_Extras.TabIndex = 3; - this.tp_Extras.Text = "Extras"; - // - // groupBox4 - // - this.groupBox4.Controls.Add(this.btn_SFTP_GenarateFile); - this.groupBox4.Controls.Add(this.tb_SFTP_Password); - this.groupBox4.Controls.Add(this.label7); - this.groupBox4.Controls.Add(this.tb_SFTP_User); - this.groupBox4.Controls.Add(this.label6); - this.groupBox4.Controls.Add(this.tb_SFTP_URL); - this.groupBox4.Controls.Add(this.label5); - this.groupBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.groupBox4.Location = new System.Drawing.Point(8, 14); - this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(778, 111); - this.groupBox4.TabIndex = 0; - this.groupBox4.TabStop = false; - this.groupBox4.Text = "SFTP Password File"; - // - // btn_SFTP_GenarateFile - // - this.btn_SFTP_GenarateFile.Location = new System.Drawing.Point(423, 23); - this.btn_SFTP_GenarateFile.Name = "btn_SFTP_GenarateFile"; - this.btn_SFTP_GenarateFile.Size = new System.Drawing.Size(252, 72); - this.btn_SFTP_GenarateFile.TabIndex = 6; - this.btn_SFTP_GenarateFile.Text = "Generate File"; - this.btn_SFTP_GenarateFile.UseVisualStyleBackColor = true; - this.btn_SFTP_GenarateFile.Click += new System.EventHandler(this.btn_SFTP_GenerateFile_Click); - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.Location = new System.Drawing.Point(6, 78); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(56, 13); - this.label7.TabIndex = 4; - this.label7.Text = "Password:"; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.Location = new System.Drawing.Point(6, 52); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(32, 13); - this.label6.TabIndex = 2; - this.label6.Text = "User:"; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(6, 26); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(32, 13); - this.label5.TabIndex = 0; - this.label5.Text = "URL:"; - // - // bw_QRZ - // - this.bw_QRZ.WorkerReportsProgress = true; - this.bw_QRZ.WorkerSupportsCancellation = true; - this.bw_QRZ.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bw_QRZ_DoWork); - this.bw_QRZ.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_QRZ_ProgressChanged); - this.bw_QRZ.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_QRZ_RunWorkerCompleted); - // - // bw_DatabaseUpdater - // - this.bw_DatabaseUpdater.WorkerReportsProgress = true; - this.bw_DatabaseUpdater.WorkerSupportsCancellation = true; - this.bw_DatabaseUpdater.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bw_DatabaseUpdater_DoWork); - this.bw_DatabaseUpdater.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_DatabaseUpdater_ProgressChanged); - this.bw_DatabaseUpdater.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_DatabaseUpdater_RunWorkerCompleted); - // - // bw_AircraftUpdater - // - this.bw_AircraftUpdater.WorkerReportsProgress = true; - this.bw_AircraftUpdater.WorkerSupportsCancellation = true; - this.bw_AircraftUpdater.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bw_AircraftUpdater_DoWork); - this.bw_AircraftUpdater.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bw_AircraftUpdater_ProgressChanged); - this.bw_AircraftUpdater.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bw_AircraftUpdater_RunWorkerCompleted); - // - // groupBox6 - // - this.groupBox6.Controls.Add(this.tb_AircraftDatabase_RemoteHost); - this.groupBox6.Controls.Add(this.label14); - this.groupBox6.Controls.Add(this.tb_AircraftDatabase_Password); - this.groupBox6.Controls.Add(this.label15); - this.groupBox6.Controls.Add(this.tb_AircraftDatabase_User); - this.groupBox6.Controls.Add(this.label16); - this.groupBox6.Controls.Add(this.btn_AircraftDatabase_Export); - this.groupBox6.Controls.Add(this.tb_AircraftDatabase_RemoteDir); - this.groupBox6.Controls.Add(this.label17); - this.groupBox6.Controls.Add(this.tb_AircraftDabase_LocalDir); - this.groupBox6.Controls.Add(this.label18); - this.groupBox6.Location = new System.Drawing.Point(8, 210); - this.groupBox6.Name = "groupBox6"; - this.groupBox6.Size = new System.Drawing.Size(881, 189); - this.groupBox6.TabIndex = 3; - this.groupBox6.TabStop = false; - this.groupBox6.Text = "Aicraft Database"; - // - // label14 - // - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(9, 48); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(72, 13); - this.label14.TabIndex = 9; - this.label14.Text = "Remote Host:"; - // - // label15 - // - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(9, 127); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(56, 13); - this.label15.TabIndex = 7; - this.label15.Text = "Password:"; - // - // label16 - // - this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(9, 101); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(32, 13); - this.label16.TabIndex = 5; - this.label16.Text = "User:"; - // - // btn_AircraftDatabase_Export - // - this.btn_AircraftDatabase_Export.Location = new System.Drawing.Point(107, 150); - this.btn_AircraftDatabase_Export.Name = "btn_AircraftDatabase_Export"; - this.btn_AircraftDatabase_Export.Size = new System.Drawing.Size(178, 23); - this.btn_AircraftDatabase_Export.TabIndex = 4; - this.btn_AircraftDatabase_Export.Text = "Export to JSON and Upload"; - this.btn_AircraftDatabase_Export.UseVisualStyleBackColor = true; - this.btn_AircraftDatabase_Export.Click += new System.EventHandler(this.btn_AircraftDatabase_Export_Click); - // - // label17 - // - this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(9, 74); - this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(92, 13); - this.label17.TabIndex = 2; - this.label17.Text = "Remote Directory:"; - // - // label18 - // - this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(9, 22); - this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(81, 13); - this.label18.TabIndex = 0; - this.label18.Text = "Local Directory:"; - // - // tb_Coverage_MaxLat - // - this.tb_Coverage_MaxLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MaxLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MaxLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MaxLat.FormatSpecifier = "F0"; - this.tb_Coverage_MaxLat.Location = new System.Drawing.Point(105, 104); - this.tb_Coverage_MaxLat.MaxValue = 90D; - this.tb_Coverage_MaxLat.MinValue = -90D; - this.tb_Coverage_MaxLat.Name = "tb_Coverage_MaxLat"; - this.tb_Coverage_MaxLat.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MaxLat.TabIndex = 28; - this.tb_Coverage_MaxLat.Text = "60"; - this.tb_Coverage_MaxLat.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MaxLat; - this.tb_Coverage_MaxLat.TextChanged += new System.EventHandler(this.tp_General_Update); - // - // tb_Coverage_MinLat - // - this.tb_Coverage_MinLat.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MinLat", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MinLat.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MinLat.FormatSpecifier = "F0"; - this.tb_Coverage_MinLat.Location = new System.Drawing.Point(105, 79); - this.tb_Coverage_MinLat.MaxValue = 90D; - this.tb_Coverage_MinLat.MinValue = -90D; - this.tb_Coverage_MinLat.Name = "tb_Coverage_MinLat"; - this.tb_Coverage_MinLat.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MinLat.TabIndex = 27; - this.tb_Coverage_MinLat.Text = "35"; - this.tb_Coverage_MinLat.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MinLat; - this.tb_Coverage_MinLat.TextChanged += new System.EventHandler(this.tp_General_Update); - // - // tb_Coverage_MaxLon - // - this.tb_Coverage_MaxLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MaxLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MaxLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MaxLon.FormatSpecifier = "F0"; - this.tb_Coverage_MaxLon.Location = new System.Drawing.Point(105, 52); - this.tb_Coverage_MaxLon.MaxValue = 180D; - this.tb_Coverage_MaxLon.MinValue = -180D; - this.tb_Coverage_MaxLon.Name = "tb_Coverage_MaxLon"; - this.tb_Coverage_MaxLon.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MaxLon.TabIndex = 26; - this.tb_Coverage_MaxLon.Text = "30"; - this.tb_Coverage_MaxLon.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MaxLon; - this.tb_Coverage_MaxLon.TextChanged += new System.EventHandler(this.tp_General_Update); - // - // tb_Coverage_MinLon - // - this.tb_Coverage_MinLon.DataBindings.Add(new System.Windows.Forms.Binding("Value", global::AirScoutDatabaseManager.Properties.Settings.Default, "MinLon", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Coverage_MinLon.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_Coverage_MinLon.FormatSpecifier = "F0"; - this.tb_Coverage_MinLon.Location = new System.Drawing.Point(105, 25); - this.tb_Coverage_MinLon.MaxValue = 180D; - this.tb_Coverage_MinLon.MinValue = -180D; - this.tb_Coverage_MinLon.Name = "tb_Coverage_MinLon"; - this.tb_Coverage_MinLon.Size = new System.Drawing.Size(50, 22); - this.tb_Coverage_MinLon.TabIndex = 25; - this.tb_Coverage_MinLon.Text = "-15"; - this.tb_Coverage_MinLon.Value = global::AirScoutDatabaseManager.Properties.Settings.Default.MinLon; - this.tb_Coverage_MinLon.TextChanged += new System.EventHandler(this.tp_General_Update); - // - // tb_Update_Aircrafts - // - this.tb_Update_Aircrafts.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "Aircrafts_BaseURL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Update_Aircrafts.Location = new System.Drawing.Point(164, 98); - this.tb_Update_Aircrafts.Name = "tb_Update_Aircrafts"; - this.tb_Update_Aircrafts.Size = new System.Drawing.Size(722, 20); - this.tb_Update_Aircrafts.TabIndex = 7; - this.tb_Update_Aircrafts.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.Aircrafts_BaseURL; - // - // tb_Update_Airports - // - this.tb_Update_Airports.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "Airports_Update_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Update_Airports.Location = new System.Drawing.Point(164, 53); - this.tb_Update_Airports.Name = "tb_Update_Airports"; - this.tb_Update_Airports.Size = new System.Drawing.Size(722, 20); - this.tb_Update_Airports.TabIndex = 3; - this.tb_Update_Airports.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.Airports_Update_URL; - // - // tb_Update_Airlines - // - this.tb_Update_Airlines.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "Airlines_Update_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_Update_Airlines.Location = new System.Drawing.Point(164, 24); - this.tb_Update_Airlines.Name = "tb_Update_Airlines"; - this.tb_Update_Airlines.Size = new System.Drawing.Size(722, 20); - this.tb_Update_Airlines.TabIndex = 1; - this.tb_Update_Airlines.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.Airlines_Update_URL; - // - // tb_AircraftDatabase_RemoteHost - // - this.tb_AircraftDatabase_RemoteHost.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_RemoteHost", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_AircraftDatabase_RemoteHost.Location = new System.Drawing.Point(107, 45); - this.tb_AircraftDatabase_RemoteHost.Name = "tb_AircraftDatabase_RemoteHost"; - this.tb_AircraftDatabase_RemoteHost.Size = new System.Drawing.Size(543, 20); - this.tb_AircraftDatabase_RemoteHost.TabIndex = 10; - this.tb_AircraftDatabase_RemoteHost.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_RemoteHost; - // - // tb_AircraftDatabase_Password - // - this.tb_AircraftDatabase_Password.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_Password", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_AircraftDatabase_Password.Location = new System.Drawing.Point(107, 124); - this.tb_AircraftDatabase_Password.Name = "tb_AircraftDatabase_Password"; - this.tb_AircraftDatabase_Password.Size = new System.Drawing.Size(107, 20); - this.tb_AircraftDatabase_Password.TabIndex = 8; - this.tb_AircraftDatabase_Password.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_Password; - // - // tb_AircraftDatabase_User - // - this.tb_AircraftDatabase_User.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_User", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_AircraftDatabase_User.Location = new System.Drawing.Point(107, 98); - this.tb_AircraftDatabase_User.Name = "tb_AircraftDatabase_User"; - this.tb_AircraftDatabase_User.Size = new System.Drawing.Size(107, 20); - this.tb_AircraftDatabase_User.TabIndex = 6; - this.tb_AircraftDatabase_User.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_User; - // - // tb_AircraftDatabase_RemoteDir - // - this.tb_AircraftDatabase_RemoteDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_RemoteDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_AircraftDatabase_RemoteDir.Location = new System.Drawing.Point(107, 71); - this.tb_AircraftDatabase_RemoteDir.Name = "tb_AircraftDatabase_RemoteDir"; - this.tb_AircraftDatabase_RemoteDir.Size = new System.Drawing.Size(543, 20); - this.tb_AircraftDatabase_RemoteDir.TabIndex = 3; - this.tb_AircraftDatabase_RemoteDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_RemoteDir; - // - // tb_AircraftDabase_LocalDir - // - this.tb_AircraftDabase_LocalDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "AircraftDatabase_Export_LocalDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_AircraftDabase_LocalDir.Location = new System.Drawing.Point(107, 19); - this.tb_AircraftDabase_LocalDir.Name = "tb_AircraftDabase_LocalDir"; - this.tb_AircraftDabase_LocalDir.Size = new System.Drawing.Size(543, 20); - this.tb_AircraftDabase_LocalDir.TabIndex = 1; - this.tb_AircraftDabase_LocalDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.AircraftDatabase_Export_LocalDir; - // - // tb_StationDatabase_RemoteHost - // - this.tb_StationDatabase_RemoteHost.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_RemoteHost", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_StationDatabase_RemoteHost.Location = new System.Drawing.Point(107, 45); - this.tb_StationDatabase_RemoteHost.Name = "tb_StationDatabase_RemoteHost"; - this.tb_StationDatabase_RemoteHost.Size = new System.Drawing.Size(543, 20); - this.tb_StationDatabase_RemoteHost.TabIndex = 10; - this.tb_StationDatabase_RemoteHost.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_RemoteHost; - // - // tb_StationDatabase_Export_Password - // - this.tb_StationDatabase_Export_Password.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_Password", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_StationDatabase_Export_Password.Location = new System.Drawing.Point(107, 124); - this.tb_StationDatabase_Export_Password.Name = "tb_StationDatabase_Export_Password"; - this.tb_StationDatabase_Export_Password.Size = new System.Drawing.Size(107, 20); - this.tb_StationDatabase_Export_Password.TabIndex = 8; - this.tb_StationDatabase_Export_Password.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_Password; - // - // tb_StationDatabase_Export_User - // - this.tb_StationDatabase_Export_User.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_User", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_StationDatabase_Export_User.Location = new System.Drawing.Point(107, 98); - this.tb_StationDatabase_Export_User.Name = "tb_StationDatabase_Export_User"; - this.tb_StationDatabase_Export_User.Size = new System.Drawing.Size(107, 20); - this.tb_StationDatabase_Export_User.TabIndex = 6; - this.tb_StationDatabase_Export_User.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_User; - // - // tb_StationDatabase_RemoteDir - // - this.tb_StationDatabase_RemoteDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_RemoteDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_StationDatabase_RemoteDir.Location = new System.Drawing.Point(107, 71); - this.tb_StationDatabase_RemoteDir.Name = "tb_StationDatabase_RemoteDir"; - this.tb_StationDatabase_RemoteDir.Size = new System.Drawing.Size(543, 20); - this.tb_StationDatabase_RemoteDir.TabIndex = 3; - this.tb_StationDatabase_RemoteDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_RemoteDir; - // - // tb_StationDatabase_LocalDir - // - this.tb_StationDatabase_LocalDir.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "StationDatabase_Export_LocalDir", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_StationDatabase_LocalDir.Location = new System.Drawing.Point(107, 19); - this.tb_StationDatabase_LocalDir.Name = "tb_StationDatabase_LocalDir"; - this.tb_StationDatabase_LocalDir.Size = new System.Drawing.Size(543, 20); - this.tb_StationDatabase_LocalDir.TabIndex = 1; - this.tb_StationDatabase_LocalDir.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.StationDatabase_Export_LocalDir; - // - // tb_SFTP_Password - // - this.tb_SFTP_Password.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "SFTP_Password", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_SFTP_Password.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_SFTP_Password.Location = new System.Drawing.Point(71, 75); - this.tb_SFTP_Password.Name = "tb_SFTP_Password"; - this.tb_SFTP_Password.Size = new System.Drawing.Size(318, 20); - this.tb_SFTP_Password.TabIndex = 5; - this.tb_SFTP_Password.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.SFTP_Password; - // - // tb_SFTP_User - // - this.tb_SFTP_User.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "SFTP_User", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_SFTP_User.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_SFTP_User.Location = new System.Drawing.Point(71, 49); - this.tb_SFTP_User.Name = "tb_SFTP_User"; - this.tb_SFTP_User.Size = new System.Drawing.Size(318, 20); - this.tb_SFTP_User.TabIndex = 3; - this.tb_SFTP_User.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.SFTP_User; - // - // tb_SFTP_URL - // - this.tb_SFTP_URL.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::AirScoutDatabaseManager.Properties.Settings.Default, "SFTP_URL", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.tb_SFTP_URL.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb_SFTP_URL.Location = new System.Drawing.Point(71, 23); - this.tb_SFTP_URL.Name = "tb_SFTP_URL"; - this.tb_SFTP_URL.Size = new System.Drawing.Size(318, 20); - this.tb_SFTP_URL.TabIndex = 1; - this.tb_SFTP_URL.Text = global::AirScoutDatabaseManager.Properties.Settings.Default.SFTP_URL; - // - // MainDlg - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1106, 597); - this.Controls.Add(this.tc_Main); - this.Controls.Add(this.ss_Main); - this.Name = "MainDlg"; - this.Text = "AirScout Database Manager"; - this.WindowState = System.Windows.Forms.FormWindowState.Maximized; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainDlg_FormClosing); - this.Load += new System.EventHandler(this.MainDlg_Load); - this.ss_Main.ResumeLayout(false); - this.ss_Main.PerformLayout(); - this.tc_Main.ResumeLayout(false); - this.tp_General.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.tp_Locations.ResumeLayout(false); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); - this.splitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgv_Locations)).EndInit(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.groupBox2.ResumeLayout(false); - this.groupBox1.ResumeLayout(false); - this.tp_QRV.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgv_QRV)).EndInit(); - this.panel4.ResumeLayout(false); - this.panel4.PerformLayout(); - this.groupBox3.ResumeLayout(false); - this.tp_Aircrafts.ResumeLayout(false); - this.tp_Aircrafts.PerformLayout(); - this.tp_Upload.ResumeLayout(false); - this.groupBox5.ResumeLayout(false); - this.groupBox5.PerformLayout(); - this.tp_Extras.ResumeLayout(false); - this.groupBox4.ResumeLayout(false); - this.groupBox4.PerformLayout(); - this.groupBox6.ResumeLayout(false); - this.groupBox6.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.StatusStrip ss_Main; - private System.Windows.Forms.ToolStripStatusLabel tsl_Status; - private System.Windows.Forms.TabControl tc_Main; - private System.Windows.Forms.TabPage tp_General; - private System.Windows.Forms.TabPage tp_Locations; - private System.Windows.Forms.Panel panel1; - private GMap.NET.WindowsForms.GMapControl gm_Coverage; - private ScoutBase.Core.DoubleTextBox tb_Coverage_MaxLat; - private ScoutBase.Core.DoubleTextBox tb_Coverage_MinLat; - private ScoutBase.Core.DoubleTextBox tb_Coverage_MaxLon; - private ScoutBase.Core.DoubleTextBox tb_Coverage_MinLon; - private System.Windows.Forms.Label label35; - private System.Windows.Forms.Label label54; - private System.Windows.Forms.Label label59; - private System.Windows.Forms.Label label60; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.DataGridView dgv_Locations; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.TextBox tb_Locations_Status; - private System.Windows.Forms.Button btn_QRZ_Stop; - private System.Windows.Forms.Button btn_QRZ_Start; - private System.ComponentModel.BackgroundWorker bw_QRZ; - private System.Windows.Forms.Button btn_Locations_Export; - private System.Windows.Forms.Button btn_Locations_Save; - private System.ComponentModel.BackgroundWorker bw_DatabaseUpdater; - private System.Windows.Forms.GroupBox groupBox2; - private System.Windows.Forms.Button btn_Locations_Import_CALL3; - private System.Windows.Forms.Button btn_Locations_Sort; - private System.Windows.Forms.Button btn_Locations_Import_DTB; - private System.Windows.Forms.Button btn_Locations_Import_CSV; - private System.Windows.Forms.CheckBox cb_Locations_ChangedOnly; - private GMap.NET.WindowsForms.GMapControl gm_Locations; - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.TextBox tb_Locations_Callsign_Filter; - private System.Windows.Forms.Button btn_Locations_Import_USR; - private System.Windows.Forms.Button btn_Locations_Import_AirScout; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TabPage tp_QRV; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.GroupBox groupBox3; - private System.Windows.Forms.Button btn_QRV_Import_WinTest; - private System.Windows.Forms.DataGridView dgv_QRV; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox tb_QRV_Callsign_Filter; - private System.Windows.Forms.TextBox tb_QRV_Status; - private System.Windows.Forms.Button btn_QRV_Sort; - private System.Windows.Forms.Button btn_QRV_Export; - private System.Windows.Forms.Button btn_QRV_Save; - private System.Windows.Forms.CheckBox cb_QRV_ChangedOnly; - private System.Windows.Forms.Button btn_QRV_Import_EDI; - private System.Windows.Forms.TabPage tp_Extras; - private System.Windows.Forms.GroupBox groupBox4; - private System.Windows.Forms.Button btn_SFTP_GenarateFile; - private System.Windows.Forms.TextBox tb_SFTP_Password; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox tb_SFTP_User; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox tb_SFTP_URL; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TabPage tp_Aircrafts; - private System.Windows.Forms.TextBox tb_Update_Airlines; - private System.Windows.Forms.Button btn_Update_Airlines; - private System.Windows.Forms.TextBox tb_Update_Airports; - private System.Windows.Forms.Button btn_Update_Airports; - private System.ComponentModel.BackgroundWorker bw_AircraftUpdater; - private System.Windows.Forms.Button btn_Update_Aircrafts_Stop; - private System.Windows.Forms.Button btn_Update_Aicrafts_Start; - private System.Windows.Forms.TextBox tb_Update_Aircrafts; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Label lbl_Aircrafts_UnkownHex; - private System.Windows.Forms.Label lbl_Aircrafts_UnkownType; - private System.Windows.Forms.Label lbl_Aircrafts_UnkownCall; - private System.Windows.Forms.Label lbl_Aircrafts_Total; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.TabPage tp_Upload; - private System.Windows.Forms.GroupBox groupBox5; - private System.Windows.Forms.Button btn_StationDatabase_Export; - private System.Windows.Forms.TextBox tb_StationDatabase_RemoteDir; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.TextBox tb_StationDatabase_LocalDir; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.TextBox tb_StationDatabase_Export_User; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.TextBox tb_StationDatabase_Export_Password; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.TextBox tb_StationDatabase_RemoteHost; - private System.Windows.Forms.Label label13; - private System.Windows.Forms.GroupBox groupBox6; - private System.Windows.Forms.TextBox tb_AircraftDatabase_RemoteHost; - private System.Windows.Forms.Label label14; - private System.Windows.Forms.TextBox tb_AircraftDatabase_Password; - private System.Windows.Forms.Label label15; - private System.Windows.Forms.TextBox tb_AircraftDatabase_User; - private System.Windows.Forms.Label label16; - private System.Windows.Forms.Button btn_AircraftDatabase_Export; - private System.Windows.Forms.TextBox tb_AircraftDatabase_RemoteDir; - private System.Windows.Forms.Label label17; - private System.Windows.Forms.TextBox tb_AircraftDabase_LocalDir; - private System.Windows.Forms.Label label18; - } -} - diff --git a/AirScoutDatabaseManager/MainDlg.cs b/AirScoutDatabaseManager/MainDlg.cs deleted file mode 100644 index 7b06588..0000000 --- a/AirScoutDatabaseManager/MainDlg.cs +++ /dev/null @@ -1,1902 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.Net; -using System.IO; -using System.Globalization; -using System.Threading; -using System.Xml; -using System.Xml.Linq; -using GMap.NET; -using GMap.NET.MapProviders; -using GMap.NET.WindowsForms; -using GMap.NET.WindowsForms.Markers; -using GMap.NET.WindowsForms.ToolTips; -using ScoutBase; -using ScoutBase.Core; -using ScoutBase.Elevation; -using ScoutBase.Stations; -using SQLiteDatabase; -using Newtonsoft.Json; -using HtmlAgilityPack; -using AirScout.Aircrafts; -using Newtonsoft.Json.Linq; -using Renci.SshNet.Sftp; -using Renci.SshNet; - -namespace AirScoutDatabaseManager -{ - public partial class MainDlg : Form - { - - [CategoryAttribute("Directories")] - [DescriptionAttribute("Application Directory")] - public string AppDirectory - { - get - { - return Application.StartupPath.TrimEnd(Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar); - } - } - - [CategoryAttribute("Directories")] - [DescriptionAttribute("Local Application Data Directory")] - public string AppDataDirectory - { - get - { - return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Application.CompanyName, Application.ProductName).TrimEnd(Path.DirectorySeparatorChar); - } - } - - [CategoryAttribute("Directories")] - [DescriptionAttribute("Logfile Directory")] - public string LogDirectory - { - get - { - // get Property - string logdir = Properties.Settings.Default.Log_Directory; - // replace Windows/Linux directory spearator chars - logdir = logdir.Replace('\\', Path.DirectorySeparatorChar); - logdir = logdir.Replace('/', Path.DirectorySeparatorChar); - // set to default value if empty - if (String.IsNullOrEmpty(logdir)) - logdir = "Log"; - // replace variables, if any - logdir = VC.ReplaceAllVars(logdir); - // remove directory separator chars at begin and end - logdir = logdir.TrimStart(Path.DirectorySeparatorChar); - logdir = logdir.TrimEnd(Path.DirectorySeparatorChar); - // fully qualify path - if (!logdir.Contains(Path.VolumeSeparatorChar)) - logdir = Path.Combine(AppDataDirectory, logdir); - return logdir; - } - } - - [CategoryAttribute("Directories")] - [DescriptionAttribute("Tempfile Directory")] - public string TmpDirectory - { - get - { - // get Property - string tmpdir = Properties.Settings.Default.Tmp_Directory; - // replace Windows/Linux directory spearator chars - tmpdir = tmpdir.Replace('\\', Path.DirectorySeparatorChar); - tmpdir = tmpdir.Replace('/', Path.DirectorySeparatorChar); - // set to default value if empty - if (String.IsNullOrEmpty(tmpdir)) - tmpdir = "Tmp"; - // replace variables, if any - tmpdir = VC.ReplaceAllVars(tmpdir); - // remove directory separator chars at begin and end - tmpdir = tmpdir.TrimStart(Path.DirectorySeparatorChar); - tmpdir = tmpdir.TrimEnd(Path.DirectorySeparatorChar); - // fully qualify path - if (!tmpdir.Contains(Path.VolumeSeparatorChar)) - tmpdir = Path.Combine(AppDataDirectory, tmpdir); - return tmpdir; - } - } - - [CategoryAttribute("Directories")] - [DescriptionAttribute("Database Directory")] - public string DatabaseDirectory - { - get - { - // get Property - string databasedir = Properties.Settings.Default.Database_Directory; - // replace Windows/Linux directory spearator chars - databasedir = databasedir.Replace('\\', Path.DirectorySeparatorChar); - databasedir = databasedir.Replace('/', Path.DirectorySeparatorChar); - // set to default value if empty - if (String.IsNullOrEmpty(databasedir)) - databasedir = "Database"; - // replace variables, if any - databasedir = VC.ReplaceAllVars(databasedir); - // remove directory separator chars at begin and end - databasedir = databasedir.TrimStart(Path.DirectorySeparatorChar); - databasedir = databasedir.TrimEnd(Path.DirectorySeparatorChar); - // fully qualify path - if (!databasedir.Contains(Path.VolumeSeparatorChar)) - databasedir = Path.Combine(AppDataDirectory, databasedir); - return databasedir; - } - } - - - [CategoryAttribute("Directories")] - [DescriptionAttribute("Tempfile Directory")] - public string ExportDirectory - { - get - { - // get Property - string expdir = Properties.Settings.Default.Export_Directory; - // replace Windows/Linux directory spearator chars - expdir = expdir.Replace('\\', Path.DirectorySeparatorChar); - expdir = expdir.Replace('/', Path.DirectorySeparatorChar); - // set to default value if empty - if (String.IsNullOrEmpty(expdir)) - expdir = "Tmp"; - // replace variables, if any - expdir = VC.ReplaceAllVars(expdir); - // remove directory separator chars at begin and end - expdir = expdir.TrimStart(Path.DirectorySeparatorChar); - expdir = expdir.TrimEnd(Path.DirectorySeparatorChar); - // fully qualify path - if (!expdir.Contains(Path.VolumeSeparatorChar)) - expdir = Path.Combine(AppDataDirectory, expdir); - return expdir; - } - } - - GMapOverlay Coverageoverlay = new GMapOverlay("Coveragepolygons"); - GMapOverlay Locationsoverlay = new GMapOverlay("Locations"); - - DataSet SB = new DataSet(); - - DataTableLocations Locations = new DataTableLocations(); - DataView LocationsView; - - DataTable QRV = new DataTable(); - DataView QRVView; - - NumberFormatInfo ENprovider; - - public LogWriter Log = LogWriter.Instance; - public VarConverter VC = new VarConverter(); - - private bool IsMarkerDragging = false; - private bool IsMarkerDragged = false; - - private GMarkerGoogle CurrentMarker = null; - private double CurrentMarkerLat; - private double CurrentMarkerLon; - - private double OfsLat, OfsLon; - - public MainDlg() - { - InitializeComponent(); - ENprovider = new NumberFormatInfo(); - ENprovider.NumberDecimalSeparator = "."; - ENprovider.NumberGroupSeparator = ","; - CheckDirectories(); - // set directories and formats for logfile - ScoutBase.Core.Properties.Settings.Default.LogWriter_Directory = LogDirectory; - ScoutBase.Core.Properties.Settings.Default.LogWriter_FileFormat = "Log_{0:yyyy_MM_dd}.log"; - ScoutBase.Core.Properties.Settings.Default.LogWriter_MessageFormat = "{0:u} {1}"; - Locations.RowChanged += new DataRowChangeEventHandler(Locations_Row_Changed); - QRV.RowChanged += new DataRowChangeEventHandler(QRV_Row_Changed); - tc_Main.Enabled = false; - } - - private void MainDlg_Load(object sender, EventArgs e) - { - Log.WriteMessage("Starting up."); - // set initial settings for CoverageMap - GMap.NET.MapProviders.GMapProvider.UserAgent = "AirScout"; - // clearing referrer URL issue 2019-12-14 - gm_Coverage.MapProvider.RefererUrl = ""; - gm_Coverage.MapProvider = GMapProviders.Find(Properties.Settings.Default.Map_Provider); - gm_Coverage.IgnoreMarkerOnMouseWheel = true; - gm_Coverage.MinZoom = 0; - gm_Coverage.MaxZoom = 20; - gm_Coverage.Zoom = 6; - gm_Coverage.DragButton = System.Windows.Forms.MouseButtons.Left; - gm_Coverage.CanDragMap = true; - gm_Coverage.ScalePen = new Pen(Color.Black, 3); - gm_Coverage.HelperLinePen = null; - gm_Coverage.SelectionPen = null; - gm_Coverage.MapScaleInfoEnabled = true; - gm_Coverage.Overlays.Add(Coverageoverlay); - // set initial settings for locations map - GMap.NET.MapProviders.GMapProvider.UserAgent = "AirScout"; - // clearing referrer URL issue 2019-12-14 - gm_Locations.MapProvider.RefererUrl = ""; - gm_Locations.MapProvider = GMapProviders.Find(Properties.Settings.Default.Map_Provider); - gm_Locations.IgnoreMarkerOnMouseWheel = true; - gm_Locations.MinZoom = 0; - gm_Locations.MaxZoom = 20; - gm_Locations.Zoom = 6; - gm_Locations.DragButton = System.Windows.Forms.MouseButtons.Left; - gm_Locations.CanDragMap = true; - gm_Locations.ScalePen = new Pen(Color.Black, 3); - gm_Locations.HelperLinePen = null; - gm_Locations.SelectionPen = null; - gm_Locations.MapScaleInfoEnabled = true; - gm_Locations.Overlays.Add(Locationsoverlay); - gm_Locations.ShowCenter = false; - // initialize QRV table - DataColumn qrv_call = new DataColumn("Call", typeof(string)); - QRV.Columns.Add(qrv_call); - DataColumn qrv_loc = new DataColumn("Loc", typeof(string)); - QRV.Columns.Add(qrv_loc); - QRV.PrimaryKey = new DataColumn[2] { qrv_call, qrv_loc }; - string[] bands = Bands.GetStringValuesExceptNoneAndAll(); - foreach (string band in bands) - { - if (!band.StartsWith("50M") && !band.StartsWith("70M")) - { - QRV.Columns.Add(band + "_AH", typeof(double)); - QRV.Columns.Add(band + "_AG", typeof(double)); - QRV.Columns.Add(band + "_P", typeof(double)); - } - } - QRV.Columns.Add("LastUpdated", typeof(DateTime)); - // initilize databases - AircraftData.Database.GetDBLocation(); - StationData.Database.GetDBLocation(); - bw_DatabaseUpdater.RunWorkerAsync(); - } - - private void MainDlg_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Save(); - bw_QRZ.CancelAsync(); - Log.WriteMessage("Closing."); - } - - public void CheckDirectories() - { - // check if directories exist - if (!Directory.Exists(TmpDirectory)) - Directory.CreateDirectory(TmpDirectory); - if (!Directory.Exists(LogDirectory)) - Directory.CreateDirectory(LogDirectory); - if (!Directory.Exists(ExportDirectory)) - Directory.CreateDirectory(ExportDirectory); - } - - - private void Say(string text) - { - if (tsl_Status.Text != text) - { - tsl_Status.Text = text; - ss_Main.Refresh(); - } - } - - private void SayLocations(string text) - { - if (tb_Locations_Status.Text != text) - { - tb_Locations_Status.Text = text; - tb_Locations_Status.Refresh(); - Application.DoEvents(); - } - } - - private void SayQRV(string text) - { - if (tb_QRV_Status.Text != text) - { - tb_QRV_Status.Text = text; - tb_QRV_Status.Refresh(); - Application.DoEvents(); - } - } - - #region tp_General - - private void tp_General_Enter(object sender, EventArgs e) - { - tp_General_Update(this, null); - } - - private void tp_General_Update(object sender, EventArgs e) - { - Coverageoverlay.Clear(); - // add tile to map polygons - List l = new List(); - l.Add(new PointLatLng(tb_Coverage_MinLat.Value, tb_Coverage_MinLon.Value)); - l.Add(new PointLatLng(tb_Coverage_MinLat.Value, tb_Coverage_MaxLon.Value)); - l.Add(new PointLatLng(tb_Coverage_MaxLat.Value, tb_Coverage_MaxLon.Value)); - l.Add(new PointLatLng(tb_Coverage_MaxLat.Value, tb_Coverage_MinLon.Value)); - GMapPolygon p = new GMapPolygon(l, "Coverage"); - p.Stroke = new Pen(Color.FromArgb(255, Color.Magenta), 3); - p.Fill = new SolidBrush(Color.FromArgb(0, Color.Magenta)); - Coverageoverlay.Polygons.Add(p); - // zoom the map - gm_Coverage.SetZoomToFitRect(RectLatLng.FromLTRB(tb_Coverage_MinLon.Value - 1, tb_Coverage_MaxLat.Value + 1, tb_Coverage_MaxLon.Value + 1, tb_Coverage_MinLat.Value - 1)); - } - - - #endregion - - #region tp_Locations - - private void tp_Locations_Enter(object sender, EventArgs e) - { - // clear map - Locationsoverlay.Clear(); - Locations.Clear(); - Locations.Merge(StationData.Database.LocationToDataTable()); - Locations.AcceptChanges(); - LocationsView = new DataView(Locations); - BindingSource source = new BindingSource(); - source.DataSource = LocationsView; - dgv_Locations.DataSource = source; - dgv_Locations.ShowRowErrors = true; - } - - private void btn_QRZ_Start_Click(object sender, EventArgs e) - { - if (!bw_QRZ.IsBusy) - bw_QRZ.RunWorkerAsync(); - } - - private void btn_QRZ_Stop_Click(object sender, EventArgs e) - { - bw_QRZ.CancelAsync(); - } - - private void btn_Locations_Sort_Click(object sender, EventArgs e) - { - // sort data table - DataTableLocations sorted = (DataTableLocations)Locations.Clone(); - DataRow[] rows = Locations.Select("", "Call ASC"); - if (rows.Length > 0) - { - foreach (DataRow row in rows) - sorted.ImportRow(row); - } - Locations.Clear(); - foreach (DataRow row in sorted.Rows) - Locations.ImportRow(row); - } - - private void btn_Locations_Save_Click(object sender, EventArgs e) - { - SayLocations("Saving changes to database..."); - foreach (DataRow row in Locations.Rows) - { - LocationDesignator ld = new LocationDesignator(row); - StationData.Database.LocationInsertOrUpdateIfNewer(ld); - } - SayLocations("Finished."); - } - - private void btn_Locations_Export_Click(object sender, EventArgs e) - { - string filename = Path.Combine(ExportDirectory, "locations.json"); - SayLocations("Exporting database to " + filename); - string json = StationData.Database.LocationToJSON(); - SupportFunctions.WriteStringToFile(json, filename); - SayLocations("Finished."); - } - - private void btn_Locations_Import_AirScout_Click(object sender, EventArgs e) - { - } - - private void btn_Locations_Import_CALL3_Click(object sender, EventArgs e) - { - } - - private void btn_Locations_Import_DTB_Click(object sender, EventArgs e) - { - } - - private void btn_Locations_Import_CSV_Click(object sender, EventArgs e) - { - } - - private void btn_Locations_Import_USR_Click(object sender, EventArgs e) - { - FolderBrowserDialog Dlg = new FolderBrowserDialog(); - Dlg.ShowNewFolderButton = false; - if (Dlg.ShowDialog() == DialogResult.OK) - { - DataTableLocations dt = new DataTableLocations(); - string[] files = Directory.GetFiles(Dlg.SelectedPath, "*.usr"); - foreach (string file in files) - { - try - { - SayLocations("Importing " + file + "..."); - string s = ""; - using (StreamReader sr = new StreamReader(File.OpenRead(file))) - { - while (!sr.EndOfStream) - { - s = sr.ReadLine(); - if (!String.IsNullOrEmpty(s) && !s.StartsWith("//")) - { - string[] a = s.Split(';'); - // store array values in DataTable - DataRow row = dt.NewRow(); - string call = a[0]; - if (Callsign.Check(call)) - { - double lat = System.Convert.ToDouble(a[1], CultureInfo.InvariantCulture); - double lon = System.Convert.ToDouble(a[2], CultureInfo.InvariantCulture); - GEOSOURCE source = (MaidenheadLocator.IsPrecise(lat, lon, 3) ? GEOSOURCE.FROMUSER : GEOSOURCE.FROMLOC); - string lastupdated = a[6]; - DateTime lu = System.Convert.ToDateTime(lastupdated).ToUniversalTime(); - if (GeographicalPoint.Check(lat, lon)) - { - row["Call"] = call; - row["Lat"] = lat; - row["Lon"] = lon; - row["Source"] = source; - row["LastUpdated"] = lu; - dt.Rows.Add(row); - } - } - } - } - } - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - } - ImportLocations(dt); - } - } - - private void cb_Locations_ChangedOnly_CheckedChanged(object sender, EventArgs e) - { - if (cb_Locations_ChangedOnly.Checked) - { - LocationsView.RowStateFilter = DataViewRowState.ModifiedCurrent | DataViewRowState.Added; - } - else - { - LocationsView.RowStateFilter = DataViewRowState.CurrentRows; - } - } - - private void gm_Locations_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Left && CurrentMarker != null && CurrentMarker.IsMouseOver) - { - // get geographic coordinates of mouse pointer and calulate offsets - PointLatLng p = gm_Locations.FromLocalToLatLng(e.X, e.Y); - OfsLat = p.Lat - CurrentMarker.Position.Lat; - OfsLon = p.Lng - CurrentMarker.Position.Lng; - IsMarkerDragging = true; - IsMarkerDragged = false; - CurrentMarkerLat = CurrentMarker.Position.Lat; - CurrentMarkerLon = CurrentMarker.Position.Lng; - foreach (DataGridViewRow row in dgv_Locations.Rows) - { - try - { - string call = row.Cells["Call"].Value.ToString(); - string markercall = (string)CurrentMarker.Tag; - if (String.Equals(call, markercall)) - { - dgv_Locations.ClearSelection(); - row.Selected = true; - dgv_Locations.FirstDisplayedScrollingRowIndex = row.Index; - break; - } - } - catch - { - - } - } - } - } - - private void gm_Locations_MouseMove(object sender, MouseEventArgs e) - { - if (IsMarkerDragging && (CurrentMarker != null)) - { - // get geographic coordinates of mouse pointer - PointLatLng p = gm_Locations.FromLocalToLatLng(e.X, e.Y); - p.Lat = p.Lat - OfsLat; - p.Lng = p.Lng - OfsLon; - CurrentMarker.Position = p; - GPoint c = gm_Locations.FromLatLngToLocal(new PointLatLng(CurrentMarkerLat, CurrentMarkerLon)); - if ((Math.Abs(c.X - e.X) > 20) || (Math.Abs(c.Y - e.Y) > 20)) - { - IsMarkerDragged = true; - } - } - } - - private void gm_Locations_MouseUp(object sender, MouseEventArgs e) - { - if (CurrentMarker != null) - { - if (IsMarkerDragged) - { - // get geographic coordinates of mouse pointer - PointLatLng p = gm_Locations.FromLocalToLatLng(e.X, e.Y); - double lat = p.Lat - OfsLat; - double lon = p.Lng - OfsLon; - string call = CurrentMarker.Tag.ToString(); - string loc = MaidenheadLocator.LocFromLatLon(lat, lon, false, 3); - GEOSOURCE source = (MaidenheadLocator.IsPrecise(lat, lon, 3) ? GEOSOURCE.FROMUSER : GEOSOURCE.FROMLOC); - DataRow oldrow = Locations.Rows.Find(new string[] { call, loc }); - if (oldrow != null) - { - // call found --> check for update - if ((double)oldrow["Lat"] != lat) - { - oldrow["Lat"] = lat; - AddRowError(oldrow, "UPDATED", "Lat", "UpdatedValue", "OldValue:" + ((double)oldrow["Lat"]).ToString("F8", CultureInfo.InvariantCulture)); - } - if ((double)oldrow["Lon"] != lon) - { - oldrow["Lon"] = lon; - AddRowError(oldrow, "UPDATED", "Lon", "UpdatedValue", "OldValue:" + ((double)oldrow["Lon"]).ToString("F8", CultureInfo.InvariantCulture)); - } - oldrow["Source"] = source; - AddRowError(oldrow, "UPDATED", "Source", "UpdatedValue", "OldValue:" + oldrow["Source"].ToString()); - oldrow["LastUpdated"] = DateTime.UtcNow; - } - else - { - // marker is mpved beyond old locator - // create new line - if (MessageBox.Show("Marker is moved to a different locator which is not in database so far. Create new entry?","Create new entry", MessageBoxButtons.YesNo) == DialogResult.Yes) - { - DataRow row = Locations.NewRow(); - row["Call"] = call; - row["Loc"] = loc; - row["Lat"] = lat; - row["Lon"] = lon; - row["Source"] = source; - row["Hits"] = 0; - row["LastUpdated"] = DateTime.UtcNow; - Locations.Rows.Add(row); - } - } - } - else - { - // restore original marker position - CurrentMarker.Position = new PointLatLng(CurrentMarkerLat, CurrentMarkerLon); - } - } - gm_Locations.CanDragMap = true; - IsMarkerDragging = false; - IsMarkerDragged = false; - } - - private void gm_Locations_OnMarkerEnter(GMapMarker item) - { - CurrentMarker = (GMarkerGoogle)item; - } - - private void gm_Locations_OnMarkerLeave(GMapMarker item) - { - // CurrentMarker = null; - } - - private void tb_Locations_Callsign_Filter_TextChanged(object sender, EventArgs e) - { - if (String.IsNullOrEmpty(tb_Locations_Callsign_Filter.Text)) - { - LocationsView.RowFilter = "Call LIKE '*'"; - return; - } - string filter = tb_Locations_Callsign_Filter.Text; - if (!filter.EndsWith("*")) - filter = filter + "*"; - LocationsView.RowFilter = "Call LIKE '" + filter + "'"; - } - - #endregion - - private void dgv_Locations_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) - { - if ((e.RowIndex < 0) || (e.RowIndex >= dgv_Locations.Rows.Count)) - return; - DataGridViewRow dgvrow = dgv_Locations.Rows[e.RowIndex]; - if ((e.ColumnIndex < 0) || (e.ColumnIndex >= dgvrow.Cells.Count)) - return; - DataGridViewCell cell = dgvrow.Cells[e.ColumnIndex]; - if (!cell.Displayed) - return; - if (String.IsNullOrEmpty(dgvrow.ErrorText)) - return; - XElement xml = XElement.Parse(dgvrow.ErrorText); - LOCATIONSTATE state = LOCATIONSTATE.UNKNOWN; - try - { - state = (LOCATIONSTATE)Enum.Parse(typeof(LOCATIONSTATE), xml.Name.ToString()); - } - catch - { - - } - if (state == LOCATIONSTATE.ERROR) - cell.Style.BackColor = Color.Red; - else if (state == LOCATIONSTATE.LOCDIFF) - cell.Style.BackColor = Color.Khaki; - else if (state == LOCATIONSTATE.UPTODATE) - cell.Style.BackColor = Color.LightGreen; - else if (state == LOCATIONSTATE.ADDED) - cell.Style.BackColor = Color.LightBlue; - else if (state == LOCATIONSTATE.UPDATED) - { - string s = xml.ToString(); - string propertyname = dgv_Locations.Columns[e.ColumnIndex].DataPropertyName; - if (s.IndexOf("<" + propertyname + " />") >= 0) - { - cell.Style.BackColor = Color.Bisque; - } - } - } - - private void bw_QRZ_DoWork(object sender, DoWorkEventArgs e) - { - // check callsign location against QRZ.com entry - // name current thread - if (String.IsNullOrEmpty(Thread.CurrentThread.Name)) - Thread.CurrentThread.Name = "QRZ"; - int callschecked = 0; - int callsfound = 0; - int callsnotfound = 0; - int callsuptodate = 0; - int callsupdated = 0; - int callsdiffloc = 0; - int errors = 0; - // get session key - WebRequest myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_Login); - myWebRequest.Timeout = 10000; - WebResponse myWebResponse = myWebRequest.GetResponse(); - Stream ReceiveStream = myWebResponse.GetResponseStream(); - Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); - StreamReader readStream = new StreamReader(ReceiveStream, encode); - string s = readStream.ReadToEnd(); - XmlDocument doc = new XmlDocument(); - doc.LoadXml(s); - var nodes = doc.GetElementsByTagName("Key"); - string sessionkey = nodes[0].InnerText; - foreach (DataRow row in Locations.Rows) - { - try - { - callschecked++; - string call = row["Call"].ToString(); - double lat = (double)row["Lat"]; - double lon = (double)row["Lon"]; - GEOSOURCE source = (GEOSOURCE)row["Source"]; - DateTime lastupdated = (DateTime)row["LastUpdated"]; - string loc = MaidenheadLocator.LocFromLatLon(lat, lon, false, 3); - string qrzloc = ""; - double qrzlat = 0; - double qrzlon = 0; - string geoloc = ""; - string addr1 = ""; - string addr2 = ""; - string zip = ""; - string country = ""; - string error = ""; - // get xml data - myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_XMLData + "?s=" + sessionkey + ";callsign=" + call); - myWebRequest.Timeout = 10000; - myWebResponse = myWebRequest.GetResponse(); - ReceiveStream = myWebResponse.GetResponseStream(); - encode = System.Text.Encoding.GetEncoding("utf-8"); - readStream = new StreamReader(ReceiveStream, encode); - s = readStream.ReadToEnd(); - // load xml document - doc = new XmlDocument(); - doc.LoadXml(s); - // check for errors - nodes = doc.GetElementsByTagName("Error"); - if (nodes.Count > 0) - { - error = nodes[0].InnerText; - if (error.ToUpper().Contains("NOT FOUND")) - { - callsnotfound++; - } - else if (error.ToUpper().Contains("SESSION TIMEOUT")) - { - // session timeout --> obtain a new session key and try again - myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_Login); - myWebRequest.Timeout = 10000; - myWebResponse = myWebRequest.GetResponse(); - ReceiveStream = myWebResponse.GetResponseStream(); - encode = System.Text.Encoding.GetEncoding("utf-8"); - readStream = new StreamReader(ReceiveStream, encode); - s = readStream.ReadToEnd(); - doc = new XmlDocument(); - doc.LoadXml(s); - nodes = doc.GetElementsByTagName("Key"); - sessionkey = nodes[0].InnerText; - bw_QRZ.ReportProgress((int)LOCATIONSTATE.INFO, "Obtained new session key: " + sessionkey); - // get xml data - myWebRequest = WebRequest.Create(Properties.Settings.Default.QRZ_URL_XMLData + "?s=" + sessionkey + ";callsign=" + call); - myWebRequest.Timeout = 10000; - myWebResponse = myWebRequest.GetResponse(); - ReceiveStream = myWebResponse.GetResponseStream(); - encode = System.Text.Encoding.GetEncoding("utf-8"); - readStream = new StreamReader(ReceiveStream, encode); - s = readStream.ReadToEnd(); - // load xml document - doc = new XmlDocument(); - doc.LoadXml(s); - } - else - { - // report error - errors++; - bw_QRZ.ReportProgress((int)LOCATIONSTATE.ERROR, error); - } - } - // write xml to file - else - { - using (StreamWriter sw = new StreamWriter(call.Replace("/", "_") + ".xml")) - { - sw.WriteLine(s); - } - callsfound++; - nodes = doc.GetElementsByTagName("lat"); - if (nodes.Count > 0) - qrzlat = System.Convert.ToDouble(nodes[0].InnerText, CultureInfo.InvariantCulture); - nodes = doc.GetElementsByTagName("lon"); - if (nodes.Count > 0) - qrzlon = System.Convert.ToDouble(nodes[0].InnerText, CultureInfo.InvariantCulture); - nodes = doc.GetElementsByTagName("grid"); - if (nodes.Count > 0) - qrzloc = nodes[0].InnerText.ToUpper().Trim(); - nodes = doc.GetElementsByTagName("geoloc"); - if (nodes.Count > 0) - geoloc = nodes[0].InnerText; - nodes = doc.GetElementsByTagName("addr1"); - if (nodes.Count > 0) - addr1 = nodes[0].InnerText; - nodes = doc.GetElementsByTagName("addr2"); - if (nodes.Count > 0) - addr2 = nodes[0].InnerText; - nodes = doc.GetElementsByTagName("zip"); - if (nodes.Count > 0) - zip = nodes[0].InnerText; - nodes = doc.GetElementsByTagName("country"); - if (nodes.Count > 0) - country = nodes[0].InnerText; - // different loc? - if (loc != qrzloc) - { - Log.WriteMessage("QRZ.COM: Locator is different [" + call + "]: " + loc + " <> " + qrzloc, LogLevel.Warning); - callsdiffloc++; - } - // precise location by user or geocode? - else if (geoloc.ToUpper().Contains("USER") || geoloc.ToUpper().Contains("GEOCODE")) - { - if ((qrzlat != lat) || (qrzlon != lon)) - { - Log.WriteMessage("QRZ.COM: Location updated [" + call + "]."); - callsupdated++; - LocationDesignator ld = new LocationDesignator(call, qrzlat, qrzlon, GEOSOURCE.FROMUSER); - bw_QRZ.ReportProgress((int)LOCATIONSTATE.UPDATED, ld); - } - else - { - // already up to date - Log.WriteMessage("QRZ.COM: Location up to date [" + call + "]."); - callsuptodate++; - } - } - else if (geoloc.ToUpper().Contains("GRID")) - { - // try to get info by OpenStreetMaps API - string url = "https://nominatim.openstreetmap.org/search?q=" + addr1 + "+" + addr2 + "+" + zip + "+" + country + "&format=xml&polygon=1&addressdetails=1"; - HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); - httpWebRequest.UserAgent = "Mozilla / 5.0(Windows NT 10.0; Win64; x64; rv: 61.0) Gecko / 20100101 Firefox / 61.0"; - HttpWebResponse httpWebResponse= (HttpWebResponse)httpWebRequest.GetResponse(); - ReceiveStream = httpWebResponse.GetResponseStream(); - // encode = System.Text.Encoding.GetEncoding("utf-8"); - readStream = new StreamReader(ReceiveStream, encode); - s = readStream.ReadToEnd(); - // load xml document - doc = new XmlDocument(); - doc.LoadXml(s); - double glat = 0; - double glon = 0; - string gloc = ""; - nodes = doc.GetElementsByTagName("place"); - if (nodes.Count > 0) - { - glat = System.Convert.ToDouble(nodes[0].Attributes["lat"].Value.ToString(), CultureInfo.InvariantCulture); - glon = System.Convert.ToDouble(nodes[0].Attributes["lon"].Value.ToString(), CultureInfo.InvariantCulture); - } - gloc = MaidenheadLocator.LocFromLatLon(glat, glon, false, 3); - if (gloc == qrzloc) - { - // precise location from address - Log.WriteMessage("QRZ.COM: Location updated from postal address[" + call + "]."); - callsupdated++; - LocationDesignator ld = new LocationDesignator(call, glat, glon, GEOSOURCE.FROMUSER); - bw_QRZ.ReportProgress((int)LOCATIONSTATE.UPDATED, ld); - } - else - { - Log.WriteMessage("QRZ.COM: Locator is different [" + call + "]: " + loc + " <> " + qrzloc, LogLevel.Warning); - callsdiffloc++; - } - } - // alreadyup to date? - else if ((lat == qrzlat) && (lon == qrzlon)) - { - callsuptodate++; - } - } - string status = "QRZ.COM query is running: " + - callschecked.ToString() + " checked, " + - callsnotfound.ToString() + " not found, " + - callsfound.ToString() + " found, " + - callsuptodate.ToString() + " up to date, " + - callsupdated.ToString() + " updated, " + - callsdiffloc.ToString() + " different loc, " + - errors.ToString() + " errors"; - bw_QRZ.ReportProgress((int)LOCATIONSTATE.INFO, status); - if (bw_QRZ.CancellationPending) - return; - Thread.Sleep(10); - } - catch (Exception ex) - { - errors++; - bw_QRZ.ReportProgress((int)LOCATIONSTATE.ERROR, ex.Message); - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - } - } - - private void bw_QRZ_ProgressChanged(object sender, ProgressChangedEventArgs e) - { - LOCATIONSTATE state = (LOCATIONSTATE)e.ProgressPercentage; - if (state <= 0) - SayLocations((string)e.UserState); - else - { - LocationDesignator ld = (LocationDesignator)e.UserState; - // update data table - try - { - DataRow row = Locations.Rows.Find(new string[2] { ld.Call, ld.Loc }); - if (row != null) - { - if (state == LOCATIONSTATE.UPTODATE) - AddRowError(row, state.ToString(), "", "", ""); - else if (state == LOCATIONSTATE.LOCDIFF) - AddRowError(row, state.ToString(), "", "", ""); - else - { - if ((double)row["Lat"] != ld.Lat) - { - AddRowError(row, state.ToString(), "Lat", "UpdatedValue", "OldValue:" + ((double)row["Lat"]).ToString("F8", CultureInfo.InvariantCulture)); - row["Lat"] = ld.Lat; - } - if ((double)row["Lon"] != ld.Lon) - { - AddRowError(row, state.ToString(), "Lon", "UpdatedValue", "OldValue:" + ((double)row["Lon"]).ToString("F8", CultureInfo.InvariantCulture)); - row["Lon"] = ld.Lon; - } - row["Source"] = ld.Source; - row["LastUpdated"] = ld.LastUpdated; - } - } - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - } - } - - private void bw_QRZ_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - SayLocations("Finished."); - } - - - private void AddRowError(DataRow row, string category, string node, string item, string text) - { - try - { - // create XML document if not already created - if (String.IsNullOrEmpty(row.RowError)) - { - XElement x = new XElement(category); - row.RowError = x.ToString(); - } - // read out Errors as XML from RowError - XElement xml = XElement.Parse(row.RowError); - if (String.IsNullOrEmpty(node)) - return; - xml.Add(new XElement(node)); - if (String.IsNullOrEmpty(item)) - return; - xml.Add(new XElement(item, text)); - row.RowError = xml.ToString(); - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - } - - private void ImportLocations(DataTable dt) - { - if (dt != null) - { - int callsimported = dt.Rows.Count; - int callsupdated = 0; - int callsadded = 0; - foreach (DataRow row in dt.Rows) - { - DataRow oldrow = Locations.Rows.Find(row["Call"].ToString()); - if (oldrow != null) - { - // call found --> check for update - if ((DateTime)row["LastUpdated"] > (DateTime)oldrow["LastUpdated"]) - { - if (oldrow["Lat"] != row["Lat"]) - { - oldrow["Lat"] = row["Lat"]; - AddRowError(oldrow, "UPDATED", "Lat", "UpdatedValue", "OldValue:" + ((double)oldrow["Lat"]).ToString("F8", CultureInfo.InvariantCulture)); - } - if (oldrow["Lon"] != row["Lon"]) - { - oldrow["Lon"] = row["Lon"]; - AddRowError(oldrow, "UPDATED", "Lon", "UpdatedValue", "OldValue:" + ((double)oldrow["Lon"]).ToString("F8", CultureInfo.InvariantCulture)); - } - if (oldrow["Source"] != row["Source"]) - { - oldrow["Source"] = row["Source"]; - AddRowError(oldrow, "UPDATED", "Source", "UpdatedValue", "OldValue:" + oldrow["Source"].ToString()); - } - oldrow["LastUpdated"] = row["LastUpdated"]; - callsupdated++; - } - } - else - { - // add new row - AddRowError(row, LOCATIONSTATE.ADDED.ToString(), "", "", ""); - Locations.ImportRow(row); - callsadded++; - } - } - SayLocations("Import of " + dt.TableName + " finished: " + callsimported.ToString() + " calls imported, " + callsadded.ToString() + " calls added, " + callsupdated.ToString() + " calls updated."); - } - } - - private void Locations_Row_Changed(object sender, DataRowChangeEventArgs e) - { - - try - { - string call = e.Row["Call"].ToString(); - double lat = (double)e.Row["Lat"]; - double lon = (double)e.Row["Lon"]; - GEOSOURCE source = (GEOSOURCE)Enum.Parse(typeof(GEOSOURCE), e.Row["Source"].ToString()); - if (e.Action == DataRowAction.Add) - { - GMarkerGoogle gm = new GMarkerGoogle(new PointLatLng(lat, lon), (source == GEOSOURCE.FROMUSER) ? GMarkerGoogleType.green_small : GMarkerGoogleType.white_small); - gm.ToolTipText = call; - gm.ToolTipMode = MarkerTooltipMode.OnMouseOver; - gm.Tag = call; - Locationsoverlay.Markers.Add(gm); - } - else if (e.Action == DataRowAction.Change) - { - GMarkerGoogle gm = (GMarkerGoogle)Locationsoverlay.Markers.First(c => (string)c.Tag == call); - if (gm != null) - gm.Position = new PointLatLng(lat, lon); - } - else if (e.Action == DataRowAction.Delete) - { - GMarkerGoogle gm = (GMarkerGoogle)Locationsoverlay.Markers.First(c => (string)c.Tag == call); - if (gm != null) - Locationsoverlay.Markers.Remove(gm); - } - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - } - - private void btn_QRV_Import_WinTest_Click(object sender, EventArgs e) - { - DataTable dt = QRV.Clone(); - dt.Rows.Clear(); - OpenFileDialog Dlg = new OpenFileDialog(); - Dlg.DefaultExt = ".xdt"; - Dlg.Filter = "Win-Test database|*.xdt"; - Dlg.CheckFileExists = true; - if (Dlg.ShowDialog() == DialogResult.OK) - { - try - { - int qrv_ok = 0; - int qrv_err = 0; - using (StreamReader sr = new StreamReader(File.OpenRead(Dlg.FileName))) - { - while (!sr.EndOfStream) - { - string s = sr.ReadLine().Trim(); - string[] a = s.Split(); - DataRow row = dt.NewRow(); - row["Call"] = a[0]; - SayQRV("Importing call: " + a[0] + "..."); - DateTime lastupdated = DateTime.MinValue; - try - { - a[1] = a[1].Replace("[", "").Replace("]", ""); - lastupdated = DateTime.ParseExact(a[1], "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal); - lastupdated = lastupdated.ToUniversalTime(); - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - qrv_err++; - } - row["LastUpdated"] = lastupdated; - for (int i = 2; i < a.Length; i++) - { - a[i] = a[i].Trim(); - if (!String.IsNullOrEmpty(a[i])) - { - try - { - row[a[i] + "_AH"] = 0; - row[a[i] + "_AG"] = 0; - row[a[i] + "_P"] = 0; - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - qrv_err++; - } - } - } - dt.Rows.Add(row); - qrv_ok++; - } - } - QRV.Merge(dt); - SayQRV("Importing calls finished: " + qrv_ok + " calls, " + qrv_err + " error(s)."); - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - } - } - - private void tp_QRV_Enter(object sender, EventArgs e) - { - QRV.Rows.Clear(); - BAND[] bands = Bands.GetValuesExceptNoneAndAll(); - foreach (BAND band in bands) - { - if (band > BAND.B70M) - { - SayQRV("Importing band: " + Bands.GetStringValue(band) + "..."); - List qrvs = StationData.Database.QRVGetAll(band); - string band_ah = Bands.GetStringValue(band) + "_AH"; - string band_ag = Bands.GetStringValue(band) + "_AG"; - string band_p = Bands.GetStringValue(band) + "_P"; - if (qrvs != null) - { - foreach (QRVDesignator qrv in qrvs) - { - DataRow row = QRV.Rows.Find(new string[]{ qrv.Call, qrv.Loc}); - if (row == null) - { - row = QRV.NewRow(); - row["Call"] = qrv.Call; - row["Loc"] = qrv.Loc; - row["LastUpdated"] = DateTime.MinValue; - QRV.Rows.Add(row); - } - row[band_ah] = qrv.AntennaHeight; - row[band_ag] = qrv.AntennaGain; - row[band_p] = qrv.Power; - if ((DateTime)row["LastUpdated"] < qrv.LastUpdated) - row["LastUpdated"] = qrv.LastUpdated; - } - } - } - } - QRV.AcceptChanges(); - QRVView = new DataView(QRV); - BindingSource source = new BindingSource(); - source.DataSource = QRVView; - dgv_QRV.DataSource = source; - dgv_QRV.ShowRowErrors = true; - dgv_QRV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; - for (int i = 0; i < dgv_QRV.Columns.Count; i++) - { - if (i % 2 == 0) - dgv_QRV.Columns[i].DefaultCellStyle.BackColor = Color.LightGray; - } - SayQRV("Finished."); - } - - private void tb_QRV_Callsign_Filter_TextChanged(object sender, EventArgs e) - { - if (String.IsNullOrEmpty(tb_QRV_Callsign_Filter.Text)) - { - QRVView.RowFilter = "Call LIKE '*'"; - return; - } - string filter = tb_QRV_Callsign_Filter.Text; - if (!filter.EndsWith("*")) - filter = filter + "*"; - QRVView.RowFilter = "Call LIKE '" + filter + "'"; - - } - - private void btn_QRV_Sort_Click(object sender, EventArgs e) - { - // sort data table - DataTable sorted = QRV.Clone(); - DataRow[] rows = QRV.Select("", "Call ASC"); - if (rows.Length > 0) - { - foreach (DataRow row in rows) - sorted.ImportRow(row); - } - QRV.Clear(); - foreach (DataRow row in sorted.Rows) - QRV.ImportRow(row); - } - - private void btn_QRV_Save_Click(object sender, EventArgs e) - { - SayQRV("Saving changes to database..."); - try - { - foreach (DataRow row in QRV.Rows) - { - if ((row.RowState == DataRowState.Added) || (row.RowState == DataRowState.Modified)) - { - BAND[] bands = Bands.GetValuesExceptNoneAndAll(); - foreach (BAND band in bands) - { - if (band > BAND.B70M) - { - string band_ah = Bands.GetStringValue(band) + "_AH"; - string band_ag = Bands.GetStringValue(band) + "_AG"; - string band_p = Bands.GetStringValue(band) + "_P"; - QRVDesignator qrv = new QRVDesignator(); - qrv.Call = row["Call"].ToString().ToUpper(); - qrv.Loc = row["Loc"].ToString().ToUpper(); - qrv.Band = band; - if ((row[band_ah].GetType() != typeof(DBNull)) && (row[band_ah].GetType() != typeof(DBNull)) && (row[band_ah].GetType() != typeof(DBNull))) - { - qrv.AntennaHeight = (double)row[band_ah]; - qrv.AntennaGain = (double)row[band_ag]; - qrv.Power = (double)row[band_p]; - qrv.LastUpdated = (DateTime)row["LastUpdated"]; - SayQRV("Updating " + qrv.Call + ", " + qrv.Loc + "..."); - StationData.Database.QRVInsertOrUpdateIfNewer(qrv); - } - } - } - } - } - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - SayQRV("Finished."); - - } - - private void btn_QRV_Export_Click(object sender, EventArgs e) - { - string filename = Path.Combine(ExportDirectory, "qrv.json"); - SayQRV("Exporting database to " + filename); - string json = StationData.Database.QRVToJSON(); - SupportFunctions.WriteStringToFile(json, filename); - SayQRV("Finished."); - } - - private void QRV_Row_Changed(object sender, DataRowChangeEventArgs e) - { - - } - - private void dgv_QRV_CellValueChanged(object sender, DataGridViewCellEventArgs e) - { - // update LastUpdated column in case of changes - if (e.ColumnIndex < dgv_QRV.Columns.Count - 1) - { - dgv_QRV.Rows[e.RowIndex].Cells["LastUpdated"].Value = DateTime.UtcNow; - } - } - - private void dgv_QRV_CellEndEdit(object sender, DataGridViewCellEventArgs e) - { - } - - private void btn_QRV_Import_EDI_Click(object sender, EventArgs e) - { - - } - - private void cb_QRV_ChangedOnly_CheckedChanged(object sender, EventArgs e) - { - if (cb_QRV_ChangedOnly.Checked) - { - QRVView.RowStateFilter = DataViewRowState.ModifiedCurrent | DataViewRowState.Added; - } - else - { - QRVView.RowStateFilter = DataViewRowState.CurrentRows; - } - } - - private void btn_SFTP_GenerateFile_Click(object sender, EventArgs e) - { - // generates password file for SFTP and other - if (String.IsNullOrEmpty(tb_SFTP_URL.Text) || String.IsNullOrEmpty(tb_SFTP_User.Text) || String.IsNullOrEmpty(tb_SFTP_Password.Text)) - { - MessageBox.Show("Invalid entries for URL, user or password!"); - return; - } - SaveFileDialog Dlg = new SaveFileDialog(); - Dlg.FileName = "airscout.pwd"; - if (Dlg.ShowDialog() == DialogResult.OK) - { - using (StreamWriter sw = new StreamWriter(Dlg.FileName,false)) - { - string s = tb_SFTP_URL.Text + "\t" + Encryption.SimpleEncryptString(tb_SFTP_User.Text) + "\t" + Encryption.SimpleEncryptString(tb_SFTP_Password.Text); - sw.WriteLine(s); - } - } - } - - private void dgv_QRV_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) - { - if ((e.Value != null) && (e.Value != DBNull.Value)) - { - e.Value = e.Value.ToString().ToUpper(); - e.FormattingApplied = true; - } - } - - private void btn_Update_Airlines_Click(object sender, EventArgs e) - { - try - { - string json = ""; - using (var client = new WebClient()) - { - json = client.DownloadString(Properties.Settings.Default.Airlines_Update_URL); - } - JsonSerializerSettings settings = new JsonSerializerSettings(); - settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc; - settings.FloatFormatHandling = FloatFormatHandling.String; - settings.Formatting = Newtonsoft.Json.Formatting.Indented; - FR24Airlines fr24airlines = (FR24Airlines)JsonConvert.DeserializeObject(json, settings); - int count = 0; - int errors = 0; - foreach (FR24AirlineDesignator fr24ad in fr24airlines.rows) - { - if (!String.IsNullOrEmpty(fr24ad.Code) && !String.IsNullOrEmpty(fr24ad.ICAO)) - { - AirlineDesignator ad = new AirlineDesignator(fr24ad.ICAO, fr24ad.Code, fr24ad.Name, "[unknown]"); - int result = AircraftData.Database.AirlineInsertOrUpdateIfNewer(ad); - if (result >= 0) - count += result; - else - errors++; - } - } - Say("Airlines updated from " + Properties.Settings.Default.Airlines_Update_URL + ": " + count.ToString() + " updated, " + errors.ToString() + " error(s)."); - } - catch (Exception ex) - { - Say(ex.Message); - } - } - - private void btn_Update_Airports_Click(object sender, EventArgs e) - { - try - { - string json = ""; - using (var client = new WebClient()) - { - json = client.DownloadString(Properties.Settings.Default.Airports_Update_URL); - } - JsonSerializerSettings settings = new JsonSerializerSettings(); - settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc; - settings.FloatFormatHandling = FloatFormatHandling.String; - settings.Formatting = Newtonsoft.Json.Formatting.Indented; - FR24Airports fr24airports = (FR24Airports)JsonConvert.DeserializeObject(json, settings); - int count = 0; - int errors = 0; - foreach (FR24AirportDesignator fr24ad in fr24airports.rows) - { - if (!String.IsNullOrEmpty(fr24ad.icao) && !String.IsNullOrEmpty(fr24ad.iata)) - { - AirportDesignator ad = new AirportDesignator(fr24ad.icao, fr24ad.iata, fr24ad.lat, fr24ad.lon, fr24ad.alt, fr24ad.name.Replace("\t","").Replace("\r","").Replace("\n",""), fr24ad.country); - int result = AircraftData.Database.AirportInsertOrUpdateIfNewer(ad); - if (result >= 0) - count += result; - else - errors++; - } - } - Say("Airports updated from " + Properties.Settings.Default.Airports_Update_URL + ": " + count.ToString() + " updated, " + errors.ToString() + " error(s)."); - } - catch (Exception ex) - { - Say(ex.Message); - } - - } - - private void bw_AircraftUpdater_DoWork(object sender, DoWorkEventArgs e) - { - // Divide the earth surface into zones optimized for flights density - List world_zones = new List(new string[] { - "90, 70, -180, 180", - "70, 50, -180, -20", - "70, 50, -20, 0", - "70, 50, 0, 20", - "70, 50, 20, 40", - "70, 50, 40, 180", - "50, 30, -180, -120", - "50, 40, -120, -110", - "50, 40, -110, -100", - "40, 30, -120, -110", - "40, 30, -110, -100", - "50, 40, -100, -90", - "50, 40, -90, -80", - "40, 30, -100, -90", - "40, 30, -90, -80", - "50, 30, -80, -60", - "50, 30, -60, -40", - "50, 30, -40, -20", - "50, 30, -20, 0", - "50, 40, 0, 10", - "50, 40, 10, 20", - "40, 30, 0, 10", - "40, 30, 10, 20", - "50, 30, 20, 40", - "50, 30, 40, 60", - "50, 30, 60, 180", - "30, 10, -180, -100", - "30, 10, -100, -80", - "30, 10, -80, 100", - "30, 10, 100, 180", - "10, -10, -180, 180", - "-10, -30, -180, 180", - "-30, -90, -180, 180" - } ); - while (!bw_AircraftUpdater.CancellationPending) - { - try - { - List aircrafts = new List(); - int errors = 0; - foreach (string zone in world_zones) - { - string url = Properties.Settings.Default.Aircrafts_BaseURL + "&bounds=" + zone; - bw_AircraftUpdater.ReportProgress(0, "getting aircrafts from: " + url); - string json = ""; - using (var client = new WebClient()) - { - json = client.DownloadString(url); - } - // modify the JSON string to get a list of aircrafts - json = json.Substring(json.IndexOf(",") + 1); - json = json.Substring(json.IndexOf(",") + 1); - json = "{rows:{" + json; - json = json.Remove(json.IndexOf(",\"stats\"")); - json = json + "}}"; - JsonSerializerSettings settings = new JsonSerializerSettings(); - settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc; - settings.FloatFormatHandling = FloatFormatHandling.String; - settings.Formatting = Newtonsoft.Json.Formatting.Indented; - FR24Aircrafts fr24aircrafts = (FR24Aircrafts)JsonConvert.DeserializeObject(json, new FR24AircraftConverter()); - foreach (FR24AircraftDesignator fr24ad in fr24aircrafts.rows.Values) - { - try - { - AircraftDesignator ad = new AircraftDesignator(); - ad.Hex = fr24ad.hex; - ad.Call = fr24ad.call; - ad.Reg = fr24ad.reg; - ad.TypeCode = fr24ad.typecode; - ad.LastUpdated = DateTime.UtcNow; - if (PlaneInfoChecker.Check_Hex(ad.Hex) && PlaneInfoChecker.Check_Call(ad.Call) && PlaneInfoChecker.Check_Reg(ad.Reg) && PlaneInfoChecker.Check_Type(ad.TypeCode)) - aircrafts.Add(ad); - else - { -// Console.WriteLine("Invalid aircraft data: " + fr24ad.hex + "," + fr24ad.call + "," + fr24ad.reg + "," + fr24ad.typecode); - errors++; - } - } - catch (Exception ex) - { - bw_AircraftUpdater.ReportProgress(-1, ex.Message); - } - } - Thread.Sleep(1000); - } - bw_AircraftUpdater.ReportProgress(0, "Updating aircrafts..."); - // update aircraft data - AircraftData.Database.AircraftBulkInsertOrUpdateIfNewer(aircrafts); - bw_AircraftUpdater.ReportProgress(0, "Aircafts updated from " + Properties.Settings.Default.Aircrafts_BaseURL + ": " + aircrafts.Count.ToString() + " updated, " + errors.ToString() + " error(s)."); - int timeout = 0; - while (!bw_AircraftUpdater.CancellationPending && (timeout < 600)) - { - Thread.Sleep(1000); - timeout++; - } - } - catch (Exception ex) - { - bw_AircraftUpdater.ReportProgress(-1, ex.Message); - } - } - } - - private void bw_AircraftUpdater_ProgressChanged(object sender, ProgressChangedEventArgs e) - { - if (e.ProgressPercentage < 0) - Say((string)(e.UserState)); - else if (e.ProgressPercentage == 0) - Say((string)(e.UserState)); - ReportAircraftsStats(); - } - - private void bw_AircraftUpdater_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - btn_Update_Aicrafts_Start.Enabled = true; - btn_Update_Aircrafts_Stop.Enabled = false; - } - - private void ReportAircraftsStats() - { - lbl_Aircrafts_Total.Text = "total: " + AircraftData.Database.AircraftCount().ToString(); - lbl_Aircrafts_UnkownHex.Text = "unknown hex: " + AircraftData.Database.AircraftCountUnknownHex().ToString(); - lbl_Aircrafts_UnkownCall.Text = "unknown call: " + AircraftData.Database.AircraftCountUnknownCall().ToString(); - lbl_Aircrafts_UnkownType.Text = "unknown type: " + AircraftData.Database.AircraftCountUnknownType().ToString(); - } - - private void btn_Update_Aicrafts_Start_Click(object sender, EventArgs e) - { - bw_AircraftUpdater.RunWorkerAsync(); - while (!bw_AircraftUpdater.IsBusy) - Application.DoEvents(); - btn_Update_Aicrafts_Start.Enabled = false; - btn_Update_Aircrafts_Stop.Enabled = true; - } - - private void btn_Update_Aircrafts_Stop_Click(object sender, EventArgs e) - { - bw_AircraftUpdater.CancelAsync(); - } - - private void tp_Aircrafts_Enter(object sender, EventArgs e) - { - if (bw_AircraftUpdater.IsBusy) - { - btn_Update_Aicrafts_Start.Enabled = false; - btn_Update_Aircrafts_Stop.Enabled = true; - } - else - { - btn_Update_Aicrafts_Start.Enabled = true; - btn_Update_Aircrafts_Stop.Enabled = false; - } - - ReportAircraftsStats(); - } - - private void btn_StationDatabase_Export_Click(object sender, EventArgs e) - { - // export and upload station database - if (!SupportFunctions.ValidateDirectoryPath(Properties.Settings.Default.StationDatabase_Export_LocalDir)) - { - MessageBox.Show("Local Path is not valid: " + Properties.Settings.Default.StationDatabase_Export_LocalDir, " Export Station Database"); - return; - } - Say("Getting locations..."); - string locations = StationData.Database.LocationToJSON(); - string locationsfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "locations.json"); - string locationszipfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "locations.zip"); - SupportFunctions.WriteStringToFile(locations, locationsfile); - Say("Creating zip file..."); - ZIP.CompressFile(locationsfile, false, 60); - string qrvs = StationData.Database.QRVToJSON(); - Say("Getting qrv information..."); - string qrvfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "qrv.json"); - string qrvzipfile = Path.Combine(Properties.Settings.Default.StationDatabase_Export_LocalDir, "qrv.zip"); - SupportFunctions.WriteStringToFile(qrvs, qrvfile); - Say("Creating zip file..."); - ZIP.CompressFile(qrvfile, false, 60); - Say("Upload files..."); - SftpClient client = new SftpClient(Properties.Settings.Default.StationDatabase_Export_RemoteHost, Properties.Settings.Default.StationDatabase_Export_User, Properties.Settings.Default.StationDatabase_Export_Password); - try - { - client.Connect(); - using (FileStream file = new FileStream(locationszipfile, FileMode.Open)) - { - string uploadfile = Properties.Settings.Default.StationDatabase_Export_RemoteDir + "/" + "locations.zip"; - client.BufferSize = 4 * 1024; - client.UploadFile(file, uploadfile, true); - } - using (FileStream file = new FileStream(qrvzipfile, FileMode.Open)) - { - string uploadfile = Properties.Settings.Default.StationDatabase_Export_RemoteDir + "/" + "qrv.zip"; - client.BufferSize = 4 * 1024; - client.UploadFile(file, uploadfile, true); - } - - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } - Say("Station database exported and uploaded."); - } - - private void btn_AircraftDatabase_Export_Click(object sender, EventArgs e) - { - // export and upload aircraftdatabase - if (!SupportFunctions.ValidateDirectoryPath(Properties.Settings.Default.AircraftDatabase_Export_LocalDir)) - { - MessageBox.Show("Local Path is not valid: " + Properties.Settings.Default.AircraftDatabase_Export_LocalDir, " Export Aircraft Database"); - return; - } - Say("Getting aircraft registrations..."); - string ars = AircraftData.Database.AircraftRegistrationToJSON(); - string arsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftRegistrations.json"); - string arszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftRegistrations.zip"); - SupportFunctions.WriteStringToFile(ars, arsfile); - Say("Creating zip file..."); - ZIP.CompressFile(arsfile, false, 60); - Say("Getting aircrafts..."); - string acs = AircraftData.Database.AircraftToJSON(); - string acsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Aircrafts.json"); - string acszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Aircrafts.zip"); - SupportFunctions.WriteStringToFile(acs, acsfile); - Say("Creating zip file..."); - ZIP.CompressFile(acsfile, false, 60); - Say("Getting aircraft typess..."); - string ats = AircraftData.Database.AircraftTypeToJSON(); - string atsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftTypes.json"); - string atszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "AircraftTypes.zip"); - SupportFunctions.WriteStringToFile(ats, atsfile); - Say("Creating zip file..."); - ZIP.CompressFile(atsfile, false, 60); - Say("Getting airlines..."); - string als = AircraftData.Database.AirlineToJSON(); - string alsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airlines.json"); - string alszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airlines.zip"); - SupportFunctions.WriteStringToFile(als, alsfile); - Say("Creating zip file..."); - ZIP.CompressFile(alsfile, false, 60); - Say("Getting airports..."); - string aps = AircraftData.Database.AirportToJSON(); - string apsfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airports.json"); - string apszipfile = Path.Combine(Properties.Settings.Default.AircraftDatabase_Export_LocalDir, "Airports.zip"); - SupportFunctions.WriteStringToFile(aps, apsfile); - Say("Creating zip file..."); - ZIP.CompressFile(apsfile, false, 60); - Say("Upload files..."); - SftpClient client = new SftpClient(Properties.Settings.Default.AircraftDatabase_Export_RemoteHost, Properties.Settings.Default.AircraftDatabase_Export_User, Properties.Settings.Default.AircraftDatabase_Export_Password); - try - { - client.Connect(); - using (FileStream file = new FileStream(arszipfile, FileMode.Open)) - { - string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "AircraftRegistrations.zip"; - client.BufferSize = 4 * 1024; - client.UploadFile(file, uploadfile, true); - } - using (FileStream file = new FileStream(acszipfile, FileMode.Open)) - { - string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "Aircrafts.zip"; - client.BufferSize = 4 * 1024; - client.UploadFile(file, uploadfile, true); - } - using (FileStream file = new FileStream(atszipfile, FileMode.Open)) - { - string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "AircraftTypes.zip"; - client.BufferSize = 4 * 1024; - client.UploadFile(file, uploadfile, true); - } - using (FileStream file = new FileStream(alszipfile, FileMode.Open)) - { - string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "Airlines.zip"; - client.BufferSize = 4 * 1024; - client.UploadFile(file, uploadfile, true); - } - using (FileStream file = new FileStream(apszipfile, FileMode.Open)) - { - string uploadfile = Properties.Settings.Default.AircraftDatabase_Export_RemoteDir + "/" + "Airports.zip"; - client.BufferSize = 4 * 1024; - client.UploadFile(file, uploadfile, true); - } - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } - Say("Aircraft database exported and uploaded."); - } - - private void dgv_Locations_SelectionChanged(object sender, EventArgs e) - { - DataGridViewSelectedRowCollection rows = dgv_Locations.SelectedRows; - if (!IsMarkerDragging && (rows.Count > 0)) - { - try - { - // clear locations - Locationsoverlay.Clear(); - double minlat = double.MaxValue; - double maxlat = double.MinValue; - double minlon = double.MaxValue; - double maxlon = double.MinValue; - foreach (DataGridViewRow row in rows) - { - // get info - string call = row.Cells["Call"].Value.ToString(); - double lat = (double)row.Cells["Lat"].Value; - double lon = (double)row.Cells["Lon"].Value; - GEOSOURCE source = (GEOSOURCE)row.Cells["Source"].Value; - // add location - GMarkerGoogle gm = new GMarkerGoogle(new PointLatLng(lat, lon), (source == GEOSOURCE.FROMUSER) ? GMarkerGoogleType.green_small : GMarkerGoogleType.white_small); - gm.ToolTipText = call; - gm.ToolTipMode = MarkerTooltipMode.OnMouseOver; - gm.Tag = call; - Locationsoverlay.Markers.Add(gm); - if (minlat > lat) - minlat = lat; - if (maxlat < lat) - maxlat = lat; - if (minlon > lon) - minlon = lon; - if (maxlon < lon) - maxlon = lon; - } - // ensure that all location are visible - if (rows.Count > 1) - { - gm_Locations.SetZoomToFitRect(RectLatLng.FromLTRB(minlon, maxlat, maxlon, minlat)); - } - else - { - // set standard zoom if only 1 location - gm_Locations.Zoom = 15; - gm_Locations.Position = new PointLatLng(minlat,minlon); - } - } - catch (Exception ex) - { - // cannot set position -- > do nothing - } - } - } - - } - - public class FR24Airlines - { - public int version; - public FR24AirlineDesignator[] rows; - - public FR24Airlines() - { - version = 0; - rows = null; - } - } - - public class FR24AirlineDesignator - { - public string Name; - public string Code; - public string ICAO; - - public FR24AirlineDesignator() - { - Name = ""; - Code = ""; - ICAO = ""; - } - } - - public class FR24Airports - { - public int version; - public FR24AirportDesignator[] rows; - - public FR24Airports() - { - version = 0; - rows = null; - } - } - - public class FR24AirportDesignator - { - public string name; - public string iata; - public string icao; - public string city; - public double lat; - public double lon; - public string country; - public double alt; - public double size; - - public FR24AirportDesignator() - { - name = ""; - iata = ""; - icao = ""; - city = ""; - lat = 0; - lon = 0; - country = ""; - alt = 0; - size = 0; - } - } - - public class FR24Aircrafts - { - public Dictionary rows; - public FR24Aircrafts() - { - rows = null; - } - } - - public class FR24AircraftDesignator - { - public string hex; - public double lat; - public double lon; - public int track; - public int alt; - public int speed; - public string squawk; - public string radar; - public string typecode; - public string reg; - public long time; - public string src; - public string dst; - public string call; - public int dummy1; - public int dummy2; - public string flight; - public int dummy3; - public string airline; - - public FR24AircraftDesignator() - { - hex = ""; - lat = 0; - lon = 0; - track = 0; - alt = 0; - speed = 0; - squawk = ""; - radar = ""; - typecode = ""; - reg = ""; - time = 0; - src = ""; - dst = ""; - call = ""; - dummy1 = 0; - dummy2 = 0; - flight = ""; - dummy3 = 0; - airline = ""; - } - } - - class FR24AircraftConverter : JsonConverter - { - public override bool CanConvert(Type objectType) - { - return (objectType == typeof(FR24AircraftDesignator)); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - JArray array = JArray.Load(reader); - return new FR24AircraftDesignator - { - hex = (string)array[0], - lat = (double)array[1], - lon = (double)array[2], - track = (int)array[3], - alt = (int)array[4], - speed = (int)array[5], - squawk = (string)array[6], - radar = (string)array[7], - typecode = (string)array[8], - reg = (string)array[9], - time = (long)array[10], - src = (string)array[11], - dst = (string)array[12], - flight = (string)array[13], - dummy1 = (int)array[14], - dummy2 = (int)array[15], - call = (string)array[16], - dummy3 = (int)array[17], - airline = (string)array[18] - }; - } - - public override bool CanWrite - { - get { return false; } - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - throw new NotImplementedException(); - } - } - public enum DATABASEUPDATERSTARTOPTIONS - { - NONE = 0, - FIRSTRUN = 1, - RUNONCE = 2, - RUNPERIODICALLY = 3 - } - - public enum LOCATIONSTATE - { - UNKNOWN = -2, - ERROR = -1, - INFO = 0, - UPTODATE = 1, - UPDATED = 2, - LOCDIFF = 3, - ADDED = 4 - } -} diff --git a/AirScoutDatabaseManager/Properties/Settings.Designer.cs b/AirScoutDatabaseManager/Properties/Settings.Designer.cs deleted file mode 100644 index c155d71..0000000 --- a/AirScoutDatabaseManager/Properties/Settings.Designer.cs +++ /dev/null @@ -1,376 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Dieser Code wurde von einem Tool generiert. -// Laufzeitversion:4.0.30319.42000 -// -// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn -// der Code erneut generiert wird. -// -//------------------------------------------------------------------------------ - -namespace AirScoutDatabaseManager.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] - public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("-15")] - public double MinLon { - get { - return ((double)(this["MinLon"])); - } - set { - this["MinLon"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("30")] - public double MaxLon { - get { - return ((double)(this["MaxLon"])); - } - set { - this["MaxLon"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("35")] - public double MinLat { - get { - return ((double)(this["MinLat"])); - } - set { - this["MinLat"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("60")] - public double MaxLat { - get { - return ((double)(this["MaxLat"])); - } - set { - this["MaxLat"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("OpenStreetMap")] - public string Map_Provider { - get { - return ((string)(this["Map_Provider"])); - } - set { - this["Map_Provider"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("http://www.qrz.com/db/")] - public string QRZ_URL_Database { - get { - return ((string)(this["QRZ_URL_Database"])); - } - set { - this["QRZ_URL_Database"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("\\Log")] - public string Log_Directory { - get { - return ((string)(this["Log_Directory"])); - } - set { - this["Log_Directory"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("\\Database")] - public string Database_Directory { - get { - return ((string)(this["Database_Directory"])); - } - set { - this["Database_Directory"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("\\Tmp")] - public string Tmp_Directory { - get { - return ((string)(this["Tmp_Directory"])); - } - set { - this["Tmp_Directory"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("\\Export")] - public string Export_Directory { - get { - return ((string)(this["Export_Directory"])); - } - set { - this["Export_Directory"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("http://www.airscout.eu/downloads/ScoutBase/1/StationData/")] - public string Station_URL { - get { - return ((string)(this["Station_URL"])); - } - set { - this["Station_URL"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirSco" + - "ut")] - public string QRZ_URL_Login { - get { - return ((string)(this["QRZ_URL_Login"])); - } - set { - this["QRZ_URL_Login"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("http://xmldata.qrz.com/xml/current/")] - public string QRZ_URL_XMLData { - get { - return ((string)(this["QRZ_URL_XMLData"])); - } - set { - this["QRZ_URL_XMLData"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("www.airscout.eu")] - public string SFTP_URL { - get { - return ((string)(this["SFTP_URL"])); - } - set { - this["SFTP_URL"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("u45565180-airscout")] - public string SFTP_User { - get { - return ((string)(this["SFTP_User"])); - } - set { - this["SFTP_User"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("airscout")] - public string SFTP_Password { - get { - return ((string)(this["SFTP_Password"])); - } - set { - this["SFTP_Password"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://www.flightradar24.com/_json/airlines.php")] - public string Airlines_Update_URL { - get { - return ((string)(this["Airlines_Update_URL"])); - } - set { - this["Airlines_Update_URL"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://www.flightradar24.com/_json/airports2.php")] - public string Airports_Update_URL { - get { - return ((string)(this["Airports_Update_URL"])); - } - set { - this["Airports_Update_URL"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://data.flightradar24.com/zones/fcgi/feed.js?faa=1&mlat=1&flarm=0&adsb=1&gnd" + - "=0&air=1&vehicles=0&estimated=0&maxage=0&gliders=0&stats=1")] - public string Aircrafts_BaseURL { - get { - return ((string)(this["Aircrafts_BaseURL"])); - } - set { - this["Aircrafts_BaseURL"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Z:\\CSharp\\AirScout\\Database\\ScoutBase\\V1")] - public string StationDatabase_Export_LocalDir { - get { - return ((string)(this["StationDatabase_Export_LocalDir"])); - } - set { - this["StationDatabase_Export_LocalDir"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("/wsb4556518002/downloads/ScoutBase/1/StationData")] - public string StationDatabase_Export_RemoteDir { - get { - return ((string)(this["StationDatabase_Export_RemoteDir"])); - } - set { - this["StationDatabase_Export_RemoteDir"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("u45565180")] - public string StationDatabase_Export_User { - get { - return ((string)(this["StationDatabase_Export_User"])); - } - set { - this["StationDatabase_Export_User"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string StationDatabase_Export_Password { - get { - return ((string)(this["StationDatabase_Export_Password"])); - } - set { - this["StationDatabase_Export_Password"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("home208518495.1and1-/data.host")] - public string StationDatabase_Export_RemoteHost { - get { - return ((string)(this["StationDatabase_Export_RemoteHost"])); - } - set { - this["StationDatabase_Export_RemoteHost"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Z:\\CSharp\\AirScout\\Database\\AirScout\\V1")] - public string AircraftDatabase_Export_LocalDir { - get { - return ((string)(this["AircraftDatabase_Export_LocalDir"])); - } - set { - this["AircraftDatabase_Export_LocalDir"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string AircraftDatabase_Export_Password { - get { - return ((string)(this["AircraftDatabase_Export_Password"])); - } - set { - this["AircraftDatabase_Export_Password"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("/wsb4556518002/downloads/AirScout/1/AircraftData")] - public string AircraftDatabase_Export_RemoteDir { - get { - return ((string)(this["AircraftDatabase_Export_RemoteDir"])); - } - set { - this["AircraftDatabase_Export_RemoteDir"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("home208518495.1and1-/data.host")] - public string AircraftDatabase_Export_RemoteHost { - get { - return ((string)(this["AircraftDatabase_Export_RemoteHost"])); - } - set { - this["AircraftDatabase_Export_RemoteHost"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("u45565180")] - public string AircraftDatabase_Export_User { - get { - return ((string)(this["AircraftDatabase_Export_User"])); - } - set { - this["AircraftDatabase_Export_User"] = value; - } - } - } -} diff --git a/AirScoutDatabaseManager/Properties/Settings.settings b/AirScoutDatabaseManager/Properties/Settings.settings deleted file mode 100644 index c5e540f..0000000 --- a/AirScoutDatabaseManager/Properties/Settings.settings +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - -15 - - - 30 - - - 35 - - - 60 - - - OpenStreetMap - - - http://www.qrz.com/db/ - - - \Log - - - \Database - - - \Tmp - - - \Export - - - http://www.airscout.eu/downloads/ScoutBase/1/StationData/ - - - https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirScout - - - http://xmldata.qrz.com/xml/current/ - - - www.airscout.eu - - - u45565180-airscout - - - airscout - - - https://www.flightradar24.com/_json/airlines.php - - - https://www.flightradar24.com/_json/airports2.php - - - https://data.flightradar24.com/zones/fcgi/feed.js?faa=1&mlat=1&flarm=0&adsb=1&gnd=0&air=1&vehicles=0&estimated=0&maxage=0&gliders=0&stats=1 - - - Z:\CSharp\AirScout\Database\ScoutBase\V1 - - - /wsb4556518002/downloads/ScoutBase/1/StationData - - - u45565180 - - - - - - home208518495.1and1-/data.host - - - Z:\CSharp\AirScout\Database\AirScout\V1 - - - - - - /wsb4556518002/downloads/AirScout/1/AircraftData - - - home208518495.1and1-/data.host - - - u45565180 - - - \ No newline at end of file diff --git a/AirScoutDatabaseManager/StationDatabaseUpdater.cs b/AirScoutDatabaseManager/StationDatabaseUpdater.cs deleted file mode 100644 index b2536f2..0000000 --- a/AirScoutDatabaseManager/StationDatabaseUpdater.cs +++ /dev/null @@ -1,132 +0,0 @@ - -using System; -using System.ComponentModel; -using System.Windows.Forms; -using System.Net; -using System.IO; -using System.Threading; -using System.Diagnostics; -using System.Collections; -using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Globalization; -using System.Drawing; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using ScoutBase.Core; -using ScoutBase.Elevation; -using ScoutBase.Stations; - -namespace AirScoutDatabaseManager -{ - public partial class MainDlg : Form - { - - #region StationDatabaseUpdater - - private bool ReadLocationsFromURL(string url, string filename) - { - try - { - AutoDecompressionWebClient cl = new AutoDecompressionWebClient(); - DOWNLOADFILESTATUS status = cl.DownloadFileIfNewer(url, filename, true, true); - if ((status & DOWNLOADFILESTATUS.ERROR) > 0) - { - Log.WriteMessage("Error while downloading and extracting " + filename, LogLevel.Error); - return false; - } - else if (((status & DOWNLOADFILESTATUS.NEWER) > 0) || ((status & DOWNLOADFILESTATUS.NOTNEWER) > 0)) - { - string json = ""; - using (StreamReader sr = new StreamReader(filename)) - json = sr.ReadToEnd(); - List lds = StationData.Database.LocationFromJSON(json); - // chek for empty database - if (StationData.Database.LocationCount() == 0) - { - // do bulk insert - StationData.Database.LocationBulkInsert(lds); - } - else - { - // do update on single elements - foreach(LocationDesignator ld in lds) - { - StationData.Database.LocationInsertOrUpdateIfNewer(ld); - // return if cancellation is pending - if (bw_DatabaseUpdater.CancellationPending) - return false; - } - } - return true; - } - } - catch (Exception ex) - { - // Error loading database - Log.WriteMessage("[" + url + "]: " + ex.ToString(), LogLevel.Error); - } - return false; - } - - private void bw_DatabaseUpdater_DoWork(object sender, DoWorkEventArgs e) - { - Log.WriteMessage("Started."); - // name the thread for debugging - if (String.IsNullOrEmpty(Thread.CurrentThread.Name)) - Thread.CurrentThread.Name = nameof(bw_DatabaseUpdater); - bw_DatabaseUpdater.ReportProgress(0, "Updating database..."); - // get temp directory - string TmpDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Application.CompanyName, Application.ProductName, "Tmp").TrimEnd(Path.DirectorySeparatorChar); - if (!Directory.Exists(TmpDirectory)) - Directory.CreateDirectory(TmpDirectory); - int errors = 0; - try - { - Stopwatch st = new Stopwatch(); - st.Start(); - // update callsign database - bw_DatabaseUpdater.ReportProgress(0, "Updating callsigns from web database..."); - if (!ReadLocationsFromURL(Properties.Settings.Default.Station_URL + "locations.json", Path.Combine(TmpDirectory, "locations.json"))) - errors++; - st.Stop(); - Log.WriteMessage("Database update completed in " + st.Elapsed.ToString(@"hh\:mm\:ss") + ", errors: " + errors.ToString()); - - // sleep once to get all messages to main thread - Thread.Sleep(1000); - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - bw_DatabaseUpdater.ReportProgress(0, "Updating callsigns finished."); - Log.WriteMessage("Finished."); - } - - private void bw_DatabaseUpdater_ProgressChanged(object sender, ProgressChangedEventArgs e) - { - try - { - if (e.ProgressPercentage == 0) - { - // status message received - string msg = (string)e.UserState; - Say(msg); - } - } - catch (Exception ex) - { - Log.WriteMessage(ex.ToString(), LogLevel.Error); - } - } - - private void bw_DatabaseUpdater_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - tc_Main.Enabled = true; - } - - #endregion - - } -} diff --git a/AirScoutDatabaseManager/app.config b/AirScoutDatabaseManager/app.config deleted file mode 100644 index fa12240..0000000 --- a/AirScoutDatabaseManager/app.config +++ /dev/null @@ -1,107 +0,0 @@ - - - - -
- - - - - - -15 - - - 30 - - - 35 - - - 60 - - - OpenStreetMap - - - http://www.qrz.com/db/ - - - \Log - - - \Database - - - \Tmp - - - \Export - - - http://www.airscout.eu/downloads/ScoutBase/1/StationData/ - - - https://xmldata.qrz.com/xml/current/?username=dl2alf;password=271192;agent=AirScout - - - http://xmldata.qrz.com/xml/current/ - - - www.airscout.eu - - - u45565180-airscout - - - airscout - - - https://www.flightradar24.com/_json/airlines.php - - - https://www.flightradar24.com/_json/airports2.php - - - https://data.flightradar24.com/zones/fcgi/feed.js?faa=1&mlat=1&flarm=0&adsb=1&gnd=0&air=1&vehicles=0&estimated=0&maxage=0&gliders=0&stats=1 - - - Z:\CSharp\AirScout\Database\ScoutBase\V1 - - - /wsb4556518002/downloads/ScoutBase/1/StationData - - - u45565180 - - - - - - home208518495.1and1-/data.host - - - Z:\CSharp\AirScout\Database\AirScout\V1 - - - - - - /wsb4556518002/downloads/AirScout/1/AircraftData - - - home208518495.1and1-/data.host - - - u45565180 - - - - - - - - - - - - \ No newline at end of file diff --git a/AirScoutDatabaseManager/packages.config b/AirScoutDatabaseManager/packages.config deleted file mode 100644 index bd583a5..0000000 --- a/AirScoutDatabaseManager/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/AirScoutPlaneServer/AirScoutPlaneServer.csproj b/AirScoutPlaneServer/AirScoutPlaneServer.csproj index 9344b18..733ec7b 100644 --- a/AirScoutPlaneServer/AirScoutPlaneServer.csproj +++ b/AirScoutPlaneServer/AirScoutPlaneServer.csproj @@ -69,8 +69,8 @@ - - ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -158,12 +158,12 @@ - + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AirScoutViewClient/packages.config b/AirScoutViewClient/packages.config index 2bc3b5b..05a4de8 100644 --- a/AirScoutViewClient/packages.config +++ b/AirScoutViewClient/packages.config @@ -1,5 +1,6 @@  - + + \ No newline at end of file diff --git a/AquaGauge/AquaGauge.csproj b/AquaGauge/AquaGauge.csproj index 16c1924..c87483a 100644 --- a/AquaGauge/AquaGauge.csproj +++ b/AquaGauge/AquaGauge.csproj @@ -42,8 +42,8 @@ - - ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -69,12 +69,12 @@ - + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CATCheck/CATCheck.csproj b/CATCheck/CATCheck.csproj new file mode 100644 index 0000000..1e180ad --- /dev/null +++ b/CATCheck/CATCheck.csproj @@ -0,0 +1,571 @@ + + + + + Debug + AnyCPU + {0F0B27D0-7957-4CE0-9121-2C89746AF136} + WinExe + CATCheck + CATCheck + v4.0 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + + + AboutDlg.cs + + + + Form + + + FrequencyOfToneDlg.cs + + + + Form + + + MainDlg.cs + + + + + Form + + + SetFrequencyDlg.cs + + + + AboutDlg.cs + + + FrequencyOfToneDlg.cs + + + MainDlg.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SetFrequencyDlg.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + {c9291203-b5d0-4179-888d-04bc670b158f} + ScoutBase.CAT + + + {ee86e933-d883-4b18-80eb-0fba55ec67c6} + ScoutBase.Core + + + + + + + + + + + + \ No newline at end of file diff --git a/CATCheck/ComboBoxItem.cs b/CATCheck/ComboBoxItem.cs new file mode 100644 index 0000000..55af384 --- /dev/null +++ b/CATCheck/ComboBoxItem.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CATCheck +{ + public class ComboBoxItem + { + private string Text { get; set; } + public T Value { get; set; } + + public override string ToString() + { + return Text; + } + + public ComboBoxItem(string text, T value) + { + Text = text; + Value = value; + } + } +} diff --git a/CATCheck/FrequencyOfToneDlg.Designer.cs b/CATCheck/FrequencyOfToneDlg.Designer.cs new file mode 100644 index 0000000..642e684 --- /dev/null +++ b/CATCheck/FrequencyOfToneDlg.Designer.cs @@ -0,0 +1,130 @@ +namespace CATCheck +{ + partial class FrequencyOfToneDlg + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.ud_Tone = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.tb_Freq = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Tone)).BeginInit(); + this.SuspendLayout(); + // + // ud_Tone + // + this.ud_Tone.Location = new System.Drawing.Point(271, 12); + this.ud_Tone.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.ud_Tone.Name = "ud_Tone"; + this.ud_Tone.Size = new System.Drawing.Size(81, 20); + this.ud_Tone.TabIndex = 0; + this.ud_Tone.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.ud_Tone.ValueChanged += new System.EventHandler(this.ud_Tone_ValueChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(35, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(35, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Tone:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(358, 14); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(20, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Hz"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(35, 44); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(96, 13); + this.label3.TabIndex = 3; + this.label3.Text = "Frequency of tone:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(358, 44); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(20, 13); + this.label4.TabIndex = 4; + this.label4.Text = "Hz"; + // + // tb_Freq + // + this.tb_Freq.Location = new System.Drawing.Point(177, 41); + this.tb_Freq.Name = "tb_Freq"; + this.tb_Freq.ReadOnly = true; + this.tb_Freq.Size = new System.Drawing.Size(175, 20); + this.tb_Freq.TabIndex = 5; + // + // FrequencyOfToneDlg + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(390, 90); + this.Controls.Add(this.tb_Freq); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.ud_Tone); + this.Name = "FrequencyOfToneDlg"; + this.Text = "Calculate Frequency of Tone"; + ((System.ComponentModel.ISupportInitialize)(this.ud_Tone)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.NumericUpDown ud_Tone; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox tb_Freq; + } +} \ No newline at end of file diff --git a/CATCheck/FrequencyOfToneDlg.cs b/CATCheck/FrequencyOfToneDlg.cs new file mode 100644 index 0000000..7556962 --- /dev/null +++ b/CATCheck/FrequencyOfToneDlg.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using ScoutBase.CAT; + +namespace CATCheck +{ + public partial class FrequencyOfToneDlg : Form + { + Rig Rig = null; + + public FrequencyOfToneDlg(Rig rig) + { + Rig = rig; + + InitializeComponent(); + + if ((Rig != null) && Rig.Online) + { + ud_Tone.Value = Rig.Pitch; + } + } + + private void ud_Tone_ValueChanged(object sender, EventArgs e) + { + if ((Rig != null) && Rig.Online) + { + tb_Freq.Text = Rig.FrequencyOfTone((int)ud_Tone.Value).ToString(); + } + else + { + tb_Freq.Text = "Rig not avalibale"; + } + } + } +} diff --git a/CATCheck/FrequencyOfToneDlg.resx b/CATCheck/FrequencyOfToneDlg.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/CATCheck/FrequencyOfToneDlg.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CATCheck/Helpers.cs b/CATCheck/Helpers.cs new file mode 100644 index 0000000..3951938 --- /dev/null +++ b/CATCheck/Helpers.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Windows.Forms; + +namespace CATCheck +{ + public static class Helpers + { + public static string GetEnumDescription(this Enum value) + { + Type type = value.GetType(); + string name = Enum.GetName(type, value); + if (name != null) + { + FieldInfo field = type.GetField(name); + if (field != null) + { + DescriptionAttribute attr = + Attribute.GetCustomAttribute(field, + typeof(DescriptionAttribute)) as DescriptionAttribute; + if (attr != null) + { + return attr.Description; + } + } + } + return null; + } + + public static void BindToEnum(this ComboBox comboBox) + { + var enumType = typeof(TEnum); + + var fields = enumType.GetMembers() + .OfType() + .Where(p => p.MemberType == MemberTypes.Field) + .Where(p => p.IsLiteral) + .ToList(); + + var valuesByName = new Dictionary(); + + foreach (var field in fields) + { + var descriptionAttribute = field.GetCustomAttributes(typeof(DescriptionAttribute), false)[0] as DescriptionAttribute; + + var value = (int)field.GetValue(null); + var description = string.Empty; + + if (!string.IsNullOrEmpty(descriptionAttribute?.Description)) + { + description = descriptionAttribute.Description; + } + else + { + description = field.Name; + } + + valuesByName[description] = value; + } + + comboBox.DataSource = valuesByName.ToList(); + comboBox.DisplayMember = "Key"; + comboBox.ValueMember = "Value"; + } + } +} diff --git a/CATCheck/MainDlg.Designer.cs b/CATCheck/MainDlg.Designer.cs new file mode 100644 index 0000000..a47f3bb --- /dev/null +++ b/CATCheck/MainDlg.Designer.cs @@ -0,0 +1,1320 @@ +namespace CATCheck +{ + partial class MainDlg + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainDlg)); + this.tt_Set = new System.Windows.Forms.ToolTip(this.components); + this.mnu_Main = new System.Windows.Forms.MenuStrip(); + this.mni_Exit = new System.Windows.Forms.ToolStripMenuItem(); + this.mni_Commands = new System.Windows.Forms.ToolStripMenuItem(); + this.mni_ClearRIT = new System.Windows.Forms.ToolStripMenuItem(); + this.mni_FrequencyOfTone = new System.Windows.Forms.ToolStripMenuItem(); + this.mni_About = new System.Windows.Forms.ToolStripMenuItem(); + this.gb_Log = new System.Windows.Forms.GroupBox(); + this.lv_Messages = new System.Windows.Forms.ListView(); + this.ch_LogLevel = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.ch_TimeStamp = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.ch_Message = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.il_MessageStates = new System.Windows.Forms.ImageList(this.components); + this.lbl_Queue = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.cb_LogVerbosity = new System.Windows.Forms.ComboBox(); + this.btn_Log_Show = new System.Windows.Forms.Button(); + this.btn_Log_Clear = new System.Windows.Forms.Button(); + this.btn_Log_StartStop = new System.Windows.Forms.Button(); + this.gb_RigControl = new System.Windows.Forms.GroupBox(); + this.lbl_RIT_OFS = new System.Windows.Forms.Label(); + this.lbl_FreqB = new System.Windows.Forms.Label(); + this.lbl_FreqA = new System.Windows.Forms.Label(); + this.lbl_Freq = new System.Windows.Forms.Label(); + this.lbl_RIT_OFF = new System.Windows.Forms.Label(); + this.lbl_RIT_ON = new System.Windows.Forms.Label(); + this.lbl_SPLIT_OFF = new System.Windows.Forms.Label(); + this.lbl_SPLIT_ON = new System.Windows.Forms.Label(); + this.lbl_XIT_OFF = new System.Windows.Forms.Label(); + this.lbl_XIT_ON = new System.Windows.Forms.Label(); + this.lbl_VFO_Swap = new System.Windows.Forms.Label(); + this.lbl_VFO_Equal = new System.Windows.Forms.Label(); + this.lbl_VFO_B = new System.Windows.Forms.Label(); + this.lbl_VFO_A = new System.Windows.Forms.Label(); + this.lbl_VFO_AB = new System.Windows.Forms.Label(); + this.lbl_VFO_AA = new System.Windows.Forms.Label(); + this.lbl_VFO_BB = new System.Windows.Forms.Label(); + this.lbl_VFO_BA = new System.Windows.Forms.Label(); + this.lbl_TX = new System.Windows.Forms.Label(); + this.lbl_RX = new System.Windows.Forms.Label(); + this.lbl_FM = new System.Windows.Forms.Label(); + this.lbl_AM = new System.Windows.Forms.Label(); + this.lbl_DIG_L = new System.Windows.Forms.Label(); + this.lbl_DIG_U = new System.Windows.Forms.Label(); + this.lbl_CW_U = new System.Windows.Forms.Label(); + this.lbl_CW_L = new System.Windows.Forms.Label(); + this.lbl_SSB_L = new System.Windows.Forms.Label(); + this.lbl_SSB_U = new System.Windows.Forms.Label(); + this.tb_Freq = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.tb_Status = new System.Windows.Forms.TextBox(); + this.tb_FreqA = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.tb_FreqB = new System.Windows.Forms.TextBox(); + this.gb_RigSettings = new System.Windows.Forms.GroupBox(); + this.btn_Restart = new System.Windows.Forms.Button(); + this.ud_TimeoutMs = new System.Windows.Forms.NumericUpDown(); + this.label13 = new System.Windows.Forms.Label(); + this.ud_PollMs = new System.Windows.Forms.NumericUpDown(); + this.label12 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.cb_DTR = new System.Windows.Forms.ComboBox(); + this.label10 = new System.Windows.Forms.Label(); + this.cb_RTS = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); + this.cb_Stopbits = new System.Windows.Forms.ComboBox(); + this.label8 = new System.Windows.Forms.Label(); + this.cb_Parity = new System.Windows.Forms.ComboBox(); + this.label7 = new System.Windows.Forms.Label(); + this.cb_Databits = new System.Windows.Forms.ComboBox(); + this.label6 = new System.Windows.Forms.Label(); + this.cb_Baudrate = new System.Windows.Forms.ComboBox(); + this.label5 = new System.Windows.Forms.Label(); + this.cb_PortName = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.cb_Rig = new System.Windows.Forms.ComboBox(); + this.gb_RigSettingsFolder = new System.Windows.Forms.GroupBox(); + this.btn_RigDefinitions_Folder = new System.Windows.Forms.Button(); + this.tb_RigDefinitionsFolder = new System.Windows.Forms.TextBox(); + this.ti_Main = new System.Windows.Forms.Timer(this.components); + this.gb_COM = new System.Windows.Forms.GroupBox(); + this.lbl_RTS = new System.Windows.Forms.Label(); + this.lbl_DTR = new System.Windows.Forms.Label(); + this.lbl_CTS = new System.Windows.Forms.Label(); + this.lbl_DSR = new System.Windows.Forms.Label(); + this.mnu_Main.SuspendLayout(); + this.gb_Log.SuspendLayout(); + this.gb_RigControl.SuspendLayout(); + this.gb_RigSettings.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_TimeoutMs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ud_PollMs)).BeginInit(); + this.gb_RigSettingsFolder.SuspendLayout(); + this.gb_COM.SuspendLayout(); + this.SuspendLayout(); + // + // mnu_Main + // + this.mnu_Main.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mni_Exit, + this.mni_Commands, + this.mni_About}); + this.mnu_Main.Location = new System.Drawing.Point(0, 0); + this.mnu_Main.Name = "mnu_Main"; + this.mnu_Main.Size = new System.Drawing.Size(1008, 24); + this.mnu_Main.TabIndex = 10; + this.mnu_Main.Text = "menuStrip1"; + // + // mni_Exit + // + this.mni_Exit.Name = "mni_Exit"; + this.mni_Exit.Size = new System.Drawing.Size(38, 20); + this.mni_Exit.Text = "E&xit"; + this.mni_Exit.Click += new System.EventHandler(this.mni_Exit_Click); + // + // mni_Commands + // + this.mni_Commands.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mni_ClearRIT, + this.mni_FrequencyOfTone}); + this.mni_Commands.Name = "mni_Commands"; + this.mni_Commands.Size = new System.Drawing.Size(81, 20); + this.mni_Commands.Text = "Commands"; + // + // mni_ClearRIT + // + this.mni_ClearRIT.Name = "mni_ClearRIT"; + this.mni_ClearRIT.Size = new System.Drawing.Size(170, 22); + this.mni_ClearRIT.Text = "Clear RIT"; + this.mni_ClearRIT.Click += new System.EventHandler(this.mni_ClearRIT_Click); + // + // mni_FrequencyOfTone + // + this.mni_FrequencyOfTone.Name = "mni_FrequencyOfTone"; + this.mni_FrequencyOfTone.Size = new System.Drawing.Size(170, 22); + this.mni_FrequencyOfTone.Text = "Frequency of tone"; + this.mni_FrequencyOfTone.Click += new System.EventHandler(this.mni_FrequencyOfTone_Click); + // + // mni_About + // + this.mni_About.Name = "mni_About"; + this.mni_About.Size = new System.Drawing.Size(52, 20); + this.mni_About.Text = "&About"; + this.mni_About.Click += new System.EventHandler(this.mni_About_Click); + // + // gb_Log + // + this.gb_Log.Controls.Add(this.lv_Messages); + this.gb_Log.Controls.Add(this.lbl_Queue); + this.gb_Log.Controls.Add(this.label15); + this.gb_Log.Controls.Add(this.label1); + this.gb_Log.Controls.Add(this.cb_LogVerbosity); + this.gb_Log.Controls.Add(this.btn_Log_Show); + this.gb_Log.Controls.Add(this.btn_Log_Clear); + this.gb_Log.Controls.Add(this.btn_Log_StartStop); + this.gb_Log.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_Log.Location = new System.Drawing.Point(234, 191); + this.gb_Log.Name = "gb_Log"; + this.gb_Log.Size = new System.Drawing.Size(774, 358); + this.gb_Log.TabIndex = 14; + this.gb_Log.TabStop = false; + this.gb_Log.Text = "Log"; + // + // lv_Messages + // + this.lv_Messages.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.ch_LogLevel, + this.ch_TimeStamp, + this.ch_Message}); + this.lv_Messages.Dock = System.Windows.Forms.DockStyle.Top; + this.lv_Messages.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lv_Messages.FullRowSelect = true; + this.lv_Messages.GridLines = true; + this.lv_Messages.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.lv_Messages.HideSelection = false; + this.lv_Messages.Location = new System.Drawing.Point(3, 16); + this.lv_Messages.Name = "lv_Messages"; + this.lv_Messages.OwnerDraw = true; + this.lv_Messages.Size = new System.Drawing.Size(768, 280); + this.lv_Messages.SmallImageList = this.il_MessageStates; + this.lv_Messages.TabIndex = 13; + this.lv_Messages.UseCompatibleStateImageBehavior = false; + this.lv_Messages.View = System.Windows.Forms.View.Details; + this.lv_Messages.DrawColumnHeader += new System.Windows.Forms.DrawListViewColumnHeaderEventHandler(this.lv_Messages_DrawColumnHeader); + this.lv_Messages.DrawItem += new System.Windows.Forms.DrawListViewItemEventHandler(this.lv_Messages_DrawItem); + this.lv_Messages.DrawSubItem += new System.Windows.Forms.DrawListViewSubItemEventHandler(this.lv_Messages_DrawSubItem); + // + // ch_LogLevel + // + this.ch_LogLevel.Text = "L"; + this.ch_LogLevel.Width = 30; + // + // ch_TimeStamp + // + this.ch_TimeStamp.Text = "UTC"; + this.ch_TimeStamp.Width = 180; + // + // ch_Message + // + this.ch_Message.Text = "Message"; + this.ch_Message.Width = 540; + // + // il_MessageStates + // + this.il_MessageStates.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("il_MessageStates.ImageStream"))); + this.il_MessageStates.TransparentColor = System.Drawing.Color.Transparent; + this.il_MessageStates.Images.SetKeyName(0, "CAT.png"); + this.il_MessageStates.Images.SetKeyName(1, "eventlogInfo.ico"); + this.il_MessageStates.Images.SetKeyName(2, "eventlogWarn.ico"); + this.il_MessageStates.Images.SetKeyName(3, "eventlogError.ico"); + // + // lbl_Queue + // + this.lbl_Queue.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_Queue.Location = new System.Drawing.Point(291, 324); + this.lbl_Queue.Name = "lbl_Queue"; + this.lbl_Queue.Size = new System.Drawing.Size(61, 19); + this.lbl_Queue.TabIndex = 12; + this.lbl_Queue.Text = "0"; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label15.Location = new System.Drawing.Point(231, 325); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(54, 13); + this.label15.TabIndex = 11; + this.label15.Text = "In Queue:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(368, 325); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(74, 13); + this.label1.TabIndex = 10; + this.label1.Text = "Log Verbosity:"; + // + // cb_LogVerbosity + // + this.cb_LogVerbosity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_LogVerbosity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_LogVerbosity.FormattingEnabled = true; + this.cb_LogVerbosity.Location = new System.Drawing.Point(448, 322); + this.cb_LogVerbosity.Name = "cb_LogVerbosity"; + this.cb_LogVerbosity.Size = new System.Drawing.Size(121, 21); + this.cb_LogVerbosity.TabIndex = 7; + this.cb_LogVerbosity.SelectedIndexChanged += new System.EventHandler(this.cb_LogVerbosity_SelectedIndexChanged); + // + // btn_Log_Show + // + this.btn_Log_Show.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btn_Log_Show.Location = new System.Drawing.Point(608, 318); + this.btn_Log_Show.Name = "btn_Log_Show"; + this.btn_Log_Show.Size = new System.Drawing.Size(148, 27); + this.btn_Log_Show.TabIndex = 5; + this.btn_Log_Show.Text = "Show Log File in Explorer"; + this.btn_Log_Show.UseVisualStyleBackColor = true; + this.btn_Log_Show.Click += new System.EventHandler(this.btn_Log_Show_Click); + // + // btn_Log_Clear + // + this.btn_Log_Clear.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btn_Log_Clear.Location = new System.Drawing.Point(115, 318); + this.btn_Log_Clear.Name = "btn_Log_Clear"; + this.btn_Log_Clear.Size = new System.Drawing.Size(103, 27); + this.btn_Log_Clear.TabIndex = 4; + this.btn_Log_Clear.Text = "Clear Log"; + this.btn_Log_Clear.UseVisualStyleBackColor = true; + this.btn_Log_Clear.Click += new System.EventHandler(this.btn_Log_Clear_Click); + // + // btn_Log_StartStop + // + this.btn_Log_StartStop.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btn_Log_StartStop.Location = new System.Drawing.Point(6, 318); + this.btn_Log_StartStop.Name = "btn_Log_StartStop"; + this.btn_Log_StartStop.Size = new System.Drawing.Size(103, 27); + this.btn_Log_StartStop.TabIndex = 3; + this.btn_Log_StartStop.Text = "Stop Log"; + this.btn_Log_StartStop.UseVisualStyleBackColor = true; + this.btn_Log_StartStop.Click += new System.EventHandler(this.btn_Log_StartStop_Click); + // + // gb_RigControl + // + this.gb_RigControl.Controls.Add(this.lbl_RIT_OFS); + this.gb_RigControl.Controls.Add(this.lbl_FreqB); + this.gb_RigControl.Controls.Add(this.lbl_FreqA); + this.gb_RigControl.Controls.Add(this.lbl_Freq); + this.gb_RigControl.Controls.Add(this.lbl_RIT_OFF); + this.gb_RigControl.Controls.Add(this.lbl_RIT_ON); + this.gb_RigControl.Controls.Add(this.lbl_SPLIT_OFF); + this.gb_RigControl.Controls.Add(this.lbl_SPLIT_ON); + this.gb_RigControl.Controls.Add(this.lbl_XIT_OFF); + this.gb_RigControl.Controls.Add(this.lbl_XIT_ON); + this.gb_RigControl.Controls.Add(this.lbl_VFO_Swap); + this.gb_RigControl.Controls.Add(this.lbl_VFO_Equal); + this.gb_RigControl.Controls.Add(this.lbl_VFO_B); + this.gb_RigControl.Controls.Add(this.lbl_VFO_A); + this.gb_RigControl.Controls.Add(this.lbl_VFO_AB); + this.gb_RigControl.Controls.Add(this.lbl_VFO_AA); + this.gb_RigControl.Controls.Add(this.lbl_VFO_BB); + this.gb_RigControl.Controls.Add(this.lbl_VFO_BA); + this.gb_RigControl.Controls.Add(this.lbl_TX); + this.gb_RigControl.Controls.Add(this.lbl_RX); + this.gb_RigControl.Controls.Add(this.lbl_FM); + this.gb_RigControl.Controls.Add(this.lbl_AM); + this.gb_RigControl.Controls.Add(this.lbl_DIG_L); + this.gb_RigControl.Controls.Add(this.lbl_DIG_U); + this.gb_RigControl.Controls.Add(this.lbl_CW_U); + this.gb_RigControl.Controls.Add(this.lbl_CW_L); + this.gb_RigControl.Controls.Add(this.lbl_SSB_L); + this.gb_RigControl.Controls.Add(this.lbl_SSB_U); + this.gb_RigControl.Controls.Add(this.tb_Freq); + this.gb_RigControl.Controls.Add(this.label14); + this.gb_RigControl.Controls.Add(this.tb_Status); + this.gb_RigControl.Controls.Add(this.tb_FreqA); + this.gb_RigControl.Controls.Add(this.label3); + this.gb_RigControl.Controls.Add(this.label2); + this.gb_RigControl.Controls.Add(this.tb_FreqB); + this.gb_RigControl.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_RigControl.Location = new System.Drawing.Point(0, 77); + this.gb_RigControl.Name = "gb_RigControl"; + this.gb_RigControl.Size = new System.Drawing.Size(938, 114); + this.gb_RigControl.TabIndex = 13; + this.gb_RigControl.TabStop = false; + this.gb_RigControl.Text = "Rig Control"; + // + // lbl_RIT_OFS + // + this.lbl_RIT_OFS.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_RIT_OFS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_RIT_OFS.ForeColor = System.Drawing.Color.Gray; + this.lbl_RIT_OFS.Location = new System.Drawing.Point(792, 84); + this.lbl_RIT_OFS.Name = "lbl_RIT_OFS"; + this.lbl_RIT_OFS.Size = new System.Drawing.Size(65, 20); + this.lbl_RIT_OFS.TabIndex = 46; + this.lbl_RIT_OFS.Text = "0.00"; + this.lbl_RIT_OFS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbl_FreqB + // + this.lbl_FreqB.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_FreqB.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_FreqB.ForeColor = System.Drawing.Color.Gray; + this.lbl_FreqB.Location = new System.Drawing.Point(462, 79); + this.lbl_FreqB.Name = "lbl_FreqB"; + this.lbl_FreqB.Size = new System.Drawing.Size(45, 25); + this.lbl_FreqB.TabIndex = 45; + this.lbl_FreqB.Text = "Set"; + this.lbl_FreqB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_FreqB.Click += new System.EventHandler(this.lbl_FreqB_Click); + // + // lbl_FreqA + // + this.lbl_FreqA.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_FreqA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_FreqA.ForeColor = System.Drawing.Color.Gray; + this.lbl_FreqA.Location = new System.Drawing.Point(462, 47); + this.lbl_FreqA.Name = "lbl_FreqA"; + this.lbl_FreqA.Size = new System.Drawing.Size(45, 25); + this.lbl_FreqA.TabIndex = 44; + this.lbl_FreqA.Text = "Set"; + this.lbl_FreqA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_FreqA.Click += new System.EventHandler(this.lbl_FreqA_Click); + // + // lbl_Freq + // + this.lbl_Freq.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_Freq.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_Freq.ForeColor = System.Drawing.Color.Gray; + this.lbl_Freq.Location = new System.Drawing.Point(462, 15); + this.lbl_Freq.Name = "lbl_Freq"; + this.lbl_Freq.Size = new System.Drawing.Size(45, 25); + this.lbl_Freq.TabIndex = 43; + this.lbl_Freq.Text = "Set"; + this.lbl_Freq.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_Freq.Click += new System.EventHandler(this.lbl_Freq_Click); + // + // lbl_RIT_OFF + // + this.lbl_RIT_OFF.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_RIT_OFF.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_RIT_OFF.ForeColor = System.Drawing.Color.Gray; + this.lbl_RIT_OFF.Location = new System.Drawing.Point(863, 61); + this.lbl_RIT_OFF.Name = "lbl_RIT_OFF"; + this.lbl_RIT_OFF.Size = new System.Drawing.Size(65, 20); + this.lbl_RIT_OFF.TabIndex = 42; + this.lbl_RIT_OFF.Text = "RIT OFF"; + this.lbl_RIT_OFF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_RIT_OFF.Click += new System.EventHandler(this.lbl_RIT_OFF_Click); + // + // lbl_RIT_ON + // + this.lbl_RIT_ON.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_RIT_ON.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_RIT_ON.ForeColor = System.Drawing.Color.Gray; + this.lbl_RIT_ON.Location = new System.Drawing.Point(792, 61); + this.lbl_RIT_ON.Name = "lbl_RIT_ON"; + this.lbl_RIT_ON.Size = new System.Drawing.Size(65, 20); + this.lbl_RIT_ON.TabIndex = 41; + this.lbl_RIT_ON.Text = "RIT ON"; + this.lbl_RIT_ON.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_RIT_ON.Click += new System.EventHandler(this.lbl_RIT_ON_Click); + // + // lbl_SPLIT_OFF + // + this.lbl_SPLIT_OFF.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_SPLIT_OFF.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_SPLIT_OFF.ForeColor = System.Drawing.Color.Gray; + this.lbl_SPLIT_OFF.Location = new System.Drawing.Point(863, 15); + this.lbl_SPLIT_OFF.Name = "lbl_SPLIT_OFF"; + this.lbl_SPLIT_OFF.Size = new System.Drawing.Size(65, 20); + this.lbl_SPLIT_OFF.TabIndex = 40; + this.lbl_SPLIT_OFF.Text = "SPLIT OFF"; + this.lbl_SPLIT_OFF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_SPLIT_OFF.Click += new System.EventHandler(this.lbl_SPLIT_OFF_Click); + // + // lbl_SPLIT_ON + // + this.lbl_SPLIT_ON.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_SPLIT_ON.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_SPLIT_ON.ForeColor = System.Drawing.Color.Gray; + this.lbl_SPLIT_ON.Location = new System.Drawing.Point(792, 15); + this.lbl_SPLIT_ON.Name = "lbl_SPLIT_ON"; + this.lbl_SPLIT_ON.Size = new System.Drawing.Size(65, 20); + this.lbl_SPLIT_ON.TabIndex = 39; + this.lbl_SPLIT_ON.Text = "SPLIT ON"; + this.lbl_SPLIT_ON.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_SPLIT_ON.Click += new System.EventHandler(this.lbl_SPLIT_ON_Click); + // + // lbl_XIT_OFF + // + this.lbl_XIT_OFF.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_XIT_OFF.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_XIT_OFF.ForeColor = System.Drawing.Color.Gray; + this.lbl_XIT_OFF.Location = new System.Drawing.Point(863, 38); + this.lbl_XIT_OFF.Name = "lbl_XIT_OFF"; + this.lbl_XIT_OFF.Size = new System.Drawing.Size(65, 20); + this.lbl_XIT_OFF.TabIndex = 38; + this.lbl_XIT_OFF.Text = "XIT OFF"; + this.lbl_XIT_OFF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_XIT_OFF.Click += new System.EventHandler(this.lbl_XIT_OFF_Click); + // + // lbl_XIT_ON + // + this.lbl_XIT_ON.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_XIT_ON.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_XIT_ON.ForeColor = System.Drawing.Color.Gray; + this.lbl_XIT_ON.Location = new System.Drawing.Point(792, 38); + this.lbl_XIT_ON.Name = "lbl_XIT_ON"; + this.lbl_XIT_ON.Size = new System.Drawing.Size(65, 20); + this.lbl_XIT_ON.TabIndex = 37; + this.lbl_XIT_ON.Text = "XIT ON"; + this.lbl_XIT_ON.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_XIT_ON.Click += new System.EventHandler(this.lbl_XIT_ON_Click); + // + // lbl_VFO_Swap + // + this.lbl_VFO_Swap.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_Swap.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_Swap.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_Swap.Location = new System.Drawing.Point(721, 84); + this.lbl_VFO_Swap.Name = "lbl_VFO_Swap"; + this.lbl_VFO_Swap.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_Swap.TabIndex = 36; + this.lbl_VFO_Swap.Text = "A <> B"; + this.lbl_VFO_Swap.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_Swap.Click += new System.EventHandler(this.lbl_VFO_Swap_Click); + // + // lbl_VFO_Equal + // + this.lbl_VFO_Equal.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_Equal.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_Equal.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_Equal.Location = new System.Drawing.Point(660, 84); + this.lbl_VFO_Equal.Name = "lbl_VFO_Equal"; + this.lbl_VFO_Equal.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_Equal.TabIndex = 35; + this.lbl_VFO_Equal.Text = "A = B"; + this.lbl_VFO_Equal.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_Equal.Click += new System.EventHandler(this.lbl_VFO_Equal_Click); + // + // lbl_VFO_B + // + this.lbl_VFO_B.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_B.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_B.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_B.Location = new System.Drawing.Point(721, 61); + this.lbl_VFO_B.Name = "lbl_VFO_B"; + this.lbl_VFO_B.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_B.TabIndex = 34; + this.lbl_VFO_B.Text = "VFO B"; + this.lbl_VFO_B.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_B.Click += new System.EventHandler(this.lbl_VFO_B_Click); + // + // lbl_VFO_A + // + this.lbl_VFO_A.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_A.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_A.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_A.Location = new System.Drawing.Point(660, 61); + this.lbl_VFO_A.Name = "lbl_VFO_A"; + this.lbl_VFO_A.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_A.TabIndex = 33; + this.lbl_VFO_A.Text = "VFO A"; + this.lbl_VFO_A.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_A.Click += new System.EventHandler(this.lbl_VFO_A_Click); + // + // lbl_VFO_AB + // + this.lbl_VFO_AB.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_AB.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_AB.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_AB.Location = new System.Drawing.Point(721, 15); + this.lbl_VFO_AB.Name = "lbl_VFO_AB"; + this.lbl_VFO_AB.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_AB.TabIndex = 32; + this.lbl_VFO_AB.Text = "VFA AB"; + this.lbl_VFO_AB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_AB.Click += new System.EventHandler(this.lbl_VFO_AB_Click); + // + // lbl_VFO_AA + // + this.lbl_VFO_AA.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_AA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_AA.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_AA.Location = new System.Drawing.Point(660, 15); + this.lbl_VFO_AA.Name = "lbl_VFO_AA"; + this.lbl_VFO_AA.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_AA.TabIndex = 31; + this.lbl_VFO_AA.Text = "VFO AA"; + this.lbl_VFO_AA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_AA.Click += new System.EventHandler(this.lbl_VFO_AA_Click); + // + // lbl_VFO_BB + // + this.lbl_VFO_BB.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_BB.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_BB.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_BB.Location = new System.Drawing.Point(721, 38); + this.lbl_VFO_BB.Name = "lbl_VFO_BB"; + this.lbl_VFO_BB.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_BB.TabIndex = 30; + this.lbl_VFO_BB.Text = "VFO BB"; + this.lbl_VFO_BB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_BB.Click += new System.EventHandler(this.lbl_VFO_BB_Click); + // + // lbl_VFO_BA + // + this.lbl_VFO_BA.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_VFO_BA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_VFO_BA.ForeColor = System.Drawing.Color.Gray; + this.lbl_VFO_BA.Location = new System.Drawing.Point(660, 38); + this.lbl_VFO_BA.Name = "lbl_VFO_BA"; + this.lbl_VFO_BA.Size = new System.Drawing.Size(55, 20); + this.lbl_VFO_BA.TabIndex = 29; + this.lbl_VFO_BA.Text = "VFO BA"; + this.lbl_VFO_BA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_VFO_BA.Click += new System.EventHandler(this.lbl_VFO_BA_Click); + // + // lbl_TX + // + this.lbl_TX.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_TX.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_TX.ForeColor = System.Drawing.Color.Gray; + this.lbl_TX.Location = new System.Drawing.Point(110, 58); + this.lbl_TX.Name = "lbl_TX"; + this.lbl_TX.Size = new System.Drawing.Size(84, 39); + this.lbl_TX.TabIndex = 28; + this.lbl_TX.Text = "TX"; + this.lbl_TX.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_TX.Click += new System.EventHandler(this.lbl_TX_Click); + // + // lbl_RX + // + this.lbl_RX.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_RX.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_RX.ForeColor = System.Drawing.Color.Gray; + this.lbl_RX.Location = new System.Drawing.Point(12, 58); + this.lbl_RX.Name = "lbl_RX"; + this.lbl_RX.Size = new System.Drawing.Size(84, 39); + this.lbl_RX.TabIndex = 27; + this.lbl_RX.Text = "RX"; + this.lbl_RX.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_RX.Click += new System.EventHandler(this.lbl_RX_Click); + // + // lbl_FM + // + this.lbl_FM.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_FM.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_FM.ForeColor = System.Drawing.Color.Gray; + this.lbl_FM.Location = new System.Drawing.Point(586, 84); + this.lbl_FM.Name = "lbl_FM"; + this.lbl_FM.Size = new System.Drawing.Size(55, 20); + this.lbl_FM.TabIndex = 26; + this.lbl_FM.Text = "FM"; + this.lbl_FM.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_FM.Click += new System.EventHandler(this.lbl_FM_Click); + // + // lbl_AM + // + this.lbl_AM.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_AM.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_AM.ForeColor = System.Drawing.Color.Gray; + this.lbl_AM.Location = new System.Drawing.Point(525, 84); + this.lbl_AM.Name = "lbl_AM"; + this.lbl_AM.Size = new System.Drawing.Size(55, 20); + this.lbl_AM.TabIndex = 25; + this.lbl_AM.Text = "AM"; + this.lbl_AM.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_AM.Click += new System.EventHandler(this.lbl_AM_Click); + // + // lbl_DIG_L + // + this.lbl_DIG_L.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_DIG_L.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_DIG_L.ForeColor = System.Drawing.Color.Gray; + this.lbl_DIG_L.Location = new System.Drawing.Point(586, 61); + this.lbl_DIG_L.Name = "lbl_DIG_L"; + this.lbl_DIG_L.Size = new System.Drawing.Size(55, 20); + this.lbl_DIG_L.TabIndex = 24; + this.lbl_DIG_L.Text = "DATA_R"; + this.lbl_DIG_L.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_DIG_L.Click += new System.EventHandler(this.lbl_DIG_L_Click); + // + // lbl_DIG_U + // + this.lbl_DIG_U.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_DIG_U.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_DIG_U.ForeColor = System.Drawing.Color.Gray; + this.lbl_DIG_U.Location = new System.Drawing.Point(525, 61); + this.lbl_DIG_U.Name = "lbl_DIG_U"; + this.lbl_DIG_U.Size = new System.Drawing.Size(55, 20); + this.lbl_DIG_U.TabIndex = 23; + this.lbl_DIG_U.Text = "DATA"; + this.lbl_DIG_U.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_DIG_U.Click += new System.EventHandler(this.lbl_DIG_U_Click); + // + // lbl_CW_U + // + this.lbl_CW_U.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_CW_U.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_CW_U.ForeColor = System.Drawing.Color.Gray; + this.lbl_CW_U.Location = new System.Drawing.Point(586, 15); + this.lbl_CW_U.Name = "lbl_CW_U"; + this.lbl_CW_U.Size = new System.Drawing.Size(55, 20); + this.lbl_CW_U.TabIndex = 22; + this.lbl_CW_U.Text = "CW-R"; + this.lbl_CW_U.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_CW_U.Click += new System.EventHandler(this.lbl_CW_U_Click); + // + // lbl_CW_L + // + this.lbl_CW_L.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_CW_L.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_CW_L.ForeColor = System.Drawing.Color.Gray; + this.lbl_CW_L.Location = new System.Drawing.Point(525, 15); + this.lbl_CW_L.Name = "lbl_CW_L"; + this.lbl_CW_L.Size = new System.Drawing.Size(55, 20); + this.lbl_CW_L.TabIndex = 21; + this.lbl_CW_L.Text = "CW"; + this.lbl_CW_L.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_CW_L.Click += new System.EventHandler(this.lbl_CW_L_Click); + // + // lbl_SSB_L + // + this.lbl_SSB_L.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_SSB_L.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_SSB_L.ForeColor = System.Drawing.Color.Gray; + this.lbl_SSB_L.Location = new System.Drawing.Point(586, 38); + this.lbl_SSB_L.Name = "lbl_SSB_L"; + this.lbl_SSB_L.Size = new System.Drawing.Size(55, 20); + this.lbl_SSB_L.TabIndex = 20; + this.lbl_SSB_L.Text = "LSB"; + this.lbl_SSB_L.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_SSB_L.Click += new System.EventHandler(this.lbl_SSB_L_Click); + // + // lbl_SSB_U + // + this.lbl_SSB_U.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.lbl_SSB_U.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_SSB_U.ForeColor = System.Drawing.Color.Gray; + this.lbl_SSB_U.Location = new System.Drawing.Point(525, 38); + this.lbl_SSB_U.Name = "lbl_SSB_U"; + this.lbl_SSB_U.Size = new System.Drawing.Size(55, 20); + this.lbl_SSB_U.TabIndex = 19; + this.lbl_SSB_U.Text = "USB"; + this.lbl_SSB_U.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_SSB_U.Click += new System.EventHandler(this.lbl_SSB_U_Click); + // + // tb_Freq + // + this.tb_Freq.BackColor = System.Drawing.Color.Gray; + this.tb_Freq.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Freq.ForeColor = System.Drawing.Color.Chartreuse; + this.tb_Freq.Location = new System.Drawing.Point(254, 14); + this.tb_Freq.Name = "tb_Freq"; + this.tb_Freq.ReadOnly = true; + this.tb_Freq.Size = new System.Drawing.Size(186, 26); + this.tb_Freq.TabIndex = 6; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label14.Location = new System.Drawing.Point(204, 20); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(31, 13); + this.label14.TabIndex = 7; + this.label14.Text = "Freq:"; + // + // tb_Status + // + this.tb_Status.BackColor = System.Drawing.Color.AntiqueWhite; + this.tb_Status.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_Status.Location = new System.Drawing.Point(12, 20); + this.tb_Status.Name = "tb_Status"; + this.tb_Status.Size = new System.Drawing.Size(182, 26); + this.tb_Status.TabIndex = 0; + // + // tb_FreqA + // + this.tb_FreqA.BackColor = System.Drawing.Color.Gray; + this.tb_FreqA.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_FreqA.ForeColor = System.Drawing.Color.Chartreuse; + this.tb_FreqA.Location = new System.Drawing.Point(254, 46); + this.tb_FreqA.Name = "tb_FreqA"; + this.tb_FreqA.ReadOnly = true; + this.tb_FreqA.Size = new System.Drawing.Size(186, 26); + this.tb_FreqA.TabIndex = 2; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(204, 83); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(41, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Freq B:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(204, 50); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(41, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Freq A:"; + // + // tb_FreqB + // + this.tb_FreqB.BackColor = System.Drawing.Color.Gray; + this.tb_FreqB.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_FreqB.ForeColor = System.Drawing.Color.Chartreuse; + this.tb_FreqB.Location = new System.Drawing.Point(254, 78); + this.tb_FreqB.Name = "tb_FreqB"; + this.tb_FreqB.ReadOnly = true; + this.tb_FreqB.Size = new System.Drawing.Size(186, 26); + this.tb_FreqB.TabIndex = 4; + // + // gb_RigSettings + // + this.gb_RigSettings.Controls.Add(this.btn_Restart); + this.gb_RigSettings.Controls.Add(this.ud_TimeoutMs); + this.gb_RigSettings.Controls.Add(this.label13); + this.gb_RigSettings.Controls.Add(this.ud_PollMs); + this.gb_RigSettings.Controls.Add(this.label12); + this.gb_RigSettings.Controls.Add(this.label11); + this.gb_RigSettings.Controls.Add(this.cb_DTR); + this.gb_RigSettings.Controls.Add(this.label10); + this.gb_RigSettings.Controls.Add(this.cb_RTS); + this.gb_RigSettings.Controls.Add(this.label9); + this.gb_RigSettings.Controls.Add(this.cb_Stopbits); + this.gb_RigSettings.Controls.Add(this.label8); + this.gb_RigSettings.Controls.Add(this.cb_Parity); + this.gb_RigSettings.Controls.Add(this.label7); + this.gb_RigSettings.Controls.Add(this.cb_Databits); + this.gb_RigSettings.Controls.Add(this.label6); + this.gb_RigSettings.Controls.Add(this.cb_Baudrate); + this.gb_RigSettings.Controls.Add(this.label5); + this.gb_RigSettings.Controls.Add(this.cb_PortName); + this.gb_RigSettings.Controls.Add(this.label4); + this.gb_RigSettings.Controls.Add(this.cb_Rig); + this.gb_RigSettings.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_RigSettings.Location = new System.Drawing.Point(18, 191); + this.gb_RigSettings.Name = "gb_RigSettings"; + this.gb_RigSettings.Size = new System.Drawing.Size(210, 358); + this.gb_RigSettings.TabIndex = 12; + this.gb_RigSettings.TabStop = false; + this.gb_RigSettings.Text = "Rig Settings"; + // + // btn_Restart + // + this.btn_Restart.BackColor = System.Drawing.Color.PaleGreen; + this.btn_Restart.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btn_Restart.Location = new System.Drawing.Point(12, 318); + this.btn_Restart.Name = "btn_Restart"; + this.btn_Restart.Size = new System.Drawing.Size(182, 27); + this.btn_Restart.TabIndex = 8; + this.btn_Restart.Text = "Restart Rig"; + this.btn_Restart.UseVisualStyleBackColor = false; + this.btn_Restart.Click += new System.EventHandler(this.btn_Restart_Click); + // + // ud_TimeoutMs + // + this.ud_TimeoutMs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_TimeoutMs.Increment = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_TimeoutMs.Location = new System.Drawing.Point(125, 276); + this.ud_TimeoutMs.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.ud_TimeoutMs.Minimum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_TimeoutMs.Name = "ud_TimeoutMs"; + this.ud_TimeoutMs.Size = new System.Drawing.Size(69, 20); + this.ud_TimeoutMs.TabIndex = 26; + this.ud_TimeoutMs.Value = new decimal(new int[] { + 5000, + 0, + 0, + 0}); + this.ud_TimeoutMs.ValueChanged += new System.EventHandler(this.ud_TimeoutMs_ValueChanged); + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label13.Location = new System.Drawing.Point(9, 278); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(70, 13); + this.label13.TabIndex = 27; + this.label13.Text = "Timeout [ms]:"; + // + // ud_PollMs + // + this.ud_PollMs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_PollMs.Increment = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_PollMs.Location = new System.Drawing.Point(125, 250); + this.ud_PollMs.Maximum = new decimal(new int[] { + 10000, + 0, + 0, + 0}); + this.ud_PollMs.Minimum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.ud_PollMs.Name = "ud_PollMs"; + this.ud_PollMs.Size = new System.Drawing.Size(69, 20); + this.ud_PollMs.TabIndex = 8; + this.ud_PollMs.Value = new decimal(new int[] { + 500, + 0, + 0, + 0}); + this.ud_PollMs.ValueChanged += new System.EventHandler(this.ud_PollMs_ValueChanged); + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label12.Location = new System.Drawing.Point(9, 252); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(64, 13); + this.label12.TabIndex = 25; + this.label12.Text = "Poll Int [ms]:"; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label11.Location = new System.Drawing.Point(9, 225); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(33, 13); + this.label11.TabIndex = 23; + this.label11.Text = "DTR:"; + // + // cb_DTR + // + this.cb_DTR.DisplayMember = "Text"; + this.cb_DTR.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_DTR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_DTR.FormattingEnabled = true; + this.cb_DTR.Location = new System.Drawing.Point(87, 222); + this.cb_DTR.Name = "cb_DTR"; + this.cb_DTR.Size = new System.Drawing.Size(107, 21); + this.cb_DTR.TabIndex = 22; + this.cb_DTR.ValueMember = "Value"; + this.cb_DTR.SelectedIndexChanged += new System.EventHandler(this.cb_DTR_SelectedIndexChanged); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label10.Location = new System.Drawing.Point(9, 198); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(32, 13); + this.label10.TabIndex = 21; + this.label10.Text = "RTS:"; + // + // cb_RTS + // + this.cb_RTS.DisplayMember = "Text"; + this.cb_RTS.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_RTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_RTS.FormattingEnabled = true; + this.cb_RTS.Location = new System.Drawing.Point(87, 195); + this.cb_RTS.Name = "cb_RTS"; + this.cb_RTS.Size = new System.Drawing.Size(107, 21); + this.cb_RTS.TabIndex = 20; + this.cb_RTS.ValueMember = "Value"; + this.cb_RTS.SelectedIndexChanged += new System.EventHandler(this.cb_RTS_SelectedIndexChanged); + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.Location = new System.Drawing.Point(9, 171); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(48, 13); + this.label9.TabIndex = 19; + this.label9.Text = "Stopbits:"; + // + // cb_Stopbits + // + this.cb_Stopbits.DisplayMember = "Text"; + this.cb_Stopbits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Stopbits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Stopbits.FormattingEnabled = true; + this.cb_Stopbits.Location = new System.Drawing.Point(87, 168); + this.cb_Stopbits.Name = "cb_Stopbits"; + this.cb_Stopbits.Size = new System.Drawing.Size(107, 21); + this.cb_Stopbits.TabIndex = 18; + this.cb_Stopbits.ValueMember = "Value"; + this.cb_Stopbits.SelectedIndexChanged += new System.EventHandler(this.cb_Stopbits_SelectedIndexChanged); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label8.Location = new System.Drawing.Point(9, 144); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(36, 13); + this.label8.TabIndex = 17; + this.label8.Text = "Parity:"; + // + // cb_Parity + // + this.cb_Parity.DisplayMember = "Text"; + this.cb_Parity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Parity.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Parity.FormattingEnabled = true; + this.cb_Parity.Location = new System.Drawing.Point(87, 141); + this.cb_Parity.Name = "cb_Parity"; + this.cb_Parity.Size = new System.Drawing.Size(107, 21); + this.cb_Parity.TabIndex = 16; + this.cb_Parity.ValueMember = "Value"; + this.cb_Parity.SelectedIndexChanged += new System.EventHandler(this.cb_Parity_SelectedIndexChanged); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label7.Location = new System.Drawing.Point(9, 117); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(49, 13); + this.label7.TabIndex = 15; + this.label7.Text = "Databits:"; + // + // cb_Databits + // + this.cb_Databits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Databits.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Databits.FormattingEnabled = true; + this.cb_Databits.Location = new System.Drawing.Point(87, 114); + this.cb_Databits.Name = "cb_Databits"; + this.cb_Databits.Size = new System.Drawing.Size(107, 21); + this.cb_Databits.TabIndex = 14; + this.cb_Databits.SelectedIndexChanged += new System.EventHandler(this.cb_Databits_SelectedIndexChanged); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.Location = new System.Drawing.Point(9, 90); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(53, 13); + this.label6.TabIndex = 13; + this.label6.Text = "Baudrate:"; + // + // cb_Baudrate + // + this.cb_Baudrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Baudrate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Baudrate.FormattingEnabled = true; + this.cb_Baudrate.Location = new System.Drawing.Point(87, 87); + this.cb_Baudrate.Name = "cb_Baudrate"; + this.cb_Baudrate.Size = new System.Drawing.Size(107, 21); + this.cb_Baudrate.TabIndex = 12; + this.cb_Baudrate.SelectedIndexChanged += new System.EventHandler(this.cb_Baudrate_SelectedIndexChanged); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(9, 63); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(57, 13); + this.label5.TabIndex = 11; + this.label5.Text = "PortName:"; + // + // cb_PortName + // + this.cb_PortName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_PortName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_PortName.FormattingEnabled = true; + this.cb_PortName.Location = new System.Drawing.Point(87, 60); + this.cb_PortName.Name = "cb_PortName"; + this.cb_PortName.Size = new System.Drawing.Size(107, 21); + this.cb_PortName.TabIndex = 10; + this.cb_PortName.SelectedIndexChanged += new System.EventHandler(this.cb_PortName_SelectedIndexChanged); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(9, 36); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(26, 13); + this.label4.TabIndex = 9; + this.label4.Text = "Rig:"; + // + // cb_Rig + // + this.cb_Rig.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_Rig.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cb_Rig.FormattingEnabled = true; + this.cb_Rig.Location = new System.Drawing.Point(87, 33); + this.cb_Rig.Name = "cb_Rig"; + this.cb_Rig.Size = new System.Drawing.Size(107, 21); + this.cb_Rig.TabIndex = 8; + this.cb_Rig.SelectedIndexChanged += new System.EventHandler(this.cb_Rig_SelectedIndexChanged); + // + // gb_RigSettingsFolder + // + this.gb_RigSettingsFolder.Controls.Add(this.btn_RigDefinitions_Folder); + this.gb_RigSettingsFolder.Controls.Add(this.tb_RigDefinitionsFolder); + this.gb_RigSettingsFolder.Dock = System.Windows.Forms.DockStyle.Top; + this.gb_RigSettingsFolder.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_RigSettingsFolder.Location = new System.Drawing.Point(0, 24); + this.gb_RigSettingsFolder.Name = "gb_RigSettingsFolder"; + this.gb_RigSettingsFolder.Size = new System.Drawing.Size(1008, 53); + this.gb_RigSettingsFolder.TabIndex = 11; + this.gb_RigSettingsFolder.TabStop = false; + this.gb_RigSettingsFolder.Text = "Rig Definitions Folder"; + // + // btn_RigDefinitions_Folder + // + this.btn_RigDefinitions_Folder.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btn_RigDefinitions_Folder.Location = new System.Drawing.Point(915, 18); + this.btn_RigDefinitions_Folder.Name = "btn_RigDefinitions_Folder"; + this.btn_RigDefinitions_Folder.Size = new System.Drawing.Size(75, 23); + this.btn_RigDefinitions_Folder.TabIndex = 2; + this.btn_RigDefinitions_Folder.Text = "Select"; + this.btn_RigDefinitions_Folder.UseVisualStyleBackColor = true; + this.btn_RigDefinitions_Folder.Click += new System.EventHandler(this.btn_Configurations_Folder_Click); + // + // tb_RigDefinitionsFolder + // + this.tb_RigDefinitionsFolder.BackColor = System.Drawing.Color.AntiqueWhite; + this.tb_RigDefinitionsFolder.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::CATCheck.Properties.Settings.Default, "RigDefinitionsFolder", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.tb_RigDefinitionsFolder.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tb_RigDefinitionsFolder.Location = new System.Drawing.Point(12, 19); + this.tb_RigDefinitionsFolder.Name = "tb_RigDefinitionsFolder"; + this.tb_RigDefinitionsFolder.ReadOnly = true; + this.tb_RigDefinitionsFolder.Size = new System.Drawing.Size(897, 20); + this.tb_RigDefinitionsFolder.TabIndex = 1; + this.tb_RigDefinitionsFolder.Text = global::CATCheck.Properties.Settings.Default.RigDefinitionsFolder; + // + // ti_Main + // + this.ti_Main.Enabled = true; + this.ti_Main.Tick += new System.EventHandler(this.ti_Main_Tick); + // + // gb_COM + // + this.gb_COM.Controls.Add(this.lbl_DSR); + this.gb_COM.Controls.Add(this.lbl_CTS); + this.gb_COM.Controls.Add(this.lbl_DTR); + this.gb_COM.Controls.Add(this.lbl_RTS); + this.gb_COM.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gb_COM.Location = new System.Drawing.Point(944, 77); + this.gb_COM.Name = "gb_COM"; + this.gb_COM.Size = new System.Drawing.Size(64, 114); + this.gb_COM.TabIndex = 15; + this.gb_COM.TabStop = false; + this.gb_COM.Text = "COM"; + // + // lbl_RTS + // + this.lbl_RTS.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbl_RTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_RTS.Location = new System.Drawing.Point(10, 21); + this.lbl_RTS.Name = "lbl_RTS"; + this.lbl_RTS.Size = new System.Drawing.Size(41, 19); + this.lbl_RTS.TabIndex = 0; + this.lbl_RTS.Text = "RTS"; + this.lbl_RTS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_RTS.Click += new System.EventHandler(this.lbl_RTS_Click); + // + // lbl_DTR + // + this.lbl_DTR.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbl_DTR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_DTR.Location = new System.Drawing.Point(10, 42); + this.lbl_DTR.Name = "lbl_DTR"; + this.lbl_DTR.Size = new System.Drawing.Size(41, 19); + this.lbl_DTR.TabIndex = 1; + this.lbl_DTR.Text = "DTR"; + this.lbl_DTR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl_DTR.Click += new System.EventHandler(this.lbl_DTR_Click); + // + // lbl_CTS + // + this.lbl_CTS.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbl_CTS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_CTS.Location = new System.Drawing.Point(10, 63); + this.lbl_CTS.Name = "lbl_CTS"; + this.lbl_CTS.Size = new System.Drawing.Size(41, 19); + this.lbl_CTS.TabIndex = 2; + this.lbl_CTS.Text = "CTS"; + this.lbl_CTS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbl_DSR + // + this.lbl_DSR.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbl_DSR.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_DSR.Location = new System.Drawing.Point(10, 84); + this.lbl_DSR.Name = "lbl_DSR"; + this.lbl_DSR.Size = new System.Drawing.Size(41, 19); + this.lbl_DSR.TabIndex = 3; + this.lbl_DSR.Text = "DSR"; + this.lbl_DSR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // MainDlg + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1008, 561); + this.Controls.Add(this.gb_COM); + this.Controls.Add(this.gb_Log); + this.Controls.Add(this.gb_RigControl); + this.Controls.Add(this.gb_RigSettings); + this.Controls.Add(this.gb_RigSettingsFolder); + this.Controls.Add(this.mnu_Main); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "MainDlg"; + this.Text = "CAT- Checker Vxxx (c) 2012 DL2ALF"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainDlg_FormClosing); + this.Load += new System.EventHandler(this.MainDlg_Load); + this.mnu_Main.ResumeLayout(false); + this.mnu_Main.PerformLayout(); + this.gb_Log.ResumeLayout(false); + this.gb_Log.PerformLayout(); + this.gb_RigControl.ResumeLayout(false); + this.gb_RigControl.PerformLayout(); + this.gb_RigSettings.ResumeLayout(false); + this.gb_RigSettings.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ud_TimeoutMs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ud_PollMs)).EndInit(); + this.gb_RigSettingsFolder.ResumeLayout(false); + this.gb_RigSettingsFolder.PerformLayout(); + this.gb_COM.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.ToolTip tt_Set; + private System.Windows.Forms.MenuStrip mnu_Main; + private System.Windows.Forms.GroupBox gb_Log; + private System.Windows.Forms.Button btn_Log_Show; + private System.Windows.Forms.Button btn_Log_Clear; + private System.Windows.Forms.Button btn_Log_StartStop; + private System.Windows.Forms.GroupBox gb_RigControl; + private System.Windows.Forms.Label lbl_FreqB; + private System.Windows.Forms.Label lbl_FreqA; + private System.Windows.Forms.Label lbl_Freq; + private System.Windows.Forms.Label lbl_RIT_OFF; + private System.Windows.Forms.Label lbl_RIT_ON; + private System.Windows.Forms.Label lbl_SPLIT_OFF; + private System.Windows.Forms.Label lbl_SPLIT_ON; + private System.Windows.Forms.Label lbl_XIT_OFF; + private System.Windows.Forms.Label lbl_XIT_ON; + private System.Windows.Forms.Label lbl_VFO_Swap; + private System.Windows.Forms.Label lbl_VFO_Equal; + private System.Windows.Forms.Label lbl_VFO_B; + private System.Windows.Forms.Label lbl_VFO_A; + private System.Windows.Forms.Label lbl_VFO_AB; + private System.Windows.Forms.Label lbl_VFO_AA; + private System.Windows.Forms.Label lbl_VFO_BB; + private System.Windows.Forms.Label lbl_VFO_BA; + private System.Windows.Forms.Label lbl_TX; + private System.Windows.Forms.Label lbl_RX; + private System.Windows.Forms.Label lbl_FM; + private System.Windows.Forms.Label lbl_AM; + private System.Windows.Forms.Label lbl_DIG_L; + private System.Windows.Forms.Label lbl_DIG_U; + private System.Windows.Forms.Label lbl_CW_U; + private System.Windows.Forms.Label lbl_CW_L; + private System.Windows.Forms.Label lbl_SSB_L; + private System.Windows.Forms.Label lbl_SSB_U; + private System.Windows.Forms.TextBox tb_Freq; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.TextBox tb_Status; + private System.Windows.Forms.TextBox tb_FreqA; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox tb_FreqB; + private System.Windows.Forms.GroupBox gb_RigSettings; + private System.Windows.Forms.Button btn_Restart; + private System.Windows.Forms.NumericUpDown ud_TimeoutMs; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.NumericUpDown ud_PollMs; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.ComboBox cb_DTR; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.ComboBox cb_RTS; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.ComboBox cb_Stopbits; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.ComboBox cb_Parity; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox cb_Databits; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.ComboBox cb_Baudrate; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.ComboBox cb_PortName; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox cb_Rig; + private System.Windows.Forms.GroupBox gb_RigSettingsFolder; + private System.Windows.Forms.Button btn_RigDefinitions_Folder; + private System.Windows.Forms.TextBox tb_RigDefinitionsFolder; + private System.Windows.Forms.ToolStripMenuItem mni_Exit; + private System.Windows.Forms.ToolStripMenuItem mni_Commands; + private System.Windows.Forms.ToolStripMenuItem mni_About; + private System.Windows.Forms.Timer ti_Main; + private System.Windows.Forms.ImageList il_MessageStates; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox cb_LogVerbosity; + private System.Windows.Forms.Label lbl_Queue; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.ListView lv_Messages; + private System.Windows.Forms.ColumnHeader ch_LogLevel; + private System.Windows.Forms.ColumnHeader ch_TimeStamp; + private System.Windows.Forms.ColumnHeader ch_Message; + private System.Windows.Forms.Label lbl_RIT_OFS; + private System.Windows.Forms.ToolStripMenuItem mni_ClearRIT; + private System.Windows.Forms.ToolStripMenuItem mni_FrequencyOfTone; + private System.Windows.Forms.GroupBox gb_COM; + private System.Windows.Forms.Label lbl_DSR; + private System.Windows.Forms.Label lbl_CTS; + private System.Windows.Forms.Label lbl_DTR; + private System.Windows.Forms.Label lbl_RTS; + } +} + diff --git a/CATCheck/MainDlg.cs b/CATCheck/MainDlg.cs new file mode 100644 index 0000000..eb192ca --- /dev/null +++ b/CATCheck/MainDlg.cs @@ -0,0 +1,1305 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Configuration; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Security.Cryptography; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using System.Xml; +using System.Xml.Serialization; +using ScoutBase.Core; +using ScoutBase.CAT; + +namespace CATCheck +{ + public partial class MainDlg : Form + { + + private bool Loaded = false; + private bool Logging = true; + + private RigParam LastMode = RigParam.pmNone; + private RigParam LastTx = RigParam.pmNone; + private RigParam LastVfo = RigParam.pmNone; + private RigParam LastSplit = RigParam.pmNone; + private RigParam LastXit = RigParam.pmNone; + private RigParam LastRit = RigParam.pmNone; + + private long LastRitOffset = 0; + + Rig Rig1 = null; + + private Queue MsgQueue = new Queue(); + + public MainDlg() + { + InitializeComponent(); + + this.Text = this.Text.Replace("xxx", Application.ProductVersion); + // set OmniRig rig settings directory + if (String.IsNullOrEmpty(Properties.Settings.Default.RigDefinitionsFolder)) + { + Properties.Settings.Default.RigDefinitionsFolder = Path.Combine(Application.StartupPath, "Rigs"); + } + OmniRig.RigDefinitionsDirectory = Properties.Settings.Default.RigDefinitionsFolder; + + // start timer + ti_Main.Start(); + + // subscribe to events + OmniRig.LogNotify += OmniRig_LogNotify; + OmniRig.StatusChange += OmniRig_ComNotifyStatus; + OmniRig.ParamsChange += OmniRig_ComNotifyParams; + + } + + private void MainDlg_Load(object sender, EventArgs e) + { + + // load user settings + LoadUserSettings(); + + // set the "Loaded" flag and start rig + Loaded = true; + + Rig1 = new Rig(); + RestartRig(); + } + + + private void MainDlg_FormClosing(object sender, FormClosingEventArgs e) + { + SaveUserSettings(); + } + + #region User Settings + + private void LoadUserSettings() + { + + Console.WriteLine("Loading user settings."); + + + // generate empty RigSettings object if null + if (Properties.Settings.Default.RigSettings == null) + { + Console.WriteLine("Creating empty rig settings..."); + Properties.Settings.Default.RigSettings = new RigSettings(); + } + + // initially fill dropdowns + cb_Rig_DropDown(this, null); + cb_PortName_DropDown(this, null); + cb_Baudrate_DropDown(this, null); + cb_Databits_DropDown(this, null); + cb_Parity_DropDown(this, null); + cb_Stopbits_DropDown(this, null); + cb_RTS_DropDown(this, null); + cb_DTR_DropDown(this, null); + + // try to select settings + try + { + cb_Rig.DataSource = OmniRig.SupportedRigs(); + cb_Rig.SelectedItem = Properties.Settings.Default.RigSettings.RigType; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up rig dropdown: " + ex.Message)); + } + try + { + cb_PortName.SelectedItem = Properties.Settings.Default.RigSettings.PortName; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up port dropdown: " + ex.Message)); + } + try + { + cb_Baudrate.SelectedItem = Properties.Settings.Default.RigSettings.Baudrate.ToString(); + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up baudrate dropdown: " + ex.Message)); + } + try + { + cb_Databits.SelectedItem = Properties.Settings.Default.RigSettings.DataBits.ToString(); + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up databits dropdown: " + ex.Message)); + } + try + { + Helpers.BindToEnum(cb_Parity); + cb_Parity.SelectedValue = (int)Properties.Settings.Default.RigSettings.Parity; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up parity dropdown: " + ex.Message)); + } + try + { + Helpers.BindToEnum(cb_Stopbits); + cb_Stopbits.SelectedValue = (int)Properties.Settings.Default.RigSettings.StopBits; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up stopbits dropdown: " + ex.Message)); + } + try + { + Helpers.BindToEnum(cb_RTS); + cb_RTS.SelectedValue = (int)Properties.Settings.Default.RigSettings.RtsMode; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up rts mode dropdown: " + ex.Message)); + } + try + { + Helpers.BindToEnum(cb_DTR); + cb_DTR.SelectedValue = (int)Properties.Settings.Default.RigSettings.DtrMode; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up dtr mode dropdown: " + ex.Message)); + } + try + { + Helpers.BindToEnum(cb_LogVerbosity); + cb_LogVerbosity.SelectedValue = (int)Properties.Settings.Default.LogVerbosity; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up log verbosity dropdown: " + ex.Message)); + } + try + { + ud_PollMs.Value = Properties.Settings.Default.RigSettings.PollMs; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up PollMs updown: " + ex.Message)); + } + try + { + ud_TimeoutMs.Value = Properties.Settings.Default.RigSettings.TimeoutMs; + } + catch (Exception ex) + { + // do nothing if fails + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Error while setting up PollMs updown: " + ex.Message)); + } + + Console.WriteLine("Loading user settings finished."); + + } + + private string GetUserSettingsPath() + { + if (!SupportFunctions.IsMono) + return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath; + // try to build a path to user specific settings under Linux/Mono + string usersettingspath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + usersettingspath = Path.Combine(usersettingspath, Application.CompanyName, AppDomain.CurrentDomain.FriendlyName); + usersettingspath += "_Url_"; + Assembly assembly = Assembly.GetEntryAssembly(); + if (assembly == null) + { + assembly = Assembly.GetCallingAssembly(); + } + byte[] pkt = assembly.GetName().GetPublicKeyToken(); + byte[] hash = SHA1.Create().ComputeHash((pkt != null && pkt.Length > 0) ? pkt : Encoding.UTF8.GetBytes(assembly.EscapedCodeBase)); + StringBuilder evidence_string = new StringBuilder(); + byte[] array = hash; + for (int i = 0; i < array.Length; i++) + { + byte b = array[i]; + evidence_string.AppendFormat("{0:x2}", b); + } + usersettingspath += evidence_string.ToString(); + if (!Directory.Exists(usersettingspath)) + { + Directory.CreateDirectory(usersettingspath); + } + usersettingspath = Path.Combine(usersettingspath, "user.config"); + return usersettingspath; + } + + private XmlElement CreateUserSection(XmlDocument doc, SettingsBase settings) + { + XmlElement usersection = doc.CreateElement(string.Empty, "section", string.Empty); + XmlAttribute sectionname = doc.CreateAttribute(string.Empty, "name", string.Empty); + sectionname.Value = settings.GetType().FullName; + usersection.Attributes.Append(sectionname); + XmlAttribute sectiontype = doc.CreateAttribute(string.Empty, "type", string.Empty); + Assembly assembly = Assembly.GetAssembly(typeof(System.Configuration.ClientSettingsSection)); + // sectiontype.Value = "System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; + sectiontype.Value = typeof(System.Configuration.ClientSettingsSection).FullName + ", " + assembly.FullName; + usersection.Attributes.Append(sectiontype); + XmlAttribute sectionallowexedefinition = doc.CreateAttribute(string.Empty, "allowExeDefinition", string.Empty); + sectionallowexedefinition.Value = "MachineToLocalUser"; + usersection.Attributes.Append(sectionallowexedefinition); + XmlAttribute sectionrequirepermission = doc.CreateAttribute(string.Empty, "requirePermission", string.Empty); + sectionrequirepermission.Value = "false"; + usersection.Attributes.Append(sectionrequirepermission); + return usersection; + } + + private XmlElement SerializeSettings(XmlDocument doc, SettingsBase settings) + { + XmlElement properties = doc.CreateElement(string.Empty, settings.ToString(), string.Empty); + foreach (SettingsPropertyValue p in settings.PropertyValues) + { + if ((p != null) && (p.Name != null) && (p.PropertyValue != null) && !p.UsingDefaultValue) + { + // Console.WriteLine("Appending " + p.Name + " = " + p.PropertyValue.ToString()); + XmlElement setting = doc.CreateElement(string.Empty, "setting", string.Empty); + XmlAttribute name = doc.CreateAttribute(string.Empty, "name", string.Empty); + name.Value = p.Name.ToString(); + setting.Attributes.Append(name); + XmlAttribute serializeas = doc.CreateAttribute(string.Empty, "serializeAs", string.Empty); + serializeas.Value = p.Property.SerializeAs.ToString(); + setting.Attributes.Append(serializeas); + XmlElement value = doc.CreateElement(string.Empty, "value", string.Empty); + if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.String) + { + XmlText text = doc.CreateTextNode(p.SerializedValue.ToString()); + value.AppendChild(text); + } + else + { + if (p.PropertyValue != null && p.Property.SerializeAs == SettingsSerializeAs.Xml) + { + MemoryStream ms = new MemoryStream(); + XmlWriter writer = XmlWriter.Create(ms, new XmlWriterSettings + { + NewLineOnAttributes = true, + OmitXmlDeclaration = true + }); + XmlSerializer serializer = new XmlSerializer(p.PropertyValue.GetType()); + serializer.Serialize(writer, p.PropertyValue); + byte[] text2 = new byte[ms.ToArray().Length - 3]; + Array.Copy(ms.ToArray(), 3, text2, 0, text2.Length); + XmlText xml = doc.CreateTextNode(Encoding.UTF8.GetString(text2.ToArray())); + value.AppendChild(xml); + value.InnerXml = WebUtility.HtmlDecode(value.InnerXml); + } + } + setting.AppendChild(value); + properties.AppendChild(setting); + } + } + return properties; + } + + + private void SaveUserSettings() + { + try + { + if (!SupportFunctions.IsMono) + { + Properties.Settings.Default.Save(); + return; + } + + // Linux/Mono hack to save all properties in a correct manner + Console.WriteLine("Saving user settings..."); + Console.WriteLine("Creating XML document..."); + XmlDocument doc = new XmlDocument(); + XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null); + XmlElement root = doc.DocumentElement; + doc.InsertBefore(xmlDeclaration, root); + XmlElement configuration = doc.CreateElement(string.Empty, "configuration", string.Empty); + doc.AppendChild(configuration); + XmlElement configsections = doc.CreateElement(string.Empty, "configSections", string.Empty); + configuration.AppendChild(configsections); + XmlElement usersettingsgroup = doc.CreateElement(string.Empty, "sectionGroup", string.Empty); + XmlAttribute usersettingsname = doc.CreateAttribute(string.Empty, "name", string.Empty); + usersettingsname.Value = "userSettings"; + usersettingsgroup.Attributes.Append(usersettingsname); + usersettingsgroup.AppendChild(CreateUserSection(doc, ScoutBase.CAT.Properties.Settings.Default)); + configsections.AppendChild(usersettingsgroup); + XmlElement usersettings = doc.CreateElement(string.Empty, "userSettings", string.Empty); + configuration.AppendChild(usersettings); + Console.WriteLine("Writing user settings..."); + // append AirScout.CAT properties + Console.WriteLine("Appending AirScout.CAT.Settings.Default node..."); + usersettings.AppendChild(SerializeSettings(doc, ScoutBase.CAT.Properties.Settings.Default)); + // append properties + Console.WriteLine("Appending Properties.Settings.Default node..."); + usersettings.AppendChild(SerializeSettings(doc, Properties.Settings.Default)); + doc.Save(GetUserSettingsPath()); + Console.WriteLine("Saving user settings finished."); + } + catch (Exception ex) + { + Console.WriteLine("Unable to save settings: " + ex.ToString()); + } + } + + #endregion + + private void cb_Rig_DropDown(object sender, EventArgs e) + { + } + + private void cb_Rig_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + Console.WriteLine("RigType changed to : " + (string)cb_Rig.SelectedItem); + Properties.Settings.Default.RigSettings.RigType = (string)cb_Rig.SelectedItem; + SaveUserSettings(); + + //restart rig + RestartRig(); + } + catch + { + // do nothing if fails + } + } + + private void cb_PortName_DropDown(object sender, EventArgs e) + { + cb_PortName.Items.Clear(); + + foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) + { + cb_PortName.Items.Add(s); + } + } + + private void cb_PortName_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + Console.WriteLine("PortName changed to : " + (string)cb_PortName.SelectedItem); + Properties.Settings.Default.RigSettings.PortName = (string)cb_PortName.SelectedItem; + SaveUserSettings(); + + //restart rig + RestartRig(); + } + catch + { + // do nothing if fails + } + } + + private void cb_Baudrate_DropDown(object sender, EventArgs e) + { + cb_Baudrate.Items.Clear(); + string[] baudrates = new string[] { "110", "300", "600", "1200", "2400", "4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200", "128000", "256000"}; + cb_Baudrate.Items.AddRange(baudrates); + } + + private void cb_Baudrate_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + Properties.Settings.Default.RigSettings.Baudrate = System.Convert.ToInt32(cb_Baudrate.SelectedItem); + SaveUserSettings(); + + //restart rig + RestartRig(); + } + catch + { + // do nothing if fails + } + } + + private void cb_Databits_DropDown(object sender, EventArgs e) + { + cb_Databits.Items.Clear(); + string[] databits = new string[] { "5", "6", "7", "8"}; + cb_Databits.Items.AddRange(databits); + } + + private void cb_Databits_SelectedIndexChanged(object sender, EventArgs e) + { + try + { + Properties.Settings.Default.RigSettings.DataBits = System.Convert.ToInt32(cb_Databits.SelectedItem); + SaveUserSettings(); + + //restart rig + RestartRig(); + } + catch + { + // do nothing if fails + } + } + + private void cb_Parity_DropDown(object sender, EventArgs e) + { + } + + private void cb_Parity_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + if (cb_Parity.SelectedValue != null) + { + Properties.Settings.Default.RigSettings.Parity = (Parity)cb_Parity.SelectedValue; + SaveUserSettings(); + //restart rig + RestartRig(); + } + } + catch + { + // do nothing if fails + } + } + + private void cb_Stopbits_DropDown(object sender, EventArgs e) + { + } + + private void cb_Stopbits_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + if (cb_Stopbits.SelectedValue != null) + { + Properties.Settings.Default.RigSettings.StopBits = (StopBits)cb_Stopbits.SelectedValue; + SaveUserSettings(); + //restart rig + RestartRig(); + } + } + catch + { + // do nothing if fails + } + } + + private void cb_RTS_DropDown(object sender, EventArgs e) + { + } + + private void cb_RTS_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + if (cb_RTS.SelectedValue != null) + { + Properties.Settings.Default.RigSettings.RtsMode = (FlowControl)cb_RTS.SelectedValue; + SaveUserSettings(); + //restart rig + RestartRig(); + } + } + catch + { + // do nothing if fails + } + } + + private void cb_DTR_DropDown(object sender, EventArgs e) + { + } + + private void cb_DTR_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + if (cb_DTR.SelectedValue != null) + { + Properties.Settings.Default.RigSettings.DtrMode = (FlowControl)cb_DTR.SelectedValue; + SaveUserSettings(); + //restart rig + RestartRig(); + } + } + catch + { + // do nothing if fails + } + } + + private void cb_LogVerbosity_SelectedIndexChanged(object sender, EventArgs e) + { + // do nothing while loading + if (!Loaded) + return; + + try + { + if (cb_LogVerbosity != null) + { + Properties.Settings.Default.LogVerbosity = (LOGLEVEL)cb_LogVerbosity.SelectedValue; + SaveUserSettings(); + } + } + catch + { + // do nothing if fails + } + } + + private void ud_PollMs_ValueChanged(object sender, EventArgs e) + { + if (!Loaded) + return; + + try + { + Properties.Settings.Default.RigSettings.PollMs = (int)ud_PollMs.Value; + } + catch + { + // do nothing if fails + } + + RestartRig(); + } + + private void ud_TimeoutMs_ValueChanged(object sender, EventArgs e) + { + if (!Loaded) + return; + + try + { + Properties.Settings.Default.RigSettings.TimeoutMs = (int)ud_TimeoutMs.Value; + } + catch + { + // do nothing if fails + } + RestartRig(); + } + + private void btn_Configurations_Folder_Click(object sender, EventArgs e) + { + FolderBrowserDialog Dlg = new FolderBrowserDialog(); + if (!String.IsNullOrEmpty(Properties.Settings.Default.RigDefinitionsFolder)) + { + Dlg.SelectedPath = Properties.Settings.Default.RigDefinitionsFolder; + } + + if (Dlg.ShowDialog() == DialogResult.OK) + { + if (Directory.Exists(Dlg.SelectedPath)) + { + Properties.Settings.Default.RigDefinitionsFolder = Dlg.SelectedPath; + SaveUserSettings(); + OmniRig.RigDefinitionsDirectory = Properties.Settings.Default.RigDefinitionsFolder; + } + else + { + MessageBox.Show("Selected path does not exist!", "Select Rig Definitions Folder"); + } + } + } + + private void btn_Restart_Click(object sender, EventArgs e) + { + RestartRig(); + } + + private void btn_Log_StartStop_Click(object sender, EventArgs e) + { + if (Logging) + { + btn_Log_StartStop.Text = "Start Log"; + Logging = false; + } + else + { + btn_Log_StartStop.Text = "Stop Log"; + Logging = true; + } + } + + private void btn_Log_Clear_Click(object sender, EventArgs e) + { + lv_Messages.Items.Clear(); + } + + private void btn_Log_Show_Click(object sender, EventArgs e) + { + // get log directory, set application dir if not specified + string dir = Path.GetDirectoryName(OmniRig.LogFileName); + if (String.IsNullOrEmpty(dir)) + { + dir = Application.StartupPath; + } + + Process.Start("explorer.exe", dir); + } + + private void lbl_Freq_Click(object sender, EventArgs e) + { + // return if param is not writeable + if (!Rig1.RigCommands.WriteableParams.Contains(RigParam.pmFreq)) + return; + SetFrequencyDlg Dlg = new SetFrequencyDlg(); + Dlg.ud_Frequency.Value = Rig1.Freq; + if (Dlg.ShowDialog() == DialogResult.OK) + { + Rig1.Freq = (int)Dlg.ud_Frequency.Value; + } + } + + private void lbl_FreqA_Click(object sender, EventArgs e) + { + // return if param is not writeable + if (!Rig1.RigCommands.WriteableParams.Contains(RigParam.pmFreqA)) + return; + SetFrequencyDlg Dlg = new SetFrequencyDlg(); + Dlg.ud_Frequency.Value = Rig1.FreqA; + if (Dlg.ShowDialog() == DialogResult.OK) + { + Rig1.FreqA = (int)Dlg.ud_Frequency.Value; + } + } + + private void lbl_FreqB_Click(object sender, EventArgs e) + { + // return if param is not writeable + if (!Rig1.RigCommands.WriteableParams.Contains(RigParam.pmFreqB)) + return; + SetFrequencyDlg Dlg = new SetFrequencyDlg(); + Dlg.ud_Frequency.Value = Rig1.FreqB; + if (Dlg.ShowDialog() == DialogResult.OK) + { + Rig1.FreqB = (int)Dlg.ud_Frequency.Value; + } + } + + private void lbl_CW_U_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmCW_U; + } + + private void lbl_CW_L_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmCW_L; + } + + private void lbl_SSB_U_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmSSB_U; + } + + private void lbl_SSB_L_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmSSB_L; + } + + private void lbl_DIG_U_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmDIG_U; + } + + private void lbl_DIG_L_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmDIG_L; + } + + private void lbl_AM_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmAM; + } + + private void lbl_FM_Click(object sender, EventArgs e) + { + Rig1.Mode = RigParam.pmFM; + } + + private void lbl_TX_Click(object sender, EventArgs e) + { + Rig1.Tx = RigParam.pmTx; + } + + private void lbl_RX_Click(object sender, EventArgs e) + { + Rig1.Tx = RigParam.pmRx; + } + + private void lbl_VFO_AA_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoAA; + } + + private void lbl_VFO_AB_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoAB; + } + + private void lbl_VFO_BA_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoBA; + } + + private void lbl_VFO_BB_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoBB; + } + + private void lbl_VFO_A_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoA; + } + + private void lbl_VFO_B_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoB; + } + + private void lbl_VFO_Equal_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoEqual; + } + + private void lbl_VFO_Swap_Click(object sender, EventArgs e) + { + Rig1.Vfo = RigParam.pmVfoSwap; + } + + private void lbl_SPLIT_ON_Click(object sender, EventArgs e) + { + Rig1.Split = RigParam.pmSplitOn; + } + + private void lbl_SPLIT_OFF_Click(object sender, EventArgs e) + { + Rig1.Split = RigParam.pmSplitOff; + } + + private void lbl_XIT_ON_Click(object sender, EventArgs e) + { + Rig1.Xit = RigParam.pmXitOn; + } + + private void lbl_XIT_OFF_Click(object sender, EventArgs e) + { + Rig1.Xit = RigParam.pmXitOff; + } + + private void lbl_RIT_ON_Click(object sender, EventArgs e) + { + Rig1.Rit = RigParam.pmRitOn; + } + + private void lbl_RIT_OFF_Click(object sender, EventArgs e) + { + Rig1.Rit = RigParam.pmRitOff; + } + + private void lbl_RIT_0_Click(object sender, EventArgs e) + { + Rig1.Rit = RigParam.pmRit0; + } + + private void lbl_RTS_Click(object sender, EventArgs e) + { + Rig1.PortBits.Rts = !Rig1.PortBits.Rts; + } + + private void lbl_DTR_Click(object sender, EventArgs e) + { + Rig1.PortBits.Dtr = !Rig1.PortBits.Dtr; + } + + + // special functions + private void mni_ClearRIT_Click(object sender, EventArgs e) + { + Rig1.ClearRit(); + } + + private void mni_FrequencyOfTone_Click(object sender, EventArgs e) + { + FrequencyOfToneDlg Dlg = new FrequencyOfToneDlg(Rig1); + Dlg.Show(); + } + + private void RestartRig() + { + // suppress restarts until fully loaded + if (Loaded) + { + // stop rig if running + if (Rig1.Enabled) + { + Rig1.Enabled = false; + } + + DateTime timeout = DateTime.Now.AddMilliseconds((int)Properties.Settings.Default.RigSettings.TimeoutMs); + do + { + Application.DoEvents(); + if (DateTime.Now > timeout) + { + OmniRig_LogNotify(new LogNotifyEventArgs(DateTime.UtcNow, LOGLEVEL.llError, "Cannot not stop rig!")); + break; + } + } + while (Rig1.Enabled); + + // clear log + if (File.Exists(OmniRig.LogFileName)) + { + try + { + File.Delete(OmniRig.LogFileName); + } + catch + { + // do nothing + } + } + // refresh settings + Rig1.RigNumber = 1; + Properties.Settings.Default.RigSettings.ToRig(Rig1); + // start rig + Rig1.Enabled = true; + + } + } + + private void OmniRig_LogNotify(LogNotifyEventArgs args) + { + if (!Logging) + return; + + // queue message + MsgQueue.Enqueue(args); + } + + private void OmniRig_ComNotifyParams(int rignumber, int Params) + { + + // set frequencies + tb_Freq.Text = Rig1.Freq.ToString(); + tb_FreqA.Text = Rig1.FreqA.ToString(); + tb_FreqB.Text = Rig1.FreqB.ToString(); + + // set mode + if (LastMode != Rig1.Mode) + { + SetLabelStyle(lbl_CW_L, RigParam.pmCW_L, false); + SetLabelStyle(lbl_CW_U, RigParam.pmCW_U, false); + SetLabelStyle(lbl_SSB_L, RigParam.pmSSB_L, false); + SetLabelStyle(lbl_SSB_U, RigParam.pmSSB_U, false); + SetLabelStyle(lbl_DIG_L, RigParam.pmDIG_L, false); + SetLabelStyle(lbl_DIG_U, RigParam.pmDIG_U, false); + SetLabelStyle(lbl_AM, RigParam.pmAM, false); + SetLabelStyle(lbl_FM, RigParam.pmFM, false); + + switch (Rig1.Mode) + { + case RigParam.pmCW_U: SetLabelStyle(lbl_CW_U, RigParam.pmCW_U, true, 1); break; + case RigParam.pmCW_L: SetLabelStyle(lbl_CW_L, RigParam.pmCW_L, true, 1); break; + case RigParam.pmSSB_U: SetLabelStyle(lbl_SSB_U, RigParam.pmSSB_U, true, 1);break; + case RigParam.pmSSB_L: SetLabelStyle(lbl_SSB_L, RigParam.pmSSB_L, true, 1); break; + case RigParam.pmDIG_U: SetLabelStyle(lbl_DIG_U, RigParam.pmDIG_U, true, 1); break; + case RigParam.pmDIG_L: SetLabelStyle(lbl_DIG_L, RigParam.pmDIG_L, true, 1); break; + case RigParam.pmAM: SetLabelStyle(lbl_AM, RigParam.pmAM, true, 1); break; + case RigParam.pmFM: SetLabelStyle(lbl_FM, RigParam.pmFM, true, 1); break; + } + + LastMode = Rig1.Mode; + } + + // set TX + if (LastTx != Rig1.Tx) + { + SetLabelStyle(lbl_RX, RigParam.pmRx, false); + SetLabelStyle(lbl_TX, RigParam.pmTx, false); + + switch (Rig1.Tx) + { + case RigParam.pmRx: SetLabelStyle(lbl_RX, RigParam.pmRx, true, 1); break; + case RigParam.pmTx: SetLabelStyle(lbl_TX, RigParam.pmTx, true, 2); break; + } + + LastTx = Rig1.Tx; + } + + // set VFO + if (LastVfo != Rig1.Vfo) + { + SetLabelStyle(lbl_VFO_AA, RigParam.pmVfoAA, false); + SetLabelStyle(lbl_VFO_AB, RigParam.pmVfoAB, false); + SetLabelStyle(lbl_VFO_BA, RigParam.pmVfoBA, false); + SetLabelStyle(lbl_VFO_BB, RigParam.pmVfoBB, false); + SetLabelStyle(lbl_VFO_A, RigParam.pmVfoA, false); + SetLabelStyle(lbl_VFO_B, RigParam.pmVfoB, false); + SetLabelStyle(lbl_VFO_Equal, RigParam.pmVfoEqual, false); + SetLabelStyle(lbl_VFO_Swap, RigParam.pmVfoSwap, false); + + switch (Rig1.Vfo) + { + case RigParam.pmVfoAA: SetLabelStyle(lbl_VFO_AA, RigParam.pmVfoAA, true, 1); break; + case RigParam.pmVfoAB: SetLabelStyle(lbl_VFO_AB, RigParam.pmVfoAB, true, 1); break; + case RigParam.pmVfoBA: SetLabelStyle(lbl_VFO_BA, RigParam.pmVfoBA, true, 1); break; + case RigParam.pmVfoBB: SetLabelStyle(lbl_VFO_BB, RigParam.pmVfoBB, true, 1); break; + case RigParam.pmVfoA: SetLabelStyle(lbl_VFO_A, RigParam.pmVfoA, true, 1); break; + case RigParam.pmVfoB: SetLabelStyle(lbl_VFO_B, RigParam.pmVfoB, true, 1); break; + case RigParam.pmVfoEqual: SetLabelStyle(lbl_VFO_Equal, RigParam.pmVfoEqual, true, 1); break; + case RigParam.pmVfoSwap: SetLabelStyle(lbl_VFO_Swap, RigParam.pmVfoSwap, true, 1); break; + } + + LastVfo = Rig1.Vfo; + } + + // set split + if (LastSplit != Rig1.Split) + { + SetLabelStyle(lbl_SPLIT_ON, RigParam.pmSplitOn, false); + SetLabelStyle(lbl_SPLIT_OFF, RigParam.pmSplitOff, false); + + switch (Rig1.Split) + { + case RigParam.pmSplitOn: SetLabelStyle(lbl_SPLIT_ON, RigParam.pmSplitOn, true, 1); break; + case RigParam.pmSplitOff: SetLabelStyle(lbl_SPLIT_OFF, RigParam.pmSplitOff, true, 1); break; + } + + LastSplit = Rig1.Split; + } + + // set xit + if (LastXit != Rig1.Xit) + { + SetLabelStyle(lbl_XIT_ON, RigParam.pmXitOn, false); + SetLabelStyle(lbl_XIT_OFF, RigParam.pmXitOff, false); + + switch (Rig1.Xit) + { + case RigParam.pmXitOn: SetLabelStyle(lbl_XIT_ON, RigParam.pmXitOn, true, 1); break; + case RigParam.pmXitOff: SetLabelStyle(lbl_XIT_OFF, RigParam.pmXitOff, true, 1); break; + } + + LastXit = Rig1.Xit; + } + + // set rit + if (LastRit != Rig1.Rit) + { + SetLabelStyle(lbl_RIT_ON, RigParam.pmRitOn, false); + SetLabelStyle(lbl_RIT_OFF, RigParam.pmRitOff, false); + + switch (Rig1.Rit) + { + case RigParam.pmRitOn: SetLabelStyle(lbl_RIT_ON, RigParam.pmRitOn, true, 1); break; + case RigParam.pmRitOff: SetLabelStyle(lbl_RIT_OFF, RigParam.pmRitOff, true, 1); break; + } + + LastRit = Rig1.Rit; + } + + // set rit offset + if (LastRitOffset != Rig1.RitOffset) + { + // show RIT offset in kHz + lbl_RIT_OFS.Text = (Rig1.RitOffset/1000.0).ToString("0.00"); + LastRitOffset = Rig1.RitOffset; + } + + + Application.DoEvents(); + } + + private void SetLabelStyle(Label label, RigParam param, bool on, int color = 1) + { + // calculate color + Color c = Color.Transparent; + switch (color) + { + case 1: c = Color.Chartreuse; break; + case 2: c = Color.LightSalmon; break; + default: c = Color.LightGray; break; + } + + // set colors according to read/write caps + if (!Rig1.RigCommands.ReadableParams.Contains(param) && !Rig1.RigCommands.WriteableParams.Contains(param)) + { + label.BorderStyle = BorderStyle.Fixed3D; + label.ForeColor = Color.Gray; + label.BackColor = Color.LightGray; + tt_Set.SetToolTip(label, "Not writeable!"); + } + else if (Rig1.RigCommands.ReadableParams.Contains(param) && !Rig1.RigCommands.WriteableParams.Contains(param)) + { + label.BorderStyle = BorderStyle.FixedSingle; + label.ForeColor = Color.Black; + label.BackColor = on ? c : Color.FloralWhite; + tt_Set.SetToolTip(label, "Not writeable!"); + } + else if (!Rig1.RigCommands.ReadableParams.Contains(param) && Rig1.RigCommands.WriteableParams.Contains(param)) + { + label.BorderStyle = BorderStyle.FixedSingle; + label.BackColor = Color.LightGray; + label.ForeColor = Color.Black; + tt_Set.SetToolTip(label, "Click to send command!"); + } + else if (Rig1.RigCommands.ReadableParams.Contains(param) && Rig1.RigCommands.WriteableParams.Contains(param)) + { + label.ForeColor = Color.Black; + label.BorderStyle = BorderStyle.FixedSingle; + label.BackColor = on ? c : Color.White; + tt_Set.SetToolTip(label, "Click to send command!"); + } + } + + private void SetTextBoxStyle(TextBox textbox, RigParam param, bool on, int color = 1) + { + // calculate color + Color c = Color.Transparent; + switch (color) + { + case 1: c = Color.Chartreuse; break; + case 2: c = Color.LightSalmon; break; + default: c = Color.LightGray; break; + } + + // set colors according to read/write caps + if (!Rig1.RigCommands.ReadableParams.Contains(param)) + { + textbox.BorderStyle = BorderStyle.Fixed3D; + textbox.ForeColor = Color.Gray; + textbox.BackColor = Color.LightGray; + } + else + { + textbox.BorderStyle = BorderStyle.FixedSingle; + textbox.ForeColor = c; + textbox.BackColor = Color.Gray; + tt_Set.SetToolTip(textbox, "Not writeable!"); + } + } + + private void OmniRig_ComNotifyStatus(int rignumber) + { + RigCtlStatus status = Rig1.Status; + + // reset all last values to None if offline + if (status != RigCtlStatus.stOnLine) + { + LastMode = RigParam.pmNone; + LastTx = RigParam.pmNone; + LastVfo = RigParam.pmNone; + LastSplit = RigParam.pmNone; + LastXit = RigParam.pmNone; + LastRit = RigParam.pmNone; + + LastRitOffset = 0; + + } + + // show status text in text box + tb_Status.Text = Rig1.StatusStr; + + // enable/disable elements according to rig capabilities + SetTextBoxStyle(tb_Freq, RigParam.pmFreq,false); + SetTextBoxStyle(tb_FreqA, RigParam.pmFreqA, false); + SetTextBoxStyle(tb_FreqB, RigParam.pmFreqB, false); + + SetLabelStyle(lbl_Freq, RigParam.pmFreq, false); + SetLabelStyle(lbl_FreqA, RigParam.pmFreqA, false); + SetLabelStyle(lbl_FreqB, RigParam.pmFreqB, false); + + // initially set all buttons + SetLabelStyle(lbl_CW_L, RigParam.pmCW_L, false); + SetLabelStyle(lbl_CW_U, RigParam.pmCW_U, false); + SetLabelStyle(lbl_SSB_L, RigParam.pmSSB_L, false); + SetLabelStyle(lbl_SSB_U, RigParam.pmSSB_U, false); + SetLabelStyle(lbl_DIG_L, RigParam.pmDIG_L, false); + SetLabelStyle(lbl_DIG_U, RigParam.pmDIG_U, false); + SetLabelStyle(lbl_AM, RigParam.pmAM, false); + SetLabelStyle(lbl_FM, RigParam.pmFM, false); + + SetLabelStyle(lbl_RX, RigParam.pmRx, false); + SetLabelStyle(lbl_TX, RigParam.pmTx, false); + + SetLabelStyle(lbl_VFO_AA, RigParam.pmVfoAA, false); + SetLabelStyle(lbl_VFO_AB, RigParam.pmVfoAB, false); + SetLabelStyle(lbl_VFO_BA, RigParam.pmVfoBA, false); + SetLabelStyle(lbl_VFO_BB, RigParam.pmVfoBB, false); + SetLabelStyle(lbl_VFO_A, RigParam.pmVfoA, false); + SetLabelStyle(lbl_VFO_B, RigParam.pmVfoB, false); + SetLabelStyle(lbl_VFO_Equal, RigParam.pmVfoEqual, false); + SetLabelStyle(lbl_VFO_Swap, RigParam.pmVfoSwap, false); + + SetLabelStyle(lbl_SPLIT_ON, RigParam.pmSplitOn, false); + SetLabelStyle(lbl_SPLIT_OFF, RigParam.pmSplitOff, false); + + SetLabelStyle(lbl_XIT_ON, RigParam.pmXitOn, false); + SetLabelStyle(lbl_XIT_OFF, RigParam.pmXitOff, false); + + SetLabelStyle(lbl_RIT_ON, RigParam.pmRitOn, false); + SetLabelStyle(lbl_RIT_OFF, RigParam.pmRitOff, false); + SetLabelStyle(lbl_RIT_OFS, RigParam.pmRitOffset, false); + + // show status lines + if (status != RigCtlStatus.stPortBusy) + { + lbl_RTS.BackColor = (Rig1.PortBits.Rts) ? Color.Red : Color.Chartreuse; + lbl_DTR.BackColor = (Rig1.PortBits.Dtr) ? Color.Red : Color.Chartreuse; + lbl_CTS.BackColor = (Rig1.PortBits.Cts) ? Color.Red : Color.Chartreuse; + lbl_DSR.BackColor = (Rig1.PortBits.Dsr) ? Color.Red : Color.Chartreuse; + tt_Set.SetToolTip(lbl_RTS, "Click to toggle!"); + tt_Set.SetToolTip(lbl_DTR, "Click to toggle!"); + } + else + { + lbl_RTS.BackColor = Color.LightGray; + lbl_DTR.BackColor = Color.LightGray; + lbl_CTS.BackColor = Color.LightGray; + lbl_DSR.BackColor = Color.LightGray; + tt_Set.SetToolTip(lbl_RTS, ""); + tt_Set.SetToolTip(lbl_DTR, ""); + } + } + + private void mni_Exit_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void mni_About_Click(object sender, EventArgs e) + { + AboutDlg Dlg = new AboutDlg(); + Dlg.lbl_Version.Text = Dlg.lbl_Version.Text.Replace("x.x.x", Application.ProductVersion.ToString()); + Dlg.ShowDialog(); + } + + private void lv_Messages_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) + { + // Draw the header background + e.Graphics.FillRectangle(Brushes.LightCyan, e.Bounds); + + // Draw the header text + Font font = new Font("Courier New", 8, FontStyle.Bold); + StringFormat sf = new StringFormat(); + sf.Alignment = StringAlignment.Near; + sf.LineAlignment = StringAlignment.Center; + e.Graphics.DrawString(e.Header.Text, font, Brushes.Black, e.Bounds, sf); + } + + private void lv_Messages_DrawItem(object sender, DrawListViewItemEventArgs e) + { + e.DrawDefault = true; + } + + private void lv_Messages_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) + { + e.DrawDefault = true; + } + + private void ti_Main_Tick(object sender, EventArgs e) + { + // stop timer + ti_Main.Stop(); + + try + { + // show msg queue count + lbl_Queue.Text = MsgQueue.Count.ToString(); + lbl_Queue.Refresh(); + + lock (MsgQueue) + { + while (MsgQueue.Count > 0) + { + // get message + LogNotifyEventArgs args = MsgQueue.Dequeue(); + + if (args.LogLevel >= Properties.Settings.Default.LogVerbosity) + { + lv_Messages.BeginUpdate(); + + // maintain size + while (lv_Messages.Items.Count > 100) + { + lv_Messages.Items.RemoveAt(0); + } + + // add new entry + ListViewItem item = new ListViewItem(); + item.ImageIndex = ((int)args.LogLevel) - 1; + item.SubItems.Add(args.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss,fff")); + item.SubItems.Add(args.Message); + lv_Messages.Items.Add(item); + + lv_Messages.EndUpdate(); + + lv_Messages.Items[lv_Messages.Items.Count - 1].EnsureVisible(); + + // check for application events + Application.DoEvents(); + + } + } + } + } + catch (Exception ex) + { + Console.WriteLine("Error while adding message to list: " + ex.Message); + } + + // restart timer + ti_Main.Start(); + } + + } +} diff --git a/CATCheck/MainDlg.resx b/CATCheck/MainDlg.resx new file mode 100644 index 0000000..3e1730e --- /dev/null +++ b/CATCheck/MainDlg.resx @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 99, 17 + + + 299, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACg + CwAAAk1TRnQBSQFMAgEBBAEAATABAAEwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ABQAH/wEL + CP8EAAH/AfABtQKRAbUB8gH/BAAB/wGZBSoDAwQqAQMBURAABv8C+Qj/AwAB8wH3AZEBvAH0AfMBBwGR + AfcB8wMAAfQBMQE3ATgDNwEwAUoBUgQ3ATgBUgQAAfQBvAFzAUUBRAFuAQcB9AQABP8L+QH/AgAB8wG1 + AfMB/wL2AvQB9gHvAa4B8wIAAfYBeQFZAV4DOAEiAV8BbQH7AzgBNwFzAwAB8AFvASQDJQEkAQEBRAG8 + AwAC/wEODPkB/wEAAfQBtQH0Av8BCQGGAYsBuwL2Ae8BkQH/AgABGwFZAl4BOAH7ATABIgExAzgB+wEw + ARwCAAEbAUwHJQEkAUQBvAIAAf8B3g35Av8BBwG8A/8B3QGmAYYB8wH/AfMB9AGuAbwCAAH/AXkDXgL7 + ATcB+wI4AV4BNwEDAf8BAAH0AW8JJQEkAUQB9AEAA/8BAQv5Af8B9AG1BP8B8gKtAv8C9AEHAZEDAAEb + AVkB5QFeAfsBNwFEATcCOAH7ATABHAIAARoBRgImAv8CTQL/AiUBAQEHAQAF/wP5CP8B8wG1BP8B8QKt + AfQC/wH0AfABkQMAAf8BeQLlAV4BNwFmATcC+wE4ASoB9AIAAZMBRgImAXUE/wF1AiUBJAFuAQAG/wGw + AfkB/wFUBv8B8gG1BP8B8QKtAfMC/wH0AfIBkQQAARsBWQGgAV4BWAGiAVgC+wExAXMDAAFvBE0BvQL/ + AZoBJgMlAUQBAAn/AlQBFwT/AfABtQT/AQkCrQH0Av8B9gHwAZEEAAH/AXkBoAHlAVEBXwFRAvsBAwHz + AwABbwHjAXUB4wFNAb0C/wGaASYDJQFFAQAD/wpUA/8B8wG1BP8B8wHxAfMD/wH2AQcBtQUAARsBWQHl + AUoBCgETAfsBMQFRBAABkwHjAnUBlAT/AXUBJgIlAXMBAAP/DFQC/wEJAfIE/wK1BP8BrgHzBQAB/wF5 + AeUBUQEQAVEB+wEDAfIEAAEaAUwBdQGUAv8BlAF1Av8BJgElAUUBvAEAA/8MVAHzAQAB8wEJA/8B8wKt + AfQC/wG1Ae8B/wYAARsBWQHlAVgBXgE3AVEFAAH0AXQB4wGUAZoCdQJNAiYBJQFvAfQBAAP/ClQBVQL/ + AQAB/wHxAQkE/wH0Av8BuwG1Af8HAAH/AVgDXgEDARoGAAEbAW8B4wF1AZQCdQFNASYBJQFMAfACAAn/ + A1QE/wIAAf8B8gEJAhkB9AHzAbwBuwG8Af8JAAEaAVkB5QE3AVEB/wcAARsBdAFMA+MCTAFvARsDAAn/ + AVQBlAX/BAAB9AHxA90B8gH0CwAB/wJYAXkBGwkAAfQBGgGTAm8BkwEaAfQEABD/MAABQgFNAT4HAAE+ + AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4MAAfABDwIAAv8CAAHgAQcCAAHwAQ8CAAHAAQMCAAHg + AQcCAAGAAQEBgAEAAcABAwMAAQEBgAEAAYABAQMAAQEBwAEBAYABAQMAAQEBwAEBAYABAQMAAQEB4AED + AYABAQMAAQEB4AEDAYABAQMAAQEB8AEHAYABAQMAAQEB8AEHAYABAQIAAYABAQH4AQ8BgAEBAgABgAED + AfgBDwHAAQMCAAHAAQcB/AEPAeABBwIAAfABHwH8AR8B8AEPAgAG/ws= + + + + 208, 17 + + + + + AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v7//v7+//7+/v/+/v7//v7+//7+/v/6+Pr/rqPU//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/EvOL/MSnc/yMb3f/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+/+rl7/9kWtn/AwH0/wEA/f8TDeX/g3re/4N73v+De97/g3ve/4N7 + 3v+De97/r6bg//7+/v/+/v7//Pv8/5qR2v8VD+f/AQD9/wIA/f8CAP3/AQD9/wIA/f8CAP3/AgD9/wIA + /f8CAP3/AgD9/1ZM3v/+/v7/+PT4/zwyz/8BAP3/AgD9/wIA/f8CAP3/AgD9/wIA/f8CAP3/AgD9/wIA + /f8CAP3/AgD9/wIA/f9WTN7//v7+//7+/v/JwuT/Ni7b/wIA/f8CAP3/AgD9/wIA/f8CAP3/AgD9/wIA + /f8CAP3/AgD9/wIA/f8CAP3/Vkze//7+/v/+/v7//v7+//z6+/+Wjdn/Ew7n/wIA/f8CAP3/BgLx/yAX + 3v8gF97/Hxbe/x8W3v8fFd3/HhXd/2xf0v/+/v7//v7+//7+/v/+/v7//v7+/+nk7/9iWNj/AwD0/yMb + 3f/y9Pr/8PL5//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/8O7 + 4v9YS8f/zN7g/1DDN/+y1MP//f3+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/9Tl4P+w2Lf/sNi3/7DY + t/+w2Lf/sNi3/5LGov9E0A7/RNAP/2rCZv/Z5uj//v7+//7+/v/+/v7//v7+//7+/v+RzZb/RNAO/0TQ + Dv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/Rcge/5HLmv/z9fv//v7+//7+/v/+/v7/kc2W/0TQ + Dv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/Ur5F/+br9f/+/v7//v7+/5HN + lf9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/RNAO/0TQDv9E0A7/W8JN/8fd2P/+/v7//v7+//7+ + /v+x1cD/dcpt/3XKbf92ym3/dspu/3bKbv9ow2L/RNAO/0TQDv9Ixif/n86r//n5/f/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/zd7g/0PNEv94xXj/5Ovx//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/+Pq8P/C2tP//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA + rEEAAKxBAACsQQ== + + + \ No newline at end of file diff --git a/AirScoutDatabaseManager/Program.cs b/CATCheck/Program.cs similarity index 93% rename from AirScoutDatabaseManager/Program.cs rename to CATCheck/Program.cs index 3fd3f1a..a398054 100644 --- a/AirScoutDatabaseManager/Program.cs +++ b/CATCheck/Program.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Forms; -namespace AirScoutDatabaseManager +namespace CATCheck { static class Program { diff --git a/CATCheck/Properties/AssemblyInfo.cs b/CATCheck/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..80e6445 --- /dev/null +++ b/CATCheck/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("CATCheck")] +[assembly: AssemblyDescription("CAT intreface checker for Windows & LInux/Mono")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("DL2ALF")] +[assembly: AssemblyProduct("CATCheck")] +[assembly: AssemblyCopyright("Copyright © 2021 DL2ALF")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("0f0b27d0-7957-4ce0-9121-2c89746af136")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/AirScoutDatabaseManager/Properties/Resources.Designer.cs b/CATCheck/Properties/Resources.Designer.cs similarity index 93% rename from AirScoutDatabaseManager/Properties/Resources.Designer.cs rename to CATCheck/Properties/Resources.Designer.cs index 0536a52..941829b 100644 --- a/AirScoutDatabaseManager/Properties/Resources.Designer.cs +++ b/CATCheck/Properties/Resources.Designer.cs @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // // Dieser Code wurde von einem Tool generiert. -// Laufzeitversion:4.0.30319.42000 +// Laufzeitversion: 4.0.30319.42000 // // Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn // der Code neu generiert wird. // //------------------------------------------------------------------------------ -namespace AirScoutDatabaseManager.Properties +namespace CATCheck.Properties { @@ -44,7 +44,7 @@ namespace AirScoutDatabaseManager.Properties { if ((resourceMan == null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AirScoutDatabaseManager.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CATCheck.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/AirScoutDatabaseManager/Properties/Resources.resx b/CATCheck/Properties/Resources.resx similarity index 100% rename from AirScoutDatabaseManager/Properties/Resources.resx rename to CATCheck/Properties/Resources.resx diff --git a/CATCheck/Properties/Settings.Designer.cs b/CATCheck/Properties/Settings.Designer.cs new file mode 100644 index 0000000..4e692fd --- /dev/null +++ b/CATCheck/Properties/Settings.Designer.cs @@ -0,0 +1,61 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace CATCheck.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string RigDefinitionsFolder { + get { + return ((string)(this["RigDefinitionsFolder"])); + } + set { + this["RigDefinitionsFolder"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public global::ScoutBase.CAT.RigSettings RigSettings { + get { + return ((global::ScoutBase.CAT.RigSettings)(this["RigSettings"])); + } + set { + this["RigSettings"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("llAll")] + public global::ScoutBase.CAT.LOGLEVEL LogVerbosity { + get { + return ((global::ScoutBase.CAT.LOGLEVEL)(this["LogVerbosity"])); + } + set { + this["LogVerbosity"] = value; + } + } + } +} diff --git a/CATCheck/Properties/Settings.settings b/CATCheck/Properties/Settings.settings new file mode 100644 index 0000000..037a8a8 --- /dev/null +++ b/CATCheck/Properties/Settings.settings @@ -0,0 +1,15 @@ + + + + + + + + + + + + llAll + + + \ No newline at end of file diff --git a/CATCheck/Ressources/CAT.ico b/CATCheck/Ressources/CAT.ico new file mode 100644 index 0000000000000000000000000000000000000000..cf5be99ccd6c31ea5b655cb7f05f11b1389199b2 GIT binary patch literal 1150 zcmbu7Pbh<79LJxH+{_{z)F=mB6bCLYLMfCSBo1mx5^f}p&JI&{*hNt;$V|7=7Wqxk(cel z)C7mA$z-iAIz;bCI0BvK8u>X7JSV3t6Y~((iLtYlliVWi8 z=kN7}@ahdp*2Z&*Ys1zZx>}4l;T&i;)MCS8Kr|}-uQ1l)a$wE6nWUM6c{H9YsB$o< z?}yF(DETcKv-Ycw)uvX{p$eK~9p3%nZ$9brf_KMG6WkuZ=%F#s{&=pyvDl+;gVAmk zS=Rsh)hs^n6K5a4H`Dnym~%0{KMtqoEp1Nl SxPN|y{`xW{N62#hfAj&lNGOy5 literal 0 HcmV?d00001 diff --git a/CATCheck/Ressources/CAT.png b/CATCheck/Ressources/CAT.png new file mode 100644 index 0000000000000000000000000000000000000000..637a47b4a07317f0f969ecd941f341caeff2ebe1 GIT binary patch literal 28748 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 Hu0mjfh6sR> literal 0 HcmV?d00001 diff --git a/CATCheck/Ressources/eventlogError.ico b/CATCheck/Ressources/eventlogError.ico new file mode 100644 index 0000000000000000000000000000000000000000..02c331ba47db8f204aad2907a7c225e06d123fa6 GIT binary patch literal 2862 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 literal 0 HcmV?d00001 diff --git a/CATCheck/Ressources/transceiver.png b/CATCheck/Ressources/transceiver.png new file mode 100644 index 0000000000000000000000000000000000000000..96b0f6e618c6abe7e6a579de767074b75200baf6 GIT binary patch literal 9984 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 literal 0 HcmV?d00001 diff --git a/CATCheck/Rigs/ADT-200A.ini b/CATCheck/Rigs/ADT-200A.ini new file mode 100644 index 0000000..4cfb34e --- /dev/null +++ b/CATCheck/Rigs/ADT-200A.ini @@ -0,0 +1,183 @@ +;;; =========================================================================== +;;; +;;; OmniRig INI file for ADAT ADT-200A +;;; +;;; =========================================================================== +;;; +;;; For more info on ADAT see http://www.adat.ch +;;; This file was created by Frank Goenninger, DG1SBG, on 2013-06-30 +;;; +;;; In case of questions please email to: frank.goenninger@consequor.de - Tnx! +;;; +;;; Compatibility info: +;;; ADT-200A: DSP Firmware: 1.36e +;;; GUI Firmware: 1.24 +;;; +;;; Note: At least DSP firmware version 1.36e is required to run OmniRig +;;; or CW Skimmer. +;;; +;;; As the ADT-200A is not (yet) sending I/Q data this radio has to be +;;; configured as a 3 kHz rig in OmniRig. +;;; +;;; --- +;;; +;;; OmniRig Port Settings to be configured: +;;; +;;; Rig type: ADT-200A +;;; Port: +;;; Baud rate: 38400 +;;; Data bits: 8 +;;; Parity: None +;;; Stop bits: 1 +;;; RTS: Hanshake +;;; DTR: Low +;;; Poll int, ms: 100 +;;; Timeout, ms: 100 +;;; +;;; --- +;;; +;;; Support matrix: +;;; +;;; pmFreq: COMMAND: Supported STATUS: Supported +;;; pmFreqA: COMMAND: Supported STATUS: Supported +;;; pmFreqB: COMMAND: Supported STATUS: Supported +;;; pmPitch: COMMAND: Not Supported STATUS: Not Supported +;;; pmRitOffset: COMMAND: Not Supported STATUS: Not Supported +;;; pmRit0: COMMAND: Not Supported STATUS: Not Supported +;;; pmVfoAA: COMMAND: Not Supported STATUS: Not Supported +;;; pmVfoAB: COMMAND: Not Supported STATUS: Not Supported +;;; pmVfoBA: COMMAND: Not Supported STATUS: Not Supported +;;; pmVfoBB: COMMAND: Not Supported STATUS: Not Supported +;;; pmVfoA: COMMAND: Not Supported STATUS: Not Supported +;;; pmVfoB: COMMAND: Not Supported STATUS: Not Supported +;;; pmVfoEqual: COMMAND: Not Supported STATUS: Not Supported +;;; pm:VfoSwap: COMMAND: Not Supported STATUS: Not Supported +;;; pmSplitOn: COMMAND: Not Supported STATUS: Not Supported +;;; pmSplitOff: COMMAND: Not Supported STATUS: Not Supported +;;; pmRitOn: COMMAND: Not Supported STATUS: Not Supported +;;; pmRitOff: COMMAND: Not Supported STATUS: Not Supported +;;; pmXitOn: COMMAND: Not Supported STATUS: Not Supported +;;; pmXitOff: COMMAND: Not Supported STATUS: Not Supported +;;; pmRx: COMMAND: Supported STATUS: Not Supported +;;; pmTx: COMMAND: Supported STATUS: Not Supported +;;; pmCW_U: COMMAND: Supported STATUS: Not Supported +;;; pmCW_L: COMMAND: Not Supported STATUS: Not Supported +;;; pmSSB_U: COMMAND: Supported STATUS: Not Supported +;;; pmSSB_L: COMMAND: Supported STATUS: Not Supported +;;; pmDIG_U: COMMAND: Not Supported STATUS: Not Supported +;;; pmDIG_L: COMMAND: Not Supported STATUS: Not Supported +;;; pmAM: COMMAND: Supported STATUS: Not Supported +;;; pmFM: COMMAND: Supported STATUS: Not Supported +;;; +;;; --- +;;; $Id$ +;;; +;;; =========================================================================== + +;;; --- INIT SECTION --- +;;; +;;; Sequence of init commands: +;;; INIT 1 : Switch On VFO A +;;; INIT 2 : Switch On VFO B +;;; INIT 3 : Set Band to HAM +;;; INIT 4 : Siwtch Display On +;;; INIT 5 : Set Mode to USB +;;; INIT 6 : Set Filter to 3000 Hz +;;; INIT 7 : Set Tuning Step to 500 Hz per revolution + +[INIT1] +Command=24.56.31.3E.0D +ReplyLength=0 + +[INIT2] +Command=24.56.32.3E.0D +ReplyLength=0 + +[INIT3] +Command=24.42.4E.44.21.31.0D +ReplyLength=0 + +[INIT4] +Command=24.56.52.55.3C.0D +ReplyLength=0 + +[INIT5] +Command=24.4D.4F.44.3A.30.33.0D +ReplyLength=0 + +[INIT6] +Command=24.46.4C.53.3A.31.31.0D +ReplyLength=0 + +[INIT7] +Command=24.52.44.57.3A.30.30.0D +ReplyLength=0 + + +;;; --- COMMANDS SECTION --- + +[pmFreq] +Command=24.46.52.31.3A.00.00.00.00.00.00.00.00.0D +Value=5|8|vfText|1|0 +ReplyEnd=0D + +[pmFreqA] +Command=24.46.52.31.3A.00.00.00.00.00.00.00.00.0D +Value=5|8|vfText|1|0 +ReplyEnd=0D + +[pmFreqB] +Command=24.46.52.32.3A.00.00.00.00.00.00.00.00.0D +Value=5|8|vfText|1|0 +ReplyEnd=0D + +[pmTx] +Command=24.4D.4F.58.3E.0D +ReplyLength=0 + +[pmRx] +Command=24.4D.4F.58.3C.0D +ReplyLength=0 + +[pmCW_U] +Command=24.4D.4F.44.3A.30.31.0D +ReplyLength=0 + +[pmSSB_L] +Command=24.4D.4F.44.3A.30.32.0D +ReplyLength=0 + +[pmSSB_U] +Command=24.4D.4F.44.3A.30.33.0D +ReplyLength=0 + +[pmAM] +Command=24.4D.4F.44.3A.30.35.0D +ReplyLength=0 + +[pmFM] +Command=24.4D.4F.44.3A.30.38.0D +ReplyLength=0 + +;;; --- STATUS SECTION --- + +[STATUS1] +; Get VFO 1 Frequency +; $FR1? +Command=24.46.52.31.3F.0D +ReplyEnd=0D +Value1=4|13|vfText|1|0|pmFreqA + +[STATUS2] +; Get VFO 2 Frequency +; $FR2? +Command=24.46.52.32.3F.0D +ReplyEnd=0D +Value1=4|13|vfText|1|0|pmFreqB + +[STATUS3] +; Get Main VFO Frequency +; $FR1? +Command=24.46.52.31.3F.0D +ReplyEnd=0D +Value1=4|13|vfText|1|0|pmFreq diff --git a/CATCheck/Rigs/AORAR5000.ini b/CATCheck/Rigs/AORAR5000.ini new file mode 100644 index 0000000..d8cdd11 --- /dev/null +++ b/CATCheck/Rigs/AORAR5000.ini @@ -0,0 +1,179 @@ +;------------------------------------------------------------------------------- +; AOR AR5000A command set +; +; File created by Göran Sandin SM6PPS gsan.faros@mailnull.com +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none required + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +; VAnnnnnnnnnn +Command=56.41.00.00.00.00.00.00.00.00.00.00.0D.0A +Value=2|10|vfText|1|0 +ReplyLength=0 + +[pmFreq] +; RFnnnnnnnnnn +Command=52.46.00.00.00.00.00.00.00.00.00.00.0D.0A +Value=2|10|vfText|1|0 +ReplyLength=0 + +[pmRitOffset] +;not supported + +[pmPitch] +;not supported +; +; Well it is, with CWn where n=0-7 +; 400 Hz...n=0 +; 500 Hz...n=1 +; 600 Hz...n=2 +; 700 Hz...n=3 +; 800 Hz...n=4 +; 900 Hz...n=5 +; 1000 Hz...n=6 +; 1100 Hz...n=7 +; +; Not sure though how to code this and since it is not +; required by Faros... + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmRit0] +; Not supported since there is no RIT in this receiver. +; Faros needs this command according to VE3NEA. +; +; We send a AGC=Slow command instead to the receiver. +; +; AC2 +Command=41.43.32.0D.0A +ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; MD4 +Command=4D.44.34.0D.0A +ReplyLength=0 + +[pmCW_L] +;not supported + +[pmSSB_U] +; MD3 +Command=4D.44.33.0D.0A +ReplyLength=0 + +[pmSSB_L] +; MD2 +Command=4D.44.32.0D.0A +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +; MD1 +Command=4D.44.31.0D.0A +ReplyLength=0 + +[pmFM] +; MD0 +Command=4D.44.30.0D.0A +ReplyLength=0 + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +; RF +Command=52.46.0D.0A +ReplyEnd=0A +; Vx RFnnnnnnnnnn STnnnnnn AUn MDn +Validate=560000000000000000000000000000000000000000000000000000000000000000000D0A +Value1=5|10|vfText|1|0|pmFreq +Flag1 = (V..RF...........ST........AU..MD0...)|pmFM +Flag2 = (V..RF...........ST........AU..MD1...)|pmAM +Flag3 = (V..RF...........ST........AU..MD2...)|pmSSB_L +Flag4 = (V..RF...........ST........AU..MD3...)|pmSSB_U +Flag5 = (V..RF...........ST........AU..MD4...)|pmCW_U + +[STATUS2] +; VA +Command=56.41.0D.0A +ReplyEnd=0A +; VA RFnnnnnnnnnn STnnnnnn AUn MDn +Validate=564100000000000000000000000000000000000000000000000000000000000000000D0A +Value1=5|10|vfText|1|0|pmFreqA + +[STATUS3] +; CW +Command=43.57.0D.0A +ReplyEnd=0A +; CWn +Validate=435700000D0A +Value1=2|1|vfText|100|400|pmPitch diff --git a/CATCheck/Rigs/AR8600.ini b/CATCheck/Rigs/AR8600.ini new file mode 100644 index 0000000..8674d4c --- /dev/null +++ b/CATCheck/Rigs/AR8600.ini @@ -0,0 +1,69 @@ +;------------------------------------------------------------------------------- +; AOR AR8600Mark2 command set +; +; File created by Mirek Mach, OK4FX, OK1-36292 chromos@chromos.cz +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;one VFO +Command=56460D +ReplyEnd=0D + +[INIT2] +;receiving mode AUTO +Command=4155310D +ReplyEnd=0D +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +Command=5646.0000000000000000.30.300D +Value=3|8|vfText|0.01|0 +ReplyEnd=0D +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=4D44350D +ReplyEnd=0D + +[pmCW_L] +;not CW but AUTO mode +Command=4155310D +ReplyEnd=0D + +[pmSSB_U] +Command=4D44330D +ReplyEnd=0D + +[pmSSB_L] +Command=4D44340D +ReplyEnd=0D + +[pmAM] +Command=4D44320D +ReplyEnd=0D + +[pmFM] +Command=4D44310D +ReplyEnd=0D +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +;Vx RFnnnnnnnnnn STnnnnnn AUn MDn ATn + +[STATUS] +;Read operating frequency and mode +Command=52580D +ReplyLength=36 +Validate=5646.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4400.20.415400 +Value=5|10|vfText|1|0|pmFreq + +Flag1=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4434.20.415400|pmSSB_L +Flag2=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4433.20.415400|pmSSB_U +Flag3=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4438.20.415400|pmAM +Flag4=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4435.20.415400|pmCW_U +Flag6=5600.20.5246.00000000000000000000.20.5354000000000000.20.415500.20.4D4431.20.415400|pmFM diff --git a/CATCheck/Rigs/Bearcat996x.ini b/CATCheck/Rigs/Bearcat996x.ini new file mode 100644 index 0000000..77bc641 --- /dev/null +++ b/CATCheck/Rigs/Bearcat996x.ini @@ -0,0 +1,69 @@ +;------------------------------------------------------------------------------- +; Uniden Bearcat command set +; +; File created by Alex Schwarz - VE7DXW +;------------------------------------------------------------------------------- +;Note: only frequency can be updated and read - mode and all other parameters are +; either set to "Auto" or are default setting. + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +;[INIT] not used + +;[INIT1]not used + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + + +[pmFreq] +;(QSH,Value,,AUTO,0,2,,0,1000000000000000,0,0,0,0,400) +Command=5153482C2C2C2C2C2C2C2C2C2C2C4155544F2C302C322C2C302C313030303030303030303030303030302C302C302C302C302C3430300D +Value=4|8|vfText|0.01|0 +ReplyLength=0 + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +;[pmCW_U]- na + +;[pmSSB_U]- na + +;[pmSSB_L]- na + +;[pmDIG_U]- na + +;[pmAM] - na + +;[pmFM]- na + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +;Command (PWR) +Command=5057520D +ReplyLength=17 +Value1=8|8|vfText|100|0|pmFreq + +[STATUS2] +;Command (GLG) +Command=474C470D +ReplyLength=18 +Validate=(GLG,..............) +;Value1=5|9|vfDPIcom|1|0|pmFreq +Flag1 =(..............NFM.)|pmFM +Flag2 =(..............AM..)|pmAM + + + diff --git a/CATCheck/Rigs/CODAN-Comments.txt b/CATCheck/Rigs/CODAN-Comments.txt new file mode 100644 index 0000000..0085fbe --- /dev/null +++ b/CATCheck/Rigs/CODAN-Comments.txt @@ -0,0 +1,42 @@ +The CODAN.ini file has been tested with the CODAN 9360 and should +also work with the 9323, 9390 and 9780 models using the RS232 CAT interface +port on the rear of the transceiver. These transceivers come up for sale on +Ebay from time to time for relatively low cost with an excellent receiver programmable +from 250KHz to 30MHz. + +The CODAN supports only four functions of Amateur radio use via the RS232 CAT port: + + +Set Frequency - [pmFreq] +Set Mode - [pmSSB_U] +Set Mode - [pmSSB_L] +Read Status - [STATUS1] + +In addition a [pmSplitOff] dummy command has been inserted to comply with the Faros requirement. + +The [INIT] command sets the CODAN RS232 CAT port to the ECHO=OFF mode to prevent the Command received +from being echoed back from the RS232 TXD port. + +Note!! Frequencies cannot be programmed directly as all these transceivers are channelised. +The CODAN models have a user selectable option to Recall channels by frequency +so is an ideal low cost rig to monitor the IARU HF Beacons using FAROS. + +For FAROS use program the CODAN with the HF Beacon channels 600Hz lower in frequency than the nominal +Beacon channel using USB. e.g. 14.09940.The CODAN will then select the nearest frequency +(programmed channel) to that sent by Faros via the RS232 CAT port. + +Note that the CODAN rigs won't handle anything less than 1KHz resolution via commands to the RS232 CAT port in +the frequency section mode although the cODAN channels can be programmed with the keypad/front panel controls +to 10Hz resolution. + +Because of this you need to add the following into the SETTINGS area of the Faros.ini file: + +Frequencies=14099:18109:21149:24929:28199 + +Dave Wright G3XOU + + + + + + \ No newline at end of file diff --git a/CATCheck/Rigs/CODAN.ini b/CATCheck/Rigs/CODAN.ini new file mode 100644 index 0000000..f49be65 --- /dev/null +++ b/CATCheck/Rigs/CODAN.ini @@ -0,0 +1,153 @@ +;------------------------------------------------------------------------------- +; CODAN 9360-9323-9390-9780 command set +; +; File created by Dave Wright G3XOU +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=45.43.48.4F.3D.4F.46.46.0A.0D + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=46.52.45.51.3D.00.00.00.00.00.0A.0D +Value=5|5|vfText|1|0 +ReplyLength=0 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +Command=53.42.3F.0A.0D +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;not supported + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=53.42.3D.55.0A.0D +ReplyLength=0 + +[pmSSB_L] +Command=53.42.3D.4C.0A.0D +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +;not supported + +[pmFM] +;not supported + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=46.52.45.51.3F.0A.0D +Value1=8|5|vfText|1|0|pmFreq +ReplyEnd=2E + +[STATUS2] +;not supported + +[STATUS3] +;not supported + +[STATUS4] +;not supported diff --git a/CATCheck/Rigs/DX-77-Comments.txt b/CATCheck/Rigs/DX-77-Comments.txt new file mode 100644 index 0000000..33275d4 --- /dev/null +++ b/CATCheck/Rigs/DX-77-Comments.txt @@ -0,0 +1,47 @@ + Comments for corrected version of DX-77.ini. 23.3.2005 + + I have tested all combinations of commenting and uncommenting of pmVFOA, pmVFOB, pmVFOAB...etc + and enclosed version is optimal by my mean. It works fine with Hamport and Bandmaster. + + Alinco's software is primarily intended for use with terminal program like Hyperterminal in Windows etc. + In this reason there are some restrictions for use it with your software: + + - every command must end by hex characters '0A 0D' - by this sequence is press of key "Enter" simulated + and in Alinco's reply are there characters '0A 0D' more times - that's why I cannot use ReplyEnd statement + in case of variable length of reply string + + - Alinco MUST reply immediatly on each known command and that's why I cannot merge more commands in one line. Alinco's reply for the first command goes simultaneously with the second coomand and result is crash and error message "COM PORT ERROR" + + - Alinco's reply has two parts in all cases: + first part: all bytes of last sended command are returned back and sequence '0A 0D' is added + second part: in case of SET command is seguence 'O K 0A 0D' returned + in case of READ command is variable legth reply string + '0A 0D' returned + in case of unknown command is string 'E R R O R 0A 0D' returned. + + - Alinco's software switches positions of VFOA FRQ and VFOB FRQ in reply string in case of switching VFO's: + if VFOA is active (on display) : NNNNNNAAAAAAAAAABBBBBBBBBB + where AAAAAAAAAA is FRQ of VFOA (RX FRQ in Alinco's terminology) + and BBBBBBBBBB is FRQ of VFOB (TX FRQ in Alinco's terminology) + if VFOB is active (on display) : NNNNNNBBBBBBBBBBAAAAAAAAAA + where AAAAAAAAAA is FRQ of VFOA (TX FRQ in Alinco's terminology) + and BBBBBBBBBB is FRQ of VFOB (RX FRQ in Alinco's terminology) + + Use DX-77.ini with Hamport - all works fine but + + - in right above corner displayed FRQ of second VFO is all time the same - see "switching position + of FRQ in reply string" above mentioned + - setting of VFO's "VFOA/A, VFOB/B" are "dead" + - in memory functions Hamport writes and reads both frequencies and modes of VFO's correctly + - it's no way to toggle split ON/OFF from Hamport - must be set manually + - it's no way to toggle RX / TX (PTT) from Hamport - PTT must be switched outside the program + + Use DX-77.ini with Bandmaster - all works fine but + + - click and doubleclick for offset setting works fine, but no Split is toggled and offset displayed simultaneously. Split must be switched by click on "Split" field or manually on the TRX. + If Split is toggled ON before clicking / doubleclicking to set offset, all is O.K. + - no RED NUMBERS are there in case of PTT is ON (problem with variable lentgh of reply string + mentioned above - pmRX and pmTX was not used) + + -------------------------------------------------no comments more ---------------------------------------------------- + + \ No newline at end of file diff --git a/CATCheck/Rigs/DX-77.ini b/CATCheck/Rigs/DX-77.ini new file mode 100644 index 0000000..3434794 --- /dev/null +++ b/CATCheck/Rigs/DX-77.ini @@ -0,0 +1,244 @@ +;--------------------------------------------------------------------------------------------------------------------- +; Alinco DX-77 command set +; +; File created by Josef Vychytil, OK1WSL, vychytil@post.cz 22.03.2005 +;--------------------------------------------------------------------------------------------------------------------- +; +; COMX port settings : +; nastavení COMX portu: +; Bit Rate : 9600 +; Data Bits : 9 +; Parity : None +; Stop Bits : 2 +; RTS : HIGH (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval) +; DTR : HIGH (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval) +; Pol Int. : 100 (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval) +; TimeOut : 1 000 (it's not obligatory but so I this tested - hodnota není povinná, ale takto jsem testoval) + +; Command= +; ReplyLength= +; ReplyEnd= +; Value=||||[|] +; Flag=[|]| + +;-------------------------------------------------------------------------------------------------------------------- +; initialize - inicializace +;------------------------------------------------------------------------------------------------------------------- +[INIT] +; not supported - nepodporován + +;-------------------------------------------------------------------------------------------------------------------- +; set frequency - nastavení kmitoètu +;-------------------------------------------------------------------------------------------------------------------- + +[pmFreq] +; not supported, but for Bandmaster and Hamport is this param. essential +; that's why is used VFO A frequency for it +; pracovní kmitoèet nepodporován, ale je nutný pro Bandmaster a Hamport +; proto byl použit kmitoèet VFO A +Command=41.4C.30.42.00.00.00.00.00.00.00.00.0D.0A +Value=4|8|vfText|1|0 +ReplyLength=20 + +[pmFreqA] +; VFO A frequency - kmitoèet VFO A +Command=41.4C.30.42.00.00.00.00.00.00.00.00.0D.0A +Value=4|8|vfText|1|0 +ReplyLength=20 + +[pmFreqB] +; VFO B frequency - kmitoèet VFO B +Command=41.4C.30.41.00.00.00.00.00.00.00.00.0D.0A +Value=4|8|vfText|1|0 +ReplyLength=20 + +[pmPitch] +; set Pitch but no way to read value of Pitch +; Field Pitch is used for display of S-meter reading +; nastavení Pitch, hodnotu nelze ale èíst +; pole Pitch je použito pro zobrazení S metru +Command=41.4C.32.57.4D.00.00.0D.0A +Value=5|2|vfText|1|0 +ReplyLength=15 + +[pmRitOffset] +; not supported - nelze nastavit + +[pmRit0] +; not supported - nelze nastavit + +;---------------------------------------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx - nastavení RIT/XIT/Split/RX/TX +;---------------------------------------------------------------------------------------------------------------------- + +[pmVfoAA] +; not used - nepoužit + +[pmVfoAB] +; used VFO A: +Command=41.4C.31.41.31.0D.0A +ReplyLength=14 + +[pmVfoBA] +; used VFO B: +Command=41.4C.31.41.32.0D.0A +ReplyLength=14 + +[pmVfoBB] +; not used - nepoužit + +[pmVfoA] +; not used- see pmVfoAB - nepoužit viz pmVfoAB + +[pmVfoB] +; not used- see pmVfoBA - nepoužit viz pmVfoBA + +[pmVfoEqual] +; not supported - nepodporováno + +[pmVfoSwap] +; not supported - nepodporováno + +[pmSplitOn] +; toggle split ON +; pøepne Split ON +Command=41.4C.32.46.31.0D.0A +ReplyLength=13 + +[pmSplitOff] +; toggle split OFF +; pøepne Split OFF +Command=41.4C.32.46.30.0D.0A +ReplyLength=13 + +[pmRitOn] +; not supported - nepodporováno + +[pmRitOff] +; not supported - nepodporováno + +[pmXitOn] +; not supported - nepodporováno + +[pmXitOff] +; not supported - nepodporováno + +[pmRx] +; not supported - nepodporováno +; section used for similar function +; the second possibility is comment section out +; toggle PTT Lock ON - PTT is out of function - RX is possible only +; pøepne PTT Lock ON - je možno pouze pøijímat +Command=41.4C.32.57.42.31.0D.0A +Replylength=14 + +[pmTx] +; not supported - nepodporováno +; section used for similar function +; the second possibility is comment section out +; toggle PTT Lock OFF - PTT is activated - RX and TX is possible +; pøepne PTT Lock OFF +Command=41.4C.32.57.42.30.0D.0A +Replylength=14 + +;------------------------------------------------------------------------------------------------------------------------- +; set mode - nastavení módu +;------------------------------------------------------------------------------------------------------------------------- + +[pmCW_U] +Command=41.4C.32.47.33.0D.0A +ReplyLength=12 + +[pmCW_L] +Command=41.4C.32.47.32.0D.0A +ReplyLength=12 + +[pmSSB_U] +Command=41.4C.32.47.31.0D.0A +ReplyLength=12 + +[pmSSB_L] +Command=41.4C.32.47.30.0D.0A +ReplyLength=12 + +[pmDIG_U] +; not supported - nepodporováno + +[pmDIG_L] +; not supported - nepodporováno + +[pmAM] +Command=41.4C.32.47.34.0D.0A +ReplyLength=12 + +[pmFM] +Command=41.4C.32.47.35.0D.0A +ReplyLength=12 + +;----------------------------------------------------------------------------------------------------------- +; read status - ètení stavu +;----------------------------------------------------------------------------------------------------------- +[STATUS1] +; FRQ's, MODE reading +; ètení kmitoètù a módu +Command=41.4C.33.48.0D.0A +ReplyLength=36 +; reading all three parameters pmFreq, pmFreqA and pmFreqB +; is necessary for correct function of Hamport and BandMaster programs +Value1=16|8|vfText|1|0|pmFreq +Value2=16|8|vfText|1|0|pmFreqA +Value3=26|8|vfText|1|0|pmFreqB +Flag1 =(..........00........................)|pmSSB_L +Flag2 =(..........01........................)|pmSSB_U +Flag3 =(..........02........................)|pmCW_L +Flag4 =(..........03........................)|pmCW_U +Flag5 =(..........04........................)|pmAM +Flag6 =(..........05........................)|pmFM + + +[STATUS2] +; SPLIT state reading +; ètení stavu SPLIT +Command=41.4C.33.49.0D.0A +ReplyLength=12 +Flag1 =(........ON..)|pmSplitOn +Flag2 =(........OF..)|pmSplitOff + +[STATUS3] +; selected VFO reading +; ètení vybraného VFO +Command=41.4C.33.47.0D.0A +ReplyLength=14 +Flag1 =(........VFOA..)|pmVfoAB +Flag2 =(........VFOB..)|pmVfoBA + +[STATUS4] +; RX/TX reading - problem vith variable length of reply +; Alinco's software reply is in state RX "REV" - 3 chars, in state TX "SEND" - 4 chars +; that's why command was not used +; case "SEND" ReplyLength is 14, case "REV" ReplyLength is 13 +; ètení RX/TX problém s ReplyLength: SEND =>14, REV => 13 +; proto nebylo možno použít +; Command=41.4C.33.42.0D.0A +; ReplyLength=13 +; ReplyEnd= +; Flag1=(........SEND..)|pmTx +; Flag1=(........REV..)|pmRx + +[STATUS5] +; RIT reading +; ètení hodnoty RIT +Command=41.4C.33.44.30.0D.0A +ReplyLength=19 +Value1=12|5|vfText|1|0|pmRitOffset + +[STATUS6] +; S-meter reading - Pitch Field is used for display +; For demonstration purposes only - with software "Client.exe" +; normally let comment out +; Value 0.5348 approx. converts LCD SEG to grad "S" +; ètení S-metru - pro zobrazení je použito pole Pitch +; hodnota 0.5348 pøibližnì pøevádí LCD SEG na stupnì "S" +; Command=41.4C.33.41.30.0D.0A +; ReplyLength=16 +; Value1=12|2|vfText|0.5348|0|pmPitch diff --git a/CATCheck/Rigs/Elad-FDMSW2.ini b/CATCheck/Rigs/Elad-FDMSW2.ini new file mode 100644 index 0000000..a85e008 --- /dev/null +++ b/CATCheck/Rigs/Elad-FDMSW2.ini @@ -0,0 +1,174 @@ +;------------------------------------------------------------------------------- +; Elad FDM-SW2 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Tested by Willi, DJ6JZ +;------------------------------------------------------------------------------- + + +;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z +:2014-04-18 adopted from Yaesu FT-897 command set, tested. /DJ6JZ + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.01 +Value=0|4|vfBcdBU|0.1|0 +ReplyLength=1 + +[pmRitOffset] +Command=00000000.F5 +Value=0|4|vfBcdBS|0.1|0 +ReplyLength=1 + +[pmRit0] +Command=00000000.F5 +ReplyLength=1 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000000.02 +ReplyLength=1 + +[pmSplitOff] +Command=00000000.82 +ReplyLength=1 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +Command=00000000.81 +ReplyLength=1 + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +Command=00000000.05 +ReplyLength=1 + +[pmRitOff] +Command=00000000.85 +ReplyLength=1 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=00000000.88 +ReplyLength=1 + +[pmTx] +Command=00000000.08 +ReplyLength=1 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=02.00000007 +ReplyLength=1 + +[pmCW_L] +Command=03.00000007 +ReplyLength=1 + +[pmSSB_U] +Command=01.00000007 +ReplyLength=1 + +[pmSSB_L] +Command=00.00000007 +ReplyLength=1 + +[pmDIG_U] +Command=0A.00000007 +ReplyLength=1 + +[pmDIG_L] +;not supported + +[pmAM] +Command=04.00000007 +ReplyLength=1 + +[pmFM] +Command=08.00000007 +ReplyLength=1 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=00000000.03 +ReplyLength=5 +Value=0|4|vfBcdBU|10|0|pmFreq +Flag1 =00000000.0F|00000000.00|pmSSB_L +Flag2 =00000000.0F|00000000.01|pmSSB_U +Flag3 =00000000.0F|00000000.02|pmCW_U +Flag4 =00000000.0F|00000000.03|pmCW_L +Flag5 =00000000.0F|00000000.04|pmAM +Flag6 =00000000.0F|00000000.06|pmFM +Flag7 =00000000.0F|00000000.08|pmFM +Flag8 =00000000.0F|00000000.0A|pmDIG_U +Flag9 =00000000.0F|00000000.0C|pmDIG_U + +[STATUS2] +Command=00000000.F7 +ReplyLength=1 +Flag1 =20|00|pmSplitOn +Flag2 =20|20|pmSplitOff +Flag3 =80|00|pmTx +Flag4 =80|80|pmRx + + + diff --git a/CATCheck/Rigs/Elecraft K2.ini b/CATCheck/Rigs/Elecraft K2.ini new file mode 100644 index 0000000..62cd0df --- /dev/null +++ b/CATCheck/Rigs/Elecraft K2.ini @@ -0,0 +1,191 @@ +;------------------------------------------------------------------------------- +; Elecraft K2 command set +; +; File created by Brendan Minish EI6IZ ei6iz@oceanfree.net +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;enable extended K2 command set +[INIT1] +Command=(K22;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=(SW10;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SW09;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD6;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD9;) +ReplyLength=0 + +[pmAM] +;not supported + +[pmFM] +;not supported + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +;Flag21=(................................1.....)|pmSplitOn +;Flag21=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/Elecraft K3.ini b/CATCheck/Rigs/Elecraft K3.ini new file mode 100644 index 0000000..c3e3a75 --- /dev/null +++ b/CATCheck/Rigs/Elecraft K3.ini @@ -0,0 +1,195 @@ +;------------------------------------------------------------------------------- +; Elecraft K3 command set +; +; File created by Brendan Minish EI6IZ ei6iz.brendan@gmail.com +; Modified by Iain N6ML ar@dseven.org +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;enable extended K3 command set +[INIT1] +Command=(K31;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=(SWT13;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SWT11;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD7;) +ReplyLength=0 + +[pmCW_L] +Command=(MD3;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD6;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD9;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_L +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_U +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoAB +Flag20=(............................1.1.1.....)|pmVfoBA +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/Elecraft KX2.ini b/CATCheck/Rigs/Elecraft KX2.ini new file mode 100644 index 0000000..8a16879 --- /dev/null +++ b/CATCheck/Rigs/Elecraft KX2.ini @@ -0,0 +1,200 @@ +;------------------------------------------------------------------------------- +; Elecraft KX2 command set +; +; Original K3 file created by Brendan Minish EI6IZ ei6iz.brendan@gmail.com, +; further improved by Iain N6ML ar@dseven.org and Tim KC1EOQ kc1eoq@gmail.com. +; +; Adapted for the KX2 by Björn Ekelund SM7IUN bjorn@ekelund.nu 11/7/2018 +; +; If not required, RIT status polling can commented out to save bandwidth +; at low serial port speeds +; +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +; No auto-info, only polling +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=(SWH44;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SWT44;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; Set CW REV +Command=(MD7;) +ReplyLength=0 + +[pmCW_L] +; Set CW +Command=(MD3;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +; Set DATA +Command=(MD6;) +ReplyLength=0 + +[pmDIG_L] +; Set DATA REV +Command=(MD9;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_L +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_U +Flag13=(.............................7........)|pmCW_U +Flag14=(.............................9........)|pmDIG_L +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoAB +Flag20=(............................1.1.1.....)|pmVfoBA +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB + +[STATUS4] +Command=(RO;) +ReplyEnd=(;) +Validate=(RO.....;) +Value1=2|5|vfText|1|0|pmRitOffset diff --git a/CATCheck/Rigs/Elecraft KX3.ini b/CATCheck/Rigs/Elecraft KX3.ini new file mode 100644 index 0000000..988f502 --- /dev/null +++ b/CATCheck/Rigs/Elecraft KX3.ini @@ -0,0 +1,197 @@ +;------------------------------------------------------------------------------- +; Elecraft KX3 command set +; +; Original K3 file created by Brendan Minish EI6IZ ei6iz.brendan@gmail.com +; Modified by Iain N6ML ar@dseven.org +; +; Tweaked for the KX3 by Tim KC1EOQ kc1eoq@gmail.com 6/14/16 +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;enable extended K3 command set +[INIT1] +Command=(K31;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=(SWT25;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SWT24;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD7;) +ReplyLength=0 + +[pmCW_L] +Command=(MD3;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD6;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD9;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_L +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_U +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoAB +Flag20=(............................1.1.1.....)|pmVfoBA +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/ExpertSDR.ini b/CATCheck/Rigs/ExpertSDR.ini new file mode 100644 index 0000000..3df80fa --- /dev/null +++ b/CATCheck/Rigs/ExpertSDR.ini @@ -0,0 +1,201 @@ +;------------------------------------------------------------------------------- +; ExpertSDR command set +; +; File created by Alexei Chernobai, RX4HX, rx4hx@mail.ru +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=17|6|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/FRG-100.ini b/CATCheck/Rigs/FRG-100.ini new file mode 100644 index 0000000..d44528d --- /dev/null +++ b/CATCheck/Rigs/FRG-100.ini @@ -0,0 +1,81 @@ +;------------------------------------------------------------------------------- +; Yaesu FRG-100 command set +; +; File created by Eckhard Roth +;------------------------------------------------------------------------------- + + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=00.00.00.01.20 +ReplyLength=0 + +[INIT1] +Command=00.00.00.00.05 +ReplyLength=0 + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=00000002.0C +ReplyLength=0 + +[pmSSB_U] +Command=00000001.0C +ReplyLength=0 + +[pmSSB_L] +Command=00000000.0C +ReplyLength=0 + +[pmDIG_U] +Command=00000002.0C +ReplyLength=0 + + +[pmAM] +Command=00000004.0C +ReplyLength=0 + +[pmFM] +Command=00000006.0C +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=00000003.10 +ReplyLength=18 +Value1=1|3|vfBinL|10|0|pmFreq +Flag1=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|pmCW_U +Flag2=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|pmSSB_U +Flag3=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmSSB_L +Flag4=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|pmDIG_U +Flag5=00.00.00.00.00.00.FF.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.04.00.00.00.00.00.00.00.00.00.00.00|pmAM + + diff --git a/CATCheck/Rigs/FT-100 D.ini b/CATCheck/Rigs/FT-100 D.ini new file mode 100644 index 0000000..8c5e248 --- /dev/null +++ b/CATCheck/Rigs/FT-100 D.ini @@ -0,0 +1,177 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-100D command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Corrected by Jim N0UL +; Corrected by VE3NEA 2008-06-14 +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=00000000.0E +ReplyLength=0 + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +;32-bit BCD unsigned little endian in 100 Hz units +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000001.01 +ReplyLength=0 + +[pmSplitOff] +Command=00000000.01 +ReplyLength=0 + +[pmVfoA] +Command=00000000.05 +ReplyLength=0 + +[pmVfoB] +Command=00000001.05 +ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=00000000.0F +ReplyLength=0 + +[pmTx] +Command=00000001.0F +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=00000002.0C +ReplyLength=0 + +[pmCW_L] +Command=00000003.0C +ReplyLength=0 + +[pmSSB_U] +Command=00000001.0C +ReplyLength=0 + +[pmSSB_L] +Command=00000000.0C +ReplyLength=0 + +[pmDIG_U] +Command=00000005.0C +ReplyLength=0 + +[pmDIG_L] +;not supported + +[pmAM] +Command=00000004.0C +ReplyLength=0 + +[pmFM] +Command=00000006.0C +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;4-th byte is a parameter, doc does not explain what it means +Command=000000.00.10 +ReplyLength=32 +;32-bit unsigned integer, big endian, in 1.25 Hz unints +Value2=1|4|vfBinB|1.25|0|pmFreq +;16-bit signed integer, big endian, in 1.25 Hz unints +Value1=10|2|vfYaesu|1.25|0|pmRitOffset +Flag1 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.00.0000000000000000000000000000000000000000000000000000|pmSSB_L +Flag2 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.01.0000000000000000000000000000000000000000000000000000|pmSSB_U +Flag3 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.02.0000000000000000000000000000000000000000000000000000|pmCW_U +Flag4 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.03.0000000000000000000000000000000000000000000000000000|pmCW_L +Flag5 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.04.0000000000000000000000000000000000000000000000000000|pmAM +Flag6 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.05.0000000000000000000000000000000000000000000000000000|pmDIG_U +Flag7 =0000000000.07.0000000000000000000000000000000000000000000000000000|0000000000.06.0000000000000000000000000000000000000000000000000000|pmFM +Flag8 =000000000000000000.01.00000000000000000000000000000000000000000000|000000000000000000.01.00000000000000000000000000000000000000000000|pmSplitOn +Flag9 =000000000000000000.01.00000000000000000000000000000000000000000000|000000000000000000.00.00000000000000000000000000000000000000000000|pmSplitOff +Flag10=000000000000000000000000000000.80.00000000000000000000000000000000|000000000000000000000000000000.80.00000000000000000000000000000000|pmRitOn +Flag11=000000000000000000000000000000.80.00000000000000000000000000000000|000000000000000000000000000000.00.00000000000000000000000000000000|pmRitOff + +[STATUS2] +Command=00000001.FA +ReplyLength=8 +Flag1 =00.04.00.00.00.00.00.00|00.00.00.00.00.00.00.00|pmVfoA +Flag2 =00.04.00.00.00.00.00.00|00.04.00.00.00.00.00.00|pmVfoB +Flag5 =80.00.00.10.00.00.00.00|00.00.00.00.00.00.00.00|pmRx +Flag6 =80.00.00.00.00.00.00.00|80.00.00.00.00.00.00.00|pmTx +Flag7 =00.00.00.10.00.00.00.00|00.00.00.10.00.00.00.00|pmTx diff --git a/CATCheck/Rigs/FT-1000 MP.ini b/CATCheck/Rigs/FT-1000 MP.ini new file mode 100644 index 0000000..c17c2d0 --- /dev/null +++ b/CATCheck/Rigs/FT-1000 MP.ini @@ -0,0 +1,196 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-1000MP command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=00000000.0E +ReplyLength=0 + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=00000000.0A +;32-bit BCD, unsigned, big endian +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmFreqB] +Command=00000000.8A +;32-bit BCD, unsigned, big endian +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;Command=000000FF.09 +;16-bit little endian BCD plus sign byte, 10 Hz units +;Value=0|3|vfBcdLS|0.1|0 +;ReplyLength=0 + +[pmRit0] +Command=000000FF.09 +ReplyLength=0 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000001.01 +ReplyLength=0 + +[pmSplitOff] +Command=00000000.01 +ReplyLength=0 + +[pmVfoA] +Command=00000000.05 +ReplyLength=0 + +[pmVfoB] +Command=00000001.05 +ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +Command=00000001.09 +ReplyLength=0 + +[pmRitOff] +Command=00000000.09 +ReplyLength=0 + +[pmXitOn] +Command=00000081.09 +ReplyLength=0 + +[pmXitOff] +Command=00000080.09 +ReplyLength=0 + +[pmRx] +Command=00000000.0F +ReplyLength=0 + +[pmTx] +Command=00000001.0F +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=00000002.0C +ReplyLength=0 + +[pmCW_L] +Command=00000003.0C +ReplyLength=0 + +[pmSSB_U] +Command=00000001.0C +ReplyLength=0 + +[pmSSB_L] +Command=00000000.0C +ReplyLength=0 + +[pmDIG_U] +Command=00000009.0C +ReplyLength=0 + +[pmDIG_L] +Command=00000008.0C +ReplyLength=0 + +[pmAM] +Command=00000004.0C +ReplyLength=0 + +[pmFM] +Command=00000006.0C +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=00000002.10 +ReplyLength=16 +Value1=5|2|vfBinB|0.625|0|pmRitOffset +Value2=1|4|vfBinB|0.625|0|pmFreq +Flag1 =00000000000000.07.0000000000000000|00000000000000.00.0000000000000000|pmSSB_L +Flag2 =00000000000000.07.0000000000000000|00000000000000.01.0000000000000000|pmSSB_U +Flag3 =00000000000000.07.8000000000000000|00000000000000.02.0000000000000000|pmCW_U +Flag4 =00000000000000.07.8000000000000000|00000000000000.02.8000000000000000|pmCW_L +Flag5 =00000000000000.07.0000000000000000|00000000000000.03.0000000000000000|pmAM +Flag6 =00000000000000.07.0000000000000000|00000000000000.04.0000000000000000|pmFM +Flag7 =00000000000000.07.8000000000000000|00000000000000.05.8000000000000000|pmDIG_U +Flag8 =00000000000000.07.8000000000000000|00000000000000.05.0000000000000000|pmDIG_L +Flag9 =00000000000000.07.0000000000000000|00000000000000.06.0000000000000000|pmDIG_L +Flag10=000000000000000000.01.000000000000|000000000000000000.00.000000000000|pmXitOff +Flag11=000000000000000000.01.000000000000|000000000000000000.01.000000000000|pmXitOn +Flag12=000000000000000000.02.000000000000|000000000000000000.00.000000000000|pmRitOff +Flag13=000000000000000000.02.000000000000|000000000000000000.02.000000000000|pmRitOn + +[STATUS2] +Command=00000003.10 +ReplyLength=32 +Value1=1|4|vfBinB|0.625|0|pmFreqA +Value2=17|4|vfBinB|0.625|0|pmFreqB + +[STATUS3] +Command=00000001.FA +ReplyLength=6 +Flag1=11.00.00.00.00.00|00.00.00.00.00.00|pmVfoAA +Flag2=11.00.00.00.00.00|01.00.00.00.00.00|pmVfoAB +Flag3=11.00.00.00.00.00|11.00.00.00.00.00|pmVfoBA +Flag4=11.00.00.00.00.00|10.00.00.00.00.00|pmVfoBB +Flag5=80.00.00.10.00.00|00.00.00.00.00.00|pmRx +Flag6=80.00.00.00.00.00|80.00.00.00.00.00|pmTx +Flag7=00.00.00.10.00.00|00.00.00.10.00.00|pmTx +Flag8=01.0000000000|01.0000000000|pmSplitOn +Flag9=01.0000000000|00.0000000000|pmSplitOff diff --git a/CATCheck/Rigs/FT-1000.ini b/CATCheck/Rigs/FT-1000.ini new file mode 100644 index 0000000..1d09751 --- /dev/null +++ b/CATCheck/Rigs/FT-1000.ini @@ -0,0 +1,192 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-1000 & 1000D command set +; +; File created by Erkki Latomaa, SM5NBE / SA5N 11/28/2004 +; Not complete but does work - tested under CQWW CW 2004 +; Split / RIT / XIT OK 12/03/2004 SM5NBE +;------------------------------------------------------------------------------- +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + + +[INIT] +Command=00000000.0E +ReplyLength=0 +;------------------------------------------------------------------------------- +; set frequency + +;------------------------------------------------------------------------------- +[pmFreqA] +Command=00000000.0A +;32-bit BCD, unsigned, big endian +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmFreqB] +Command=00000000.8A +;32-bit BCD, unsigned, big endian +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=000000FF.09 +;16-bit little endian BCD plus sign byte, 10 Hz units +Value=0|3|vfBcdLS|0.1|0 +ReplyLength=0 + +[pmRit0] +Command=000000FF.09 +ReplyLength=0 + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000001.01 +ReplyLength=0 + +[pmSplitOff] +Command=00000000.01 +ReplyLength=0 + +[pmVfoA] +Command=00000000.05 +ReplyLength=0 + +[pmVfoB] +Command=00000001.05 +ReplyLength=0 + +[pmVfoEqual] +Command=00000000.85 +ReplyLength=0 + +[pmVfoSwap] +;Command=00000000.05 +;ReplyLength=0 + + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=00000001.09 +ReplyLength=0 + +[pmRitOff] +Command=00000000.09 +ReplyLength=0 + +[pmXitOn] +Command=00000081.09 +ReplyLength=0 + +[pmXitOff] +Command=00000080.09 +ReplyLength=0 + +[pmRx] +Command=00000000.0F +ReplyLength=0 + +[pmTx] +Command=00000001.0F +ReplyLength=0 +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=00000002.0C +ReplyLength=0 + +[pmCW_L] +Command=00000003.0C +ReplyLength=0 + +[pmSSB_U] +Command=00000001.0C +ReplyLength=0 + +[pmSSB_L] +Command=00000000.0C +ReplyLength=0 + +[pmDIG_U] +Command=00000009.0C +ReplyLength=0 + +[pmDIG_L] +Command=00000008.0C +ReplyLength=0 + +[pmAM] +Command=00000004.0C +ReplyLength=0 + +[pmFM] +Command=00000006.0C +ReplyLength=0 +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=00000002.10 +ReplyLength=16 +Value1=5|2|vfBinB|10|0|pmRitOffset +Value2=1|3|vfBinB|10|0|pmFreq +Flag1 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmSSB_L +Flag2 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.01.00.00.00.00.00.00.00.00|pmSSB_U + +Flag3 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.02.00.00.00.00.00.00.00.00|pmCW_U +Flag4 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.02.80.00.00.00.00.00.00.00|pmCW_L + +Flag5 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.03.00.00.00.00.00.00.00.00|pmAM +Flag6 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.04.00.00.00.00.00.00.00.00|pmFM + +Flag7 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.05.80.00.00.00.00.00.00.00|pmDIG_U +Flag8 =00.00.00.00.00.00.00.07.80.00.00.00.00.00.00.00|00.00.00.00.00.00.00.05.00.00.00.00.00.00.00.00|pmDIG_L +Flag9 =00.00.00.00.00.00.00.07.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.06.00.00.00.00.00.00.00.00|pmDIG_L + +Flag10=00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmXitOff +Flag11=00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00|pmXitOn + +Flag12=00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00|pmRitOff +Flag13=00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|00.00.00.00.02.00.00.00.00.00.00.00.00.00.00.00|pmRitOn + +Flag14=00.00.00.00.00.00.10.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.00.10.00.00.00.00.00.00.00.00|pmSplitOn +Flag15=00.00.00.00.00.80.00.00.00.00.00.00.00.00.00.00|00.00.00.00.00.00.08.00.00.00.00.00.00.00.00.00|pmSplitOff + + +[STATUS2] +Command=00000003.10 +ReplyLength=32 +Value1=1|3|vfBinB|10|0|pmFreqA +Value2=17|3|vfBinB|10|0|pmFreqB + +[STATUS3] +Command=00000000.FA +ReplyLength=5 +Flag1 =03.00.00.00.00|00.00.00.00.00|pmVfoAA +Flag2 =03.00.00.00.00|02.00.00.00.00|pmVfoBB +Flag3 =03.00.00.00.00|01.00.00.00.00|pmVfoAB +Flag4 =03.00.00.00.00|03.00.00.00.00|pmVfoBA +Flag7 =80.00.01.00.00|00.00.00.00.00|pmRx +Flag8 =80.00.00.00.00|80.00.00.00.00|pmTx +Flag8 =00.00.01.00.00|00.00.01.00.00|pmTx diff --git a/CATCheck/Rigs/FT-2000.ini b/CATCheck/Rigs/FT-2000.ini new file mode 100644 index 0000000..2e36d54 --- /dev/null +++ b/CATCheck/Rigs/FT-2000.ini @@ -0,0 +1,219 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-2000 +; +; 2006-12-31 - File created by Serge Filonenko UA0SC ua0sc@teleos.ru +; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net +; - Recognize all modes returned by the IF; command +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................A......)|pmFM +Flag15=(....................B......)|pmFM +Flag16=(....................C......)|pmDIG_U +Flag17=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FT-2000PEPV3.ini b/CATCheck/Rigs/FT-2000PEPV3.ini new file mode 100644 index 0000000..8396274 --- /dev/null +++ b/CATCheck/Rigs/FT-2000PEPV3.ini @@ -0,0 +1,215 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-2000 firmware PEPV3 or later +; +; 2009-12-15 - File created by Lou N2TU N2TU@ARRL.net +; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net +; - Recognize all modes returned by the IF; command +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT2;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT3;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................A......)|pmFM +Flag15=(....................B......)|pmFM +Flag16=(....................C......)|pmDIG_U +Flag17=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FT-2KAFSKPEPV3.ini b/CATCheck/Rigs/FT-2KAFSKPEPV3.ini new file mode 100644 index 0000000..463018c --- /dev/null +++ b/CATCheck/Rigs/FT-2KAFSKPEPV3.ini @@ -0,0 +1,221 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-2000 command set ver. 3.0 10-22-2010 +; +; File modified by Dan K3ZXL dan-schaaf@att.net +; THIS FILE IS FOR AFSK RTTY AND PSK, NOT FSK RTTY. PC Sound Card +; must be connected to the Packet Jack on the back of the FT-2000. +; All other modes still are supported. +; Omnirig setup in my PC: 38400, 8, N, 1, RTS Low, DTR Low, +; Poll int 500, Timeout 3000 +; +; For FSK operation, use INI file FT-2KFSKPEPV3.ini +; +; Other users may modify it as necessary. If mods are made and +; tested, please inform Alex, VE3NEA alshovk@dxatlas.com so that he +; can include it in the Omnirig downloads. +; +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT2;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT3;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;MD13;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;MD17;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;MD12;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;MD11;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD0C;MD1C;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD08;MD18;) +ReplyLength=0 + +[pmAM] +Command=(MD05;MD15;) +ReplyLength=0 + +[pmFM] +Command=(MD04;MD14;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................8......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................C......)|pmDIG_U +Flag13=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX \ No newline at end of file diff --git a/CATCheck/Rigs/FT-2KFSKPEPV3.ini b/CATCheck/Rigs/FT-2KFSKPEPV3.ini new file mode 100644 index 0000000..b994b80 --- /dev/null +++ b/CATCheck/Rigs/FT-2KFSKPEPV3.ini @@ -0,0 +1,222 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-2000 command set ver. 3.0 10-22-2010 +; +; File modified by Dan K3ZXL dan-schaaf@att.net +; THIS FILE IS FOR FSK RTTY NOT PSK, NOT AFSK RTTY. TNC must be +; connected to the RTTY FSK Jack on the back of the FT-2000. +; All other modes still are supported. +; Omnirig setup in my PC: 38400, 8, N, 1, RTS Low, DTR Low, +; Poll int 500, Timeout 3000 +; +; For AFSK operation, use INI file FT-2KAFSKPEPV3.in +; +; I do not have a TNC in order to test this file. But I think it will +; work. Other users may modify it as necessary. If mods are made and +; tested, please inform Alex, VE3NEA alshovk@dxatlas.com so that he +; can include it in the Omnirig downloads. +; +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT2;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT3;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;MD13;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;MD17;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;MD12;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;MD11;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;MD19;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;MD16;) +ReplyLength=0 + +[pmAM] +Command=(MD05;MD15;) +ReplyLength=0 + +[pmFM] +Command=(MD04;MD14) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................9......)|pmDIG_U +Flag13=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX \ No newline at end of file diff --git a/CATCheck/Rigs/FT-2K_Readme.txt b/CATCheck/Rigs/FT-2K_Readme.txt new file mode 100644 index 0000000..782f063 --- /dev/null +++ b/CATCheck/Rigs/FT-2K_Readme.txt @@ -0,0 +1,16 @@ +FT-2KAFSKPEPV3.ini, FT-2KFSKPEPV3.ini + +Here is what you do: + +1) Copy the attached files into Program Files/Afreet/Omnirig/Rigs folder +2) Depending if you use FSK or AFSK, you will open Bandmaster then Tools +then Settings then Miscellaneous +Click on Configure and select from the list of INI files either of the 2 INI +files that I just supplied, depending on if you are using FSK or AFSK +Then you are ready to go. +Restart Bandmaster just to be sure that the selection workd. +Now when you click on a cluster spot SPLIT operation, the VFO B should +follow VFO A in Mode , ie., SSB should be on both VFOs or CW or RTTY / +PAcket depending the mode listed in Bandmaster spot. + +Dan Schaaf \ No newline at end of file diff --git a/CATCheck/Rigs/FT-450.ini b/CATCheck/Rigs/FT-450.ini new file mode 100644 index 0000000..85d3a77 --- /dev/null +++ b/CATCheck/Rigs/FT-450.ini @@ -0,0 +1,204 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-450 command set ver. 1.0 30.12.2007 +; +; File created by Serge Filonenko UA0SC ua0sc@teleos.ru +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FT0;) +ReplyLength=0 + +[pmVfoA] +Command=(VS0;) +ReplyLength=0 + +[pmVfoB] +Command=(VS1;) +ReplyLength=0 + +[pmVfoEqual] +Command=(VV;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(VS0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(VS0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(VS1;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(VS1;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................9......)|pmDIG_U +Flag13=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(VS;FT;) +ReplyEnd=(;) +Validate=(VS.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..1.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..1...0.)|pmVfoBA +Flag6=(..1...1.)|pmVfoBB +Flag7=(......1.)|pmSplitOn +Flag8=(......0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX \ No newline at end of file diff --git a/CATCheck/Rigs/FT-450Dmod.ini b/CATCheck/Rigs/FT-450Dmod.ini new file mode 100644 index 0000000..50f387f --- /dev/null +++ b/CATCheck/Rigs/FT-450Dmod.ini @@ -0,0 +1,208 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-450 command set ver. 1.0 30.12.2007 +; +; File created by Serge Filonenko UA0SC ua0sc@teleos.ru +; 2014 Edited by Pavel Zubenko R2DFD +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FT0;) +ReplyLength=0 + +[pmVfoA] +Command=(VS0;) +ReplyLength=0 + +[pmVfoB] +Command=(VS1;) +ReplyLength=0 + +[pmVfoEqual] +Command=(VV;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(VS0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(VS0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(VS1;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(VS1;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD0C;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD08;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................8......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................C......)|pmDIG_U +Flag13=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(VS;FT;) +ReplyLength=8 +Validate=(VS.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..1.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..1...0.)|pmVfoBA +Flag6=(..1...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..1...0.)|pmSplitOn +Flag9=(..0...0.)|pmSplitOff +Flag10=(..1...1.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX +Flag3=(..2.)|pmTX \ No newline at end of file diff --git a/CATCheck/Rigs/FT-747.ini b/CATCheck/Rigs/FT-747.ini new file mode 100644 index 0000000..a9bcdd9 --- /dev/null +++ b/CATCheck/Rigs/FT-747.ini @@ -0,0 +1,161 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-747 command set V-1.00 +; +; by Gintaras LY1GP ly1gp@qrz.lt +; +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;Lowest pacing possible +Command=000000000E +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +;[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=0000000101 +ReplyLength=0 + +[pmSplitOff] +Command=0000000001 +ReplyLength=0 + +[pmVfoA] +Command=0000000005 +ReplyLength=0 + +[pmVfoB] +Command=0000000105 +ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=0000000109 +ReplyLength=0 + +[pmRitOff] +Command=0000000009 +ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=000000000F +ReplyLength=0 + +[pmTx] +Command=000000010F +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;CW Narrow +Command=000000030C +ReplyLength=0 + +[pmCW_L] +;CW Normal +Command=000000020C +ReplyLength=0 + +[pmSSB_U] +Command=000000010C +ReplyLength=0 + +[pmSSB_L] +Command=000000000C +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=000000040C +ReplyLength=0 + +[pmFM] +Command=000000070C +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS] +Command=0000000010 +ReplyLength=345 +;TRX options status +Flag1 = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn +Flag2 = 020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff +Flag3 = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn +Flag4 = 040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff +Flag5 = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB +Flag6 = 080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA +;Mode status (CW with Narrow showed as CW_U, normal as CW_L) +Flag7 = 000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM +Flag8 = 000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag9 = 000000000000000000000000000000000000000000000000820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag10 = 000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L +Flag11 = 000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U +Flag12 = 000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U +Flag13 = 000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L +;TRX TX/RX status +Flag14 = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx +Flag15 = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx +;Get working freq +Value1=1|5|vfBcdBU|1|0|pmFreq +Value3=8|5|vfBcdBU|1|0|pmFreqA +Value4=16|5|vfBcdBU|1|0|pmFreqB diff --git a/CATCheck/Rigs/FT-747GX.ini b/CATCheck/Rigs/FT-747GX.ini new file mode 100644 index 0000000..6410116 --- /dev/null +++ b/CATCheck/Rigs/FT-747GX.ini @@ -0,0 +1,175 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-747GX command set V-1.10 +; +; by Gintaras LY1GP ly1gp@qrz.lt +; adapted to FT-747GX by Bud Leavell AF5YT 4/30/2016 +;Only the first 25 bytes of status return of 345? bytes relevant bud it seemed +;necessary to accept ;a total of 344 bytes to insure a consistent return. +;Apparently, this model only returns 344 bytes instead of 345, and that was the +;reason it was not responding. +;This .ini file supports all of the commands described, but will NOT work with +;Band Master +;Polling interval works at 2000ms, but is unstable at 500ms.At 1000ms, with verify.exe +;it polls too frequently to run the custom command window, but seems to work well +;with the radio. +; +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;Lowest pacing possible +Command=000000000E +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +;[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=0000000101 +ReplyLength=0 + +[pmSplitOff] +Command=0000000001 +ReplyLength=0 + + +[pmVfoA] +Command=0000000005 +ReplyLength=0 + +[pmVfoB] +Command=0000000105 +ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=0000000109 +ReplyLength=0 + +[pmRitOff] +Command=0000000009 +ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=000000000F +ReplyLength=0 + +[pmTx] +Command=000000010F +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;CW Narrow +Command=000000030C +ReplyLength=0 + +[pmCW_L] +;CW Normal +Command=000000020C +ReplyLength=0 + +[pmSSB_U] +Command=000000010C +ReplyLength=0 + +[pmSSB_L] +Command=000000000C +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=000000040C +ReplyLength=0 + +[pmFM] +Command=000000070C +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS] +Command=0000000010 +ReplyLength=344 +;TRX options status +; 1 2 3 3 +; 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344| 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344 +Flag1 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn +Flag2 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff +Flag3 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn +Flag4 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff +Flag5 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB +Flag6 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA +;Mode status (CW with Narrow showed as CW_U, normal as CW_L) +; 1 2 3 4 5 6 7 8 910111213141516171819202122232425 +Flag7 = 0000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM +Flag8 = 0000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag9 = 0000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag10 = 0000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L +Flag11 = 0000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U +Flag12 = 0000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U +Flag13 = 0000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L +;TRX TX/RX status 1 2 3 4 5 6 7 8 9101112131415161718192021222324 +Flag14 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx +Flag15 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx +;Get working freq +Value1=1|5|vfBcdBU|1|0|pmFreq +Value3=8|5|vfBcdBU|1|0|pmFreqA +Value4=16|5|vfBcdBU|1|0|pmFreqB diff --git a/CATCheck/Rigs/FT-747GX1.ini b/CATCheck/Rigs/FT-747GX1.ini new file mode 100644 index 0000000..3864259 --- /dev/null +++ b/CATCheck/Rigs/FT-747GX1.ini @@ -0,0 +1,179 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-747GX1 command set V-1.10 +; +; by Gintaras LY1GP ly1gp@qrz.lt +; adapted to FT-747GX by Bud Leavell AF5YT 5/8/2016 +;Only the first 25 bytes of status return of 345? bytes relevant bud it seemed +;necessary to accept ;a total of 344 bytes to insure a consistent return. +;Apparently, this model only returns 344 bytes instead of 345, and that was the +;reason it was not responding. +;This .ini file suppresses several commands to enable it to work with Band Master. +;Band Master sends several commands at one time to place it into split mode with +;the clarifyier on and individually programms each VFO. Too many commands are +;sent at one time overflowing the input buffer on the radio.Disabling those +;commands limits Band Master to sending only 2 commands to the radio enabling +;Band Master to "tune to freq" +;Polling interval works at 2000ms, but is unstable at 500ms.At 1000ms, with verify.exe +;it polls too frequently to run the custom command window, but seems to work well +;with the radio. +; +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;Lowest pacing possible +Command=000000000E +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +;[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;Command=0000000101 +;ReplyLength=0 + +[pmSplitOff] +;Command=0000000001 +;ReplyLength=0 + + +[pmVfoA] +;Command=0000000005 +;ReplyLength=0 + +[pmVfoB] +;Command=0000000105 +;ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;Command=0000000109 +;ReplyLength=0 + +[pmRitOff] +;Command=0000000009 +;ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=000000000F +ReplyLength=0 + +[pmTx] +Command=000000010F +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;CW Narrow +Command=000000030C +ReplyLength=0 + +[pmCW_L] +;CW Normal +Command=000000020C +ReplyLength=0 + +[pmSSB_U] +Command=000000010C +ReplyLength=0 + +[pmSSB_L] +Command=000000000C +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=000000040C +ReplyLength=0 + +[pmFM] +Command=000000070C +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS] +Command=0000000010 +ReplyLength=344 +;TRX options status +; 1 2 3 3 +; 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344| 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344 +Flag1 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn +Flag2 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff +Flag3 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn +Flag4 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff +Flag5 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB +Flag6 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA +;Mode status (CW with Narrow showed as CW_U, normal as CW_L) +; 1 2 3 4 5 6 7 8 910111213141516171819202122232425 +Flag7 = 0000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM +Flag8 = 0000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag9 = 0000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag10 = 0000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L +Flag11 = 0000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U +Flag12 = 0000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U +Flag13 = 0000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L +;TRX TX/RX status 1 2 3 4 5 6 7 8 9101112131415161718192021222324 +Flag14 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx +Flag15 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx +;Get working freq +Value1=1|5|vfBcdBU|1|0|pmFreq +Value3=8|5|vfBcdBU|1|0|pmFreqA +Value4=16|5|vfBcdBU|1|0|pmFreqB diff --git a/CATCheck/Rigs/FT-747GX2.ini b/CATCheck/Rigs/FT-747GX2.ini new file mode 100644 index 0000000..63eaeab --- /dev/null +++ b/CATCheck/Rigs/FT-747GX2.ini @@ -0,0 +1,183 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-747GX1 command set V-1.10 +; +; by Gintaras LY1GP ly1gp@qrz.lt +; adapted to FT-747GX by Bud Leavell AF5YT 5/10/2016 +;Only the first 25 bytes of status return of 345? bytes relevant bud it seemed +;necessary to accept a total of 344 bytes to insure a consistent return. +;Apparently, this model only returns 344 bytes instead of 345, and that was the +;reason it was not responding. +;This .ini file suppresses several commands to enable it to work with Band Master. +;Band Master sends several commands at one time to place it into split mode with +;the clarifyier on and individually programms each VFO. Too many commands are +;sent at one time overflowing the input buffer on the radio.Disabling those +;commands limits Band Master to sending only 2 commands to the radio enabling +;Band Master to "tune to freq" but still not setting mode. Changed ReplyLength to =1 +;on [pmFreq] & mode commands. This forces the application to send one command, wait +;until timeout and then send the next command. This config and radio now works +;with Band Master and DXtreme DX SpotChecker plus the tune radio buttons on DXTreme +;Station Log. It takes a couple of extra seconds to configure radio but still works. +;Polling interval works at 2000ms, but is too busy at 500ms.At 1000ms, with verify.exe +;it polls too frequently to run the custom command window, but seems to work well +;with the radio and applications. Set timeout to 2000ms or more. +; +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;Lowest pacing possible +Command=000000000E +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=1 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +;[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;Command=0000000101 +;ReplyLength=0 + +[pmSplitOff] +;Command=0000000001 +;ReplyLength=0 + + +[pmVfoA] +;Command=0000000005 +;ReplyLength=0 + +[pmVfoB] +;Command=0000000105 +;ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;Command=0000000109 +;ReplyLength=0 + +[pmRitOff] +;Command=0000000009 +;ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=000000000F +ReplyLength=0 + +[pmTx] +Command=000000010F +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;CW Narrow +Command=000000030C +ReplyLength=1 + +[pmCW_L] +;CW Normal +Command=000000020C +ReplyLength=1 + +[pmSSB_U] +Command=000000010C +ReplyLength=1 + +[pmSSB_L] +Command=000000000C +ReplyLength=1 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=000000040C +ReplyLength=1 + +[pmFM] +Command=000000070C +ReplyLength=1 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS] +Command=0000000010 +ReplyLength=344 +;TRX options status +; 1 2 3 3 +; 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344| 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344 +Flag1 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn +Flag2 = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff +Flag3 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn +Flag4 = 0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff +Flag5 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB +Flag6 = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA +;Mode status (CW with Narrow showed as CW_U, normal as CW_L) +; 1 2 3 4 5 6 7 8 910111213141516171819202122232425 +Flag7 = 0000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM +Flag8 = 0000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag9 = 0000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag10 = 0000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L +Flag11 = 0000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U +Flag12 = 0000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U +Flag13 = 0000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L +;TRX TX/RX status 1 2 3 4 5 6 7 8 9101112131415161718192021222324 +Flag14 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx +Flag15 = 2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx +;Get working freq +Value1=1|5|vfBcdBU|1|0|pmFreq +Value3=8|5|vfBcdBU|1|0|pmFreqA +Value4=16|5|vfBcdBU|1|0|pmFreqB diff --git a/CATCheck/Rigs/FT-757GXII.ini b/CATCheck/Rigs/FT-757GXII.ini new file mode 100644 index 0000000..f3d2a74 --- /dev/null +++ b/CATCheck/Rigs/FT-757GXII.ini @@ -0,0 +1,213 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-757GXII command set +; +; File created by Yuri Klimonov RX3QFY, rx3qfy@mail.ru +; Correct by Alexei Chernobai RX4HX, rx4hx@mail.ru +; Correct by Yuri Klimonov RX3QFY, rx3qfy@mail.ru +; Special thanks Nick Banschikov RN3KK +; Modified by Andrew Chin VK3CHI, chinsta00@hotmail.com +;------------------------------------------------------------------------------- + +;Modifications by VK3CHI: +; - added [pmRitOn], [pmRitOff] commands and status flags +; - added initialisation VFO mode +; - corrected Value multiplier in [pmFreq] +; - corrected status flag bits +; - workaround for receive overrun + + +;see FT-757GXII user manual for CAT instruction code details (code names provided in comments) + +;FT-757GXII does not have an instruction command receive buffer. Workaround is to force non-replying commands to wait for reply timeout. +;Set timeout period to minimum required for radio to execute instruction command (e.g. 150ms). Alternatively, client program must send commands at slower rate. +;timeout 150ms and polling interval 500ms seems to work ok with WSJT-X 2.0.0 + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;M-VFO (copy current memory channel to current VFO, and change to VFO mode) +;4-th byte is a parameter, seems to have no effect on M-VFO instruction code +Command=00000000.06 +ReplyLength=1 +;initialise transceiver in VFO mode +;FREQ SET command will not function if transceiver is in memory mode + +[INIT2] +;RETURN DELAY +Command=00000000.0E +ReplyLength=75 +;set reply transmission delay to 0ms between bytes +;RETURN DELAY command also returns 75 byte transceiver status +;total command and reply communication time = [208.333us*(1+8+2)]*(5+75) + 0ms*75 = 183.333ms + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +;FREQ SET +Command=00000000.0A +ReplyLength=1 +;32-bit BCD unsigned little endian in 10 Hz units +Value=0|4|vfBcdLU|0.1|0 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;SPLIT +Command=00000001.01 +ReplyLength=1 + +[pmSplitOff] +;SPLIT +Command=00000000.01 +ReplyLength=1 + +[pmVfoA] +;VFO A/B +Command=00000000.05 +ReplyLength=1 + +[pmVfoB] +;VFO A/B +Command=00000001.05 +ReplyLength=1 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;CLARIFIER +Command=00000001.09 +ReplyLength=1 + +[pmRitOff] +;CLARIFIER +Command=00000000.09 +ReplyLength=1 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;CW Wide +;MODESEL +Command=00000002.0C +ReplyLength=1 + +[pmCW_L] +;CW Narrow +;MODESEL +Command=00000003.0C +ReplyLength=1 + +[pmSSB_U] +;MODESEL +Command=00000001.0C +ReplyLength=1 + +[pmSSB_L] +;MODESEL +Command=00000000.0C +ReplyLength=1 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +;MODESEL +Command=00000004.0C +ReplyLength=1 + +[pmFM] +;MODESEL +Command=00000005.0C +ReplyLength=1 + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS] +;4-th byte is a parameter, doc does not explain what it means (VK3CHI: it means return digitised S-meter reading. Unimplemented in Omni-Rig.) +;READ STATUS +Command=00000000.10 +ReplyLength=75 +;32-bit BCD unsigned little endian in 10 Hz units +Value1=5|4|vfBcdLU|10|0|pmFreq +Value2=10|4|vfBcdLU|10|0|pmFreqA +Value3=15|4|vfBcdLU|10|0|pmFreqB +; Mode status +; 1 2 3 4 5 6 7 8 9 10 1112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 1 2 3 4 5 6 7 8 9 10 1112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 +Flag1 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_L +Flag2 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.01.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSSB_U +Flag3 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_U +Flag4 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.03.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmCW_L +Flag5 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmAM +Flag6 =000000000000000000.07.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|000000000000000000.05.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmFM +; Transceiver status +; 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 +Flag7 =02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOn +Flag8 =02.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmSplitOff +Flag9 =04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOn +Flag10 =04.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRitOff +Flag11 =08.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoA +Flag12 =08.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|08.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmVfoB +Flag13 =20.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|00.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmRx +Flag14 =20.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|20.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000|pmTx + diff --git a/CATCheck/Rigs/FT-817.ini b/CATCheck/Rigs/FT-817.ini new file mode 100644 index 0000000..e710a27 --- /dev/null +++ b/CATCheck/Rigs/FT-817.ini @@ -0,0 +1,182 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-817 command set +; +; File created by Erkki Latomaa, SM5NBE 28/11 2004 +; +; Updated by Dan Schaaf K3ZXL, dan-schaaf@att.net 9 April 2011 +;------------------------------------------------------------------------------- + + +;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;not required + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.01 +Value=0|4|vfBcdBU|0.1|00 +ReplyLength=1 + +[pmRitOffset] +Command=00000000.01 +Value=0|4|vfBcdBS|0.1|00 +ReplyLength=1 + + +[pmRit0] +Command=00000000.F5 +ReplyLength=1 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000000.02 +ReplyLength=1 + + +[pmSplitOff] +Command=00000000.82 +ReplyLength=1 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +Command=00000000.81 +ReplyLength=1 + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +Command=00000000.05 +ReplyLength=1 + + +[pmRitOff] +Command=00000000.85 +ReplyLength=1 + + +[pmXitOn] +;not supported + + +[pmXitOff] +;not supported + + +[pmRx] +Command=00000000.88 +ReplyLength=1 + + +[pmTx] +Command=00000000.08 +ReplyLength=1 + + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=0200000007 +ReplyLength=1 + +[pmCW_L] +Command=0300000007 +ReplyLength=1 + +[pmSSB_U] +Command=0100000007 +ReplyLength=1 + +[pmSSB_L] +Command=0000000007 +ReplyLength=1 + +[pmDIG_U] +Command=0A00000007 +ReplyLength=1 + +[pmDIG_L] +;Not supported + +[pmAM] +Command=0400000007 +ReplyLength=1 + +[pmFM] +Command=0800000007 +ReplyLength=1 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=0000000003 +ReplyLength=5 +Value1=0|4|vfBcdBU|10|0|pmFreq +Flag1 =00000000.0F|00000000.00|pmSSB_L +Flag2 =00000000.0F|00000000.01|pmSSB_U +Flag3 =00000000.0F|00000000.02|pmCW_U +Flag4 =00000000.0F|00000000.03|pmCW_L +Flag5 =00000000.0F|00000000.04|pmAM +Flag7 =00000000.0F|00000000.06|pmFM +Flag8 =00000000.0F|00000000.08|pmFM +Flag9 =00000000.0F|00000000.0A|pmDIG_U +Flag10 =00000000.0F|00000000.0C|pmDIG_U + +[STATUS2] +Command=00000000.F7 +ReplyLength=1 +Flag1 =20|00|pmSplitOn +Flag2 =20|20|pmSplitOff +Flag3 =80|00|pmTx +Flag4 =80|80|pmRx diff --git a/CATCheck/Rigs/FT-840.ini b/CATCheck/Rigs/FT-840.ini new file mode 100644 index 0000000..8416183 --- /dev/null +++ b/CATCheck/Rigs/FT-840.ini @@ -0,0 +1,190 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-840 command set V-2.02 +; +; File created by Vitaly RA9WOY ra9woy@mail.ru +; +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=000000000E +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmRitOffset] +Command=000000FF.09 +16-bit BCD, little endian, plus sign byte (00 or FF) +Value=0|3|vfBcdLS|0.1|0 +ReplyLength=0 + +[pmRit0] +Command=000000FF.09 +ReplyLength=0 + +;[pmPitch] +;not supported (ýòî èç èñõîäíèêà) + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000001.01 +ReplyLength=0 + +[pmSplitOff] +Command=00000000.01 +ReplyLength=0 + +[pmVfoA] +Command=00000000.05 +ReplyLength=0 + +[pmVfoB] +Command=00000001.05 +ReplyLength=0 + +[pmVfoEqual] +Command=00000000.85 +ReplyLength=0 + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=000000.01.09 +ReplyLength=0 + +[pmRitOff] +Command=00000000.09 +ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=00000000.0F +;ReplyLength=0 +ReplyLength=0 + +[pmTx] +Command=00000001.0F +;ReplyLength=0 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=000000030C +ReplyLength=0 + +[pmCW_L] +Command=000000020C +ReplyLength=0 +;mmmmmy addons + +[pmSSB_U] +Command=000000010C +ReplyLength=0 + +[pmSSB_L] +Command=000000000C +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=000000050C +ReplyLength=0 + +[pmFM] +Command=000000060C +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=000000.02.10 +ReplyLength=19 +Value1=5|2|vfBinB|10|0|pmRitOffset +Value2=2|3|vfBinB|10|0|pmFreq +Flag1 =00000000000000.07.0000000000000000000000|00000000000000.00.0000000000000000000000|pmSSB_L +Flag2 =00000000000000.07.0000000000000000000000|00000000000000.01.0000000000000000000000|pmSSB_U +Flag3 =00000000000000.07.0000000000000000000000|00000000000000.02.0000000000000000000000|pmCW_U +Flag4 =00000000000000.07.0000000000000000000000|00000000000000.03.0000000000000000000000|pmAM +Flag5 =00000000000000.07.0000000000000000000000|00000000000000.04.0000000000000000000000|pmFM +Flag6 =000000000000000000.20.000000000000000000|000000000000000000.00.000000000000000000|pmRitOff +Flag7 =000000000000000000.20.000000000000000000|000000000000000000.20.000000000000000000|pmRitOn + +[STATUS2] +Command=000000.03.10 +ReplyLength=18 +Value1=1|3|vfBinB|10|0|pmFreqA +Value2=10|3|vfBinB|10|0|pmFreqB + +[STATUS3] +Command=000000.01.FA +;åñëè ïîñòàâèòü =0, òî ðèã âîîáùå íå îòçûâàåòñÿ +ReplyLength=5 + +;the rig that was tested returned 0655 instead of 0841 +;àïàðàòóðà, êîòîðàÿ áûëà ïðîâåðåíà, âîçâðàòèëà 0655 âìåñòî 0841 +;Validate=000000.FFFF|000000.0841 +;÷òî åñòü, ÷òî íåò - íå âëèÿåò... + +;doc fails to explain how VFO bits are set +;äîêè íå â ñîñòîÿíèè îáúÿñíèòü, êàê áèòû VFO óñòàíîâëåíû +Flag1 =C4.00.00.00.00|00.00.00.00.00|pmVfoAA +Flag2 =C4.00.00.00.00|04.00.00.00.00|pmVfoAB +Flag3 =C4.00.00.00.00|84.00.00.00.00|pmVfoBA +Flag4 =C4.00.00.00.00|40.00.00.00.00|pmVfoBB + +Flag5 =00.01.80.00.00|00.00.00.00.00|pmRx +;Flag6 =00.01.80.00.00|00.01.00.00.00|pmTx +;Flag7 =00.01.80.00.00|00.00.80.00.00|pmTx +;òàê ðàáîòàþò êíîïêè â êëèåíòå, åñòü èíäèêàöèÿ, íî â eqf èíäèêàöèè íåò... +;Flag6 =00.01.80.00.00|00.01.80.00.00|pmTx +;Flag7 =00.01.80.00.00|00.01.80.00.00|pmTx +;òàê ðàáîòàåò è îò ïåäàëè,êíîïêè è êíîïîê êëèåíòà +;äâå ðàçíûõ ìàñêè-äâà ðàçíûõ ñèãíàëà-îäèí ôëàã-ðåçóëüòàò +Flag6 =00.01.00.00.00|00.01.00.00.00|pmTx +Flag7 =00.00.80.00.00|00.00.80.00.00|pmTx + +Flag8 =04.00.00.00.00|04.00.00.00.00|pmSplitOn +Flag9 =04.00.00.00.00|00.00.00.00.00|pmSplitOff diff --git a/CATCheck/Rigs/FT-847.ini b/CATCheck/Rigs/FT-847.ini new file mode 100644 index 0000000..36928fa --- /dev/null +++ b/CATCheck/Rigs/FT-847.ini @@ -0,0 +1,154 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-847 command set +; +; File created by Bob Barrett, G8HEZ bob.barrett@ntlworld.com +; Modified by Alex VE3NEA +; Modified by Jason G4KVT 18-SEP-2014 +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=00000000.00 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.01 +;32-bit BCD, unsigned, big endian +Value=0|4|vfBcdBU|0.1|00 +ReplyLength=0 + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported +Command=00000000.00 +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=00000000.88 +ReplyLength=0 + +[pmTx] +Command=00000000.08 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=0200000007 +ReplyLength=0 + +[pmCW_L] +Command=0300000007 +ReplyLength=0 + +[pmSSB_U] +Command=0100000007 +ReplyLength=0 + +[pmSSB_L] +Command=0000000007 +ReplyLength=0 + +[pmDIG_U] +;Not supported + +[pmDIG_L] +;Not supported + +[pmAM] +Command=0400000007 +ReplyLength=0 + +[pmFM] +Command=0800000007 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;Get Rig Main VFO Frequ +Command=0000000003 +ReplyLength=5 +;32-bit unsigned BCD, big endian, in 10 Hz unints +Value1=0|4|vfBcdBU|10|0|pmFreq +;check 5 th byte for data match +Flag1 =00000000.07|00000000.00|pmSSB_L +Flag2 =00000000.07|00000000.01|pmSSB_U +Flag3 =00000000.07|00000000.02|pmCW_U +Flag4 =00000000.07|00000000.03|pmCW_L +Flag5 =00000000.07|00000000.04|pmAM +Flag7 =00000000.09|00000000.08|pmFM + +[STATUS2] +Command=00000000.E7 +ReplyLength=1 +Flag1=80|80|pmTx + +[STATUS3] +Command=00000000.F7 +ReplyLength=1 +Flag1=80|80|pmRx diff --git a/CATCheck/Rigs/FT-857.ini b/CATCheck/Rigs/FT-857.ini new file mode 100644 index 0000000..d443a89 --- /dev/null +++ b/CATCheck/Rigs/FT-857.ini @@ -0,0 +1,180 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-857 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + +;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;not required + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.01 +Value=0|4|vfBcdBU|0.1|00 +ReplyLength=1 + +[pmRitOffset] +Command=00000000.01 +Value=0|4|vfBcdBS|0.1|00 +ReplyLength=1 + + +[pmRit0] +Command=00000000.F5 +ReplyLength=1 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000000.02 +ReplyLength=1 + + +[pmSplitOff] +Command=00000000.82 +ReplyLength=1 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +Command=00000000.81 +ReplyLength=1 + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +Command=00000000.05 +ReplyLength=1 + + +[pmRitOff] +Command=00000000.85 +ReplyLength=1 + + +[pmXitOn] +;not supported + + +[pmXitOff] +;not supported + + +[pmRx] +Command=00000000.88 +ReplyLength=1 + + +[pmTx] +Command=00000000.08 +ReplyLength=1 + + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=0200000007 +ReplyLength=1 + +[pmCW_L] +Command=0300000007 +ReplyLength=1 + +[pmSSB_U] +Command=0100000007 +ReplyLength=1 + +[pmSSB_L] +Command=0000000007 +ReplyLength=1 + +[pmDIG_U] +Command=0A00000007 +ReplyLength=1 + +[pmDIG_L] +;Not supported + +[pmAM] +Command=0400000007 +ReplyLength=1 + +[pmFM] +Command=0800000007 +ReplyLength=1 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=0000000003 +ReplyLength=5 +Value1=0|4|vfBcdBU|10|0|pmFreq +Flag1 =00000000.0F|00000000.00|pmSSB_L +Flag2 =00000000.0F|00000000.01|pmSSB_U +Flag3 =00000000.0F|00000000.02|pmCW_U +Flag4 =00000000.0F|00000000.03|pmCW_L +Flag5 =00000000.0F|00000000.04|pmAM +Flag7 =00000000.0F|00000000.06|pmFM +Flag8 =00000000.0F|00000000.08|pmFM +Flag9 =00000000.0F|00000000.0A|pmDIG_U +Flag10 =00000000.0F|00000000.0C|pmDIG_U + +[STATUS2] +Command=00000000.F7 +ReplyLength=1 +Flag1 =20|00|pmSplitOn +Flag2 =20|20|pmSplitOff +Flag3 =80|00|pmTx +Flag4 =80|80|pmRx diff --git a/CATCheck/Rigs/FT-891.ini b/CATCheck/Rigs/FT-891.ini new file mode 100644 index 0000000..d309efc --- /dev/null +++ b/CATCheck/Rigs/FT-891.ini @@ -0,0 +1,192 @@ +;-------------------------------------------------------------------------------; +;Yaesu FT-891 +; +; 2018/01/17 Modified by Bunshiro Tamura JA5FNX from the FT-5000MP Tnx Ram VU3RCN +; +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA.........;) +Value=2|9|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB.........;) +Value=2|9|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(ST1;) +ReplyLength=0 + +[pmSplitOff] +Command=(ST0;) +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(CF1;) +ReplyLength=0 + +[pmRitOff] +Command=(CF0;) +ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF.........................;) +Value1=14|5|vfText|1|0|pmRitOffset +Value2=5|9|vfText|1|0|pmFreq +Flag1 =(...................0........)|pmRitOff +Flag2 =(...................1........)|pmRitOn +Flag3 =(....................0.......)|pmXitOff +Flag4 =(....................1.......)|pmXitOn +Flag5 =(.....................1......)|pmSSB_L +Flag6 =(.....................2......)|pmSSB_U +Flag7 =(.....................3......)|pmCW_U +Flag8 =(.....................4......)|pmFM +Flag9 =(.....................5......)|pmAM +Flag10=(.....................6......)|pmDIG_L +Flag11=(.....................7......)|pmCW_L +Flag12=(.....................9......)|pmDIG_U +Flag13=(...............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA.........;) +Value1=2|9|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB.........;) +Value1=2|9|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +;not supported + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FT-897.ini b/CATCheck/Rigs/FT-897.ini new file mode 100644 index 0000000..3c2f5fd --- /dev/null +++ b/CATCheck/Rigs/FT-897.ini @@ -0,0 +1,170 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-897 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Tested by Elijah, KC0RDG +;------------------------------------------------------------------------------- + + +;2005-09-12 Changed ReplyLength=0 to ReplyLength=1. Works better now. /SM2Z + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.01 +Value=0|4|vfBcdBU|0.1|0 +ReplyLength=1 + +[pmRitOffset] +Command=00000000.F5 +Value=0|4|vfBcdBS|0.1|0 +ReplyLength=1 + +[pmRit0] +Command=00000000.F5 +ReplyLength=1 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000000.02 +ReplyLength=1 + +[pmSplitOff] +Command=00000000.82 +ReplyLength=1 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +Command=00000000.81 +ReplyLength=1 + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +Command=00000000.05 +ReplyLength=1 + +[pmRitOff] +Command=00000000.85 +ReplyLength=1 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=00000000.88 +ReplyLength=1 + +[pmTx] +Command=00000000.08 +ReplyLength=1 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=02.00000007 +ReplyLength=1 + +[pmCW_L] +Command=03.00000007 +ReplyLength=1 + +[pmSSB_U] +Command=01.00000007 +ReplyLength=1 + +[pmSSB_L] +Command=00.00000007 +ReplyLength=1 + +[pmDIG_U] +Command=0A.00000007 +ReplyLength=1 + +[pmDIG_L] +;not supported + +[pmAM] +Command=04.00000007 +ReplyLength=1 + +[pmFM] +Command=08.00000007 +ReplyLength=1 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=00000000.03 +ReplyLength=5 +Value=0|4|vfBcdBU|10|0|pmFreq +Flag1 =00000000.0F|00000000.00|pmSSB_L +Flag2 =00000000.0F|00000000.01|pmSSB_U +Flag3 =00000000.0F|00000000.02|pmCW_U +Flag4 =00000000.0F|00000000.03|pmCW_L +Flag5 =00000000.0F|00000000.04|pmAM +Flag6 =00000000.0F|00000000.06|pmFM +Flag7 =00000000.0F|00000000.08|pmFM +Flag8 =00000000.0F|00000000.0A|pmDIG_U +Flag9 =00000000.0F|00000000.0C|pmDIG_U + +[STATUS2] +Command=00000000.F7 +ReplyLength=1 +Flag1 =20|00|pmSplitOn +Flag2 =20|20|pmSplitOff +Flag3 =80|00|pmTx +Flag4 =80|80|pmRx diff --git a/CATCheck/Rigs/FT-900.ini b/CATCheck/Rigs/FT-900.ini new file mode 100644 index 0000000..f210d69 --- /dev/null +++ b/CATCheck/Rigs/FT-900.ini @@ -0,0 +1,187 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-900 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=000000000E +ReplyLength=0 + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmRitOffset] +Command=000000FF.09 +16-bit BCD, little endian, plus sign byte (00 or FF) +Value=0|3|vfBcdLS|0.1|0 +ReplyLength=0 + +[pmRit0] +Command=000000FF.09 +ReplyLength=0 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000001.01 +ReplyLength=0 + +[pmSplitOff] +Command=00000000.01 +ReplyLength=0 + +[pmVfoA] +Command=00000000.05 +ReplyLength=0 + +[pmVfoB] +Command=00000001.05 +ReplyLength=0 + +[pmVfoEqual] +Command=00000000.85 +ReplyLength=0 + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=000000.01.09 +ReplyLength=0 + +[pmRitOff] +Command=00000000.09 +ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=00000000.0F +ReplyLength=0 + +[pmTx] +Command=00000001.0F +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=000000030C +ReplyLength=0 + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=000000010C +ReplyLength=0 + +[pmSSB_L] +Command=000000000C +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=000000050C +ReplyLength=0 + +[pmFM] +Command=000000060C +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=000000.02.10 +ReplyLength=19 +Value1=5|2|vfBinB|10|0|pmRitOffset +Value2=2|3|vfBinB|10|0|pmFreq +Flag1 =00000000000000.07.0000000000000000000000|00000000000000.00.0000000000000000000000|pmSSB_L +Flag2 =00000000000000.07.0000000000000000000000|00000000000000.01.0000000000000000000000|pmSSB_U +Flag3 =00000000000000.07.0000000000000000000000|00000000000000.02.0000000000000000000000|pmCW_U +Flag4 =00000000000000.07.0000000000000000000000|00000000000000.03.0000000000000000000000|pmAM +Flag5 =00000000000000.07.0000000000000000000000|00000000000000.04.0000000000000000000000|pmFM +Flag6 =000000000000000000.20.000000000000000000|000000000000000000.00.000000000000000000|pmRitOff +Flag7 =000000000000000000.20.000000000000000000|000000000000000000.20.000000000000000000|pmRitOn + +[STATUS2] +Command=000000.03.10 +ReplyLength=18 +Value1=1|3|vfBinB|10|0|pmFreqA +Value2=10|3|vfBinB|10|0|pmFreqB + +[STATUS3] +Command=000000.01.FA +ReplyLength=5 + +;the rig that was tested returned 0655 instead of 0841 +;Validate=000000.FFFF|000000.0841 + +;doc fails to explain how VFO bits are set +Flag1 =C4.00.00.00.00|00.00.00.00.00|pmVfoAA +Flag2 =C4.00.00.00.00|04.00.00.00.00|pmVfoAB +Flag3 =C4.00.00.00.00|84.00.00.00.00|pmVfoBA +Flag4 =C4.00.00.00.00|40.00.00.00.00|pmVfoBB + +Flag5 =00.01.80.00.00|00.00.00.00.00|pmRx +Flag6 =00.01.80.00.00|00.01.00.00.00|pmTx +Flag7 =00.01.80.00.00|00.00.80.00.00|pmTx +Flag8 =04.00.00.00.00|04.00.00.00.00|pmSplitOn +Flag9 =04.00.00.00.00|00.00.00.00.00|pmSplitOff diff --git a/CATCheck/Rigs/FT-920.ini b/CATCheck/Rigs/FT-920.ini new file mode 100644 index 0000000..d64597c --- /dev/null +++ b/CATCheck/Rigs/FT-920.ini @@ -0,0 +1,200 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-920 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=000000000E +ReplyLength=0 + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=00000000.0A +;32-bit BCD, unsigned, little endian, in 10 Hz units +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmFreqB] +;32-bit BCD, unsigned, little endian, in 10 Hz units +Command=00000000.8A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=10 + +[pmFreq] +;not supported + +[pmRitOffset] +;Command=000000FF.09 +;16-bit BCD, little endian, plus sign byte (00 or FF) +;Value=0|3|vfBcdL|0.1|0 +;ReplyLength=0 + +[pmRit0] +Command=000000FF.09 +ReplyLength=0 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000001.01 +ReplyLength=0 + +[pmSplitOff] +Command=00000000.01 +ReplyLength=0 + +[pmVfoA] +Command=00000000.05 +ReplyLength=0 + +[pmVfoB] +Command=00000001.05 +ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=000000.01.09 +ReplyLength=0 + +[pmRitOff] +Command=00000000.09 +ReplyLength=0 + +[pmXitOn] +Command=00000081.09 +ReplyLength=0 + +[pmXitOff] +Command=00000080.09 +ReplyLength=0 + +[pmRx] +;not supported? +Command=00000000.0F +ReplyLength=0 + +[pmTx] +;not supported? +Command=00000001.0F +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=000000020C.000000820C +ReplyLength=0 + +[pmCW_L] +Command=000000030C.000000830C +ReplyLength=0 + +[pmSSB_U] +Command=000000010C.000000810C +ReplyLength=0 + +[pmSSB_L] +Command=000000000C.000000800C +ReplyLength=0 + +[pmDIG_U] +Command=0000000A0C.0000008A0C +ReplyLength=0 + +[pmDIG_L] +Command=000000080C.000000880C +ReplyLength=0 + +[pmAM] +Command=000000040C.000000840C +ReplyLength=0 + +[pmFM] +Command=000000060C.000000860C +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=00000002.10 +ReplyLength=28 +;16-bit signed integer, big endian, in 1 Hz units +Value1=5|2|vfBinB|1|0|pmRitOffset +;32-bit unsigned integer, big endian, in 1Hz units +Value2=1|4|vfBinB|1|0|pmFreq +Flag1 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.41.000000000000.0000000000000000000000000000|pmCW_U +Flag2 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.01.000000000000.0000000000000000000000000000|pmCW_L +Flag3 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.40.000000000000.0000000000000000000000000000|pmSSB_U +Flag4 =00000000000000.47.000000000000.0000000000000000000000000000|00000000000000.00.000000000000.0000000000000000000000000000|pmSSB_L +Flag5 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.05.000000000000.0000000000000000000000000000|pmDIG_U +Flag6 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.04.000000000000.0000000000000000000000000000|pmDIG_L +Flag7 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.02.000000000000.0000000000000000000000000000|pmAM +Flag8 =00000000000000.07.000000000000.0000000000000000000000000000|00000000000000.03.000000000000.0000000000000000000000000000|pmFM +Flag9 =0000000000000000.01.0000000000.0000000000000000000000000000|0000000000000000.00.0000000000.0000000000000000000000000000|pmXitOff +Flag10=0000000000000000.01.0000000000.0000000000000000000000000000|0000000000000000.01.0000000000.0000000000000000000000000000|pmXitOn +Flag11=0000000000000000.02.0000000000.0000000000000000000000000000|0000000000000000.00.0000000000.0000000000000000000000000000|pmRitOff +Flag12=0000000000000000.02.0000000000.0000000000000000000000000000|0000000000000000.02.0000000000.0000000000000000000000000000|pmRitOn + +[STATUS2] +Command=00000003.10 +ReplyLength=28 +;32-bit unsigned integer, big endian, in 1Hz units +Value1=1|4|vfBinB|1|0|pmFreqA +Value2=15|4|vfBinB|1|0|pmFreqB + +[STATUS3] +Command=00000001.FA +ReplyLength=8 +Flag1 =13.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00|pmVfoAA +Flag2 =13.00.00.00.00.00.00.00|01.00.00.00.00.00.00.00|pmVfoAB +Flag3 =13.00.00.00.00.00.00.00|02.00.00.00.00.00.00.00|pmVfoBA +Flag4 =10.00.00.00.00.00.00.00|10.00.00.00.00.00.00.00|pmVfoBB +Flag5 =80.00.00.10.00.00.00.00|00.00.00.00.00.00.00.00|pmRx +Flag6 =80.00.00.00.00.00.00.00|80.00.00.00.00.00.00.00|pmTx +Flag7 =00.00.00.10.00.00.00.00|00.00.00.10.00.00.00.00|pmTx +Flag8 =03.00.00.00.00.00.00.00|01.00.00.00.00.00.00.00|pmSplitOn +Flag9 =03.00.00.00.00.00.00.00|02.00.00.00.00.00.00.00|pmSplitOn +Flag10=03.00.00.00.00.00.00.00|00.00.00.00.00.00.00.00|pmSplitOff diff --git a/CATCheck/Rigs/FT-950.ini b/CATCheck/Rigs/FT-950.ini new file mode 100644 index 0000000..df562a9 --- /dev/null +++ b/CATCheck/Rigs/FT-950.ini @@ -0,0 +1,216 @@ +;------------------------------------------------------------------------------- +; +; Yaesu FT-950 command set ver. 2.0 20.02.2010 +; File created by 5P5R / OZ6ABM oz6abm@qsl.net +; 10.08.2013 modified by SP8ALC to solve problem with entering SPLIT mode +; on every click on any spot +; was : modified : +; [pmSplitOff] +; Command=(FR0;FT0;) (command=(FR0;FT2;) +; ReplyLength=0 +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RC;R.....;) +Value=4|5|vfTextUD|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR4;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR4;FT2;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR4;FT3;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................8......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................C......)|pmDIG_U +Flag13=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..4.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..4...0.)|pmVfoBA +Flag6=(..4...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX \ No newline at end of file diff --git a/CATCheck/Rigs/FT-990.ini b/CATCheck/Rigs/FT-990.ini new file mode 100644 index 0000000..8857634 --- /dev/null +++ b/CATCheck/Rigs/FT-990.ini @@ -0,0 +1,191 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-990 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; +; Tested by: Garrett Brandt, AA0OI +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=00000000.0E +ReplyLength=0 + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=00000000.0A +Value=0|4|vfBcdLU|0.1|0 +ReplyLength=0 + +[pmRitOffset] +;perhaps this can be construsted as Clear RIT + RIT Up + +[pmRit0] +Command=000000FF.09 +ReplyLength=0 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=00000001.01 +ReplyLength=0 + +[pmSplitOff] +Command=00000000.01 +ReplyLength=0 + +[pmVfoA] +Command=00000000.05 +ReplyLength=0 + +[pmVfoB] +Command=00000001.05 +ReplyLength=0 + +[pmVfoEqual] +Command=00000000.85 +ReplyLength=0 + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +Command=00000001.09 +ReplyLength=0 + +[pmRitOff] +Command=00000000.09 +ReplyLength=0 + +[pmXitOn] +Command=00000081.09 +ReplyLength=0 + +[pmXitOff] +Command=00000080.09 +ReplyLength=0 + +[pmRx] +Command=00000000.0F +ReplyLength=0 + +[pmTx] +Command=00000001.0F +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=00000003.0C +ReplyLength=0 + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=00000001.0C +ReplyLength=0 + +[pmSSB_L] +Command=00000000.0C +ReplyLength=0 + +[pmDIG_U] +Command=00000009.0C +ReplyLength=0 + +[pmDIG_L] +Command=00000008.0C +ReplyLength=0 + +[pmAM] +Command=00000005.0C +ReplyLength=0 + +[pmFM] +Command=00000006.0C +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=00000002.10 +ReplyLength=32 +;scale? B/L endian? +Value1=5|2|vfBinB|10|0|pmRitOffset +Value2=1|3|vfBinB|10|0|pmFreq +Flag1 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.00.000000000000000000000000000000000000000000000000|pmSSB_L +Flag2 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.01.000000000000000000000000000000000000000000000000|pmSSB_U +Flag3 =00000000000000.07.800000000000000000000000000000000000000000000000|00000000000000.02.000000000000000000000000000000000000000000000000|pmCW_U +Flag5 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.03.000000000000000000000000000000000000000000000000|pmAM +Flag6 =00000000000000.07.000000000000000000000000000000000000000000000000|00000000000000.04.000000000000000000000000000000000000000000000000|pmFM +Flag7 =00000000000000.07.800000000000000000000000000000000000000000000000|00000000000000.05.800000000000000000000000000000000000000000000000|pmDIG_U +Flag10=00000000.01.000000000000000000000000000000000000000000000000000000|00000000.00.000000000000000000000000000000000000000000000000000000|pmXitOff +Flag11=00000000.01.000000000000000000000000000000000000000000000000000000|00000000.01.000000000000000000000000000000000000000000000000000000|pmXitOn +Flag12=00000000.02.000000000000000000000000000000000000000000000000000000|00000000.00.000000000000000000000000000000000000000000000000000000|pmRitOff +Flag13=00000000.02.000000000000000000000000000000000000000000000000000000|00000000.02.000000000000000000000000000000000000000000000000000000|pmRitOn + + +[STATUS2] +Command=00000003.10 +ReplyLength=32 +Value1=1|3|vfBinB|10|0|pmFreqA +Value2=17|3|vfBinB|10|0|pmFreqB + + +[STATUS3] +Command=00000000.FA +ReplyLength=5 +Flag1 =03.00.00.00.00|00.00.00.00.00|pmVfoAA +Flag2 =03.00.00.00.00|02.00.00.00.00|pmVfoBB +Flag3 =03.00.00.00.00|01.00.00.00.00|pmVfoAB +Flag4 =03.00.00.00.00|03.00.00.00.00|pmVfoBA +Flag5 =01.00.00.00.00|00.00.00.00.00|pmSplitOff +Flag6 =01.00.00.00.00|01.00.00.00.00|pmSplitOn +Flag7 =80.00.01.00.00|00.00.00.00.00|pmRx +Flag8 =80.00.00.00.00|80.00.00.00.00|pmTx +Flag8 =00.00.01.00.00|00.00.01.00.00|pmTx diff --git a/CATCheck/Rigs/FT-991-DATA.ini b/CATCheck/Rigs/FT-991-DATA.ini new file mode 100644 index 0000000..b8aea44 --- /dev/null +++ b/CATCheck/Rigs/FT-991-DATA.ini @@ -0,0 +1,211 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-991-DATA +; +; Same as FT-991, but DIG modes select DATA-USB and DATA-LSB instead of RTTY-USB +; and RTTY-LSB. +; +; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net +; +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA.........;) +Value=2|9|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB.........;) +Value=2|9|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FT2;) +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FT2;) +ReplyLength=0 + +[pmVfoAB] +Command=(FT3;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD0C;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD08;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF.........................;) +Value1=14|5|vfText|1|0|pmRitOffset +Value2=5|9|vfText|1|0|pmFreq +Flag1 =(...................0........)|pmRitOff +Flag2 =(...................1........)|pmRitOn +Flag3 =(....................0.......)|pmXitOff +Flag4 =(....................1.......)|pmXitOn +Flag5 =(.....................1......)|pmSSB_L +Flag6 =(.....................2......)|pmSSB_U +Flag7 =(.....................3......)|pmCW_U +Flag8 =(.....................4......)|pmFM +Flag9 =(.....................5......)|pmAM +Flag10=(.....................6......)|pmDIG_L +Flag11=(.....................7......)|pmCW_L +Flag12=(.....................8......)|pmDIG_L +Flag13=(.....................9......)|pmDIG_U +Flag14=(.....................A......)|pmFM +Flag15=(.....................B......)|pmFM +Flag16=(.....................C......)|pmDIG_U +Flag17=(.....................D......)|pmAM +Flag18=(.....................E......)|pmFM +Flag19=(...............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA.........;) +Value1=2|9|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB.........;) +Value1=2|9|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FT;) +ReplyEnd=(;) +Validate=(FT.;) +Flag1=(..1.)|pmSplitOn +Flag2=(..0.)|pmSplitOff +Flag3=(..0.)|pmVfoAA +Flag4=(..1.)|pmVfoAB + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FT-991.ini b/CATCheck/Rigs/FT-991.ini new file mode 100644 index 0000000..5af9392 --- /dev/null +++ b/CATCheck/Rigs/FT-991.ini @@ -0,0 +1,211 @@ +;------------------------------------------------------------------------------- +; Yaesu FT-991 +; +; 2015/07/11 modified by Bunshiro Tamura JA5FNX from the FT-5000MP +; 2015/12/28 modified by R. A. Wilson, N6TV, to fix the [pmPitch] command +; 2016/01/02 modified by R. A. Wilson, N6TV, to fix the pmSplitOn/pmSplitOff status +; 2018/05/01 modified by R. A. Wilson, N6TV, to recognize all modes returned by IF; +; +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA.........;) +Value=2|9|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB.........;) +Value=2|9|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FT2;) +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FT2;) +ReplyLength=0 + +[pmVfoAB] +Command=(FT3;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF.........................;) +Value1=14|5|vfText|1|0|pmRitOffset +Value2=5|9|vfText|1|0|pmFreq +Flag1 =(...................0........)|pmRitOff +Flag2 =(...................1........)|pmRitOn +Flag3 =(....................0.......)|pmXitOff +Flag4 =(....................1.......)|pmXitOn +Flag5 =(.....................1......)|pmSSB_L +Flag6 =(.....................2......)|pmSSB_U +Flag7 =(.....................3......)|pmCW_U +Flag8 =(.....................4......)|pmFM +Flag9 =(.....................5......)|pmAM +Flag10=(.....................6......)|pmDIG_L +Flag11=(.....................7......)|pmCW_L +Flag12=(.....................8......)|pmDIG_L +Flag13=(.....................9......)|pmDIG_U +Flag14=(.....................A......)|pmFM +Flag15=(.....................B......)|pmFM +Flag16=(.....................C......)|pmDIG_U +Flag17=(.....................D......)|pmAM +Flag18=(.....................E......)|pmFM +Flag19=(...............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA.........;) +Value1=2|9|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB.........;) +Value1=2|9|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FT;) +ReplyEnd=(;) +Validate=(FT.;) +Flag1=(..1.)|pmSplitOn +Flag2=(..0.)|pmSplitOff +Flag3=(..0.)|pmVfoAA +Flag4=(..1.)|pmVfoAB + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FTDX-1200-DATA.ini b/CATCheck/Rigs/FTDX-1200-DATA.ini new file mode 100644 index 0000000..6e7c0f9 --- /dev/null +++ b/CATCheck/Rigs/FTDX-1200-DATA.ini @@ -0,0 +1,221 @@ +;------------------------------------------------------------------------------- +; Yaesu FTDX-1200-DATA +; +; Same as FTDX-1200, but DIG modes select DATA-USB and DATA-LSB instead of RTTY-USB +; and RTTY-LSB (like prior FTDX-1200.ini) +; +; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +; DATA-USB. Use FTDX-1200.ini for RTTY-USB +[pmDIG_U] +Command=(MD0C;) +ReplyLength=0 + +; DATA-LSB. Use FTDX-1200.ini for RTTY-LSB +[pmDIG_L] +Command=(MD08;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................B......)|pmFM +Flag15=(....................C......)|pmDIG_U +Flag16=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FTDX-1200.ini b/CATCheck/Rigs/FTDX-1200.ini new file mode 100644 index 0000000..2593ed7 --- /dev/null +++ b/CATCheck/Rigs/FTDX-1200.ini @@ -0,0 +1,224 @@ +;------------------------------------------------------------------------------- +; Yaesu FTDX-1200 +; +; 2015-06-04 - File created by Philippe CHARDON F5FDV ph.chardon@laposte.net +; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net: +; - Digital modes now select RTTY insted of DATA modes +; (use FTDX-1200-DATA.ini for DATA modes) +; - Recognize all modes returned by IF; command +; - Fix pmPitch command and status +; - Corrected CR/LF errors +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +; update: Now RTTY-USB. Use FTDX-1200-DATA.ini for DATA-USB. +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +; update: Now RTTY-LSB. Use FTDX-1200-DATA.ini for DATA-LSB. +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................B......)|pmFM +Flag15=(....................C......)|pmDIG_U +Flag16=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FTDX-3000-DATA.ini b/CATCheck/Rigs/FTDX-3000-DATA.ini new file mode 100644 index 0000000..594eb11 --- /dev/null +++ b/CATCheck/Rigs/FTDX-3000-DATA.ini @@ -0,0 +1,221 @@ +;------------------------------------------------------------------------------- +; Yaesu FTDX-3000-DATA +; +; Same as FTDX-3000, but DIG modes select PKT-U and PKT-L instead of RTTY-USB +; and RTTY-LSB. +; +; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD0C;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD08;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................B......)|pmFM +Flag15=(....................C......)|pmDIG_U +Flag16=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyLength=4 +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX +Flag3=(..2.)|pmTX diff --git a/CATCheck/Rigs/FTDX-3000.ini b/CATCheck/Rigs/FTDX-3000.ini new file mode 100644 index 0000000..b1f4c5b --- /dev/null +++ b/CATCheck/Rigs/FTDX-3000.ini @@ -0,0 +1,222 @@ +;------------------------------------------------------------------------------- +; Yaesu FTDX-3000 +; +; 2014-10-21 - File created by Paul Jones paul@nn4f.com +; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net: +; - Copied and renamed FTdx3000.ini to FTDX-3000.ini +; - Recognize all modes returned by IF; command +; - Fix pmPitch command and status +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT0;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................B......)|pmFM +Flag15=(....................C......)|pmDIG_U +Flag16=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyLength=4 +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX +Flag3=(..2.)|pmTX diff --git a/CATCheck/Rigs/FTDX-5000MP-DATA.ini b/CATCheck/Rigs/FTDX-5000MP-DATA.ini new file mode 100644 index 0000000..8f19aec --- /dev/null +++ b/CATCheck/Rigs/FTDX-5000MP-DATA.ini @@ -0,0 +1,219 @@ +;------------------------------------------------------------------------------- +; Yaesu FTDX-5000MP-DATA +; +; Same as FTDX-5000MP, but DIG modes select PKT-U and PKT-L instead of RTTY-USB +; and RTTY-LSB +; +; 2018-05-01 Created by Bob Wilson, N6TV, n6tv@arrl.net +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT2;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT3;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD0C;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD08;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................A......)|pmFM +Flag15=(....................B......)|pmFM +Flag16=(....................C......)|pmDIG_U +Flag17=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +Validate=(FR.;FT.;) +Flag1=(..0...0.)|pmVfoAA +Flag2=(..0...1.)|pmVfoAB +Flag3=(..2...0.)|pmVfoAA +Flag4=(..2...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...0.)|pmSplitOff +Flag8=(..0...1.)|pmSplitOn +Flag9=(..2...0.)|pmSplitOff +Flag10=(..2...1.)|pmSplitOn +Flag11=(..3...0.)|pmSplitOn +Flag12=(..3...1.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FTDX-5000MP.ini b/CATCheck/Rigs/FTDX-5000MP.ini new file mode 100644 index 0000000..7ee07fd --- /dev/null +++ b/CATCheck/Rigs/FTDX-5000MP.ini @@ -0,0 +1,219 @@ +;------------------------------------------------------------------------------- +; Yaesu FTDX-5000MP +; +; 2009-09-29 - File created by DANILO IZ0PUE THE_HAWK@TELVIA.IT +; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net: +; - Recognize all modes returned by IF; command +; - Fix pmPitch command and status +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.1|-30 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT2;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT3;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................A......)|pmFM +Flag15=(....................B......)|pmFM +Flag16=(....................C......)|pmDIG_U +Flag17=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|10|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +Validate=(FR.;FT.;) +Flag1=(..0...0.)|pmVfoAA +Flag2=(..0...1.)|pmVfoAB +Flag3=(..2...0.)|pmVfoAA +Flag4=(..2...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...0.)|pmSplitOff +Flag8=(..0...1.)|pmSplitOn +Flag9=(..2...0.)|pmSplitOff +Flag10=(..2...1.)|pmSplitOn +Flag11=(..3...0.)|pmSplitOn +Flag12=(..3...1.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/FTDX-9000.ini b/CATCheck/Rigs/FTDX-9000.ini new file mode 100644 index 0000000..87a7e66 --- /dev/null +++ b/CATCheck/Rigs/FTDX-9000.ini @@ -0,0 +1,220 @@ +;------------------------------------------------------------------------------- +; Yaesu FTDX-9000 +; +; 2009-12-07 - File created by N2TU@arrl.net as FT-9000v1.ini +; 2018-05-01 - File updated by R. A. Wilson N6TV n6tv@arrl.net: +; - Copied and renamed FT-9000v1.ini to FTDX-9000.ini +; - Recognize all modes returned by IF; command +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +Command=(FA........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB........;) +Value=2|8|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +Command=(RU....;) +Value=2|4|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(KP..;) +Value=2|2|vfText|0.02|-300 +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmSplitOff] +Command=(FR0;FT2;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR3;) +ReplyLength=0 + +[pmVfoEqual] +Command=(AB;) +ReplyLength=0 + +[pmVfoSwap] +Command=(SV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT3;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR3;FT2;) +ReplyLength=0 + +[pmVfoBB] +Command=(FR3;FT3;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmRx] +Command=(TX0;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD03;) +ReplyLength=0 + +[pmCW_L] +Command=(MD07;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD02;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD01;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD09;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD06;) +ReplyLength=0 + +[pmAM] +Command=(MD05;) +ReplyLength=0 + +[pmFM] +Command=(MD04;) +ReplyLength=0 + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF........................;) +Value1=13|5|vfText|1|0|pmRitOffset +Value2=5|8|vfText|1|0|pmFreq +Flag1 =(..................0........)|pmRitOff +Flag2 =(..................1........)|pmRitOn +Flag3 =(...................0.......)|pmXitOff +Flag4 =(...................1.......)|pmXitOn +Flag5 =(....................1......)|pmSSB_L +Flag6 =(....................2......)|pmSSB_U +Flag7 =(....................3......)|pmCW_U +Flag8 =(....................4......)|pmFM +Flag9 =(....................5......)|pmAM +Flag10=(....................6......)|pmDIG_L +Flag11=(....................7......)|pmCW_L +Flag12=(....................8......)|pmDIG_L +Flag13=(....................9......)|pmDIG_U +Flag14=(....................A......)|pmFM +Flag15=(....................B......)|pmFM +Flag16=(....................C......)|pmDIG_U +Flag17=(..............0000.........)|pmRit0 + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +;Validate=(FA........;) +Value1=2|8|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +;Validate=(FB........;) +Value1=2|8|vfText|1|0|pmFreqB + +[STATUS4] +Command=(KP;) +ReplyEnd=(;) +Validate=(KP..;) +Value1=2|2|vfText|50|300|pmPitch + +[STATUS5] +Command=(FR;FT;) +ReplyLength=8 +;ReplyEnd=(;) +Validate=(FR.;FT.;) +Flag1=(..0.....)|pmVfoA +Flag2=(..3.....)|pmVfoB +Flag3=(..0...0.)|pmVfoAA +Flag4=(..0...1.)|pmVfoAB +Flag5=(..3...0.)|pmVfoBA +Flag6=(..3...1.)|pmVfoBB +Flag7=(..0...1.)|pmSplitOn +Flag8=(..0...0.)|pmSplitOff + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX diff --git a/CATCheck/Rigs/HRD.ini b/CATCheck/Rigs/HRD.ini new file mode 100644 index 0000000..b668003 --- /dev/null +++ b/CATCheck/Rigs/HRD.ini @@ -0,0 +1,177 @@ +;------------------------------------------------------------------------------- +; Ham Radio Delux command set +; +; File created by Alexei Chernobai, RX4HX rx4hx@mail.ru +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;Command=(AI0;) +;ReplyLength=0 + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(............................0.........)|pmRx +Flag2 =(............................1.........)|pmTx +Flag3 =(.............................1........)|pmSSB_L +Flag4 =(.............................2........)|pmSSB_U +Flag5 =(.............................3........)|pmCW_U +Flag6 =(.............................4........)|pmFM +Flag7 =(.............................5........)|pmAM +Flag8 =(.............................6........)|pmDIG_L +Flag9 =(.............................7........)|pmCW_L +Flag10=(.............................9........)|pmDIG_U + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB + diff --git a/CATCheck/Rigs/IC- 821.ini b/CATCheck/Rigs/IC- 821.ini new file mode 100644 index 0000000..229f92c --- /dev/null +++ b/CATCheck/Rigs/IC- 821.ini @@ -0,0 +1,187 @@ +;------------------------------------------------------------------------------- + ; Icom IC-821 command set +; +; File created for IC-970D by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com + Corrected by Vlad Tarasov , RA4HO, ra4ho@ncts.ru +; fiddled with for IC-821 by MM0RBZ +; +;------------------------------------------------------------------------------- + + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE4CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE4CE0.0F01.FD +ReplyLength=13 +Validate=FEFE4CE00F01FD.FEFEE04CFBFD + +[pmSplitOff] +Command=FEFE4CE0.0F00.FD +ReplyLength=13 +Validate=FEFE4CE00F00FD.FEFEE04CFBFD + +[pmVfoA] +Command=FEFE4CE0.0700.FD +ReplyLength=13 +Validate=FEFE4CE00700FD.FEFEE04CFBFD + +[pmVfoB] +Command=FEFE4CE0.0701.FD +ReplyLength=13 +Validate=FEFE4CE00701FD.FEFEE04CFBFD + +[pmVfoEqual] +Command=FEFE4CE0.07A0.FD +ReplyLength=13 +Validate=FEFE4CE007A0FD.FEFEE04CFBFD + +[pmVfoSwap] +;SWAP MAIN AND SUB +Command=FEFE4CE0.07B0.FD +ReplyLength=13 +Validate=FEFE4CE007B0FD.FEFEE04CFBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;Not supported +[pmTx] +;Not Supported + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE4CE0.06.03.FD +ReplyLength=13 +Validate=FEFE4CE00603FD.FEFEE04CFBFD + +[pmCW_L] +;NOT SUPPORTED + + +[pmSSB_U] +Command=FEFE4CE0.06.01.FD +ReplyLength=13 +Validate=FEFE4CE00601FD.FEFEE04CFBFD + +[pmSSB_L] +Command=FEFE4CE0.06.00.FD +ReplyLength=13 +Validate=FEFE4CE00600FD.FEFEE04CFBFD + +[pmDIG_U] +;not supported +[pmDIG_L] +;not supported + +[pmAM] +;not supported + +[pmFM] +Command=FEFE4CE0.06.05.FD +ReplyLength=13 +Validate=FEFE4CE00605FD.FEFEE04CFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;READ CURRENT FREQUENCY DATA +Command=FEFE4CE0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE4CE003FD.FEFEE04C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;READ CURRENT MODE +Command=FEFE4CE0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE4CE004FD.FEFEE04C.04.0000.FD +is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +;not supported + + + + diff --git a/CATCheck/Rigs/IC- 970D.ini b/CATCheck/Rigs/IC- 970D.ini new file mode 100644 index 0000000..b41e233 --- /dev/null +++ b/CATCheck/Rigs/IC- 970D.ini @@ -0,0 +1,205 @@ +;------------------------------------------------------------------------------- + ; Icom IC-970 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com + Corrected by Vlad Tarasov , RA4HO, ra4ho@ncts.ru +; +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE2EE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE2EE0050000000000FD.FEFEE02EFBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +Command=FEFE2EE0.1409.0000.FD +;300Hz=0 600Hz=128 900Hz=255 +Value=6|2|vfBcdLU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE2EE014090000FD.FEFEE02EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE2EE0.0F01.FD +ReplyLength=13 +Validate=FEFE2EE00F01FD.FEFEE02EFBFD + +[pmSplitOff] +Command=FEFE2EE0.0F00.FD +ReplyLength=13 +Validate=FEFE2EE00F00FD.FEFEE02EFBFD + +[pmVfoA] +Command=FEFE2EE0.0700.FD +ReplyLength=13 +Validate=FEFE2EE00700FD.FEFEE02EFBFD + +[pmVfoB] +Command=FEFE2EE0.0701.FD +ReplyLength=13 +Validate=FEFE2EE00701FD.FEFEE02EFBFD + +[pmVfoEqual] +Command=FEFE2EE0.07A0.FD +ReplyLength=13 +Validate=FEFE2EE007A0FD.FEFEE02EFBFD + +[pmVfoSwap] +Command=FEFE2EE0.07B0.FD +ReplyLength=13 +Validate=FEFE2EE007B0FD.FEFEE02EFBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE2EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE2EE01C0000FD.FEFEE02EFBFD + +[pmTx] +Command=FEFE2EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE2EE01C0001FD.FEFEE02EFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE2EE0.06.03.FD +ReplyLength=13 +Validate=FEFE2EE00603FD.FEFEE02EFBFD + +[pmCW_L] +Command=FEFE2EE0.06.07.FD +ReplyLength=13 +Validate=FEFE2EE00607FD.FEFEE02EFBFD + +[pmSSB_U] +Command=FEFE2EE0.06.01.FD +ReplyLength=13 +Validate=FEFE2EE00601FD.FEFEE02EFBFD + +[pmSSB_L] +Command=FEFE2EE0.06.00.FD +ReplyLength=13 +Validate=FEFE2EE00600FD.FEFEE02EFBFD + +[pmDIG_U] +Command=FEFE2EE0.06.04.FD +ReplyLength=13 +Validate=FEFE2EE00604FD.FEFEE02EFBFD + +[pmDIG_L] +Command=FEFE2EE0.06.08.FD +ReplyLength=13 +Validate=FEFE2EE00608FD.FEFEE02EFBFD + +[pmAM] +Command=FEFE2EE0.06.02.FD +ReplyLength=13 +Validate=FEFE2EE00602FD.FEFEE02EFBFD + +[pmFM] +Command=FEFE2EE0.06.05.FD +ReplyLength=13 +Validate=FEFE2EE00605FD.FEFEE02EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE2EE0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE2EE003FD.FEFEE02E.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE2EE0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE2EE004FD.FEFEE02E.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE2EE0.1409.FD +ReplyLength=16 +Validate=FFFFFFFFFFFFFF.FFFFFFFFFFFF.0000.FF|FEFE2EE01409FD.FEFEE02E1409.0000.FD +Value1=13|2|vfBcdLU|2.352941|300|pmPitch + +[STATUS4] +Command=FEFE2EE0.1C00.FD +ReplyLength=15 +Validate=FFFFFFFFFFFFFF.FFFFFFFF.FFFF.00.FF|FEFE2EE01C00FD.FEFEE02E.1C00.00.FD +Flag1=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-275H.ini b/CATCheck/Rigs/IC-275H.ini new file mode 100644 index 0000000..88e4cf7 --- /dev/null +++ b/CATCheck/Rigs/IC-275H.ini @@ -0,0 +1,178 @@ +;------------------------------------------------------------------------------- +; Icom IC-275 command set +; +; File modified by Adrian Sinclair LU1CGB 07/2009 +; +; Tested by: _________ +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE10E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE10E0050000000000FD.FEFEE010FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE10E0.0F01.FD +ReplyLength=13 +Validate=FEFE10E00F01FD.FEFEE010FBFD + +[pmSplitOff] +Command=FEFE10E0.0F00.FD +ReplyLength=13 +Validate=FEFE10E00F00FD.FEFEE010FBFD + +[pmVfoA] +Command=FEFE10E0.0700.FD +ReplyLength=13 +Validate=FEFE10E00700FD.FEFEE010FBFD + +[pmVfoB] +Command=FEFE10E0.0701.FD +ReplyLength=13 +Validate=FEFE10E00701FD.FEFEE010FBFD + +[pmVfoEqual] +Command=FEFE10E0.07A0.FD +ReplyLength=13 +Validate=FEFE10E007A0FD.FEFEE010FBFD + +[pmVfoSwap] +Command=FEFE10E0.07B0.FD +ReplyLength=13 +Validate=FEFE10E007B0FD.FEFEE010FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE10E0.06.03.FD +ReplyLength=13 +Validate=FEFE10E00603FD.FEFEE010FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE10E0.06.01.FD +ReplyLength=13 +Validate=FEFE10E00601FD.FEFEE010FBFD + +[pmSSB_L] +Command=FEFE10E0.06.00.FD +ReplyLength=13 +Validate=FEFE10E00600FD.FEFEE010FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +Command=FEFE10E0.06.04.FD +ReplyLength=13 +Validate=FEFE10E00608FD.FEFEE010FBFD + +[pmAM] +Command=FEFE10E0.06.02.FD +ReplyLength=13 +Validate=FEFE10E00602FD.FEFEE010FBFD + +[pmFM] +Command=FEFE10E0.06.05.FD +ReplyLength=13 +Validate=FEFE10E00605FD.FEFEE010FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE10E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE10E003FD.FEFEE010.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE10E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE10E004FD.FEFEE04E.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM diff --git a/CATCheck/Rigs/IC-7000.ini b/CATCheck/Rigs/IC-7000.ini new file mode 100644 index 0000000..c085608 --- /dev/null +++ b/CATCheck/Rigs/IC-7000.ini @@ -0,0 +1,148 @@ +;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +; +; Icom IC-7000 Omni-Rig commands +; +; File created by: Elijah Figueroa, KC0RDG kc0rdg@gmail.com +; +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +;-------------------------------------------------------------------------- +; Initialize the radio +;-------------------------------------------------------------------------- + +; Need to disable CI-V Transceive Mode, see page 136 of +; the IC-7000 PDF manual to do this in the radio +; http://www.icomamerica.com/support/manuals/IC-7000_Manual_Eng.pdf +[INIT1] +Command=FEFE70E0.1A050092.00.FD +ReplyLength=16 +Validate=FEFE70E01A05009200FD.FEFEE070FBFD + + +;-------------------------------------------------------------------------- +; Set frequency +;-------------------------------------------------------------------------- + +; Set operating frequency +[pmFreq] +Command=FEFE70E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE70E0050000000000FD.FEFEE070FBFD + + +;-------------------------------------------------------------------------- +; Set Split, Rx & Tx +;-------------------------------------------------------------------------- + +; Turn Split function on +[pmSplitOn] +Command=FEFE70E0.0F01.FD +ReplyLength=13 +Validate=FEFE70E00F01FD.FEFEE070FBFD + +; Turn Split function off +[pmSplitOff] +Command=FEFE70E0.0F00.FD +ReplyLength=13 +Validate=FEFE70E00F00FD.FEFEE070FBFD + +; Enable receive mode +[pmRx] +Command=FEFE70E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE70E01C0000FD.FEFEE070FBFD + +; Enable transmit mode +[pmTx] +Command=FEFE70E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE70E01C0001FD.FEFEE070FBFD + + +;-------------------------------------------------------------------------- +; Set modes of the radio +;-------------------------------------------------------------------------- + +; Upper sideband CW +[pmCW_U] +Command=FEFE70E0.06.07.FD +ReplyLength=13 +Validate=FEFE70E00607FD.FEFEE070FBFD + +; Lower sideband CW +[pmCW_L] +Command=FEFE70E0.06.03.FD +ReplyLength=13 +Validate=FEFE70E00603FD.FEFEE070FBFD + +; USB +[pmSSB_U] +Command=FEFE70E0.06.01.FD +ReplyLength=13 +Validate=FEFE70E00601FD.FEFEE070FBFD + +; LSB +[pmSSB_L] +Command=FEFE70E0.06.00.FD +ReplyLength=13 +Validate=FEFE70E00600FD.FEFEE070FBFD + +; Upper sideband digital modes +[pmDIG_U] +Command=FEFE70E0.06.08.FD +ReplyLength=13 +Validate=FEFE70E00608FD.FEFEE070FBFD + +; Lower sideband digital modes +[pmDIG_L] +Command=FEFE70E0.06.04.FD +ReplyLength=13 +Validate=FEFE70E00604FD.FEFEE070FBFD + +; AM +[pmAM] +Command=FEFE70E0.06.02.FD +ReplyLength=13 +Validate=FEFE70E00602FD.FEFEE070FBFD + +; FM +[pmFM] +Command=FEFE70E0.06.05.FD +ReplyLength=13 +Validate=FEFE70E00605FD.FEFEE070FBFD + + +;------------------------------------------------------------------------ +; Read the status of the radio +;------------------------------------------------------------------------ + +; Read the current frequency +[STATUS1] +Command=FEFE70E0.03.FD +ReplyLength=17 +Validate=FEFE70E003FD.FEFEE070.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +; Read the current operating mode +[STATUS2] +Command=FEFE70E0.04.FD +ReplyLength=14 +Validate=FEFE70E004FD.FEFEE070.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +; Are we in Rx or Tx? +[STATUS3] +Command=FEFE70E0.1C00.FD +ReplyLength=15 +Validate=FEFE70E01C00FD.FEFEE070.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + diff --git a/CATCheck/Rigs/IC-7000v2.ini b/CATCheck/Rigs/IC-7000v2.ini new file mode 100644 index 0000000..442cf20 --- /dev/null +++ b/CATCheck/Rigs/IC-7000v2.ini @@ -0,0 +1,204 @@ +;------------------------------------------------------------------------------- +; Icom IC-7000 version 2 +; +; IC-7000v2 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: N6TV @ KE1B +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE70E0.1A050092.00.FD +ReplyLength=16 +Validate=FEFE70E01A05009200FD.FEFEE070FBFD + +[INIT2] +;set CW normal to lower sideband +Command=FEFE70E0.1A050079.00.FD +ReplyLength=16 +Validate=FEFE70E01A05007900FD.FEFEE070FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE70E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE70E0050000000000FD.FEFEE070FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE70E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE70E014090000FD.FEFEE070FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE70E0.0F01.FD +ReplyLength=13 +Validate=FEFE70E00F01FD.FEFEE070FBFD + +[pmSplitOff] +Command=FEFE70E0.0F00.FD +ReplyLength=13 +Validate=FEFE70E00F00FD.FEFEE070FBFD + +[pmVfoA] +Command=FEFE70E0.0700.FD +ReplyLength=13 +Validate=FEFE70E00700FD.FEFEE070FBFD + +[pmVfoB] +Command=FEFE70E0.0701.FD +ReplyLength=13 +Validate=FEFE70E00701FD.FEFEE070FBFD + +[pmVfoEqual] +Command=FEFE70E0.07A0.FD +ReplyLength=13 +Validate=FEFE70E007A0FD.FEFEE070FBFD + +[pmVfoSwap] +Command=FEFE70E0.07B0.FD +ReplyLength=13 +Validate=FEFE70E007B0FD.FEFEE070FBFD + +[pmVfoAA] +Command=FEFE70E0.0700.FD.FEFE70E0.0F00.FD +ReplyLength=20 +Validate=FEFE70E00700FD.FEFE70E00F00FD.FEFEE070FBFD + +[pmVfoAB] +Command=FEFE70E0.0700.FD.FEFE70E0.0F01.FD +ReplyLength=20 +Validate=FEFE70E00700FD.FEFE70E00F01FD.FEFEE070FBFD + +[pmVfoBA] +Command=FEFE70E0.0701.FD.FEFE70E0.0F01.FD +ReplyLength=20 +Validate=FEFE70E00701FD.FEFE70E00F01FD.FEFEE070FBFD + +[pmVfoBB] +Command=FEFE70E0.0701.FD.FEFE70E0.0F00.FD +ReplyLength=20 +Validate=FEFE70E00701FD.FEFE70E00F00FD.FEFEE070FBFD + +[pmRx] +Command=FEFE70E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE70E01C0000FD.FEFEE070FBFD + +[pmTx] +Command=FEFE70E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE70E01C0001FD.FEFEE070FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE70E0.06.07.FD +ReplyLength=13 +Validate=FEFE70E00607FD.FEFEE070FBFD + +[pmCW_L] +; CW Normal +Command=FEFE70E0.06.03.FD +ReplyLength=13 +Validate=FEFE70E00603FD.FEFEE070FBFD + +[pmSSB_U] +Command=FEFE70E0.06.01.FD +ReplyLength=13 +Validate=FEFE70E00601FD.FEFEE070FBFD + +[pmSSB_L] +Command=FEFE70E0.06.00.FD +ReplyLength=13 +Validate=FEFE70E00600FD.FEFEE070FBFD + +[pmDIG_U] +Command=FEFE70E0.06.08.FD +ReplyLength=13 +Validate=FEFE70E00608FD.FEFEE070FBFD + +[pmDIG_L] +Command=FEFE70E0.06.04.FD +ReplyLength=13 +Validate=FEFE70E00604FD.FEFEE070FBFD + +[pmAM] +Command=FEFE70E0.06.02.FD +ReplyLength=13 +Validate=FEFE70E00602FD.FEFEE070FBFD + +[pmFM] +Command=FEFE70E0.06.05.FD +ReplyLength=13 +Validate=FEFE70E00605FD.FEFEE070FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE70E0.03.FD +ReplyLength=17 +Validate=FEFE70E003FD.FEFEE070.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE70E0.04.FD +ReplyLength=14 +Validate=FEFE70E004FD.FEFEE070.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE70E0.1409.FD +ReplyLength=16 +Validate=FEFE70E01409FD.FEFEE070.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE70E0.1C00.FD +ReplyLength=15 +Validate=FEFE70E01C00FD.FEFEE070.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-703.ini b/CATCheck/Rigs/IC-703.ini new file mode 100644 index 0000000..625798c --- /dev/null +++ b/CATCheck/Rigs/IC-703.ini @@ -0,0 +1,178 @@ +;------------------------------------------------------------------------------- +; Icom IC-703 command set +; +; File created by Alex, G7KSE +; +; Tested by: _________ +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE68E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE68E0050000000000FD.FEFEE068FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE68E0.0F01.FD +ReplyLength=13 +Validate=FEFE68E00F01FD.FEFEE068FBFD + +[pmSplitOff] +Command=FEFE68E0.0F00.FD +ReplyLength=13 +Validate=FEFE68E00F00FD.FEFEE068FBFD + +[pmVfoA] +Command=FEFE68E0.0700.FD +ReplyLength=13 +Validate=FEFE68E00700FD.FEFEE068FBFD + +[pmVfoB] +Command=FEFE68E0.0701.FD +ReplyLength=13 +Validate=FEFE68E00701FD.FEFEE068FBFD + +[pmVfoEqual] +Command=FEFE68E0.07A0.FD +ReplyLength=13 +Validate=FEFE68E007A0FD.FEFEE068FBFD + +[pmVfoSwap] +Command=FEFE68E0.07B0.FD +ReplyLength=13 +Validate=FEFE68E007B0FD.FEFEE068FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE68E0.06.03.FD +ReplyLength=13 +Validate=FEFE68E00603FD.FEFEE068FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE68E0.06.01.FD +ReplyLength=13 +Validate=FEFE68E00601FD.FEFEE068FBFD + +[pmSSB_L] +Command=FEFE68E0.06.00.FD +ReplyLength=13 +Validate=FEFE68E00600FD.FEFEE068FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +Command=FEFE68E0.06.04.FD +ReplyLength=13 +Validate=FEFE68E00608FD.FEFEE068FBFD + +[pmAM] +Command=FEFE68E0.06.02.FD +ReplyLength=13 +Validate=FEFE68E00602FD.FEFEE068FBFD + +[pmFM] +Command=FEFE68E0.06.05.FD +ReplyLength=13 +Validate=FEFE68E00605FD.FEFEE068FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE68E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE68E003FD.FEFEE068.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE68E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE68E004FD.FEFEE068.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM diff --git a/CATCheck/Rigs/IC-703a.ini b/CATCheck/Rigs/IC-703a.ini new file mode 100644 index 0000000..fed3e95 --- /dev/null +++ b/CATCheck/Rigs/IC-703a.ini @@ -0,0 +1,159 @@ +;------------------------------------------------------------------------------- +; Icom IC-703 command set +; +; by: Antoon Milatz (PA3BWE) +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +;none +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE68E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE68E0050000000000FD.FEFEE068FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +;not supported +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE68E0.0F01.FD +ReplyLength=13 +Validate=FEFE68E00F01FD.FEFEE068FBFD + +[pmSplitOff] +Command=FEFE68E0.0F00.FD +ReplyLength=13 +Validate=FEFE68E00F00FD.FEFEE068FBFD + +[pmVfoA] +Command=FEFE68E0.0700.FD +ReplyLength=13 +Validate=FEFE68E00700FD.FEFEE068FBFD + +[pmVfoB] +Command=FEFE68E0.0701.FD +ReplyLength=13 +Validate=FEFE68E00701FD.FEFEE068FBFD + +[pmVfoEqual] +Command=FEFE68E0.07A0.FD +ReplyLength=13 +Validate=FEFE68E007A0FD.FEFEE068FBFD + +[pmVfoSwap] +Command=FEFE68E0.07B0.FD +ReplyLength=13 +Validate=FEFE68E007B0FD.FEFEE068FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE68E0.06.03.FD +ReplyLength=13 +Validate=FEFE68E00603FD.FEFEE068FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE68E0.06.01.FD +ReplyLength=13 +Validate=FEFE68E00601FD.FEFEE068FBFD + +[pmSSB_L] +Command=FEFE68E0.06.00.FD +ReplyLength=13 +Validate=FEFE68E00600FD.FEFEE068FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +Command=FEFE68E0.06.04.FD +ReplyLength=13 +Validate=FEFE68E00608FD.FEFEE068FBFD + +[pmAM] +Command=FEFE68E0.06.02.FD +ReplyLength=13 +Validate=FEFE68E00602FD.FEFEE068FBFD + +[pmFM] +Command=FEFE68E0.06.05.FD +ReplyLength=13 +Validate=FEFE68E00605FD.FEFEE068FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE68E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE68E003FD.FEFEE068.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE68E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE68E004FD.FEFEE068.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM \ No newline at end of file diff --git a/CATCheck/Rigs/IC-706 MKII.ini b/CATCheck/Rigs/IC-706 MKII.ini new file mode 100644 index 0000000..78c4434 --- /dev/null +++ b/CATCheck/Rigs/IC-706 MKII.ini @@ -0,0 +1,178 @@ +;------------------------------------------------------------------------------- +; Icom IC-706 MKII command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; +; Tested by: _________ +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE4EE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE4EE0050000000000FD.FEFEE04EFBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE4EE0.0F01.FD +ReplyLength=13 +Validate=FEFE4EE00F01FD.FEFEE04EFBFD + +[pmSplitOff] +Command=FEFE4EE0.0F00.FD +ReplyLength=13 +Validate=FEFE4EE00F00FD.FEFEE04EFBFD + +[pmVfoA] +Command=FEFE4EE0.0700.FD +ReplyLength=13 +Validate=FEFE4EE00700FD.FEFEE04EFBFD + +[pmVfoB] +Command=FEFE4EE0.0701.FD +ReplyLength=13 +Validate=FEFE4EE00701FD.FEFEE04EFBFD + +[pmVfoEqual] +Command=FEFE4EE0.07A0.FD +ReplyLength=13 +Validate=FEFE4EE007A0FD.FEFEE04EFBFD + +[pmVfoSwap] +Command=FEFE4EE0.07B0.FD +ReplyLength=13 +Validate=FEFE4EE007B0FD.FEFEE04EFBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE4EE0.06.03.FD +ReplyLength=13 +Validate=FEFE4EE00603FD.FEFEE04EFBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE4EE0.06.01.FD +ReplyLength=13 +Validate=FEFE4EE00601FD.FEFEE04EFBFD + +[pmSSB_L] +Command=FEFE4EE0.06.00.FD +ReplyLength=13 +Validate=FEFE4EE00600FD.FEFEE04EFBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +Command=FEFE4EE0.06.04.FD +ReplyLength=13 +Validate=FEFE4EE00608FD.FEFEE04EFBFD + +[pmAM] +Command=FEFE4EE0.06.02.FD +ReplyLength=13 +Validate=FEFE4EE00602FD.FEFEE04EFBFD + +[pmFM] +Command=FEFE4EE0.06.05.FD +ReplyLength=13 +Validate=FEFE4EE00605FD.FEFEE04EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE4EE0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE4EE003FD.FEFEE04E.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE4EE0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE4EE004FD.FEFEE04E.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM diff --git a/CATCheck/Rigs/IC-706 MKIIG.ini b/CATCheck/Rigs/IC-706 MKIIG.ini new file mode 100644 index 0000000..7877af5 --- /dev/null +++ b/CATCheck/Rigs/IC-706 MKIIG.ini @@ -0,0 +1,178 @@ +;------------------------------------------------------------------------------- +; Icom IC-706 MKIIG command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; +; Tested by: _________ +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE58E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE58E0050000000000FD.FEFEE058FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE58E0.0F01.FD +ReplyLength=13 +Validate=FEFE58E00F01FD.FEFEE058FBFD + +[pmSplitOff] +Command=FEFE58E0.0F00.FD +ReplyLength=13 +Validate=FEFE58E00F00FD.FEFEE058FBFD + +[pmVfoA] +Command=FEFE58E0.0700.FD +ReplyLength=13 +Validate=FEFE58E00700FD.FEFEE058FBFD + +[pmVfoB] +Command=FEFE58E0.0701.FD +ReplyLength=13 +Validate=FEFE58E00701FD.FEFEE058FBFD + +[pmVfoEqual] +Command=FEFE58E0.07A0.FD +ReplyLength=13 +Validate=FEFE58E007A0FD.FEFEE058FBFD + +[pmVfoSwap] +Command=FEFE58E0.07B0.FD +ReplyLength=13 +Validate=FEFE58E007B0FD.FEFEE058FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE58E0.06.03.FD +ReplyLength=13 +Validate=FEFE58E00603FD.FEFEE058FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE58E0.06.01.FD +ReplyLength=13 +Validate=FEFE58E00601FD.FEFEE058FBFD + +[pmSSB_L] +Command=FEFE58E0.06.00.FD +ReplyLength=13 +Validate=FEFE58E00600FD.FEFEE058FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +Command=FEFE58E0.06.04.FD +ReplyLength=13 +Validate=FEFE58E00608FD.FEFEE058FBFD + +[pmAM] +Command=FEFE58E0.06.02.FD +ReplyLength=13 +Validate=FEFE58E00602FD.FEFEE058FBFD + +[pmFM] +Command=FEFE58E0.06.05.FD +ReplyLength=13 +Validate=FEFE58E00605FD.FEFEE058FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE58E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE58E003FD.FEFEE058.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE58E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE58E004FD.FEFEE058.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM diff --git a/CATCheck/Rigs/IC-706.ini b/CATCheck/Rigs/IC-706.ini new file mode 100644 index 0000000..4a0efa5 --- /dev/null +++ b/CATCheck/Rigs/IC-706.ini @@ -0,0 +1,178 @@ +;------------------------------------------------------------------------------- +; Icom IC-706Mk I command set +; +; File created by +; +; Tested by: Marios 5B4WN +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE48E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE48E0050000000000FD.FEFEE048FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE48E0.0F01.FD +ReplyLength=13 +Validate=FEFE48E00F01FD.FEFEE048FBFD + +[pmSplitOff] +Command=FEFE48E0.0F00.FD +ReplyLength=13 +Validate=FEFE48E00F00FD.FEFEE048FBFD + +[pmVfoA] +Command=FEFE48E0.0700.FD +ReplyLength=13 +Validate=FEFE48E00700FD.FEFEE048FBFD + +[pmVfoB] +Command=FEFE48E0.0701.FD +ReplyLength=13 +Validate=FEFE48E00701FD.FEFEE048FBFD + +[pmVfoEqual] +Command=FEFE48E0.07A0.FD +ReplyLength=13 +Validate=FEFE48E007A0FD.FEFEE048FBFD + +[pmVfoSwap] +Command=FEFE48E0.07B0.FD +ReplyLength=13 +Validate=FEFE48E007B0FD.FEFEE048FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE48E0.06.03.FD +ReplyLength=13 +Validate=FEFE48E00603FD.FEFEE048FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE48E0.06.01.FD +ReplyLength=13 +Validate=FEFE48E00601FD.FEFEE048FBFD + +[pmSSB_L] +Command=FEFE48E0.06.00.FD +ReplyLength=13 +Validate=FEFE48E00600FD.FEFEE048FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +Command=FEFE48E0.06.04.FD +ReplyLength=13 +Validate=FEFE48E00608FD.FEFEE048FBFD + +[pmAM] +Command=FEFE48E0.06.02.FD +ReplyLength=13 +Validate=FEFE48E00602FD.FEFEE048FBFD + +[pmFM] +Command=FEFE48E0.06.05.FD +ReplyLength=13 +Validate=FEFE48E00605FD.FEFEE048FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE48E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE48E003FD.FEFEE048.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE48E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE48E004FD.FEFEE048.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM diff --git a/CATCheck/Rigs/IC-7100.ini b/CATCheck/Rigs/IC-7100.ini new file mode 100644 index 0000000..8a4a40c --- /dev/null +++ b/CATCheck/Rigs/IC-7100.ini @@ -0,0 +1,212 @@ +;------------------------------------------------------------------------------- +; Icom IC-7100 +; +; IC-7100 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: ____________ +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE88E0.1A050095.00.FD +ReplyLength=16 +Validate=FEFE88E01A05009500FD.FEFEE088FBFD + +[INIT2] +;set CW normal to lower sideband +Command=FEFE88E0.1A050032.00.FD +ReplyLength=16 +Validate=FEFE88E01A05003200FD.FEFEE088FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE88E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE88E0050000000000FD.FEFEE088FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE88E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE88E014090000FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE88E0.0F01.FD +ReplyLength=13 +Validate=FEFE88E00F01FD.FEFEE088FBFD + +[pmSplitOff] +Command=FEFE88E0.0F00.FD +ReplyLength=13 +Validate=FEFE88E00F00FD.FEFEE088FBFD + +[pmVfoA] +Command=FEFE88E0.0700.FD +ReplyLength=13 +Validate=FEFE88E00700FD.FEFEE088FBFD + +[pmVfoB] +Command=FEFE88E0.0701.FD +ReplyLength=13 +Validate=FEFE88E00701FD.FEFEE088FBFD + +[pmVfoEqual] +Command=FEFE88E0.07A0.FD +ReplyLength=13 +Validate=FEFE88E007A0FD.FEFEE088FBFD + +[pmVfoSwap] +Command=FEFE88E0.07B0.FD +ReplyLength=13 +Validate=FEFE88E007B0FD.FEFEE088FBFD + +[pmVfoAA] +Command=FEFE88E0.0F00.FD +ReplyLength=13 +Validate=FEFE88E00F00FD.FEFEE088FBFD + +[pmVfoAB] +Command=FEFE88E0.0F01.FD +ReplyLength=13 +Validate=FEFE88E00F01FD.FEFEE088FBFD + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +Command=FEFE88E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE88E01C0000FD.FEFEE088FBFD + +[pmTx] +Command=FEFE88E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE88E01C0001FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE88E0.06.07.FD +ReplyLength=13 +Validate=FEFE88E00607FD.FEFEE088FBFD + +[pmCW_L] +; CW Normal +Command=FEFE88E0.06.03.FD +ReplyLength=13 +Validate=FEFE88E00603FD.FEFEE088FBFD + +[pmSSB_U] +Command=FEFE88E0.06.01.FD +ReplyLength=13 +Validate=FEFE88E00601FD.FEFEE088FBFD + +[pmSSB_L] +Command=FEFE88E0.06.00.FD +ReplyLength=13 +Validate=FEFE88E00600FD.FEFEE088FBFD + +[pmDIG_U] +Command=FEFE88E0.06.08.FD +ReplyLength=13 +Validate=FEFE88E00608FD.FEFEE088FBFD + +[pmDIG_L] +Command=FEFE88E0.06.04.FD +ReplyLength=13 +Validate=FEFE88E00604FD.FEFEE088FBFD + +[pmAM] +Command=FEFE88E0.06.02.FD +ReplyLength=13 +Validate=FEFE88E00602FD.FEFEE088FBFD + +[pmFM] +Command=FEFE88E0.06.05.FD +ReplyLength=13 +Validate=FEFE88E00605FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE88E0.03.FD +ReplyLength=17 +Validate=FEFE88E003FD.FEFEE088.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE88E0.04.FD +ReplyLength=14 +Validate=FEFE88E004FD.FEFEE088.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE88E0.1409.FD +ReplyLength=16 +Validate=FEFE88E01409FD.FEFEE088.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE88E0.1C00.FD +ReplyLength=15 +Validate=FEFE88E01C00FD.FEFEE088.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-7100e4-DATA.ini b/CATCheck/Rigs/IC-7100e4-DATA.ini new file mode 100644 index 0000000..ba4bb4d --- /dev/null +++ b/CATCheck/Rigs/IC-7100e4-DATA.ini @@ -0,0 +1,263 @@ +;------------------------------------------------------------------------------- +; Icom IC-7100e4-DATA +; +; IC-7100e4-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Requires firmware E4 (v1.10) or later. +; +; Same as IC-7100e4.ini, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R +; and selects FIL1 insteads of the default for USB, LSB, USB-D and LSB-D. +; +; Written by N6TV for G8CYK, 28 September 2018 21:33 UTC +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE88E0.1A050095.00.FD +ReplyLength=16 +Validate=FEFE88E01A05009500FD.FEFEE088FBFD + +[INIT2] +;set CW normal to lower sideband +Command=FEFE88E0.1A050032.00.FD +ReplyLength=16 +Validate=FEFE88E01A05003200FD.FEFEE088FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE88E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE88E025000000000000FD.FEFEE088FBFD + +[pmFreqB] +Command=FEFE88E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE88E025010000000000FD.FEFEE088FBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE88E0.21.00000000.FD +ReplyLength=16 +Validate=FEFE88E02100000000FD.FEFEE088FBFD + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE88E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE88E014090000FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE88E0.0F01.FD +ReplyLength=13 +Validate=FEFE88E00F01FD.FEFEE088FBFD + +[pmSplitOff] +Command=FEFE88E0.0F00.FD +ReplyLength=13 +Validate=FEFE88E00F00FD.FEFEE088FBFD + +[pmVfoA] +Command=FEFE88E0.0700.FD +ReplyLength=13 +Validate=FEFE88E00700FD.FEFEE088FBFD + +[pmVfoB] +Command=FEFE88E0.0701.FD +ReplyLength=13 +Validate=FEFE88E00701FD.FEFEE088FBFD + +[pmVfoEqual] +Command=FEFE88E0.07A0.FD +ReplyLength=13 +Validate=FEFE88E007A0FD.FEFEE088FBFD + +[pmVfoSwap] +Command=FEFE88E0.07B0.FD +ReplyLength=13 +Validate=FEFE88E007B0FD.FEFEE088FBFD + +[pmVfoAA] +Command=FEFE88E0.0700.FD.FEFE88E0.0F00.FD +ReplyLength=20 +Validate=FEFE88E00700FD.FEFE88E00F00FD.FEFEE088FBFD + +[pmVfoAB] +Command=FEFE88E0.0700.FD.FEFE88E0.0F01.FD +ReplyLength=20 +Validate=FEFE88E00700FD.FEFE88E00F01FD.FEFEE088FBFD + +[pmVfoBA] +Command=FEFE88E0.0701.FD.FEFE88E0.0F01.FD +ReplyLength=20 +Validate=FEFE88E00701FD.FEFE88E00F01FD.FEFEE088FBFD + +[pmVfoBB] +Command=FEFE88E0.0701.FD.FEFE88E0.0F00.FD +ReplyLength=20 +Validate=FEFE88E00701FD.FEFE88E00F00FD.FEFEE088FBFD + +[pmRitOn] +Command=FEFE88E0.21.0101.FD +ReplyLength=14 +Validate=FEFE88E0210101FD.FEFEE088FBFD + +[pmRitOff] +Command=FEFE88E0.21.0100.FD +ReplyLength=14 +Validate=FEFE88E0210100FD.FEFEE088FBFD + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +Command=FEFE88E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE88E01C0000FD.FEFEE088FBFD + +[pmTx] +Command=FEFE88E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE88E01C0001FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE88E0.2600.07.FD +ReplyLength=14 +Validate=FEFE88E0260007FD.FEFEE088FBFD + +[pmCW_L] +; CW Normal +Command=FEFE88E0.2600.03.FD +ReplyLength=14 +Validate=FEFE88E0260003FD.FEFEE088FBFD + +[pmSSB_U] +; These lines select USB with FIL1 +Command=FEFE88E0.2600.01.00.01.FD +ReplyLength=16 +Validate=FEFE88E02600010001FD.FEFEE088FBFD + +[pmSSB_L] +; These lines select LSB with FIL1 +Command=FEFE88E0.2600.00.00.01.FD +ReplyLength=16 +Validate=FEFE88E02600000001FD.FEFEE088FBFD + +[pmDIG_U] +; These lines select USB-D for USB digital mode, FIL1 +Command=FEFE88E0.2600.01.01.01.FD +ReplyLength=16 +Validate=FEFE88E02600010101FD.FEFEE088FBFD + +[pmDIG_L] +; These lines select LSB-D for LSB digital mode, FIL1 +Command=FEFE88E0.2600.00.01.01.FD +ReplyLength=16 +Validate=FEFE88E02600000101FD.FEFEE088FBFD + +[pmAM] +Command=FEFE88E0.2600.02.FD +ReplyLength=14 +Validate=FEFE88E0260002FD.FEFEE088FBFD + +[pmFM] +Command=FEFE88E0.2600.05.FD +ReplyLength=14 +Validate=FEFE88E0260005FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE88E0.2500.FD +ReplyLength=19 +Validate=FEFE88E02500FD.FEFEE088.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE88E0.2501.FD +ReplyLength=19 +Validate=FEFE88E02501FD.FEFEE088.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE88E0.2600.FD +ReplyLength=17 +Validate=FEFE88E02600FD.FEFEE088.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFE88E0.1409.FD +ReplyLength=16 +Validate=FEFE88E01409FD.FEFEE088.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE88E0.1C00.FD +ReplyLength=15 +Validate=FEFE88E01C00FD.FEFEE088.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE88E0.0F.FD +ReplyLength=13 +Validate=FEFE88E00FFD.FEFEE088.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE88E0.0F.FD +ReplyLength=13 +Validate=FEFE88E00FFD.FEFEE088.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmVfoAB +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA + +[STATUS8] +Command=FEFE88E0.2101.FD +ReplyLength=15 +Validate=FEFE88E02101FD.FEFEE088.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff diff --git a/CATCheck/Rigs/IC-7100e4.ini b/CATCheck/Rigs/IC-7100e4.ini new file mode 100644 index 0000000..3a7c62e --- /dev/null +++ b/CATCheck/Rigs/IC-7100e4.ini @@ -0,0 +1,261 @@ +;------------------------------------------------------------------------------- +; Icom IC-7100 with firmware E4 (v1.10) command set +; +; IC-7100e4 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: N6TV @ HRO Sunnyvale, CA +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE88E0.1A050095.00.FD +ReplyLength=16 +Validate=FEFE88E01A05009500FD.FEFEE088FBFD + +[INIT2] +;set CW normal to lower sideband +Command=FEFE88E0.1A050032.00.FD +ReplyLength=16 +Validate=FEFE88E01A05003200FD.FEFEE088FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE88E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE88E025000000000000FD.FEFEE088FBFD + +[pmFreqB] +Command=FEFE88E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE88E025010000000000FD.FEFEE088FBFD + +[pmFreq] +Command=FEFE88E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE88E0050000000000FD.FEFEE088FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE88E0.21.00000000.FD +ReplyLength=16 +Validate=FEFE88E02100000000FD.FEFEE088FBFD + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE88E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE88E014090000FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE88E0.0F01.FD +ReplyLength=13 +Validate=FEFE88E00F01FD.FEFEE088FBFD + +[pmSplitOff] +Command=FEFE88E0.0F00.FD +ReplyLength=13 +Validate=FEFE88E00F00FD.FEFEE088FBFD + +[pmVfoA] +Command=FEFE88E0.0700.FD +ReplyLength=13 +Validate=FEFE88E00700FD.FEFEE088FBFD + +[pmVfoB] +Command=FEFE88E0.0701.FD +ReplyLength=13 +Validate=FEFE88E00701FD.FEFEE088FBFD + +[pmVfoEqual] +Command=FEFE88E0.07A0.FD +ReplyLength=13 +Validate=FEFE88E007A0FD.FEFEE088FBFD + +[pmVfoSwap] +Command=FEFE88E0.07B0.FD +ReplyLength=13 +Validate=FEFE88E007B0FD.FEFEE088FBFD + +[pmVfoAA] +Command=FEFE88E0.0700.FD.FEFE88E0.0F00.FD +ReplyLength=20 +Validate=FEFE88E00700FD.FEFE88E00F00FD.FEFEE088FBFD + +[pmVfoAB] +Command=FEFE88E0.0700.FD.FEFE88E0.0F01.FD +ReplyLength=20 +Validate=FEFE88E00700FD.FEFE88E00F01FD.FEFEE088FBFD + +[pmVfoBA] +Command=FEFE88E0.0701.FD.FEFE88E0.0F01.FD +ReplyLength=20 +Validate=FEFE88E00701FD.FEFE88E00F01FD.FEFEE088FBFD + +[pmVfoBB] +Command=FEFE88E0.0701.FD.FEFE88E0.0F00.FD +ReplyLength=20 +Validate=FEFE88E00701FD.FEFE88E00F00FD.FEFEE088FBFD + +[pmRitOn] +Command=FEFE88E0.21.0101.FD +ReplyLength=14 +Validate=FEFE88E0210101FD.FEFEE088FBFD + +[pmRitOff] +Command=FEFE88E0.21.0100.FD +ReplyLength=14 +Validate=FEFE88E0210100FD.FEFEE088FBFD + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +Command=FEFE88E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE88E01C0000FD.FEFEE088FBFD + +[pmTx] +Command=FEFE88E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE88E01C0001FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE88E0.06.07.FD +ReplyLength=13 +Validate=FEFE88E00607FD.FEFEE088FBFD + +[pmCW_L] +; CW Normal +Command=FEFE88E0.06.03.FD +ReplyLength=13 +Validate=FEFE88E00603FD.FEFEE088FBFD + +[pmSSB_U] +Command=FEFE88E0.06.01.FD +ReplyLength=13 +Validate=FEFE88E00601FD.FEFEE088FBFD + +[pmSSB_L] +Command=FEFE88E0.06.00.FD +ReplyLength=13 +Validate=FEFE88E00600FD.FEFEE088FBFD + +[pmDIG_U] +Command=FEFE88E0.06.08.FD +ReplyLength=13 +Validate=FEFE88E00608FD.FEFEE088FBFD + +[pmDIG_L] +Command=FEFE88E0.06.04.FD +ReplyLength=13 +Validate=FEFE88E00604FD.FEFEE088FBFD + +[pmAM] +Command=FEFE88E0.06.02.FD +ReplyLength=13 +Validate=FEFE88E00602FD.FEFEE088FBFD + +[pmFM] +Command=FEFE88E0.06.05.FD +ReplyLength=13 +Validate=FEFE88E00605FD.FEFEE088FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +;[STATUS1] +;Command=FEFE88E0.03.FD +;ReplyLength=17 +;Validate=FEFE88E003FD.FEFEE088.03.0000000000.FD +;Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS1] +; Read transmit freq. +Command=FEFE88E0.1C03.FD +ReplyLength=19 +Validate=FEFE88E01C03FD.FEFEE088.1C03.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE88E0.04.FD +ReplyLength=14 +Validate=FEFE88E004FD.FEFEE088.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE88E0.1409.FD +ReplyLength=16 +Validate=FEFE88E01409FD.FEFEE088.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE88E0.1C00.FD +ReplyLength=15 +Validate=FEFE88E01C00FD.FEFEE088.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS5] +Command=FEFE88E0.2500.FD +ReplyLength=19 +Validate=FEFE88E02500FD.FEFEE088.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS6] +Command=FEFE88E0.2501.FD +ReplyLength=19 +Validate=FEFE88E02501FD.FEFEE088.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS7] +Command=FEFE88E0.0F.FD +ReplyLength=13 +Validate=FEFE88E00FFD.FEFEE088.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS8] +Command=FEFE88E0.2101.FD +ReplyLength=15 +Validate=FEFE88E02101FD.FEFEE088.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff diff --git a/CATCheck/Rigs/IC-718.ini b/CATCheck/Rigs/IC-718.ini new file mode 100644 index 0000000..daf53b9 --- /dev/null +++ b/CATCheck/Rigs/IC-718.ini @@ -0,0 +1,217 @@ +;------------------------------------------------------------------------------- +; Icom IC-718 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +;not sure if 5 or 2x5 bytes should be sent +Command=FEFE5EE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE5EE0050000000000FD.FEFEE05EFBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +Command=FEFE5EE0.1409.0000.FD +;300Hz=0 600Hz=128 900Hz=255 +Value=6|2|vfBcdLU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE5EE014090000FD.FEFEE05EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE5EE0.0F01.FD +ReplyLength=13 +Validate=FEFE5EE00F01FD.FEFEE05EFBFD + +[pmSplitOff] +Command=FEFE5EE0.0F00.FD +ReplyLength=13 +Validate=FEFE5EE00F00FD.FEFEE05EFBFD + +[pmVfoA] +Command=FEFE5EE0.0700.FD +ReplyLength=13 +Validate=FEFE5EE00700FD.FEFEE05EFBFD + +[pmVfoB] +Command=FEFE5EE0.0701.FD +ReplyLength=13 +Validate=FEFE5EE00701FD.FEFEE05EFBFD + +[pmVfoEqual] +Command=FEFE5EE0.07A0.FD +ReplyLength=13 +Validate=FEFE5EE007A0FD.FEFEE05EFBFD + +[pmVfoSwap] +Command=FEFE5EE0.07B0.FD +ReplyLength=13 +Validate=FEFE5EE007B0FD.FEFEE05EFBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE5EE0.06.03.FD +ReplyLength=13 +Validate=FEFE5EE00603FD.FEFEE05EFBFD + +[pmCW_L] +Command=FEFE5EE0.06.07.FD +ReplyLength=13 +Validate=FEFE5EE00607FD.FEFEE05EFBFD + +[pmSSB_U] +Command=FEFE5EE0.06.01.FD +ReplyLength=13 +Validate=FEFE5EE00601FD.FEFEE05EFBFD + +[pmSSB_L] +Command=FEFE5EE0.06.00.FD +ReplyLength=13 +Validate=FEFE5EE00600FD.FEFEE05EFBFD + +[pmDIG_U] +Command=FEFE5EE0.06.04.FD +ReplyLength=13 +Validate=FEFE5EE00604FD.FEFEE05EFBFD + +[pmDIG_L] +Command=FEFE5EE0.06.08.FD +ReplyLength=13 +Validate=FEFE5EE00608FD.FEFEE05EFBFD + +[pmAM] +Command=FEFE5EE0.06.02.FD +ReplyLength=13 +Validate=FEFE5EE00602FD.FEFEE05EFBFD + +[pmFM] +Command=FEFE5EE0.06.05.FD +ReplyLength=13 +Validate=FEFE5EE00605FD.FEFEE05EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;The command name in the manual is Read Frequencies. +;However, it returns just one frequency +Command=FEFE5EE0.03.FD +ReplyLength=17 +Validate=FEFE5EE003FD.FEFEE05E.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE5EE0.04.FD +ReplyLength=14 +Validate=FEFE5EE004FD.FEFEE05E.04.0000.FD +;filter byte is appended to the mode byte +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM + +[STATUS3] +Command=FEFE5EE0.1409.FD +ReplyLength=16 +Validate=FEFE5EE01409FD.FEFEE05E1409.0000.FD +;Value1=13|2|vfBcdBU|2.352941|300|pmPitch +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +;Command=FEFE5EE0.07.FD +;ReplyLength=13 +;Validate=FEFE5EE007FD.FEFE5EE007.00.FD +;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmVfoA +;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmVfoB + +[STATUS5] +;Command=FEFE5EE0.1C00.FD +;ReplyLength=15 +;Validate=FEFE5EE01C00FD.FEFEE05E1C00.00.FD +;Flag1=00000000000000000000000000.FF.00|00000000000000000000000000.01.00|pmTx +;Flag2=00000000000000000000000000.FF.00|00000000000000000000000000.00.00|pmRx + +[STATUS6] +;Command=FEFE5EE0.0F.FD +;ReplyLength=13 +;Validate=FEFE5EE00FFD.FEFE5EE00F.00.FD +;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmSplitOn +;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmSplitOff + + diff --git a/CATCheck/Rigs/IC-7200.ini b/CATCheck/Rigs/IC-7200.ini new file mode 100644 index 0000000..7608d5b --- /dev/null +++ b/CATCheck/Rigs/IC-7200.ini @@ -0,0 +1,205 @@ +;------------------------------------------------------------------------------- +; Icom IC-7200 command set +; +; File created by Uwe Lauer, ulauer@pobox.com +; +; Tested (for Faros) by: ulauer +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +[INIT1] + +[INIT2] + +[INIT3] + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreqA] +;VFO A frequency +;not supported + +[pmFreqB] +;VFO B frequency +;not supported + +[pmFreq] +;operating frequency +Command=FEFE76E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE76E0050000000000FD.FEFEE076FBFD + +[pmRitOffset] +;RIT offset frequency +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;CW pitch frequency +Command=FEFE76E0.1409.0000.FD +;300Hz=0 600Hz=128 900Hz=255 +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE76E014090000FD.FEFEE076FBFD + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- + +[pmSplitOn] +Command=FEFE76E0.0F01.FD +ReplyLength=13 +Validate=FEFE76E00F01FD.FEFEE076FBFD + +[pmSplitOff] +Command=FEFE76E0.0F00.FD +ReplyLength=13 +Validate=FEFE76E00F00FD.FEFEE076FBFD + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=FEFE76E0.07A0.FD +ReplyLength=13 +Validate=FEFE76E007A0FD.FEFEE076FBFD + +[pmVfoSwap] +Command=FEFE76E0.07B0.FD +ReplyLength=13 +Validate=FEFE76E007B0FD.FEFEE076FBFD + +[pmVfoAA] +Command=FEFE76E0.0700.FD +ReplyLength=13 +Validate=FEFE76E00700FD.FEFEE076FBFD + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +Command=FEFE76E0.0701.FD +ReplyLength=13 +Validate=FEFE76E00701FD.FEFEE076FBFD + +[pmRitOn] +Command=FEFE76E0.0F01.FD +ReplyLength=13 +Validate=FEFE76E00F01FD.FEFEE076FBFD + +[pmRitOff] +Command=FEFE76E0.0F00.FD +ReplyLength=13 +Validate=FEFE76E00F00FD.FEFEE076FBFD + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE76E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE76E01C0000FD.FEFEE076FBFD + +[pmTx] +Command=FEFE76E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE76E01C0001FD.FEFEE076FBFD + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- + +[pmCW_U] +Command=FEFE76E0.0603.FD +ReplyLength=13 +Validate=FEFE76E00603FD.FEFEE076FBFD + +[pmCW_L] +Command=FEFE76E0.0607.FD +ReplyLength=13 +Validate=FEFE76E00607FD.FEFEE076FBFD + +[pmSSB_U] +Command=FEFE76E0.0601.FD +ReplyLength=13 +Validate=FEFE76E00601FD.FEFEE076FBFD + +[pmSSB_L] +Command=FEFE76E0.0600.FD +ReplyLength=13 +Validate=FEFE76E00600FD.FEFEE076FBFD + +[pmDIG_U] +Command=FEFE76E0.0608.FD +ReplyLength=13 +Validate=FEFE76E00608FD.FEFEE076FBFD + +[pmDIG_L] +Command=FEFE76E0.0604.FD +ReplyLength=13 +Validate=FEFE76E00604FD.FEFEE076FBFD. + +[pmAM] +Command=FEFE76E0.0602.FD +ReplyLength=13 +Validate=FEFE76E00602FD.FEFEE076FBFD + +[pmFM] +;not supported + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=FEFE76E0.03.FD +ReplyLength=17 +Validate=FEFE76E003FD.FEFEE076.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE76E0.04.FD +ReplyLength=14 +Validate=FEFE76E004FD.FEFEE076.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE76E0.1409.FD +ReplyLength=16 +Validate=FEFE76E01409FD.FEFEE0761409.0000.FD +Value1=13|2|vfBcdBU|25|300|pmPitch + +[STATUS4] +Command=FEFE76E0.1C00.FD +ReplyLength=15 +Validate=FEFE76E01C00FD.FEFEE076.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-7200v2.ini b/CATCheck/Rigs/IC-7200v2.ini new file mode 100644 index 0000000..1977b69 --- /dev/null +++ b/CATCheck/Rigs/IC-7200v2.ini @@ -0,0 +1,200 @@ +;------------------------------------------------------------------------------- +; Icom IC-7200 version 2 +; +; IC-7200v2 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: N6TV +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE76E0.1A0348.00.FD +ReplyLength=15 +Validate=FEFE76E01A034800FD.FEFEE076FBFD + +[INIT2] +;set CW normal to lower sideband +Command=FEFE76E0.1A0337.00.FD +ReplyLength=15 +Validate=FEFE76E01A033700FD.FEFEE076FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE76E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE76E0050000000000FD.FEFEE076FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE76E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE76E014090000FD.FEFEE076FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE76E0.0F01.FD +ReplyLength=13 +Validate=FEFE76E00F01FD.FEFEE076FBFD + +[pmSplitOff] +Command=FEFE76E0.0F00.FD +ReplyLength=13 +Validate=FEFE76E00F00FD.FEFEE076FBFD + +[pmVfoA] +Command=FEFE76E0.0700.FD +ReplyLength=13 +Validate=FEFE76E00700FD.FEFEE076FBFD + +[pmVfoB] +Command=FEFE76E0.0701.FD +ReplyLength=13 +Validate=FEFE76E00701FD.FEFEE076FBFD + +[pmVfoEqual] +Command=FEFE76E0.07A0.FD +ReplyLength=13 +Validate=FEFE76E007A0FD.FEFEE076FBFD + +[pmVfoSwap] +Command=FEFE76E0.07B0.FD +ReplyLength=13 +Validate=FEFE76E007B0FD.FEFEE076FBFD + +[pmVfoAA] +Command=FEFE76E0.0700.FD.FEFE76E0.0F00.FD +ReplyLength=20 +Validate=FEFE76E00700FD.FEFE76E00F00FD.FEFEE076FBFD + +[pmVfoAB] +Command=FEFE76E0.0700.FD.FEFE76E0.0F01.FD +ReplyLength=20 +Validate=FEFE76E00700FD.FEFE76E00F01FD.FEFEE076FBFD + +[pmVfoBA] +Command=FEFE76E0.0701.FD.FEFE76E0.0F01.FD +ReplyLength=20 +Validate=FEFE76E00701FD.FEFE76E00F01FD.FEFEE076FBFD + +[pmVfoBB] +Command=FEFE76E0.0701.FD.FEFE76E0.0F00.FD +ReplyLength=20 +Validate=FEFE76E00701FD.FEFE76E00F00FD.FEFEE076FBFD + +[pmRx] +Command=FEFE76E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE76E01C0000FD.FEFEE076FBFD + +[pmTx] +Command=FEFE76E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE76E01C0001FD.FEFEE076FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE76E0.06.07.FD +ReplyLength=13 +Validate=FEFE76E00607FD.FEFEE076FBFD + +[pmCW_L] +; CW Normal +Command=FEFE76E0.06.03.FD +ReplyLength=13 +Validate=FEFE76E00603FD.FEFEE076FBFD + +[pmSSB_U] +Command=FEFE76E0.06.01.FD +ReplyLength=13 +Validate=FEFE76E00601FD.FEFEE076FBFD + +[pmSSB_L] +Command=FEFE76E0.06.00.FD +ReplyLength=13 +Validate=FEFE76E00600FD.FEFEE076FBFD + +[pmDIG_U] +Command=FEFE76E0.06.08.FD +ReplyLength=13 +Validate=FEFE76E00608FD.FEFEE076FBFD + +[pmDIG_L] +Command=FEFE76E0.06.04.FD +ReplyLength=13 +Validate=FEFE76E00604FD.FEFEE076FBFD + +[pmAM] +Command=FEFE76E0.06.02.FD +ReplyLength=13 +Validate=FEFE76E00602FD.FEFEE076FBFD + +[pmFM] +;not supported + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE76E0.03.FD +ReplyLength=17 +Validate=FEFE76E003FD.FEFEE076.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE76E0.04.FD +ReplyLength=14 +Validate=FEFE76E004FD.FEFEE076.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM + +[STATUS3] +Command=FEFE76E0.1409.FD +ReplyLength=16 +Validate=FEFE76E01409FD.FEFEE076.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE76E0.1C00.FD +ReplyLength=15 +Validate=FEFE76E01C00FD.FEFEE076.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-725.ini b/CATCheck/Rigs/IC-725.ini new file mode 100644 index 0000000..a99c84d --- /dev/null +++ b/CATCheck/Rigs/IC-725.ini @@ -0,0 +1,172 @@ +;------------------------------------------------------------------------------- +; Icom IC-725 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE28E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE28E0050000000000FD.FEFEE028FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE28E0.0F01.FD +ReplyLength=13 +Validate=FEFE28E00F01FD.FEFEE028FBFD + +[pmSplitOff] +Command=FEFE28E0.0F00.FD +ReplyLength=13 +Validate=FEFE28E00F00FD.FEFEE028FBFD + +[pmVfoA] +Command=FEFE28E0.0700.FD +ReplyLength=13 +Validate=FEFE28E00700FD.FEFEE028FBFD + +[pmVfoB] +Command=FEFE28E0.0701.FD +ReplyLength=13 +Validate=FEFE28E00701FD.FEFEE028FBFD + +[pmVfoEqual] +Command=FEFE28E0.07A0.FD +ReplyLength=13 +Validate=FEFE28E007A0FD.FEFEE028FBFD + +[pmVfoSwap] +;not supported + + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE28E0.06.03.FD +ReplyLength=13 +Validate=FEFE28E00603FD.FEFEE028FBFD + +[pmCW_L] +Command=FEFE28E0.06.07.FD +ReplyLength=13 +Validate=FEFE28E00607FD.FEFEE028FBFD + +[pmSSB_U] +Command=FEFE28E0.06.01.FD +ReplyLength=13 +Validate=FEFE28E00601FD.FEFEE028FBFD + +[pmSSB_L] +Command=FEFE28E0.06.00.FD +ReplyLength=13 +Validate=FEFE28E00600FD.FEFEE028FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE28E0.06.02.FD +ReplyLength=13 +Validate=FEFE28E00602FD.FEFEE028FBFD + +[pmFM] +Command=FEFE28E0.06.05.FD +ReplyLength=13 +Validate=FEFE28E00605FD.FEFEE028FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE28E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE28E003FD.FEFEE028.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE28E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE28E004FD.FEFEE028.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + diff --git a/CATCheck/Rigs/IC-725a.ini b/CATCheck/Rigs/IC-725a.ini new file mode 100644 index 0000000..cd45acc --- /dev/null +++ b/CATCheck/Rigs/IC-725a.ini @@ -0,0 +1,174 @@ +;------------------------------------------------------------------------------- +; Icom IC-725a command set +; +; File created by Vitaly Chuchko, rz3tj vfc@inbox.ru +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE3EE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE3EE0050000000000FD.FEFEE03EFBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE3EE0.0F01.FD +ReplyLength=13 +Validate=FEFE3EE00F01FD.FEFEE03EFBFD + +[pmSplitOff] +Command=FEFE3EE0.0F00.FD +ReplyLength=13 +Validate=FEFE3EE00F00FD.FEFEE03EFBFD + +[pmVfoA] +Command=FEFE3EE0.0700.FD +ReplyLength=13 +Validate=FEFE3EE00700FD.FEFEE03EFBFD + +[pmVfoB] +Command=FEFE3EE0.0701.FD +ReplyLength=13 +Validate=FEFE3EE00701FD.FEFEE03EFBFD + +[pmVfoEqual] +Command=FEFE3EE0.07A0.FD +ReplyLength=13 +Validate=FEFE3EE007A0FD.FEFEE03EFBFD + +[pmVfoSwap] +;not supported + + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE3EE0.06.03.FD +ReplyLength=13 +Validate=FEFE3EE00603FD.FEFEE03EFBFD + +[pmCW_L] +;Command=FEFE3EE0.06.07.FD +;ReplyLength=13 +;Validate=FEFE3EE00607FD.FEFEE03EFBFD + +[pmSSB_U] +Command=FEFE3EE0.06.01.FD +ReplyLength=13 +Validate=FEFE3EE00601FD.FEFEE03EFBFD + +[pmSSB_L] +Command=FEFE3EE0.06.00.FD +ReplyLength=13 +Validate=FEFE3EE00600FD.FEFEE03EFBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE3EE0.06.02.FD +ReplyLength=13 +Validate=FEFE3EE00602FD.FEFEE03EFBFD + +[pmFM] +Command=FEFE3EE0.06.05.FD +ReplyLength=13 +Validate=FEFE3EE00605FD.FEFEE03EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE3EE0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE3EE003FD.FEFEE03E.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE3EE0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE3EE004FD.FEFEE03E.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + diff --git a/CATCheck/Rigs/IC-726.ini b/CATCheck/Rigs/IC-726.ini new file mode 100644 index 0000000..1c5d14a --- /dev/null +++ b/CATCheck/Rigs/IC-726.ini @@ -0,0 +1,217 @@ +;------------------------------------------------------------------------------- +; Icom IC-726 command set +; +; File created by UA3YPL +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +;not sure if 5 or 2x5 bytes should be sent +Command=FEFE30E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE30E0050000000000FD.FEFEE030FBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +Command=FEFE30E0.1409.0000.FD +;300Hz=0 600Hz=128 900Hz=255 +Value=6|2|vfBcdLU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE30E014090000FD.FEFEE030FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE30E0.0F01.FD +ReplyLength=13 +Validate=FEFE30E00F01FD.FEFEE030FBFD + +[pmSplitOff] +Command=FEFE30E0.0F00.FD +ReplyLength=13 +Validate=FEFE30E00F00FD.FEFEE030FBFD + +[pmVfoA] +Command=FEFE30E0.0700.FD +ReplyLength=13 +Validate=FEFE30E00700FD.FEFEE030FBFD + +[pmVfoB] +Command=FEFE30E0.0701.FD +ReplyLength=13 +Validate=FEFE30E00701FD.FEFEE030FBFD + +[pmVfoEqual] +Command=FEFE30E0.07A0.FD +ReplyLength=13 +Validate=FEFE30E007A0FD.FEFEE030FBFD + +[pmVfoSwap] +Command=FEFE30E0.07B0.FD +ReplyLength=13 +Validate=FEFE30E007B0FD.FEFEE030FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE30E0.06.03.FD +ReplyLength=13 +Validate=FEFE30E00603FD.FEFEE030FBFD + +[pmCW_L] +Command=FEFE30E0.06.07.FD +ReplyLength=13 +Validate=FEFE30E00607FD.FEFEE030FBFD + +[pmSSB_U] +Command=FEFE30E0.06.01.FD +ReplyLength=13 +Validate=FEFE30E00601FD.FEFEE030FBFD + +[pmSSB_L] +Command=FEFE30E0.06.00.FD +ReplyLength=13 +Validate=FEFE30E00600FD.FEFEE030FBFD + +[pmDIG_U] +Command=FEFE30E0.06.04.FD +ReplyLength=13 +Validate=FEFE30E00604FD.FEFEE030FBFD + +[pmDIG_L] +Command=FEFE30E0.06.08.FD +ReplyLength=13 +Validate=FEFE30E00608FD.FEFEE030FBFD + +[pmAM] +Command=FEFE30E0.06.02.FD +ReplyLength=13 +Validate=FEFE30E00602FD.FEFEE030FBFD + +[pmFM] +Command=FEFE30E0.06.05.FD +ReplyLength=13 +Validate=FEFE30E00605FD.FEFEE030FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;The command name in the manual is Read Frequencies. +;However, it returns just one frequency +Command=FEFE30E0.03.FD +ReplyLength=17 +Validate=FEFE30E003FD.FEFEE030.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE30E0.04.FD +ReplyLength=14 +Validate=FEFE30E004FD.FEFEE030.04.0000.FD +;filter byte is appended to the mode byte +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM + +[STATUS3] +Command=FEFE30E0.1409.FD +ReplyLength=16 +Validate=FEFE30E01409FD.FEFEE0301409.0000.FD +;Value1=13|2|vfBcdBU|2.352941|300|pmPitch +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +;Command=FEFE30E0.07.FD +;ReplyLength=13 +;Validate=FEFE30E007FD.FEFE30E007.00.FD +;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmVfoA +;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmVfoB + +[STATUS5] +;Command=FEFE30E0.1C00.FD +;ReplyLength=15 +;Validate=FEFE30E01C00FD.FEFEE0301C00.00.FD +;Flag1=00000000000000000000000000.FF.00|00000000000000000000000000.01.00|pmTx +;Flag2=00000000000000000000000000.FF.00|00000000000000000000000000.00.00|pmRx + +[STATUS6] +;Command=FEFE30E0.0F.FD +;ReplyLength=13 +;Validate=FEFE30E00FFD.FEFE30E00F.00.FD +;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmSplitOn +;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmSplitOff + + diff --git a/CATCheck/Rigs/IC-728.ini b/CATCheck/Rigs/IC-728.ini new file mode 100644 index 0000000..2b2887f --- /dev/null +++ b/CATCheck/Rigs/IC-728.ini @@ -0,0 +1,181 @@ +;------------------------------------------------------------------------------- +; Icom IC-728 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Edited by Don Hatlestad, AC7FA@arrl.net http://ac7fa.net for IC-728 +; Using documented CI-V commands at: +; "The ICOM CI-V Information pages by DF4OR" +; http://www.plicht.de/ekki/civ/civtoc.html +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE38E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE38E0050000000000FD.FEFEE038FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE38E0.0F01.FD +ReplyLength=13 +Validate=FEFE38E00F01FD.FEFEE038FBFD + +[pmSplitOff] +Command=FEFE38E0.0F00.FD +ReplyLength=13 +Validate=FEFE38E00F00FD.FEFEE038FBFD + +[pmVfoA] +Command=FEFE38E0.0700.FD +ReplyLength=13 +Validate=FEFE38E00700FD.FEFEE038FBFD + +[pmVfoB] +Command=FEFE38E0.0701.FD +ReplyLength=13 +Validate=FEFE38E00701FD.FEFEE038FBFD + +[pmVfoEqual] +Command=FEFE38E0.07A0.FD +ReplyLength=13 +Validate=FEFE38E007A0FD.FEFEE038FBFD + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; this is the CW Wide Filter +Command=FEFE38E0.06.03.FD +; this command is the CW Narrow mode +;Command=FEFE38E0.06.03O2.FD +ReplyLength=13 +Validate=FEFE38E00603FD.FEFEE038FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE38E0.06.01.FD +ReplyLength=13 +Validate=FEFE38E00601FD.FEFEE038FBFD + +[pmSSB_L] +Command=FEFE38E0.06.00.FD +ReplyLength=13 +Validate=FEFE38E00600FD.FEFEE038FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE38E0.06.02.FD +ReplyLength=13 +Validate=FEFE38E00602FD.FEFEE038FBFD + +[pmFM] +Command=FEFE38E0.06.05.FD +ReplyLength=13 +Validate=FEFE38E00605FD.FEFEE038FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;The command name in the manual is Read Frequencies. +;However, it returns just one frequency +Command=FEFE38E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE38E003FD.FEFEE038.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE38E0.04.FD +ReplyLength=14 +Validate=FEFE38E004FD.FEFEE038.04.0000.FD +;filter byte is appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM diff --git a/CATCheck/Rigs/IC-7300-DATA.ini b/CATCheck/Rigs/IC-7300-DATA.ini new file mode 100644 index 0000000..75b7a76 --- /dev/null +++ b/CATCheck/Rigs/IC-7300-DATA.ini @@ -0,0 +1,278 @@ +;------------------------------------------------------------------------------- +; Icom IC-7300-DATA +; +; IC-7300-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: Peter Klein, KD7MW +; +; Same as IC-7300, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R +; +; Updated by N6TV 2018-04-16: +; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE94E0.1A050075.01.FD +ReplyLength=16 +Validate=FEFE94E01A05007501FD.FEFEE094FBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE94E0.1A050071.00.FD +ReplyLength=16 +Validate=FEFE94E01A05007100FD.FEFEE094FBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE94E0.1A050053.00.FD +ReplyLength=16 +Validate=FEFE94E01A05005300FD.FEFEE094FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE94E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE94E025000000000000FD.FEFEE094FBFD + +[pmFreqB] +Command=FEFE94E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE94E025010000000000FD.FEFEE094FBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE94E0.21.00000000.FD +ReplyLength=16 +Validate=FEFE94E02100000000FD.FEFEE094FBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE94E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE94E014090000FD.FEFEE094FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE94E0.0F01.FD +ReplyLength=13 +Validate=FEFE94E00F01FD.FEFEE094FBFD + +[pmSplitOff] +Command=FEFE94E0.0F00.FD +ReplyLength=13 +Validate=FEFE94E00F00FD.FEFEE094FBFD + +[pmVfoA] +Command=FEFE94E0.0700.FD +ReplyLength=13 +Validate=FEFE94E00700FD.FEFEE094FBFD + +[pmVfoB] +Command=FEFE94E0.0701.FD +ReplyLength=13 +Validate=FEFE94E00701FD.FEFEE094FBFD + +[pmVfoEqual] +Command=FEFE94E0.07A0.FD +ReplyLength=13 +Validate=FEFE94E007A0FD.FEFEE094FBFD + +[pmVfoSwap] +Command=FEFE94E0.07B0.FD +ReplyLength=13 +Validate=FEFE94E007B0FD.FEFEE094FBFD + +[pmVfoAA] +Command=FEFE94E0.0700.FD.FEFE94E0.0F00.FD +ReplyLength=20 +Validate=FEFE94E00700FD.FEFE94E00F00FD.FEFEE094FBFD + +[pmVfoAB] +Command=FEFE94E0.0700.FD.FEFE94E0.0F01.FD +ReplyLength=20 +Validate=FEFE94E00700FD.FEFE94E00F01FD.FEFEE094FBFD + +[pmVfoBA] +Command=FEFE94E0.0701.FD.FEFE94E0.0F01.FD +ReplyLength=20 +Validate=FEFE94E00701FD.FEFE94E00F01FD.FEFEE094FBFD + +[pmVfoBB] +Command=FEFE94E0.0701.FD.FEFE94E0.0F00.FD +ReplyLength=20 +Validate=FEFE94E00701FD.FEFE94E00F00FD.FEFEE094FBFD + +[pmRitOn] +Command=FEFE94E0.21.0101.FD +ReplyLength=14 +Validate=FEFE94E0210101FD.FEFEE094FBFD + +[pmRitOff] +Command=FEFE94E0.21.0100.FD +ReplyLength=14 +Validate=FEFE94E0210100FD.FEFEE094FBFD + +[pmXitOn] +Command=FEFE94E0.21.0201.FD +ReplyLength=14 +Validate=FEFE94E0210201FD.FEFEE094FBFD + +[pmXitOff] +Command=FEFE94E0.21.0200.FD +ReplyLength=14 +Validate=FEFE94E0210200FD.FEFEE094FBFD + +[pmRx] +Command=FEFE94E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE94E01C0000FD.FEFEE094FBFD + +[pmTx] +Command=FEFE94E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE94E01C0001FD.FEFEE094FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE94E0.2600.07.FD +ReplyLength=14 +Validate=FEFE94E0260007FD.FEFEE094FBFD + +[pmCW_L] +; CW Normal +Command=FEFE94E0.2600.03.FD +ReplyLength=14 +Validate=FEFE94E0260003FD.FEFEE094FBFD + +[pmSSB_U] +Command=FEFE94E0.2600.01.00.FD +ReplyLength=15 +Validate=FEFE94E026000100FD.FEFEE094FBFD + +[pmSSB_L] +Command=FEFE94E0.2600.00.00.FD +ReplyLength=15 +Validate=FEFE94E026000000FD.FEFEE094FBFD + +[pmDIG_U] +; These lines select USB-D for USB digital mode +Command=FEFE94E0.2600.01.01.FD +ReplyLength=15 +Validate=FEFE94E026000101FD.FEFEE094FBFD + +[pmDIG_L] +; These lines select LSB-D for LSB digital mode +Command=FEFE94E0.2600.00.01.FD +ReplyLength=15 +Validate=FEFE94E026000001FD.FEFEE094FBFD + +[pmAM] +Command=FEFE94E0.2600.02.FD +ReplyLength=14 +Validate=FEFE94E0260002FD.FEFEE094FBFD + +[pmFM] +Command=FEFE94E0.2600.05.FD +ReplyLength=14 +Validate=FEFE94E0260005FD.FEFEE094FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE94E0.2500.FD +ReplyLength=19 +Validate=FEFE94E02500FD.FEFEE094.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE94E0.2501.FD +ReplyLength=19 +Validate=FEFE94E02501FD.FEFEE094.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE94E0.2600.FD +ReplyLength=17 +Validate=FEFE94E02600FD.FEFEE094.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFE94E0.1409.FD +ReplyLength=16 +Validate=FEFE94E01409FD.FEFEE094.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE94E0.1C00.FD +ReplyLength=15 +Validate=FEFE94E01C00FD.FEFEE094.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE94E0.0F.FD +ReplyLength=13 +Validate=FEFE94E00FFD.FEFEE094.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE94E0.0F.FD +ReplyLength=13 +Validate=FEFE94E00FFD.FEFEE094.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmVfoAB +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA + +[STATUS8] +Command=FEFE94E0.2101.FD +ReplyLength=15 +Validate=FEFE94E02101FD.FEFEE094.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS9] +Command=FEFE94E0.2102.FD +ReplyLength=15 +Validate=FEFE94E02102FD.FEFEE094.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff diff --git a/CATCheck/Rigs/IC-7300.ini b/CATCheck/Rigs/IC-7300.ini new file mode 100644 index 0000000..477cd7f --- /dev/null +++ b/CATCheck/Rigs/IC-7300.ini @@ -0,0 +1,275 @@ +;------------------------------------------------------------------------------- +; Icom IC-7300 +; +; IC-7300 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: James Brooks, 9V1YC and K3UK +; +; Same as original IC-7300, but only returns pmVfoA and pmVfoB, not pmFreq +; for use with CW Skimmer and Contest Loggers. +; +; Updated by N6TV 2018-04-16: +; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE94E0.1A050075.01.FD +ReplyLength=16 +Validate=FEFE94E01A05007501FD.FEFEE094FBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE94E0.1A050071.00.FD +ReplyLength=16 +Validate=FEFE94E01A05007100FD.FEFEE094FBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE94E0.1A050053.00.FD +ReplyLength=16 +Validate=FEFE94E01A05005300FD.FEFEE094FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE94E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE94E025000000000000FD.FEFEE094FBFD + +[pmFreqB] +Command=FEFE94E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE94E025010000000000FD.FEFEE094FBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE94E0.21.00000000.FD +ReplyLength=16 +Validate=FEFE94E02100000000FD.FEFEE094FBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE94E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE94E014090000FD.FEFEE094FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE94E0.0F01.FD +ReplyLength=13 +Validate=FEFE94E00F01FD.FEFEE094FBFD + +[pmSplitOff] +Command=FEFE94E0.0F00.FD +ReplyLength=13 +Validate=FEFE94E00F00FD.FEFEE094FBFD + +[pmVfoA] +Command=FEFE94E0.0700.FD +ReplyLength=13 +Validate=FEFE94E00700FD.FEFEE094FBFD + +[pmVfoB] +Command=FEFE94E0.0701.FD +ReplyLength=13 +Validate=FEFE94E00701FD.FEFEE094FBFD + +[pmVfoEqual] +Command=FEFE94E0.07A0.FD +ReplyLength=13 +Validate=FEFE94E007A0FD.FEFEE094FBFD + +[pmVfoSwap] +Command=FEFE94E0.07B0.FD +ReplyLength=13 +Validate=FEFE94E007B0FD.FEFEE094FBFD + +[pmVfoAA] +Command=FEFE94E0.0700.FD.FEFE94E0.0F00.FD +ReplyLength=20 +Validate=FEFE94E00700FD.FEFE94E00F00FD.FEFEE094FBFD + +[pmVfoAB] +Command=FEFE94E0.0700.FD.FEFE94E0.0F01.FD +ReplyLength=20 +Validate=FEFE94E00700FD.FEFE94E00F01FD.FEFEE094FBFD + +[pmVfoBA] +Command=FEFE94E0.0701.FD.FEFE94E0.0F01.FD +ReplyLength=20 +Validate=FEFE94E00701FD.FEFE94E00F01FD.FEFEE094FBFD + +[pmVfoBB] +Command=FEFE94E0.0701.FD.FEFE94E0.0F00.FD +ReplyLength=20 +Validate=FEFE94E00701FD.FEFE94E00F00FD.FEFEE094FBFD + +[pmRitOn] +Command=FEFE94E0.21.0101.FD +ReplyLength=14 +Validate=FEFE94E0210101FD.FEFEE094FBFD + +[pmRitOff] +Command=FEFE94E0.21.0100.FD +ReplyLength=14 +Validate=FEFE94E0210100FD.FEFEE094FBFD + +[pmXitOn] +Command=FEFE94E0.21.0201.FD +ReplyLength=14 +Validate=FEFE94E0210201FD.FEFEE094FBFD + +[pmXitOff] +Command=FEFE94E0.21.0200.FD +ReplyLength=14 +Validate=FEFE94E0210200FD.FEFEE094FBFD + +[pmRx] +Command=FEFE94E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE94E01C0000FD.FEFEE094FBFD + +[pmTx] +Command=FEFE94E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE94E01C0001FD.FEFEE094FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE94E0.06.07.FD +ReplyLength=13 +Validate=FEFE94E00607FD.FEFEE094FBFD + +[pmCW_L] +; CW Normal +Command=FEFE94E0.06.03.FD +ReplyLength=13 +Validate=FEFE94E00603FD.FEFEE094FBFD + +[pmSSB_U] +Command=FEFE94E0.06.01.FD +ReplyLength=13 +Validate=FEFE94E00601FD.FEFEE094FBFD + +[pmSSB_L] +Command=FEFE94E0.06.00.FD +ReplyLength=13 +Validate=FEFE94E00600FD.FEFEE094FBFD + +[pmDIG_U] +Command=FEFE94E0.06.08.FD +ReplyLength=13 +Validate=FEFE94E00608FD.FEFEE094FBFD + +[pmDIG_L] +Command=FEFE94E0.06.04.FD +ReplyLength=13 +Validate=FEFE94E00604FD.FEFEE094FBFD. + +[pmAM] +Command=FEFE94E0.06.02.FD +ReplyLength=13 +Validate=FEFE94E00602FD.FEFEE094FBFD + +[pmFM] +Command=FEFE94E0.06.05.FD +ReplyLength=13 +Validate=FEFE94E00605FD.FEFEE094FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE94E0.2500.FD +ReplyLength=19 +Validate=FEFE94E02500FD.FEFEE094.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE94E0.2501.FD +ReplyLength=19 +Validate=FEFE94E02501FD.FEFEE094.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE94E0.04.FD +ReplyLength=14 +Validate=FEFE94E004FD.FEFEE094.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS4] +Command=FEFE94E0.1409.FD +ReplyLength=16 +Validate=FEFE94E01409FD.FEFEE094.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE94E0.1C00.FD +ReplyLength=15 +Validate=FEFE94E01C00FD.FEFEE094.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE94E0.0F.FD +ReplyLength=13 +Validate=FEFE94E00FFD.FEFEE094.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE94E0.0F.FD +ReplyLength=13 +Validate=FEFE94E00FFD.FEFEE094.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmVfoAB +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA + +[STATUS8] +Command=FEFE94E0.2101.FD +ReplyLength=15 +Validate=FEFE94E02101FD.FEFEE094.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS9] +Command=FEFE94E0.2102.FD +ReplyLength=15 +Validate=FEFE94E02102FD.FEFEE094.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff diff --git a/CATCheck/Rigs/IC-7315.ini b/CATCheck/Rigs/IC-7315.ini new file mode 100644 index 0000000..9ff7f48 --- /dev/null +++ b/CATCheck/Rigs/IC-7315.ini @@ -0,0 +1,47 @@ +;------------------------------------------------------------------------------- +; Icom IC-7315 command set +; +; File created by RK0SK and UR5EQF +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +Command=FEFE04E0.05.00000000.FD +Value=5|4|vfBcdLU|1|0 +ReplyLength=16 +Validate=FEFE04E00500000000FD.FEFEE004FBFD +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE04E0.06.03.FD +ReplyLength=13 +Validate=FEFE04E00603FD.FEFEE004FBFD + +[pmSSB_U] +Command=FEFE04E0.06.01.FD +ReplyLength=13 +Validate=FEFE04E00601FD.FEFEE004FBFD + +[pmSSB_L] +Command=FEFE04E0.06.00.FD +ReplyLength=13 +Validate=FEFE04E00600FD.FEFEE004FBFD + +[pmAM] +Command=FEFE04E0.06.02.FD +ReplyLength=13 +Validate=FEFE04E00602FD.FEFEE004FBFD + +[pmFM] +Command=FEFE04E0.06.05.FD +ReplyLength=13 +Validate=FEFE04E00605FD.FEFEE004FBFD +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE04E0.03.FD +ReplyLength=16 +Validate=FEFE04E003FD.FEFEE004.03.00000000.FD +Value=11|4|vfBcdLU|1|0|pmFreq \ No newline at end of file diff --git a/CATCheck/Rigs/IC-735.ini b/CATCheck/Rigs/IC-735.ini new file mode 100644 index 0000000..cd6d2ff --- /dev/null +++ b/CATCheck/Rigs/IC-735.ini @@ -0,0 +1,93 @@ +;------------------------------------------------------------------------------- +; Icom IC-735 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Corrected by RK0SK and UR5EQF +; and DL6JH dl6jh@t-online.de +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +Command=FEFE04E0.05.00000000.FD +Value=5|4|vfBcdLU|1|0 +ReplyLength=16 +Validate=FEFE04E00500000000FD.FEFEE004FBFD + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmVfoA] +Command=FEFE04E0.0700.FD +ReplyLength=13 +Validate=FEFE04E00700FD.FEFEE004FBFD + +[pmVfoB] +Command=FEFE04E0.0701.FD +ReplyLength=13 +Validate=FEFE04E00701FD.FEFEE004FBFD + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE04E0.06.03.FD +ReplyLength=13 +Validate=FEFE04E00603FD.FEFEE004FBFD + +[pmSSB_U] +Command=FEFE04E0.06.01.FD +ReplyLength=13 +Validate=FEFE04E00601FD.FEFEE004FBFD + +[pmSSB_L] +Command=FEFE04E0.06.00.FD +ReplyLength=13 +Validate=FEFE04E00600FD.FEFEE004FBFD + +[pmDIG_U] +Command=FEFE04E0.06.04.FD +ReplyLength=13 +Validate=FEFE04E00608FD.FEFEE004FBFD + +[pmAM] +Command=FEFE04E0.06.02.FD +ReplyLength=13 +Validate=FEFE04E00602FD.FEFEE004FBFD + +[pmFM] +Command=FEFE04E0.06.05.FD +ReplyLength=13 +Validate=FEFE04E00605FD.FEFEE004FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE04E0.03.FD +ReplyLength=16 +Validate=FEFE04E003FD.FEFEE004.03.00000000.FD +Value1=11|4|vfBcdLU|1|0|pmFreq + + + +[STATUS2] +Command=FEFE04E0.04.FD +ReplyLength=13 +Validate=FEFE04E004FD.FEFEE00404.00.FD +Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U +Flag2=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U +Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L +Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U +Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM +Flag6=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM diff --git a/CATCheck/Rigs/IC-736 (untested).ini b/CATCheck/Rigs/IC-736 (untested).ini new file mode 100644 index 0000000..dcc6e35 --- /dev/null +++ b/CATCheck/Rigs/IC-736 (untested).ini @@ -0,0 +1,177 @@ +;------------------------------------------------------------------------------- +; Icom IC-738 command set +; +; File created for IC-737 by RZ4AG aia@dxsoft.com +; Modified for IC-736 by YO3IPR / G4IPR but untested +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE40E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE40E0050000000000FD.FEFEE040FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=FEFE40E0.0700.FD +ReplyLength=13 +Validate=FEFE40E00700FD.FEFEE040FBFD + +[pmVfoB] +Command=FEFE40E0.0701.FD +ReplyLength=13 +Validate=FEFE40E00701FD.FEFEE040FBFD + +[pmVfoEqual] +Command=FEFE40E0.07A0.FD +ReplyLength=13 +Validate=FEFE40E007A0FD.FEFEE040FBFD + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE40E0.06.03.FD +ReplyLength=13 +Validate=FEFE40E00603FD.FEFEE040FBFD + +[pmCW_L] +Command=FEFE40E0.06.07.FD +ReplyLength=13 +Validate=FEFE40E00607FD.FEFEE040FBFD + +[pmSSB_U] +Command=FEFE40E0.06.01.FD +ReplyLength=13 +Validate=FEFE40E00601FD.FEFEE040FBFD + +[pmSSB_L] +Command=FEFE40E0.06.00.FD +ReplyLength=13 +Validate=FEFE40E00600FD.FEFEE040FBFD + +[pmDIG_U] +Command=FEFE40E0.06.04.FD +ReplyLength=13 +Validate=FEFE40E00604FD.FEFEE040FBFD + +[pmDIG_L] +Command=FEFE40E0.06.08.FD +ReplyLength=13 +Validate=FEFE40E00608FD.FEFEE040FBFD + +[pmAM] +Command=FEFE04E0.06.02.FD +ReplyLength=13 +Validate=FEFE40E00602FD.FEFEE040FBFD + +[pmFM] +Command=FEFE40E0.06.05.FD +ReplyLength=13 +Validate=FEFE40E00605FD.FEFEE040FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;The command name in the manual is Read Frequencies. +;However, it returns just one frequency +Command=FEFE40E0.03.FD +ReplyLength=17 +Validate=FEFE40E003FD.FEFEE040.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE40E0.04.FD +ReplyLength=14 +Validate=FEFE40E004FD.FEFEE040.04.0000.FD +;filter byte is appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM diff --git a/CATCheck/Rigs/IC-737.ini b/CATCheck/Rigs/IC-737.ini new file mode 100644 index 0000000..47a98b7 --- /dev/null +++ b/CATCheck/Rigs/IC-737.ini @@ -0,0 +1,176 @@ +;------------------------------------------------------------------------------- +; Icom IC-737 command set +; +; File created by RZ4AG aia@dxsoft.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE3CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE3CE0050000000000FD.FEFEE03CFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=FEFE3CE0.0700.FD +ReplyLength=13 +Validate=FEFE3CE00700FD.FEFEE03CFBFD + +[pmVfoB] +Command=FEFE3CE0.0701.FD +ReplyLength=13 +Validate=FEFE3CE00701FD.FEFEE03CFBFD + +[pmVfoEqual] +Command=FEFE3CE0.07A0.FD +ReplyLength=13 +Validate=FEFE3CE007A0FD.FEFEE03CFBFD + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE3CE0.06.03.FD +ReplyLength=13 +Validate=FEFE3CE00603FD.FEFEE03CFBFD + +[pmCW_L] +Command=FEFE3CE0.06.07.FD +ReplyLength=13 +Validate=FEFE3CE00607FD.FEFEE03CFBFD + +[pmSSB_U] +Command=FEFE3CE0.06.01.FD +ReplyLength=13 +Validate=FEFE3CE00601FD.FEFEE03CFBFD + +[pmSSB_L] +Command=FEFE3CE0.06.00.FD +ReplyLength=13 +Validate=FEFE3CE00600FD.FEFEE03CFBFD + +[pmDIG_U] +Command=FEFE3CE0.06.04.FD +ReplyLength=13 +Validate=FEFE3CE00604FD.FEFEE03CFBFD + +[pmDIG_L] +Command=FEFE3CE0.06.08.FD +ReplyLength=13 +Validate=FEFE3CE00608FD.FEFEE03CFBFD + +[pmAM] +Command=FEFE04E0.06.02.FD +ReplyLength=13 +Validate=FEFE3CE00602FD.FEFEE03CFBFD + +[pmFM] +Command=FEFE3CE0.06.05.FD +ReplyLength=13 +Validate=FEFE3CE00605FD.FEFEE03CFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;The command name in the manual is Read Frequencies. +;However, it returns just one frequency +Command=FEFE3CE0.03.FD +ReplyLength=17 +Validate=FEFE3CE003FD.FEFEE03C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE3CE0.04.FD +ReplyLength=14 +Validate=FEFE3CE004FD.FEFEE03C.04.0000.FD +;filter byte is appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM diff --git a/CATCheck/Rigs/IC-738.ini b/CATCheck/Rigs/IC-738.ini new file mode 100644 index 0000000..765adba --- /dev/null +++ b/CATCheck/Rigs/IC-738.ini @@ -0,0 +1,177 @@ +;------------------------------------------------------------------------------- +; Icom IC-738 command set +; +; File created for IC-737 by RZ4AG aia@dxsoft.com +; Modified & tested on IC-738 by YO3IPR / G4IPR +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE44E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE44E0050000000000FD.FEFEE044FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=FEFE44E0.0700.FD +ReplyLength=13 +Validate=FEFE44E00700FD.FEFEE044FBFD + +[pmVfoB] +Command=FEFE44E0.0701.FD +ReplyLength=13 +Validate=FEFE44E00701FD.FEFEE044FBFD + +[pmVfoEqual] +Command=FEFE44E0.07A0.FD +ReplyLength=13 +Validate=FEFE44E007A0FD.FEFEE044FBFD + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE44E0.06.03.FD +ReplyLength=13 +Validate=FEFE44E00603FD.FEFEE044FBFD + +[pmCW_L] +Command=FEFE44E0.06.07.FD +ReplyLength=13 +Validate=FEFE44E00607FD.FEFEE044FBFD + +[pmSSB_U] +Command=FEFE44E0.06.01.FD +ReplyLength=13 +Validate=FEFE44E00601FD.FEFEE044FBFD + +[pmSSB_L] +Command=FEFE44E0.06.00.FD +ReplyLength=13 +Validate=FEFE44E00600FD.FEFEE044FBFD + +[pmDIG_U] +Command=FEFE44E0.06.04.FD +ReplyLength=13 +Validate=FEFE44E00604FD.FEFEE044FBFD + +[pmDIG_L] +Command=FEFE44E0.06.08.FD +ReplyLength=13 +Validate=FEFE44E00608FD.FEFEE044FBFD + +[pmAM] +Command=FEFE04E0.06.02.FD +ReplyLength=13 +Validate=FEFE44E00602FD.FEFEE044FBFD + +[pmFM] +Command=FEFE44E0.06.05.FD +ReplyLength=13 +Validate=FEFE44E00605FD.FEFEE044FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;The command name in the manual is Read Frequencies. +;However, it returns just one frequency +Command=FEFE44E0.03.FD +ReplyLength=17 +Validate=FEFE44E003FD.FEFEE044.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE44E0.04.FD +ReplyLength=14 +Validate=FEFE44E004FD.FEFEE044.04.0000.FD +;filter byte is appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM diff --git a/CATCheck/Rigs/IC-7410 (1).ini b/CATCheck/Rigs/IC-7410 (1).ini new file mode 100644 index 0000000..2cfa5b3 --- /dev/null +++ b/CATCheck/Rigs/IC-7410 (1).ini @@ -0,0 +1,162 @@ +;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +; +; Icom IC-7410 Omni-Rig commands +; +; File created by: Elijah Figueroa, N0ZLD (nzerozld@gmail.com) +; +; Revision 1.0 - 2011-09-11 +; +; NOTE: You MUST disable CI-V Transceive in your radio for Omni-Rig to work! +; +; Hold MENU, select item 44 (CI-V Transceive) and rotate the dial to select +; 'OFF' then push MENU to save the change. This can also be found in page 89 +; in the IC-7410 PDF manual: +; +; http://www.icomamerica.com/en/downloads/DownloadDocument.aspx?Document=544 +; +; If you have changed your default CI-V address from 80 to something else, +; do a find and replace in this INI file. First, Find FEFE80E0 and replace with +; FEFEXXE0 where XX is your numerical address. +; +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +;-------------------------------------------------------------------------- +; Initialize the radio +;-------------------------------------------------------------------------- + +; +; +; +[INIT1] +Command=FEFE80E0.1A050092.00.FD +ReplyLength=16 +Validate=FEFE80E01A05009200FD.FEFEE080FBFD + + +;-------------------------------------------------------------------------- +; Set frequency +;-------------------------------------------------------------------------- + +; Set operating frequency +[pmFreq] +Command=FEFE80E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE80E0050000000000FD.FEFEE080FBFD + + +;-------------------------------------------------------------------------- +; Set Split, Rx & Tx +;-------------------------------------------------------------------------- + +; Turn Split function on +[pmSplitOn] +Command=FEFE80E0.0F01.FD +ReplyLength=13 +Validate=FEFE80E00F01FD.FEFEE080FBFD + +; Turn Split function off +[pmSplitOff] +Command=FEFE80E0.0F00.FD +ReplyLength=13 +Validate=FEFE80E00F00FD.FEFEE080FBFD + +; Enable receive mode +[pmRx] +Command=FEFE80E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE80E01C0000FD.FEFEE080FBFD + +; Enable transmit mode +[pmTx] +Command=FEFE80E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE80E01C0001FD.FEFEE080FBFD + + +;-------------------------------------------------------------------------- +; Set modes of the radio +;-------------------------------------------------------------------------- + +; Upper sideband CW +[pmCW_U] +Command=FEFE80E0.06.07.FD +ReplyLength=13 +Validate=FEF704E00607FD.FEFEE080FBFD + +; Lower sideband CW +[pmCW_L] +Command=FEFE80E0.06.03.FD +ReplyLength=13 +Validate=FEFE80E00603FD.FEFEE080FBFD + +; USB +[pmSSB_U] +Command=FEFE80E0.06.01.FD +ReplyLength=13 +Validate=FEFE80E00601FD.FEFEE080FBFD + +; LSB +[pmSSB_L] +Command=FEFE80E0.06.00.FD +ReplyLength=13 +Validate=FEFE80E00600FD.FEFEE080FBFD + +; Upper sideband digital modes +[pmDIG_U] +Command=FEFE80E0.06.08.FD +ReplyLength=13 +Validate=FEFE80E00608FD.FEFEE080FBFD + +; Lower sideband digital modes +[pmDIG_L] +Command=FEFE80E0.06.04.FD +ReplyLength=13 +Validate=FEFE80E00604FD.FEFEE080FBFD + +; AM +[pmAM] +Command=FEFE80E0.06.02.FD +ReplyLength=13 +Validate=FEFE80E00602FD.FEFEE080FBFD + +; FM +[pmFM] +Command=FEFE80E0.06.05.FD +ReplyLength=13 +Validate=FEFE80E00605FD.FEFEE080FBFD + + +;------------------------------------------------------------------------ +; Read the status of the radio +;------------------------------------------------------------------------ + +; Read the current frequency +[STATUS1] +Command=FEFE80E0.03.FD +ReplyLength=17 +Validate=FEFE80E003FD.FEFEE080.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +; Read the current operating mode +[STATUS2] +Command=FEFE80E0.04.FD +ReplyLength=14 +Validate=FEFE80E004FD.FEFEE080.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +; Are we in Rx or Tx? +[STATUS3] +Command=FEFE80E0.1C00.FD +ReplyLength=15 +Validate=FEFE80E01C00FD.FEFEE080.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + diff --git a/CATCheck/Rigs/IC-7410.ini b/CATCheck/Rigs/IC-7410.ini new file mode 100644 index 0000000..e5be31f --- /dev/null +++ b/CATCheck/Rigs/IC-7410.ini @@ -0,0 +1,151 @@ +;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +; +; Icom IC-7410 Omni-Rig commands +; +; File for IC-7600 created by Makoto Kasahara / JN1GLB : jn1glb@jarl.com +; +; File modified for IC-7410 by Ian Stirling VK3MZ June 2011: +; ianstirling@optusnet.com.au +; +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +;-------------------------------------------------------------------------- +; Initialize the radio +;-------------------------------------------------------------------------- + +; +; +; +[INIT1] +Command=FEFE80E0.1A050089.02.FD +ReplyLength=16 +Validate=FEFE80E01A05008902FD.FEFEE080FBFD + + +;-------------------------------------------------------------------------- +; Set frequency +;-------------------------------------------------------------------------- + +; Set operating frequency +[pmFreq] +Command=FEFE80E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE80E0050000000000FD.FEFEE080FBFD + + +;-------------------------------------------------------------------------- +; Set Split, Rx & Tx +;-------------------------------------------------------------------------- + +; Turn Split function on +[pmSplitOn] +Command=FEFE80E0.0F01.FD +ReplyLength=13 +Validate=FEFE80E00F01FD.FEFEE080FBFD + +; Turn Split function off +[pmSplitOff] +Command=FEFE80E0.0F00.FD +ReplyLength=13 +Validate=FEFE80E00F00FD.FEFEE080FBFD + +; Enable receive mode +[pmRx] +Command=FEFE80E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE80E01C0000FD.FEFEE080FBFD + +; Enable transmit mode +[pmTx] +Command=FEFE80E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE80E01C0001FD.FEFEE080FBFD + + +;-------------------------------------------------------------------------- +; Set modes of the radio +;-------------------------------------------------------------------------- + +; Upper sideband CW +[pmCW_U] +Command=FEFE80E0.06.07.FD +ReplyLength=13 +Validate=FEFE80E00607FD.FEFEE080FBFD + +; Lower sideband CW +[pmCW_L] +Command=FEFE80E0.06.03.FD +ReplyLength=13 +Validate=FEFE80E00603FD.FEFEE080FBFD + +; USB +[pmSSB_U] +Command=FEFE80E0.06.01.FD +ReplyLength=13 +Validate=FEFE80E00601FD.FEFEE080FBFD + +; LSB +[pmSSB_L] +Command=FEFE80E0.06.00.FD +ReplyLength=13 +Validate=FEFE80E00600FD.FEFEE080FBFD + +; Upper sideband digital modes +[pmDIG_U] +Command=FEFE80E0.06.08.FD +ReplyLength=13 +Validate=FEFE80E00608FD.FEFEE080FBFD + +; Lower sideband digital modes +[pmDIG_L] +Command=FEFE80E0.06.04.FD +ReplyLength=13 +Validate=FEFE80E00604FD.FEFEE080FBFD + +; AM +[pmAM] +Command=FEFE80E0.06.02.FD +ReplyLength=13 +Validate=FEFE80E00602FD.FEFEE080FBFD + +; FM +[pmFM] +Command=FEFE80E0.06.05.FD +ReplyLength=13 +Validate=FEFE80E00605FD.FEFEE080FBFD + + +;------------------------------------------------------------------------ +; Read the status of the radio +;------------------------------------------------------------------------ + +; Read the current frequency +[STATUS1] +Command=FEFE80E0.03.FD +ReplyLength=17 +Validate=FEFE80E003FD.FEFEE080.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +; Read the current operating mode +[STATUS2] +Command=FEFE80E0.04.FD +ReplyLength=14 +Validate=FEFE80E004FD.FEFEE080.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +; Are we in Rx or Tx? +[STATUS3] +Command=FEFE80E0.1C00.FD +ReplyLength=15 +Validate=FEFE80E01C00FD.FEFEE080.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + diff --git a/CATCheck/Rigs/IC-7410v2.ini b/CATCheck/Rigs/IC-7410v2.ini new file mode 100644 index 0000000..b19731c --- /dev/null +++ b/CATCheck/Rigs/IC-7410v2.ini @@ -0,0 +1,223 @@ +;------------------------------------------------------------------------------- +; Icom IC-7410 with corrected command set +; +; IC-7410v2 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: N6TV @ HRO Sunnyvale, CA +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE80E0.1A050040.00.FD +ReplyLength=16 +Validate=FEFE80E01A05004000FD.FEFEE080FBFD + +[INIT2] +;set CW normal to lower sideband +Command=FEFE80E0.1A050033.00.FD +ReplyLength=16 +Validate=FEFE80E01A05003300FD.FEFEE080FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE80E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE80E0050000000000FD.FEFEE080FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE80E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE80E014090000FD.FEFEE080FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE80E0.0F01.FD +ReplyLength=13 +Validate=FEFE80E00F01FD.FEFEE080FBFD + +[pmSplitOff] +Command=FEFE80E0.0F00.FD +ReplyLength=13 +Validate=FEFE80E00F00FD.FEFEE080FBFD + +[pmVfoA] +Command=FEFE80E0.0700.FD +ReplyLength=13 +Validate=FEFE80E00700FD.FEFEE080FBFD + +[pmVfoB] +Command=FEFE80E0.0701.FD +ReplyLength=13 +Validate=FEFE80E00701FD.FEFEE080FBFD + +[pmVfoEqual] +Command=FEFE80E0.07A0.FD +ReplyLength=13 +Validate=FEFE80E007A0FD.FEFEE080FBFD + +[pmVfoSwap] +Command=FEFE80E0.07B0.FD +ReplyLength=13 +Validate=FEFE80E007B0FD.FEFEE080FBFD + +[pmVfoAA] +Command=FEFE80E0.0700.FD.FEFE80E0.0F00.FD +ReplyLength=20 +Validate=FEFE80E00700FD.FEFE80E00F00FD.FEFEE080FBFD + +[pmVfoAB] +Command=FEFE80E0.0700.FD.FEFE80E0.0F01.FD +ReplyLength=20 +Validate=FEFE80E00700FD.FEFE80E00F01FD.FEFEE080FBFD + +[pmVfoBA] +Command=FEFE80E0.0701.FD.FEFE80E0.0F01.FD +ReplyLength=20 +Validate=FEFE80E00701FD.FEFE80E00F01FD.FEFEE080FBFD + +[pmVfoBB] +Command=FEFE80E0.0701.FD.FEFE80E0.0F00.FD +ReplyLength=20 +Validate=FEFE80E00701FD.FEFE80E00F00FD.FEFEE080FBFD + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +Command=FEFE80E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE80E01C0000FD.FEFEE080FBFD + +[pmTx] +Command=FEFE80E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE80E01C0001FD.FEFEE080FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE80E0.06.07.FD +ReplyLength=13 +Validate=FEFE80E00607FD.FEFEE080FBFD + +[pmCW_L] +; CW Normal +Command=FEFE80E0.06.03.FD +ReplyLength=13 +Validate=FEFE80E00603FD.FEFEE080FBFD + +[pmSSB_U] +Command=FEFE80E0.06.01.FD +ReplyLength=13 +Validate=FEFE80E00601FD.FEFEE080FBFD + +[pmSSB_L] +Command=FEFE80E0.06.00.FD +ReplyLength=13 +Validate=FEFE80E00600FD.FEFEE080FBFD + +[pmDIG_U] +Command=FEFE80E0.06.08.FD +ReplyLength=13 +Validate=FEFE80E00608FD.FEFEE080FBFD + +[pmDIG_L] +Command=FEFE80E0.06.04.FD +ReplyLength=13 +Validate=FEFE80E00604FD.FEFEE080FBFD + +[pmAM] +Command=FEFE80E0.06.02.FD +ReplyLength=13 +Validate=FEFE80E00602FD.FEFEE080FBFD + +[pmFM] +Command=FEFE80E0.06.05.FD +ReplyLength=13 +Validate=FEFE80E00605FD.FEFEE080FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE80E0.03.FD +ReplyLength=17 +Validate=FEFE80E003FD.FEFEE080.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE80E0.04.FD +ReplyLength=14 +Validate=FEFE80E004FD.FEFEE080.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE80E0.1409.FD +ReplyLength=16 +Validate=FEFE80E01409FD.FEFEE080.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE80E0.1C00.FD +ReplyLength=15 +Validate=FEFE80E01C00FD.FEFEE080.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS5] +Command=FEFE80E0.0F.FD +ReplyLength=13 +Validate=FEFE80E00FFD.FEFEE080.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff diff --git a/CATCheck/Rigs/IC-746 Pro.ini b/CATCheck/Rigs/IC-746 Pro.ini new file mode 100644 index 0000000..e821585 --- /dev/null +++ b/CATCheck/Rigs/IC-746 Pro.ini @@ -0,0 +1,213 @@ +;------------------------------------------------------------------------------- +; Icom IC-746 Pro command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;disable transceive mode +Command=FEFE66E0.1A0536.00.FD +ReplyLength=15 +Validate=FEFE66E01A053600FD.FEFEE066FBFD + +[INIT2] +;disable 731 mode +Command=FEFE66E0.1A0537.00.FD +ReplyLength=15 +Validate=FEFE66E01A053700FD.FEFEE066FBFD + + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE66E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE66E0050000000000FD.FEFEE066FBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +Command=FEFE66E0.1409.0000.FD +;300Hz=0 600Hz=128 900Hz=255 +Value=6|2|vfBcdLU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE66E014090000FD.FEFEE066FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE66E0.0F01.FD +ReplyLength=13 +Validate=FEFE66E00F01FD.FEFEE066FBFD + +[pmSplitOff] +Command=FEFE66E0.0F00.FD +ReplyLength=13 +Validate=FEFE66E00F00FD.FEFEE066FBFD + +[pmVfoA] +Command=FEFE66E0.0700.FD +ReplyLength=13 +Validate=FEFE66E00700FD.FEFEE066FBFD + +[pmVfoB] +Command=FEFE66E0.0701.FD +ReplyLength=13 +Validate=FEFE66E00701FD.FEFEE066FBFD + +[pmVfoEqual] +Command=FEFE66E0.07A0.FD +ReplyLength=13 +Validate=FEFE66E007A0FD.FEFEE066FBFD + +[pmVfoSwap] +Command=FEFE66E0.07B0.FD +ReplyLength=13 +Validate=FEFE66E007B0FD.FEFEE066FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE66E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE66E01C0000FD.FEFEE066FBFD + +[pmTx] +Command=FEFE66E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE66E01C0001FD.FEFEE066FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE66E0.06.03.FD +ReplyLength=13 +Validate=FEFE66E00603FD.FEFEE066FBFD + +[pmCW_L] +Command=FEFE66E0.06.07.FD +ReplyLength=13 +Validate=FEFE66E00607FD.FEFEE066FBFD + +[pmSSB_U] +Command=FEFE66E0.06.01.FD +ReplyLength=13 +Validate=FEFE66E00601FD.FEFEE066FBFD + +[pmSSB_L] +Command=FEFE66E0.06.00.FD +ReplyLength=13 +Validate=FEFE66E00600FD.FEFEE066FBFD + +[pmDIG_U] +Command=FEFE66E0.06.04.FD +ReplyLength=13 +Validate=FEFE66E00604FD.FEFEE066FBFD + +[pmDIG_L] +Command=FEFE66E0.06.08.FD +ReplyLength=13 +Validate=FEFE66E00608FD.FEFEE066FBFD + +[pmAM] +Command=FEFE66E0.06.02.FD +ReplyLength=13 +Validate=FEFE66E00602FD.FEFEE066FBFD + +[pmFM] +Command=FEFE66E0.06.05.FD +ReplyLength=13 +Validate=FEFE66E00605FD.FEFEE066FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE66E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE66E003FD.FEFEE066.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE66E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE66E004FD.FEFEE066.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE66E0.1409.FD +ReplyLength=16 +Validate=FFFFFFFFFFFFFF.FFFFFFFFFFFF.0000.FF|FEFE66E01409FD.FEFEE0661409.0000.FD +Value1=13|2|vfBcdLU|2.352941|300|pmPitch + +[STATUS4] +Command=FEFE66E0.1C00.FD +ReplyLength=15 +Validate=FFFFFFFFFFFFFF.FFFFFFFF.FFFF.00.FF|FEFE66E01C00FD.FEFEE066.1C00.00.FD +Flag1=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-746.ini b/CATCheck/Rigs/IC-746.ini new file mode 100644 index 0000000..f1c260e --- /dev/null +++ b/CATCheck/Rigs/IC-746.ini @@ -0,0 +1,203 @@ +;------------------------------------------------------------------------------- + ; Icom IC-746 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE56E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE56E0050000000000FD.FEFEE056FBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +Command=FEFE56E0.1409.0000.FD +;300Hz=0 600Hz=128 900Hz=255 +Value=6|2|vfBcdLU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE56E014090000FD.FEFEE056FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE56E0.0F01.FD +ReplyLength=13 +Validate=FEFE56E00F01FD.FEFEE056FBFD + +[pmSplitOff] +Command=FEFE56E0.0F00.FD +ReplyLength=13 +Validate=FEFE56E00F00FD.FEFEE056FBFD + +[pmVfoA] +Command=FEFE56E0.0700.FD +ReplyLength=13 +Validate=FEFE56E00700FD.FEFEE056FBFD + +[pmVfoB] +Command=FEFE56E0.0701.FD +ReplyLength=13 +Validate=FEFE56E00701FD.FEFEE056FBFD + +[pmVfoEqual] +Command=FEFE56E0.07A0.FD +ReplyLength=13 +Validate=FEFE56E007A0FD.FEFEE056FBFD + +[pmVfoSwap] +Command=FEFE56E0.07B0.FD +ReplyLength=13 +Validate=FEFE56E007B0FD.FEFEE056FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE56E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE56E01C0000FD.FEFEE056FBFD + +[pmTx] +Command=FEFE56E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE56E01C0001FD.FEFEE056FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE56E0.06.03.FD +ReplyLength=13 +Validate=FEFE56E00603FD.FEFEE056FBFD + +[pmCW_L] +Command=FEFE56E0.06.07.FD +ReplyLength=13 +Validate=FEFE56E00607FD.FEFEE056FBFD + +[pmSSB_U] +Command=FEFE56E0.06.01.FD +ReplyLength=13 +Validate=FEFE56E00601FD.FEFEE056FBFD + +[pmSSB_L] +Command=FEFE56E0.06.00.FD +ReplyLength=13 +Validate=FEFE56E00600FD.FEFEE056FBFD + +[pmDIG_U] +Command=FEFE56E0.06.04.FD +ReplyLength=13 +Validate=FEFE56E00604FD.FEFEE056FBFD + +[pmDIG_L] +Command=FEFE56E0.06.08.FD +ReplyLength=13 +Validate=FEFE56E00608FD.FEFEE056FBFD + +[pmAM] +Command=FEFE56E0.06.02.FD +ReplyLength=13 +Validate=FEFE56E00602FD.FEFEE056FBFD + +[pmFM] +Command=FEFE56E0.06.05.FD +ReplyLength=13 +Validate=FEFE56E00605FD.FEFEE056FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE56E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE56E003FD.FEFEE056.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE56E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE56E004FD.FEFEE056.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE56E0.1409.FD +ReplyLength=16 +Validate=FFFFFFFFFFFFFF.FFFFFFFFFFFF.0000.FF|FEFE56E01409FD.FEFEE0561409.0000.FD +Value1=13|2|vfBcdLU|2.352941|300|pmPitch + +[STATUS4] +Command=FEFE56E0.1C00.FD +ReplyLength=15 +Validate=FFFFFFFFFFFFFF.FFFFFFFF.FFFF.00.FF|FEFE56E01C00FD.FEFEE056.1C00.00.FD +Flag1=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-751.ini b/CATCheck/Rigs/IC-751.ini new file mode 100644 index 0000000..55871ae --- /dev/null +++ b/CATCheck/Rigs/IC-751.ini @@ -0,0 +1,165 @@ +;------------------------------------------------------------------------------- +; Icom IC-751 command set +; +; mod by sa2w +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE1CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE1CE0050000000000FD.FEFE001CFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=FEFE1CE0.0700.FD +ReplyLength=13 +Validate=FEFE1CE00700FD.FEFE001CFBFD + +[pmVfoB] +Command=FEFE1CE0.0701.FD +ReplyLength=13 +Validate=FEFE1CE00701FD.FEFE001CFBFD + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE1CE0.06.03.FD +ReplyLength=13 +Validate=FEFE1CE00603FD.FEFE001CFBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE1CE0.06.01.FD +ReplyLength=13 +Validate=FEFE1CE00601FD.FEFE001CFBFD + +[pmSSB_L] +Command=FEFE1CE0.06.00.FD +ReplyLength=13 +Validate=FEFE1CE00600FD.FEFE001CFBFD + +[pmDIG_U] +Command=FEFE1CE0.06.04.FD +ReplyLength=13 +Validate=FEFE1CE00604FD.FEFE001CFBFD + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE1CE0.06.02.FD +ReplyLength=13 +Validate=FEFE1CE00602FD.FEFE001CFBFD + +[pmFM] +Command=FEFE1CE0.06.05.FD +ReplyLength=13 +Validate=FEFE1CE00605FD.FEFE001CFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE1CE0.03.FD +ReplyLength=17 +Validate=FEFE1CE003FD.FEFE001C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE1CE0.04.FD +ReplyLength=13 +Validate=FEFE1CE004FD.FEFE001C.04.00.00 +Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U +Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U +Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L +Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U +Flag7=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM +Flag8=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM diff --git a/CATCheck/Rigs/IC-756 Pro II.ini b/CATCheck/Rigs/IC-756 Pro II.ini new file mode 100644 index 0000000..b067b05 --- /dev/null +++ b/CATCheck/Rigs/IC-756 Pro II.ini @@ -0,0 +1,242 @@ +;------------------------------------------------------------------------------- +; Icom IC-756 Pro II command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Modified by Brendan EI6IZ ei6iz@oceanfree.net +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;disable transceive mode +Command=FEFE64E0.1A0542.00.FD +ReplyLength=15 +Validate=FEFE64E01A054200FD.FEFEE064FBFD + +[INIT2] +;disable 731 mode +Command=FEFE64E0.1A0543.00.FD +ReplyLength=15 +Validate=FEFE64E01A054300FD.FEFEE064FBFD + +; Some of us don't like this option one bit! +;[INIT3] +;set CW normal to upper sideband +;Command=FEFE64E0.1A0567.01.FD +;ReplyLength=15 +;Validate=FEFE64E01A056701FD.FEFEE064FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE64E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE64E0050000000000FD.FEFEE064FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] + + +Command=FEFE64E0.14.09.0000.FD +;300Hz=5 600Hz=128 900Hz=255 +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? + +Value=6|2|vfBcdBU|1|1 +ReplyLength=15 +Validate=FEFE64E014090000FD.FEFEE064FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE64E0.0F01.FD +ReplyLength=13 +Validate=FEFE64E00F01FD.FEFEE064FBFD + +[pmSplitOff] +Command=FEFE64E0.0F00.FD +ReplyLength=13 +Validate=FEFE64E00F00FD.FEFEE064FBFD + +[pmVfoA] +;not supported +;It's possible to select which VFO is active on the display & used for data entry, +;this isn't usually the receive VFO, perhaps this is what you want however? + +Command=FEFE64E0.07D0.FD +ReplyLength=13 +Validate=FEFE64E007D0FD.FEFEE064FBFD + + +[pmVfoB] +Command=FEFE64E0.07D1.FD +ReplyLength=13 +Validate=FEFE64E007D1FD.FEFEE064FBFD + + +[pmVfoEqual] +Command=FEFE64E0.07B1.FD +ReplyLength=13 +Validate=FEFE64E007B1FD.FEFEE064FBFD + +[pmVfoSwap] +Command=FEFE64E0.07B0.FD +ReplyLength=13 +Validate=FEFE64E007B0FD.FEFEE064FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE64E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE64E01C0000FD.FEFEE064FBFD + +[pmTx] +;is 00 after 1C required or err in doc? +; Yes we require the 00 following the 1C +Command=FEFE64E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE64E01C0001FD.FEFEE064FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;swapped this around to correct for the removal of INIT3 +Command=FEFE64E0.06.07.FD +ReplyLength=13 +Validate=FEFE64E00607FD.FEFEE064FBFD + + +[pmCW_L] +;swapped this around to correct for the removal of INIT3 +Command=FEFE64E0.06.03.FD +ReplyLength=13 +Validate=FEFE64E00603FD.FEFEE064FBFD + +[pmSSB_U] +Command=FEFE64E0.06.01.FD +ReplyLength=13 +Validate=FEFE64E00601FD.FEFEE064FBFD + +[pmSSB_L] +Command=FEFE64E0.06.00.FD +ReplyLength=13 +Validate=FEFE64E00600FD.FEFEE064FBFD + +[pmDIG_U] +; if we want to use SSB-D modes we need 2 commands, fist set appropriate Sideband then set D-mode +; problem is that since the D mode status requires a different poll ( FEFE64E0.1A.06.FD) +; it always looks to the software like we are in SSB modes not SSB-D modes +Command=FEFE64E0.06.01.FD.FEFE64E0.1A.06.01.FD +ReplyLength=27 +Validate=FEFE64E00601FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD + + +[pmDIG_L] +Command=FEFE64E0.06.00.FD.FEFE64E0.1A.06.01.FD +ReplyLength=27 +Validate=FEFE64E00600FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD + + +[pmAM] +Command=FEFE64E0.06.02.FD +ReplyLength=13 +Validate=FEFE64E00602FD.FEFEE064FBFD + +[pmFM] +Command=FEFE64E0.06.05.FD +ReplyLength=13 +Validate=FEFE64E00605FD.FEFEE064FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE64E0.03.FD +ReplyLength=17 +Validate=FEFE64E003FD.FEFEE064.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE64E0.04.FD +ReplyLength=14 +Validate=FEFE64E004FD.FEFEE064.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|pmSSB_L +Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.05.0000|pmFM + +;we need an extended command to read the SSB D modes and this still doesn't tell us which sideband, +; you have to read the Sideband THEN check to see What the 1A06 command returns (0= normal SSB 1= D mode) +; how do we code for this? Does it even matter that we can't read this? + +[STATUS3] +;need to read pitch offset in cw mode +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? +Command=FEFE64E0.1409.FD +ReplyLength=16 +Validate=FEFE64E01409FD.FEFEE0641409.0000.FD +Value1=13|2|vfBcdBU|1|1|pmPitch + +[STATUS4] +Command=FEFE64E0.1C00.FD +ReplyLength=15 +Validate=FEFE64E01C00FD.FEFEE064.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + diff --git a/CATCheck/Rigs/IC-756 Pro III.ini b/CATCheck/Rigs/IC-756 Pro III.ini new file mode 100644 index 0000000..52a3a76 --- /dev/null +++ b/CATCheck/Rigs/IC-756 Pro III.ini @@ -0,0 +1,229 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-756 Pro III command set +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +; -address changed from 5C to 6E (Pro III) by VE3NEA +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;None + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE6EE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE6EE0050000000000FD.FEFEE06EFBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +Command=FEFE6EE0.14.09.0000.FD +;300Hz=5 600Hz=128 900Hz=255 +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? +;Note: This command function was borrowed in total from the IC-756 Pro II command set, +; with changes to make it recognized by the IC-756 Pro. It works more or less, +; but needs additional tweaking. It was included since both the IC-756 Pro rig +; and the Omni-Rig Client testing program support this function. K6JJ +Value=6|2|vfBcdBU|1|1 +ReplyLength=15 +Validate=FEFE6EE014090000FD.FEFEE06EFBFD + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +Command=FEFE6EE0.0F01.FD +ReplyLength=13 +Validate=FEFE6EE00F01FD.FEFEE06EFBFD + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +Command=FEFE6EE0.0F00.FD +ReplyLength=13 +Validate=FEFE6EE00F00FD.FEFEE06EFBFD + +[pmVfoA] +;Set receiver to VFO A frequency +Command=FEFE6EE0.07D0.FD +ReplyLength=13 +Validate=FEFE6EE007D0FD.FEFEE06EFBFD + +[pmVfoB] +;Set receiver to VFO B frequency +Command=FEFE6EE0.07D1.FD +ReplyLength=13 +Validate=FEFE6EE007D1FD.FEFEE06EFBFD + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +Command=FEFE6EE0.07B1.FD +ReplyLength=13 +Validate=FEFE6EE007B1FD.FEFEE06EFBFD + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +Command=FEFE6EE0.07B0.FD +ReplyLength=13 +Validate=FEFE6EE007B0FD.FEFEE06EFBFD + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +Command=FEFE6EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE6EE01C0000FD.FEFEE06EFBFD + +[pmTx] +;Enable the transmit mode +Command=FEFE6EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE6EE01C0001FD.FEFEE06EFBFD + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode +Command=FEFE6EE0.06.03.FD +ReplyLength=13 +Validate=FEFE6EE00603FD.FEFEE06EFBFD + +[pmCW_L] +;Set the CW-R mode +Command=FEFE6EE0.06.07.FD +ReplyLength=13 +Validate=FEFE6EE00607FD.FEFEE06EFBFD + +[pmSSB_U] +;Set the USB mode +Command=FEFE6EE0.06.01.FD +ReplyLength=13 +Validate=FEFE6EE00601FD.FEFEE06EFBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE6EE0.06.00.FD +ReplyLength=13 +Validate=FEFE6EE00600FD.FEFEE06EFBFD + +[pmDIG_U] +;Set the Digital RTTY mode (microphone muted) +Command=FEFE6EE0.06.04.FD.FEFE6EE0.1A.06.04.FD +ReplyLength=13 +Validate=FEFE6EE00604FD.FEFEE06EFBFD + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +Command=FEFE6EE0.06.08.FD.FEFE6EE0.1A.06.08.FD +ReplyLength=13 +Validate=FEFE6EE00608FD.FEFEE06EFBFD + +[pmAM] +;Set the AM mode +Command=FEFE6EE0.06.02.FD +ReplyLength=13 +Validate=FEFE6EE00602FD.FEFEE06EFBFD + +[pmFM] +;Set the FM mode +Command=FEFE6EE0.06.05.FD +ReplyLength=13 +Validate=FEFE6EE00605FD.FEFEE06EFBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- + +[STATUS1] +;Read the operating frequency +Command=FEFE6EE0.03.FD +ReplyLength=17 +Validate=FEFE6EE003FD.FEFEE06E.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE6EE0.04.FD +ReplyLength=14 +Validate=FEFE6EE004FD.FEFEE06E.04.0000.FD +Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.03.0000|pmCW_U +Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.05.0000|pmFM +Flag7=000000000000.0000000000.07.0000|pmCW_L +Flag8=000000000000.0000000000.08.0000|pmDIG_L + +[STATUS3] +;Read the CW pitch +;need to read pitch offset in cw mode +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? +;Note: Also see the comments included with: Set CW Pitch K6JJ +Command=FEFE6EE0.1409.FD +ReplyLength=16 +Validate=FEFE6EE01409FD.FEFEE06E1409.0000.FD +Value1=13|2|vfBcdBU|1|1|pmPitch + +[STATUS4] +;Read the transmit or receive mode +Command=FEFE6EE0.1C00.FD +ReplyLength=15 +Validate=FEFE6EE01C00FD.FEFEE06E.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + + + + diff --git a/CATCheck/Rigs/IC-756 Pro II_LSB.ini b/CATCheck/Rigs/IC-756 Pro II_LSB.ini new file mode 100644 index 0000000..8faab23 --- /dev/null +++ b/CATCheck/Rigs/IC-756 Pro II_LSB.ini @@ -0,0 +1,244 @@ +;------------------------------------------------------------------------------- +; Icom IC-756 Pro II command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Modified by Brendan EI6IZ ei6iz@oceanfree.net +; Modified by Grant AA9LC 1-18-18 +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;disable transceive mode +Command=FEFE64E0.1A0542.00.FD +ReplyLength=15 +Validate=FEFE64E01A054200FD.FEFEE064FBFD + +[INIT2] +;disable 731 mode +Command=FEFE64E0.1A0543.00.FD +ReplyLength=15 +Validate=FEFE64E01A054300FD.FEFEE064FBFD + +; Original INIT3 set normal CW to USB. This version sets normal CW to LSB - AA9LC 11-18-18 +[INIT3] +;set CW normal to upper sideband (back to LSB AA9LC 11-18-18 - 00.FD instead of 01.FD) +Command=FEFE64E0.1A0567.00.FD +ReplyLength=15 +Validate=FEFE64E01A056700FD.FEFEE064FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE64E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE64E0050000000000FD.FEFEE064FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] + + +Command=FEFE64E0.14.09.0000.FD +;300Hz=5 600Hz=128 900Hz=255 +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? + +Value=6|2|vfBcdBU|1|1 +ReplyLength=15 +Validate=FEFE64E014090000FD.FEFEE064FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE64E0.0F01.FD +ReplyLength=13 +Validate=FEFE64E00F01FD.FEFEE064FBFD + +[pmSplitOff] +Command=FEFE64E0.0F00.FD +ReplyLength=13 +Validate=FEFE64E00F00FD.FEFEE064FBFD + +[pmVfoA] +;not supported +;It's possible to select which VFO is active on the display & used for data entry, +;this isn't usually the receive VFO, perhaps this is what you want however? + +Command=FEFE64E0.07D0.FD +ReplyLength=13 +Validate=FEFE64E007D0FD.FEFEE064FBFD + + +[pmVfoB] +Command=FEFE64E0.07D1.FD +ReplyLength=13 +Validate=FEFE64E007D1FD.FEFEE064FBFD + + +[pmVfoEqual] +Command=FEFE64E0.07B1.FD +ReplyLength=13 +Validate=FEFE64E007B1FD.FEFEE064FBFD + +[pmVfoSwap] +Command=FEFE64E0.07B0.FD +ReplyLength=13 +Validate=FEFE64E007B0FD.FEFEE064FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE64E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE64E01C0000FD.FEFEE064FBFD + +[pmTx] +;is 00 after 1C required or err in doc? +; Yes we require the 00 following the 1C +Command=FEFE64E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE64E01C0001FD.FEFEE064FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;swapped this around to correct for the removal of INIT3 +Command=FEFE64E0.06.07.FD +ReplyLength=13 +Validate=FEFE64E00607FD.FEFEE064FBFD + + +[pmCW_L] +;swapped this around to correct for the removal of INIT3 +Command=FEFE64E0.06.03.FD +ReplyLength=13 +Validate=FEFE64E00603FD.FEFEE064FBFD + +[pmSSB_U] +Command=FEFE64E0.06.01.FD +ReplyLength=13 +Validate=FEFE64E00601FD.FEFEE064FBFD + +[pmSSB_L] +Command=FEFE64E0.06.00.FD +ReplyLength=13 +Validate=FEFE64E00600FD.FEFEE064FBFD + +[pmDIG_U] +; if we want to use SSB-D modes we need 2 commands, fist set appropriate Sideband then set D-mode +; problem is that since the D mode status requires a different poll ( FEFE64E0.1A.06.FD) +; it always looks to the software like we are in SSB modes not SSB-D modes +Command=FEFE64E0.06.01.FD.FEFE64E0.1A.06.01.FD +ReplyLength=27 +Validate=FEFE64E00601FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD + + +[pmDIG_L] +Command=FEFE64E0.06.00.FD.FEFE64E0.1A.06.01.FD +ReplyLength=27 +Validate=FEFE64E00600FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD + + +[pmAM] +Command=FEFE64E0.06.02.FD +ReplyLength=13 +Validate=FEFE64E00602FD.FEFEE064FBFD + +[pmFM] +Command=FEFE64E0.06.05.FD +ReplyLength=13 +Validate=FEFE64E00605FD.FEFEE064FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE64E0.03.FD +ReplyLength=17 +Validate=FEFE64E003FD.FEFEE064.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE64E0.04.FD +ReplyLength=14 +Validate=FEFE64E004FD.FEFEE064.04.0000.FD +;is filter byte appended to the mode byte? +; (Flags 1 & 2 were wrong -- switched .03 and .07 values to get CW and CW-R back to normal -- AA9LC) +Flag1=000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.01.0000|pmSSB_U +; New Flag4 below is from 756-Pro.ini file by K6JJ -- AA9LC) +Flag4=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L +;Flag4=000000000000.0000000000.FF.0000|pmSSB_L (this is the original Flag4 code -- AA9LC) +Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.05.0000|pmFM + +; we need an extended command to read the SSB D modes and this still doesn't tell us which sideband, +; you have to read the Sideband THEN check to see What the 1A06 command returns (0= normal SSB 1= D mode) +; how do we code for this? Does it even matter that we can't read this? + +[STATUS3] +;need to read pitch offset in cw mode +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? +Command=FEFE64E0.1409.FD +ReplyLength=16 +Validate=FEFE64E01409FD.FEFEE0641409.0000.FD +Value1=13|2|vfBcdBU|1|1|pmPitch + +[STATUS4] +Command=FEFE64E0.1C00.FD +ReplyLength=15 +Validate=FEFE64E01C00FD.FEFEE064.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx \ No newline at end of file diff --git a/CATCheck/Rigs/IC-756 Pro ini comments.txt b/CATCheck/Rigs/IC-756 Pro ini comments.txt new file mode 100644 index 0000000..6af4e9e --- /dev/null +++ b/CATCheck/Rigs/IC-756 Pro ini comments.txt @@ -0,0 +1,51 @@ +Comments from K6JJ for the ICOM IC-756 Pro.ini file, version 29 MAY 05: + +1. This rig does not support the function to turn the CI-V Transceive mode on and off, which apparently +the IC-756 Pro II can do. I found no difference in the operation of Omni-Rig Client (the .ini testing +program) or Band Master with the mode on or off. However, when using the IC-756 Pro with a rig control +program such as TRX-Manager, I had to turn this mode on or changes made at the rig would not show +up in the software program display. Depending upon your station configuration, you may find the need +to manually adjust this function to on or off in the rig set/others menu. + +2. The IC-756 Pro has a smaller set of commands when compared to the IC-756 Pro II command set. Thus, +certain commands that Omni-Rig supports are not supported by the IC-756 Pro. + +3. The commands for setting and reading the CW Pitch Frequency were copied from the IC-756 Pro II.ini file. +They seem to work when changes were made to them so that the IC-756 Pro would recognize the control codes, +but they seem to need some refinement, as mentioned in the .ini file remarks for both rigs. + +4. When using the Band Master program, the following mode conversions apply: + +Band Master Mode IC-756 Pro Mode +CW-U CW +CW-L CW-R +USB USB +LSB LSB +DIG-U RTTY +DIG-L RTTY-R +AM AM +FM FM + +Selecting the wanted Band Master mode will set-up the IC-756 Pro for the corresponding mode. + +5. When using the Band Master program, the following function buttons do not operate with the IC-756 Pro, +and are grayed out: + +SPLIT (see #6 below) +RIT +XIT + +6. The Band Master program TX offset button, when clicked, sets the IC-756 Pro to the Split mode and +sets the transmit VFO to the frequency of the receive VFO. No transmit frequency offset is added. +Double clicking this button makes the same change. To disable the Split mode, click on the band in-use +button. + +7. If you can improve on the IC-756 Pro.ini file and/or these comments, please do so. I knew nothing +about the IC-756 Pro rig control functions, Omni-Rig and Band Master, when I started to develop the .ini +file. I appreciated having the IC-756 Pro II.ini file already developed, which aided me greatly. I also +appreciate the Omni-Rig concept. + +73, +John +K6JJ + diff --git a/CATCheck/Rigs/IC-756 Pro.ini b/CATCheck/Rigs/IC-756 Pro.ini new file mode 100644 index 0000000..7cbdc99 --- /dev/null +++ b/CATCheck/Rigs/IC-756 Pro.ini @@ -0,0 +1,228 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-756 Pro command set, version 29 MAY 05 +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;None + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE5CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE5CE0050000000000FD.FEFEE05CFBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +Command=FEFE5CE0.14.09.0000.FD +;300Hz=5 600Hz=128 900Hz=255 +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? +;Note: This command function was borrowed in total from the IC-756 Pro II command set, +; with changes to make it recognized by the IC-756 Pro. It works more or less, +; but needs additional tweaking. It was included since both the IC-756 Pro rig +; and the Omni-Rig Client testing program support this function. K6JJ +Value=6|2|vfBcdBU|1|1 +ReplyLength=15 +Validate=FEFE5CE014090000FD.FEFEE05CFBFD + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +Command=FEFE5CE0.0F01.FD +ReplyLength=13 +Validate=FEFE5CE00F01FD.FEFEE05CFBFD + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +Command=FEFE5CE0.0F00.FD +ReplyLength=13 +Validate=FEFE5CE00F00FD.FEFEE05CFBFD + +[pmVfoA] +;Set receiver to VFO A frequency +Command=FEFE5CE0.07D0.FD +ReplyLength=13 +Validate=FEFE5CE007D0FD.FEFEE05CFBFD + +[pmVfoB] +;Set receiver to VFO B frequency +Command=FEFE5CE0.07D1.FD +ReplyLength=13 +Validate=FEFE5CE007D1FD.FEFEE05CFBFD + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +Command=FEFE5CE0.07B1.FD +ReplyLength=13 +Validate=FEFE5CE007B1FD.FEFEE05CFBFD + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +Command=FEFE5CE0.07B0.FD +ReplyLength=13 +Validate=FEFE5CE007B0FD.FEFEE05CFBFD + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +Command=FEFE5CE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE5CE01C0000FD.FEFEE05CFBFD + +[pmTx] +;Enable the transmit mode +Command=FEFE5CE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE5CE01C0001FD.FEFEE05CFBFD + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode +Command=FEFE5CE0.06.03.FD +ReplyLength=13 +Validate=FEFE5CE00603FD.FEFEE05CFBFD + +[pmCW_L] +;Set the CW-R mode +Command=FEFE5CE0.06.07.FD +ReplyLength=13 +Validate=FEFE5CE00607FD.FEFEE05CFBFD + +[pmSSB_U] +;Set the USB mode +Command=FEFE5CE0.06.01.FD +ReplyLength=13 +Validate=FEFE5CE00601FD.FEFEE05CFBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE5CE0.06.00.FD +ReplyLength=13 +Validate=FEFE5CE00600FD.FEFEE05CFBFD + +[pmDIG_U] +;Set the Digital RTTY mode (microphone muted) +Command=FEFE5CE0.06.04.FD.FEFE5CE0.1A.06.04.FD +ReplyLength=13 +Validate=FEFE5CE00604FD.FEFEE05CFBFD + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +Command=FEFE5CE0.06.08.FD.FEFE5CE0.1A.06.08.FD +ReplyLength=13 +Validate=FEFE5CE00608FD.FEFEE05CFBFD + +[pmAM] +;Set the AM mode +Command=FEFE5CE0.06.02.FD +ReplyLength=13 +Validate=FEFE5CE00602FD.FEFEE05CFBFD + +[pmFM] +;Set the FM mode +Command=FEFE5CE0.06.05.FD +ReplyLength=13 +Validate=FEFE5CE00605FD.FEFEE05CFBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- + +[STATUS1] +;Read the operating frequency +Command=FEFE5CE0.03.FD +ReplyLength=17 +Validate=FEFE5CE003FD.FEFEE05C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE5CE0.04.FD +ReplyLength=14 +Validate=FEFE5CE004FD.FEFEE05C.04.0000.FD +Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.03.0000|pmCW_U +Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.05.0000|pmFM +Flag7=000000000000.0000000000.07.0000|pmCW_L +Flag8=000000000000.0000000000.08.0000|pmDIG_L + +[STATUS3] +;Read the CW pitch +;need to read pitch offset in cw mode +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? +;Note: Also see the comments included with: Set CW Pitch K6JJ +Command=FEFE5CE0.1409.FD +ReplyLength=16 +Validate=FEFE5CE01409FD.FEFEE05C1409.0000.FD +Value1=13|2|vfBcdBU|1|1|pmPitch + +[STATUS4] +;Read the transmit or receive mode +Command=FEFE5CE0.1C00.FD +ReplyLength=15 +Validate=FEFE5CE01C00FD.FEFEE05C.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + + + + diff --git a/CATCheck/Rigs/IC-756.ini b/CATCheck/Rigs/IC-756.ini new file mode 100644 index 0000000..bdc209d --- /dev/null +++ b/CATCheck/Rigs/IC-756.ini @@ -0,0 +1,214 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-756 command set, version 18 JUN 06 +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756 +; -Modified by UT5TS, read status commands added +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;stop scan +Command=FEFE50E0.0E.00.FD +ReplyLength=13 +Validate=FEFE50E00E00FD.FEFEE050FBFD + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE50E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE50E0050000000000FD.FEFEE050FBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +;Not supported + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +Command=FEFE50E0.0F01.FD +ReplyLength=13 +Validate=FEFE50E00F01FD.FEFEE050FBFD + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +Command=FEFE50E0.0F00.FD +ReplyLength=13 +Validate=FEFE50E00F00FD.FEFEE050FBFD + +[pmVfoA] +;Set receiver to VFO A frequency +Command=FEFE50E0.07D0.FD +ReplyLength=13 +Validate=FEFE50E007D0FD.FEFEE050FBFD + +[pmVfoB] +;Set receiver to VFO B frequency +Command=FEFE50E0.07D1.FD +ReplyLength=13 +Validate=FEFE50E007D1FD.FEFEE050FBFD + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +Command=FEFE50E0.07B1.FD +ReplyLength=13 +Validate=FEFE50E007B1FD.FEFEE050FBFD + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +Command=FEFE50E0.07B0.FD +ReplyLength=13 +Validate=FEFE50E007B0FD.FEFEE050FBFD + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +;Not supported + +[pmTx] +;Enable the transmit mode +;Not supported + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode +Command=FEFE50E0.06.03.FD +ReplyLength=13 +Validate=FEFE50E00603FD.FEFEE050FBFD + +[pmCW_L] +;Set the CW-R mode +;Not supported + +[pmSSB_U] +;Set the USB mode +Command=FEFE50E0.06.01.FD +ReplyLength=13 +Validate=FEFE50E00601FD.FEFEE050FBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE50E0.06.00.FD +ReplyLength=13 +Validate=FEFE50E00600FD.FEFEE050FBFD + +[pmDIG_U] +;Set the Digital RTTY mode (microphone muted) +Command=FEFE50E0.06.04.FD +ReplyLength=13 +Validate=FEFE50E00604FD.FEFEE050FBFD + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +;Not supported + +[pmAM] +;Set the AM mode +Command=FEFE50E0.06.02.FD +ReplyLength=13 +Validate=FEFE50E00602FD.FEFEE050FBFD + +[pmFM] +;Set the FM mode +Command=FEFE50E0.06.05.FD +ReplyLength=13 +Validate=FEFE50E00605FD.FEFEE050FBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- +[STATUS1] +;Read the operating frequency +Command=FEFE50E0.03.FD +ReplyLength=17 +Validate=FEFE50E003FD.FEFEE050.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE50E0.04.FD +ReplyLength=14 +Validate=FEFE50E004FD.FEFEE050.04.0000.FD +Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.03.0000|pmCW_U +Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.05.0000|pmFM +Flag7=000000000000.0000000000.07.0000|pmCW_L +Flag8=000000000000.0000000000.08.0000|pmDIG_L + +[STATUS3] +;Read the CW pitch +;need to read pitch offset in cw mode +;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc +;how do we scale for this? +;Note: Also see the comments included with: Set CW Pitch K6JJ +Command=FEFE50E0.1409.FD +ReplyLength=16 +Validate=FEFE50E01409FD.FEFEE0501409.0000.FD +Value1=13|2|vfBcdBU|1|1|pmPitch + +[STATUS4] +;Read the transmit or receive mode +Command=FEFE50E0.1C00.FD +ReplyLength=15 +Validate=FEFE50E01C00FD.FEFEE050.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + + + + diff --git a/CATCheck/Rigs/IC-7600.ini b/CATCheck/Rigs/IC-7600.ini new file mode 100644 index 0000000..3543745 --- /dev/null +++ b/CATCheck/Rigs/IC-7600.ini @@ -0,0 +1,148 @@ +;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +; +; Icom IC-7600 Omni-Rig commands +; +; File created by: Makoto Kasahara / JN1GLB : jn1glb@jarl.com +; +;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +;-------------------------------------------------------------------------- +; Initialize the radio +;-------------------------------------------------------------------------- + +; +; +; +[INIT1] +Command=FEFE7AE0.1A050092.00.FD +ReplyLength=16 +Validate=FEFE7AE01A05009200FD.FEFEE07AFBFD + + +;-------------------------------------------------------------------------- +; Set frequency +;-------------------------------------------------------------------------- + +; Set operating frequency +[pmFreq] +Command=FEFE7AE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE7AE0050000000000FD.FEFEE07AFBFD + + +;-------------------------------------------------------------------------- +; Set Split, Rx & Tx +;-------------------------------------------------------------------------- + +; Turn Split function on +[pmSplitOn] +Command=FEFE7AE0.0F01.FD +ReplyLength=13 +Validate=FEFE7AE00F01FD.FEFEE07AFBFD + +; Turn Split function off +[pmSplitOff] +Command=FEFE7AE0.0F00.FD +ReplyLength=13 +Validate=FEFE7AE00F00FD.FEFEE07AFBFD + +; Enable receive mode +[pmRx] +Command=FEFE7AE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE7AE01C0000FD.FEFEE07AFBFD + +; Enable transmit mode +[pmTx] +Command=FEFE7AE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE7AE01C0001FD.FEFEE07AFBFD + + +;-------------------------------------------------------------------------- +; Set modes of the radio +;-------------------------------------------------------------------------- + +; Upper sideband CW +[pmCW_U] +Command=FEFE7AE0.06.07.FD +ReplyLength=13 +Validate=FEFE7AE00607FD.FEFEE07AFBFD + +; Lower sideband CW +[pmCW_L] +Command=FEFE7AE0.06.03.FD +ReplyLength=13 +Validate=FEFE7AE00603FD.FEFEE07AFBFD + +; USB +[pmSSB_U] +Command=FEFE7AE0.06.01.FD +ReplyLength=13 +Validate=FEFE7AE00601FD.FEFEE07AFBFD + +; LSB +[pmSSB_L] +Command=FEFE7AE0.06.00.FD +ReplyLength=13 +Validate=FEFE7AE00600FD.FEFEE07AFBFD + +; Upper sideband digital modes +[pmDIG_U] +Command=FEFE7AE0.06.08.FD +ReplyLength=13 +Validate=FEFE7AE00608FD.FEFEE07AFBFD + +; Lower sideband digital modes +[pmDIG_L] +Command=FEFE7AE0.06.04.FD +ReplyLength=13 +Validate=FEFE7AE00604FD.FEFEE07AFBFD + +; AM +[pmAM] +Command=FEFE7AE0.06.02.FD +ReplyLength=13 +Validate=FEFE7AE00602FD.FEFEE07AFBFD + +; FM +[pmFM] +Command=FEFE7AE0.06.05.FD +ReplyLength=13 +Validate=FEFE7AE00605FD.FEFEE07AFBFD + + +;------------------------------------------------------------------------ +; Read the status of the radio +;------------------------------------------------------------------------ + +; Read the current frequency +[STATUS1] +Command=FEFE7AE0.03.FD +ReplyLength=17 +Validate=FEFE7AE003FD.FEFEE07A.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +; Read the current operating mode +[STATUS2] +Command=FEFE7AE0.04.FD +ReplyLength=14 +Validate=FEFE7AE004FD.FEFEE07A.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +; Are we in Rx or Tx? +[STATUS3] +Command=FEFE7AE0.1C00.FD +ReplyLength=15 +Validate=FEFE7AE01C00FD.FEFEE07A.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + diff --git a/CATCheck/Rigs/IC-7600v2.ini b/CATCheck/Rigs/IC-7600v2.ini new file mode 100644 index 0000000..263de9a --- /dev/null +++ b/CATCheck/Rigs/IC-7600v2.ini @@ -0,0 +1,279 @@ +;------------------------------------------------------------------------------- +; Icom IC-7600 ver. 2.00 firmware command set +; +; IC-7600v2 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: N6TV @ KE1B & HRO Sunnyvale, CA +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE7AE0.1A050097.00.FD +ReplyLength=16 +Validate=FEFE7AE01A05009700FD.FEFEE07AFBFD + +[INIT2] +;disable RS-232C decode, use CI-V +Command=FEFE7AE0.1A050098.00.FD +ReplyLength=16 +Validate=FEFE7AE01A05009800FD.FEFEE07AFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE7AE0.1A050089.00.FD +ReplyLength=16 +Validate=FEFE7AE01A05008900FD.FEFEE07AFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE7AE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE7AE025000000000000FD.FEFEE07AFBFD + +[pmFreqB] +Command=FEFE7AE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE7AE025010000000000FD.FEFEE07AFBFD + +[pmFreq] +Command=FEFE7AE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE7AE0050000000000FD.FEFEE07AFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE7AE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE7AE02100000000FD.FEFEE07AFBFD + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE7AE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE7AE014090000FD.FEFEE07AFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE7AE0.0F01.FD +ReplyLength=13 +Validate=FEFE7AE00F01FD.FEFEE07AFBFD + +[pmSplitOff] +Command=FEFE7AE0.0F00.FD +ReplyLength=13 +Validate=FEFE7AE00F00FD.FEFEE07AFBFD + +[pmVfoA] +Command=FEFE7AE0.07D0.FD +ReplyLength=13 +Validate=FEFE7AE007D0FD.FEFEE07AFBFD + +[pmVfoB] +Command=FEFE7AE0.07D1.FD +ReplyLength=13 +Validate=FEFE7AE007D1FD.FEFEE07AFBFD + +[pmVfoEqual] +Command=FEFE7AE0.07B1.FD +ReplyLength=13 +Validate=FEFE7AE007B1FD.FEFEE07AFBFD + +[pmVfoSwap] +Command=FEFE7AE0.07B0.FD +ReplyLength=13 +Validate=FEFE7AE007B0FD.FEFEE07AFBFD + +[pmVfoAA] +Command=FEFE7AE0.07D0.FD.FEFE7AE0.0F00.FD +ReplyLength=20 +Validate=FEFE7AE007D0FD.FEFE7AE00F00FD.FEFEE07AFBFD + +[pmVfoAB] +Command=FEFE7AE0.07D0.FD.FEFE7AE0.0F01.FD +ReplyLength=20 +Validate=FEFE7AE007D0FD.FEFE7AE00F01FD.FEFEE07AFBFD + +[pmVfoBA] +Command=FEFE7AE0.07D1.FD.FEFE7AE0.0F01.FD +ReplyLength=20 +Validate=FEFE7AE007D1FD.FEFE7AE00F01FD.FEFEE07AFBFD + +[pmVfoBB] +Command=FEFE7AE0.07D1.FD.FEFE7AE0.0F00.FD +ReplyLength=20 +Validate=FEFE7AE007D1FD.FEFE7AE00F00FD.FEFEE07AFBFD + +[pmRitOn] +Command=FEFE7AE0.21.0101.FD +ReplyLength=14 +Validate=FEFE7AE0210101FD.FEFEE07AFBFD + +[pmRitOff] +Command=FEFE7AE0.21.0100.FD +ReplyLength=14 +Validate=FEFE7AE0210100FD.FEFEE07AFBFD + +[pmXitOn] +Command=FEFE7AE0.21.0201.FD +ReplyLength=14 +Validate=FEFE7AE0210201FD.FEFEE07AFBFD + +[pmXitOff] +Command=FEFE7AE0.21.0200.FD +ReplyLength=14 +Validate=FEFE7AE0210200FD.FEFEE07AFBFD + +[pmRx] +Command=FEFE7AE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE7AE01C0000FD.FEFEE07AFBFD + +[pmTx] +Command=FEFE7AE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE7AE01C0001FD.FEFEE07AFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE7AE0.06.07.FD +ReplyLength=13 +Validate=FEFE7AE00607FD.FEFEE07AFBFD + +[pmCW_L] +; CW Normal +Command=FEFE7AE0.06.03.FD +ReplyLength=13 +Validate=FEFE7AE00603FD.FEFEE07AFBFD + +[pmSSB_U] +Command=FEFE7AE0.06.01.FD +ReplyLength=13 +Validate=FEFE7AE00601FD.FEFEE07AFBFD + +[pmSSB_L] +Command=FEFE7AE0.06.00.FD +ReplyLength=13 +Validate=FEFE7AE00600FD.FEFEE07AFBFD + +[pmDIG_U] +Command=FEFE7AE0.06.08.FD +ReplyLength=13 +Validate=FEFE7AE00608FD.FEFEE07AFBFD + +[pmDIG_L] +Command=FEFE7AE0.06.04.FD +ReplyLength=13 +Validate=FEFE7AE00604FD.FEFEE07AFBFD + +[pmAM] +Command=FEFE7AE0.06.02.FD +ReplyLength=13 +Validate=FEFE7AE00602FD.FEFEE07AFBFD + +[pmFM] +Command=FEFE7AE0.06.05.FD +ReplyLength=13 +Validate=FEFE7AE00605FD.FEFEE07AFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +; Read transmit freq. +Command=FEFE7AE0.1C03.FD +ReplyLength=19 +Validate=FEFE7AE01C03FD.FEFEE07A.1C03.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE7AE0.04.FD +ReplyLength=14 +Validate=FEFE7AE004FD.FEFEE07A.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE7AE0.1409.FD +ReplyLength=16 +Validate=FEFE7AE01409FD.FEFEE07A.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE7AE0.1C00.FD +ReplyLength=15 +Validate=FEFE7AE01C00FD.FEFEE07A.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS5] +Command=FEFE7AE0.2500.FD +ReplyLength=19 +Validate=FEFE7AE02500FD.FEFEE07A.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS6] +Command=FEFE7AE0.2501.FD +ReplyLength=19 +Validate=FEFE7AE02501FD.FEFEE07A.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS7] +Command=FEFE7AE0.0F.FD +ReplyLength=13 +Validate=FEFE7AE00FFD.FEFEE07A.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS8] +Command=FEFE7AE0.2101.FD +ReplyLength=15 +Validate=FEFE7AE02101FD.FEFEE07A.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS9] +Command=FEFE7AE0.2102.FD +ReplyLength=15 +Validate=FEFE7AE02102FD.FEFEE07A.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS10] +Command=FEFE7AE0.07D2.FD +ReplyLength=15 +Validate=FEFE7AE007D2FD.FEFEE07A.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-761.ini b/CATCheck/Rigs/IC-761.ini new file mode 100644 index 0000000..acbdc8a --- /dev/null +++ b/CATCheck/Rigs/IC-761.ini @@ -0,0 +1,165 @@ +;------------------------------------------------------------------------------- +; Icom IC-761 command set +; +; File created by Lou Sica, AC0X lsica@comcast.net +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE1EE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE1EE0050000000000FD.FEFE001EFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=FEFE1EE0.0700.FD +ReplyLength=13 +Validate=FEFE1EE00700FD.FEFE001EFBFD + +[pmVfoB] +Command=FEFE1EE0.0701.FD +ReplyLength=13 +Validate=FEFE1EE00701FD.FEFE001EFBFD + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE1EE0.06.03.FD +ReplyLength=13 +Validate=FEFE1EE00603FD.FEFE001EFBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE1EE0.06.01.FD +ReplyLength=13 +Validate=FEFE1EE00601FD.FEFE001EFBFD + +[pmSSB_L] +Command=FEFE1EE0.06.00.FD +ReplyLength=13 +Validate=FEFE1EE00600FD.FEFE001EFBFD + +[pmDIG_U] +Command=FEFE1EE0.06.04.FD +ReplyLength=13 +Validate=FEFE1EE00604FD.FEFE001EFBFD + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE1EE0.06.02.FD +ReplyLength=13 +Validate=FEFE1EE00602FD.FEFE001EFBFD + +[pmFM] +Command=FEFE1EE0.06.05.FD +ReplyLength=13 +Validate=FEFE1EE00605FD.FEFE001EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE1EE0.03.FD +ReplyLength=17 +Validate=FEFE1EE003FD.FEFE001E.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE1EE0.04.FD +ReplyLength=13 +Validate=FEFE1EE004FD.FEFE001E.04.00.00 +Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U +Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U +Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L +Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U +Flag7=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM +Flag8=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM diff --git a/CATCheck/Rigs/IC-7610-DATA.ini b/CATCheck/Rigs/IC-7610-DATA.ini new file mode 100644 index 0000000..b399f83 --- /dev/null +++ b/CATCheck/Rigs/IC-7610-DATA.ini @@ -0,0 +1,274 @@ +;------------------------------------------------------------------------------- +; Icom IC-7610-DATA +; +; IC-7600-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net, 2018-04-16 +; +; Tested by: Andy O'Brien, K3UK +; +; Same as IC-7610, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R +; Note: Uses DATA2 MOD (aka Data Mode 2 or D2) so Modulation Input defaults to USB +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE98E0.1A050116.01.FD +ReplyLength=16 +Validate=FEFE98E01A05011601FD.FEFEE098FBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE98E0.1A050112.00.FD +ReplyLength=16 +Validate=FEFE98E01A05011200FD.FEFEE098FBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE98E0.1A050062.00.FD +ReplyLength=16 +Validate=FEFE98E01A05006200FD.FEFEE098FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE98E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE98E025000000000000FD.FEFEE098FBFD + +[pmFreqB] +Command=FEFE98E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE98E025010000000000FD.FEFEE098FBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE98E0.21.00000000.FD +ReplyLength=16 +Validate=FEFE98E02100000000FD.FEFEE098FBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE98E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE98E014090000FD.FEFEE098FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE98E0.0F01.FD +ReplyLength=13 +Validate=FEFE98E00F01FD.FEFEE098FBFD + +[pmSplitOff] +Command=FEFE98E0.0F00.FD +ReplyLength=13 +Validate=FEFE98E00F00FD.FEFEE098FBFD + +[pmVfoA] +Command=FEFE98E0.07D0.FD +ReplyLength=13 +Validate=FEFE98E007D0FD.FEFEE098FBFD + +[pmVfoB] +Command=FEFE98E0.07D1.FD +ReplyLength=13 +Validate=FEFE98E007D1FD.FEFEE098FBFD + +[pmVfoEqual] +Command=FEFE98E0.07B1.FD +ReplyLength=13 +Validate=FEFE98E007B1FD.FEFEE098FBFD + +[pmVfoSwap] +Command=FEFE98E0.07B0.FD +ReplyLength=13 +Validate=FEFE98E007B0FD.FEFEE098FBFD + +[pmVfoAA] +; not supported + +[pmVfoAB] +; not supported + +[pmVfoBA] +; not supported + +[pmVfoBB] +; not supported + +[pmRitOn] +Command=FEFE98E0.21.0101.FD +ReplyLength=14 +Validate=FEFE98E0210101FD.FEFEE098FBFD + +[pmRitOff] +Command=FEFE98E0.21.0100.FD +ReplyLength=14 +Validate=FEFE98E0210100FD.FEFEE098FBFD + +[pmXitOn] +Command=FEFE98E0.21.0201.FD +ReplyLength=14 +Validate=FEFE98E0210201FD.FEFEE098FBFD + +[pmXitOff] +Command=FEFE98E0.21.0200.FD +ReplyLength=14 +Validate=FEFE98E0210200FD.FEFEE098FBFD + +[pmRx] +Command=FEFE98E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE98E01C0000FD.FEFEE098FBFD + +[pmTx] +Command=FEFE98E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE98E01C0001FD.FEFEE098FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE98E0.2600.07.FD +ReplyLength=14 +Validate=FEFE98E0260007FD.FEFEE098FBFD + +[pmCW_L] +; CW Normal +Command=FEFE98E0.2600.03.FD +ReplyLength=14 +Validate=FEFE98E0260003FD.FEFEE098FBFD + +[pmSSB_U] +Command=FEFE98E0.2600.01.00.FD +ReplyLength=15 +Validate=FEFE98E026000100FD.FEFEE098FBFD + +[pmSSB_L] +Command=FEFE98E0.2600.00.00.FD +ReplyLength=15 +Validate=FEFE98E026000000FD.FEFEE098FBFD + +[pmDIG_U] +; These lines select USB-D Data Mode 2 (DATA2 MOD) which defaults to USB sound card modulation, +; FIL1 +Command=FEFE98E0.2600.01.02.01.FD +ReplyLength=16 +Validate=FEFE98E02600010201FD.FEFEE098FBFD + +[pmDIG_L] +; These lines select LSB-D Data Mode 2 (DATA2 MOD) which defaults to USB sound card modulation, +; FIL1 +Command=FEFE98E0.2600.00.02.01.FD +ReplyLength=16 +Validate=FEFE98E02600000201FD.FEFEE098FBFD + +[pmAM] +Command=FEFE98E0.2600.02.FD +ReplyLength=14 +Validate=FEFE98E0260002FD.FEFEE098FBFD + +[pmFM] +Command=FEFE98E0.2600.05.FD +ReplyLength=14 +Validate=FEFE98E0260005FD.FEFEE098FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE98E0.2500.FD +ReplyLength=19 +Validate=FEFE98E02500FD.FEFEE098.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE98E0.2501.FD +ReplyLength=19 +Validate=FEFE98E02501FD.FEFEE098.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE98E0.2600.FD +ReplyLength=17 +Validate=FEFE98E02600FD.FEFEE098.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag71=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag72=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010200.00|pmDIG_U +Flag73=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010300.00|pmDIG_U +Flag81=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag82=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000200.00|pmDIG_L +Flag83=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000300.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFE98E0.1409.FD +ReplyLength=16 +Validate=FEFE98E01409FD.FEFEE098.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE98E0.1C00.FD +ReplyLength=15 +Validate=FEFE98E01C00FD.FEFEE098.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE98E0.0F.FD +ReplyLength=13 +Validate=FEFE98E00FFD.FEFEE098.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE98E0.2101.FD +ReplyLength=15 +Validate=FEFE98E02101FD.FEFEE098.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE98E0.2102.FD +ReplyLength=15 +Validate=FEFE98E02102FD.FEFEE098.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE98E0.07D2.FD +ReplyLength=15 +Validate=FEFE98E007D2FD.FEFEE098.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-7610.ini b/CATCheck/Rigs/IC-7610.ini new file mode 100644 index 0000000..2a53bd1 --- /dev/null +++ b/CATCheck/Rigs/IC-7610.ini @@ -0,0 +1,279 @@ +;------------------------------------------------------------------------------- +; Icom IC-7610 +; +; IC-7610 File created by Ronald Albrecht, KC5KE +; +; Tested by: Ronald Albrecht, KC5KE +; Andy O'Brien, K3UK +; +; Updated by: Bob Wilson, N6TV, n6tv@arrl.net 2/6/2018: +; - Fix INIT1 and INIT2 (different for every Icom rig). +; - Return pmFreqA and pmFreqB individually instead of pmFreq +; - Fix pmVfoEqual, pmVfoA, pmVfoB +; Updated by N6TV 2018-04-16: +; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below +; - Corrected pmVfoAA, pmVfoAB, pmVfoBA, pmVfoBB commands +; - Removed pmVfoAA and pmVfoAB from STATUS (use pmVfoA and pmVfoB instead) +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE98E0.1A050116.01.FD +ReplyLength=16 +Validate=FEFE98E01A05011601FD.FEFEE098FBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE98E0.1A050112.00.FD +ReplyLength=16 +Validate=FEFE98E01A05011200FD.FEFEE098FBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE98E0.1A050062.00.FD +ReplyLength=16 +Validate=FEFE98E01A05006200FD.FEFEE098FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE98E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE98E025000000000000FD.FEFEE098FBFD + +[pmFreqB] +Command=FEFE98E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE98E025010000000000FD.FEFEE098FBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE98E0.21.00000000.FD +ReplyLength=16 +Validate=FEFE98E02100000000FD.FEFEE098FBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE98E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE98E014090000FD.FEFEE098FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE98E0.0F01.FD +ReplyLength=13 +Validate=FEFE98E00F01FD.FEFEE098FBFD + +[pmSplitOff] +Command=FEFE98E0.0F00.FD +ReplyLength=13 +Validate=FEFE98E00F00FD.FEFEE098FBFD + +[pmVfoA] +Command=FEFE98E0.07D0.FD +ReplyLength=13 +Validate=FEFE98E007D0FD.FEFEE098FBFD + +[pmVfoB] +Command=FEFE98E0.07D1.FD +ReplyLength=13 +Validate=FEFE98E007D1FD.FEFEE098FBFD + +[pmVfoEqual] +Command=FEFE98E0.07B1.FD +ReplyLength=13 +Validate=FEFE98E007B1FD.FEFEE098FBFD + +[pmVfoSwap] +Command=FEFE98E0.07B0.FD +ReplyLength=13 +Validate=FEFE98E007B0FD.FEFEE098FBFD + +[pmVfoAA] +Command=FEFE98E0.07D0.FD.FEFE98E0.0F00.FD +ReplyLength=20 +Validate=FEFE98E007D0FD.FEFE98E00F00FD.FEFEE098FBFD + +[pmVfoAB] +Command=FEFE98E0.07D0.FD.FEFE98E0.0F01.FD +ReplyLength=20 +Validate=FEFE98E007D0FD.FEFE98E00F01FD.FEFEE098FBFD + +[pmVfoBA] +Command=FEFE98E0.07D1.FD.FEFE98E0.0F01.FD +ReplyLength=20 +Validate=FEFE98E007D1FD.FEFE98E00F01FD.FEFEE098FBFD + +[pmVfoBB] +Command=FEFE98E0.07D1.FD.FEFE98E0.0F00.FD +ReplyLength=20 +Validate=FEFE98E007D1FD.FEFE98E00F00FD.FEFEE098FBFD + +[pmRitOn] +Command=FEFE98E0.21.0101.FD +ReplyLength=14 +Validate=FEFE98E0210101FD.FEFEE098FBFD + +[pmRitOff] +Command=FEFE98E0.21.0100.FD +ReplyLength=14 +Validate=FEFE98E0210100FD.FEFEE098FBFD + +[pmXitOn] +Command=FEFE98E0.21.0201.FD +ReplyLength=14 +Validate=FEFE98E0210201FD.FEFEE098FBFD + +[pmXitOff] +Command=FEFE98E0.21.0200.FD +ReplyLength=14 +Validate=FEFE98E0210200FD.FEFEE098FBFD + +[pmRx] +Command=FEFE98E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE98E01C0000FD.FEFEE098FBFD + +[pmTx] +Command=FEFE98E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE98E01C0001FD.FEFEE098FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE98E0.06.07.FD +ReplyLength=13 +Validate=FEFE98E00607FD.FEFEE098FBFD + +[pmCW_L] +; CW Normal +Command=FEFE98E0.06.03.FD +ReplyLength=13 +Validate=FEFE98E00603FD.FEFEE098FBFD + +[pmSSB_U] +Command=FEFE98E0.06.01.FD +ReplyLength=13 +Validate=FEFE98E00601FD.FEFEE098FBFD + +[pmSSB_L] +Command=FEFE98E0.06.00.FD +ReplyLength=13 +Validate=FEFE98E00600FD.FEFEE098FBFD + +[pmDIG_U] +Command=FEFE98E0.06.08.FD +ReplyLength=13 +Validate=FEFE98E00608FD.FEFEE098FBFD + +[pmDIG_L] +Command=FEFE98E0.06.04.FD +ReplyLength=13 +Validate=FEFE98E00604FD.FEFEE098FBFD. + +[pmAM] +Command=FEFE98E0.06.02.FD +ReplyLength=13 +Validate=FEFE98E00602FD.FEFEE098FBFD + +[pmFM] +Command=FEFE98E0.06.05.FD +ReplyLength=13 +Validate=FEFE98E00605FD.FEFEE098FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE98E0.2500.FD +ReplyLength=19 +Validate=FEFE98E02500FD.FEFEE098.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE98E0.2501.FD +ReplyLength=19 +Validate=FEFE98E02501FD.FEFEE098.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE98E0.04.FD +ReplyLength=14 +Validate=FEFE98E004FD.FEFEE098.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS4] +Command=FEFE98E0.1409.FD +ReplyLength=16 +Validate=FEFE98E01409FD.FEFEE098.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE98E0.1C00.FD +ReplyLength=15 +Validate=FEFE98E01C00FD.FEFEE098.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE98E0.0F.FD +ReplyLength=13 +Validate=FEFE98E00FFD.FEFEE098.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE98E0.2101.FD +ReplyLength=15 +Validate=FEFE98E02101FD.FEFEE098.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE98E0.2102.FD +ReplyLength=15 +Validate=FEFE98E02102FD.FEFEE098.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE98E0.07D2.FD +ReplyLength=15 +Validate=FEFE98E007D2FD.FEFEE098.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-765.ini b/CATCheck/Rigs/IC-765.ini new file mode 100644 index 0000000..32321fd --- /dev/null +++ b/CATCheck/Rigs/IC-765.ini @@ -0,0 +1,175 @@ +;------------------------------------------------------------------------------- +; Icom IC-765 command set +; +; File created by RZ4AG aia@dxsoft.com +; corrected by Rich Yost n2ry@yahoo.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE2CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE2CE0050000000000FD.FEFEE02CFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=FEFE2CE0.0700.FD +ReplyLength=13 +Validate=FEFE2CE00700FD.FEFEE02CFBFD + +[pmVfoB] +Command=FEFE2CE0.0701.FD +ReplyLength=13 +Validate=FEFE2CE00701FD.FEFEE02CFBFD + +[pmVfoEqual] +Command=FEFE2CE0.07A0.FD +ReplyLength=13 +Validate=FEFE2CE007A0FD.FEFEE02CFBFD + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE2CE0.06.03.FD +ReplyLength=13 +Validate=FEFE2CE00603FD.FEFEE02CFBFD + +[pmCW_L] +Command=FEFE2CE0.06.07.FD +ReplyLength=13 +Validate=FEFE2CE00607FD.FEFEE02CFBFD + +[pmSSB_U] +Command=FEFE2CE0.06.01.FD +ReplyLength=13 +Validate=FEFE2CE00601FD.FEFEE02CFBFD + +[pmSSB_L] +Command=FEFE2CE0.06.00.FD +ReplyLength=13 +Validate=FEFE2CE00600FD.FEFEE02CFBFD + +[pmDIG_U] +Command=FEFE2CE0.06.04.FD +ReplyLength=13 +Validate=FEFE2CE00604FD.FEFEE02CFBFD + +[pmDIG_L] +Command=FEFE2CE0.06.08.FD +ReplyLength=13 +Validate=FEFE2CE00608FD.FEFEE02CFBFD + +[pmAM] +Command=FEFE2CE0.06.02.FD +ReplyLength=13 +Validate=FEFE2CE00602FD.FEFEE02CFBFD + +[pmFM] +Command=FEFE2CE0.06.05.FD +ReplyLength=13 +Validate=FEFE2CE00605FD.FEFEE02CFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE2CE0.03.FD +ReplyLength=17 +Validate=FEFE2CE003FD.FEFEE02C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE2CE0.04.FD +ReplyLength=14 +Validate=FEFE2CE004FD.FEFEE02C.04.0000.FD +;filter byte is appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM diff --git a/CATCheck/Rigs/IC-7700.ini b/CATCheck/Rigs/IC-7700.ini new file mode 100644 index 0000000..c3d4059 --- /dev/null +++ b/CATCheck/Rigs/IC-7700.ini @@ -0,0 +1,230 @@ +;------------------------------------------------------------------------------- +; Icom IC-7700 command set Firmware 1.20 +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com and K4HW +; Updated by N6TV 7 September 2015 01:32 UTC +; +; Tested by: _________ +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE74E0.1A050095.00.FD +ReplyLength=16 +Validate=FEFE74E01A05009500FD.FEFEE074FBFD + +[INIT2] +;disable RS-232C decode, use CI-V +Command=FEFE74E0.1A050096.00.FD +ReplyLength=16 +Validate=FEFE74E01A05009600FD.FEFEE074FBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE74E0.1A050091.00.FD +ReplyLength=16 +Validate=FEFE74E01A05009100FD.FEFEE074FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE74E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE74E0050000000000FD.FEFEE074FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE74E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE74E014090000FD.FEFEE074FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE74E0.0F01.FD +ReplyLength=13 +Validate=FEFE74E00F01FD.FEFEE074FBFD + +[pmSplitOff] +Command=FEFE74E0.0F00.FD +ReplyLength=13 +Validate=FEFE74E00F00FD.FEFEE074FBFD + +[pmVfoA] +Command=FEFE74E0.0700.FD +ReplyLength=13 +Validate=FEFE74E00700FD.FEFEE074FBFD + +[pmVfoB] +Command=FEFE74E0.0701.FD +ReplyLength=13 +Validate=FEFE74E00701FD.FEFEE074FBFD + +[pmVfoEqual] +Command=FEFE74E0.07A0.FD +ReplyLength=13 +Validate=FEFE74E007A0FD.FEFEE074FBFD + +[pmVfoSwap] +Command=FEFE74E0.07B0.FD +ReplyLength=13 +Validate=FEFE74E007B0FD.FEFEE074FBFD + +[pmVfoAA] +Command=FEFE74E0.0700.FD.FEFE74E0.0F00.FD +ReplyLength=20 +Validate=FEFE74E00700FD.FEFE74E00F00FD.FEFEE074FBFD + +[pmVfoAB] +Command=FEFE74E0.0700.FD.FEFE74E0.0F01.FD +ReplyLength=20 +Validate=FEFE74E00700FD.FEFE74E00F01FD.FEFEE074FBFD + +[pmVfoBA] +Command=FEFE74E0.0701.FD.FEFE74E0.0F01.FD +ReplyLength=20 +Validate=FEFE74E00701FD.FEFE74E00F01FD.FEFEE074FBFD + +[pmVfoBB] +Command=FEFE74E0.0701.FD.FEFE74E0.0F00.FD +ReplyLength=20 +Validate=FEFE74E00701FD.FEFE74E00F00FD.FEFEE074FBFD + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE74E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE74E01C0000FD.FEFEE074FBFD + +[pmTx] +Command=FEFE74E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE74E01C0001FD.FEFEE074FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE74E0.06.07.FD +ReplyLength=13 +Validate=FEFE74E00607FD.FEFEE074FBFD + +[pmCW_L] +; CW Normal +Command=FEFE74E0.06.03.FD +ReplyLength=13 +Validate=FEFE74E00603FD.FEFEE074FBFD + +[pmSSB_U] +Command=FEFE74E0.06.01.FD +ReplyLength=13 +Validate=FEFE74E00601FD.FEFEE074FBFD + +[pmSSB_L] +Command=FEFE74E0.06.00.FD +ReplyLength=13 +Validate=FEFE74E00600FD.FEFEE074FBFD + +[pmDIG_U] +Command=FEFE74E0.06.08.FD +ReplyLength=13 +Validate=FEFE74E00608FD.FEFEE074FBFD + +[pmDIG_L] +Command=FEFE74E0.06.04.FD +ReplyLength=13 +Validate=FEFE74E00604FD.FEFEE074FBFD + +[pmAM] +Command=FEFE74E0.06.02.FD +ReplyLength=13 +Validate=FEFE74E00602FD.FEFEE074FBFD + +[pmFM] +Command=FEFE74E0.06.05.FD +ReplyLength=13 +Validate=FEFE74E00605FD.FEFEE074FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE74E0.03.FD +ReplyLength=17 +Validate=FEFE74E003FD.FEFEE074.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE74E0.04.FD +ReplyLength=14 +Validate=FEFE74E004FD.FEFEE074.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE74E0.1409.FD +ReplyLength=16 +Validate=FEFE74E01409FD.FEFEE074.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE74E0.1C00.FD +ReplyLength=15 +Validate=FEFE74E01C00FD.FEFEE074.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS5] +Command=FEFE74E0.0F.FD +ReplyLength=13 +Validate=FEFE74E00FFD.FEFEE074.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff diff --git a/CATCheck/Rigs/IC-7700v2.ini b/CATCheck/Rigs/IC-7700v2.ini new file mode 100644 index 0000000..0b8bf14 --- /dev/null +++ b/CATCheck/Rigs/IC-7700v2.ini @@ -0,0 +1,279 @@ +;------------------------------------------------------------------------------- +; Icom IC-7700 ver. 2.10 firmware command set +; +; IC-7700 File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; IC-7700v2 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: KL7RA +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE74E0.1A050095.00.FD +ReplyLength=16 +Validate=FEFE74E01A05009500FD.FEFEE074FBFD + +[INIT2] +;disable RS-232C decode, use CI-V +Command=FEFE74E0.1A050096.00.FD +ReplyLength=16 +Validate=FEFE74E01A05009600FD.FEFEE074FBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE74E0.1A050091.00.FD +ReplyLength=16 +Validate=FEFE74E01A05009100FD.FEFEE074FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE74E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE74E025000000000000FD.FEFEE074FBFD + +[pmFreqB] +Command=FEFE74E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE74E025010000000000FD.FEFEE074FBFD + +[pmFreq] +Command=FEFE74E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE74E0050000000000FD.FEFEE074FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE74E0.21.00000000.FD +ReplyLength=16 +Validate=FEFE74E02100000000FD.FEFEE074FBFD + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE74E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE74E014090000FD.FEFEE074FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE74E0.0F01.FD +ReplyLength=13 +Validate=FEFE74E00F01FD.FEFEE074FBFD + +[pmSplitOff] +Command=FEFE74E0.0F00.FD +ReplyLength=13 +Validate=FEFE74E00F00FD.FEFEE074FBFD + +[pmVfoA] +Command=FEFE74E0.0700.FD +ReplyLength=13 +Validate=FEFE74E00700FD.FEFEE074FBFD + +[pmVfoB] +Command=FEFE74E0.0701.FD +ReplyLength=13 +Validate=FEFE74E00701FD.FEFEE074FBFD + +[pmVfoEqual] +Command=FEFE74E0.07A0.FD +ReplyLength=13 +Validate=FEFE74E007A0FD.FEFEE074FBFD + +[pmVfoSwap] +Command=FEFE74E0.07B0.FD +ReplyLength=13 +Validate=FEFE74E007B0FD.FEFEE074FBFD + +[pmVfoAA] +Command=FEFE74E0.0700.FD.FEFE74E0.0F00.FD +ReplyLength=20 +Validate=FEFE74E00700FD.FEFE74E00F00FD.FEFEE074FBFD + +[pmVfoAB] +Command=FEFE74E0.0700.FD.FEFE74E0.0F01.FD +ReplyLength=20 +Validate=FEFE74E00700FD.FEFE74E00F01FD.FEFEE074FBFD + +[pmVfoBA] +Command=FEFE74E0.0701.FD.FEFE74E0.0F01.FD +ReplyLength=20 +Validate=FEFE74E00701FD.FEFE74E00F01FD.FEFEE074FBFD + +[pmVfoBB] +Command=FEFE74E0.0701.FD.FEFE74E0.0F00.FD +ReplyLength=20 +Validate=FEFE74E00701FD.FEFE74E00F00FD.FEFEE074FBFD + +[pmRitOn] +Command=FEFE74E0.21.0101.FD +ReplyLength=14 +Validate=FEFE74E0210101FD.FEFEE074FBFD + +[pmRitOff] +Command=FEFE74E0.21.0100.FD +ReplyLength=14 +Validate=FEFE74E0210100FD.FEFEE074FBFD + +[pmXitOn] +Command=FEFE74E0.21.0201.FD +ReplyLength=14 +Validate=FEFE74E0210201FD.FEFEE074FBFD + +[pmXitOff] +Command=FEFE74E0.21.0200.FD +ReplyLength=14 +Validate=FEFE74E0210200FD.FEFEE074FBFD + +[pmRx] +Command=FEFE74E0.1C00.00.FD +ReplyLength=14 +Validate=FEFE74E01C0000FD.FEFEE074FBFD + +[pmTx] +Command=FEFE74E0.1C00.01.FD +ReplyLength=14 +Validate=FEFE74E01C0001FD.FEFEE074FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE74E0.06.07.FD +ReplyLength=13 +Validate=FEFE74E00607FD.FEFEE074FBFD + +[pmCW_L] +; CW Normal +Command=FEFE74E0.06.03.FD +ReplyLength=13 +Validate=FEFE74E00603FD.FEFEE074FBFD + +[pmSSB_U] +Command=FEFE74E0.06.01.FD +ReplyLength=13 +Validate=FEFE74E00601FD.FEFEE074FBFD + +[pmSSB_L] +Command=FEFE74E0.06.00.FD +ReplyLength=13 +Validate=FEFE74E00600FD.FEFEE074FBFD + +[pmDIG_U] +Command=FEFE74E0.06.08.FD +ReplyLength=13 +Validate=FEFE74E00608FD.FEFEE074FBFD + +[pmDIG_L] +Command=FEFE74E0.06.04.FD +ReplyLength=13 +Validate=FEFE74E00604FD.FEFEE074FBFD + +[pmAM] +Command=FEFE74E0.06.02.FD +ReplyLength=13 +Validate=FEFE74E00602FD.FEFEE074FBFD + +[pmFM] +Command=FEFE74E0.06.05.FD +ReplyLength=13 +Validate=FEFE74E00605FD.FEFEE074FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +;[STATUS1] +;Command=FEFE74E0.03.FD +;ReplyLength=17 +;Validate=FEFE74E003FD.FEFEE074.03.0000000000.FD +;Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS1] +; Read transmit freq. +Command=FEFE74E0.1C03.FD +ReplyLength=19 +Validate=FEFE74E01C03FD.FEFEE074.1C03.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE74E0.04.FD +ReplyLength=14 +Validate=FEFE74E004FD.FEFEE074.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE74E0.1409.FD +ReplyLength=16 +Validate=FEFE74E01409FD.FEFEE074.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE74E0.1C00.FD +ReplyLength=15 +Validate=FEFE74E01C00FD.FEFEE074.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS5] +Command=FEFE74E0.2500.FD +ReplyLength=19 +Validate=FEFE74E02500FD.FEFEE074.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS6] +Command=FEFE74E0.2501.FD +ReplyLength=19 +Validate=FEFE74E02501FD.FEFEE074.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS7] +Command=FEFE74E0.0F.FD +ReplyLength=13 +Validate=FEFE74E00FFD.FEFEE074.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS8] +Command=FEFE74E0.2101.FD +ReplyLength=15 +Validate=FEFE74E02101FD.FEFEE074.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS9] +Command=FEFE74E0.2102.FD +ReplyLength=15 +Validate=FEFE74E02102FD.FEFEE074.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff diff --git a/CATCheck/Rigs/IC-775.ini b/CATCheck/Rigs/IC-775.ini new file mode 100644 index 0000000..9f62554 --- /dev/null +++ b/CATCheck/Rigs/IC-775.ini @@ -0,0 +1,158 @@ +;------------------------------------------------------------------------------- +; Icom IC-775 command set +; +; File created by Serge Rodnikov, UA4FFF +;------------------------------------------------------------------------------- + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +;none + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE46E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE46E0050000000000FD.FEFEE046FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE46E0.0F01.FD +ReplyLength=13 +Validate=FEFE46E00F01FD.FEFEE046FBFD + +[pmSplitOff] +Command=FEFE46E0.0F00.FD +ReplyLength=13 +Validate=FEFE46E00F00FD.FEFEE046FBFD + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +Command=FEFE46E0.07B1.FD +ReplyLength=13 +Validate=FEFE46E007B1FD.FEFEE046FBFD + +[pmVfoSwap] +Command=FEFE46E0.07B0.FD +ReplyLength=13 +Validate=FEFE46E007B0FD.FEFEE046FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE46E0.06.0302.FD +ReplyLength=14 +Validate=FEFE46E0060302FD.FEFEE046FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE46E0.06.0102.FD +ReplyLength=14 +Validate=FEFE46E0060102FD.FEFEE046FBFD + +[pmSSB_L] +Command=FEFE46E0.06.0002.FD +ReplyLength=14 +Validate=FEFE46E0060002FD.FEFEE046FBFD + +[pmDIG_U] +Command=FEFE46E0.06.04.FD +ReplyLength=13 +Validate=FEFE46E00604FD.FEFEE046FBFD + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE46E0.06.02.FD +ReplyLength=13 +Validate=FEFE46E00602FD.FEFEE046FBFD + +[pmFM] +Command=FEFE46E0.06.05.FD +ReplyLength=13 +Validate=FEFE46E00605FD.FEFEE046FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE46E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE46E003FD.FEFEE046.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE46E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE46E004FD.FEFEE046.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM diff --git a/CATCheck/Rigs/IC-78.ini b/CATCheck/Rigs/IC-78.ini new file mode 100644 index 0000000..a2da9a3 --- /dev/null +++ b/CATCheck/Rigs/IC-78.ini @@ -0,0 +1,217 @@ +;------------------------------------------------------------------------------- +; Icom IC-78 command set +; +; File created by Leonid, UA3YPL +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +;not sure if 5 or 2x5 bytes should be sent +Command=FEFE62E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE62E0050000000000FD.FEFEE062FBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +Command=FEFE62E0.1409.0000.FD +;300Hz=0 600Hz=128 900Hz=255 +Value=6|2|vfBcdLU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE62E014090000FD.FEFEE062FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE62E0.0F01.FD +ReplyLength=13 +Validate=FEFE62E00F01FD.FEFEE062FBFD + +[pmSplitOff] +Command=FEFE62E0.0F00.FD +ReplyLength=13 +Validate=FEFE62E00F00FD.FEFEE062FBFD + +[pmVfoA] +Command=FEFE62E0.0700.FD +ReplyLength=13 +Validate=FEFE62E00700FD.FEFEE062FBFD + +[pmVfoB] +Command=FEFE62E0.0701.FD +ReplyLength=13 +Validate=FEFE62E00701FD.FEFEE062FBFD + +[pmVfoEqual] +Command=FEFE62E0.07A0.FD +ReplyLength=13 +Validate=FEFE62E007A0FD.FEFEE062FBFD + +[pmVfoSwap] +Command=FEFE62E0.07B0.FD +ReplyLength=13 +Validate=FEFE62E007B0FD.FEFEE062FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE62E0.06.03.FD +ReplyLength=13 +Validate=FEFE62E00603FD.FEFEE062FBFD + +[pmCW_L] +Command=FEFE62E0.06.07.FD +ReplyLength=13 +Validate=FEFE62E00607FD.FEFEE062FBFD + +[pmSSB_U] +Command=FEFE62E0.06.01.FD +ReplyLength=13 +Validate=FEFE62E00601FD.FEFEE062FBFD + +[pmSSB_L] +Command=FEFE62E0.06.00.FD +ReplyLength=13 +Validate=FEFE62E00600FD.FEFEE062FBFD + +[pmDIG_U] +Command=FEFE62E0.06.04.FD +ReplyLength=13 +Validate=FEFE62E00604FD.FEFEE062FBFD + +[pmDIG_L] +Command=FEFE62E0.06.08.FD +ReplyLength=13 +Validate=FEFE62E00608FD.FEFEE062FBFD + +[pmAM] +Command=FEFE62E0.06.02.FD +ReplyLength=13 +Validate=FEFE62E00602FD.FEFEE062FBFD + +[pmFM] +Command=FEFE62E0.06.05.FD +ReplyLength=13 +Validate=FEFE62E00605FD.FEFEE062FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;The command name in the manual is Read Frequencies. +;However, it returns just one frequency +Command=FEFE62E0.03.FD +ReplyLength=17 +Validate=FEFE62E003FD.FEFEE062.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE62E0.04.FD +ReplyLength=14 +Validate=FEFE62E004FD.FEFEE062.04.0000.FD +;filter byte is appended to the mode byte +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM + +[STATUS3] +Command=FEFE62E0.1409.FD +ReplyLength=16 +Validate=FEFE62E01409FD.FEFEE0621409.0000.FD +;Value1=13|2|vfBcdBU|2.352941|300|pmPitch +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +;Command=FEFE62E0.07.FD +;ReplyLength=13 +;Validate=FEFE62E007FD.FEFE62E007.00.FD +;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmVfoA +;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmVfoB + +[STATUS5] +;Command=FEFE62E0.1C00.FD +;ReplyLength=15 +;Validate=FEFE62E01C00FD.FEFEE0621C00.00.FD +;Flag1=00000000000000000000000000.FF.00|00000000000000000000000000.01.00|pmTx +;Flag2=00000000000000000000000000.FF.00|00000000000000000000000000.00.00|pmRx + +[STATUS6] +;Command=FEFE62E0.0F.FD +;ReplyLength=13 +;Validate=FEFE62E00FFD.FEFE62E00F.00.FD +;Flag1=0000000000000000000000.FF.00|0000000000000000000000.01.00|pmSplitOn +;Flag2=0000000000000000000000.FF.00|0000000000000000000000.00.00|pmSplitOff + + diff --git a/CATCheck/Rigs/IC-7800.ini b/CATCheck/Rigs/IC-7800.ini new file mode 100644 index 0000000..29814c9 --- /dev/null +++ b/CATCheck/Rigs/IC-7800.ini @@ -0,0 +1,211 @@ +;------------------------------------------------------------------------------- +; Icom IC-7800 command set +; +; File created by Joseph White ke4tv@adelphia.net +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;disable transceive mode +Command=FEFE6AE0.1A050102.00.FD +ReplyLength=16 +Validate=FEFE6AE01A05010200FD.FEFEE06AFBFD + + +[INIT3] +;set CW normal to upper sideband +Command=FEFE6AE0.1A050097.01.FD +ReplyLength=16 +Validate=FEFE6AE01A05009701FD.FEFEE06AFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE6AE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE6AE0050000000000FD.FEFEE06AFBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +; should 1 or 2 bytes be sent? +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE6AE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE6AE014090000FD.FEFEE06AFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE6AE0.0F01.FD +ReplyLength=13 +Validate=FEFE6AE00F01FD.FEFEE06AFBFD + +[pmSplitOff] +Command=FEFE6AE0.0F00.FD +ReplyLength=13 +Validate=FEFE6AE00F00FD.FEFEE06AFBFD + +[pmVfoA] +Command=FEFE6AE0.07D0.FD +ReplyLength=13 +Validate=FEFE6AE007D0FD.FEFEE06AFBFD + + +[pmVfoB] +Command=FEFE6AE0.07D1.FD +ReplyLength=13 +Validate=FEFE6AE007D1FD.FEFEE06AFBFD + + +[pmVfoEqual] +Command=FEFE6AE0.07B1.FD +ReplyLength=13 +Validate=FEFE6AE007B1FD.FEFEE06AFBFD + +[pmVfoSwap] +Command=FEFE6AE0.07B0.FD +ReplyLength=13 +Validate=FEFE6AE007B0FD.FEFEE06AFBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE6AE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE6AE01C0000FD.FEFEE06AFBFD + +[pmTx] +Command=FEFE6AE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE6AE01C0001FD.FEFEE06AFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE6AE0.06.03.FD +ReplyLength=13 +Validate=FEFE6AE00603FD.FEFEE06AFBFD + +[pmCW_L] +Command=FEFE6AE0.06.07.FD +ReplyLength=13 +Validate=FEFE6AE00607FD.FEFEE06AFBFD + +[pmSSB_U] +Command=FEFE6AE0.06.01.FD +ReplyLength=13 +Validate=FEFE6AE00601FD.FEFEE06AFBFD + +[pmSSB_L] +Command=FEFE6AE0.06.00.FD +ReplyLength=13 +Validate=FEFE6AE00600FD.FEFEE06AFBFD + +[pmDIG_U] +Command=FEFE6AE0.06.08.FD +ReplyLength=13 +Validate=FEFE6AE00608FD.FEFEE06AFBFD + + +[pmDIG_L] +Command=FEFE6AE0.06.04.FD +ReplyLength=13 +Validate=FEFE6AE00604FD.FEFEE06AFBFD. + + +[pmAM] +Command=FEFE6AE0.06.02.FD +ReplyLength=13 +Validate=FEFE6AE00602FD.FEFEE06AFBFD + +[pmFM] +Command=FEFE6AE0.06.05.FD +ReplyLength=13 +Validate=FEFE6AE00605FD.FEFEE06AFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE6AE0.03.FD +ReplyLength=17 +Validate=FEFE6AE003FD.FEFEE06A.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE6AE0.04.FD +ReplyLength=14 +Validate=FEFE6AE004FD.FEFEE06A.04.0000.FD +;is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE6AE0.1409.FD +ReplyLength=16 +Validate=FEFE6AE01409FD.FEFEE06A1409.0000.FD +Value1=13|2|vfBcdBU|25|300|pmPitch + +[STATUS4] +Command=FEFE6AE0.1C00.FD +ReplyLength=15 +Validate=FEFE6AE01C00FD.FEFEE06A.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx diff --git a/CATCheck/Rigs/IC-7800v3.ini b/CATCheck/Rigs/IC-7800v3.ini new file mode 100644 index 0000000..9092b1f --- /dev/null +++ b/CATCheck/Rigs/IC-7800v3.ini @@ -0,0 +1,285 @@ +;------------------------------------------------------------------------------- +; Icom IC-7800 ver. 3.10 firmware command set +; +; IC-7800v3 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: Bob Wilson, N6TV @ K3LR +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE6AE0.1A050101.00.FD +ReplyLength=16 +Validate=FEFE6AE01A05010100FD.FEFEE06AFBFD + +[INIT2] +;disable RS-232C decode, use CI-V +Command=FEFE6AE0.1A050102.00.FD +ReplyLength=16 +Validate=FEFE6AE01A05010200FD.FEFEE06AFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE6AE0.1A050097.00.FD +ReplyLength=16 +Validate=FEFE6AE01A05009700FD.FEFEE06AFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE6AE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE6AE025000000000000FD.FEFEE06AFBFD + +[pmFreqB] +Command=FEFE6AE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE6AE025010000000000FD.FEFEE06AFBFD + +[pmFreq] +Command=FEFE6AE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE6AE0050000000000FD.FEFEE06AFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE6AE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE6AE02100000000FD.FEFEE06AFBFD + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE6AE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE6AE014090000FD.FEFEE06AFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE6AE0.0F01.FD +ReplyLength=13 +Validate=FEFE6AE00F01FD.FEFEE06AFBFD + +[pmSplitOff] +Command=FEFE6AE0.0F00.FD +ReplyLength=13 +Validate=FEFE6AE00F00FD.FEFEE06AFBFD + +[pmVfoA] +Command=FEFE6AE0.07D0.FD +ReplyLength=13 +Validate=FEFE6AE007D0FD.FEFEE06AFBFD + +[pmVfoB] +Command=FEFE6AE0.07D1.FD +ReplyLength=13 +Validate=FEFE6AE007D1FD.FEFEE06AFBFD + +[pmVfoEqual] +Command=FEFE6AE0.07B1.FD +ReplyLength=13 +Validate=FEFE6AE007B1FD.FEFEE06AFBFD + +[pmVfoSwap] +Command=FEFE6AE0.07B0.FD +ReplyLength=13 +Validate=FEFE6AE007B0FD.FEFEE06AFBFD + +[pmVfoAA] +Command=FEFE6AE0.0700.FD.FEFE6AE0.0F00.FD +ReplyLength=20 +Validate=FEFE6AE00700FD.FEFE6AE00F00FD.FEFEE06AFBFD + +[pmVfoAB] +Command=FEFE6AE0.0700.FD.FEFE6AE0.0F01.FD +ReplyLength=20 +Validate=FEFE6AE00700FD.FEFE6AE00F01FD.FEFEE06AFBFD + +[pmVfoBA] +Command=FEFE6AE0.0701.FD.FEFE6AE0.0F01.FD +ReplyLength=20 +Validate=FEFE6AE00701FD.FEFE6AE00F01FD.FEFEE06AFBFD + +[pmVfoBB] +Command=FEFE6AE0.0701.FD.FEFE6AE0.0F00.FD +ReplyLength=20 +Validate=FEFE6AE00701FD.FEFE6AE00F00FD.FEFEE06AFBFD + +[pmRitOn] +Command=FEFE6AE0.21.0101.FD +ReplyLength=14 +Validate=FEFE6AE0210101FD.FEFEE06AFBFD + +[pmRitOff] +Command=FEFE6AE0.21.0100.FD +ReplyLength=14 +Validate=FEFE6AE0210100FD.FEFEE06AFBFD + +[pmXitOn] +Command=FEFE6AE0.21.0201.FD +ReplyLength=14 +Validate=FEFE6AE0210201FD.FEFEE06AFBFD + +[pmXitOff] +Command=FEFE6AE0.21.0200.FD +ReplyLength=14 +Validate=FEFE6AE0210200FD.FEFEE06AFBFD + +[pmRx] +Command=FEFE6AE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE6AE01C0000FD.FEFEE06AFBFD + +[pmTx] +Command=FEFE6AE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE6AE01C0001FD.FEFEE06AFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE6AE0.06.07.FD +ReplyLength=13 +Validate=FEFE6AE00607FD.FEFEE06AFBFD + +[pmCW_L] +; CW Normal +Command=FEFE6AE0.06.03.FD +ReplyLength=13 +Validate=FEFE6AE00603FD.FEFEE06AFBFD + +[pmSSB_U] +Command=FEFE6AE0.06.01.FD +ReplyLength=13 +Validate=FEFE6AE00601FD.FEFEE06AFBFD + +[pmSSB_L] +Command=FEFE6AE0.06.00.FD +ReplyLength=13 +Validate=FEFE6AE00600FD.FEFEE06AFBFD + +[pmDIG_U] +Command=FEFE6AE0.06.08.FD +ReplyLength=13 +Validate=FEFE6AE00608FD.FEFEE06AFBFD + +[pmDIG_L] +Command=FEFE6AE0.06.04.FD +ReplyLength=13 +Validate=FEFE6AE00604FD.FEFEE06AFBFD. + +[pmAM] +Command=FEFE6AE0.06.02.FD +ReplyLength=13 +Validate=FEFE6AE00602FD.FEFEE06AFBFD + +[pmFM] +Command=FEFE6AE0.06.05.FD +ReplyLength=13 +Validate=FEFE6AE00605FD.FEFEE06AFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +;[STATUS1] +;Command=FEFE6AE0.03.FD +;ReplyLength=17 +;Validate=FEFE6AE003FD.FEFEE06A.03.0000000000.FD +;Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS1] +; Read transmit freq. +Command=FEFE6AE0.1C03.FD +ReplyLength=19 +Validate=FEFE6AE01C03FD.FEFEE06A.1C03.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE6AE0.04.FD +ReplyLength=14 +Validate=FEFE6AE004FD.FEFEE06A.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE6AE0.1409.FD +ReplyLength=16 +Validate=FEFE6AE01409FD.FEFEE06A.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE6AE0.1C00.FD +ReplyLength=15 +Validate=FEFE6AE01C00FD.FEFEE06A.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS5] +Command=FEFE6AE0.2500.FD +ReplyLength=19 +Validate=FEFE6AE02500FD.FEFEE06A.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS6] +Command=FEFE6AE0.2501.FD +ReplyLength=19 +Validate=FEFE6AE02501FD.FEFEE06A.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS7] +Command=FEFE6AE0.0F.FD +ReplyLength=13 +Validate=FEFE6AE00FFD.FEFEE06A.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS8] +Command=FEFE6AE0.2101.FD +ReplyLength=15 +Validate=FEFE6AE02101FD.FEFEE06A.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS9] +Command=FEFE6AE0.2102.FD +ReplyLength=15 +Validate=FEFE6AE02102FD.FEFEE06A.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS10] +Command=FEFE6AE0.07D2.FD +ReplyLength=15 +Validate=FEFE6AE007D2FD.FEFEE06A.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-781.ini b/CATCheck/Rigs/IC-781.ini new file mode 100644 index 0000000..a64b1e3 --- /dev/null +++ b/CATCheck/Rigs/IC-781.ini @@ -0,0 +1,174 @@ +;------------------------------------------------------------------------------- +; Icom IC-781 command set +; +; File created by Mel, VE2DC +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE26E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE26E0050000000000FD.FEFEE026FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE26E0.0F01.FD +ReplyLength=13 +Validate=FEFE26E00F01FD.FEFEE026FBFD + +[pmSplitOff] +Command=FEFE26E0.0F00.FD +ReplyLength=13 +Validate=FEFE26E00F00FD.FEFEE026FBFD + +[pmVfoA] +Command=FEFE26E0.0700.FD +ReplyLength=13 +Validate=FEFE26E00700FD.FEFEE026FBFD + +[pmVfoB] +Command=FEFE26E0.0701.FD +ReplyLength=13 +Validate=FEFE26E00701FD.FEFEE026FBFD + +[pmVfoEqual] +Command=FEFE26E0.07A0.FD +ReplyLength=13 +Validate=FEFE26E007A0FD.FEFEE026FBFD + +[pmVfoSwap] +;not supported + + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE26E0.06.03.FD +ReplyLength=13 +Validate=FEFE26E00603FD.FEFEE026FBFD + +[pmCW_L] +Command=FEFE26E0.06.07.FD +ReplyLength=13 +Validate=FEFE26E00607FD.FEFEE026FBFD + +[pmSSB_U] +Command=FEFE26E0.06.01.FD +ReplyLength=13 +Validate=FEFE26E00601FD.FEFEE026FBFD + +[pmSSB_L] +Command=FEFE26E0.06.00.FD +ReplyLength=13 +Validate=FEFE26E00600FD.FEFEE026FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE26E0.06.02.FD +ReplyLength=13 +Validate=FEFE26E00602FD.FEFEE026FBFD + +[pmFM] +Command=FEFE26E0.06.05.FD +ReplyLength=13 +Validate=FEFE26E00605FD.FEFEE026FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE26E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE26E003FD.FEFEE026.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE26E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE26E004FD.FEFEE026.04.0000.FD +;is filter byte appended to the mode byte? +;Yes except for SSB Wide in which case it may be dropped (firmware issue) +;CW_U not supported +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + diff --git a/CATCheck/Rigs/IC-781_2.ini b/CATCheck/Rigs/IC-781_2.ini new file mode 100644 index 0000000..3a93dad --- /dev/null +++ b/CATCheck/Rigs/IC-781_2.ini @@ -0,0 +1,185 @@ +;------------------------------------------------------------------------------- +; Icom IC-781 command set +; +; File created by Mel, VE2DC +; Modified by Alex VE3NEA for a different version of radio firmware +; Modified by Bob N6TV to add some missing commands +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE26E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE26E0050000000000FD.FEFEE026FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE26E0.0F01.FD +ReplyLength=13 +Validate=FEFE26E00F01FD.FEFEE026FBFD + +[pmSplitOff] +Command=FEFE26E0.0F00.FD +ReplyLength=13 +Validate=FEFE26E00F00FD.FEFEE026FBFD + +[pmVfoA] +Command=FEFE26E0.0700.FD +ReplyLength=13 +Validate=FEFE26E00700FD.FEFEE026FBFD + +[pmVfoB] +Command=FEFE26E0.0701.FD +ReplyLength=13 +Validate=FEFE26E00701FD.FEFEE026FBFD + +[pmVfoEqual] +Command=FEFE26E0.07A0.FD +ReplyLength=13 +Validate=FEFE26E007A0FD.FEFEE026FBFD + +[pmVfoSwap] +Command=FEFE26E0.07B0.FD +ReplyLength=13 +Validate=FEFE26E007B0FD.FEFEE026FBFD + +[pmVfoAA] +Command=FEFE26E0.0700.FD.FEFE26E0.0F00.FD +ReplyLength=20 +Validate=FEFE26E00700FD.FEFE26E00F00FD.FEFEE026FBFD + +[pmVfoAB] +Command=FEFE26E0.0700.FD.FEFE26E0.0F01.FD +ReplyLength=20 +Validate=FEFE26E00700FD.FEFE26E00F01FD.FEFEE026FBFD + +[pmVfoBA] +Command=FEFE26E0.0701.FD.FEFE26E0.0F01.FD +ReplyLength=20 +Validate=FEFE26E00701FD.FEFE26E00F01FD.FEFEE026FBFD + +[pmVfoBB] +Command=FEFE26E0.0701.FD.FEFE26E0.0F00.FD +ReplyLength=20 +Validate=FEFE26E00701FD.FEFE26E00F00FD.FEFEE026FBFD + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE26E0.06.03.FD +ReplyLength=13 +Validate=FEFE26E00603FD.FEFEE026FBFD + +[pmCW_L] +Command=FEFE26E0.06.07.FD +ReplyLength=13 +Validate=FEFE26E00607FD.FEFEE026FBFD + +[pmSSB_U] +Command=FEFE26E0.06.01.FD +ReplyLength=13 +Validate=FEFE26E00601FD.FEFEE026FBFD + +[pmSSB_L] +Command=FEFE26E0.06.00.FD +ReplyLength=13 +Validate=FEFE26E00600FD.FEFEE026FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE26E0.06.02.FD +ReplyLength=13 +Validate=FEFE26E00602FD.FEFEE026FBFD + +[pmFM] +Command=FEFE26E0.06.05.FD +ReplyLength=13 +Validate=FEFE26E00605FD.FEFEE026FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE26E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE26E003FD.FEFEE026.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE26E0.04.FD +ReplyLength=13 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.00.FF|FEFE26E004FD.FEFEE026.04.00.FD +;is filter byte appended to the mode byte? +;Yes except for SSB Wide in which case it may be dropped (firmware issue) +;CW_U not supported +Flag1=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_U +Flag2=000000000000.0000000000.FF.00|000000000000.0000000000.03.00|pmCW_L +Flag3=000000000000.0000000000.FF.00|000000000000.0000000000.01.00|pmSSB_U +Flag4=000000000000.0000000000.FF.00|000000000000.0000000000.00.00|pmSSB_L +Flag5=000000000000.0000000000.FF.00|000000000000.0000000000.04.00|pmDIG_U +Flag6=000000000000.0000000000.FF.00|000000000000.0000000000.08.00|pmDIG_L +Flag7=000000000000.0000000000.FF.00|000000000000.0000000000.02.00|pmAM +Flag8=000000000000.0000000000.FF.00|000000000000.0000000000.05.00|pmFM + diff --git a/CATCheck/Rigs/IC-7850-DATA-FIL1.ini b/CATCheck/Rigs/IC-7850-DATA-FIL1.ini new file mode 100644 index 0000000..6f5b7c2 --- /dev/null +++ b/CATCheck/Rigs/IC-7850-DATA-FIL1.ini @@ -0,0 +1,286 @@ +;------------------------------------------------------------------------------- +; Icom IC-7850-DATA-FIL1 +; +; IC-7850-DATA-FIL1 File created by Bob Wilson, N6TV, n6tv@arrl.net, 2019-02-18 +; +; Tested by: +; +; Same as IC-7850-DATA, but for digital modes, sets and selects DATA2 MOD (aka Data +; Mode 2 or D2) to the USB sound card input, and selects FIL1 +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE8EE0.1A050158.01.FD +ReplyLength=16 +Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE8EE0.1A050155.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE8EE0.1A050140.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD + +[INIT4] +;set MOD input connector for DATA2 mode to USB sound card only +Command=FEFE8EE0.1A050064.08.FD +ReplyLength=16 +Validate=FEFE8EE01A05006408FD.FEFEE08EFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE8EE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD + +[pmFreqB] +Command=FEFE8EE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE8EE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE8EE02100000000FD.FEFEE08EFBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE8EE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE8EE014090000FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE8EE0.0F01.FD +ReplyLength=13 +Validate=FEFE8EE00F01FD.FEFEE08EFBFD + +[pmSplitOff] +Command=FEFE8EE0.0F00.FD +ReplyLength=13 +Validate=FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoA] +Command=FEFE8EE0.07D0.FD +ReplyLength=13 +Validate=FEFE8EE007D0FD.FEFEE08EFBFD + +[pmVfoB] +Command=FEFE8EE0.07D1.FD +ReplyLength=13 +Validate=FEFE8EE007D1FD.FEFEE08EFBFD + +[pmVfoEqual] +Command=FEFE8EE0.07B1.FD +ReplyLength=13 +Validate=FEFE8EE007B1FD.FEFEE08EFBFD + +[pmVfoSwap] +Command=FEFE8EE0.07B0.FD +ReplyLength=13 +Validate=FEFE8EE007B0FD.FEFEE08EFBFD + +[pmVfoAA] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoAB] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBA] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBB] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmRitOn] +Command=FEFE8EE0.21.0101.FD +ReplyLength=14 +Validate=FEFE8EE0210101FD.FEFEE08EFBFD + +[pmRitOff] +Command=FEFE8EE0.21.0100.FD +ReplyLength=14 +Validate=FEFE8EE0210100FD.FEFEE08EFBFD + +[pmXitOn] +Command=FEFE8EE0.21.0201.FD +ReplyLength=14 +Validate=FEFE8EE0210201FD.FEFEE08EFBFD + +[pmXitOff] +Command=FEFE8EE0.21.0200.FD +ReplyLength=14 +Validate=FEFE8EE0210200FD.FEFEE08EFBFD + +[pmRx] +Command=FEFE8EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE8EE01C0000FD.FEFEE08EFBFD + +[pmTx] +Command=FEFE8EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE8EE01C0001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE8EE0.2600.07.FD +ReplyLength=14 +Validate=FEFE8EE0260007FD.FEFEE08EFBFD + +[pmCW_L] +; CW Normal +Command=FEFE8EE0.2600.03.FD +ReplyLength=14 +Validate=FEFE8EE0260003FD.FEFEE08EFBFD + +[pmSSB_U] +; These lines select USB with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.01.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600010001FD.FEFEE08EFBFD + +[pmSSB_L] +; These lines select LSB with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.00.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600000001FD.FEFEE08EFBFD + +[pmDIG_U] +; These lines select USB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1 +Command=FEFE8EE0.2600.01.02.01.FD +ReplyLength=16 +Validate=FEFE8EE02600010201FD.FEFEE08EFBFD + +[pmDIG_L] +; These lines select LSB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1 +Command=FEFE8EE0.2600.00.02.01.FD +ReplyLength=16 +Validate=FEFE8EE02600000201FD.FEFEE08EFBFD + +[pmAM] +; These lines select AM with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.02.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600020001FD.FEFEE08EFBFD + +[pmFM] +; These lines select FM with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.05.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600050001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE8EE0.2500.FD +ReplyLength=19 +Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE8EE0.2501.FD +ReplyLength=19 +Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE8EE0.2600.FD +ReplyLength=17 +Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFE8EE0.1409.FD +ReplyLength=16 +Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE8EE0.1C00.FD +ReplyLength=15 +Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE8EE0.0F.FD +ReplyLength=13 +Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE8EE0.2101.FD +ReplyLength=15 +Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE8EE0.2102.FD +ReplyLength=15 +Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE8EE0.07D2.FD +ReplyLength=15 +Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-7850-DATA.ini b/CATCheck/Rigs/IC-7850-DATA.ini new file mode 100644 index 0000000..d7031b8 --- /dev/null +++ b/CATCheck/Rigs/IC-7850-DATA.ini @@ -0,0 +1,276 @@ +;------------------------------------------------------------------------------- +; Icom IC-7850-DATA +; +; IC-7850-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net, 2018-04-16 +; +; Tested by: Bob Wilson, N6TV @ K3LR +; +; Same as IC-7850, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R +; Note: Uses DATA1 MOD (aka Data Mode 1 or D1). User must set DATA1 Modulation Input +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE8EE0.1A050158.01.FD +ReplyLength=16 +Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE8EE0.1A050155.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE8EE0.1A050140.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE8EE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD + +[pmFreqB] +Command=FEFE8EE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE8EE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE8EE02100000000FD.FEFEE08EFBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE8EE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE8EE014090000FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE8EE0.0F01.FD +ReplyLength=13 +Validate=FEFE8EE00F01FD.FEFEE08EFBFD + +[pmSplitOff] +Command=FEFE8EE0.0F00.FD +ReplyLength=13 +Validate=FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoA] +Command=FEFE8EE0.07D0.FD +ReplyLength=13 +Validate=FEFE8EE007D0FD.FEFEE08EFBFD + +[pmVfoB] +Command=FEFE8EE0.07D1.FD +ReplyLength=13 +Validate=FEFE8EE007D1FD.FEFEE08EFBFD + +[pmVfoEqual] +Command=FEFE8EE0.07B1.FD +ReplyLength=13 +Validate=FEFE8EE007B1FD.FEFEE08EFBFD + +[pmVfoSwap] +Command=FEFE8EE0.07B0.FD +ReplyLength=13 +Validate=FEFE8EE007B0FD.FEFEE08EFBFD + +[pmVfoAA] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoAB] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBA] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBB] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmRitOn] +Command=FEFE8EE0.21.0101.FD +ReplyLength=14 +Validate=FEFE8EE0210101FD.FEFEE08EFBFD + +[pmRitOff] +Command=FEFE8EE0.21.0100.FD +ReplyLength=14 +Validate=FEFE8EE0210100FD.FEFEE08EFBFD + +[pmXitOn] +Command=FEFE8EE0.21.0201.FD +ReplyLength=14 +Validate=FEFE8EE0210201FD.FEFEE08EFBFD + +[pmXitOff] +Command=FEFE8EE0.21.0200.FD +ReplyLength=14 +Validate=FEFE8EE0210200FD.FEFEE08EFBFD + +[pmRx] +Command=FEFE8EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE8EE01C0000FD.FEFEE08EFBFD + +[pmTx] +Command=FEFE8EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE8EE01C0001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE8EE0.2600.07.FD +ReplyLength=14 +Validate=FEFE8EE0260007FD.FEFEE08EFBFD + +[pmCW_L] +; CW Normal +Command=FEFE8EE0.2600.03.FD +ReplyLength=14 +Validate=FEFE8EE0260003FD.FEFEE08EFBFD + +[pmSSB_U] +Command=FEFE8EE0.2600.01.00.FD +ReplyLength=15 +Validate=FEFE8EE026000100FD.FEFEE08EFBFD + +[pmSSB_L] +Command=FEFE8EE0.2600.00.00.FD +ReplyLength=15 +Validate=FEFE8EE026000000FD.FEFEE08EFBFD + +[pmDIG_U] +; These lines select USB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation +Command=FEFE8EE0.2600.01.01.FD +ReplyLength=15 +Validate=FEFE8EE026000101FD.FEFEE08EFBFD + +[pmDIG_L] +; These lines select LSB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation +Command=FEFE8EE0.2600.00.01.FD +ReplyLength=15 +Validate=FEFE8EE026000001FD.FEFEE08EFBFD + +[pmAM] +Command=FEFE8EE0.2600.02.FD +ReplyLength=14 +Validate=FEFE8EE0260002FD.FEFEE08EFBFD + +[pmFM] +Command=FEFE8EE0.2600.05.FD +ReplyLength=14 +Validate=FEFE8EE0260005FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE8EE0.2500.FD +ReplyLength=19 +Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE8EE0.2501.FD +ReplyLength=19 +Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE8EE0.2600.FD +ReplyLength=17 +Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFE8EE0.1409.FD +ReplyLength=16 +Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE8EE0.1C00.FD +ReplyLength=15 +Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE8EE0.0F.FD +ReplyLength=13 +Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE8EE0.2101.FD +ReplyLength=15 +Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE8EE0.2102.FD +ReplyLength=15 +Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE8EE0.07D2.FD +ReplyLength=15 +Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-7850.ini b/CATCheck/Rigs/IC-7850.ini new file mode 100644 index 0000000..9cc3841 --- /dev/null +++ b/CATCheck/Rigs/IC-7850.ini @@ -0,0 +1,273 @@ +;------------------------------------------------------------------------------- +; Icom IC-7850 +; +; IC-7850 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: Bob Wilson, N6TV @ K3LR +; +; Updated by N6TV 2018-04-16: +; - Only returns pmFreqA and pmFreqB, not pmFreq, for use with CW Skimmer and Contest Loggers +; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE8EE0.1A050158.01.FD +ReplyLength=16 +Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE8EE0.1A050155.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE8EE0.1A050140.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE8EE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD + +[pmFreqB] +Command=FEFE8EE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE8EE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE8EE02100000000FD.FEFEE08EFBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE8EE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE8EE014090000FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE8EE0.0F01.FD +ReplyLength=13 +Validate=FEFE8EE00F01FD.FEFEE08EFBFD + +[pmSplitOff] +Command=FEFE8EE0.0F00.FD +ReplyLength=13 +Validate=FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoA] +Command=FEFE8EE0.07D0.FD +ReplyLength=13 +Validate=FEFE8EE007D0FD.FEFEE08EFBFD + +[pmVfoB] +Command=FEFE8EE0.07D1.FD +ReplyLength=13 +Validate=FEFE8EE007D1FD.FEFEE08EFBFD + +[pmVfoEqual] +Command=FEFE8EE0.07B1.FD +ReplyLength=13 +Validate=FEFE8EE007B1FD.FEFEE08EFBFD + +[pmVfoSwap] +Command=FEFE8EE0.07B0.FD +ReplyLength=13 +Validate=FEFE8EE007B0FD.FEFEE08EFBFD + +[pmVfoAA] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoAB] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBA] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBB] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmRitOn] +Command=FEFE8EE0.21.0101.FD +ReplyLength=14 +Validate=FEFE8EE0210101FD.FEFEE08EFBFD + +[pmRitOff] +Command=FEFE8EE0.21.0100.FD +ReplyLength=14 +Validate=FEFE8EE0210100FD.FEFEE08EFBFD + +[pmXitOn] +Command=FEFE8EE0.21.0201.FD +ReplyLength=14 +Validate=FEFE8EE0210201FD.FEFEE08EFBFD + +[pmXitOff] +Command=FEFE8EE0.21.0200.FD +ReplyLength=14 +Validate=FEFE8EE0210200FD.FEFEE08EFBFD + +[pmRx] +Command=FEFE8EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE8EE01C0000FD.FEFEE08EFBFD + +[pmTx] +Command=FEFE8EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE8EE01C0001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE8EE0.06.07.FD +ReplyLength=13 +Validate=FEFE8EE00607FD.FEFEE08EFBFD + +[pmCW_L] +; CW Normal +Command=FEFE8EE0.06.03.FD +ReplyLength=13 +Validate=FEFE8EE00603FD.FEFEE08EFBFD + +[pmSSB_U] +Command=FEFE8EE0.06.01.FD +ReplyLength=13 +Validate=FEFE8EE00601FD.FEFEE08EFBFD + +[pmSSB_L] +Command=FEFE8EE0.06.00.FD +ReplyLength=13 +Validate=FEFE8EE00600FD.FEFEE08EFBFD + +[pmDIG_U] +Command=FEFE8EE0.06.08.FD +ReplyLength=13 +Validate=FEFE8EE00608FD.FEFEE08EFBFD + +[pmDIG_L] +Command=FEFE8EE0.06.04.FD +ReplyLength=13 +Validate=FEFE8EE00604FD.FEFEE08EFBFD. + +[pmAM] +Command=FEFE8EE0.06.02.FD +ReplyLength=13 +Validate=FEFE8EE00602FD.FEFEE08EFBFD + +[pmFM] +Command=FEFE8EE0.06.05.FD +ReplyLength=13 +Validate=FEFE8EE00605FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE8EE0.2500.FD +ReplyLength=19 +Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE8EE0.2501.FD +ReplyLength=19 +Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE8EE0.04.FD +ReplyLength=14 +Validate=FEFE8EE004FD.FEFEE08E.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS4] +Command=FEFE8EE0.1409.FD +ReplyLength=16 +Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE8EE0.1C00.FD +ReplyLength=15 +Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE8EE0.0F.FD +ReplyLength=13 +Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE8EE0.2101.FD +ReplyLength=15 +Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE8EE0.2102.FD +ReplyLength=15 +Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE8EE0.07D2.FD +ReplyLength=15 +Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-7851-DATA-FIL1.ini b/CATCheck/Rigs/IC-7851-DATA-FIL1.ini new file mode 100644 index 0000000..4daff7c --- /dev/null +++ b/CATCheck/Rigs/IC-7851-DATA-FIL1.ini @@ -0,0 +1,286 @@ +;------------------------------------------------------------------------------- +; Icom IC-7851-DATA-FIL1 +; +; IC-7851-DATA-FIL1 File created by Bob Wilson, N6TV, n6tv@arrl.net, 2019-02-18 +; +; Tested by: +; +; Same as IC-7851-DATA, but for digital modes, sets and selects DATA2 MOD (aka Data +; Mode 2 or D2) to the USB sound card input, and selects FIL1 +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE8EE0.1A050158.01.FD +ReplyLength=16 +Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE8EE0.1A050155.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE8EE0.1A050140.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD + +[INIT4] +;set MOD input connector for DATA2 mode to USB sound card only +Command=FEFE8EE0.1A050064.08.FD +ReplyLength=16 +Validate=FEFE8EE01A05006408FD.FEFEE08EFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE8EE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD + +[pmFreqB] +Command=FEFE8EE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE8EE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE8EE02100000000FD.FEFEE08EFBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE8EE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE8EE014090000FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE8EE0.0F01.FD +ReplyLength=13 +Validate=FEFE8EE00F01FD.FEFEE08EFBFD + +[pmSplitOff] +Command=FEFE8EE0.0F00.FD +ReplyLength=13 +Validate=FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoA] +Command=FEFE8EE0.07D0.FD +ReplyLength=13 +Validate=FEFE8EE007D0FD.FEFEE08EFBFD + +[pmVfoB] +Command=FEFE8EE0.07D1.FD +ReplyLength=13 +Validate=FEFE8EE007D1FD.FEFEE08EFBFD + +[pmVfoEqual] +Command=FEFE8EE0.07B1.FD +ReplyLength=13 +Validate=FEFE8EE007B1FD.FEFEE08EFBFD + +[pmVfoSwap] +Command=FEFE8EE0.07B0.FD +ReplyLength=13 +Validate=FEFE8EE007B0FD.FEFEE08EFBFD + +[pmVfoAA] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoAB] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBA] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBB] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmRitOn] +Command=FEFE8EE0.21.0101.FD +ReplyLength=14 +Validate=FEFE8EE0210101FD.FEFEE08EFBFD + +[pmRitOff] +Command=FEFE8EE0.21.0100.FD +ReplyLength=14 +Validate=FEFE8EE0210100FD.FEFEE08EFBFD + +[pmXitOn] +Command=FEFE8EE0.21.0201.FD +ReplyLength=14 +Validate=FEFE8EE0210201FD.FEFEE08EFBFD + +[pmXitOff] +Command=FEFE8EE0.21.0200.FD +ReplyLength=14 +Validate=FEFE8EE0210200FD.FEFEE08EFBFD + +[pmRx] +Command=FEFE8EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE8EE01C0000FD.FEFEE08EFBFD + +[pmTx] +Command=FEFE8EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE8EE01C0001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE8EE0.2600.07.FD +ReplyLength=14 +Validate=FEFE8EE0260007FD.FEFEE08EFBFD + +[pmCW_L] +; CW Normal +Command=FEFE8EE0.2600.03.FD +ReplyLength=14 +Validate=FEFE8EE0260003FD.FEFEE08EFBFD + +[pmSSB_U] +; These lines select USB with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.01.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600010001FD.FEFEE08EFBFD + +[pmSSB_L] +; These lines select LSB with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.00.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600000001FD.FEFEE08EFBFD + +[pmDIG_U] +; These lines select USB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1 +Command=FEFE8EE0.2600.01.02.01.FD +ReplyLength=16 +Validate=FEFE8EE02600010201FD.FEFEE08EFBFD + +[pmDIG_L] +; These lines select LSB-D Data Mode 2 (DATA2 MOD) which is set for USB sound card modulation, plus FIL1 +Command=FEFE8EE0.2600.00.02.01.FD +ReplyLength=16 +Validate=FEFE8EE02600000201FD.FEFEE08EFBFD + +[pmAM] +; These lines select AM with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.02.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600020001FD.FEFEE08EFBFD + +[pmFM] +; These lines select FM with Data Mode OFF, FIL1 +Command=FEFE8EE0.2600.05.00.01.FD +ReplyLength=16 +Validate=FEFE8EE02600050001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE8EE0.2500.FD +ReplyLength=19 +Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE8EE0.2501.FD +ReplyLength=19 +Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE8EE0.2600.FD +ReplyLength=17 +Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFE8EE0.1409.FD +ReplyLength=16 +Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE8EE0.1C00.FD +ReplyLength=15 +Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE8EE0.0F.FD +ReplyLength=13 +Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE8EE0.2101.FD +ReplyLength=15 +Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE8EE0.2102.FD +ReplyLength=15 +Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE8EE0.07D2.FD +ReplyLength=15 +Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-7851-DATA.ini b/CATCheck/Rigs/IC-7851-DATA.ini new file mode 100644 index 0000000..e7b0e16 --- /dev/null +++ b/CATCheck/Rigs/IC-7851-DATA.ini @@ -0,0 +1,276 @@ +;------------------------------------------------------------------------------- +; Icom IC-7851-DATA +; +; IC-7851-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net, 2018-04-16 +; +; Tested by: Bob Wilson, N6TV @ K3LR +; +; Same as IC-7851, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R +; Note: Uses DATA1 MOD (aka Data Mode 1 or D1). User must set DATA1 Modulation Input +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE8EE0.1A050158.01.FD +ReplyLength=16 +Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE8EE0.1A050155.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE8EE0.1A050140.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE8EE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD + +[pmFreqB] +Command=FEFE8EE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE8EE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE8EE02100000000FD.FEFEE08EFBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE8EE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE8EE014090000FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE8EE0.0F01.FD +ReplyLength=13 +Validate=FEFE8EE00F01FD.FEFEE08EFBFD + +[pmSplitOff] +Command=FEFE8EE0.0F00.FD +ReplyLength=13 +Validate=FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoA] +Command=FEFE8EE0.07D0.FD +ReplyLength=13 +Validate=FEFE8EE007D0FD.FEFEE08EFBFD + +[pmVfoB] +Command=FEFE8EE0.07D1.FD +ReplyLength=13 +Validate=FEFE8EE007D1FD.FEFEE08EFBFD + +[pmVfoEqual] +Command=FEFE8EE0.07B1.FD +ReplyLength=13 +Validate=FEFE8EE007B1FD.FEFEE08EFBFD + +[pmVfoSwap] +Command=FEFE8EE0.07B0.FD +ReplyLength=13 +Validate=FEFE8EE007B0FD.FEFEE08EFBFD + +[pmVfoAA] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoAB] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBA] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBB] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmRitOn] +Command=FEFE8EE0.21.0101.FD +ReplyLength=14 +Validate=FEFE8EE0210101FD.FEFEE08EFBFD + +[pmRitOff] +Command=FEFE8EE0.21.0100.FD +ReplyLength=14 +Validate=FEFE8EE0210100FD.FEFEE08EFBFD + +[pmXitOn] +Command=FEFE8EE0.21.0201.FD +ReplyLength=14 +Validate=FEFE8EE0210201FD.FEFEE08EFBFD + +[pmXitOff] +Command=FEFE8EE0.21.0200.FD +ReplyLength=14 +Validate=FEFE8EE0210200FD.FEFEE08EFBFD + +[pmRx] +Command=FEFE8EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE8EE01C0000FD.FEFEE08EFBFD + +[pmTx] +Command=FEFE8EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE8EE01C0001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE8EE0.2600.07.FD +ReplyLength=14 +Validate=FEFE8EE0260007FD.FEFEE08EFBFD + +[pmCW_L] +; CW Normal +Command=FEFE8EE0.2600.03.FD +ReplyLength=14 +Validate=FEFE8EE0260003FD.FEFEE08EFBFD + +[pmSSB_U] +Command=FEFE8EE0.2600.01.00.FD +ReplyLength=15 +Validate=FEFE8EE026000100FD.FEFEE08EFBFD + +[pmSSB_L] +Command=FEFE8EE0.2600.00.00.FD +ReplyLength=15 +Validate=FEFE8EE026000000FD.FEFEE08EFBFD + +[pmDIG_U] +; These lines select USB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation +Command=FEFE8EE0.2600.01.01.FD +ReplyLength=15 +Validate=FEFE8EE026000101FD.FEFEE08EFBFD + +[pmDIG_L] +; These lines select LSB-D Data Mode 1 (DATA1 MOD) which defaults to ACC-A sound card modulation +Command=FEFE8EE0.2600.00.01.FD +ReplyLength=15 +Validate=FEFE8EE026000001FD.FEFEE08EFBFD + +[pmAM] +Command=FEFE8EE0.2600.02.FD +ReplyLength=14 +Validate=FEFE8EE0260002FD.FEFEE08EFBFD + +[pmFM] +Command=FEFE8EE0.2600.05.FD +ReplyLength=14 +Validate=FEFE8EE0260005FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE8EE0.2500.FD +ReplyLength=19 +Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE8EE0.2501.FD +ReplyLength=19 +Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE8EE0.2600.FD +ReplyLength=17 +Validate=FEFE8EE02600FD.FEFEE08E.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFE8EE0.1409.FD +ReplyLength=16 +Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE8EE0.1C00.FD +ReplyLength=15 +Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE8EE0.0F.FD +ReplyLength=13 +Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE8EE0.2101.FD +ReplyLength=15 +Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE8EE0.2102.FD +ReplyLength=15 +Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE8EE0.07D2.FD +ReplyLength=15 +Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-7851.ini b/CATCheck/Rigs/IC-7851.ini new file mode 100644 index 0000000..23371d4 --- /dev/null +++ b/CATCheck/Rigs/IC-7851.ini @@ -0,0 +1,273 @@ +;------------------------------------------------------------------------------- +; Icom IC-7851 +; +; IC-7851 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: Bob Wilson, N6TV @ K3LR +; +; Updated by N6TV 2018-04-16: +; - Only returns pmFreqA and pmFreqB, not pmFreq, for use with CW Skimmer and Contest Loggers +; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFE8EE0.1A050158.01.FD +ReplyLength=16 +Validate=FEFE8EE01A05015801FD.FEFEE08EFBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFE8EE0.1A050155.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05015500FD.FEFEE08EFBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFE8EE0.1A050140.00.FD +ReplyLength=16 +Validate=FEFE8EE01A05014000FD.FEFEE08EFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE8EE0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025000000000000FD.FEFEE08EFBFD + +[pmFreqB] +Command=FEFE8EE0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFE8EE025010000000000FD.FEFEE08EFBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFE8EE0.21.00000000.FD +ReplyLength=16 +Validate=FEFE8EE02100000000FD.FEFEE08EFBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE8EE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE8EE014090000FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE8EE0.0F01.FD +ReplyLength=13 +Validate=FEFE8EE00F01FD.FEFEE08EFBFD + +[pmSplitOff] +Command=FEFE8EE0.0F00.FD +ReplyLength=13 +Validate=FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoA] +Command=FEFE8EE0.07D0.FD +ReplyLength=13 +Validate=FEFE8EE007D0FD.FEFEE08EFBFD + +[pmVfoB] +Command=FEFE8EE0.07D1.FD +ReplyLength=13 +Validate=FEFE8EE007D1FD.FEFEE08EFBFD + +[pmVfoEqual] +Command=FEFE8EE0.07B1.FD +ReplyLength=13 +Validate=FEFE8EE007B1FD.FEFEE08EFBFD + +[pmVfoSwap] +Command=FEFE8EE0.07B0.FD +ReplyLength=13 +Validate=FEFE8EE007B0FD.FEFEE08EFBFD + +[pmVfoAA] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmVfoAB] +Command=FEFE8EE0.07D0.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D0FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBA] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F01.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F01FD.FEFEE08EFBFD + +[pmVfoBB] +Command=FEFE8EE0.07D1.FD.FEFE8EE0.0F00.FD +ReplyLength=20 +Validate=FEFE8EE007D1FD.FEFE8EE00F00FD.FEFEE08EFBFD + +[pmRitOn] +Command=FEFE8EE0.21.0101.FD +ReplyLength=14 +Validate=FEFE8EE0210101FD.FEFEE08EFBFD + +[pmRitOff] +Command=FEFE8EE0.21.0100.FD +ReplyLength=14 +Validate=FEFE8EE0210100FD.FEFEE08EFBFD + +[pmXitOn] +Command=FEFE8EE0.21.0201.FD +ReplyLength=14 +Validate=FEFE8EE0210201FD.FEFEE08EFBFD + +[pmXitOff] +Command=FEFE8EE0.21.0200.FD +ReplyLength=14 +Validate=FEFE8EE0210200FD.FEFEE08EFBFD + +[pmRx] +Command=FEFE8EE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE8EE01C0000FD.FEFEE08EFBFD + +[pmTx] +Command=FEFE8EE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE8EE01C0001FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE8EE0.06.07.FD +ReplyLength=13 +Validate=FEFE8EE00607FD.FEFEE08EFBFD + +[pmCW_L] +; CW Normal +Command=FEFE8EE0.06.03.FD +ReplyLength=13 +Validate=FEFE8EE00603FD.FEFEE08EFBFD + +[pmSSB_U] +Command=FEFE8EE0.06.01.FD +ReplyLength=13 +Validate=FEFE8EE00601FD.FEFEE08EFBFD + +[pmSSB_L] +Command=FEFE8EE0.06.00.FD +ReplyLength=13 +Validate=FEFE8EE00600FD.FEFEE08EFBFD + +[pmDIG_U] +Command=FEFE8EE0.06.08.FD +ReplyLength=13 +Validate=FEFE8EE00608FD.FEFEE08EFBFD + +[pmDIG_L] +Command=FEFE8EE0.06.04.FD +ReplyLength=13 +Validate=FEFE8EE00604FD.FEFEE08EFBFD. + +[pmAM] +Command=FEFE8EE0.06.02.FD +ReplyLength=13 +Validate=FEFE8EE00602FD.FEFEE08EFBFD + +[pmFM] +Command=FEFE8EE0.06.05.FD +ReplyLength=13 +Validate=FEFE8EE00605FD.FEFEE08EFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE8EE0.2500.FD +ReplyLength=19 +Validate=FEFE8EE02500FD.FEFEE08E.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFE8EE0.2501.FD +ReplyLength=19 +Validate=FEFE8EE02501FD.FEFEE08E.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFE8EE0.04.FD +ReplyLength=14 +Validate=FEFE8EE004FD.FEFEE08E.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS4] +Command=FEFE8EE0.1409.FD +ReplyLength=16 +Validate=FEFE8EE01409FD.FEFEE08E.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFE8EE0.1C00.FD +ReplyLength=15 +Validate=FEFE8EE01C00FD.FEFEE08E.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFE8EE0.0F.FD +ReplyLength=13 +Validate=FEFE8EE00FFD.FEFEE08E.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFE8EE0.2101.FD +ReplyLength=15 +Validate=FEFE8EE02101FD.FEFEE08E.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFE8EE0.2102.FD +ReplyLength=15 +Validate=FEFE8EE02102FD.FEFEE08E.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff + +[STATUS9] +Command=FEFE8EE0.07D2.FD +ReplyLength=15 +Validate=FEFE8EE007D2FD.FEFEE08E.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/IC-821PST.ini b/CATCheck/Rigs/IC-821PST.ini new file mode 100644 index 0000000..4d84566 --- /dev/null +++ b/CATCheck/Rigs/IC-821PST.ini @@ -0,0 +1,203 @@ +;------------------------------------------------------------------------------- + ; Icom IC-821PST command set +; +; File created for IC-970D by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com + Corrected by Vlad Tarasov , RA4HO, ra4ho@ncts.ru +; Adapted and tested by MM0RBZ Specifically to use IC-821 with +; PstRotator software for mode V/U and U/v satellites. +; PstRotator has embedded code to use this .ini so please do not re-name it. +; Use with other software may produce undesirable results. +; +;------------------------------------------------------------------------------- + + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFE4CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD + +[pmFreqB] +Command=FEFE4CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD + +[pmFreq] +Command=FEFE4CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE4CE0050000000000FD.FEFEE04CFBFD + +[pmRitOffset] +;not supported +;+/- 1.2 KHz + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE4CE0.0F01.FD +ReplyLength=13 +Validate=FEFE4CE00F01FD.FEFEE04CFBFD + +[pmSplitOff] +Command=FEFE4CE0.0F00.FD +ReplyLength=13 +Validate=FEFE4CE00F00FD.FEFEE04CFBFD + +[pmVfoA] +;SELECT Sub BAND (RX) +Command=FEFE4CE0.07D1.FD +ReplyLength=13 +Validate=FEFE4CE007D1FD.FEFEE04CFBFD + +[pmVfoB] +;SELECT Main BAND (TX) +Command=FEFE4CE0.07D0.FD +ReplyLength=13 +Validate=FEFE4CE007D0FD.FEFEE04CFBFD + + + +[pmVfoEqual] +;SELECT Sub BAND (RX), this is not an error +Command=FEFE4CE0.07D1.FD +ReplyLength=13 +Validate=FEFE4CE007D1FD.FEFEE04CFBFD + +[pmVfoSwap] +;SWAP MAIN AND SUB +Command=FEFE4CE0.07B0.FD +ReplyLength=13 +Validate=FEFE4CE007B0FD.FEFEE04CFBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE4CE0.06.03.FD +ReplyLength=13 +Validate=FEFE4CE00603FD.FEFEE04CFBFD + +[pmCW_L] +;NOT SUPPORTED + +[pmSSB_U] +Command=FEFE4CE0.06.01.FD +ReplyLength=13 +Validate=FEFE4CE00601FD.FEFEE04CFBFD + +[pmSSB_L] +Command=FEFE4CE0.06.00.FD +ReplyLength=13 +Validate=FEFE4CE00600FD.FEFEE04CFBFD + +[pmDIG_U] +;not supported +[pmDIG_L] +;not supported + +[pmAM] +;not supported + +[pmFM] +Command=FEFE4CE0.06.05.FD +ReplyLength=13 +Validate=FEFE4CE00605FD.FEFEE04CFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;READ CURRENT FREQUENCY DATA +Command=FEFE4CE0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE4CE003FD.FEFEE04C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;READ CURRENT MODE +Command=FEFE4CE0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE4CE004FD.FEFEE04C.04.0000.FD +is filter byte appended to the mode byte? +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +;not supported + + + + diff --git a/CATCheck/Rigs/IC-910.ini b/CATCheck/Rigs/IC-910.ini new file mode 100644 index 0000000..c0903e6 --- /dev/null +++ b/CATCheck/Rigs/IC-910.ini @@ -0,0 +1,174 @@ +;------------------------------------------------------------------------------- +; Icom IC-910 command set +; +; Original IC-706MkII file created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Modified to work with IC-910 by Dave Hardy VK2JDH +; Tested by: _________ +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE60E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE68E0050000000000FD.FEFEE060FBFD + +[pmRitOffset] +;not supported + + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE60E0.0F01.FD +ReplyLength=13 +Validate=FEFE60E00F01FD.FEFEE060FBFD + +[pmSplitOff] +Command=FEFE60E0.0F00.FD +ReplyLength=13 +Validate=FEFE60E00F00FD.FEFEE060FBFD + +[pmVfoA] +Command=FEFE60E0.0700.FD +ReplyLength=13 +Validate=FEFE60E00700FD.FEFEE060FBFD + +[pmVfoB] +Command=FEFE60E0.0701.FD +ReplyLength=13 +Validate=FEFE60E00701FD.FEFEE060FBFD + +[pmVfoEqual] +Command=FEFE60E0.07A0.FD +ReplyLength=13 +Validate=FEFE60E007A0FD.FEFEE060FBFD + +[pmVfoSwap] +Command=FEFE60E0.07B0.FD +ReplyLength=13 +Validate=FEFE60E007B0FD.FEFEE060FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE60E0.06.03.FD +ReplyLength=13 +Validate=FEFE60E00603FD.FEFEE060FBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE60E0.06.01.FD +ReplyLength=13 +Validate=FEFE60E00601FD.FEFEE060FBFD + +[pmSSB_L] +Command=FEFE60E0.06.00.FD +ReplyLength=13 +Validate=FEFE60E00600FD.FEFEE060FBFD + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +;not supported + +[pmFM] +Command=FEFE60E0.06.04.FD +ReplyLength=13 +Validate=FEFE60E00605FD.FEFEE060FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE60E0.03.FD +ReplyLength=17 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000000000.FF|FEFE60E003FD.FEFEE060.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE60E0.04.FD +ReplyLength=14 +Validate=FFFFFFFFFFFF.FFFFFFFF.FF.0000.FF|FEFE60E004FD.FEFEE060.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag9=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmFM diff --git a/CATCheck/Rigs/IC-9100.ini b/CATCheck/Rigs/IC-9100.ini new file mode 100644 index 0000000000000000000000000000000000000000..a64bad208b1e699afa7dc0e3619a2529504bd1b8 GIT binary patch literal 10198 zcmd^_Yfl?T6o%(>rT&NQmnM;l!C(Rjr6~cNAQ_0T$)!d_nFzr ztZnSfMnrZLt=79Ud*;l!yywiBf&czpGe6J#^}YGdtQq&4m`PWld@Q;h(=g}e%)V`! zIrGRA&4RAP?5nq9PSkgx-y`)n$}>|}f7A5R*#_rqi(|!Xi+WSzw#|mA>32)*vfBG* zS8p4-clEv{+OlrNqT~+tK+0&?^DTp>P z_tn2GE#K&!ue;`jwZ#LqYobkTtET6!=&%suYt}9mOY_|JAIL)3h7qsyteNMTuSnc5 zr*{AbH zOZ>6?mbktdu}UIJEP7!cYuvo-%vG=$0xN|SJq7vZO5eQ}^WwebM2?fZ;WL<#JxfjylTwDS&=k)IITvR+SD9Y!A+Tsw8Jt2Z~UfxxUqb?YC{7LEZ){HeWN+% z(th`r|6xeN=lY68Tm05f<>IYFGK@}M49YSYCZqW&qSu3%jDV@is`aOxXgZKXL}N_&$+r z#7$i{h^Afth|+oWbrkJQ(e(936oP`D`nHDpXg6dp_z?SKik>X^k9lHgv)|Uuvh{8@ zDp||g(!wFml4#>u+IJ+$9niZ|O$te+R%X4?n8)`~@5psUJGDaXyRZIubeDx2cFR8JjnB19(dcwMnWpo3GiOo~7s>)s}eu z9Bt#UoL}4GH=A93X7xT|$HCdp*IKbAT8}SuQ8jRKK;78V?%nUpHq#SKmse^1p%JlI zTu@C))UDh>PF)e7lC6>93eWhQT9J?Xxpb`L)^X_$bPW3dr{hu%9XSVkn#qt=+x{GH z#bu57wE%C$W(@LUWsD~IeR9{U8k*!;)h5Rl=XOUn=eyIpkW<1s$2t46&x*O#FM!9@ z9C(}@b9r>n@AuLd(7lvH_YIv(2OrYPn=#q<-(?jFau;)GP#(~LR$dL*Dc-dP%aIyj z`?atBe2m=(=ar$h;6#WS#SO0S5M`iVVv*b36FAyC#O-jU*pER zn%0kT9`e;OcJ;C?PDQpX0<*GJYy^7QmZl<``)>qiIVW4FRI`>VO+`9?N`QQW(hb^f zc`DLT(+y%S)Q4HyJ)DYk*(i0k^U@94Ze=Rc`M;zD&-yCO$HVGWGsXOs$(_25%j#iH zJQ8O1-k6lt-3T8E{uyF}H=k#mP5p_t=RPSff0}z(J;tvbpXL%MoQ(JspL72Yx_ApA literal 0 HcmV?d00001 diff --git a/CATCheck/Rigs/IC-9100v2.ini b/CATCheck/Rigs/IC-9100v2.ini new file mode 100644 index 0000000..62a1dea --- /dev/null +++ b/CATCheck/Rigs/IC-9100v2.ini @@ -0,0 +1,223 @@ +;------------------------------------------------------------------------------- +; Icom IC-9100 with corrected command set +; +; IC-9100v2 File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: N6TV @ HRO Sunnyvale, CA +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V transceive OFF +Command=FEFE7CE0.1A050058.00.FD +ReplyLength=16 +Validate=FEFE7CE01A05005800FD.FEFEE07CFBFD + +[INIT2] +;set CW normal to lower sideband +Command=FEFE7CE0.1A050040.00.FD +ReplyLength=16 +Validate=FEFE7CE01A05004000FD.FEFEE07CFBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE7CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE7CE0050000000000FD.FEFEE07CFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;test the 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFE7CE0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFE7CE014090000FD.FEFEE07CFBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE7CE0.0F01.FD +ReplyLength=13 +Validate=FEFE7CE00F01FD.FEFEE07CFBFD + +[pmSplitOff] +Command=FEFE7CE0.0F00.FD +ReplyLength=13 +Validate=FEFE7CE00F00FD.FEFEE07CFBFD + +[pmVfoA] +Command=FEFE7CE0.0700.FD +ReplyLength=13 +Validate=FEFE7CE00700FD.FEFEE07CFBFD + +[pmVfoB] +Command=FEFE7CE0.0701.FD +ReplyLength=13 +Validate=FEFE7CE00701FD.FEFEE07CFBFD + +[pmVfoEqual] +Command=FEFE7CE0.07A0.FD +ReplyLength=13 +Validate=FEFE7CE007A0FD.FEFEE07CFBFD + +[pmVfoSwap] +Command=FEFE7CE0.07B0.FD +ReplyLength=13 +Validate=FEFE7CE007B0FD.FEFEE07CFBFD + +[pmVfoAA] +Command=FEFE7CE0.0700.FD.FEFE7CE0.0F00.FD +ReplyLength=20 +Validate=FEFE7CE00700FD.FEFE7CE00F00FD.FEFEE07CFBFD + +[pmVfoAB] +Command=FEFE7CE0.0700.FD.FEFE7CE0.0F01.FD +ReplyLength=20 +Validate=FEFE7CE00700FD.FEFE7CE00F01FD.FEFEE07CFBFD + +[pmVfoBA] +Command=FEFE7CE0.0701.FD.FEFE7CE0.0F01.FD +ReplyLength=20 +Validate=FEFE7CE00701FD.FEFE7CE00F01FD.FEFEE07CFBFD + +[pmVfoBB] +Command=FEFE7CE0.0701.FD.FEFE7CE0.0F00.FD +ReplyLength=20 +Validate=FEFE7CE00701FD.FEFE7CE00F00FD.FEFEE07CFBFD + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +Command=FEFE7CE0.1C00.00.FD +ReplyLength=14 +Validate=FEFE7CE01C0000FD.FEFEE07CFBFD + +[pmTx] +Command=FEFE7CE0.1C00.01.FD +ReplyLength=14 +Validate=FEFE7CE01C0001FD.FEFEE07CFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFE7CE0.06.07.FD +ReplyLength=13 +Validate=FEFE7CE00607FD.FEFEE07CFBFD + +[pmCW_L] +; CW Normal +Command=FEFE7CE0.06.03.FD +ReplyLength=13 +Validate=FEFE7CE00603FD.FEFEE07CFBFD + +[pmSSB_U] +Command=FEFE7CE0.06.01.FD +ReplyLength=13 +Validate=FEFE7CE00601FD.FEFEE07CFBFD + +[pmSSB_L] +Command=FEFE7CE0.06.00.FD +ReplyLength=13 +Validate=FEFE7CE00600FD.FEFEE07CFBFD + +[pmDIG_U] +Command=FEFE7CE0.06.08.FD +ReplyLength=13 +Validate=FEFE7CE00608FD.FEFEE07CFBFD + +[pmDIG_L] +Command=FEFE7CE0.06.04.FD +ReplyLength=13 +Validate=FEFE7CE00604FD.FEFEE07CFBFD + +[pmAM] +Command=FEFE7CE0.06.02.FD +ReplyLength=13 +Validate=FEFE7CE00602FD.FEFEE07CFBFD + +[pmFM] +Command=FEFE7CE0.06.05.FD +ReplyLength=13 +Validate=FEFE7CE00605FD.FEFEE07CFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE7CE0.03.FD +ReplyLength=17 +Validate=FEFE7CE003FD.FEFEE07C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE7CE0.04.FD +ReplyLength=14 +Validate=FEFE7CE004FD.FEFEE07C.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE7CE0.1409.FD +ReplyLength=16 +Validate=FEFE7CE01409FD.FEFEE07C.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS4] +Command=FEFE7CE0.1C00.FD +ReplyLength=15 +Validate=FEFE7CE01C00FD.FEFEE07C.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS5] +Command=FEFE7CE0.0F.FD +ReplyLength=13 +Validate=FEFE7CE00FFD.FEFEE07C.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.FF.00|000000000000.00000000.00.00.00|pmSplitOff diff --git a/CATCheck/Rigs/IC-9700.ini b/CATCheck/Rigs/IC-9700.ini new file mode 100644 index 0000000..718afb7 --- /dev/null +++ b/CATCheck/Rigs/IC-9700.ini @@ -0,0 +1,277 @@ +;------------------------------------------------------------------------------- +; Icom IC-9700 +; +; IC-7300 File created by Bob Wilson, N6TV, n6tv@arrl.net +; modified by HB9RYZ [info@hb9ryz.ch] in order to use this ini-File with the new IC-9700. +; the default CI-V address has been chnanged from 94h to A2 +; +; Tested by: Wolfgang Sidler, HB9RYZ +; +; Same as original IC-7300, but only returns pmVfoA and pmVfoB, not pmFreq +; for use with CW Skimmer and Contest Loggers. +; +; Updated by HB9RYZ 2019-05-10: +; - Set USB CI-V Echo Back ON to ensure that rig returns the values coded below +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn USB CI-V Echo Back ON +Command=FEFEA2E0.1A050075.01.FD +ReplyLength=16 +Validate=FEFEA2E01A05007501FD.FEFEE0A2FBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFEA2E0.1A050071.00.FD +ReplyLength=16 +Validate=FEFEA2E01A05007100FD.FEFEE0A2FBFD + +[INIT3] +;set CW normal to lower sideband +Command=FEFEA2E0.1A050053.00.FD +ReplyLength=16 +Validate=FEFEA2E01A05005300FD.FEFEE0A2FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFEA2E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFEA2E025000000000000FD.FEFEE0A2FBFD + +[pmFreqB] +Command=FEFEA2E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFEA2E025010000000000FD.FEFEE0A2FBFD + +[pmFreq] +; not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFEA2E0.21.00000000.FD +ReplyLength=16 +Validate=FEFEA2E02100000000FD.FEFEE0A2FBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFEA2E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFEA2E014090000FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFEA2E0.0F01.FD +ReplyLength=13 +Validate=FEFEA2E00F01FD.FEFEE0A2FBFD + +[pmSplitOff] +Command=FEFEA2E0.0F00.FD +ReplyLength=13 +Validate=FEFEA2E00F00FD.FEFEE0A2FBFD + +[pmVfoA] +Command=FEFEA2E0.0700.FD +ReplyLength=13 +Validate=FEFEA2E00700FD.FEFEE0A2FBFD + +[pmVfoB] +Command=FEFEA2E0.0701.FD +ReplyLength=13 +Validate=FEFEA2E00701FD.FEFEE0A2FBFD + +[pmVfoEqual] +Command=FEFEA2E0.07A0.FD +ReplyLength=13 +Validate=FEFEA2E007A0FD.FEFEE0A2FBFD + +[pmVfoSwap] +Command=FEFEA2E0.07B0.FD +ReplyLength=13 +Validate=FEFEA2E007B0FD.FEFEE0A2FBFD + +[pmVfoAA] +Command=FEFEA2E0.0700.FD.FEFEA2E0.0F00.FD +ReplyLength=20 +Validate=FEFEA2E00700FD.FEFEA2E00F00FD.FEFEE0A2FBFD + +[pmVfoAB] +Command=FEFEA2E0.0700.FD.FEFEA2E0.0F01.FD +ReplyLength=20 +Validate=FEFEA2E00700FD.FEFEA2E00F01FD.FEFEE0A2FBFD + +[pmVfoBA] +Command=FEFEA2E0.0701.FD.FEFEA2E0.0F01.FD +ReplyLength=20 +Validate=FEFEA2E00701FD.FEFEA2E00F01FD.FEFEE0A2FBFD + +[pmVfoBB] +Command=FEFEA2E0.0701.FD.FEFEA2E0.0F00.FD +ReplyLength=20 +Validate=FEFEA2E00701FD.FEFEA2E00F00FD.FEFEE0A2FBFD + +[pmRitOn] +Command=FEFEA2E0.21.0101.FD +ReplyLength=14 +Validate=FEFEA2E0210101FD.FEFEE0A2FBFD + +[pmRitOff] +Command=FEFEA2E0.21.0100.FD +ReplyLength=14 +Validate=FEFEA2E0210100FD.FEFEE0A2FBFD + +[pmXitOn] +Command=FEFEA2E0.21.0201.FD +ReplyLength=14 +Validate=FEFEA2E0210201FD.FEFEE0A2FBFD + +[pmXitOff] +Command=FEFEA2E0.21.0200.FD +ReplyLength=14 +Validate=FEFEA2E0210200FD.FEFEE0A2FBFD + +[pmRx] +Command=FEFEA2E0.1C00.00.FD +ReplyLength=14 +Validate=FEFEA2E01C0000FD.FEFEE0A2FBFD + +[pmTx] +Command=FEFEA2E0.1C00.01.FD +ReplyLength=14 +Validate=FEFEA2E01C0001FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFEA2E0.06.07.FD +ReplyLength=13 +Validate=FEFEA2E00607FD.FEFEE0A2FBFD + +[pmCW_L] +; CW Normal +Command=FEFEA2E0.06.03.FD +ReplyLength=13 +Validate=FEFEA2E00603FD.FEFEE0A2FBFD + +[pmSSB_U] +Command=FEFEA2E0.06.01.FD +ReplyLength=13 +Validate=FEFEA2E00601FD.FEFEE0A2FBFD + +[pmSSB_L] +Command=FEFEA2E0.06.00.FD +ReplyLength=13 +Validate=FEFEA2E00600FD.FEFEE0A2FBFD + +[pmDIG_U] +Command=FEFEA2E0.06.08.FD +ReplyLength=13 +Validate=FEFEA2E00608FD.FEFEE0A2FBFD + +[pmDIG_L] +Command=FEFEA2E0.06.04.FD +ReplyLength=13 +Validate=FEFEA2E00604FD.FEFEE0A2FBFD. + +[pmAM] +Command=FEFEA2E0.06.02.FD +ReplyLength=13 +Validate=FEFEA2E00602FD.FEFEE0A2FBFD + +[pmFM] +Command=FEFEA2E0.06.05.FD +ReplyLength=13 +Validate=FEFEA2E00605FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFEA2E0.2500.FD +ReplyLength=19 +Validate=FEFEA2E02500FD.FEFEE0A2.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFEA2E0.2501.FD +ReplyLength=19 +Validate=FEFEA2E02501FD.FEFEE0A2.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFEA2E0.04.FD +ReplyLength=14 +Validate=FEFEA2E004FD.FEFEE0A2.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS4] +Command=FEFEA2E0.1409.FD +ReplyLength=16 +Validate=FEFEA2E01409FD.FEFEE0A2.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFEA2E0.1C00.FD +ReplyLength=15 +Validate=FEFEA2E01C00FD.FEFEE0A2.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFEA2E0.0F.FD +ReplyLength=13 +Validate=FEFEA2E00FFD.FEFEE0A2.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFEA2E0.0F.FD +ReplyLength=13 +Validate=FEFEA2E00FFD.FEFEE0A2.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmVfoAB +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmVfoAA + +[STATUS8] +Command=FEFEA2E0.2101.FD +ReplyLength=15 +Validate=FEFEA2E02101FD.FEFEE0A2.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS9] +Command=FEFEA2E0.2102.FD +ReplyLength=15 +Validate=FEFEA2E02102FD.FEFEE0A2.2102.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmXitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmXitOff diff --git a/CATCheck/Rigs/IC-M710.ini b/CATCheck/Rigs/IC-M710.ini new file mode 100644 index 0000000..27441de --- /dev/null +++ b/CATCheck/Rigs/IC-M710.ini @@ -0,0 +1,177 @@ +;------------------------------------------------------------------------------- +; Icom IC-M710 command set +; +; File created by Alex Ushakov, RA6UAZ +; +; Tested by: _________ +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;Command=($PICOA,90,01,REMOTE,ON) +;Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.45.4D.4F.54.45.2C.4F.4E.0D.0A +;ReplyEnd=0A +;Validate=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.45.4D.4F.54.45.2C.4F.4E.2A.35.39.0D.0A + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;$PICOA,90,01,RXF,14.103600 +;Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.58.46.2C.31.34.2E.31.30.33.36.30.30.0D.0A +;ReplyEnd=0A +;Value=17|9|vfDPIcom|1|0 + +[pmFreqB] +;$PICOA,90,01,TXF,14.103600 +;ReplyEnd=0A +;Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.58.46.2C.31.34.2E.31.30.33.36.30.30.0D.0A +;Value=17|9|vfDPIcom|1|0 + +[pmFreq] +;$PICOA,90,01,RXF,14.103600 +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.58.46.2C.31.34.2E.31.30.33.36.30.30.0D.0A +ReplyEnd=0A +Value=17|9|vfDPIcom|1|0 + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;$PICOA,90,01,TRX,RX +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.52.58.2C.52.58.0D.0A +ReplyEnd=0A + +[pmTx] +;$PICOA,90,01,TRX,TX +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.52.58.2C.54.58.0D.0A +ReplyEnd=0A + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;$PICOA,90,01,MODE,A1A +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.41.31.41.0D.0A +ReplyEnd=0A + +[pmCW_L] +;not supported + +[pmSSB_U] +;$PICOA,90,01,MODE,J3E +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.4A.33.45.0D.0A +ReplyEnd=0A + +[pmSSB_L] +;$PICOA,90,01,MODE,LSB +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.4C.53.42.0D.0A +ReplyEnd=0A + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +;$PICOA,90,01,MODE,H3E +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.2C.48.33.45.0D.0A +ReplyEnd=0A + +[pmFM] +;not supported + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +;$PICOA,90,01,RXF +;$PICOA,01,90,RXF,14.103600*3F +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.52.58.46.0D.0A +ReplyEnd=0A +Value1=17|9|vfDPIcom|1|0|pmFreq +Value2=17|9|vfDPIcom|1|0|pmFreqA +Value3=17|9|vfDPIcom|1|0|pmFreqB + +[STATUS2] +;$PICOA,90,01,MODE +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.4D.4F.44.45.0D.0A +ReplyEnd=0A +Flag1=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.41.31.41.00.00.00.0D.0A|pmCW_U +Flag2=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.4A.33.45.00.00.00.0D.0A|pmSSB_U +Flag3=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.4C.53.42.00.00.00.0D.0A|pmSSB_L +Flag4=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.48.33.45.00.00.00.0D.0A|pmAM + +[STATUS3] +;$PICOA,90,01,TRX +Command=24.50.49.43.4F.41.2C.39.30.2C.30.31.2C.54.52.58.0D.0A +ReplyEnd=0A +Flag1=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.52.58.00.00.00.0D.0A|pmRX +Flag2=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.FF.FF.00.00.00.0D.0A|00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.54.58.00.00.00.0D.0A|pmTX + diff --git a/CATCheck/Rigs/IC-R75-chromos.ini b/CATCheck/Rigs/IC-R75-chromos.ini new file mode 100644 index 0000000..a92c764 --- /dev/null +++ b/CATCheck/Rigs/IC-R75-chromos.ini @@ -0,0 +1,201 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-R75 command set, version 9 May 2010 +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756 +; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500 +; -Fifth modification by John, W0JFR: Conversion of the set for use with an IC-R75 +; -Sixth modification by Mirek, OK1-36292, chromos@chromos.cz: add CW-R, RTTY and RTTY-R modes, in LSB and USB wide filters to normal +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;stop scan +Command=FEFE5AE0.0E.00.FD +ReplyLength=13 +Validate=FEFE5AE00E00FD.FEFEE05AFBFD + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE5AE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE5AE0050000000000FD.FEFEE05AFBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +;Not supported + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +;Not supported + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +;Not supported on R75, so this is a dummy command expected to fail +;Command=FEFE5AE0.0F00.FD +;ReplyLength=13 +;Validate=FEFE5AE00F00FD.FEFEE05AFAFD + +[pmVfoA] +;Set receiver to VFO A frequency +;Not supported + +[pmVfoB] +;Set receiver to VFO B frequency +;Not supported + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +;Not supported + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +;Not supported + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +;Not supported + +[pmTx] +;Enable the transmit mode +;Not supported + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode +Command=FEFE5AE0.06.0301.FD +ReplyLength=14 +Validate=FEFE5AE0060301FD.FEFEE05AFBFD + +[pmCW_L] +;Set the CW-R mode +Command=FEFE5AE0.06.0701.FD +ReplyLength=14 +Validate=FEFE5AE0060701FD.FEFEE05AFBFD + +[pmSSB_U] +;Set the USB mode +Command=FEFE5AE0.06.0102.FD +ReplyLength=14 +Validate=FEFE5AE0060102FD.FEFEE05AFBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE5AE0.06.0002.FD +ReplyLength=14 +Validate=FEFE5AE0060002FD.FEFEE05AFBFD + +[pmDIG_U] +;Set the Digital RTTY mode (microphone muted) +Command=FEFE5AE0.06.0402.FD +ReplyLength=14 +Validate=FEFE5AE0060402FD.FEFEE05AFBFD + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +Command=FEFE5AE0.06.0802.FD +ReplyLength=14 +Validate=FEFE5AE0060802FD.FEFEE05AFBFD + +[pmAM] +;Set the AM mode +Command=FEFE5AE0.06.0202.FD +ReplyLength=14 +Validate=FEFE5AE0060202FD.FEFEE05AFBFD + +[pmFM] +;Set the FM mode +Command=FEFE5AE0.06.0502.FD +ReplyLength=14 +Validate=FEFE5AE0060502FD.FEFEE05AFBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- + +[STATUS1] +;Read the operating frequency +Command=FEFE5AE0.03.FD +ReplyLength=17 +Validate=FEFE5AE003FD.FEFEE05A.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE5AE0.04.FD +ReplyLength=14 +Validate=FEFE5AE004FD.FEFEE05A.05.0000.FD +Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.03.0000|pmCW_U +Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.05.0000|pmFM +Flag7=000000000000.0000000000.07.0000|pmCW_L +Flag8=000000000000.0000000000.08.0000|pmDIG_L + +[STATUS3] +;Read the CW pitch +;Not supported + +[STATUS4] +;Read the transmit or receive mode +;Not supported + + + + diff --git a/CATCheck/Rigs/IC-R75.ini b/CATCheck/Rigs/IC-R75.ini new file mode 100644 index 0000000..84aef74 --- /dev/null +++ b/CATCheck/Rigs/IC-R75.ini @@ -0,0 +1,194 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-R75 command set, version 8 Jul 2006 +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756 +; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500 +; -Fifth modification by John, W0JFR: Conversion of the set for use with an IC-R75 +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;stop scan +Command=FEFE5AE0.0E.00.FD +ReplyLength=13 +Validate=FEFE5AE00E00FD.FEFEE05AFBFD + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE5AE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE5AE0050000000000FD.FEFEE05AFBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +;Not supported + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +;Not supported + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +;Not supported on R75, so this is a dummy command expected to fail +Command=FEFE5AE0.0F00.FD +ReplyLength=13 +Validate=FEFE5AE00F00FD.FEFEE05AFAFD + +[pmVfoA] +;Set receiver to VFO A frequency +;Not supported + +[pmVfoB] +;Set receiver to VFO B frequency +;Not supported + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +;Not supported + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +;Not supported + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +;Not supported + +[pmTx] +;Enable the transmit mode +;Not supported + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode +Command=FEFE5AE0.06.0301.FD +ReplyLength=14 +Validate=FEFE5AE0060301FD.FEFEE05AFBFD + +[pmCW_L] +;Set the CW-R mode +;Not supported + +[pmSSB_U] +;Set the USB mode +Command=FEFE5AE0.06.0101.FD +ReplyLength=14 +Validate=FEFE5AE0060101FD.FEFEE05AFBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE5AE0.06.0001.FD +ReplyLength=14 +Validate=FEFE5AE0060001FD.FEFEE05AFBFD + +[pmDIG_U] +;Set the Digital RTTY mode (microphone muted) +;Not supported + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +;Not supported + +[pmAM] +;Set the AM mode +Command=FEFE5AE0.06.0202.FD +ReplyLength=14 +Validate=FEFE5AE0060202FD.FEFEE05AFBFD + +[pmFM] +;Set the FM mode +Command=FEFE5AE0.06.0502.FD +ReplyLength=14 +Validate=FEFE5AE0060502FD.FEFEE05AFBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- + +[STATUS1] +;Read the operating frequency +Command=FEFE5AE0.03.FD +ReplyLength=17 +Validate=FEFE5AE003FD.FEFEE05A.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE5AE0.04.FD +ReplyLength=14 +Validate=FEFE5AE004FD.FEFEE05A.05.0000.FD +Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.03.0000|pmCW_U +;Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.05.0000|pmFM +;Flag7=000000000000.0000000000.07.0000|pmCW_L +;Flag8=000000000000.0000000000.08.0000|pmDIG_L + +[STATUS3] +;Read the CW pitch +;Not supported + +[STATUS4] +;Read the transmit or receive mode +;Not supported + + + + diff --git a/CATCheck/Rigs/IC-R8500.ini b/CATCheck/Rigs/IC-R8500.ini new file mode 100644 index 0000000..60115dd --- /dev/null +++ b/CATCheck/Rigs/IC-R8500.ini @@ -0,0 +1,193 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-R8500 command set, version 19 JUN 06 +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756 +; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500 +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;stop scan +Command=FEFE4AE0.0E.00.FD +ReplyLength=13 +Validate=FEFE4AE00E00FD.FEFEE04AFBFD + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE4AE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE4AE0050000000000FD.FEFEE04AFBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +;Not supported + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +;Not supported + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +;Not supported on R8500, so this is a dummy command expected to fail +Command=FEFE4AE0.0F00.FD +ReplyLength=13 +Validate=FEFE4AE00F00FD.FEFEE04AFAFD + +[pmVfoA] +;Set receiver to VFO A frequency +;Not supported + +[pmVfoB] +;Set receiver to VFO B frequency +;Not supported + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +;Not supported + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +;Not supported + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +;Not supported + +[pmTx] +;Enable the transmit mode +;Not supported + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode +Command=FEFE4AE0.06.0301.FD +ReplyLength=14 +Validate=FEFE4AE0060301FD.FEFEE04AFBFD + +[pmCW_L] +;Set the CW-R mode +;Not supported + +[pmSSB_U] +;Set the USB mode +Command=FEFE4AE0.06.0101.FD +ReplyLength=14 +Validate=FEFE4AE0060101FD.FEFEE04AFBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE4AE0.06.0001.FD +ReplyLength=14 +Validate=FEFE4AE0060001FD.FEFEE04AFBFD + +[pmDIG_U] +;Set the Digital RTTY mode (microphone muted) +;Not supported + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +;Not supported + +[pmAM] +;Set the AM mode +Command=FEFE4AE0.06.0202.FD +ReplyLength=14 +Validate=FEFE4AE0060202FD.FEFEE04AFBFD + +[pmFM] +;Set the FM mode +Command=FEFE4AE0.06.0502.FD +ReplyLength=14 +Validate=FEFE4AE0060502FD.FEFEE04AFBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- + +[STATUS1] +;Read the operating frequency +Command=FEFE4AE0.03.FD +ReplyLength=17 +Validate=FEFE4AE003FD.FEFEE04A.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE4AE0.04.FD +ReplyLength=14 +Validate=FEFE4AE004FD.FEFEE04A.04.0000.FD +Flag1=000000000000.0000000000.0F.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.03.0000|pmCW_U +;Flag5=000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.05.0000|pmFM +;Flag7=000000000000.0000000000.07.0000|pmCW_L +;Flag8=000000000000.0000000000.08.0000|pmDIG_L + +[STATUS3] +;Read the CW pitch +;Not supported + +[STATUS4] +;Read the transmit or receive mode +;Not supported + + + + diff --git a/CATCheck/Rigs/IC-R9000.ini b/CATCheck/Rigs/IC-R9000.ini new file mode 100644 index 0000000..219b054 --- /dev/null +++ b/CATCheck/Rigs/IC-R9000.ini @@ -0,0 +1,194 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-R9000 command set, version 17 AUG 08 +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756 +; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500 +; -Fifth modification by Ernst, DK1VI: Conversion of the set for use with an IC-R9000 +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;stop scan +Command=FEFE2AE0.0E.00.FD +ReplyLength=13 +Validate=FEFE2AE00E00FD.FEFEE04AFBFD + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE2AE0.00.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE2AE0000000000000FD.FEFEE02AFBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +;Not supported + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +;Not supported + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +;Not supported + +[pmVfoA] +;Set receiver to VFO A frequency +;Not supported + +[pmVfoB] +;Set receiver to VFO B frequency +;Not supported + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +;Not supported + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +;Not supported + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +;Not supported + +[pmTx] +;Enable the transmit mode +;Not supported + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode wide +Command=FEFE2AE0.06.0301.FD +ReplyLength=14 +Validate=FEFE2AE0060301FD.FEFEE02AFBFD + +[pmCW_L] +;Set the CW-R mode +;Not supported + +[pmSSB_U] +;Set the USB mode +Command=FEFE2AE0.06.0101.FD +ReplyLength=14 +Validate=FEFE2AE0060101FD.FEFEE02AFBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE2AE0.06.0001.FD +ReplyLength=14 +Validate=FEFE2AE0060001FD.FEFEE02AFBFD + +[pmDIG_U] +;Set the Digital RTTY mode, middle bandwith +Command=FEFE2AE0.06.0402.FD +ReplyLength=14 +Validate=FEFE2AE0060402FD.FEFEE02AFBFD + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +;Not supported + +[pmAM] +;Set the AM mode +Command=FEFE2AE0.06.0202.FD +ReplyLength=14 +Validate=FEFE2AE0060202FD.FEFEE02AFBFD + +[pmFM] +;Set the FM mode +Command=FEFE2AE0.06.0502.FD +ReplyLength=14 +Validate=FEFE2AE0060502FD.FEFEE02AFBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- + +[STATUS1] +;Read the operating frequency +Command=FEFE2AE0.03.FD +ReplyLength=17 +Validate=FEFE2AE003FD.FEFEE02A.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE2AE0.04.FD +ReplyLength=14 +Validate=FEFE2AE004FD.FEFEE02A.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +;Flag7=000000000000.0000000000.07.0000|pmCW_L +;Flag8=000000000000.0000000000.08.0000|pmDIG_L + + +[STATUS3] +;Read the CW pitch +;Not supported + +[STATUS4] +;Read the transmit or receive mode +;Not supported + + + + diff --git a/CATCheck/Rigs/IC-R9500.ini b/CATCheck/Rigs/IC-R9500.ini new file mode 100644 index 0000000..c830da0 --- /dev/null +++ b/CATCheck/Rigs/IC-R9500.ini @@ -0,0 +1,201 @@ +;------------------------------------------------------------------------------------- +; ICOM IC-R9500 command set, version 12 SEP 16 +; +; -File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com, for an IC-756 Pro II +; -First modification by Brendan, EI6IZ, ei6iz@oceanfree.net, for an IC-756 Pro II +; -Second modification by John, K6JJ: Conversion of the set for use with an IC-756 Pro +; -Third modification by Ron, W5RKN: Conversion of the set for use with an IC-756 +; -Fourth modification by Ron, W5RKN: Conversion of the set for use with an IC-R8500 +; -Fifth modification by Ernst, DK1VI: Conversion of the set for use with an IC-R9000 +; -Sixth modification by Frank, PA589: Conversion of the set for use with an IC-R9500 +;------------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------------- + +[INIT] +;stop scan +Command=FEFE72E0.0E.00.FD +ReplyLength=13 +Validate=FEFE72E00E00FD.FEFEE072FBFD + +;------------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------------- + +[pmFreqA] +;Not supported + +[pmFreqB] +;Not supported + +[pmFreq] +;Set operating frequency +Command=FEFE72E0.00.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE72E0000000000000FD.FEFEE072FBFD + +[pmRitOffset] +;Not supported + +[pmRit0] +;Not supported + +[pmPitch] +;Set CW pitch +;Not supported + +;------------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------------- + +[pmSplitOn] +;Enable split operation, using VFO B (transmit frequency) and VFO A (receive frequency) +;Not supported + +[pmSplitOff] +;Disable split operation, transmit and receive frequencies set to VFO A frequency +;Not supported + +[pmVfoA] +;Set receiver to VFO A frequency +;Not supported + +[pmVfoB] +;Set receiver to VFO B frequency +;Not supported + +[pmVfoEqual] +;Set VFO B parameters (split transmit VFO) equal to VFO A parameters (receive VFO) +;Not supported + +[pmVfoSwap] +;Swap VFO B frequency (split transmit VFO) with VFO A frequency (receive VFO) +;Not supported + +[pmVfoAA] +;Not supported + +[pmVfoAB] +;Not supported + +[pmVfoBA] +;Not supported + +[pmVfoBB] +;Not supported + +[pmRitOn] +;Not supported + +[pmRitOff] +;Not supported + +[pmXitOn] +;Not supported + +[pmXitOff] +;Not supported + +[pmRx] +;Enable the receive mode +;Not supported + +[pmTx] +;Enable the transmit mode +;Not supported + +;------------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------------- + +[pmCW_U] +;Set the CW mode wide +Command=FEFE72E0.06.0301.FD +ReplyLength=14 +Validate=FEFE72E0060301FD.FEFEE072FBFD + +[pmCW_L] +;Set the CW-R mode +Command=FEFE72E0.06.0701.FD +ReplyLength=14 +Validate=FEFE72E0060701FD.FEFEE072FBFD + + +[pmSSB_U] +;Set the USB mode +Command=FEFE72E0.06.0101.FD +ReplyLength=14 +Validate=FEFE72E0060101FD.FEFEE072FBFD + +[pmSSB_L] +;Set the LSB mode +Command=FEFE72E0.06.0001.FD +ReplyLength=14 +Validate=FEFE72E0060001FD.FEFEE072FBFD + +[pmDIG_U] +;Set the Digital RTTY mode, middle bandwith +Command=FEFE72E0.06.0402.FD +ReplyLength=14 +Validate=FEFE72E0060402FD.FEFEE072FBFD + +[pmDIG_L] +;Set the Digital RTTY-R mode (microphone muted) +Command=FEFE72E0.06.0802.FD +ReplyLength=14 +Validate=FEFE72E0060802FD.FEFEE072FBFD + + +[pmAM] +;Set the AM mode +Command=FEFE72E0.06.0202.FD +ReplyLength=14 +Validate=FEFE72E0060202FD.FEFEE072FBFD + +[pmFM] +;Set the FM mode +Command=FEFE72E0.06.0502.FD +ReplyLength=14 +Validate=FEFE72E0060502FD.FEFEE072FBFD + +;------------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------------- + +[STATUS1] +;Read the operating frequency +Command=FEFE72E0.03.FD +ReplyLength=17 +Validate=FEFE72E003FD.FEFEE072.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +;Read the operating mode +Command=FEFE72E0.04.FD +ReplyLength=14 +Validate=FEFE72E004FD.FEFEE072.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.06.0000|pmCW_L +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmDIG_L + + +[STATUS3] +;Read the CW pitch +;Not supported + +[STATUS4] +;Read the transmit or receive mode +;Not supported + + + + diff --git a/CATCheck/Rigs/ID-5100A.ini b/CATCheck/Rigs/ID-5100A.ini new file mode 100644 index 0000000..55c66c8 --- /dev/null +++ b/CATCheck/Rigs/ID-5100A.ini @@ -0,0 +1,170 @@ +;------------------------------------------------------------------------------- +; Icom ID-5100A command set +; +; Created by Michael Wheatley, KM6LHD, KM6LHD@gmail.com +; Tested by: _________ +; +; Feel free to correct and expand, but please email Michael Wheatley +; KM6LhD@gmail.com with changes. Thanks +; +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- + +;none + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- + +[pmFreq] +Command=FEFE8CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE8CE0050000000000FD.FEFEE08CFBFD + +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmPitch] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- + +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=FEFE8CE0.07D0.FD +ReplyLength=13 +Validate=FEFE8CE007D0FD.FEFEE08CFBFD + +[pmVfoB] +Command=FEFE8CE0.07D1.FD +ReplyLength=13 +Validate=FEFE8CE007D1FD.FEFEE08CFBFD + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE8CE0.1C00.00FD +ReplyLength=14 +Validate=FEFE8CE01C0000FD.FEFEE08CFBFD + +[pmTx] +Command=FEFE8CE0.1C00.01FD +ReplyLength=14 +Validate=FEFE8CE01C0001FD.FEFEE08CFBFD + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- + +[pmCW_U] +;not supported + +[pmCW_L] +;not supported + +[pmSSB_U] +;not supported + +[pmSSB_L] +;not supported + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +;not supported + +[pmFM] +Command=FEFE8CE0.06.05.FD +ReplyLength=13 +Validate=FEFE8CE00605FD.FEFEE08CFBFD + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- + +[STATUS1] +Command=FEFE8CE0.03.FD +ReplyLength=17 +Validate=FEFE8CE003FD.FEFEE08C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE8CE0.04.FD +ReplyLength=14 +Validate=FEFE8CE004FD.FEFEE08C.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE8CE0.1C00.FD +ReplyLength=15 +Validate=FEFE8CE01C00FD.FEFEE08C.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx + +;-------------------------------------------------------------------------------- +; Allow SDR Rx mute using SDR Console V3 when rig transmits +;-------------------------------------------------------------------------------- + +[STATUS6] +Command=(TX;) +ReplyEnd=(;) +Validate=(TX.;) +Flag1=(..0.)|pmRX +Flag2=(..1.)|pmTX +Flag3=(..2.)|pmTX diff --git a/CATCheck/Rigs/JST-245.ini b/CATCheck/Rigs/JST-245.ini new file mode 100644 index 0000000..dc548bb --- /dev/null +++ b/CATCheck/Rigs/JST-245.ini @@ -0,0 +1,97 @@ +;------------------------------------------------------------------------------- +; Japan Radio JST-245 command set +; +; File created by Stan Huntting, KW7KW, dxatlas@huntting.com +;------------------------------------------------------------------------------- +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none required + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +; I1F........AI0 +Command=48.31.0D.46.00.00.00.00.00.00.00.00.41.0D.48.30.0D.4F.0D +ReplyEnd=0D +Value=5|8|vfText|1|0 + +[pmFreqB] +; I1F........BI0 +Command=48.31.0D.46.00.00.00.00.00.00.00.00.42.0D.48.30.0D.4F.0D +ReplyEnd=0D +Value=5|8|vfText|1|0 + +;------------------------------------------------------------------------------- +; set vfo + +;------------------------------------------------------------------------------- +[pmVfoAA] +; I1FAI0 +Command=48.31.0D.46.41.0D.48.30.0D.4F.0D +ReplyEnd=0D + +[pmVfoBB] +; I1FBI0 +Command=48.31.0D.46.42.0D.48.30.0D.4F.0D +ReplyEnd=0D + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmDIG_L] +; I1D0I0 +Command=48.31.0D.44.30.0D.48.30.0D.4F.0D +ReplyEnd=0D + +[pmCW_U] +; I1D1I0 +Command=48.31.0D.44.31.0D.48.30.0D.4F.0D +ReplyEnd=0D + +[pmSSB_U] +; I1D2I0 +Command=48.31.0D.44.32.0D.48.30.0D.4F.0D +ReplyEnd=0D + +[pmSSB_L] +; I1D3I0 +Command=48.31.0D.44.33.0D.48.30.0D.4F.0D +ReplyEnd=0D + +[pmAM] +; I1D4I0 +Command=48.31.0D.44.34.0D.48.30.0D.4F.0D +ReplyEnd=0D + +[pmFM] +; I1D5I0 +Command=48.31.0D.44.35.0D.48.30.0D.4F.0D +ReplyEnd=0D + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +; L +Command=4C.0D +ReplyEnd=0D +; Lvabdffffffffg +Validate=4C000000000000000000000000000D +Value1=5|8|vfText|1|0|pmFreq +Flag1=(.A.............)|pmVfoAA +Flag2=(.B.............)|pmVfoBB +Flag3=(....0..........)|pmDIG_L +Flag4=(....1..........)|pmCW_U +Flag5=(....2..........)|pmSSB_U +Flag6=(....3..........)|pmSSB_L +Flag7=(....4..........)|pmAM +Flag8=(....5..........)|pmFM diff --git a/CATCheck/Rigs/Kenwood.ini b/CATCheck/Rigs/Kenwood.ini new file mode 100644 index 0000000..6733a87 --- /dev/null +++ b/CATCheck/Rigs/Kenwood.ini @@ -0,0 +1,211 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-570 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(PT..;) +Value=2|2|vfText|0.02|-8 +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB + +[STATUS4] +Command=(PT;) +ReplyEnd=(;) +Validate=(PT..;) +Value1=2|2|vfText|50|400|pmPitch + diff --git a/CATCheck/Rigs/NRD-535DG.ini b/CATCheck/Rigs/NRD-535DG.ini new file mode 100644 index 0000000..7292077 --- /dev/null +++ b/CATCheck/Rigs/NRD-535DG.ini @@ -0,0 +1,107 @@ +;------------------------------------------------------------------------------- +; Japan Radio NRD-535DG command set +; +; File created by Eckhard Roth / 26.01.08 +;------------------------------------------------------------------------------- +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;H1 +Command=48310D +ReplyLength=0 + +[INIT2] +;I1 +Command=49310D +ReplyEnd=0D + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +; E........ +Command=46.00.00.00.00.00.00.00.00.0D +Value=1|8|vfText|1|0 +ReplyEnd=0D + +[pmFreqA] +; E........ +Command=46.00.00.00.00.00.00.00.00.0D +Value=1|8|vfText|1|0 +ReplyEnd=0D + +[pmFreqB] +; E........ +Command=46.00.00.00.00.00.00.00.00.0D +Value=1|8|vfText|1|0 +ReplyEnd=0D + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- + +[pmDIG_U] +; D0 +Command=44.30.0D +ReplyEnd=0D + +[pmCW_U] +; D1 +Command=44.31.0D +ReplyEnd=0D + +[pmSSB_U] +; D2 +Command=44.32.0D +ReplyEnd=0D + +[pmSSB_L] +; D3 +Command=44.33.0D +ReplyEnd=0D + +[pmAM] +; D4 +Command=44.34.0D +ReplyEnd=0D + +[pmFM] +; D5 +Command=44.35.0D +ReplyEnd=0D + +[pmDIG_L] +; D0 +Command=44.36.0D +ReplyEnd=0D + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +; I1 +Command=49.31.0D +ReplyLength=14 +Validate=49.00.00.00.00.00.00.00.00.00.00.00.00.0D + +Value1=4|8|vfText|1|0|pmFreq +Value2=4|8|vfText|1|0|pmFreqA +Value3=4|8|vfText|1|0|pmFreqB + + +Flag1=(...0..........)|pmDIG_U +Flag2=(...1..........)|pmCW_U +Flag3=(...2..........)|pmSSB_U +Flag4=(...3..........)|pmSSB_L +Flag5=(...4..........)|pmAM +Flag6=(...5..........)|pmFM +Flag7=(...6..........)|pmDIG_L + diff --git a/CATCheck/Rigs/Perseus.ini b/CATCheck/Rigs/Perseus.ini new file mode 100644 index 0000000..824c019 --- /dev/null +++ b/CATCheck/Rigs/Perseus.ini @@ -0,0 +1,91 @@ +;------------------------------------------------------------------------------- +; Perseus SDR command set +; +; File created by Eckhard Roth, eckrot@yahoo.de +; 25/03/03 +; V2 adapted to changed CIV-Protocol of PERSEUS +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +Command=FEFE04E0.05.00000000.FD +Value=5|4|vfBcdLU|1|0 +ReplyLength=16 +Validate=FEFE04E0.05.00000000.FD.FEFEE004FBFD + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE04E0.06.03.FD +ReplyLength=13 +Validate=FEFE04E0.06.03.FD.FEFEE004FBFD + +[pmCW_L] +Command=FEFE04E0.06.03.FD +ReplyLength=13 +Validate=FEFE04E0.06.03.FD.FEFEE004FBFD + + +[pmSSB_U] +Command=FEFE04E0.06.01.FD +ReplyLength=13 +Validate=FEFE04E0.06.01.FD.FEFEE004FBFD + +[pmSSB_L] +Command=FEFE04E0.06.00.FD +ReplyLength=13 +Validate=FEFE04E0.06.00.FD.FEFEE004FBFD + +[pmDIG_U] +Command=FEFE04E0.06.04.FD +ReplyLength=13 +Validate=FEFE04E0.06.04.FD.FEFEE004FBFD + + +[pmDIG_L] +Command=FEFE04E0.06.04.FD +ReplyLength=13 +Validate=FEFE04E0.06.04.FD.FEFEE004FBFD + +[pmAM] +Command=FEFE04E0.06.06.FD +ReplyLength=13 +Validate=FEFE04E0.06.06.FD.FEFEE004FBFD + +[pmFM] +Command=FEFE04E0.06.05.FD +ReplyLength=13 +Validate=FEFE04E0.06.05.FD.FEFEE004FBFD + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE04E0.03.FD +ReplyLength=17 +Validate=FEFE04E003FD.FEFEE004.03.0000000000.FD + +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE04E0.04.FD +ReplyLength=14 +Validate=FEFE04E0.04.FD.FEFEE004.04.0000.FD + +Flag1=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0300.00|pmCW_U +Flag2=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0300.00|pmCW_L +Flag3=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0100.00|pmSSB_U +Flag4=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0000.00|pmSSB_L +Flag5=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0400.00|pmDIG_U +Flag6=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0400.00|pmDIG_L +Flag7=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0200.00|pmAM +Flag8=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0500.00|pmFM +Flag9=00000000.00.00.00000000.00.FF00.00|00000000.00.00.00000000.00.0600.00|pmAM + diff --git a/CATCheck/Rigs/PowerRX2.ini b/CATCheck/Rigs/PowerRX2.ini new file mode 100644 index 0000000..ca95c78 --- /dev/null +++ b/CATCheck/Rigs/PowerRX2.ini @@ -0,0 +1,216 @@ +;------------------------------------------------------------------------------- +; PowerRX2 command set +; +; modified 8Jun08 by W2RF from +; +; Kenwood TS-570 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(PT..;) +Value=2|2|vfText|0.02|-8 +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(ZZSP1;) +ReplyLength=0 + +[pmSplitOff] +Command=(ZZSP0;) +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(ZZSP0;) +ReplyLength=0 + +[pmVfoAB] +Command=(ZZSP1;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqB + +[STATUS4] +Command=(PT;) +ReplyEnd=(;) +Validate=(PT..;) +Value1=2|2|vfText|50|400|pmPitch + diff --git a/CATCheck/Rigs/PowerSDR.ini b/CATCheck/Rigs/PowerSDR.ini new file mode 100644 index 0000000..a4e790f --- /dev/null +++ b/CATCheck/Rigs/PowerSDR.ini @@ -0,0 +1,216 @@ +;------------------------------------------------------------------------------- +; PowerSDR command set +; +; modified 26Apr08 by W2RF from +; +; Kenwood TS-570 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(PT..;) +Value=2|2|vfText|0.02|-8 +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(ZZSP1;) +ReplyLength=0 + +[pmSplitOff] +Command=(ZZSP0;) +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(ZZSP0;) +ReplyLength=0 + +[pmVfoAB] +Command=(ZZSP1;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB + +[STATUS4] +Command=(PT;) +ReplyEnd=(;) +Validate=(PT..;) +Value1=2|2|vfText|50|400|pmPitch + diff --git a/CATCheck/Rigs/SmartSDR.ini b/CATCheck/Rigs/SmartSDR.ini new file mode 100644 index 0000000..7168e5c --- /dev/null +++ b/CATCheck/Rigs/SmartSDR.ini @@ -0,0 +1,210 @@ +;------------------------------------------------------------------------------- +; SmartSDR command set for OmniRig +; +; File created by Tim Ellison, W4TME (tim@flexradio.com) +; modified 11-Jan-16 by W4TME +; File Version 1.2 (for use with SmartSDR CAT 1.6 and greater) +; +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn off AI +Command=(ZZAI0;) +ReplyLength=0 + +[INIT2] +;Enable DAX as audio input source +;Command=(ZZDX1;) +;ReplyLength=0 + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(ZZFA...........;) +Value=4|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(ZZFB...........;) +Value=4|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;operating frequency +;not supported + +[pmRitOffset] +;rit offset frequency +;not supported + +[pmRit0] +;clear RIT slice A +Command=(ZZRC;) +ReplyLength=0 + +[pmPitch] +;CW pitch frequency +Command=(PT...;) +Value=2|3|vfText|1|0 +ReplyLength=0 + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;split on +Command=(ZZSW1;) +ReplyLength=0 + +[pmSplitOff] +;split off +Command=(ZZSW0;) +ReplyLength=0 + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(ZZSW0;) +ReplyLength=0 + +[pmVfoAB] +Command=(ZZSW1;) +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + + +[pmRitOn] +Command=(ZZRT1;) +ReplyLength=0 + +[pmRitOff] +Command=(ZZRT0;) +ReplyLength=0 + +[pmXitOn] +Command=(ZZXS1;) +ReplyLength=0 + +[pmXitOff] +Command=(ZZXS0;) +ReplyLength=0 + +[pmRx] +Command=(ZZTX0;) +ReplyLength=0 + +[pmTx] +Command=(ZZTX1;) +ReplyLength=0 + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(ZZMD04;) +ReplyLength=0 + +[pmCW_L] +Command=(ZZMD03;) +ReplyLength=0 + +[pmSSB_U] +Command=(ZZMD01;) +ReplyLength=0 + +[pmSSB_L] +Command=(ZZMD00;) +ReplyLength=0 + +[pmDIG_U] +Command=(ZZMD07;) +ReplyLength=0 + +[pmDIG_L] +Command=(ZZMD09;) +ReplyLength=0 + +[pmAM] +Command=(ZZMD06;) +ReplyLength=0 + +[pmFM] +Command=(ZZMD05;) +ReplyLength=0 + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(ZZIF;) +ReplyEnd=(;) +Validate=(ZZIF....................................;) +Value1=20|5|vfText|1|0|pmRitOffset +Value2=4|11|vfText|1|0|pmFreq +Flag1 =(.........................0...............)|pmRitOff +Flag2 =(.........................1...............)|pmRitOn +Flag3 =(..........................0..............)|pmXitOff +Flag4 =(..........................1..............)|pmXitOn +Flag5 =(..............................0..........)|pmRx +Flag6 =(..............................1..........)|pmTx +Flag7 =(...............................00........)|pmSSB_L +Flag8 =(...............................01........)|pmSSB_U +Flag9 =(...............................04........)|pmCW_U +Flag10=(...............................05........)|pmFM +Flag11=(...............................06........)|pmAM +Flag12=(...............................09........)|pmDIG_L +Flag13=(...............................03........)|pmCW_L +Flag14=(...............................07........)|pmDIG_U +Flag15=(.................................0.0.....)|pmVfoAA +Flag16=(.................................1.1.....)|pmVfoAB +Flag17=(...................................1.....)|pmSplitOn +Flag18=(...................................0.....)|pmSplitOff + + +[STATUS2] +Command=(ZZFA;) +ReplyEnd=(;) +Validate=(ZZFA...........;) +Value1=4|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(ZZFB;) +ReplyEnd=(;) +Validate=(ZZFB...........;) +Value1=4|11|vfText|1|0|pmFreqB + +[STATUS4] +Command=(PT;) +ReplyEnd=(;) +Validate=(PT...;) +Value1=2|3|vfText|1|0|pmPitch + diff --git a/CATCheck/Rigs/TH-F6A.ini b/CATCheck/Rigs/TH-F6A.ini new file mode 100644 index 0000000..ca5c70c --- /dev/null +++ b/CATCheck/Rigs/TH-F6A.ini @@ -0,0 +1,207 @@ +;------------------------------------------------------------------------------- +; Kenwood TH-F6A command set +; +; File created by N6TV +; +; Requires Kenwood PG-4Y Interface Cable +; Use the following settings for the radio's COM port: +; 9600,8,N,1 +; RTS: Handshake +; DTR: High +; Reference: http://www.radiomanual.info/schemi/Kenwood_TH-F6_TH-F7_protocol.pdf +; +; Note: For use with Faros (http://dxatlas.com/faros): +; Build a special cable for the speaker output +; (see http://www.radioctl.com/english/THF6F7Cable.html) +; Set Faros CW pitch to 1000 Hz +; Comment out both the [pmVfoA] and [pmVfoB] sections to prevent Faros +; from switching the receiver to VFO A (which is VHF only) +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +; Send a CR to initialize +Command=0D +ReplyEnd=0D + +[INIT2] +; Set band control to VFO A +; BC 0 +Command=424320300D +ReplyEnd=0D + +[INIT3] +; Select VFO mode on VFO A instead of MR mode (enables direct freq entry) +; VMC 0,0 +Command=564D4320302C300D +ReplyEnd=0D + +[INIT4] +; Set band control to VFO B +; BC 1 +Command=424320310D +ReplyEnd=0D + +[INIT5] +; Select VFO mode on VFO B instead of MR mode (enables direct freq entry) +; VMC 1,0 +Command=564D4320312C300D +ReplyEnd=0D + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +; FQ ...........,0 +Command=465120.0000000000000000000000.2C300D +Value=3|11|vfText|1|0 +ReplyEnd=0D + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +; BC 0 +Command=424320300D +ReplyEnd=0D + +[pmVfoB] +; BC 1 +Command=424320310D +ReplyEnd=0D + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +; RX +Command=52580D +ReplyEnd=0D + +[pmTx] +; TX +Command=54580D +ReplyEnd=0D + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; MD 5 +Command=4D4420350D +ReplyEnd=0D + +[pmCW_L] +; MD 5 +Command=4D4420350D +ReplyEnd=0D + +[pmSSB_U] +; MD 4 +Command=4D4420340D +ReplyEnd=0D + +[pmSSB_L] +; MD 3 +Command=4D4420330D +ReplyEnd=0D + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +; MD 2 +Command=4D4420320D +ReplyEnd=0D + +[pmFM] +; MD 0 +Command=4D4420000D +ReplyEnd=0D + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +; MD +Command=4D440D +ReplyEnd=0D +Validate=4D4420.00.0D + Flag1=000000.FF.00|000000.30.00|pmFM + Flag2=000000.FF.00|000000.31.00|pmFM + Flag3=000000.FF.00|000000.32.00|pmAM + Flag4=000000.FF.00|000000.33.00|pmSSB_L + Flag5=000000.FF.00|000000.34.00|pmSSB_U + Flag6=000000.FF.00|000000.35.00|pmCW_L + +[STATUS2] +; BC +Command=42430D +ReplyEnd=0D +Validate=424320.00.0D + Flag1=000000.FF.00|000000.30.00|pmVfoA + Flag2=000000.FF.00|000000.31.00|pmVfoB + +[STATUS3] +; FQ +Command=46510D +ReplyEnd=0D +Validate=465120.0000000000000000000000.2C000D +Value=3|11|vfText|1|0|pmFreq diff --git a/CATCheck/Rigs/TH-F7E.ini b/CATCheck/Rigs/TH-F7E.ini new file mode 100644 index 0000000..969d59b --- /dev/null +++ b/CATCheck/Rigs/TH-F7E.ini @@ -0,0 +1,207 @@ +;------------------------------------------------------------------------------- +; Kenwood TH-F7E command set +; +; File created by N6TV +; +; Requires Kenwood PG-4Y Interface Cable +; Use the following settings for the radio's COM port: +; 9600,8,N,1 +; RTS: Handshake +; DTR: High +; Reference: http://www.radiomanual.info/schemi/Kenwood_TH-F6_TH-F7_protocol.pdf +; +; Note: For use with Faros (http://dxatlas.com/faros): +; Build a special cable for the speaker output +; (see http://www.radioctl.com/english/THF6F7Cable.html) +; Set Faros CW pitch to 1000 Hz +; Comment out both the [pmVfoA] and [pmVfoB] sections to prevent Faros +; from switching the receiver to VFO A (which is VHF only) +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +; Send a CR to initialize +Command=0D +ReplyEnd=0D + +[INIT2] +; Set band control to VFO A +; BC 0 +Command=424320300D +ReplyEnd=0D + +[INIT3] +; Select VFO mode on VFO A instead of MR mode (enables direct freq entry) +; VMC 0,0 +Command=564D4320302C300D +ReplyEnd=0D + +[INIT4] +; Set band control to VFO B +; BC 1 +Command=424320310D +ReplyEnd=0D + +[INIT5] +; Select VFO mode on VFO B instead of MR mode (enables direct freq entry) +; VMC 1,0 +Command=564D4320312C300D +ReplyEnd=0D + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +; FQ ...........,0 +Command=465120.0000000000000000000000.2C300D +Value=3|11|vfText|1|0 +ReplyEnd=0D + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +; BC 0 +Command=424320300D +ReplyEnd=0D + +[pmVfoB] +; BC 1 +Command=424320310D +ReplyEnd=0D + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +; RX +Command=52580D +ReplyEnd=0D + +[pmTx] +; TX +Command=54580D +ReplyEnd=0D + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; MD 5 +Command=4D4420350D +ReplyEnd=0D + +[pmCW_L] +; MD 5 +Command=4D4420350D +ReplyEnd=0D + +[pmSSB_U] +; MD 4 +Command=4D4420340D +ReplyEnd=0D + +[pmSSB_L] +; MD 3 +Command=4D4420330D +ReplyEnd=0D + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +; MD 2 +Command=4D4420320D +ReplyEnd=0D + +[pmFM] +; MD 0 +Command=4D4420000D +ReplyEnd=0D + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +; MD +Command=4D440D +ReplyEnd=0D +Validate=4D4420.00.0D + Flag1=000000.FF.00|000000.30.00|pmFM + Flag2=000000.FF.00|000000.31.00|pmFM + Flag3=000000.FF.00|000000.32.00|pmAM + Flag4=000000.FF.00|000000.33.00|pmSSB_L + Flag5=000000.FF.00|000000.34.00|pmSSB_U + Flag6=000000.FF.00|000000.35.00|pmCW_L + +[STATUS2] +; BC +Command=42430D +ReplyEnd=0D +Validate=424320.00.0D + Flag1=000000.FF.00|000000.30.00|pmVfoA + Flag2=000000.FF.00|000000.31.00|pmVfoB + +[STATUS3] +; FQ +Command=46510D +ReplyEnd=0D +Validate=465120.0000000000000000000000.2C000D +Value=3|11|vfText|1|0|pmFreq diff --git a/CATCheck/Rigs/TS-2000.ini b/CATCheck/Rigs/TS-2000.ini new file mode 100644 index 0000000..758377c --- /dev/null +++ b/CATCheck/Rigs/TS-2000.ini @@ -0,0 +1,202 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-2000 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=17|6|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/TS-440.ini b/CATCheck/Rigs/TS-440.ini new file mode 100644 index 0000000..0e0e9ca --- /dev/null +++ b/CATCheck/Rigs/TS-440.ini @@ -0,0 +1,195 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-440 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(SP1;) +ReplyLength=0 + +[pmSplitOff] +Command=(SP0;) +ReplyLength=0 + +[pmVfoA] +Command=(FN0;) +ReplyLength=0 + +[pmVfoB] +Command=(FN1;) +ReplyLength=0 + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FN0;SP0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FN0;SP1;) + +[pmVfoBA] +Command=(FN1;SP1;) + +[pmVfoBB] +Command=(FN1;SP0;) + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff +;Flag15=(..............................0.......)|pmVfoA +;Flag16=(..............................1.......)|pmVfoB + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/TS-480.ini b/CATCheck/Rigs/TS-480.ini new file mode 100644 index 0000000..5ef34fa --- /dev/null +++ b/CATCheck/Rigs/TS-480.ini @@ -0,0 +1,202 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-480 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +; Modified by "Denis" +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=17|6|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/TS-590.ini b/CATCheck/Rigs/TS-590.ini new file mode 100644 index 0000000..fbde2e8 --- /dev/null +++ b/CATCheck/Rigs/TS-590.ini @@ -0,0 +1,207 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-590 command set +; +; File created by UA3YPL +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +;not supported + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR1;) +ReplyLength=0 + +[pmVfoEqual] +Command=(VV;) +ReplyLength=0 + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +;Command=(TX0;) +;c TX0; âêëþ÷èòñÿ ìèêðîôîí âî âñåõ ðåæèìàõ. Åñëè ýòî íàäî, çàêîììåíòèðóéòå ñòðîêó ñ TX1; è ðàñêîììåíòèðóéòå ñòðîêó ñ TX0; +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/TS-690.ini b/CATCheck/Rigs/TS-690.ini new file mode 100644 index 0000000..2d8335f --- /dev/null +++ b/CATCheck/Rigs/TS-690.ini @@ -0,0 +1,193 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-690 command set +; +; File created by Mike Carper, WA9PIE mike@wa9pie.net +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(PT..;) +Value=2|2|vfText|1|0 +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=(FT1;) + +[pmSplitOff] +Command=(FT0;) + +[pmVfoA] +Command=(FR0;) + +[pmVfoB] +Command=(FR1;) + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;FT0;) + +[pmVfoAB] +Command=(FR0;FT1;) + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;FT1;) + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff +;Flag15=(..............................0.......)|pmVfoA +;Flag16=(..............................1.......)|pmVfoB + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/TS-870.ini b/CATCheck/Rigs/TS-870.ini new file mode 100644 index 0000000..acccd5a --- /dev/null +++ b/CATCheck/Rigs/TS-870.ini @@ -0,0 +1,204 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-870 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(IS ....;) +;Command=(MD3;IS ....;) +Value=3|4|vfText|1|0 +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +;Flag21=(................................1.....)|pmSplitOn +;Flag21=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB + +[STATUS4] +Command=(IS;) +ReplyEnd=(;) +Validate=(IS.....;) +Value1=3|4|vfText|1|0|pmPitch diff --git a/CATCheck/Rigs/TS-930.ini b/CATCheck/Rigs/TS-930.ini new file mode 100644 index 0000000..da1010f --- /dev/null +++ b/CATCheck/Rigs/TS-930.ini @@ -0,0 +1,204 @@ +;------------------------------------------------------------------------------- +; Kenwood TS-570 command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + +;Command= +;ReplyLength= +;ReplyEnd= +;Value=||||[|] +;Flag=[|]| + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmPitch] +Command=(PT..;) +Value=2|2|vfText|0.02|-8 +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX;) +ReplyLength=0 + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/TenTec Eagle.ini b/CATCheck/Rigs/TenTec Eagle.ini new file mode 100644 index 0000000..e1a213f --- /dev/null +++ b/CATCheck/Rigs/TenTec Eagle.ini @@ -0,0 +1,180 @@ +;------------------------------------------------------------------------------- +; TenTec Eagle compatible command set +; +; File created by John, KI4JPL jhenry@tentec.com +; Tested by Rick, Rick@dj0ip.de. +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none required + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=2A4146.303030.303030.303030.0D +Value=3|9|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=2A4246.303030.303030.303030.0D +Value=3|9|vfText|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=2A4B56.414141.0D +ReplyLength=0 + +[pmVfoAB] +Command=2A4B56.414142.0D +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=2A54550D +ReplyLength=0 + +[pmTx] +Command=2A544B0D +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +;not supported + +[pmCW_L] +Command=2A524D4D330D +ReplyLength=0 + +[pmSSB_U] +Command=2A524D4D300D +ReplyLength=0 + +[pmSSB_L] +Command=2A524D4D310D +ReplyLength=0 + +[pmDIG_U] +Command=2A524D4D300D +ReplyLength=0 + +[pmDIG_L] +Command=2A524D4D310D +ReplyLength=0 + +[pmAM] +Command=2A524D4D340D +ReplyLength=0 + +[pmFM] +Command=2A524D4D350D +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=3F41460D +ReplyEnd=0D +Validate=404146.0000000000000000.0D +Value1=3|8|vfText|1|0|pmFreqA + +[STATUS2] +Command=3F42460D +ReplyEnd=0D +Validate=404246.0000000000000000.0D +Value1=3|8|vfText|1|0|pmFreqB + +[STATUS3] +;mode +Command=3F524D4D0D +ReplyLength=6 +Validate=40524D4D000D +Flag1=00000000FF00|000000003300|pmCW_L +Flag2=00000000FF00|000000003000|pmSSB_U +Flag3=00000000FF00|000000003100|pmSSB_L +Flag4=00000000FF00|000000003000|pmDIG_U +Flag5=00000000FF00|000000003100|pmDIG_L +Flag6=00000000FF00|000000003400|pmAM +Flag7=00000000FF00|000000003500|pmFM + +[STATUS4] +;vfo +Command=3F4B560D +ReplyLength=7 +Validate=404B56.000000.0D +Flag1=000000.FF00FF.00|000000.410041.00|pmVfoAA +Flag2=000000.FF00FF.00|000000.410042.00|pmVfoAB +Flag3=000000.FF00FF.00|000000.410041.00|pmSplitOff +Flag4=000000.FF00FF.00|000000.410042.00|pmSplitOn diff --git a/CATCheck/Rigs/TenTec Jupiter.ini b/CATCheck/Rigs/TenTec Jupiter.ini new file mode 100644 index 0000000..428bd70 --- /dev/null +++ b/CATCheck/Rigs/TenTec Jupiter.ini @@ -0,0 +1,100 @@ +;------------------------------------------------------------------------------- +; TenTec Jupiter command set +; +; File created by Ron McCurdy, KE5QDA@cox.net +; 29.05.12 +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=2A.41.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +[pmFreqB] +Command=2A.42.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + + + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=2A.4D.33.33.0D +ReplyLength=0 + +[pmSSB_U] +Command=2A.4D.31.31.0D +ReplyLength=0 + +[pmSSB_L] +Command=2A.4D.32.32.0D +ReplyLength=0 + +[pmDIG_U] +;not used + +[pmAM] +Command=2A.4D.35.35.0D +ReplyLength=0 + +[pmFM] +Command=2A.4D.34.34.0D +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=3F.41.0D +ReplyLength=6 +Validate=41.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreqA + + +[STATUS2] +Command=3F.42.0D +ReplyLength=6 +Validate=42.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreqB + + +[STATUS3] +Command=3F.4D.0D +ReplyLength=4 +Validate=4D.0000.0D +Flag1=00.FF.0000|00.33.0000|pmCW_U +Flag2=00.FF.0000|00.31.0000|pmSSB_U +Flag3=00.FF.0000|00.32.0000|pmSSB_L +Flag4=00.FF.0000|00.38.0000|pmDIG_U +Flag5=00.FF.0000|00.35.0000|pmAM +Flag6=00.FF.0000|00.34.0000|pmFM + + + + + diff --git a/CATCheck/Rigs/TenTec Omni VII.ini b/CATCheck/Rigs/TenTec Omni VII.ini new file mode 100644 index 0000000..43089fc --- /dev/null +++ b/CATCheck/Rigs/TenTec Omni VII.ini @@ -0,0 +1,191 @@ +;------------------------------------------------------------------------------- +; TenTec OMNI VII command set +; +; File created by Ernie, N1SW n1sw@cox.net +; Tested by Ernie, N1SW +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none required + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +Command=2A41.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +[pmFreqA] +Command=2A41.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +[pmFreqB] +Command=2A42.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +;[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=2A4E010D +ReplyLength=0 + +[pmSplitOff] +Command=2A4E000D +ReplyLength=0 + +[pmVfoA] +; fake with split off +;Command=2A4E000D +;ReplyLength=0 + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +; fake with split off +Command=2A4E000D +ReplyLength=0 + +[pmVfoAB] +; fake with split on +Command=2A4E010D +ReplyLength=0 + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +;not supported + +[pmTx] +;not supported + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=2A4D33330D +ReplyLength=0 + +[pmCW_L] +Command=2A4D35350D +ReplyLength=0 + +[pmSSB_U] +Command=2A4D31310D +ReplyLength=0 + +[pmSSB_L] +Command=2A4D32320D +ReplyLength=0 + +[pmDIG_U] +;not supported + +[pmDIG_L] +;not supported + +[pmAM] +Command=2A4D30300D +ReplyLength=0 + +[pmFM] +Command=2A4D34340D +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS] +Command=3F410D +ReplyLength=6 +Validate=41.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreq + +[STATUS1] +Command=3F410D +ReplyLength=6 +Validate=41.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreqA + +[STATUS2] +Command=3F420D +ReplyLength=6 +Validate=42.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreqB + +[STATUS3] +Command=3F4E0D +ReplyLength=3 +Validate=4E.00.0D +Flag1=00FF00|000000|pmSplitOff +Flag2=00FF00|000100|pmSplitOn +Flag3=00FF00|000000|pmVfoAA +Flag4=00FF00|000100|pmVfoAB + +[STATUS4] +Command=3F4D0D +ReplyLength=4 +Validate=4D.0000.0D +Flag1=00FF0000|00300000|pmAM +Flag2=00FF0000|00310000|pmSSB_U +Flag3=00FF0000|00320000|pmSSB_L +Flag4=00FF0000|00330000|pmCW_U +Flag5=00FF0000|00340000|pmFM +Flag6=00FF0000|00350000|pmCW_L + diff --git a/CATCheck/Rigs/TenTec Omni VI_plus.ini b/CATCheck/Rigs/TenTec Omni VI_plus.ini new file mode 100644 index 0000000..459b0a2 --- /dev/null +++ b/CATCheck/Rigs/TenTec Omni VI_plus.ini @@ -0,0 +1,122 @@ +;------------------------------------------------------------------------------- +; TenTec Omni VI+ command set +; +; File created by Alex Shovkoplyas, VE3NEA +;------------------------------------------------------------------------------- + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +Command=FEFE04E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE04E0050000000000FD.FEFEE004FBFD + +[pmRitOffset] +;($0D) only in models 563 and 564 + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmVfoA] +Command=FEFE04E0.07.00.FD +ReplyLength=13 +Validate=FEFE04E00700FD.FEFEE004FBFD + +[pmVfoB] +Command=FEFE04E0.07.01.FD +ReplyLength=13 +Validate=FEFE04E00701FD.FEFEE004FBFD + +[pmVfoEqual] +Command=FEFE04E0.07A0.FD +ReplyLength=13 +Validate=FEFE04E007A0FD.FEFEE004FBFD + +[pmVfoSwap] +Command=FEFE04E0.07B0.FD +ReplyLength=13 +Validate=FEFE04E007B0FD.FEFEE004FBFD + +[pmSplitOn] +Command=FEFE04E0.0F01.FD +ReplyLength=13 +Validate=FEFE04E00F01FD.FEFEE004FBFD + +[pmSplitOff] +Command=FEFE04E0.0F00.FD +ReplyLength=13 +Validate=FEFE04E00F00FD.FEFEE004FBFD + +[pmRx] +;($16.02) only in models 563 and 564 + +[pmTx] +;($16.01) only in models 563 and 564 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE04E0.06.03.FD +ReplyLength=13 +Validate=FEFE04E00603FD.FEFEE004FBFD + +[pmSSB_U] +Command=FEFE04E0.06.01.FD +ReplyLength=13 +Validate=FEFE04E00601FD.FEFEE004FBFD + +[pmSSB_L] +Command=FEFE04E0.06.00.FD +ReplyLength=13 +Validate=FEFE04E00600FD.FEFEE004FBFD + +[pmDIG_L] +Command=FEFE04E0.06.04.FD +ReplyLength=13 +Validate=FEFE04E00604FD.FEFEE004FBFD + +[pmFM] +Command=FEFE04E0.06.05.FD +ReplyLength=13 +Validate=FEFE04E00605FD.FEFEE004FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE04E0.03.FD +ReplyLength=17 +Validate=FEFE04E003FD.FEFEE004.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + + + +[STATUS2] +Command=FEFE04E0.04.FD +ReplyLength=14 +Validate=FEFE04E004FD.FEFEE004.04.0000.FD +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_L +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + + +;[STATUS3] - only in models 563 and 564 +;($0C) read pmRitOffset +;($17) read pmSplit, pmVfo, pmTx, pmRitOn, pmXitOn +;($18) read transmit frequency + diff --git a/CATCheck/Rigs/TenTec Orion.ini b/CATCheck/Rigs/TenTec Orion.ini new file mode 100644 index 0000000..d69cbb3 --- /dev/null +++ b/CATCheck/Rigs/TenTec Orion.ini @@ -0,0 +1,193 @@ +;------------------------------------------------------------------------------- +; TenTec Orion command set +; +; File created by Alex, VE3NEA ve3nea@dxatlas.com +; Tested by Tom, N1MM +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none required + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=2A41.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +[pmFreqB] +Command=2A42.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +[pmFreq] +;not supported + + +[pmRitOffset] +Command=2A524D52.0000000000.0D +Value=4|5|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=2A524D52.30.0D +ReplyLength=0 + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +;not supported + +[pmSplitOff] +;not supported + +[pmVfoA] +;not supported + +[pmVfoB] +;not supported + +[pmVfoEqual] +;not supported + +[pmVfoSwap] +;not supported + +[pmVfoAA] +Command=2A4B56.414E41.0D +ReplyLength=0 + +[pmVfoAB] +Command=2A4B56.414E42.0D +ReplyLength=0 + +[pmVfoBA] +Command=2A4B56.424E41.0D +ReplyLength=0 + +[pmVfoBB] +Command=2A4B56.424E42.0D +ReplyLength=0 + +[pmRitOn] +;not supported + +[pmRitOff] +Command=2A524D52.30.0D +ReplyLength=0 + +[pmXitOn] +;not supported + +[pmXitOff] +Command=2A524D58.30.0D +ReplyLength=0 + +[pmRx] +Command=2A54550D +ReplyLength=0 + +[pmTx] +;Does *TK switch to transmit mode, or does it close the CW key? +Command=2A544B0D +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=2A524D4D320D +ReplyLength=0 + +[pmCW_L] +Command=2A524D4D330D +ReplyLength=0 + +[pmSSB_U] +Command=2A524D4D300D +ReplyLength=0 + +[pmSSB_L] +Command=2A524D4D310D +ReplyLength=0 + +[pmDIG_U] +Command=2A524D4D360D +ReplyLength=0 + +[pmDIG_L] +;not supported + +[pmAM] +Command=2A524D4D340D +ReplyLength=0 + +[pmFM] +Command=2A524D4D350D +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=3F410D +ReplyLength=7 +Validate=4041.00000000.0D +Value1=2|4|vfBinB|1|0|pmFreqA + +[STATUS2] +Command=3F420D +ReplyLength=7 +Validate=4042.00000000.0D +Value1=2|4|vfBinB|1|0|pmFreqB + +[STATUS3] +;mode +Command=3F524D4D0D +ReplyLength=6 +Validate=40524D4D000D +Flag1=00000000FF00|000000003200|pmCW_U +Flag2=00000000FF00|000000003300|pmCW_L +Flag3=00000000FF00|000000003000|pmSSB_U +Flag4=00000000FF00|000000003100|pmSSB_L +Flag5=00000000FF00|000000003600|pmDIG_U +Flag6=00000000FF00|000000003400|pmAM +Flag7=00000000FF00|000000003500|pmFM + +[STATUS4] +;vfo +Command=3F4B560D +ReplyLength=7 +Validate=404B56.000000.0D +Flag1=000000.FF00FF.00|000000.410041.00|pmVfoAA +Flag2=000000.FF00FF.00|000000.410042.00|pmVfoAB +Flag3=000000.FF00FF.00|000000.420041.00|pmVfoBA +Flag4=000000.FF00FF.00|000000.420042.00|pmVfoBB +Flag5=000000.FF00FF.00|000000.410041.00|pmSplitOff +Flag6=000000.FF00FF.00|000000.410042.00|pmSplitOn +Flag7=000000.FF00FF.00|000000.420041.00|pmSplitOn +Flag8=000000.FF00FF.00|000000.420042.00|pmSplitOff diff --git a/CATCheck/Rigs/TenTec Paragon II.ini b/CATCheck/Rigs/TenTec Paragon II.ini new file mode 100644 index 0000000..1cb1305 --- /dev/null +++ b/CATCheck/Rigs/TenTec Paragon II.ini @@ -0,0 +1,200 @@ +;------------------------------------------------------------------------------- +; TenTec Paragon II command set +; +; File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +;not supported + +[pmFreqB] +;not supported + +[pmFreq] +Command=FEFE2CE0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFE2CE0050000000000FD.FEFEE02CFBFD + +[pmRitOffset] +;not supported + +[pmRit0] +;not supported + +[pmPitch] +;not supported + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFE2CE0.0F01.FD +ReplyLength=13 +Validate=FEFE2CE00F01FD.FEFEE02CFBFD + +[pmSplitOff] +Command=FEFE2CE0.0F00.FD +ReplyLength=13 +Validate=FEFE2CE00F00FD.FEFEE02CFBFD + +[pmVfoA] +Command=FEFE2CE0.0700.FD +ReplyLength=13 +Validate=FEFE2CE00700FD.FEFEE02CFBFD + +[pmVfoB] +Command=FEFE2CE0.0701.FD +ReplyLength=13 +Validate=FEFE2CE00701FD.FEFEE02CFBFD + +[pmVfoEqual] +Command=FEFE2CE0.07A0.FD +ReplyLength=13 +Validate=FEFE2CE007A0FD.FEFEE02CFBFD + +[pmVfoSwap] +Command=FEFE2CE0.07B0.FD +ReplyLength=13 +Validate=FEFE2CE007B0FD.FEFEE02CFBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +;not supported + +[pmRitOff] +;not supported + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFE2CE0.1602.FD +ReplyLength=13 +Validate=FEFE2CE01602FD.FEFEE02CFBFD + +[pmTx] +Command=FEFE2CE0.1601.FD +ReplyLength=13 +Validate=FEFE2CE01601FD.FEFEE02CFBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=FEFE2CE0.06.03.FD +ReplyLength=13 +Validate=FEFE2CE00603FD.FEFEE02CFBFD + +[pmCW_L] +;not supported + +[pmSSB_U] +Command=FEFE2CE0.06.01.FD +ReplyLength=13 +Validate=FEFE2CE00601FD.FEFEE02CFBFD + +[pmSSB_L] +Command=FEFE2CE0.06.00.FD +ReplyLength=13 +Validate=FEFE2CE00600FD.FEFEE02CFBFD + +[pmDIG_U] +Command=FEFE2CE0.06.04.FD +ReplyLength=13 +Validate=FEFE2CE00604FD.FEFEE02CFBFD + +[pmDIG_L] +;not supported + +[pmAM] +Command=FEFE2CE0.06.02.FD +ReplyLength=13 +Validate=FEFE2CE00602FD.FEFEE02CFBFD + +[pmFM] +Command=FEFE2CE0.06.05.FD +ReplyLength=13 +Validate=FEFE2CE00605FD.FEFEE02CFBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFE2CE0.03.FD +ReplyLength=17 +Validate=FEFE2CE003FD.FEFEE02C.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq + +[STATUS2] +Command=FEFE2CE0.04.FD +ReplyLength=14 +Validate=FEFE2CE004FD.FEFEE02C.04.0000.FD +;filter byte is appended to the mode byte +Flag1=000000000000.0000000000.FF.0000|000000000000.0000000000.03.0000|pmCW_U +Flag2=000000000000.0000000000.FF.0000|000000000000.0000000000.07.0000|pmCW_L +Flag3=000000000000.0000000000.FF.0000|000000000000.0000000000.01.0000|pmSSB_U +Flag4=000000000000.0000000000.FF.0000|000000000000.0000000000.00.0000|pmSSB_L +Flag5=000000000000.0000000000.FF.0000|000000000000.0000000000.04.0000|pmDIG_U +Flag6=000000000000.0000000000.FF.0000|000000000000.0000000000.08.0000|pmDIG_L +Flag7=000000000000.0000000000.FF.0000|000000000000.0000000000.02.0000|pmAM +Flag8=000000000000.0000000000.FF.0000|000000000000.0000000000.05.0000|pmFM + +[STATUS3] +Command=FEFE2CE0.17.FD +ReplyLength=13 +Validate=FEFE2CE017FD.FEFEE02C.17.00.FD +Flag1=000000000000.0000000000.01.00|000000000000.0000000000.00.00|pmSplitOff +Flag2=000000000000.0000000000.01.00|000000000000.0000000000.01.00|pmSplitOn +Flag3=000000000000.0000000000.02.00|000000000000.0000000000.00.00|pmVfoA +Flag4=000000000000.0000000000.02.00|000000000000.0000000000.02.00|pmVfoB +Flag5=000000000000.0000000000.04.00|000000000000.0000000000.00.00|pmRx +Flag6=000000000000.0000000000.04.00|000000000000.0000000000.04.00|pmTx +Flag7=000000000000.0000000000.08.00|000000000000.0000000000.00.00|pmRitOff +Flag8=000000000000.0000000000.08.00|000000000000.0000000000.08.00|pmRitOn +Flag9=000000000000.0000000000.10.00|000000000000.0000000000.00.00|pmXitOff +Flag10=000000000000.0000000000.10.00|000000000000.0000000000.10.00|pmXitOn + + + + + diff --git a/CATCheck/Rigs/TenTec RX-350.ini b/CATCheck/Rigs/TenTec RX-350.ini new file mode 100644 index 0000000..b0250f0 --- /dev/null +++ b/CATCheck/Rigs/TenTec RX-350.ini @@ -0,0 +1,113 @@ +;------------------------------------------------------------------------------- +; TenTec RX-350 command set +; +; File created by Eckhard Roth, eckrot@yahoo.de +; 25.12.2010 +;------------------------------------------------------------------------------- + + + + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT] +;none + + + + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreq] +Command=2A.41.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +[pmFreqA] +Command=2A.41.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + +[pmFreqB] +Command=2A.42.00000000.0D +Value=2|4|vfBinB|1|0 +ReplyLength=0 + + + + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +Command=2A.4D.33.33.0D +ReplyLength=0 + +[pmSSB_U] +Command=2A.4D.31.31.0D +ReplyLength=0 + +[pmSSB_L] +Command=2A.4D.32.32.0D +ReplyLength=0 + +[pmDIG_U] +Command=2A.4D.38.38.0D +ReplyLength=0 + +[pmAM] +Command=2A.4D.35.35.0D +ReplyLength=0 + +[pmFM] +Command=2A.4D.34.34.0D +ReplyLength=0 + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=3F.41.0D +ReplyLength=6 +Validate=41.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreq + +[STATUS2] +Command=3F.41.0D +ReplyLength=6 +Validate=41.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreqA + + +[STATUS3] +Command=3F.42.0D +ReplyLength=6 +Validate=42.00000000.0D +Value1=1|4|vfBinB|1|0|pmFreqB + + + +[STATUS4] +Command=3F.4D.0D +ReplyLength=4 +Validate=4D.0000.0D +Flag1=00.FF.0000|00.33.0000|pmCW_U +Flag2=00.FF.0000|00.31.0000|pmSSB_U +Flag3=00.FF.0000|00.32.0000|pmSSB_L +Flag4=00.FF.0000|00.38.0000|pmDIG_U +Flag5=00.FF.0000|00.35.0000|pmAM +Flag6=00.FF.0000|00.34.0000|pmFM + + + + + diff --git a/CATCheck/Rigs/ZS-1.ini b/CATCheck/Rigs/ZS-1.ini new file mode 100644 index 0000000..38dcc9c --- /dev/null +++ b/CATCheck/Rigs/ZS-1.ini @@ -0,0 +1,148 @@ +;------------------------------------------------------------------------------- +; ZS-1 command set +; modified Sept2013 by UB1AGD from +; Kenwood TS-590 command set +; +; File created by Alexandr Gromov, UB1AGD tracer@land.ru +;------------------------------------------------------------------------------- +[INIT] +Command=(AI0;) +ReplyLength=0 + +[pmFreqA] +Command=(FA...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmFreqB] +Command=(FB...........;) +Value=2|11|vfText|1|0 +ReplyLength=0 + +[pmRit0] +Command=(RC;) +ReplyLength=0 + +[pmVfoA] +Command=(FR0;) +ReplyLength=0 + +[pmVfoB] +Command=(FR1;) +ReplyLength=0 + +[pmVfoEqual] +Command=(VV;) +ReplyLength=0 + +[pmVfoAA] +Command=(FR0;FT0;) +ReplyLength=0 + +[pmVfoAB] +Command=(FR0;FT1;) +ReplyLength=0 + +[pmVfoBA] +Command=(FR1;FT0;) + +[pmVfoBB] +Command=(FR1;FT1;) +ReplyLength=0 + +[pmRitOn] +Command=(RT1;) +ReplyLength=0 + +[pmRitOff] +Command=(RT0;) +ReplyLength=0 + +[pmXitOn] +Command=(XT1;) +ReplyLength=0 + +[pmXitOff] +Command=(XT0;) +ReplyLength=0 + +[pmRx] +Command=(RX;) +ReplyLength=0 + +[pmTx] +Command=(TX1;) +ReplyLength=0 + +[pmCW_U] +Command=(MD3;) +ReplyLength=0 + +[pmCW_L] +Command=(MD7;) +ReplyLength=0 + +[pmSSB_U] +Command=(MD2;) +ReplyLength=0 + +[pmSSB_L] +Command=(MD1;) +ReplyLength=0 + +[pmDIG_U] +Command=(MD9;) +ReplyLength=0 + +[pmDIG_L] +Command=(MD6;) +ReplyLength=0 + +[pmAM] +Command=(MD5;) +ReplyLength=0 + +[pmFM] +Command=(MD4;) +ReplyLength=0 + +[STATUS1] +Command=(IF;) +ReplyEnd=(;) +Validate=(IF...................................;) +Value1=18|5|vfText|1|0|pmRitOffset +Value2=2|11|vfText|1|0|pmFreq +Flag1 =(.......................0..............)|pmRitOff +Flag2 =(.......................1..............)|pmRitOn +Flag3 =(........................0.............)|pmXitOff +Flag4 =(........................1.............)|pmXitOn +Flag5 =(............................0.........)|pmRx +Flag6 =(............................1.........)|pmTx +Flag7 =(.............................1........)|pmSSB_L +Flag8 =(.............................2........)|pmSSB_U +Flag9 =(.............................3........)|pmCW_U +Flag10=(.............................4........)|pmFM +Flag11=(.............................5........)|pmAM +Flag12=(.............................6........)|pmDIG_L +Flag13=(.............................7........)|pmCW_L +Flag14=(.............................9........)|pmDIG_U +Flag15=(..............................0.0.....)|pmVfoAA +Flag16=(..............................1.0.....)|pmVfoBB +Flag17=(............................0.0.1.....)|pmVfoAB +Flag18=(............................0.1.1.....)|pmVfoBA +Flag19=(............................1.0.1.....)|pmVfoBA +Flag20=(............................1.1.1.....)|pmVfoAB +Flag21=(................................1.....)|pmSplitOn +Flag22=(................................0.....)|pmSplitOff + +[STATUS2] +Command=(FA;) +ReplyEnd=(;) +Validate=(FA...........;) +Value1=2|11|vfText|1|0|pmFreqA + +[STATUS3] +Command=(FB;) +ReplyEnd=(;) +Validate=(FB...........;) +Value1=2|11|vfText|1|0|pmFreqB diff --git a/CATCheck/Rigs/ic-9700-data.ini b/CATCheck/Rigs/ic-9700-data.ini new file mode 100644 index 0000000..976735d --- /dev/null +++ b/CATCheck/Rigs/ic-9700-data.ini @@ -0,0 +1,284 @@ +;------------------------------------------------------------------------------- +; Icom IC-9700-DATA +; +; IC-9700-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: Wolfgang Sidler, HB9RYZ (25.11.2019) +; with IC-9700 and SDR Radio Console v3.0.17 +; CI-V address of your IC-9700 must be: 2Ah +; +; Same as IC-9700, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R +; and selects FIL1 instead of the default for USB, LSB, USB-D and LSB-D. +; +; Note: Sets DATA MOD input to USB sound card instead of the default (ACC), and +; sets DATA MOD OFF input to MIC,USB instead of the default (MIC,ACC) +; +; Initial Version 2019-05-15 by N6TV. See also IC-9700.ini, IC-9700-SAT.ini +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V USB Echo Back ON +Command=FEFEA2E0.1A050130.01.FD +ReplyLength=16 +Validate=FEFEA2E01A05013001FD.FEFEE0A2FBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFEA2E0.1A050127.00.FD +ReplyLength=16 +Validate=FEFEA2E01A05012700FD.FEFEE0A2FBFD + +[INIT3] +;Set CW normal to lower sideband +Command=FEFEA2E0.1A050067.00.FD +ReplyLength=16 +Validate=FEFEA2E01A05006700FD.FEFEE0A2FBFD + +[INIT4] +;Turn SAT Mode OFF +Command=FEFEA2E0.165A.00.FD +ReplyLength=14 +Validate=FEFEA2E0165A00FD.FEFEE0A2FBFD + +[INIT5] +;set MOD input connector for DATA OFF MOD to MIC,USB sound card +Command=FEFEA2E0.1A050115.04.FD +ReplyLength=16 +Validate=FEFEA2E01A05011504FD.FEFEE0A2FBFD + +[INIT6] +;set MOD input connector for DATA MOD to USB sound card only +Command=FEFEA2E0.1A050116.03.FD +ReplyLength=16 +Validate=FEFEA2E01A05011603FD.FEFEE0A2FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFEA2E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFEA2E025000000000000FD.FEFEE0A2FBFD + +[pmFreqB] +Command=FEFEA2E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFEA2E025010000000000FD.FEFEE0A2FBFD + +[pmFreq] +;not supported + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFEA2E0.21.00000000.FD +ReplyLength=16 +Validate=FEFEA2E02100000000FD.FEFEE0A2FBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFEA2E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFEA2E014090000FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFEA2E0.0F01.FD +ReplyLength=13 +Validate=FEFEA2E00F01FD.FEFEE0A2FBFD + +[pmSplitOff] +Command=FEFEA2E0.0F00.FD +ReplyLength=13 +Validate=FEFEA2E00F00FD.FEFEE0A2FBFD + +[pmVfoA] +Command=FEFEA2E0.07D0.FD +ReplyLength=13 +Validate=FEFEA2E007D0FD.FEFEE0A2FBFD + +[pmVfoB] +Command=FEFEA2E0.07D1.FD +ReplyLength=13 +Validate=FEFEA2E007D1FD.FEFEE0A2FBFD + +[pmVfoEqual] +Command=FEFEA2E0.07A0.FD +ReplyLength=13 +Validate=FEFEA2E007A0FD.FEFEE0A2FBFD + +[pmVfoSwap] +Command=FEFEA2E0.07B0.FD +ReplyLength=13 +Validate=FEFEA2E007B0FD.FEFEE0A2FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=FEFEA2E0.21.0101.FD +ReplyLength=14 +Validate=FEFEA2E0210101FD.FEFEE0A2FBFD + +[pmRitOff] +Command=FEFEA2E0.21.0100.FD +ReplyLength=14 +Validate=FEFEA2E0210100FD.FEFEE0A2FBFD + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFEA2E0.1C00.00.FD +ReplyLength=14 +Validate=FEFEA2E01C0000FD.FEFEE0A2FBFD + +[pmTx] +Command=FEFEA2E0.1C00.01.FD +ReplyLength=14 +Validate=FEFEA2E01C0001FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFEA2E0.2600.07.FD +ReplyLength=14 +Validate=FEFEA2E0260007FD.FEFEE0A2FBFD + +[pmCW_L] +; CW Normal +Command=FEFEA2E0.2600.03.FD +ReplyLength=14 +Validate=FEFEA2E0260003FD.FEFEE0A2FBFD + +[pmSSB_U] +; These lines select USB with FIL1 +Command=FEFEA2E0.2600.01.00.01.FD +ReplyLength=16 +Validate=FEFEA2E02600010001FD.FEFEE0A2FBFD + +[pmSSB_L] +; These lines select LSB with FIL1 +Command=FEFEA2E0.2600.00.00.01.FD +ReplyLength=16 +Validate=FEFEA2E02600000001FD.FEFEE0A2FBFD + +[pmDIG_U] +; These lines select USB-D for USB digital mode, FIL1 +Command=FEFEA2E0.2600.01.01.01.FD +ReplyLength=16 +Validate=FEFEA2E02600010101FD.FEFEE0A2FBFD + +[pmDIG_L] +; These lines select LSB-D for LSB digital mode, FIL1 +Command=FEFEA2E0.2600.00.01.01.FD +ReplyLength=16 +Validate=FEFEA2E02600000101FD.FEFEE0A2FBFD + +[pmAM] +Command=FEFEA2E0.2600.02.FD +ReplyLength=14 +Validate=FEFEA2E0260002FD.FEFEE0A2FBFD + +[pmFM] +Command=FEFEA2E0.2600.05.FD +ReplyLength=14 +Validate=FEFEA2E0260005FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFEA2E0.2500.FD +ReplyLength=19 +Validate=FEFEA2E02500FD.FEFEE0A2.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFEA2E0.2501.FD +ReplyLength=19 +Validate=FEFEA2E02501FD.FEFEE0A2.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFEA2E0.2600.FD +ReplyLength=17 +Validate=FEFEA2E02600FD.FEFEE0A2.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFEA2E0.1409.FD +ReplyLength=16 +Validate=FEFEA2E01409FD.FEFEE0A2.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFEA2E0.1C00.FD +ReplyLength=15 +Validate=FEFEA2E01C00FD.FEFEE0A2.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFEA2E0.0F.FD +ReplyLength=13 +Validate=FEFEA2E00FFD.FEFEE0A2.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFEA2E0.2101.FD +ReplyLength=15 +Validate=FEFEA2E02101FD.FEFEE0A2.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFEA2E0.07D2.FD +ReplyLength=15 +Validate=FEFEA2E007D2FD.FEFEE0A2.07D2.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmVfoB +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmVfoA diff --git a/CATCheck/Rigs/ic-9700-dl2alf.ini b/CATCheck/Rigs/ic-9700-dl2alf.ini new file mode 100644 index 0000000..2971bd5 --- /dev/null +++ b/CATCheck/Rigs/ic-9700-dl2alf.ini @@ -0,0 +1,286 @@ +;------------------------------------------------------------------------------- +; Icom IC-9700-DATA +; +; IC-9700-DATA File created by Bob Wilson, N6TV, n6tv@arrl.net +; +; Tested by: Wolfgang Sidler, HB9RYZ (25.11.2019) +; with IC-9700 and SDR Radio Console v3.0.17 +; CI-V address of your IC-9700 must be: 2Ah +; +; Same as IC-9700, but selects USB-D and LSB-D for DIG modes instead of RTTY and RTTY-R +; and selects FIL1 instead of the default for USB, LSB, USB-D and LSB-D. +; +; Note: Sets DATA MOD input to USB sound card instead of the default (ACC), and +; sets DATA MOD OFF input to MIC,USB instead of the default (MIC,ACC) +; +; Initial Version 2019-05-15 by N6TV. See also IC-9700.ini, IC-9700-SAT.ini +;------------------------------------------------------------------------------- + + +;------------------------------------------------------------------------------- +; initialize +;------------------------------------------------------------------------------- +[INIT1] +;Turn CI-V USB Echo Back ON +Command=FEFEA2E0.1A050130.01.FD +ReplyLength=16 +Validate=FEFEA2E01A05013001FD.FEFEE0A2FBFD + +[INIT2] +;Turn CI-V transceive OFF +Command=FEFEA2E0.1A050127.00.FD +ReplyLength=16 +Validate=FEFEA2E01A05012700FD.FEFEE0A2FBFD + +[INIT3] +;Set CW normal to lower sideband +Command=FEFEA2E0.1A050067.00.FD +ReplyLength=16 +Validate=FEFEA2E01A05006700FD.FEFEE0A2FBFD + +[INIT4] +;Turn SAT Mode OFF +Command=FEFEA2E0.165A.00.FD +ReplyLength=14 +Validate=FEFEA2E0165A00FD.FEFEE0A2FBFD + +[INIT5] +;set MOD input connector for DATA OFF MOD to MIC,USB sound card +Command=FEFEA2E0.1A050115.04.FD +ReplyLength=16 +Validate=FEFEA2E01A05011504FD.FEFEE0A2FBFD + +[INIT6] +;set MOD input connector for DATA MOD to USB sound card only +Command=FEFEA2E0.1A050116.03.FD +ReplyLength=16 +Validate=FEFEA2E01A05011603FD.FEFEE0A2FBFD + +;------------------------------------------------------------------------------- +; set frequency +;------------------------------------------------------------------------------- +[pmFreqA] +Command=FEFEA2E0.25.00.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFEA2E025000000000000FD.FEFEE0A2FBFD + +[pmFreqB] +Command=FEFEA2E0.25.01.0000000000.FD +Value=6|5|vfBcdLU|1|0 +ReplyLength=18 +Validate=FEFEA2E025010000000000FD.FEFEE0A2FBFD + +[pmFreq] +Command=FEFEA2E0.05.0000000000.FD +Value=5|5|vfBcdLU|1|0 +ReplyLength=17 +Validate=FEFEA2E0050000000000FD.FEFEE0A2FBFD + +[pmRitOffset] +;not supported + +[pmRit0] +Command=FEFEA2E0.21.00000000.FD +ReplyLength=16 +Validate=FEFEA2E02100000000FD.FEFEE0A2FBFD + +[pmPitch] +;The 0.425|-127.5 params. should map 300Hz->0, 900Hz->255 +Command=FEFEA2E0.14.09.0000.FD +Value=6|2|vfBcdBU|0.425|-127.5 +ReplyLength=15 +Validate=FEFEA2E014090000FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; set rit/xit/split/rx/tx +;------------------------------------------------------------------------------- +[pmSplitOn] +Command=FEFEA2E0.0F01.FD +ReplyLength=13 +Validate=FEFEA2E00F01FD.FEFEE0A2FBFD + +[pmSplitOff] +Command=FEFEA2E0.0F00.FD +ReplyLength=13 +Validate=FEFEA2E00F00FD.FEFEE0A2FBFD + +[pmVfoA] +Command=FEFEA2E0.0700.FD +ReplyLength=13 +Validate=FEFEA2E00700FD.FEFEE0A2FBFD + +[pmVfoB] +Command=FEFEA2E0.0701.FD +ReplyLength=13 +Validate=FEFEA2E00701FD.FEFEE0A2FBFD + +[pmVfoEqual] +Command=FEFEA2E0.07A0.FD +ReplyLength=13 +Validate=FEFEA2E007A0FD.FEFEE0A2FBFD + +[pmVfoSwap] +Command=FEFEA2E0.07B0.FD +ReplyLength=13 +Validate=FEFEA2E007B0FD.FEFEE0A2FBFD + +[pmVfoAA] +;not supported + +[pmVfoAB] +;not supported + +[pmVfoBA] +;not supported + +[pmVfoBB] +;not supported + +[pmRitOn] +Command=FEFEA2E0.21.0101.FD +ReplyLength=14 +Validate=FEFEA2E0210101FD.FEFEE0A2FBFD + +[pmRitOff] +Command=FEFEA2E0.21.0100.FD +ReplyLength=14 +Validate=FEFEA2E0210100FD.FEFEE0A2FBFD + +[pmXitOn] +;not supported + +[pmXitOff] +;not supported + +[pmRx] +Command=FEFEA2E0.1C00.00.FD +ReplyLength=14 +Validate=FEFEA2E01C0000FD.FEFEE0A2FBFD + +[pmTx] +Command=FEFEA2E0.1C00.01.FD +ReplyLength=14 +Validate=FEFEA2E01C0001FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; set mode +;------------------------------------------------------------------------------- +[pmCW_U] +; CW-R +Command=FEFEA2E0.2600.07.FD +ReplyLength=14 +Validate=FEFEA2E0260007FD.FEFEE0A2FBFD + +[pmCW_L] +; CW Normal +Command=FEFEA2E0.2600.03.FD +ReplyLength=14 +Validate=FEFEA2E0260003FD.FEFEE0A2FBFD + +[pmSSB_U] +; These lines select USB with FIL1 +Command=FEFEA2E0.2600.01.00.01.FD +ReplyLength=16 +Validate=FEFEA2E02600010001FD.FEFEE0A2FBFD + +[pmSSB_L] +; These lines select LSB with FIL1 +Command=FEFEA2E0.2600.00.00.01.FD +ReplyLength=16 +Validate=FEFEA2E02600000001FD.FEFEE0A2FBFD + +[pmDIG_U] +; These lines select USB-D for USB digital mode, FIL1 +Command=FEFEA2E0.2600.01.01.01.FD +ReplyLength=16 +Validate=FEFEA2E02600010101FD.FEFEE0A2FBFD + +[pmDIG_L] +; These lines select LSB-D for LSB digital mode, FIL1 +Command=FEFEA2E0.2600.00.01.01.FD +ReplyLength=16 +Validate=FEFEA2E02600000101FD.FEFEE0A2FBFD + +[pmAM] +Command=FEFEA2E0.2600.02.FD +ReplyLength=14 +Validate=FEFEA2E0260002FD.FEFEE0A2FBFD + +[pmFM] +Command=FEFEA2E0.2600.05.FD +ReplyLength=14 +Validate=FEFEA2E0260005FD.FEFEE0A2FBFD + + + + +;------------------------------------------------------------------------------- +; read status +;------------------------------------------------------------------------------- +[STATUS1] +Command=FEFEA2E0.2500.FD +ReplyLength=19 +Validate=FEFEA2E02500FD.FEFEE0A2.2500.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqA + +[STATUS2] +Command=FEFEA2E0.2501.FD +ReplyLength=19 +Validate=FEFEA2E02501FD.FEFEE0A2.2501.0000000000.FD +Value1=13|5|vfBcdLU|1|0|pmFreqB + +[STATUS3] +Command=FEFEA2E0.2600.FD +ReplyLength=17 +Validate=FEFEA2E02600FD.FEFEE0A2.2600.000000.FD +Flag1=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.030000.00|pmCW_L +Flag2=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.070000.00|pmCW_U +Flag3=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010000.00|pmSSB_U +Flag4=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000000.00|pmSSB_L +Flag5=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.080000.00|pmDIG_U +Flag6=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.040000.00|pmDIG_L +Flag7=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.010100.00|pmDIG_U +Flag8=00000000000000.00000000.0000.FFFF00.00|00000000000000.00000000.0000.000100.00|pmDIG_L +Flag9=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.020000.00|pmAM +Flag10=00000000000000.00000000.0000.FF0000.00|00000000000000.00000000.0000.050000.00|pmFM + +[STATUS4] +Command=FEFEA2E0.1409.FD +ReplyLength=16 +Validate=FEFEA2E01409FD.FEFEE0A2.1409.0000.FD +; 0=300 Hz, 255=900 Hz +Value1=13|2|vfBcdBU|2.362205|300|pmPitch + +[STATUS5] +Command=FEFEA2E0.1C00.FD +ReplyLength=15 +Validate=FEFEA2E01C00FD.FEFEE0A2.1C00.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmTx +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRx + +[STATUS6] +Command=FEFEA2E0.0F.FD +ReplyLength=13 +Validate=FEFEA2E00FFD.FEFEE0A2.0F.00.FD +Flag1=000000000000.00000000.00.01.00|pmSplitOn +Flag2=000000000000.00000000.00.0F.00|000000000000.00000000.00.00.00|pmSplitOff + +[STATUS7] +Command=FEFEA2E0.2101.FD +ReplyLength=15 +Validate=FEFEA2E02101FD.FEFEE0A2.2101.00.FD +Flag1=00000000000000.00000000.0000.01.00|pmRitOn +Flag2=00000000000000.00000000.0000.0F.00|00000000000000.00000000.0000.00.00|pmRitOff + +[STATUS8] +Command=FEFEA2E0.03.FD +ReplyLength=17 +Validate=FEFEA2E003FD.FEFEE0A2.03.0000000000.FD +Value1=11|5|vfBcdLU|1|0|pmFreq diff --git a/CATCheck/SetFrequencyDlg.Designer.cs b/CATCheck/SetFrequencyDlg.Designer.cs new file mode 100644 index 0000000..6866b5f --- /dev/null +++ b/CATCheck/SetFrequencyDlg.Designer.cs @@ -0,0 +1,88 @@ +namespace CATCheck +{ + partial class SetFrequencyDlg + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btn_Set = new System.Windows.Forms.Button(); + this.ud_Frequency = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.ud_Frequency)).BeginInit(); + this.SuspendLayout(); + // + // btn_Set + // + this.btn_Set.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btn_Set.Location = new System.Drawing.Point(214, 12); + this.btn_Set.Name = "btn_Set"; + this.btn_Set.Size = new System.Drawing.Size(75, 26); + this.btn_Set.TabIndex = 0; + this.btn_Set.Text = "Set"; + this.btn_Set.UseVisualStyleBackColor = true; + // + // ud_Frequency + // + this.ud_Frequency.BackColor = System.Drawing.Color.Gray; + this.ud_Frequency.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ud_Frequency.ForeColor = System.Drawing.Color.Chartreuse; + this.ud_Frequency.Increment = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + this.ud_Frequency.Location = new System.Drawing.Point(12, 12); + this.ud_Frequency.Maximum = new decimal(new int[] { + 1215752192, + 23, + 0, + 0}); + this.ud_Frequency.Name = "ud_Frequency"; + this.ud_Frequency.Size = new System.Drawing.Size(192, 26); + this.ud_Frequency.TabIndex = 1; + this.ud_Frequency.ThousandsSeparator = true; + // + // SetFrequencyDlg + // + this.AcceptButton = this.btn_Set; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(297, 53); + this.Controls.Add(this.ud_Frequency); + this.Controls.Add(this.btn_Set); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Name = "SetFrequencyDlg"; + this.Text = "Set Frequency"; + ((System.ComponentModel.ISupportInitialize)(this.ud_Frequency)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btn_Set; + public System.Windows.Forms.NumericUpDown ud_Frequency; + } +} \ No newline at end of file diff --git a/CATCheck/SetFrequencyDlg.cs b/CATCheck/SetFrequencyDlg.cs new file mode 100644 index 0000000..9c77a39 --- /dev/null +++ b/CATCheck/SetFrequencyDlg.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace CATCheck +{ + public partial class SetFrequencyDlg : Form + { + public SetFrequencyDlg() + { + InitializeComponent(); + } + } +} diff --git a/CATCheck/SetFrequencyDlg.resx b/CATCheck/SetFrequencyDlg.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/CATCheck/SetFrequencyDlg.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/CATCheck/Settings.cs b/CATCheck/Settings.cs new file mode 100644 index 0000000..76a2c2b --- /dev/null +++ b/CATCheck/Settings.cs @@ -0,0 +1,28 @@ +namespace CATCheck.Properties { + + + // Diese Klasse ermöglicht die Behandlung bestimmter Ereignisse der Einstellungsklasse: + // Das SettingChanging-Ereignis wird ausgelöst, bevor der Wert einer Einstellung geändert wird. + // Das PropertyChanged-Ereignis wird ausgelöst, nachdem der Wert einer Einstellung geändert wurde. + // Das SettingsLoaded-Ereignis wird ausgelöst, nachdem die Einstellungswerte geladen wurden. + // Das SettingsSaving-Ereignis wird ausgelöst, bevor die Einstellungswerte gespeichert werden. + internal sealed partial class Settings { + + public Settings() { + // // Heben Sie die Auskommentierung der unten angezeigten Zeilen auf, um Ereignishandler zum Speichern und Ändern von Einstellungen hinzuzufügen: + // + // this.SettingChanging += this.SettingChangingEventHandler; + // + // this.SettingsSaving += this.SettingsSavingEventHandler; + // + } + + private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { + // Fügen Sie hier Code zum Behandeln des SettingChangingEvent-Ereignisses hinzu. + } + + private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { + // Fügen Sie hier Code zum Behandeln des SettingsSaving-Ereignisses hinzu. + } + } +} diff --git a/CATCheck/app.config b/CATCheck/app.config new file mode 100644 index 0000000..6d64ed8 --- /dev/null +++ b/CATCheck/app.config @@ -0,0 +1,18 @@ + + + + +
+ + + + + + + + + llAll + + + + \ No newline at end of file diff --git a/CubicSpline/CubicSpline/CubicSpline.csproj b/CubicSpline/CubicSpline/CubicSpline.csproj index 631a1fa..93cb8d8 100644 --- a/CubicSpline/CubicSpline/CubicSpline.csproj +++ b/CubicSpline/CubicSpline/CubicSpline.csproj @@ -38,8 +38,8 @@ - - ..\..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -57,12 +57,12 @@ - + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ElevationCoverageMapper/Properties/Settings.Designer.cs b/ElevationCoverageMapper/Properties/Settings.Designer.cs new file mode 100644 index 0000000..d8d2ed5 --- /dev/null +++ b/ElevationCoverageMapper/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ElevationCoverageMapper.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/ElevationCoverageMapper/Properties/Settings.settings b/ElevationCoverageMapper/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/ElevationCoverageMapper/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ElevationCoverageMapper/WindowsFormsControlInvoke.cs b/ElevationCoverageMapper/WindowsFormsControlInvoke.cs new file mode 100644 index 0000000..18fdc15 --- /dev/null +++ b/ElevationCoverageMapper/WindowsFormsControlInvoke.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Windows.Forms; + +namespace ElevationCoverageMapper +{ + /// + /// A set of methods that are much easier to use than the usual versions, since they + /// accept the standard delegate types as arguments. + /// + /// + /// Instead of using the version of that allows you to pass parameters to your + /// delegate, just capture them in a closure when using one of these. + /// + public static class WindowsFormsControlInvoke + { + /// + /// Executes the specified delegate on the thread that owns the control's underlying window handle. + /// + /// The control whose window handle the delegate should be invoked on. + /// A delegate that contains a method to be called in the control's thread context. + public static void Invoke(this Control control, Action method) + { + if (control.InvokeRequired) + { + control.Invoke(method); + } + else + { + method(); + } + } + + /// + /// Executes the specified delegate on the thread that owns the control's underlying window handle, returning a + /// value. + /// + /// The control whose window handle the delegate should be invoked on. + /// A delegate that contains a method to be called in the control's thread context and + /// that returns a value. + /// The return value from the delegate being invoked. + public static TResult Invoke(this Control control, Func method) + { + if (control.InvokeRequired) + { + return (TResult)control.Invoke(method); + } + else + { + return method(); + } + } + } +} \ No newline at end of file diff --git a/ElevationCoverageMapper/earth.tif b/ElevationCoverageMapper/earth.tif new file mode 100644 index 0000000000000000000000000000000000000000..bd86e62f0eed9f6edf872d0a6ce0b8040388365d GIT binary patch literal 4362004 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 z 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 z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=P zkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=P zkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=P zkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=P zkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=P zkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx z0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}1 z8IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=P zkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx0U3}18IS=PkO3Kx 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 literal 0 HcmV?d00001 diff --git a/ElevationTileGenerator/ElevationTileGenerator.csproj b/ElevationTileGenerator/ElevationTileGenerator.csproj index 2773430..e6c5645 100644 --- a/ElevationTileGenerator/ElevationTileGenerator.csproj +++ b/ElevationTileGenerator/ElevationTileGenerator.csproj @@ -15,6 +15,7 @@ + false publish\ true Disk @@ -27,7 +28,6 @@ true 0 1.0.0.%2a - false false true @@ -68,18 +68,21 @@ prompt MinimumRecommendedRules.ruleset + + + + - - False - ..\..\..\ScoutBase\DotNetZip\zip-v1.9\Debug\Ionic.Zip.dll + + ..\GreatMaps\GMap.NET.Core\bin\Debug\GMap.NET.Core.dll ..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll - - ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net40\System.Data.SQLite.dll + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net40\System.Data.SQLite.dll @@ -91,6 +94,12 @@ + + Form + + + CoverageDlg.cs + Form @@ -99,6 +108,9 @@ + + CoverageDlg.cs + MainDlg.cs @@ -127,6 +139,14 @@ + + {d3b0ad67-44d8-4b3d-bed9-ce1fd6de2c5a} + Zip DLL + + + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98} + GMap.NET.WindowsForms + {ee86e933-d883-4b18-80eb-0fba55ec67c6} ScoutBase.Core @@ -152,17 +172,17 @@ - - - - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - - + + + + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". + + + dnTC>#Qo7)5&aPRNDmW*B?pe#1stjI=`T1=i z>kU!13!^d5$UH10;K2f=%Ue{LO&g9Xl@viN(S|BntF#n(*Z=#Dyh`y7KMDSykx; zq{lBl+DjllYX288<9NZ13M+~=!ZJ{diXYV^q1--Y)3)>x3I6a9sz=1-QfKgIX*=Bs zp}NpuMvs-dFcohH?-l78_w%`#U-V3hg#@A66#QmZwB_0g?nlq?Gq}^JOAqq+*-6Zu zKx*hqLIwjwoW_V#!Zv1H1r(!`jB@lgNe#}QmT*qW*5aXxfXoq*0bO@N#icM-V98U$ zpp@x7H-#bvHT2fv-VTb18!cBvlTv+JP_g4}rr!viuZj?I7<9!4dG82i2hACjVu4I@ ze#6f1N#0le5zUHM)9jQlaFX;useDv4+gvhR!*2m3t>w79vCb@(_^y1DCzCu&LA8X2 z(5%l$ccu?VB4pZ##MsoEZ`hIvdf7ET@Vs^;Pl)TM3PRnH+Mj?lQ2Jw?xu3we_vTW? zyv?u#c9FP<97FKjp`7b)2FSA0kAFAsqjz70DnCfD2Nopt{7}fFm_5y}9P9c3t+s4= zYvOGRqGV=)CWU%NMzwHJM8lZW5Fg*`P?i18K^SAEi~dGdv9p|pP4LND%jy=ZaAa*HdVe9=F$?UQzUwxx86Ad~w zxf~QGzbr6c^GKfr>khRXRHq8gAIm0(H1z#JLS$DmzM_bZqhdI0LYPcLgv-s+DW#y* ztrhUh@#3VSC~Nw7auaI?=Mx7^FntX)a_sA3CU$q*k?Zd_X0b`3&!@C)5@7$N*jEh> zjeI<*i{U?7H1A*ksFk@T9NH3TI9Jj2AU)gDDZ9s&7rsbb^o5R+4Ms8;QUjgpaly$w zc+_u#WJ~wlH0)MWBO#7S1Igc?4Ck>>9;N47pNGnw2d>C7hR0!w7%@q37nSMogQ zbLzT~YF9D=0#venvRyJ~8&TQK4I0g>;oeDl5=WI97DP=OGyQ3b!f-+%_a?jh%=EZ&?UCf)d~3SCjR3Pn*b;N@4L znDd26-8&I@B{6YV?+&{#tAI6WjCZ9zxyw}wGNtbu!>@(0&h3BIusQs>ST=H_O;A1J z!K`fo9j*tQz}+We>^r>FYgQ0dcljA)YF*<9R2y>+q4#`EdA5Sphwz*S{6jBGV|GYKnbK*g8Oa!X$v>T$I{0Xdat`9XD#Yi@pKVGXyzY_p zpP*X7`RY%iIR~e^8o{6UaV&`-y_}869YIXl!e_QT`RY7-TB91{h*u%+)@_~NJM?j?w$ zVF7LNaMQWR%)@q7vYdeyX%&>DzF&UtUw#n8hhE<+zV;mE{7*`kobLdXZ2A^goyvpSgB^vxE;8LSn>gWI$)$rp7+w zZO2DE8fr&_`_sUH;?q#4%ooUv(v~R&f-UsHJM_0>zzNp_fk9Rs+%PKo8LBCTsh>O6 z8I~!?X|!9gwRkoQ!Rd!+1~FV5jv=(G4h|cS5XNH)%B2GuRQACeP_sZQKO^}7-#!IC zNa}+R(A9yQzCu4!Fa+oKM7oUU^D_)@yo?o& z4K|I##$jFt=M!HCC+vPm1h-|*u+4eJi`QSPG{p$_y@0!EFZMrCr?8tYwK|lEAG!SF zzJXCfpR`WBuLPU?tiMhbYLRBGR+oqIHm9%mGEKROJ%EJP{g+4B8AA1!8@f^;7LZ?=q4UY-qR2|0_oi`(kiVqF4&LKvgnXc(Wi$= z8GbI6^w-G2W4`6kFXuLqB6KXNh&y#)e+bJckDJg+h*Wo5r?G?xT{`lc#bK^2iKv&AwAH zC!M>$V8-E|g%i=_N)ij1s^5%-dpzz%6V;x@E$*4AexxXDR)?<+vFo#Czr4av(_UXI z*?qoQ!cRFZ#2Zag!Lx*OkCs2z$C6htsQMcrGW87L@OwP(>?0LKYuDjXc(x;q@SSC5 zd^RFV*d+_v^wZKsf&hA3yQn}d&U~0gdrv^u2t3x8t!pF1TOz`I^56ZJuZ&n(pogDR z)Pnai>sR7YmR!Upuh=p9Ke5-M7#FuL;{2TASt8lCdz%;CxSmlYL-@fXMS3=jlAgYD zI~BDK5a~I334n_9`3ks(OsCg18UnNjrvbvTc<7?zAN=%?2Xzb-*q=__JqBqb07 zXg`4W4d22)cTR(;lM`tgwm;*#GI*n(JJBacNcu`fI13akmV98iEVhMnwoto~rtg3h z`71`m3r-`EuZBxJ{)n99yE$*Vb=ar1u7p&wJLK1C_@JIx;=GNil}b*HI~?$Hl=H?j z5IBhYNPAcV-*CdB*>J*U%T8dR{HHb%(N6wdY<<@>Isc46C7Gsyq`&t8+Moz*q^2;P zy+GqNHS7uzr#R_z`mP6d2^iv9iX$wl5doRS10VjZLIsshWZ=SinWz!gsgDP!{vT6s z9T&y>y$|ogQX*X{4bt5W(jhD*oq}{XNVt+qcY}0yH!M<0N;j-@hlGNn&+z_ypV#a6 z5A4j`v&?YUb*^)rb7bri@WCaxes#Fu#kWxhC{!$+K+Dcn!_u*Q+%AQY%5)jZwVSPW5P*&0l!A{$yh@j<$E!A6DD zFi^g@C49Q}bw(0K0AnJ0iX<@|(gll7CAX80!1egd&BBm*zaip4{J%~$g1d+n$U&JC z$)cQCLwTbmAWbsv_V^;gs#lTZp>hF;3hg1%Fw0$$Ym;=w1kM?Gvxkhc8(r| zhbod!X5PcdZ}ERlPJh%FQ?B)KC(bQGZSYQfg1RwMNP&Eaq*$vH7ap*n&?IfBVQ=QG zwqi<}u1#R^L+oy0Uku4vYurcRgZu3G!(0u`hsu%6qCUaRK0twc5T3QBZ@uN1chQ*b zIb{;X8(W?Cy$j!JdnKfS|KVIygQ#r7b2fzu3i*9X8!gALQD9^yJ1fd3k|vUrNiC`z z#l8pIMf}ot;4)x=m(`0>A~#g%s*f_=J<2x61Ne%zRoyLsXjoD61W%EeAjAN=DzbiN z>mEvo_aA=swlbQoWrYK^3DcikYLO_8MkfCG%c_R86zmiRTQ^8KK6}UE+DN)oy$j+Z zSYRkc>3FT?jGDbVC-{#^kNHno^6ED%fw=-fd?)e-!$qrHtW4gs`_uq|1T;lsuq1zNVyK+$)g}jYCy2U!XG}w6)8yFS1JVw%3C6_XD zdwK~qrm8IZ93C?PAJKkxBtvR;!10?OaZo3hq_-y1HQpDg+e5fN@B?`j3Q~V4 zW$8ER^MJ(Twnr)V2T6q8mKD3-9oq|1qkKZ_MKcNS$&Pf3(5^#U-#6Ca*GoB7IS};E zseBKVbA4ijH^um?5#BtIWZ!heD$_ZC5umDvFmXR{Yi!4e(6uS5k!{|;v7V;Jl5D4s z2ALH&?Gis>zp0j$02JLll}8(2ebl4A)8MjU7d0&>9sV*p%|9l~RY@#DPu*N`Vfyo8 zOd)-PVa-}G@rEHlN7cKo(i_MxAXfXc^BF-q$D+Gq1>5)B-7n(%zEKS z7K#2DzImZJs`*TtVZ#wCtb>k1C#%Zdh%}C8zUGf7-XEQuU#Tk62EyZC`)QIxc-=lg zKTFfCm3bzNs?OtSHNn+z+1B&#GlcNAp-1-*%qC8JvsIh-9W~zBR6VRVG*3hKXEER7 zlLtEs$bRDqlp7@SwqHt%pM_o7uDWU{*j?pjVrFcLK;Oma}We2me&Z*UX}kLlgm)36z8mxdt@E z4#o7<1ip|&2Ext&l#XQm-_uYL(jk8Um&rmg+Zm=2f#4qx8O-aQl#-)Feg4KQXYU|s`@a7 zx8Mx`lmUx{Z(cnp9cX3;06J~`=Qk0(V$r{igvYMeQOsXEH{f$y0PJRv25v4Nw0ug~ z%EZ4D>*jE{V|ppL+1p0ez(EXKmb!t~!z6>YHAjkmFjn(T$DpX@dT5Bio@ICG0H)`&`7yphw_41RA1viBKWj2}9(g6>xZp?ll;MwDG@Jc z$BVVyKYP$f7Dt9Z(6WMV%bW&C&{PypKFcAZeIki8JDov9V3!y8Or`RABh&J*OAR_) zE7lPT@TVN050mkMLSXosqprJjh`(Kfk<27OpU44yQXvB|MihcBazlX%*>Fze0T}2{ zKd2YP*BiKsCew|uBidhPZ24-v#t24Qtjt8DPBUBHGYvAwl{i(6W3`lw;$k*-TPidi z;qtHaD9hRw-gdoQ*Wyu%O8lFt%yYk|GXqh&?MogvR2kFFX#g!tdcF#-@E9YR?l^&B z4J1@ehD~qR-Gg4mzY^#8W?8SYP=xtA+^}fqYz?Z zDtxMy+AB_rSaVG|d4Yt=g*fhzQd|-vMmqkj5AqOwF&b-}u->&wFWY%hg87Q@+RDPr ze=oaZ?z7duzK?HBRlY;?sn9jCI;2J}`cw{R-Q@asK`Or}R8r`8CdT{d3&QYd%U$Kk ze6K;@4_Tk`={!4rLpxd-r(Zz(l*eV$sO|aDc?O<&?}zHN*m+~)GyAEH!NguNFWpF| zJcB=&eHIewrVXto3`bRj2S;{4|M4&_vER=-3OaEH?v=|4jLjW$YV|tLah!L*Ft$PG z%|o$*DR?VoiloC2f>vttMChCTYMWSFcc#+34{uFHqf%!d%hODSR~&q?>}uY&N-5Fy zk#__NaW?Y?4BS9ek}-G*Tn&M~8UkP*ue4mnDh(qFE+qw1=}-VS(EYui3)k470(7;* zI20yl=uDmPA~sh~5kzLlmR!mwQaa=)Fa`I3n8o&Kq%c9rdMKtazqIP>afO^PP(6Kg z6s+qBwky0IME@2X_kE27yseBY{8gS2U4C9~v=fFM+VV<3J`?R%YduH`Fm$E>3v2RJ z3$hj?-)~(xBGTs;kRPseGb)2em~(W)U6FM23T%Lv%4&c|nsDO^9Kw{lwq8;8?k-d- z7Gt>b9!;nA5hb2R@6jyDcr}cwllACCRDKyIloVz}O&d^Ow_{}?$*S#YD~01&Ruc{D z;}-3|N>tMpsr&NHK*Qra#v$<5C*anna$~dNy?GVzvr_`Q56W2V)dXAjeKjZX4qb13 z`UtK|3O4Qkd!JUTF~YZ>(usKIMK+tv*67Sw<$YH$`(=TyBCd4J?kH(!+AoSC!p+y| zYwqH+8H|68r08-qE%S9XmYQC{?9_B9_vfO4Ng8?hlkdF@sl8u4SUM&dn`s1cm7I0+K8#eR&a7m zROz~%Z^LHTx1GU>5*Mh2>BNZMJ*&tY0)8K>E1JcSW~oesL+PtdE(sTv-bjtj(%9jeTi#RE)GJ? z{)#%e*7P=e=Basu1^?`SPu^s}16p%ahaZ7|4?ZFu>nEDod9Pc&%~huDGcUdA?RprO zA=Oqj6i-j-3qvreMhn@IZ{FJZP$!(av`_p_>*e`7?whUHb!MSL#r@**B#3FcwctTR zR0j_8AR6Q^+iaQzAp1c#M4{TOSO#`HxF9-`M(NTGrRYG5=?XydQ^Zv|Yi4Oud# zOZO@F%L+YjjFuumIJM(Jkx1!srSxDYn2cd8-2C|5gNC1@rU@0N?a(buCILLUAxm3{ zLGcJkH4K^MoOM>;OVQchPO%|;sHy3Dov@MejW)u0@WY|HAXCU=`j1hv-V{g z-D$0@~L_p7QK!(#=l02ESbo5nWm?po{6IXPP$D3t(E|+l9130>%ZvAL`Z2K zBf(vbZWArsb}h#mPe+kF_R=0B*Bpb;-fVcYR+_iOaEdr`F_J%j?(It=a94Z`k>(MX z9KsC?u#B{YQyvFI07;BKSv|nU7R>#TDKiA?Iq<~^Vz)Cy2Xo|Rp&QRi%A9P^%?ZxC zyWhvjMG)hp3pX!ZRzgz;eub6Zq0C{D_7pvo40fcqI*snfzcy-~6j-g`jU=77Gs=Bt(VwpevsfZA0`lZV5PeK5!LR-K2)NJY z1PvpJ%@Rq2YtCoMYbcj?C7gy)UFg$sQ|ahJgS&88{5W}-z&1E82Q0L9h;OOY)U z^Op>;S=iIodcQ#U&1NV0zT6iO))IJi#|~+i(}$5ajG&lzOQSd^;Ho|qEk|cLM!6-{ zRiA%hMQX0AZ!k}6MT%tj+$q;0n~CNdQtzzM!O;ZTBw6TUZJ0E8FC;)*CFOV656|nq zcC7|hcZdPrS75PMNw}#84iT!qcPANuCPt}S-j z9ds`dv7fiYAbD|87xPt@HE+Y}SIE0tY{9&FJFmD7!E#J#r-{j1Wd2^GBYylTnMGsi z1jb5t7ysVJ<|b3RIz8HytG~ZqQHHePqn;i~yZ}Z7Kj|*WW+v_IbH$toHKU-DDp5{PTckrDifhJSkbD-G_MV-~v*9<~2McJDB8zOv15uR&I5Ml_B{ zqkesWLaAUrJG&$RGW$?>FQK=N>ZU&nU5oEKlP^|!e;rw>(lLekm#(n%Y0G$k&rQ)O zgPs!c&dST3zJaqs;;v||6V4wew@oH)j0@RfMz00-? zqSZbX$IwnNVn_Y{ne5Q+aKiI*U5DWLto#;6Z4@AF$lNNfWgKC$ z&Z^Ex*ID8`ZT0V$!(HB6aX&@m4Cw;@=xUd&>Aov;d5^IeKDzCQ*#3Xs!#SR~OG4}9 z_TmIu_@L*J`U6I-%mMyKKyCy0G}2G=vTz+FJ69S=8fwe{{1G4p>U$D*7Of~UrErYi~go$Z28wrHVy}o!yVDjpM zi>@;YIY4(Gg?vHKQfMx?o8Rb~7-2aMW!Q+sh~J zPJ}-;-}=Z$t&^~L>-l=u6+BdRsQ4kAaFK>6x1~-41n4DGxT=r+1Ri#hcXZ$uiv`>#eJJc-+Xh_xy?(FlMjn zREadCF#!hyVEgwdU7!*KD!JCcy=kT%go96{A<=ZA*+^>n;_dERkW+b349~kbZe0fe z1t?~;G4HN=NH8vO+Q)IbRJ2x6y}f=`PQ`!Cj37`DbBpKROdc|PuJfRp>Mn#IK=Z%% z3*4Ihf4c81g}6&w>jZjvQd{tViYo*39}_^K3&*!M-=e4D;%Uvkolr!jFd|qLRfoei z>&yR=@AB+MhPsIwh}C>$|LczXgzU+=%x?au!%7gympA$eli1Bul?9vpKv6~RV;+cj znEa47#sBpu!HHqvpV*d0JbYu$LLtl`hC;PNnkMZuc`>3j6FCh09Ogo0$UfYbrQcuf znzjF@{2SSpgD)*SBON#_y?nxxSgluCmQ(k`fe%f?JtCrpHIcew6qG*;T#u~2ty?y` zORy~UAJRj~S@HgS_Bdsr7)0q1#JW4L7ZV*iJ0R{VlIWVX`?qdfB96qZK zp~{5|P@foy0VKml8WNnoy1dyIZo(j7k2(+!2AHnJy+0b{S=__Vcq3lga(sv5hA(`q z_PY2usu4Y2uPLF*)e~m;UC6mM()(2=>O4o~dKKBb_k+514c8e%XqnzyrU??V#XonR zeVZy~@?q*HIm7@)O8~{nkD=QnpJKfK8_prbUF5|}>xibV@LLzc0$@A`0VL*`%4+yF ztqMIbLq!2Qg9Zw+iRMJ+0EXlK6P_B}7S%`)Mt!+3qC$4i>lwqKCX|w{43_};ywE>f zJK{@4h)D0UHzw$JQ~9^e3R#5LGnTchcdL1w}p*RW1cFri8afcMvr8;yM zrFP9rrhBr&7?EnkFsK9FJ-OyE>iAY=eDH?znw3m66}x9N%(z1=)Hg!A<6DLCfzBju z-ajq1R_h^0%Kk$5*~?$W@K0K9De~upe zHlX;CNBCGOe@WLcWE$kZx>1chO4S{mN>$(i1!T*IwdJ;>FmZak>dAbmt|U`%qw_v4 zzSzWNx;4<++B$iqRs#2=-R|x~-f6a#XsghMNm6Uh^TqmQ3yPe5uwra-=W<1`##$%< z?0O7RR#zLWJaCOx8@6^%Q!K8=w=A=D#okn<);)6wS{tm*N1Zp+#j(%T$n99r$ahk+ z3a{RKXSc7M^ahbfuEt7SrlbY#d#4GIJ#t!o0PQLbz8X=g0q-|3L;k2{UGj}sB7OO7 zCaQU){65XFwpAMxVcFjhk|6ilSp&}GNJKR=r7^GGTE@ati$v%8p;Yy=zJfUIH@=ay zW-=8w{S`bhj7BC)x;^u}KJ{G*3;CjQL0V2&VGV?b`XqL#WtKyyDYwU*E}s~p6&sS- zk%qX|)_j8A^S?6i!;IP+4GYi z;*6d3Oy&agwt!Xpct}@8CvKax={&Mq?(QMMKa{5_`N)-o?<&<$9=%&ck)J>#D<88x z9iXumqj`{5Vc`nN1eR1H>!tT?dfN_456*za65yycAh@dn|9jDp-bjb^1h9|#_@Gn4 zbtwMq_#z*}<2<1-vi1}HLph!T0;GGcj+wQweJrY2;O$nKk+i!P5iL6V%atCEnGP5Z z4&62m-IfjkSsWT;i>%M9tZSPtA|gCee^VnT^cVUd-3(*iEMT9v%P>M$>a+NZ8i7wq32-MmTEmEr8>X zz{=k`4G{Lkqm-dIGc=K_fL{#`<0Bj_1=bDPRo2kBS$HlL!(b6b*<|`q%q$2$YL_iZ zaZj*BPb3dSJua;(XUqgYfRLnnn6?c2*ldHVcFq4N5eS$_OxjU8sKE-h<%@Bo9bQMi zr=BN-%I{6r$^(v}pk<1}NSGO5q59`vTjLPTj`t1i(Z8}SVMmdv{%17=a;1zuS`cYH zxdJV9rjW=YewM79lV5F1T-{z$jsJV;_E7AoQyV8?=~XdImB37;5w*J!boJcuT!*fP zut$d#o;3~#u$Ic2J$#%`u=)rbrzY(0Uv&3O8j8H~Ol@piNjej1&z8T_@lHfdF`R4> zYUfaPLHS*SAs#1hfLJvk25n4D=hg!%)Ck+v%KJ}VKW~J)(I`wMkPPfkKzXF3`Ez5& zNjEgB4-BU5zt!ZjlRrKzYuwrfU&(p0^^eFGudf%e_6F^RKFuBWyva2$c;JrzJtUR$ z)^L}~lKEePmgnyiMPl!4(rOG}5a8t4Hl#uS*`zwG3(+^99t^e|Gq4|6dIF*+RfAI) z-7Z-Iewgf;R(Dqr)vHza-n0q%xBs5Geb{YLaa^&ZH2+d~|E&ThL1SRFy}I;_iks(8 z`gLQq4QD^obS*~l12`{<8_ajigAK49M_|Porqr*%V$0kKi;v& zr%+)ChdS+t3%kivq-V69hb7eb7ZYt*CTW9=^CZw=vIcLS9YF|$zhXJMKM@r9s1_Hv z9!&*_@T@wy;(BWJ_$+Dr64yx)RN1EZbKX{@d2 z_sPjz{$z!8ZmqQZvTgxXuRvzjOJBAC$NG4P9t&!7+?57Xw_HZf*s<1+)-+5wT~Y?; z@j7W>{qj%4VWwU2HvTwA-|t=Su#4kFT#Rl|d@|)m^#l)7eZP8Cwm@Ly?POYwa$Q%3 zVY#uWp~+X|Q;{Ih2BQ~xx3)ek9uwPD#ECr4lDWlUs1vr@SdJ;2uVYMB5)H5o6&a}A zhWfBm`yrP8Nx;EI#l?=$2DA;a^}I(@);w9?U(&lL5wvJe3*l?7z<>!tX+Z4x#>@Vj z{Nb}{2?d?1kG2lhpAMF@&|r9@SO{G<(8(m=0^qC1?vQ-!kYR-m$M1I^*{@F^H{4^&c zpsWr*HM*m!^Uin}Qb=4g^CBKOq{S@y@_h%ar#uPTRDVfULb=;$kS&$Qe6H+NlctQo zk~3g#+k~l)hTuFqdfCAEGcX#QgZ1=hh-`7`R5hIFTZ&VmGwO z?9SB)?>JPZ?J5i1^>RgPDNAeeJ=stDlz35n8~CXUeF5)T5(a<_1ln5!S}~moU0h(NC>4d;+sZj&H(-D+V5Hbq_qKnV<@s9N>MXTKZXH zv;7Qu#9gFAE&ov4&IZ8+en$ox`>-QgN#T=;=LQqDi{9=PxWdM@8RoX7^&p$FO?@-f zF4N?9V1-ERef}YbU6dO`K)=xOx|)3V9834J}^6h+o|kQ<9BQ(C{@GWI%H{Zok?0PFt=QqMi0H@A&XLO% zxBRW;)fD-F8gJba3Hv=CESP+$DHAeaBVSC}tI)OZHJ1(n2vjyT;<_Lqu`=hD+TE2sPr*fH1ER{K#)D^T|Q-`v!Pr4~2KUjDCF zB_fl>DFV$^feyfc-u$+3Zmwa>v<`OVT^$8ekv5T};%ZZM`?RVWgOLU7tQ1EXcobKA zgbvy(^U*BcZgMO0eyG5WeEPuCW0NaE0CPGIP_<`2^3H~FY>&Ki^izB`i+JgsP*ULn zG*jDK3_5Z{%%vpa#j(&0ObXd9u41PSsVR>2;=-yYEqjTK->uDY3ruLW=`sS0JpW1+oCsz9 zn4F3jQ$ZAXZfOKVq0E!a1sdp$5%?Djq$H;9h1j_VGL$9;i{Ye4-*Qk*U3filpIR%V zb`k{6h0{40*7X(HNCo({&alNZB1*J+@UVgg79Lq*9YH+4k%tdYS!w>#63%rEXFs%p zPv1)`U?Qaig8>=X+tqNVfqd!1@m5ucIFmH6!9Xyxccb^I_wrpqVsMap+!a*tqnv00 zYu%wR3Z>$}t5n%n3^yk9Nr8Om#u@;jlWFlD#8Q#!Hn zy)*J2VO{v)!*yy#>r@Do7jr3%N4j)91qxE}0EXL)y_#pS^daUnS`K69%52IzODWWWKO zZ`sr?!MZV^?WoDo(B>g7m0eVZ{BF(!jF{EN5$K<-8+NuVQU#}=ye^X1&H>}^E^-9* z@)lcyD&$|U7x;}FmUSV|+DL%nm{wAb4|HA-;w!%?ARa>KC*Aqwx5mHhBqL1|P#tIAiW3;N=^qTo8 z^v_!A9$nJy?80b-48p=O+~ii%CIRL>LxNlOyfZR z#m;2mfk(blY`Ogxg#lInomeAPtUhK|V4bDMs15!gy}A;P2f;md{Bck-TF*DcP?IiS z4rGLfA@k%Rzk2_C!~0cHFR6oblB1k8TRSncPkB84hBHSu!&wOYQHs4VLMKHaQzSb@ zBjK+VVNag2ry2BGh?i}{dP!1ISRc(y^2HyGY zXId+*EWdM-4^^)^X#-W!|5%RtY86yytXS=R1Eyc5b4{1vu_IpO;K^K0NS%q)=|$wW zn+F%EQdEb{bS^2x4wX^OMRx@egX&>FH=G-SxhF`${DGd%vJGV6(l4Y%~xNQxx;uW0xFTm@*Ic@Qq<~s#6bEC{{@RAS@Jz5EY z41{9#V25XV0E-1p@1_>a=kgu|q&dFdGg{DWD}quHPwf?U}L+c)`R*0L4qD27X30viokitJBkjqIGtel;SuLq z=8-eFau&+2l8w<;zLOGPC*c+ls8Lefeg054Q`(Za-F;1nFtUmwLgq%sg(Quy2&Ut6 zb6r&yZm5i%zt*6j@x$m2ktaHH-FlMKK0bjpj+ZV7F=kC(Oc#CB)pUf4KO@f6fC#Hw zr=yxa%N|4BjwqYr$b)uqCO#K|y(T2;ogtpG96AtJoPNI4{8Ke^#l5u1)?eKEixg7< z%GvTkHx=^+d%?yDvuHZ|V5f-;nsI!Y>kh~WKoATmx5R~l|HPN?BgVf4FVr3qxtQu2 zrc$5g3)%)I3Y6&eKAEuxbO6VLLD<@^ye-pMnUf4DQu$7Iy*194nI2qDx?Q!}`!g7$ zddH(VEl0gI+DvQL&M&1?M{ArL|^dJ%@HlGW==FNr9*?B(x||4 zOw~F=t}9LH1?b<#!BcVOPi$V2i<+K$FK0KdN`m*rqHe3vhN6oFVQpXENFtaBGhf-Y z;OmJ&PX#tghGiF4c=^r({7vdE%S*}ocmF7`HgoSG*24A<3B z-tqW7;33HayhzlvDBiDCxn=DNRk=~crKDA({V@G8!-aV;D6Udvx@RIqkQpC{x8kAW z;1TgSOWa`*o-*};wG@d^SjP^(D)F)HDr?g(GeF6I^oDYb5%e#E|58y$SrFWxuKYK> zvUWUz#xWULBy4s?E3Cd3btp%(<8QmV#8rUgR2^>vN=^x4pb|{^^gB~&cbB60fKKZ)n6ITC6XH5?w;G> zu4z-|K51m|CK+!>{?Y6Mq5erQvINB>78>V^J_dOWch#zyAp#=0M%{?YzN z=~GVx<+2?vx9MiWv6uoQBu?{&;~0e#e*r~jnHT%Q>upc1z2T!ts<|YsGbI zw3o4`mb1(NNsm0>2>wSrEv2I&kVu&b9kWukY ztgvg+Wq;(BO9R=AKR~s}KR822IgZE%@AU4A_YU7|`nh+5y1S;g<;7OKC+g|UxmI*- zn)2&q8J%%TJ{IQg<@0INA=-hcOe<$&^C~876yN~SV8w|NF|Dinb^_I6zR7+_6A^$6 zk1F!)vPIn>SycFb7V2%t?#onR?1gAwg|GirhQoZA;C58dw?iQAGg@;zApne?0bmrh zbr%(dMoTGO)YVN-s~SfVx=OZePIaNSqN^SAc~swbvaY}Rp-dn353Ms!7&UoITETPd zA}icyNa;%vbLMwM+7B8@0+LrS?X4ANicjAZ>`HA>KT!dX5ECk>f-O&eG1D&iB%PsI zv(vO0oIc#5*)CBKJ2Oy-^XrWTkzyGUfLaKi_pt<4+?g`5GsuwRwQocr3m%|24P zPj5YDNL)J^vD}i9YhkkjM)0OwPqduc=rG@g#}i&n_%7a$EvU%0wxOLU&_ywsfDz^N zD-m)pZf5GIJ+jhY4zuXwT;?KjYG=a^a4r&NcdK*!4S=DlMf-k0aK}@ELCz&KJcrYu zK`ZL5U5XO8?9tt$O zQt0&CzK*&74HrIr*T8@<;O!#0C?0H_XUq{~!&`CeWDiBB z(f>FAeYr}w!YskL0%HS4f_UCHXjM-4Dlz!)M|mRf_6@w9stu4QwgS_BADH$5!AqW= zU}ONmfo?x4*;`~F-5h{7paUPAr;eW;#|bh10{C$*4`kxbtZ7j;(tx!t=KrqM;$8%h z&Z7<&Rc#+Q143&jz~0+zF6+PpA01S(LYII zGLy0M7Xf4s*~0S$o&abiV}RQg{0VU&07F%CK$=;!5rGIked15wh1LGeM9fKD98tSI zv?ZnhqG5VA}362UOc~>3@HiyzZbuTZ@+O=*fY};_CMv;iL4jcm5Zn;{P_V zj+5twc>bIg)CE=p;HiSJGkge2~TJ4Vs|WB~Y!d>gs*2#48h3f4#A1;1mX457^(%+(p1vt^@AC-?@S?TwH7|vGxQ&vijqu^qT+eV*QCX(kf^?`qiMeI% zl|}7#MhW(upGp2?WXG9l>f|WG==)sJWQAg`9-bJ*We=QaXZI=Md8D4F#-odJU+A6_ zPn?29;#O&!|2jt@ZuXmpy}wuvG}%;WLb&EC2mQpe_h3@UZO+eascGpSb?e_cBhc#( zP9Xb17hx2$1QQT@M}7lqF_i+&Op)sh+7R838cD*^zvxK-yPNMAMhRQkQuAGT-Hb}6 zwro@*`sq%sO2d!X+zvxLYE6AQu7@S=i3xF2M^OdRydKum;TLNUB7cX*_R?=wn6>=E_TdLQzCHNL#G0*IArwQ91RQx=5ekG}-@|L&oH?&z;tV@p%F?z@)pwFf+< zV+_CkC-ptutPt78KTf2sp7+@D$>Zd_ey{v4OF+L~(H%339Pj)En9v`+Dpal#epfUc zwXb)E$PjG1xyfv~?R0U+Cewj>L-Vhi3*<%l`?AGlqo~Jzvu~@bA3kIq_Xyi=JbXbN zt?U&+3=r0J=U*29vQnq(5?0}L8P>kAqJ!?YO8#PF(cHOeXocV7IBdMIuV^D&{Vmx* zIWHfql9FQ*k}oUpTSf@3M?Yz8I6laY`)?Td4>um&q#WhLk(ZwY$&u~>1OX>`tUP@d|H_@pfi*DFl6Dt0M=0%JUULE2)`TObqiga27&Yqr2>V zqEdh_J7PBo6-u}J34;%un_$Z8ZsQ1g%U}topoaRwh*XfFguVq!+qpOl*D_cl#C}(7 zYqMAkI~uiQbVwXvvfu%e1{mfHet}Go03jek$AK257EoFz34{&YLOV}59L%&RzPjkn zuO)b=R&-4I-3Fv)G}Kf!)aa39s>s6OxouAP(kThIU7D)(jntSRdu4p(&ds$7nX$3CSxcFN?|{&-GxAq~i~S*y)* zufuYBId&$}Io{l}=E*P!o9b`toQ<-JvCB%Z1KRMq(3{jz!%VcL*Vg?%wOBlAoo+QS z>e4a|<^>e@E5%zYV|GVz1Mx$GC9S1v@iY^TD`ji(UL_oFJ|4hFVA~) za*cF)gLId{{S(TPQSlCvkUGXY=H7}s{D91zqKsvwOWOReFl5n^`W5XLhCAj3J4py% zQUL!^Qn7EOy}lr7|2A;nxveB*6S(@f^bX%~M)&lU*>aE5=Wl0~eM*w^o6*+dK*|Nx z@0MJtijCcGrR_X3i*`)%ir(l-%Ny1KMn!B?RLm&dk^$nAQ}Uag{Jv_k4KqsW8PdM9 z-nWhSvFnDguAc6gW=Cf`f2)4K#@o`PH7lm6l66|xZ@151M@ECUciaVJ#-JO@9w=um zSWJto*m21t^Yxr!cf1o=?Nban;$`f@&PDdj~)J1Am3G`^XHDVrH+R&WH<@Sd>@ zA!b6JCA&7pHzI|lefpGh{$%MAxstuiVb=icf@jR<@Z`mr9N2I3&tF4;zXut~b6Rao z-m^PIX%oq-Vufm~q+wJ%(7|6cTQO~x&O_F|V=)a(SbcnW2=%V91{TXz?`pJm7qN`G zNvxt764i0k4USG&9)qXmiiPC@n)oNcrhE*O&jL(%Qd0A&$57~ZnpCd9@jeh_3VsU? z0wUXGSNO19Ie|b|YHaNK-O_QCoUer_NXM1?wtu!0Lc5~)+#8+*LhE$SWwwd4P=dDE z@SIg!*?B0ATuLqRR%&I%V*o7sV7!il0KVpnQRO(0A`_6sm}pCQz7c2xCE2Q|bURF! zX6<1BYS#nXa4+fBVkJF4zNTm@xumGhO&AdK^pAwjy!$j)-m<(v@2k}h*0NJn=idx# zxBZ0weNt;L30BK##cMyUBiIsvu41g+=3!rY{C7<{XVE-i_7>ds@P-!ZwIYdZ&0`oe z_^(aflS`fd+I+ygr2g+rQ@e7=|E@`4U)q$N=6Zc7FW5{!-vOOX)EKX=ibO@MQU3ih zcoAPImf{5#a~%t#9KY19 z&z%pN+9{8xwDwQX=?s6;IVZkHWDCX-O?$G1VgB+8hA$is7*w7Y8PI$y;hT&c#x~-&=bQ3vf`X61pj<;Y&whT@kJYNQkB$|H`-k><4@+u zyMqhcPe105jxt&Fs*qHZihV%N6b{N-VAyvi{rj}m89miZT_WdzSLC!h?rG58=iO`4 z_JN8ZFZDGyVqVJ<@qvM}U*mlhDiL_|7>EH83Cxj@gK;%7`%b&PXqbfp67;nu*&O%` zGk|gv0b6Gt-fb_;wXVthAu$6?UCa^qlT6yjoDBSVRb38qhk?K@{e$Mjkb0ZW{Y46D z+y@PJ-@Xo6ty+)7+h#dMGXv6E?wzWUq*-uwW=>c+Dlbsb5cM7*<8^9{DE5!a4 zd4Td42(!)>a^S6nR+E5l-)VlEjbz(uXN*33N1}&HQ1TD+Qi_%T!ys+vE#VX7Gg6Wf z;YVCgQ0O1})sVn7wtgX_I&&=PsphxPXKAbDb1maJZ&Hs*A!cpQ|6wZZnr1Vc9&pFe zZ#)M?kir!?!_(PjiJXkLCCxPxEA@!N{LoFO(ko+Yr1s1(`3ED%weNFdac!ckmd#j;Ix!qxsX>-B-O$?}`KQOl*j z67QWh*=HMiO!9I(>(Zh?y)4S8#+l{hD(9s(WP5e#<#l?7L0(*CJwUpWv#-fBL73l+ z&rwC2tHwx;)et?c@I|Z=fVlZ9BCUG$?IR!s`p7qu2T<8q@xfkxQg~(OfOjG0NE}a3uK|Mf{b%om))`F-p*2A(Eb{7QTHn zxK{*atwk@y;g~77>u^@~Z!2)>P&`Zab_CL_C|cVsn!S{V;Q^U1ns)D0>Wmofw0-y0uwH!A0VI2D0&FRXrVaL+N9VU@Rkj9)pH`1 z0WhWqfU$cB4+pYyQUj=vwSV9at7;`Q(!?q`Uas(qyP(SKi*O=YMt2|);+tM2V_+_? zb!5h_ajs51m9Ec&CuA}J()dlf)${3A@#@0nw`gZwIdy-!RMtDP0$Mz@x_)%zQfiCa zI!BL>M>{-q;2IrJT5(Pgk?^p?zDLl7ia^skS|Wl5IXZt~cYUs~7AeA>xTAE+w(;h% zM%<;fe%+V*(6ab*rF`4xdCPuZyU7)d+-1TLM%ktyz!m~3xiiV;|Mwh-qg-vcGZy8PI#5g=|VAdO5P z;FxU#c$vSz?v@AqUU40lCTFttPmC~DPFC#vI@WV3eC_g1^@ZdNj#=pxI;CIoUcBd3 z`XS$pg1X*TOu`1LFz>X#hNwOqrU(QgK4ws1h`m(|<$Yz(i@;*o(!eF$l74hfx;Nsh zd&{_OIOq4smefRu764-gLJM_$#P(=1#>mjEZjo31K9)nSLQE;&u>QmMDe^MLJE0bv zB(pfgeFq;^?=_2mYi3Gftm8LcQEDeBV?=pk9A#CAVBp0}u7L1jKL4QYbaDCTHZ4$m z7ksUPuzY!|4ynl(NS5DHSSi>0cRs>CVT zbopn4s@|R6ku@$whK$L$gu|(5esu#~E6~g~n_Gl-qHgq|c^i*Ni;Zi9Fel^t7n^jA zcF`;U>eJB$fa`i$J@L(UaUQv) zECQKB^e5%{r(}*ycn8&Gg5nJzDiy^iJQII5mjfOhdJQ!LOS+yJym>!J(VZHu1DeL) zy<#rqFkVT#{b`X`%2Kb76mksAiJcRtnKcy1TzOj>u2ZlOu=$IRR*mVwX6Xafg|?sx zl_2vUp=oPoO6KEgu<87PVW{ixVE%8|aS?Edn8dK@VPUGA^Vk=7ANK)bv4EZGnJ86` z`eoAA?g=dpiq8&JJ z&xYO7pl!F00&Tkd`H9!G6miXRXbAtoiEF3pbjWGRT2^!&$JKl+a5xEbabIUOOVNm~ z*GWH-e;Yrz^1+UCBjxYYXL_D-stP<8#JN6oF&5?9E@>>j(_&*Y3%2qepMJ$Tx^Pxq z*^P3qq*?)9@dJhAh`w#!YE0or*MpSJR;$K)V^6TqE>sJ2!eK(CAvvrG@&wWtwbg_2 zNJx=?*GSP2nKSz!E1h!`WKArU&Sk`q?^rH2_oos>3DeR&?B z?+LcLCIS0@dEOGCVrC`7)o&T*RXu6~1OkTEf6|C#YXa@=P=~WR0MQ~1pG6m9rVE7> zPHBntJg7Yw8)11(!1fSb4`MLu=!NXE$u3Vbnu!DmSS8kzW(Mq<()}v=AB>L8i3c-O zbu3#~AW!I$xjb$kl3M#_TIH=T34bHKXgD$bGT3_u8~46#M8B|lySz)fX7Oo6r1>Y^ zTanhZY16wL8LIkpc6{t5F1JszhvtAIyQ_G0rC{1)@8ybr#HrWh2ie!eq5>ZLZ zV+0eKf%dZt76Y>97ej;ZE14hIkLmtZi{E3MiJwYDkW2^+Ki5A-ekxB8Xp54Oq4|OPnuTk4wQf*{+HP6I^Jd0$o<^2*a#nZ6g!z3gT#miOr6bIO_5)By^g+Y1LjighB|)P5Vlg^k?H zD#qU}X&JZ%4UnsMO_DI#6pKt7j~Iui{aVu@l|mCYU9dvSNz}I?EoqV`rM%Ytm?^aiSe7H%W1h4dS=i~O+-{HVgPO1k z<9zZBJ6lh_gNR(cCHvXrLQ6c(@e^B3w1}mwvUX!cU-PJ~rr9qmlSa&^=qdSg09(|3 z+CrtH=;U|eqg1mG_hr}bUC$H4V0D>Bor(soli0S!XpJ-MNa_+P)C~aLCBKu_Kxh+I z6&3O`1@3A<+)CNm{7at{7GP<10{#OJ!=Xq!D(kT)ZLpemetL+7MnO9VlAg`XDO#iG zVj^~icJUswwJPSIgRI?a;@3PZf8)F#{y(zb0;;W`YZp#}LyJQT1gE&W(*nh%KykO? z5S*f+IK|y5R@|K;X`#3jrxXe94lPpPp1$vQ|Nq`~*E+0o&di?4NkEKoBHH@w6lEwOKHnV!ruXlhV(J;ziDDuaXQQcc= zr5#KHnE8i=CLmStnAQR>8Q7z90~8P$&tR%zb&kZM#0&-C+W9gA+`7#-%L7x{-7UEH@NXVS#sStOX3zlOtdN zL$fdC7^O6#bd;c@s}766JKr+o`({Fa)U{Plh?H;}!M<(>^3_k#%n9n8*5y!28n^l( zr-GBJA067ntH^5B?FWgKs4)q+spL2N2=;{kF43n*Y`q%HV+4}PT0_y=x|fhuC&kP# zX&lGsLtPK%npfvd<_S@iRHv4Ju2Emhfsorec5a(AMS8o)w-W-4x`7T+3+jHnZw}rZ z1>9PpC`x>(BMmU|{bg&`s9gU8H-8Gh*(sI+ zOZIOcQ2!?iH+?2aYZ!1HUf&Xg6~=QuoAwOz!BAFf=vEq+KF5L+yB7y*g^teXwv&^N za_$-NT>QB*hBGc#;uqs3j-#AF!}_d+)xrD93;3P~FRZ{QS`4pp?oH>wU<4K@J{89r zA;nNrrr|5&0oIM?MCvrqNg%s`y+$A>J3_6~$`uSNtFpyqX7hapiYF#DqcC}B04=;u zqeRbPWk*~9AEz3S2sd<&fM++9ffjW20><{U&=6dJjtGb=LJ#z}wuB2t+gA|r?v`7}U*2p%)PUgO6+O4)gP_5oy#msV+57@kSvGsXt?*MK5 z3OZTT#kcanmZlK@W5q{c$zD{^F^^qp>OX6?u$TUKT7gme3DMo~PI%FpfM%hi~$+LAlz`gC*D z2w_Y=r6r;DVbh9`V}^XpGosRD)Fnl^K_QTwa4rKdfn7KB2A^VlzIM$I! z>29vO^iB@ZqPrSFU6DU-agoRlF<2MJp&2+kd1HBcvowO3a2y(d+anRCrkxx*Wac-~ z=^Xdy-~Tfzz0Nn&U2U>vo+{9BT;%nCr?vg^+IB+Z^+}Fp(BB-DF&@+Y%P8XcLcNGm zn%@ajIPnomtABC6ipdr)d(sMZZ62_j;yd;pWqlWVTO4l{Pv;XHNlMuHTDFz2(@=It zi++W5#BEjXl!~D1<>^y`tD^lAmJv70vkPk3Vm6;TgXAygsLy>8t?*7K-10yv$7T(! z&3i*X?NSb;1`9h4D)T3?tJ2QGh-;82zt<0rzH^*kDIWCeT~j0ke-Q^5%1|2T26E1% zH})KOZd0SJ?+gjd4&?H$khN^UHc{lCsIDuTn$ho8n%jfH7HNbykZAAvPhfCqV~uv# z*^v#W`X`-e7*dta7moDZBYOI4vZm4cGcmFf5QJqTia&d^D0&}^Jvx!hB7gBO@#+@v zX*Y=QO8c`hNdAT$e*EVq1MY1)5CmEwqC?IJ0OCMfYROpAa2ExK?zI^q*gnPXZJMW( zHHz^+Aez_Q_%i@R|FlQ%$WmLCp;S+57l*qvls%}H#uaD{{Ftj>nd52ltitHj(VNc_ zo%JD`cZA4ta7nlRV37vFoVdF;UZ@kFqv#L{cVy2&ZGynLBqi#B~*bYfJH z(R6u}z~~phd)7h5w6^VN&bDtpOCj+IS3DB*OYk;Tk9qh>c3Cgx!<%axlp+f^WSc>wq*Br<4@U1f)9*H01{Vye5xtq z0P)P#Z3k1>Fi!_k1Bk(GpF;^xaogP;MQ@osq+^9=ro((Xu$zGpRQ>t&p&ki`L>8}* zm<9z2Y#7PQgJJTIVPP71k(+@Mchk3!oBvN=(}fk!PSDdr?UB2>4+>FB3l{!aE;l$U ztmQGm-^GC8^FiEH`0Hg7^wY&xg?8`J<@K2%D*U`6n(mY~D%uM!B|3F_iu7oCr(J(u zSpDdb@b{&UHfLBPRBkerPw!>X1(~XcDVa`j2?>!kQ?J1<3buC}WB%5pfzhvB6e*Dt z^)p+_%(3Zs*w}GhAy1uLMXq@kARKFW#p(F;?~@ zIUg*`4OoaZw1+I9FDd33LXNYpK}<@un7|h1;k*|cseDc;jcAWrHF#sdNlj){BYqp= zOTYLf%3lbtfGY2SrAzYKDG~7dK5X0jQfqxZga2^bsijsc20QxFbsEzZQmBI7J%~Or zmisl#?t%0ZDFbMo93q*Zpn^#0)X#3arsJ=~*pc#iUQ~*KAy)ibJQ4Ow!`lbW+8q08 z_7PFap-r~OGM~AuJWXLt%|(l=(=GLiM-vrsKe@~AUs!(?c}tTh-(=2Ip1de9pB*dv zWhI&VGuS14;1NDTC?!(#c4XD1;o|Gy9M`!mIlci)V`~f$TdDMSIM?~7H_Fz$Xd#K3 zL)+6d0UM2Qd;o;t0)gD{xAd#6kQm*SyvM+zH!U`J+r_-k^P^JauObgv2qa{HRq^Mi z(XVzWg_lXS)g@}*ri^wRJ&LiL9i7b<8Q1}&NutQjSkT*cv0c-h(w$h5apGnWWrfV4 z7>N4#0lwuwQIZ{LRPhccV5dK9s}m#lKYCQgUC7ty-Y3wt$V4p z(%(f{tD8pVQEg%!~j(Ec|=keQU-Cp>+5_ECHzbMdqvDBn)QInxefkI_EjM&2`Va>1Qm=D zjnyZs>+Oj%mHyFHg`Os|5Md3SF^|D~SIiUhEmA+`IR+YuJn>r4f4&7NjX0bSRA)X~{e*_QqVJ~29gl$HyRXud1+isQB z?cv@HdxyE<5d=gqnIx<;CTI08OC_g!CH;n5SZB?07J>f7UzgnC%R2l>=yEk-N{3wcnO%-X>TZ2s zRp`d@j6rYt6x)mBi^Q){$9ttW$9u@YekEL%z<12B&U2v+{GS=Sjo{<7F-t+3!%v>g zj!*dL-p)UH4wD~nifNH{{K+k|!hAJWQr^P&vGZc%cA|B0B+r~)--Y=FhL2!t8cGh~ zFE4K0P!Gu{$*bDaDb$6WFFxRwO->UIN>Z6-;Sg(^=W1=W9zBthw@r2VhyoQ}e(XM^Yy1BxQI5Pan zJ0gAiwCIyVwd_#EM3)Pg&En2-J365w0dpZf`zIKe4hJ?7Dyo3d$d0T-o!mK8J6()q-NIYmd}kjaP}l( zKg6XCq)}V={BY=5)z}&MSRJ}Xrr!-BRDn=MN?k=CaiP2`%XLU($ z_@kD-VeaO^A>iUxSa}kolbsoYUDK=a<~jJF72}};_=K<97)e0+iI(k8X>!-|?c#fm zv~@8DXVV(su2%&zUD{s{Hrrl$mT0gF-V?(Z2bd(eEImxNc3&XWprj#NtPKyT`0whN|;ASFxydQO<@;`OWJp3TRJtiC@l8 zSQ=-YeyifKMZ<$*V_?dX>A}nu(_Z8=80L(C-~q;vQ{T;d-Jew)Kv_{_WO{p?sM0aC z<^tj)AfE*qkAE6FNJ1O%T@gj{D%~yj8KNCp$UR>m=~33&v0yNH^&*1G9O}UrXpVl! zI|8B4j9N1Uaane{ZpM}Jymp6og_ z#@}b6rwWbr)S(K3kf8W#vY|@8zg4e6jCfp6z(U{&*Akv8H|UID9A7~ZaJ^#7t9HfH zuKFfz9d5dvKy_{%rRtV7E9;p(bJ34ve5EkX(mnlhC7p>nXRxWktExk-D$+Hbs{-F{ zf?NZt(A)jj0?_O^;eNgiz3jG?=a={-f++eUA*TsCg^Re(C6o#t@xhu=nsveP>shSt zD3zK9(4;0NMd6jr*c%Sf@nnH*i$wLEG~4}XI{wp&Lca2_$v{sD}=xPE$y70&LQk zdjvkA#W_`M0L>?%`BWYMFhq{u^&1m*>P)e|$Sxs{-2wwk!G=3|6IEZHkliNp{K z&;}*nOx$~NsoDH@9;3VjQx7>#ojsF6BeDud*JKsBlM=v{vZ9gw(+Ij+wr-4R_&U(4HJpNSd8h0$9e=fXimd#^%=EbJS3s-S%H+q`_z1~8{kM3prK zx|Tl&@OF;vwp-H`r!v&=i@IcD+U5Knh2=~J0ak2^Ms^-+!0Q+teP1&wdgixsuOKg( z%clqyg4rLU%dg@#xu~z(CMnLnZUqVF5RpX~J_7{jYywA*9F0A2;3IrCP)O znY1NV#md>l>A^2<3Y@wqNy2E%ytKUV)c zKh<~mcYpds6??pnvjYtwU{ziJ@BBWC804J0a7w9(aeRy`Ec`0;Qk@X2%M{77fyaa> z&$)WK5QoyaD3T}2>kCmq`jleLVI`nJhue`d)kHKnZ4y$CE-twseMIS?@31Ji0S=b3 zKnF|$R&P7fZ-)N0%wHI8Ui}*-u9D0fq0jV^6h@?<9rMx0E~N)i%Fl9<;t8=Lu`eB) zX;g!=BMBSQ^Z=Vv>jsk+HF(wiOk#b$Xak%p`Kkf11J}+Lk2cR~MMyB|if*I0RRIOc z*2ql0PI9FS#-7o1A}R%Zw-2i=#4&Mvy5v^HMI@`xzy0haE%FwOjc*G65j?MdIq}|= zD)iTo44y>U`xp$`5jNi2-CJS2Z+|um(oLFGV=&ghUP_nK^ag!C_>7H)g{4$0y!|2E zS-M)6-{SsF-Q`mvi+8XfI!;vZtTuI5g1Y}bemBEJr|;Z3&0)%i13G zL0~)t#`oSE`!9xSaZJzG^%oUW3<7uSS?y1={52=PcF3xyQcGzWDd!&!&QNsubTd-)1So1#-^tgtJX^K`!6rNJ@mV@FnR_l!FZ`OK;My zMZYsl@A+z0WV0%rFu+igE6~)=YJJRg`x~133S-&_%ZyS&U-NX7PtVCSJ5mV0iX$m6 zXG5n!RBl9ZH-9o=C+IhcW}@?#>L(JiX}i?H^;)Yv@La1YaL2>*X%%{g0gidr6hv4=<2``` zlCt5#_$%5%r}*aYVjXg~@J$f5ZU^Y^hxuAA=sq9r)m#|vT40oE0=PX>pESB<{T36> z@z>#-8B4rh*&UU#_w2k}h`ge0pNuUo_hs$zStzqX2@g!wgWADAjy=GNv@N_E)J8jL zLqj=`$^bf1t?~o!*%5-%=i6Tb@#t|hUQm0DBPq8t|J$N?SEi%^sN50NlOh{8I~;_| zf_t}XD8r8gcHN?tBZqDGEd#{KLe{Ftj16?Z`d!d>`!0T^W~3W7+=&c|=o*A9P4r|c zixqvPr20wB#`wvxg((wlO+QTyC9ZfHPBfHdD`Ktf6!W_N*!`2r6ea91)>$>~P8@0} zOJgxs#zJM2;%S8c$gUrBrlq4eC!{n4J|1`_36~)}D1Rv$CyPiH$pf9H$m%O->5-o1 z{PT90j0(_T)VLIj18acK6TuLUdm?@142dFwu81%eN3uO?o)YsQ~eC}q}p za8Dpt$Lxd?Zay|Wi4@H3e(nXt&n2dMyoOJHkLaETO-ZR3(^q{+%jaV_c(;$9Qy9Wf zF&bbnyiHRLXl$ciU1$ejwuwbhf*AkU1vlle{bd(o@3_;#&}hYz^37+f8!SeHz~p1+Sag0mu)Kvey#|MRf+aIa#&=xn{`DqUgj<@;TN8IlI(!kv=17s z6nf^K&&h7yWL5RkO+&j0z?78>9tH-QF za{75S9yKg~Kk-Z6pfa&(fcF0|SKknn;`8shQmHv;%^PyDYB7 zg-@~o{`I|cPu%Z2&sQIOCQr^uz3?pC;ss|?C8fwZps{Xo%pIYgom$976?+EH#gN`P zbj;2i#S@&r!HQnZ(>7R}!;3m^UGUMo`@%nhdxjK(%w-n|rl$s}gN6F~GndWK`hAl! zIh%Xl7MU$0oT9Jd_Dw8*l*!;QXIAVB%zoKvFVHk!jNjC=R#NxJ3U zgCyl2Z-#I^d5Mmmi9BQac7^J9$MD_O%uOANmh2QksWT&A6Mh4sj*`*yWlcmt*nygS z&!tKIZA3Fw%19wkb1fv3pkqLTTk_;J`!i9_rr@T7IE-St|vD;3s*!SQ`;3{jXZf*OR63U1=8}GII z;qN~sj9cI!h3^g+b{LNX;J+e_>qg~@`iLVUHg%bGNtiw&3$?!g7BvBFiM9R{fAMdB zE$lX#54)9e4p$A8hoDiNdOkX^6i>X$8fFrh4 zApY9P4L_E1sGUHqtrT0#4RO4SEOT^tiD=hQefUYzRn25doIB=7d2K?`-P1YRLR+h@ z4!u(|<6L%sJh6;bIZ%7K4^35UfBh%*WN3akr38SqMk6t&stKE#~i}?Q?5Hdb=~A= zhB^%0+9}?vdCTn_yg}SX&HqSnMq*D&Ud5ja@FSn{7{|@}hh4EVDML6nE17)iNLGhH zEeh<-Pxr_lM=13EzU6oaYTxq(pMsCuu$a7%%Dcx93_h$=&^TNi;WoVgtEg|(=kd!q z#|sAx5kVzY6@h(T%d(*Zh8qkm5}K7e?c#B@XBX>ZQ4i%=5}`rNt70v`jZ0N)Hd=3p zhqB}*Kx8+p{A+Q4cg-W(0YIN`h+k-VDmVOC;;4V2-9u(Xyw($boE3ydRN*qrTY(tt@O%X=gxmMuKxwc>; zSsQf7V&5*(Q+!OjNTs6rvp#|n$AEKc)$k6dGm{-*Gx*I9`Wvg#CC}{WZ^B%l^$CV| zeUSNI$||4j2*ZwxAIlk3ul_jpB+o0CfA_E6S-AC9*7%Wl(g5`y5lQk>&aK*>a{axj z%I{^9%wR{z6YkRni~>mf1E{&_n4In$~!r0gkh8^!mAH88Qa;a=g15 zn-Vu-|I~_*$q+Y!GeX9*ZLr~WL~q>9cpDlljm#|EJ%kT80>#sZFe;fn0wujSSkxb7 zWCaOZ;E~dXt^_yogQtzsND{gjU{^^ob8Ao1Bzh}k`n4l~Yu~i46%7o(8)xE9J$)J6 z{SN)Kjg)$pxjig(D$9I~s&(H_a7!X(1(~cpQ(@x$^tuR$TZ3Lp`M-ysgF+P#dxzN3 z*M9OJalgb!S*Q?K8aUmn#fE29Pde7RgjLJI=M&husTHs`UDd9p+s@z{xX%%Dw^K#dB3qv@m>JeQ`!!eb za<}5;Cz9Ro4P8)@I+UoMaTelH@Oic)6|9HYb1OO_JaJcRRg;AlX{I_10Tyq-PZg+- zhqkwSljC#h7Bkj9H@jUe+YAB41P~&Xd|2USh&bErx~Y7>A7?gMto>#JpSEhRxndmP>9&fr(q?;s(FUhQ z?<^U|mzjrUQ5-YddSeog@&E;Y9W>Y8MR49}x>jti?Bp0zGEONC- z<~`U~H`tuWbo^**GY4! zzL`Y7C0t=nuVfSCU`ut%+W_KHza&<`t7AvXU=>cpKiR2+jDPyW2bGf%xTT506OCCs z6Irg%A@6XuAVeOyd2}OWMUF3>n=@7G4K@^qe6wBA#WRY?KoR|Ne4Eh;&X@7m!M8hP zRtO5qj>DG)G^Hcxa17X!K`?F)B*GM^-lIIn`Fm7LZK0{gR_Y_hFAFQZigmlya$7e_ z)9AGwyNBycV(&V~*T0wL8%#EZX%T`@ZpeZp4>kUj_Cw-}H;+#Su)r-_yM-;d|Kf*T z)bYEwsZJr97&lBWKJaEmSE4@5x{Pq9HY@9ch4mVEJupi8T~>N)++x%&hb?p~-?fK4 z$+v(1S+_ara~Q3T6SkLAm2>OMhP+QW@STedNhF6T_NN&`8V*K+x{z_N9Dgr@Z|?!c z#x~~hkRPG>YT!Gaejj{X8a$Yug%7;8q1F8@o>}Lo4UF_Us?D-IjA~|UV-0M6rALOd ze7TfiSuquTJ{9Xi%F-&bQr=12w{s-ScVy^S0m+upAeYUILJG>OG24I$V4I{yq`qSd5P<@n7Gc{ciWzEcI=E3u9nIlQ(f&jFa{^- z^${ddjYL!EgkTK*IHCYKd3TY&lW`y7R#Cp)hLAo1<(s<%^shO6TEYE6K%vuWVilkL zs@x?5bzxcRa)T?paPgpvtnYlJT8S;D*@`cL=8m1?P08xg{ysM2#3TuFKqrdPmQiz6 zl%k)V0&SjsH`1Gu(za3-!%f88n=Pe!(}()yZE9GJvz2F~QF9H041+_ArW^dJa4%M! zxy2!QvFk%M;U~%7b_e*MNfrdg5X3R#`6arYp&BL164R?t5A3MY=PSM@dQr=bv#FM# zfjvsYaCOax5zMm5x&nVH@~gI>h_qnNf@lOHs1}10(zj3AA#6`7YOe#E z9p!l=TXCivhl64?@jm8&au&0R{EvHNTKR+O8J>YM>r^l1wovxf*UV%Q@_WQ)rG4By3LzqOn6Mz+j}UQjjkz5R zj5Kt3tvmAUAkH2=&fcIpC{d$yaT@cRr6XV2ZMfpqm@niNm8A)o zJ|+MzB1Z^*=Aa4k2`a2Ij`&d(@`d0HSCtIZII?x=t2?b=dz@*jp8hX_Gco?5=od=& z-B~h|k5?5lz~5uO-|WyO=+r=UD)nbQ7pz_Pm2a{&cpd<8T&%#(-)YI=-tG$MNW#aL zxPNoYI%E)Sl?5FgfE#v&MOXZk0rKrT@1&P7KV^;B`aoG2h#Lr~NIri2Z}%-!5c2$w z2<#f#=Kmnki@^tPLk?!3N5TR>&K#Bqlsx$&NY*Gg+{~83!&Yp>aLLfx^YYjshXqqS zLUEz5jP2>@TyGMNr8YY|C2hiIn*9ArO#;kwtx-_X+ZE%}PASAe*H(plS zaZsQYk~P&h3A6iv zS)Lf^KLT!1_YaHkV2FZi10VT;BC5aWD;2V!NC$b`qrKfohcZ`V`E^lwBbivX`39^z z(RFfrqx8hKQG)q58@@bJN2Z674uIKiG+;?7x6Tb%0*9^<KaQ_t% zp_FT%z>l`$p=O`o9{;Xt7+g#Kb$N2iOOAT>3BZ8kJJ9}4VN`gX95~w6?WL+|YI56q zWNhebN@~p^QgjFO^koD%Fwi`R+)S3=0xT&{YL-VI1==7Ow+*#%ulnvt|4l<*tdoqd zv*i0j)xx{cg*0>#{opZ>q}-fkoZc_34YlNi+>x3aCN{}eY-im#eu++#9eF40qId3{ z45Zh$iHdj8nQKs<-wlY?Opj_klTTE7LX>}-RfCgIHc1Wj=SdBhzB&*@eO}aX+vKX| zS6c34$k)1?WIJ5Xo;CQ4^&y$m=V7Scw`* zM)7qMV|_z*D;elK!j6>NzYXzV*Ddc(p zm4HwvXb94xY?MOlN&hdU0%#~0g5atG4X#3A?8qbF`wJI;1jnlxInZ*@64cpQB#;*e zLxJqMm%y)BI&K|MUwj^nQqIxSjxuf!Ws=_S$J<$saoGcal{E%PUK-73@t|c*<_z$r zW})^NrH!?m7}JE%f%T=UT&0lW*oyFSV>`p)`X+M#t*`8<)NB_&awjWA$`IO~6Th8q zs2d}W9Px$xVS)6FB~6TooJ&&guL`MUEBp+G$X}dGEDGBwxx}D8D9zQ*<%+}?{IK*% zq_*s<<}a2L^^!OF1CFrQ49r1@SbNRTdR*AG)DKZMCi|vQN~GQ?e-6nrfr25IZNDq+^KaEE*ibv=lh0e| zP7K{77trB<>@>mL$2Q2*={pZ$SYtJEw2KU>p=tk#2~q+6u+yl+BwBwj^X8R~KrZg#klDp^R zMV+*R7wxg0Kb3ok>$t_3azBIT?Sd#xYumu~lu9?cOyThiqzoTm6uF zIP>%3rI{P$@|ZXWou`xk{-M^OW<(Ds%NsX%yaVvPNy^gdhW0hLb$QzkFusVl*Cgc@ zfqc_(SvEPf^A6sh%HG0Jfo$r2{(CVeAog@2YKKJU<;3ko23Z=$>?snJ!&<`3T;>n` z&F_KIYiSX=qraML>S7^&!J>&Moo|w>hzQjV3;t{~;{E)Xn!&F7Oh_ayZBe(O!5?35 zQ!m)qErQKqeT(F^!rzL#5xspSS*>No{+;iGyVWfk?7v)D^o16x&ZZ>BH{0Ss9Z^BVF8*0Q*#_T!o;Ir$k{7<+7wBSvLC zDW=1qopX#?qlnud1uOd&4zK6a{b%zDz4*q1L5IV-h=xeP9UAVpyurKMBTz~JOH1|L3BqHB|pKm>*QwML>?_LRvXk-I*#MisVEbB z|4T_08RWW7kHqjlf?U7QuiTP9yj@s%*B@Gz6zItB<-+ciN)j{JzDg96s#)oDP4&dn zH)EWNo+_6x`>CDk?C>v%-VQW>JGA-+^?HL)!`X=a8#xdA_xSsj&t_qc1{=>OVl18L zLZ7lbqBo>rtkG7>Hd8Jsi6!h(p_CAon4wUApO5(8YylzI|IZc>E+vaB$FTsUfW8aG z+7|mr7Ocn57Tl{%o=SJ#s1WkDP9CY<5o;`4TFlC2OHe8IDh7CtVj;8no$&5%T^#wK z65#*P1?n2lKJ%~t4_%;j0c9yqD+c7PppqZrA;@$Lnwu9P(T2;zve1wRR$#XlSzH(` zlK`lO1_y?TF^eKPcN>t;jv$`zLd_{q)P@TsqAeKeN>xEdVSDlj-9bpzsC9J@bivJ-8#5lmmZU0bhqq%sm@I@TBrTl0kDwxN@wdAuz839nCGk zDA*G`N?vo4n*ewN)qsaF`5v&^XtD|4hAF#&weCLUPQQ8@DWvAFyRQlP3D!U1}@qpyrmabM1vaO>WNn=o)1=F z6txSSeZGT>s>4Puxl;OwUVaw$jDIFViOoZ87_#jD!y9-2cmw$pGmYc< z|K$z*8}yGiFrHs^|0AiM+Moe$ntavl2^0^do+}>hos;?4)f(+Fim{FZed!Y}1iBn4 zIoo;)&;~wA{C~88cKOvlT;^tROq&bMxRswx`Y{*yn}hh{WB=LW z+0<3>1ne=AAEXmp&0gR%o0V$K^iN5NZ43%a$D zA_y*la?rK$pCj25Y}j*X)u!Xf;VADbR5WJgbTLY;g)6Pdf@zBrS^ z@}Le}zTdmP_pdG9Ou_fO>c80){hBB3)`#4L%8B2HPV!%AT7sl#4~UA4 zq4`o{m}%iTksD;yy9#%IsiOF9Fc{Zzmetrq8j?N9+G?ie@GfcaayFq1^26 z2>1W8Ccl|C%}7ZKcbW-S>^Ggnlu3U3`i@e*lWcnV1Ncq&Iz@{(_{hsrjbm7tu-sZ`vT{MTipXQ|CIr&v% zdgeBESTH{hMM71FQO0AJ=iOfe3@ZLvj3mz*sInn)Wl2=8k-iu<$+by&EBv4IT-><=OH*_1sCwtxN$;XQ6 z69+IaCse+nCGy}l6faHumqIPhRp$=msjAL@)erg(RMU9kZ zr}T67pl!3I$P)D_7gX*h4nYmP|yI?@F)nEh34cUWI*&pS8?u{(Hj&PYJ?=p zXU_zqqeUyaTy-FHbZ4XsNk~R*kQbf#2MRRfQnX(F@iPMuP1@L-$Vt_%*}J&xjv@Ca z7*t&Pd}S5M%Be%{WgSadtT`x9?VY|S#5tvCG6?nOObB%%p2wLwB<3!*12~#rN&9+- z-6N^$t7nIE19W>pX)a%+pAberpuwiX9uL{0I}Tmb3gR5lgLL=1&cMU^SZNbJyM+rN zpKva4_rksf2*Ig|gr5^}mvr_5V>7xN`&|v{^S@rqwX(sqVV`!D4#CN~#WYmL%R8(&YwPWik=euYv$^}+vhUCu&f_1>ggU2e?4Z;Pov|PK_$n*5HW%YaywLDQWWT8tnj;XwcUx~wv5Qzbhj8)Etx-wrn z`{YQxM6OwxKa3Pvf&0^b*>d4s%%9#oxXfJykXAN51*|pvGo(fgzOlqM*PED4eSrvR z>JDFr@U@jb#nQ4j(g5A8Gg;NUR3@OmV8wm|rwU!QXhtgI5|2JQ&Lm%(^d!o(AOczz<9a8%!9Fn>)m|?dXDhJy)dh>Y8M<%oh6}kyc8Ls0Y9Es zd9d-ca$t~{_vYhdT4gzKih3tn7R?Cdo_*`$%-e8%_iQ62`t6lhIq&G9!>8`xP*VBAEgIfIX1*hp@!ncr-1TAoex-w%yeCf$(!I z&sB-8>nQCX9nSPPJrso*J4QT0?{T#w6y}(hC*6JvXsJ%&Or1z>9+vA!NK^wm(}JH? z9vipi!D-~lMBld)?RrAAH+J84#Z<~~KHPV!p&e5-QFvBJR2{_6W(;;D$mLyo<40tyB1vpl!-f*DF#BgLNLy$S!%UjukFdY(OfT2o$_)J*BU z{R_zlIabGNrET6?#>ZD$zUs}HQ{?Xosg2JznvcXCV%1!(?9PIVsZz3sIb;=lz0%Tb zFey&_6Cj5$PKksRZ#|iJlPMQ7qKH)m9dv|e8OgW7Tqxx{v;76YtrXtcAHU6x{Xk+q zYZxz1{M^lmF7$@Jg!v`;Kxvt4xTbeo!rikTZ^7>!dh`dPB69QhrFdMsp?jfxW3ZU(HYt)ShZDyK_(x)T z;e{P?iNoXq_Cgxz0bVZ*Z6V6t9BfK6qFYccLPV56GK_LO{4*6kYo#s5N^Bpt-FWC< z8TbB6T!HaGr||$jj7lHwo#>fPg5^g*c7_zhb;@Ua?5+AF@o#9PMU@noGX#q4AkL>q}rb{M{wmwr?;3?yE1RLuu@&+RcaO67#7 zWtP8s-n?jErNRBco~%NROZ-cI?;$+k_ZI=x4-me39dgKQ_@9rI<-l6{RXWGB4_<8Vo zjIb1-G%ms)zv>6TjdE#FjZ{f}dk3D3bl7=K>}&BmP^7*_$u}Ihxs00x7g3D)&&T#} ziX3OJl5yx6cvYwGkV(((zHYs|!zHX;oBPb0;Sk;t%J0@^77`% zaiHj0_vS@lIC{hc8-s&DEc@>pM>ooSFFv)u3d@R;o{aMZAAk<5S>tUj8#l_80Oy?C z#E!{-9c#uxdtZ86G(2r?XEKcM3DOan|677iloK2kXu?Bu*V)tDm}%JB#R% z>RDT~VrA9)(J*6Fs=jtO2H91-UKzsE%GhSM{FH!oY!41ppOS`$43Rr(|MDGQA(=J> zP@x|0zR6se(LO3^psly>Cc&hBMI;N((;r$scsO^^3_42}1}AiPpXWW;-m z1w1j5TsgYrf!+ADPRoBu&%&luKQp%490t3w-+Q3;SDdGo@0Ht?FMsi3r$bYw7g8O2 z7-^Dor$}*6y!`;Bm`~g1muN29`l;_`g{MN#u*4vGpNLqn3X7ZL{bpC?v6=@EQ!o!l z82XT$kK)06n~~E+be`|5C&hJHHIvyszAF-B_1xf0ox9Og7M#f7P_j`eigXghYg*u- zvg0v?ZjNaezS;-AqbdV_1=TpsF?&aiO1@$41C7twB<1Y748uGQh0&uGDI}Sm8XdK~ zhm86cqb#xREgkPyx-a$c(3xk0aoATSsv`rieQ?t>g>(f)>qkGtxsS1H`|a_M%rZLH zFp#gZA07~UE8Xn)%!zZI8Zrvhy3DaYMPWLv645~BXL#fx9PW2WYgm*;81P}S;g;+8 zBkn2Lh1Ht|@FlBu6L>HY?`=>f`kJhBj(OT$WqpX^{S1wA>yWF5Q1TRwz{(jIBgjXS zD?ph*7*0u*p!_NQxG({?hzPzX>iw#J)!CjO6+VZqGl)_w_B?^oW*j*{!(O z#rs^vHy#Ak0tO$)zgGOZJ%g1(3+hblN2kM&7h|bVy*0Kh>w1y zLm$+sxN9v_k0BfoR~JiI-|)sR~)q+HrwAryQxy0JUrTffMfP;sO3vn1F`cD zk7(`Es!FxsIXft|V86(|l~jIh1AB2n<%d>HM7e(_*yu2*vt5CBnQ36^C7x*ycYBRt z&X8-4R+)!m*+YA_H}M#C_RX(3R%@5C7yAE;rmqf&;{Cp6mzG94mF|#krAty`>6C`0 zkz5ezPHE}x?v*YId;OqrT_Pbp&FQP4Z84x0tN+qbUf8}*|&K51D=3H>x zIiA^xxhh87-LybYpp_fDR_awcG_*r%_wCh27bSPZSh_wf-1X_}<6j)MS`n&ae|ZYb zj|r_s#z2nFY-C~8ZeczJjw1G7=sH^As)`8G;W(%xfLb0|U|BPK z#6aTk&GeST88$(a%4RM9(JC{qHvOjSzQDY9CQF&rd zh^9q)2_QFS9?SRnM?6!*5Bc<%VU^amqvJ9p*aUvcq#pBrY z7?Z7qT{Hw$+LTFU@O2@jH>z-W|9#n`4ZkE$jx6x0h*#t;)jl!+#5^%#hEzUO^JzAi zAVNPF)_dj{GDB7mS<&?op%Y;hd;J(6BZ{z{ zY$rR?panq60VSPQ)WbP-s$)K*9WiIf{y9;g4dns68PQ&Jji8q{RNxxx*@b^GsqXpf zN9^MT^c$war;>l8E-*zn>bpQIm9jo?1Iit>djZq-_)nHKFyZ)YiZu8RCx#YbrDpp1 zPy-0=SJn(YT!jXaP8}!HBv$ezp=GVV!rR$8Z)|KOSs^EGC75PAWiHo7wGm3-( z`=+}_x^QO$wvBK9sDQuFFDu(Jkj=a&>5q^9J^Gmg3*=i$l6-mpXR9;{cF3-K2nM1y zhR96Lv9Z#KKntFu=D%NBR)c>kB)>28uR>r#s`4!NYXCQr_G%B%WBl(!EDRDFpSPi7 zf3e)`_*dle6uax(>sZ(jS67}F^Sm&Kw&fwGPG z=f(;ohX+dpx>7m7Y&1Kp$z2d)TDZL<$d`;bFT-8#qI8KI^M=sAPHQlkG~$A&v;nbM z&FVaMor~j258%b<1EcEliv$J>5O(g3mkHR@aG4|DCv_#Ih2I&lnQr7uYFrj7Q90>* z{PDfl;b^*2H#1~S5kjb5e8jqu$&uo(H#y@YScYP8XfL?s``VX9fioT70T^A_Fo(0S`Zz^PjNQ3{g~Fk+nWW8q+vk>f#08v96|Lo)XXB z5{F+0SDXy8#&=^!AJhC-P zrKslVs-9IB?+wp?*<|1wK|{3D99g^%!et<@vKrOcb5vYtY@|LQLn`q3u*+IkfynCc5*Kl1@w}2Q{TenmdKoh>%?EcA*WwgXgdNDz+K_I`0m1BvRI~ zE7xSk$nIm%o_?(fg|R6MJ@-=JwD#azK*hAibgIOZ(Xm00BQ?T% zce^|#bO+z+2*b&wTG&H&Fdd{qyzH>ip@I51BKHBS-wIg$QV88>m`oevJbw6{#+>>K z*AVmRM{r^4*74-p_7?|^dM8|96;mn!lkpaqjM{xP&&J)k z*FJ`Em)glhE-}vo(75!FL5Ti+-Jj;+e}emi4w}Ri8|0x25^%nD#zir(6!Z8yk0z_w zYwfy3i1)E>OX-O?k~bFc;Y&%|r~Lf5wXx;Bu(u-cgSPPJh=N707-06_ti};Qp%yDl zdDG7JFHsyhQ45ERjga#Tk5~AW&Je=WHfDgZu%nY>6tTduv_dtwdd{pmbqxiBxI%nUPt15Io;zuM|z zg~1jY>5>|G8&_D~gP|???LFuyv-MLM)9MMSR7Mu23vuv9fnVun2!CX3dXb-JS zpI|m_6w4jIzxOy4>KBy%!4+A5`v}umW)TpXD;tl=$E624!_WK1il>3?+^h-u_?ocE z8c!3(`()BSMO*juZ)dlIeR7y|u2ZH@{GbC*H1iRUyq%bc&g` zQUrb^+-{W+3Cida1FL0xul9O>!gU+gO^E#c<#|+4-H%=ud^RK#%Q7 zIb-U;P+Y01PL_v}vS}o!0Jl{obs);V0v_(>$^3^ig|$WFJN`PQ)Cq)GIl~ z+9Zqx--^Ng+%Si4%GUS(hAvil#tz&DxZKrz@GCb4#CW#ac>}!xy?}w3YsG+CoNcVf zjd>2wbwo{Z{e5tLCEeVO!U3E3c!cS1HtdOSZT~@=32cOsS~M<`9is5PE~Y|n!iyzv zj!bzmp~*p9-|#JY?`IH!!Owj%K_)eD-xA`0r_uEja865_&NzRK* zc~Zq=ZT@FB6rP|!;MJKiFB1aaL*TK!xUuaJ~y$TmNrNHU5`FCen<4?a%`_Jg! zgh5V5TsL8)?!poXok-W~1m8P_1nB_3I7)Q!PyN5u0gqDWQHu~1uZ+zT?jeT$8M#G0 zrYLNS%x#VD4ZnkH!cX@j9JHtE2-6V_~E1;rjNC+xrkhhlcO-B9# z+IWlqGN52!f_c8~r?^?~K%0r;U-+voaGg3ZCkZb~Vx&+!$@pA z3F_Xre$RSo(F^hzpwE(dOdfQY%p*Mf=5lHp4Aw;FxSmg){Ca(t(WCOiT7Dz`mvE8r zf(Al(^SXs}DQ~;c+>QFW1B>B6x8i*L0Nx!zsff*LV#NZ*nNE*b8w4%FB!qE^pbG=1 z28wr7XC9`!t=EUr`~18Hg50XS4Yawxfv-( z&v7T!s5$a{>q4r+wC>r32BrnqJSw`h3K4kAxo7bQ78mV2%UhkukhhVB!F{uwNQmd@NhK1o* zu~vrKUc^UBJ2<_C_1i46ys^t)?j8H$!wFzPCG7Q21H@~MuyDqRggBrIq6$o0)i*r! zo}~U@P%DCEgOdv2Nb#V5-@$VgrmE-%{N^L5u!pdt=Z(!kXZq6VY2n8p{ol!b&Lc;7 z8v7bdU#HlZz7|T|T)%}eA6NzycYeRN`^2wcn%H$qb&4hY2|2KoY*Tlf6U(k94%B3* z>tQ^|3y0;1G_^MVU1ST%7{cXmvoY*C?h?_nvtHbF8IHXifU)S`Ia*7!HxmmDRoI~Z zXqLq&`hX ztwU|BtGSWpWD)sZX~2$FMBaM=-QQaeD&|1Tg7bUd(H6?dLQf+;9Gv&}C~00#wN<#$p&E>qBnIoNDbI_gT+$~wVejAGp1 zr%T?efb2ug%!JZ1=})P^IG6Ml0+?o@!<&jb)VNY9d108Mz$=vaSHge<0;iygTN6ve4-MU5z=iLOk&Ehr(K??R-zD50WuZP+gz6BA%N@ ztH8L)(P@AEPV1H~?=Kjsz1C0Z@p$;Q!k0j!@rDJ_hq@K(;4R6~2;{*2Meq}lMH!N9 zd+D^GISxMl&Z~BD`?VeOU!nfDf&TR?S=hl6%W0+b<5(+En?!PpciTSR(kq=j$PRQa zFlb51ExZD7??;XjQc%Uc#P-LCUv7)BPL~FH1FUG>$~)e<|B;-QYxkD*=FnkCf`FuQHot5wDm67*B!SdM2lVD{88I0j~`wrWM~^u}Uwh8x}4fb~lSR{+Z`GvhqgQE1(}&Qv1x~^2Rn| zrx*4`a3b5`I0h&_7&8y=DV2||<>n~Uyb@Ksog32zki!nuslHB&YO(Jw&c);YRzN0a z%!C{$b$`x&h-O~gQL#SKy1M2vH?1wMs<&fjJWwf)d6?O=Zf-OW;!{h~EgwZ@zRt)7 z2(Xv1v0!7rRCN0O^eDB8Z~Vdx`R3^Rel^aLPGX&Igv_;mR~B#Kfdx1)6v-pLkh7H~q}D7#lEkJr#JM zlLRfz819;2XfFUAISTHL2jZ)eieMyY*Igd<$*GjapI)s$ji%&+YwF}YzR48dkkoVv zZ_9BD$rZjImR}Sc=+6nD70)}c9*`sGSua0QsocK-X>0#<5AO9qt2QOLVVE=V@lyEl z#dB)iK-sBs?8gdbXKR`=H^B{1UXv4x3^CTxJZ__Y8(($gZkpVYzaFc#;VAKyR~Dzs z(=BE)cibT=L1UTM;>pexogjL0yEh z>C?@mV|-E;^yM;0sk`~uOry7Ue+<~JKjP23VxECTQBcv%h*c!c)Y29aipB~tdZ|D*vEs5uspS%BCz;6V~Mc^soTIc3-A%{(fS zg&%oGJ%5=4h_#slAg}90j2l27t=!U^5qxz*!z@h!Xf>Sz5HWJVGx`ib$<*l(-2nMu zSP{ja3y?Kpi-es3$8g{af;#hfVFE3OBVGvn3bGpSSiycl1({?^U#z*@ z>|*;LT+CF~wgM*^&2e2qmrQ#2xV{g=NtZrtk|IC0W(cM|nrS~f;rdNbhWIhWSIG?P zA6ASilJ5)zV8#5xl@6+YKpE89&Oe9p?J$Y7sOA{^T^{NAopDa3Ei`U3r^$@tOy9-I z5~;mUf^6Ftj!i!|1<+#Z{s@}dh31*~hRy0P5UEd^Dn?JCF!F{1m|vtJZ`0~0kJXIr{wKF+QicVSeb2jqGb%bot2eP9szVpF?76( zq?2Tex2CTc&sfYS<}>LT04ftb<_W3VwJox9k0&@s(*W>c$W-zPmo%|f0Rp@(G}iPx zkNxIb4x5t%{|6Y8Vu<;CO%t9NHe}3v7qGB=c|X}@o{IDNnj<{;YG{q^Rb9?F>_Z_t zCC`Z`E;4egiYrmcWKWI5I>R^sMk{h~z}Zx$As6|!K(d3=;<$x!U}DzWlU#M5nuPqY zIjP8olv~d?n@;oQDom!SGQ5kcq6o<^>kxI@ABe6s|e}V59A`O))7g)iH zbY_Fj09ta@Ss6uK^i3##q%52jSfag27(Nidl~g7KnF3I?Za~qZ6Zl$P2_+_v^eX;& zHtE#CheVLLv6#(I4+ZW?;Yq!N<;dszRuY~wu-*S0`;=Z8ah9AA0rm>%e%ZJy!>gO$ zOsq3#iq0WzdfT#li|$DH_W?twx5K+1uy~&Dekzyl6le#1?Yc&PG~ zOd{~HJjsh19O81N%c$1Kg{ebjEI4hQ{M@h2$N)vY9EopjaM{5UvNd64>4k?7rILc* zX$5dyqQ$7HlSNj$;vHX+jDSy%O!mREzj>X)smxl}5>wC*>%~0goV%E2`T~_N%Kvo! zGYNc?vid53UArmmQ5*xCtfzN`&=n~F#4t%Xas9;5<77Jf)VnMaWjfKfJ z3b}pX|J_X@)do+I&Rxgv?u{cqY?wF zdsR=x`fs`!C>4DYmtEMbkVINFRUy6tsz*QudfdrybQ!{WbwfUySpxjRwBHL>JpE>L z34pZfMDYdq4efUU7!g{zOA39W+JLKDI9q$j5^fsY&wXE=yw@Q=XM==Q(W3z^`zvY_ z{HM_BQI1s?p^ZEqeuN&9gltr)^Z_n}HuDk4vAQta%?jx%FD|ldlXtyn=lnbC9Zc4y z-Z#X;4-Menc&jz`;k)wDimfdD%-U7nvESM#l6v2)k^U3`$e1Z+EVKnayYB6ekBz&} zMmyExri%}JHj2l$I(A}k*k}##zSpigd9wanJm%@=v ztL&1Aq$oCTXI+YcO!AqK&Ks>1t$bO7TaVScGw3^=3h6=1KLEwKHNIk`U#e| zO|T1K8T%bkGfRsGx-f!GGG9ph=E}lp31v+MB=yhfN3sm27oY2%w5;)h2&$`>@vXzf!6$Q>_qTS9+ib{TmE|-(?E2XD$V;BFJ7~c`Wmu| zz#FgSv`9|HMbgx<6l23!rc0kTfK4OrE>%6zMS-EctuM+A%U=(mC2(?>eT^h6_c*2Q zdP6Jx&`P&xz%o}+`K;JvQ9XGb<(=F-vAs8|C!(heaXg63xsA#al%<5K`Gk)1w)a;j&}idolmyorTqRKX-Yo^7K`mSdXBN~b<)81f@$C`gRqp4H0Kue~X8C5##P`$IWnCX94rk+1?fjBIgMRT)aQwFq z*&xR`UcVpgUS9c*IIXx%_^*BiAK-tj9L5)Mm>oRk_jvS3`vwEs`U!Z;E*a%iXLb0s z!!pAl_kfS&;98D0yJOQ?!JsUZ8 z!eluPJfd$riIM(r3`f1Q?)^nIUgDW4>1-Q+H;vvCh{7eU>u1BWx!YF5S-)DR_G;D^ z&;g76bF<1LV{$O$6$V}~VjsOz2Ik-h_q!I%n4cAWQ73L27uQY-I41!!O(9n>)hsmI zj1PUMnr>;=-C5}r3a;TYrJyT;-}*mi zdG=s9xbF&KvA9LvK+U8dDAGv9u7hZ3er)?RvsFa`PN-wq&VM-6fvC8>Rqy|l?im2v zH-O^Clz&N^|3U)4=_##LEZdNB88`LsK#C(a<}~(ysvO!6at%?+^<1gx`b2)b?xO~S2+))A3XB+?6{`*u z*L)T_s}=bHt_vJ%k4hKqS3JmgZ9%|`MlzU7e1ju9|JCne$G1f_C^KCmiF<|;_e@`6 zcf;Z*rAXS&+I9NDsF1E~KMnYvrsyI!Rw6yG2|85&25BQ-2JnZa@qUZ-?rKP-t%GWQ z6!rZtZMmPW@dv#a1@^}x=qCMtCBke<28T$kLp@RSbi5o~G(fw#lF1tMCy?i_{pVx^ zd@jo3(7)8Ix{-f1%#9Mo`4(kNB$ppW4^Ft3!7|;C#_A1EUx?TPhgIf3xN)qZ!)$J& zC0HQ`WL|I*nZy*-!!JrA@HiPrI&cD*rJ=5JzqzhU-6-NSHvz+-Qk zrcp@&5Nopq_eCRqt5+RY0xX7r|-%=`yQ= z=ts93=h2`@0c7m3m#kQysY$%aX3l_v=8p_ek|XC#1&$>EF|RA`t28gET<`k_05TW> zOHQ+2hZj-bzX^~BR?SWD(jse!FOZ1lrwYsfg4Z@u%;zwv&JsKlaRQI`PXsUQskOAcb z4g{tZD2{%-3gM|0ZL_ubLg4=QZ#hK_Cp!?TFp7&&G#hr~7!F5)bD2Ktw|Rl@9TQZX z9q(ztlQcl-U^z4Bfi?}9mcTCM?mg{-Dr55QGJ{%0Z_*LAE2iXapuL(o5=`N(ZF>)>{jQ)CPH9;;UAg`R>u!GUDE8Dn=!a(r$veHreber!2u zisDdulH0L9NI3b-pCF9x#Dpsuo=ok;wvbk+;{bEP{B{iFm1cQcfL=}tBw~_Y+&%c1 zK4O4YDr@}x!lyN2ubApv`^y4?PUzd|^*P~w`XKl{Au+5e2Cy&4sf6Hl6}^*xo=0`( zuw0UWI_vzS10YlJ^%*$VE%Xk@XPMyane<%-aP>9h4P3kV-P5~&`Sl7j?@`g$ans~$ zW_VLm?8yfd2zRU7@7s!iCCmHEH=c?wY6W)nEC%D(WX zXb)UFdK#e@SdqQLG0QIg@y#4XAk*2R!`(1V1=`o;<;tU`=By2w^IWNclWf+WyY!sO z%}4o{pFqb(oPY-+b9iQsw(DKy>i^u34iZ1YyI&U@Ks~?JAzIaB#(d-<0?!6$DwQK( zDxk?C@Em*)5-7#^KUAj&9yy>C2SuZpG*s%EBba>Me~S{SE^I++d$`VcW~>l! zg!NS~X@w;=L<9~2aQql9K*^Q{JQ28wg5fk<1)a3`go$@m_SR0726zaCR6aO^;1f2G_ldD~_w1)i|LN z0wI$N;3GK~I}^9K{W~Fj`!?hj3YW>fxxqo@OqD~?VeWH}fq)tx*TvK#Sso7 zo&DrFs|9qWjRIO4of=vi#N*qzZI|;PK4r0vZ|Z!7%<;Q7Be`tUEe*L!-f zk1?F0lJw{Se0uG?(tItTXnHkH$BHHV66>;=og{)kRu-NC=q~Nq0Psa1`+UO8a?=e& zcj|h~|CNgU1J3~IXU%WjsYz%PjdAbGbAc@Fse-buF6;dH=ysB49)Jt8l-9xakshf4 zRJr80x@lfN<^V5ERlVO>2n3%1cn8f7(>h{bxo{SR2_#vfbeqxOwP!724e9|t*P=QX z(`>C^u4VyBf*Uq(ODld7sX*dOST3Wf92T^LRH$I|hDA(*pABoHC8VDfi$>?~6&)Rj z*}bhP)PrwSHoeIdx9a8Rh1BF5G7V2hsH@Dg+dE!yUdf(2F`ziPjdhH@r>1LHNDx?f zzsBBJ`irXL)en1KN6zxME=0lXyhG86}w|+O;vT|F0UjTmLcx5ec$strA ziy;(mWrq-(jc@vG5c&R2w{q&@nCuL}kCWv&E|0oTEw^^sY&b!4n!B&-<-)!Q;j1Z5 z>K*o581)MGx#Fw+40S~B9b_4G9_2W6vP!Z$4xq%dNZO=7urSDs`!@Oba=wR zF3iqBsNS`RN+mfzfV2&@??dqF!^w7syik-&K$H3|k`&@MPMb;G_5o6nalCGUdH~)W zF*vsxz$9l`?)TFbkt+F5|1CZ{0y&|xX&?-2*@u!q7yf3`j^?DH3Gn!>MIIfN>eQvh z@64kmecDB{9wPJ29WnUX@esoKzeCH#I7mB%lTC1olNjptf#6 zrx$vG5(%67t8)Ty5cA zr{Xj>I4BxzmO;t{D&K{lr^aP|ipzxTzOwiF0^~4iXN&rPuTTvdOO^bWH5*?$Tv0^U zLcWo;W%7O>6Py+$$`od!6lQafSmEaHVm|`8duXL^9)F0_;F{LbDZ72e^k&z9sajwk zNHx0;BF&bTQ#8?piYm>&1^`6q_3>cI^@cMNNCrRem@=1-v$|C&3al3qADR-Ygz}U< zd#QpvIakC6|776dFN1^3Mtnuj(sw*dRgT;Y2q+7$k40a6V!EGm~B)0Sk-YY;(qsY#2xm^ zGrAQ1T{Po-6p*8|Oxz>se2wxTE-zadkNuvO`P!f$OQCu;eU!J!F|CYBfVsZSWIN4^ z`ak?!#c?OX)PB-+o_ODv62`vhTwMg+36mw(KL+};?C-ra-Hg;n)A_6ZcRDj;9OfXYLMQILO}2w*!kDbm`*niqKSIBl<8gzIXkS3%WQyD4;_S zlIS3tBt|St9~iv6n`pIE#_$n|Zh&c?=bM{IeNzou;bTNHnkb+$oAo#QthZ8OY5M_3 zdv=P=WJB_4S7TOeBYoyS;}R>R@P&_M6i``-QTk+s0}bG(YOT&+BEmV8LAaJO?dD;_ z-%rcf(Bst`ZjqoE4%XphJIMWAk{RmbmrYf9!Wwzf-oo-JnFYAXErl#AldeFOv#CYEwqqt!XZ|qA&+t%3}2P#I&u-z zbiN(=S+NxR#;iRAR5noYuZ(ne%wH#oIiyK`h+H6yL-HaMdM&n^g3;PX@a;x1+ z4yL?KwXfb)_mWt0NgwJ%rP+d_i|~@PJ0~DI%xf6_ z{Q&v~r90(=@5|^{wg+5+W!UEpxBU-Ul zSIDn+HE!2ures))CzB;i*jm%-P@H@Nby=AJ>C{tw{S%hp0>S)}`1XDqdkkNV2{Y-;bwVXp3 zJ}7-S!nXUREZo~t*3=^iu_q1Rab#axg;F&9AO%_jy^7Z2rgSCCLw`{!)A+|vwki5wAViovFar`R8vyd7hYbgRXdHBRZ{Sf0w1;~Z7t zzDfi6%gW=OVwwYr7vsy3pXN!XQB@r&84Ko|44J@Q@dVSNG7&vg9d$qOPt7wBc$A=U zs?*-k8*X|;0zg7@E$XBIh0DWz*XZyX84;cDKF!&z=6f=6R@;2W9{0?s*Hs&ix)mL0 zEj#!7BREh@#AH5}8Jb-7PNmI?9Bz}@=m{6HgNR9e&s++L1lo7XMoO0UzAt@=s66Dq zulUJtRqDQ2{)EA^RAGJ&LL4|sUU!&F@=R26e*Y?aE3iVL9lyAy@1Uw45*|GwaKYiW zBb+=wvSaLM=+v57u&=80a*tLnG(xoQo`^1!g>K=B;T4pZ6HBUn;XcsKxaKU`P$u`k zLtf-Ir7*nH;l=DXm3}HrcN5$ehA$Dm8A%5?=P$EPCU$P8;f zap$>6iC9klM&M{z{nlXwpHemEzOUZ6Ln8Jx*wKF#9Fq5{+M5RVzJ-t+x~M$iBuBJt zc^Qkc;x20c2dOyZYXRSa&)I+RhP}3N)JvO-m~6u)*_Q48G+&|*V}@a8R;`b`Yb z&K4bnU|Iq@y=r(STzMkQ-u%3V+3j>Vp+s;levnihXVmK2b9kdc|1T zJX;~2+p)vLh*_O3w`E^lTI1x6#E87;j~=-dgH|;vWq3P9?Q` z^X0M-KVYX*$p{wT$nw}`E@^eXfpz9LT$rORaG5(2b!Tkt#8M-eEr_rpu?E>Z!-DEk zM!o<}GwW$oe@=PX13sXg8mAi4!l1|WGF=A@XQhG5tguDXxT%Ae7i$sdL3$nayTG$; z4_qQk%0vA_?m%`L^`UqVoJ;dV&LJ20leq)7JM1w%7R`nDR)FQBqAK+BNi#7Ex+ViJ zE2v+i*Y(rIM!GiBe0G}7q5Nm&vlU3aVfWKb7cZb(ZRLV>=42_4Dqi@+B@5rX!1THE z*jX+XqjYCPw7W&%f|~~w&x~$U_rPN$^mQ#{thtgx z5&!o;@~>0$G)^d%W|4502nsk5Z^WXiRcWf1q*1bm3$V@Js*+Yy0?z@OMl~V_#_3e8 z>Oke-jT$>jXj=En&|g?uittuQ3YZF>UxH4?_^eI#$0y;nG6nc$+nWd>vQc#T|L%0c ziPkm=c@R8+X?>59{R>u#>6%IL15WXSXtz$)Bb{8NNH`oVTL!ldGaCGQ^xaXTvGeBz zOW)i1p>6F4Z>Dkw2MlXh4x409HuE_dw5JYfDt5xK_m*CtSG-SSb}-n2fmqzMfrMhZSB7yK5rD1vtiPc=xHGIm2$% z4VJN@=tjHRZ9GfbF?~SWd5W0lEH-^v(DU5|zyWTC=(cG&M{m*}J;4O}CK%+gc|2zL4p=%hy{4+jc# zP^3r_DQ$32J#(t?U_#>t$UePwfhw-+U-OwkC+U~Sr%LALZx^#<)Q^vD zSmH}bpLK^-QZGq3BJKD!l%wqUWn@3gQx^x89UBqkrvwoaluX|mg)y-G*Auboc>D;- zIv1$_);>j|A4|9~*>Y?z5^B|3Wc@={F7Kl_DK%Uoq}6bcol-%VB*vUV#WQ;)F~=%E zZAi2iuUTzKgan(JEKH!YF8N84`I!4nb@DwGR@n2HU(7j+ql$UYp?Swdo*^V0`eLp8 zKTkFz^FXV$Sh91l$4rjx*$$yxOGW$p*Mp-vIfA)?3#s!KXw5!7); zC&45_QHA{%%0!yLFTuH#^aY+D@j)lC1k=6-5wIY@$*>TxtJoDAlTx%(3B*gdkN4deciwBGWI;=C(#o2S5d2N;J7DbXkb@G3+ONc($@-ZWmAUs!#I-$4WFo?kaYyQAqCG2d`STiQ6;E*ZDf z6X=-@6t_5OkIpLq5zXf@`8$v28R{p`<_}WQO}^%rAf2SYB|tRxh4fES*;F(}z1h$} z!wO1-+$Xr8wHa;Bm%rSy7gtCGb;+ZVoC^DXg6(26)#F+Yp7O{{lQ~;Z4+1CS$5&CX z_@S_S&Eb!{tLe|T&0A7`80?2)xb?&}Cw=!-k_DRn)+7C)s|ws=8a=*f{Zw`!q&kYE zdokgNnq&f_{9eoc>eqP&ci@?qhNw`ima@Wc`sSk8ZQko zLAvwb5-Zf%CLa*ZRQAtKwMk+@t1KMC*usWwdRnXOL-sZNx~jxLmo8*1+t*P(bk)wiDE=bdF&a7ZrPUiVl3T}y%adg zBeMSt7%163s>s4(7d0sAh@+E+391MZ51d&&CHeq!2$v96gd^KR#PDs`xMlNhR~G#- ze1ZnjXee3M|2hm$hg_Y#|HgmlJ?ye7#qZi?LjBWk3omH zYPI4}FboAqw{0m+6!7ADdswHKv5>XxRryJ^edX5ZDjce+AY6@z4Uoj&4Aae1o zK?*>)lldj}@GEd{QsCYgoPL?F&y0aL3U@V{>yK#z({p+HZ=|vGFU<>A7ayk{$)<2s zrH0N66M%9jfG`Eyd`>pNd(G!K93e6=9YbDI56w^O8XT|y^aOv=8e^hS09?5 z*Z|S1>nK9wQc{A0XOUPfPrvXkahN0eTvmor*sm=TE9a6ruB?^Opnqd@@4;X44vOl4 z`|F*|1MPnanDH5>>6cFmZ^HEV$HE%z_0A@7wc*8 zOJINF^?2X=);Z|Z`-N=-1rDMMS1NzBy4!VNl)S%KAEC%Q1Op4q9oQg_g9dZe*niUq zP7>yl{X59;`6_{$=6@l^d5Mf0&sl*_eqkz12#1T_?Is_dXg@zlre5p zGLU-tl?mOHcAmM`BnFM#nsN^u#9GOyU1`3Qw6`Lm$S79=L?LFAuJI8Lo>$tvDqsA!)z^!O<|FW`1?Z+by$CMC%CQk@I#fsq zV;w>}^FJ8|f5=8;;he~YvUxv{m+UZnxWuS~YJT$bXUDZ>?{B1TT$CG|Y@kPt(%vUY z_byw@S^OM#&)sNksef;})4c>#YHZdG-6`whCqvVgW)EBnmbZx!Arpt(uMl&O^kcRh|H-{k66~`fJ4e$wxQ|mxNfnF0%>oWh-Wx!)M|0GZB!tkk>1h zH*z%9`G*XAv%Cf>9^dk>JzOPRJ9g(#5KN4{#5TLhaj2U%*Tnn23#MR=^+cR`u{hnc zqa=Ieb5_r*{8%~jAH7S<7oFli7Q<(6%M&h`oX9*&K3$~IH5ZJoM+(t{zBoc=)z_?> zv@AYxVh>Slh(p`umukPHo*V}(t(yAp7}b~`^FQ-%kpgLy=zQJm8`zRfFX7z(ji(wS z7X8ioy$H=AYiF46h9xs`zrS6(k>!rLO55XWL7`=v$!&@qgK4xjX2F5TC{y4VH0r17 zkmkL{C#Oq)venKWM4c#J4@PO@$m|-~ zGWLAIcf)w)#<^lBDOSuDC;bNdO&hstk5MNXZdm$V94ESUK(lSBKKDwUEzq@uh7Y8V z)U|u4ospvgOe?PcE?D~`g!mMFth;XdVc(H|AJ3Y`EIyxrh9ck-x-kEkjAhd)60^bw z+X-Uedvnd+Sz(LMTWJ0!DG@_1^s?Se#L=im0UEO8II0x|4PsxT#;`DgXmr$sgFbVz z=5lub2QNLN_&ophH$B23M@jdz_31DHy)Hzl3nsEaE|1Jym6A zKj}(HdD%3zsp!y`$KDg@v&uy}DX{Mbd_V&}{MQYwNj&+)mPt(XmR_yUyC<=+n}fwf zGTVoSy5wW&1b49PB9p6*o$0skMWwD|3D1?? z9IJx7&9Z~Un)O88t{1*~yLlu1j!iI#)p%ZOpx$LKaaM6TP&qWvsqYoXrR)Cxh`P$C zsG_w!Lx*&?bT`r=-Q7b0|^d z{X?!tDG03I=irVx&;hxVk)b^^?MqtPn)DfnW3N~H;_*Q`YKVH0BWT5DiWHXEx409b zm6D}Dar0+JjP~f*?%P9?Kz+WSre(r?lOb-ql=~p3*P;)8t5gaZ){U?EJ@e0zPPl4c z$3f)|{-}& zeSaMl0)D)|_k|F1XZ`qDGHZjD#{f>{7zOodzA|taUd)e zF3HR_$Mf|=M=hb(^F{s$@b5()R^O2g{x!I>BW}}FMaSUBtkK*wd{N(&cL_eA>wOb2 z$t))IF4D4g{wKi?o3}$%H$D`K-G1wywUT$Am!tbfNLT!zooUGdc6=e_rc9wl>zk0qf1=eMkqnYroCxeCfcGM+e4$VdlT`JvH+ zo(lVV02U+zuwXVWn4~|ZM=Pq)N*FL#Y-%Op0jQlrCI5{aiRU|#m?LC`cY{toyU7LR zoMp(uG4c+u*;vo)bvH$W7vO6ffZBQqkZVr;^sA|T2&O;jUL9PtDXnu%A>=XRf%+8X ztsJ`_dbdw(Ay0{{WH9jM{9Uy;dHeiOVlW)u0QkIELPz{4SL>u3qWGjN5W6a-3!!V7Af{*-lL1x$}-JjKx%*_E8S zby7s(td>et3Xg;};g2$Esrw_Qd6Enx7FU7VZri9ZBp?FNFG`B&0@!!Pca!p zvAgO10x0$70nk*xlJ(8ymXEqLj5FFAd!P2~FHqs-`=WplCUz3t&;-3n@Hvc&f``ad z{|-W%PigU_!upS*7OdIY!DE{T*I}n?UgT%2X}NIfQQG$)TVzHH;VPy;S4V1aVd z-x!WOa8*s(Dnyuws#M`C%#QLMOTPOVdjPC+1&%5X;XY^B>o)g9dT4e|0tTcA7aw8b zoFYpycomgT8Y~r8`k1ouEo)>kXjDbXaNTjwjQ!lKQ@0AHKGPD$stgmd$w3IAtJX|& zd6j)!TpK8ld6LZMb}6yDU(pmOyJHKA2DlqPVNR!LvYN-+u}e0NEVqf)zAJ!tCVU^q z4x$_=-qZds2F7raL>B%i-<}e6n+8yI)m(BS2`-7hAa|xOwa@Tpj?s?3K^zI%DYOIX z4e)zHXz2{u70osx5&ZBuG0#iihkV6H_QXO>0|&h>1Fx#4@Q!azIj&^I0x%n>A&fT4 zYq^tB=N-^U^##na<*OsBNkLqACaMWY2pXSA6e&R1HrkG#QlQHi^hx|SHWNJflfMgE z`tS09@i$s2PM#|_&z-E$G{`YiC{#;3tphw$+k&gZQD`8wVQCw?SAq4n`9oD5Bwd>< za3}$V9Z;&!tzz14hhO1BsAaC)^Kt9=#YyXC4X6>uWGy#wL6YC;8%{?3CrDi{#oHqT zXsnz@qA8sQeXecy_O#Fez8(b3SX6x#q-=2ra}3vNI{;Y{>p__qVxueH_RMkT$%7seceF#Sq|Ay7(Zff>V<`mh~jR=S%;4AMa zAXsvL?Txso1a3*+T=grCd8eO%U%nC>Ua_wSAr{1`yA#A&Woi!^_$fQxVEMy<;pY7h zMwo&6%TWZ^6{NrMO++3eKz^^{rvV|P(l2r2 zo6-)+jCTPcF@*i0B_zA!iP07$-c})JnTN*&_tl9yej#s7Q6!E6MHP$$fSrI9`*4YO zJ)mknzci7}(y3{g(QrfdZn06pua5&(LA*ZlBIm023rQW2c;eOZW{v|*!I|F58Gqh= zz`hOxi1D*|`=ZOZ9fS}71Lgvoq@>mddHl3i5uQM!+k9zGxE`;8+agD$xHGu6aQbQa z+?W^Cl^|a+mav16bYwgg43FXBDaNecxhOjd*$WQOh&-GpUh#Rc6un^OA$C=7{p~Ku zt!Z&!`RD5qkolxqF@J5W_Hk`B>5(G~ImzF&A<&5-2au{`2Ck!U!;i;cK%&BlTGtbz zT5}a#;l!f*5z23zh9YiZw9Wpzvj2OzQ-nR3T3*!)Swnl9w|R++_sh3+l=S=#1E0Mf zo~csLvXCD>VC}+;DWs)g;OffeK_!=|05{;4$=my9>a6QFCLnVp3sG{Yn0JD#^}_KK z@6t8Hvm=eUeBU2H&Uq-&fpE%9ryBa-GhEmUC;$y4Wu%97^Ggsv7@)0dD8Z8^85=gIqCm^E<5gWTR|uac8Xqa=N@Edu(_RqlBvjtE4F>${Ep zUA+4Tc1(-q53PJKwfLai05)%Xt7-?Q!T&0shHO#(Dtjnu+{Z;LoUXM(Ls1E5!iPph= zLz&||L^p>!dh5iHSH5$QKiOYVX1jLXVQ1d6*kGyVMR-KQxu6_cNRa8&tsFNklKl$^ z_z~s)vacbeTkU8}rJ+`6vJzfA!EKEG9pRU|_Dz_lc-hh5MI{yvIIvAM2AW*Yav8Ix z_l)t)0YV7gZeo#GiJ>3xSYqgaY7WHM2h$Sw@)ZAi%crSb#PDXH6R#aoQoip80h|i= zBeYaz87B%}F9vYP6MdQ!b0_C?=VA;1`-A2iZQ>Kd8ioNt-T`=xHo)Ps4{kuaQA*f} zcO_+y`ktUAgT3WRYwqgD!`1yETDqF_1)n(5!5SMa0++S6WA>Wfgr4vrdt5Nq7gnEu z23&4I@tp;DVE|64?VIHwm!A}wZ^gg8ucZe>(=M~k-(Bsd`}}4zmn~}KFx}R-oG^>2 zk4%&;8GO8meujYcqC>e1)pAC5n7Y;qhZay3OEbtc5`AM+qlIh+L9U-{zsqSoED>~> z_XMjQkUPu$0bC6pRsn0wKmvD*tY6k)L4a3G+yC`G{7`IfgJ8}+72)fMF4Y(2j!jx} zjxCfQlhXl?xWr8d-RpcS5ytX)qwoWS6DtTji3QS2K({Ie=&|2dY~{cu|CU|EKs0b> z6HCjIyWG>z~O--h^L!lBy?X||=aoT=a%`TqGv zG*GF}z`C^*rH#Nl@t>A`VU%QV_EHWe&r1gp0_d@fMtxZp)CMcR4{NkGIR3PMv2X@? zF)yR4Nh1^*!OSM~aLrXya19k63k7R34FoM#7*zl9z#sfr7Krkr0@61 zhB*nuW2sHpLSUZQk@LVc}_b*^-3=TmMFgEboPD(cA` zuH%Jg>&%u7BXKke!l1g*%D@^yr1{yn>~ERYK&QQ+?1Ff<>7{v9aU|7G6HL?E=7X4I z1I*-C5P0n$`(Qvyd>oa07ukDg%!|~O4!p`%6!W6|o6Uj3-wAkJ>RY$OFc&M$w?!?5 z&(fru$?aNML{OndmiS2nbj%a|H{c#74!xRe@yyb29fD_)<~${!Je;}n7tpZX2d^S{ zp!sofepOYg0kj{-$AL(!Y3j~7)#e4s>j+&?9BS&%`0uv*THou#BwnPJMTWLEabx-#Tg=s2Kg6hn1`3nu_>wV}9+d~nH z&>I}1hd|kFB@qj#0|n4(vd_dZR`W=wwl7}zyJMcn6DOil%D2YVo#%+D+)^IjahwKm zC4Xc-0O4drw}TYr`*6-mC{YLPaFGLKso`O8-ZN9;)!iplKgV*XY;jlQn@D@`c#L>- z>PU(Ad+})mKjnX`kQQ|wf?7k32XuG-yOhIFxHe^0Z^lnlX!Mx1MKr}f8(au1-&tZ1 zkj<3+mslMB;|;>$c6_W!ptnpXB#+Ygh#C%hi#FEs$VhgVGDrR}=bzL~HKX*%J9DaZnmc z7t_@yE+qFcIqg6rt>El4=IU!=+h;lV?s`xtF0m!QKSptOKpq{Yu#6E@5d$+>U5$u% zRRypev2wr^JfFo^TRBvG80QV;phGe1`$)aS#H$L=hqrFiCmbn?r5CROTXk$>LLqk! zBwJAyL-(-*<8@8uoG@fy4$iQ9kyb^0c)sADmjURX=7D7%i9=gtE6DvchpQxSc`b1O zbI9&}Sb+;)Fd_@DiZggL5D$p1X0$}+CoNQ$W2@BrzWdUKc)-;80opm_GcnZxm=*?8 zSLOg?1!R9kQ{LXt!=83^F@|$vnFF%?BMxk7xbSt?ag)$pBR-;SSm`AXzLp71zlRV2 z4Z8|6un5}MOWFLoE6vrqMo*=!=5P|8@-s?FTED$N$O0WfG=couJ2{k~%5sG9 zi))&h8tk-jUvN2woo8LA3GMIi5m)ThhBN$dYpiqD?_G<0g^FoJjk)3556>LMb?81H z{^YqLp~erlBnH>~Kzgz+<{B00l2;?>5&&?Dp$GjXAaC0;ps zGOI2x_Ho+B=X5T^U59^8*QLS^M z6D+^rX`8*Nl+`wjA|i=--llRNz04jHHtW6aaInP@?enN4*;_S};K5H##erIx2a0ct zyi1-RErTnndJlT945K`G-X%V(TT&{7H6ixL|8>%p-bbRnb3PnP!{u>g7jUj1aJq3C zNCUZp0JR)dMGLB(3=aGOAfqW@ImFLdY>=ny&cX-v`5(q_8W`@%%^u>sqvC78qDhJ;!^=iF_I>|wkl|(Ekxw4Gk$$=5jAvBV*ZDHMiyB4 z5L99runyr2!~h+_?kHjralI>*)GW**QI@Rbyel2$45!X)0p>vpFfE+KE42YQZ6&7G zDMW&EOT`?ezLQcCw7!+l@^@;F709QLQ5!zSXL$B;prdI6Uo#yCqLMJ|Oq zahd@>4KiRFW}QK2>uP`=-`1_K#IZ831?}jq#GF9h z&S3lk<1YG9HMW-7VPm@&B&xy8$oprjm3Q}u)H)rbz7G96d9y8quT{ubzf(w`l`9T) zm=p}_a6eSp_20xztH?N^h9;Q2@pF=i`c*gTjANR#wpTZESsEG$?F~T(U`>gGapzvi zEA<#CrnOu%U8Ym8Ml=s2Qi3Sff zjYSGL*hHt0yLc7kRHx6Ve`2RKgYblX*6|vHCSHQNhKu$BD!+d|YVIc?#X#-J6$``; zGOJBN4f`Hdn*!zW7& zv1%?%^^DzSl86x9a>65nrP^Fmo@~xP$f=HB@13j8yfR^dUdQ>v?yde#1sDNXsXwOn zSNlw0a>AuV(y!_47jv8#30JaD?O_rJskSs^?kNW@U~`gAW>C%c*b>3(*3D*lG{2Su zM)Sig?m-&rg>m;!J}ll3;MJB!slXb%P{2no*0UId;U0U?$Ms)h{sN<*TDz&q#Q0dc%G=47%>$1mnU@Yw?qzYu?cJ#bigcu|*~zp$*HRV>2*GnUfpnV{@E9Lm4#j|bB=G57(?m+u5^Bw9 zUmE_5IkhVVYziJvq~Ah>`5p>In~cxA)PU2+pz+L45(((@K;sgL#V?EUwC=l;9j-#~{l zk4Q(|sszfx7eaYv2SiTT6Tp&S;l9xFFl$wjGfjj(L)&89slgBm0)Hi3m)u4B-ecqY z!AsgqEC&l946qaYa1i{pKMf_G!kMy-w{p=#<;{0Jt>cA|QNfl^CD(&pBj`!QCkT*? zBgqNrwxAE>n(^|mx5eT@_>}j(hDpsC8Ofsy_^^EYYr)1nxqO0tl2x)4)&ii=uD}I9-WC!{t}ZM?vt4g3&@&}TtGoiKN&b!;T^ z2h3tPFjQbKj5WXO4=|UhJIglxMQ-YQvfbfZ_UP_@?_Nx1v2?|1bO{?ro|It_olKXH zsOD!C9Y+Z-vC6EWUR8yQOAUU14sYyeeaf{R)P2ov3%ErR^5eXSR_NfGAA_Px#78KW zH25U~>GFrG#HaGX;QyDHYrR`@= z&`N00iNrT5LZTcMXJP_xofl*S`+9;E-v*tZF->)kpczfDQ`U_Q++Uz46<^x2?LpX& zKti#^tH~*7fQ-`$yyhjP12=&;SvvIX*eS*8()>?y`+Rme*!k%4>{P!8=#raK{e%2ZxeP}%=sqd3Ftf{RJUr=iz@djuCxfK=5S=PqywdlpWH%$g zzd69uHYd?MJvus`LZRJWf^wrH#6bIa`z&1pW^G+)bivxgwX%YAz^!?OI4Cs|3vZCQ z$PP8^nMQ9jmb5}|tLvJ1WAWYE(r?Ds-g0Nt1qGr?Rrj@|R^tqUWRFFhQuQjfgF3~{ z455d#N)+M-7|5NngRDKX-vFiAuE|)%zV8|O*a}%I!uO0tU${tFbB5?i7+mFP$>vSr z=q&$rVbQH3gxI(Lec^{9cNgRPeI9Sy2*e<&vAc3Mqt+AcpWw4U$}o8jQSy@l6`MBq zt*(f3R9)3A#8g!(i3w>QR-e>k1q7~b&8{s_N$Z6hzw>44#K$ZCu#-?Ty@(m^?SYcC)5*jYp7leMR$x^D#EBCYWGT^Zw3 zro_cTqAkQ6%1)PQ?M$oSc+F*d0oS$j;0a(vdYdDaW$Yd3$(q6JqTqj*&@q}p%3q>h zx{^7@8{{(U9wyM3!0nEGc2C~^s^_(6M(}RMhUW_lX17G{Oq*Lz5xA_LYX4CMiD zkkaz|{2cd`3OXJS6@4*K9rOqnq$VdKXvEL+nSao%o?}#m{p3(VR3JbTeowzOmaRyR zj--HaM=m%hEm@9nu8ij(>-fcq)I0GaG^;79!!-lP3qg_t58;Vdkl5aA_1SqwThiILF*7u3R=T;?r)rzVvI>e6$-ClOlP!V_XlR;SB3M#o zY>}_%RYGrfnZ>AFYe5>fE<&pVS8Ja*#7gxrw-0XnpxlBEog92cU6QenGb=}CzvQE|y>pt_GjsAwJzx>`Q zbmSC!<}UsyE$3WAmupv&v_|toc5q3(DUzL_@!4^(=m|^qntzSqPQeGL;Cz7Ig4(dS z?B-n_XR2QCJKxwarF_Y3L7Hn~IFm?<@g_V5bV@X`{vM{ljBc$?Q57b>ylv5g?|)D= zdeTs9Kw*26*1<|(HtLz)=^4Sd@-uA%L_<(BlvcN4Dm$S=^4DL!cm!BCdXq8sr#YNG zO(m?^BfNtIbf+ip6y$2*+n-ws0GyhN-~D@QDos79IcY~{fZt$j zrBWPvJrX;fUM0FsyOfdfdls_0T!*N;*Em;hS$CsGv500*A!sXcn!x}!x+S**f<=4$ z49SDHPvl4PX7{nX3rNo|i?@)DuTY`AYyWD;dHC!TOVKM?pmwy9Yo^96o~Yj z03Q#sK?E~%!64m+d%sCh=@@7#P|9)<)2)642-ABYW9AOf%f{x8G=ltA*dl*pW%BI% zDLsFXV4TX(|DB8xX|@tf8nRz_?Fuj-Z___QYf2ev{<-7S3h0#)3Ya>+kd2_^9sJ{~ zwce4C-=gL{|I21LCHPgb=}ohx6|97o*}l{)`%EdnUlKiYnZy8UOOiK+9Y-SH$lj7E zcAsJ2;hwxg$8eX3_uNlc>^>cmCGeD{(lY-p@s_wZs#E`fjtLT-(H^4=*GLr;1C|V# z?-@e#-ScoHSkLE3#KxY{98sBXfi#;Aey{5N_W}x7_xy9I%2myOrOjrSQ}wHS8I1hq z$)3Rec`-*+vx&kul|+R~Ova(2+esXa7DvP|RIZ-ZsUoO|(bw{`VFjB%O~*~QTGI-< z1siw53rYbMJ%DB2`Ji~OoZ`zhTKEnDOyi=#Jr(LGo$z;vW4V{*X&yac-qpRW=uN_p zU|4C_U$y*n#f_->oDImBaAhQUM_iBUU-t6QbR+~8ZV@HK9x6=48XWn#SIJ`JJ-8T_ zo6^28jfPyz$&bI2e?dFbyD`B4o=h8CgP!PhV8OiOCHR`hmSz&9{0WRuaNUZz5^2c0 zM_o%!nUklZp=V_al$NQ0puf_8s`Xdh%_;=Jk{jD+EpjhHU|ERKElU0BWm|HLDQ6xt z%-rVP79ihsr7SQTSuU*}HW$|e^RSanr>C^X`K~x`o*8CmX zB}7ENFHCX7xM$WLbTGa#afPazE4atTnEJ90!|uDH#x2A-PLLzo^zK^B5 z_u8lS_k|PBu@`LW&s@swvi)|3AzJ?qZ4LpTx&@G}{ImC51pQ^+h&VR}WGZ$2leqF+ zgt4%`+#z0XHuo$!pv@~DVIrmBY}iyLOd?>r)B-Uh`i^bVDHO^>Hy~ECM|$d*o{=Lu zTonCz_WKA}${Wp?IuN@|gf_f#zhYc>)l0jZZElioj>cgpJidT!9Kws_)fw~VX%U##Oe{$Y@V+42_eH^pu=U%5IBx$L4i&haLp zn9VUZ?k@#?eRVmJ(Mj~yX}hY*88{|;rb0J%G4=xVMlt-_mPAqfkT{*HA`O77#G8a2 z(cnoB2wT;Ds~+ndFWXiJSBlwoPot!A!PRP8DirU3zo8M^v%gNdCu(+7gSf;oi}1i| zz}d{UX+Q}>N!Kpkzpxo{sHm>}ty5|`RGzlqA?K5SKPsA@wvy4e?CP53A(>oP~)wD0A_Z7$@~E&L3CCs)#BqX^#j^3@kQ9>+VfMMH00Ag zvPbQnE$;Dug4)@uQEzuReT&;5*7nm<(Z zuw4z?OU-&~n+P5|h+dP}lBooK)cM_iAgBB#bZ#V;>#Hb#5tpe{X8Y<`xlkQ6+s+l2e5Rg1+;Vio(WzN4gl z`QtZzwS=0x#Ej+-n+K8Kg`hTC8ANl~H6Ev_w;*}wAA^`sZ#Ese;)YL=xbJ^AC*V%K zc9bu^_hqv^ja?Ed!>namWBlx$t(GvBhcT8^oN%P|Bo~ap4pc%)}cU? zdR^FiPFj@}=@SpU_Ndw~^{(kVV0v&@ErOBaXO;FZIQ7vsH}D1fVGMUl$Gev+dV!Ry z-#CrD4;Pd+jgp>(Va9yTZuyTdUcoWkYWNo!16?r;KmJlUIOWl&{ zi+PI!x4EVhi%f9_R5bsJMFq9V{R=tk{1DZeU$!AL267?F-^KTO>TUJ*_`l9d8L`tz z8P#I$Gk^Ip4#QX=bLS*;I-p56FmS5y{yxk02yYAci!;fn(HBVs4%i;+(Ei#xD(T3g z(pM96;mxk|sJi7yOp`e&TS8Ohr;qis;b=0g>=Rx@LFURwyN}F8-XD3~r1nzWM z+{Vf%r+&UQaYVT`%>MgMLqtwWT255M`x8&%i~Nb!R4Pb&Yij);O}YAf+ux3po*Jjs zsCZr`Cg;x`>)U|XLJ}%(mZ{oN|Ckj6GE_yXEyAgAqT-C-f9cMjEe_2$`pgx(juWUJ zNd!812U*-b(io$+H$FOyM)9pU9{s}r8AaXYgDQ?5mO-hkd~H6pBrnCF0`*!9d`|5L zLV@X(hM-(@atCn;J-DPOLV;yXG79yv2_46+F&b2#z7&QA^h_YtK%A@K&0al~zsf=g zie#5OA}U#Dy=r3)R0EIRmkogx_~+aNVCr{b^);rbMBR&%tA`)YBEK5V}GvHZ6Rqt}pNCQD{=R%#YKkycj z^UYlH_sskU(}%yr_th$}&_;WHG?hZ>;!^0+7@&mkQdA*FHtHN5fr38DS1>0EAZU~{ zn0|J3{*32Njyi1O35p(!k=5@3TMA$W!zmnwRflw-ej2cPmcvliIW+EH}bCRd;KhStQTl&4Ws--Z5wtG+Omx z8ea8*&;POUrFV!Yns*{G#wwx}wY%+)2NmybA*>st1%21FjplbmKfFyk>bFD(BRS{1 zV-G~H&5%`fLlaF$Yp2Ey4Htl;=uvUX*Q~m@HuG~e^nT=(3GAuCsnwneP<+4Haz{#S z3v;H=dYe?H?USZ^nq>~xdRZ7-&}*W%+hMj@T;$Xo26+=LhCgKXMQhDXd9qU0H<-pD zck%nM64w9`q#Nf2r&jlXq%Jb_6H{~|cWs*(0LS%aUgLxNcCqEx1x+wQ4_o~YW2{Yl zst;yrDszP}+O>gRl{x&Q2uaD^b`D*sUmElSH7$4)$pT~0PF`2gIv2j=fc=W_uHa`t z##;?9zWGE>*CNtCyP)kkLf{_T6@cg-ba2K8(cKKgU;P0HyUm5B?@;o{I_tM|gDlLG z5a#7-HNk?(W~#175q2*YD+v2#+CRqsI3~hdoztP2ccnKh1&Jwnpx{w*)4@{ZPi^$| zU)lQ^4j*rclCAPvQJf6S8-2RW#|4LSh}pY$nAR$A2@zg?lJ54UE>a!1caNaPa7@Aali^=UumrC4{X2d2#iG0z#)iaR5&s;~KOnELVyEFT4R^~G>#XxP| zT^=>l0N9yOO#48Wl6?T&^*+2DB|!mT#}jXC3UZ9Uq}1$hs>Hx`7=v<}pEwLpwd&+H zAL)_m(yhK-ne}z3roYQG(b)h!2oyi4a6RRh9KEquzRRE207RoKlqGgSsQn?g9E{e= zHO8xBhB}B!5v?tn&>x3B>B9!;%YHCh(qx?M1S6FqXdcLuQUAw#3&q9J@<1}63}8G| z>;ALJaBe=DaeXT;dThoawR!}w3hT4jE%ae<$>RN-fu;~t3}pBAEYvOuJL;Oi2sA%8 zplJHD;sF7Ag8hLn?`{kK6?>$dYw^7k84niQK%JVtxp40PA8&O`96UF`2C03c0%}W< zH-0TXs4wO=`EmQ@YzErjt*UZX*v@(O-48Ot6}tgmXknv0hviI0hy;ssH$xnh!YBtduBawMa@-kh+N?e9pSZ1{$`J*qx6C9h#z z*YkKJ0JF{IA>p}IV>}Tb(@S1tF?w*|FB{faVw>){k&g1x9?;0aTix7Gt>Ii*0^g2B_ z=4(!X=4EI+QYK;O_5^0({*BQRVuAUUC;{OX@3ebOk-c+x>}93t6q2|Cmk(IMWmkRq zzKxVMlTg!#F!A<|d-|^QnLPELHde+Ml)M>_v_PM~kJ6GZxh(^Urzer;R%zeAfq+f0{^s96_^K2WpRk!Q(Wm42XA7d?OWzJn zO^s#{Z>y=U|)Y35Z{hB^UJvc|;{@t&t@-M3|oaHrtwr1fMbwL^4%0eAJG9LZ+! z_kdTQ90Dgs;`IM%jN*d;pCM8h?RMLfB14=b4#2>4w6-I@6vNEFsbyoc^s?7&cOA}&bXds#s4!wZc@{m0% z_makUYYHF?ES@3g>_UY)=(+&!2(MU&q3c5BLyL(qFFK(;v;dvJ__>ezlEl`zhCth(bj8XZrVmZmoh zPFnUEGsRmQ#vv~w&H6Bg32Z(@&iYOw~rt^14(l^r#YdcTg6jSc;|na96M?MY^b zLq7vU)6ZwVjs0=`0reFi4a85uEvkDS>?ZqIu3oVlWwuP02G13EOL2NrahIUod_qFG zaTeeaFv!Guf&J0*me+xWTu4#-n5;INc=YWY4J#D_C$L2JQF z!S)p0<|zVxS42ftM^$an)0owqsq6tx#4KVl*j=+d=hyxEXgG%L^i^>?Ts0tDRA_V+ zadgb)7qpwsFb+_5qA)zlz1|FZv2*(0=rJK#>P@w!8%P8Yf}V5@oMEnKN{T}C@1X>w ztoHLrtD36mx_hC`vx zNl=Sl)4k-+3l`&bB^wWy2D9@m1_AmRP7|ctm*dFYeZq)GT33Am%zKCQaZueY1fta? zl$3s4S#`O=h3<3JmS;`6 z!MnKvUa%vOr6E&J!=wSX zEp{yOd$=Evg;E;pGZke`9<1PXY2H*zC0Bkp>`%jW7a}eN;Q-cA9&)$g(=>_3`}>SRW_0;6F``AFxq=@Crz%aR^aeg8qwtby0fHu+Ex!TsfOq+Le)3Mj z1#bh4p&4C&#|9cm(^i|9hg=cn@dNN_K9Fh;t<}`_ry!)AuZzI!DOr=OYyb0gQS4(w ze}*JpAe~+gob^yvSD;JDYot6H`aR(pT?q*Xe?r}ltE5h=BODmG{lg$;^z>L2Jm&3R4-!lb^xcVtQ1G5b4uzDk4G!;IumGQWOOSN9jbNlXZDGTGxuJzrTg{R^}jB3Q=3Q=-hio{5U(&KjeEleWSH?N z9c3jZ!aO&wB|xoFyll3WNBJpl`6qapK&(43dE=YWtK?6$4LUMF6P$W54K5sUv^4}R zvZFQAivfzbNl35?n^z`l9>)jbx^g7$P4%Rs(x16&T{Zw47 zO(vE+gd@0Y^{biCr$J@2Ir>KwSl;8QSVpdg7QdEJHZJ-sOn9qfyC*=OmWHP?iXl(K zRu=0mz=_Fz7-%u6g1I0rD2fsi!hJDe2bbg-DtsNJaYrpnW8Xq97fob!N?9r<4&-)*2LH@hktb`mkE;)qLL=J4(;Qr~;=IRjalh zrWO6w5T%G*@NUyppfL$vtRJ;I`m6nd_Xx-X?C|3FMj9I|PdV0b|dydV2gJf0A)*>pZ zmkPfc%?}T#Wrf4I-Kr1)lL$!@3o2>L)^iw77;C<^w6!?qTfM(iAAZ>bl^x*QKwVLH zxKLOcKJ0K@y(-&!UB&>8ZcsAIkx0w1&MGd;C@UYqipyJ20n1cLTO9>ncD=QrwjFr! zsY_4@tBqo1N5I>FI#Hy7fX3d8<10P_*PFxLrZf9$&cH>awLcRL5zw;?ILE4F13#;M zBH_9c{pJVR9=VuIVOo+02>5=&Ztb1ln+IU23P7h?h2 z@4t-n=lq?iUUg5>jVXS$no9?F)mi&uDBJ)!Mo_G8D{KxawxDk7&a*{aihTQ!=kG6Y zMM!;?$4Zy~TFRPo76oRO?9{udlsI85+`@NUI~Mul&nq$tX|)AMJavU{#ZBM*K{l0n*6WMt zR6v1%j@yU^LRr6oN;(VFe}jFj7hfKx8sQyVX_b#?nqzl_n<*H1^wRpM{kth$C!!hO zKK3h)ws5n?Rg}1E5$B0^z3*NubP{ee1}FU9n}v}@pJSS7gKZ-_o>)`KPUIxHfCL$< z&twezJK*VfuA=ln97V0tg%WI;7svi<0lTBV!2vr@ziPF=+3={2&(Ie zhko3y3>&K{6o!pCjBzD9?w6Ahgy4Dq*{$m;+aXccGQ<>_M-tb-)&^@PP=ywIzX!Ue zaCbm0&@kO;p2xEBGASbgF>y3}Nr}Gp!v^27d2lE|G)BujXhoJ`Bu@%@>NA7-ydL}e zC{F|gCEw%_$fuw@#7&xeSg}kmy-a$?C#3Pfp=F)&1hM_X)Nk^v$c(gpr=dafZL-kj z#&P%1^uT$w_IQiQ{+TBIAKXh2SXO$?AANak0rp`Hmdbn5- zddLDdP#{2SyLvIHu0mu=pgn}8xlvDB*;pgrGP0);(SXcJqHZEVRK4U@f~D{=QAEq&g8N7^Ct>lbS)i+YI_J%vFhJ{#RQ&! zy0lQ^$H~N>Lfj-;&woBjty(bZ!X|(er9TH?liCv6-URu6&=dl-vfdL@M`UDHVBDk- z9?}0}vTl@PpxR#s8S$+iHOkmlANlmbTkKT3*NMUiN!CrcLKGf56?YfUDbjv-&;A2{ z)Kq`X{cO27LlCON|Ml}nkiT#bk7vYZ9AVK6Nl0o0nsB>w{_2~wAad3j*TR{f3#T zJB@eXUTzcmevkIg*f)7W-~NhxcNo^_C0hR)rEAvu`-vpGZ&w!oFf*Ct)K(<+KL3980DejY8z?*If zIpbenfyP-#9%yaV)v_$q+%zlTE^Q2tk~gXo!>2QWsn4paHy8KxQxB%oYM{$ok5FsJf`# znW4M8lqVwP*_(%4|7}j1|CP!{5CPCac*d0dgusmIdaE*H(c8NWa^bBh_CPfo5os*aeR@4;*=>*$ z9@kuL0siUKAw?7<%bA#xUjD4o8~-^%lUm_YQwhI-;A01Cxd=nZ4&_X>^6KFjO znP7Wz=_#}m?*fE&T2vxnW&lLP$koC$=~&`r>X>VY31uovRU)a|_9z1vWtNIg%jUeG zgpvdG2!|g_h^9o+^vtog%N*VdM5-tM^I$oT>R*{P_~F^a>gJ;>VswvEX)AWN?7`>p zF0I0Hh^HcJ-P0hMN0do$ZpyCzk;OUow7mIyXL7|eNX`=GkipeZ5ufEp1AmSBkcdXA z0Um>+MZUO^(2B2b4}vql)>f#FM?7c=OT1(Lbk;u9b1t-#KR4z3rhF-O`i(AuQ;kzi ziQDP3D|XW~yRTJ7gdJJeiQlQ3Ij^aL^0!J}ZI&Cvbu?V%Rg@mL@6Ou2n3Z)laON^V zbKoj@!}i8#qPovbbt_n-kl*{JW~)Ryyd52!r1{I}posqYrJ-CDn7tt9fy? zKmMW_Bz+%n@Cr7bH%pQmu|)`FkbLNk3;$MG2NYcK0G+`m5`TtDnw|n%ZXb|7R0jZJ zFM(ac?m5IYl3;SFREP*{)(o_}6n_x``vBw_)dG1&-h9^I{>taxxsO%^SB{HW>=Gl? zzr7nO_l!Ece~&N2dyum!UPrVkUNp{Dd-2q6`Dx(kS*uq2MQ4|I{_l(Dv<@?31KwW^ zBjzc+=kT7NC>8uk%f)+9on4ZPBnUCx#3oWg5Ki{=QxJRZ7Pe823f{y=qucz6ir}TB zi$wSS*BPO`@y>T(`=tJWzQ}l9umlbqT=Hf zkj!brm6sK^lnw`lHIS?S>k-|^MYJlK2h(d!MKvGRv^N*!iJu$e1Zv|7nP~M(&wj>x zut_T-#jt>}dZ0!dWVnq~VujRQUC-&^Jj)TYJO;c@%6pc?8rdqm@Q3yjRpSs2>s6so z4U5mj%>A==jh22#DE`zKD zTom5j?nTdEjTGfU?nBf5D3V}1v}mBtFJRjXMwg}LVq+HO5znU5nCQ0^86v< zE&p>uecHOJbCr%TwGUW&=?!c`r{dz--@n~{d^tpKa%k037E&`E=CP!$Nu@jFC_lTT z-6C8(98|zx+_)ayAy)u0oNm-t5wsi8Lb1;3s^81Mmj34>-_AQ@Z-Tqq$0NQ6)ZoAwk5#uY2f|;WBq6#w@*mvsN0&Z~`#<8v8 z^;Lz>=rPO5=dhVI4hN1XO^kfU#FR%nm`7jF3LPHQKHjd0X-Tab%p%CJJ6rSSZ%xev;VJ#G_;Uw(f-+`*xhJo$*|$D;3ar&FS&XW-Ah7Aev(gcNsXeY zMt>3b>!vr)u-|URK)yUW8JW3xxH;)aB4nmGW|(;1$L`b+Wm-*7^qn@Sxlry@;`b(+ z_wgt$*3I%!`CUz8g*4P^*5+slru9adhLERKKHd z;IFcz&-$FXh2MQFEcv7>%?y{}RadXEq2}yMWp4uUq&n`O4GOn2Gv+bko$YgKeMhPR znOD>K5z#J#dKaT4;Vz%j5Bi`0t_|P+rhfT6#wZER&pXZ6MrB2l7O}ecZqnuzGu|1_ zM#*i$O{gTCuCXiWc3HgNk$-|>7tK$o3ICET;}htVl|-09NrV^6b!~!Eq9kLH;IOx92}ih62I3Wd2_I6dwVszgHUrvwjXdse4x&l+x<>t!slt4FQ7qjK#Z z6r}*aSX~H z?1*(I;3(l%X8)Dxe0RYg8dK1Xdjm?s?fPE8Ka7%9v={Z*3mnvk_C}0`%y`gQPOU>r zFZj3p@W$ZnOTAkx%N`gWM?`gI*rS<9#qdctaa1XK3B<3+wgs{VaL3ndEX+MqdB|0O zQ=vwQ!@nRkHL6Il_hTZQJ}9*Qcz=#fhA0=xKn;{3k;xXZxmzYzsKE?tFw=`oMzKk~r6FQ#~S$pL-%-t(J3YVV}mA43K z!>J-mzZ;U_Vj$6quK)OFb9T`iy*rtTLLX~?*u1f*_4%_{f|hcj?0nwo^2#I7&jzb-g4)_DaE z4DX{kdw{+@)K>8}Hn0VYBvq5bxqd)aJZ7uKi?dj<7Sv4Od}1cW-}OkL^gv_$1Qb7h z6Ij`{(~ASjVaS>az^UZXs1gJ`P5_XGzb0vg>jy>B`gB_ZP&#=|s-lzV8?ZYe6zPmWF5q88BIj>GwmM*ybDhWiZ zPWmiBb@MVw;oXoy3W_a{YS*hI6(0Y5Aeg%wp~A(EGuKtVPZ&ARL|CRSxXhin!2NoD zB+O1qWl07SDBnoA2JKMT_KHM@mfH$pdoRf(U9G3~TjYL^D{f#(7F~2~Qdv5RXMCJ= z{H#K`M?z@nPRW{tdizNM{?=JxiZZ6@3)_29Ixg8*@cNeHwiL^F1JN!ylxWClwLj96 z)1CI^rUM}B|BFnh1>K}pZNH~mjwLn!0(Bp^#ZYvJDcbGs1PBzCU!+%TE3{Fmy% zit)dakNp@)VwVj#Z$FRyg15i$*ZU(9+MTB&M1O$MgulK&D#uu7MQVM;-GraZz3EjH z`{9cv9b4JIb(G$JozLpYkoTAZE92*&xggt zxFa@$ssZP>mNxz}1P zX78kfvfidV5JOXE6J{|*RT|l0Rbe*EDleQ^2*F0Q^ar3joS|X*mI8bZSQDGsHasv4 zt3IEcuQcDr1%Tq1`;qJGW<*Qto}Sfm_uG2g)cjS%aJD3JW`IjuE2z^AE~!+nDn$?= z)O2k|)Z$tajU_Z9CV6dYC^YYoFUvmJxZERIG8hWx6$tuIE9`2|sXGZ+oEP9nkSKZz zn6HJKoY~6g*v>~FD_XD#Ny1B^)$979l`i47{6z^4!~bu!OnA<~BQ~h9vC^DcbxXy> z!wO%;XxLIt8atGH-z#r z#Td@Q#DRLR&`2rm9;nhEPHU|!k2i==z<%|g6bBZuM zirI>|-bC_1ls9$SKE;i5=tL*SaykrD6_X3Ipop~cYsUpBo#LsU@QnW)rT|!o*vwt9 zMpRWuHOsrjy<>w!FE^8E@KYgDG}n@*|Gmt9*iQpHOBhxgBlkGi3Nm0?hF(VDq60%?ax(a2v7RwjUT z=9ZND;<{((Rtpxb=KaeRT>FC){{H?Q*E4COl?Jb7t6=>v*b%2FzU(iL9K@&3H~d^N zI>HRz^I#4ts)eU9r{3x(h9%Xy{2gz5r~Hwf!}=vkeZ%Tk9NFM1$;CB-=CVmC`F)IP zf-{UOQaFpJ(lepDb~D)r#w8(D)fTsTcY4t)QKoj4{cO$kOIjxd9_(M~pKPvm%VwF0 z-!_9!O1%E*GOZN|s;T#ep4=DnBVGiTkwZsDeWP4PWXWVEaySprm(XSFi_n!|>MDlQ zgmK)R_2*@ut9-3Wo|~1i+GZX0+bghU!EZouyWxr8wiCH&c7tNdjtEYxDqA6>liXyB zdKwG_X<-$Z*IAj~=jdgjp$x}fhxtr8kxiu-)yZ_lv7el%4_hpc%a_822QAtC=qYHE zou)|jn-582;uwdVBTI#PUk_5ehtNl}&^G~~c$@-93eZl42{j-&7gzUS$g@Z|K zftRESnHi}X591->$UE+ouS#>&BXW)`j)x}cVnSh4SPN)ix0GsTc-zwPho9aJ=*(mi zp+14}B0@^A`z$CD!kGf-ZYpH(VcOpfQ_+p|dgek-$H2?CXDqKtaHNx}N^CrbPlnh# zxvtU>WRwVe5siSQnon>7s)f|er#afV&#_|2CN{|Jd_Cq}4Mij46+!a*xbzN?F7&TZ zj;Jn>a~he|m^;KAS5cV{4s*WHYl0o_d{vE}5x&>vwnBPCW^My%C+$J*O4GBU7t-zC z??pqi$lX3{vQUm#ab48l64Oo0DgC0srZo|f96cU^SQ|&I*Y@YCZ%WBezKmf*2zXIK zU)4$_EU8HUbSy-=oIgwMpBL>QoV=8Zgx#dLQ4v&Z+>^5-l*FtP*+LR23wuOM6|9Gi z7=wRh5Q>#5bj-f;eD%THXK~1ER+UIz5;adJa&|L3DPbrY)B@)+kL89`M_aKMMjyBCm~ONm1>qt5SP9Ra-dmVm)K03b z2qpP7!^1o?OSs6Z0{4tf+c3MpZdGp`Q$!AK<_&or%W^Z7j56{FUa^TYIMjMh6B!?GzhW~ zuYFr4gH1piL4m@)0caKJY*;s_Z@}wsujhUq7yNNtv-C4v)Cs9DHVa+d&^bR$nKu~4 zQ?#5ihu7xzn**sL**$jLy4@cg^7uIkqHdER?LnGGiHH{j8mQu-;}Qb}UJ-ysaGr_~ zqOrKLZqQ;~{g}8Q2tNjXuG@b`q}VR=p&qPK8KE!%k8}Bhn9WvLZ4voY5w%5R(TF5k zXf4Cu7J*XGfF7OL!59);N^a7xAZ3u_a&POWk9b8{73NC#D*D#sMuw*OzY|Mdcba=k z{{XLXvl?eR*6xp?uy{2?287KqF5zB>40Sh$#F*;CeV0S1>tO4hV|E(kmuV|}RcTm5 zl8h>fLghkk(o7Hys`Dj!1%1Kbera`hi_rBGUOEnqC7zKkrAo;<*^`>idmi#!;o zFNDCrpK42Z7hPGj_nN>}`*c9*A2_!5{&}i#_<$K&acD}7=b_vsoKevn67Lnu%kT?a4R69mX0=95T5 zj@t>uTov-D65HMJBCkbV72>E8cf&lvCA5Ae!aX|+)Dpsja~qebS*solUTsfzfpYrg;IxAWv5 z$cZW8pvgt4;k+(o4u##nPrM4Aq;jzW4tSV~dN(glY#H86_=Z`Fe8+ZQOZG%Z)CDFX zEpYiFQCFmH&+W>UYk`c0S7=%o)-aV|b*hGk&T$rr3oX?v1g?@j4c&U0998Eko=Vfbg z^bz}B2iznROEq8Z^%a~7Ejf0bMTp*~A1j%-C@Bh6iy#*vd>H6tEj;x}Du|-!JmuL*u*2c~BN-2;+qX64)O_>zYXG>zTZWN<(%YL}5gruvSvbJ!m3%ayzD zl*oK6#QLQBn4HKzeHj^MU3$1{FsQjDSjno17@rXO9$3=rj;|=SNY1603cGWuO>#>` zElbLCA}>k3Z!IT;8jZHxM5%qy8ya^yDoH)E1Z;+1=1gyZDQf$Qb*Yqvl>~mCG>h)1 zpjBR%OP$z})(Ep8B{PBlVyc3)^O(SrhaiF3oN%5Y2=$t}F-$_m5CuwU0uunlDV*@X zwqV-kkM#gxpkrZ4pIm+Vk=I==V-LTTz=fEIWk@QK`8>!;5n{LO3T9*WS-^ zO+j#yz=dJyGqZR(irdPkc30+&C{SB^wO;_sOd`?24=nHPkK(`OXv7NQy0n!w%Ncn7 zfAO+9-5KTG>eOWmr0rh4GqmpI1I~$saI9re~Ht_rpP%&i9=sm-U?L*4CM7`k|v}pNRFc zbLitZ<)|&%u!S6(jD7LwSK}WN~q~&TggIAFiU$)=g_mPyme9p zjR#3ks&X$Voq2m9Z!)xpmnqqZs%gWlLqEBDIB*-QJXDApUT*7G{MGO?tY*0=H#m0^$~w-s4YRv*WF#+ZXDs(uiv zU^T|_Z73^wv6!4FwxW`0zXJ2X-0T&j?K~~-NbcUj+B-F#=LaP?f{q>rgDY_IM zicD^G2jFhVVy%g)&kOd<3-m!DpT%G@Z@5nYpQYoHyZJ8Wg_s1jM5-N=0pkgmYm@*n zQ>;S|!}8ogMuhl^XLMnRQbXr8sWM%PI{AS_Y)a(U))BLHD*Cn_g?fk|%Lhz9Ezwp* zx{3*48|4{>aJLo%Ew2+ew|I}1jEI@;#FZGW`@N`2G7gCePIa+poF6VKoz4(czI1BybI^p=V8cpvb zw7sIVhsns}4hC}Y8kb3p zuY`|coQ2)1RYBrd{N5#1^a>1mhu{%es2OG{OMy%5XUE=`BuvNeW(#ZE9NmjFSmT6P zivZ-hUuBV}fhsD9fsxqTLTwZr!&pVYi!s#CHGdk0H>N>s@(m-+ za+7ac#Szy@v)DJDwX=!rTwMJqRa$l&6`?L%F;>Vo$+j(z+Y2OOKAD*tGcPjPLYq#q zOcf7gD|$z<@g>tk_eY_%1cF?Cm4(F?ryYg0zE18%^{7P7+O==O+vim>r3;TeZqcJ& zeV)L3*|LoC(czR;rw&9*55U#oZ%li16%T-fU1?2|CuI`+!Z6Xo42x-TiI1LuVVvH$N6&|(*THBoMMXpGQ@#t0!*ZOn$OOW2U8aK zn65M$4y{W+O+_pGG@pF$;VxSGVRzz_%tw;>Oel{buHQxL4(CV8vI`5!C|6RozmFig zH)&~=lmm7e!4y$poJeXYXPQG!pe_;WWhEfy$a7~2m@x5Uduo*`xvHC)nkA9?x1y2p z91{1kNP4J|R)RnHmXS{%UK+g}!7(PGmXnwkuQ>?Rsy%+BSZDG^VAGGgb!xf-A;iw{Df;nS>Q5!SW$WQq^;GD zFcZbJ!u*mx*E>~|K26WuSj+;gyt}UJ z!iUu~jmnOvsu)wVs=y0|9!K*TIobzdY2;Yrt5Z2Ep2{rM`rfrbTra---A?6jTSq&sfj2W@xNYW=)AjvdvT4h#w<_6Q z6MOnu-Va`kK1nn&b2TT$*s5>-;UgC1%+~*aW*(*5*q6Ka6hJ4*Q$luQxvzqB9iiNN z!<8=6YTu76|EMV;^o!|c*eh6ZG?_f*C&P2bLG!M@Tkp`Vp;U>`W zIUsk5wtd0UbtZGm1z%1yo+9OqO9gBC&I}d?2J& z0d(AyVMnZBti+;2ncF~F`!`gPJ#KneE>FM1YHnxs(aDo!S|w-ahDz*FDX-^>8Z$(B zQVh=Ujj!vkPu?Om0BHy0VO%HOmtI46x&nnYLei*8C9AqHG+ZRGyA?T|-YXt`-3eO= zlii=wwVcKUpA1%;r5da;vub@D{<>kOycIPrjgTH0i`&ttldcjJZA0_brYY*CNrkVb zQk4~_9#sm8rheY@F!ZoWWI@noR&A@4^ma~CEZGu^JfP*IEh8MV7CDO`H~w)E`ed$F z;C2^RB&^~qMuK{yP6-tF4$WWp_cS!wL=FC=kxkUV;}@j1{yoG(PQ+Mea(kyu(?y^7 zjP{N%4(J-uhJFQIiRh2@WDSVhQet$ySD?3=i&a^1*g>Tki=!HETKVkiyo4?KiK<4! zeI;TbR*y9x%7Y;lr>sVMmKPv3sD8>63 z_~v}DFJ4N;O44gh7{K!qmBtxNluw}4;u`F2<~sy}1ma!C$SBKSOWK8W=-iXkj)F`&5KwsiaC&Uw0C&$l>x#RU~Ki zF}1}}GwzI#@gD?<;<5cG%K$m0Cg379`6yTqPW~qcxHTq(9hI^D5&-nq?l@u~&hh`s z<0&1Li4f0|W+53ZMXE=lVG3{xvBH)h5(0fCLmsBfMaq(d`;wHzw3ca=^U)FqoMv=j& zXCG}z)cjwmbcltHYr(abvbCzgc)JxyP+cV>{oG*R~csFv9bwR_?e9+ zY|B$CH}PEro+Vg@{SlwoXDr5NU=9c@>2;0ajM6&U%NM@*q+GaSU$Yt3WJAu$& z(}0Rd#X{3M@iu?44$L#L=P^f*W{5XQ1AfJ5QbQ*8pJi($_W+d+Lb)%pjs06xB<(Yk zz3O{TbK&y$6E*zdMjJ1I&XyfXlPma-?+ex}^R9YpSJvB{Sj>gULwu0L?wtIy7IC^; z@b?rHNx-L69pIp;w!pBOi%^JJ(Dq`YVrN*2n2S?b);TMle6rLPtfQJ*pN$jLuqE0@ zb+@;a_UExRWbkLi^PowT_Q$a`*hd8!MpC{zZ}=UXVV=+?Mi=gU?kzt_O59W9;5udQ z)~m<*E+H2i8eBU;e@RCO4&Rj?`Jm4sGY@I^jcd2kBb-Q4(D)nCA5X1E$oGb^ryJ64 z0q8M-$g#Mw@sjrqV!z+U_3uom+>bVh5oU|*wiyZgK1nbmNe1mCNUO*A5X(uk_pMt> zoUZrLjsJ9AiyK?9`a7_iFB+KpnT{9h3hhJe-sPKQFHHuvlw+$*k7~$B6R!@eVg4Wi z$HEvq@lF!ObMQ{U@g5j$=#A_zj8V5iMQ7#nBtL_LWdKAC0gGp+NKi=X4oLvg3=~|HYFTPnZf$CuZ{$*gSndl^mbb`I0;1QfPkv^5*N9SLNO3 zJ;uT>YxJese^6#0w2N_9Iz93FPYo%%c;1rnz&84JmEhO>BaBbJ-PsU7;$5INT07l; zXhByRCmihuBv9}g(ea~9$Gnz**!>v++9MDneP_|6P<+!bvMB%er&6;kJITh3}XlnK;_)DXL{C1QeF-v}v`c3${IByA-+oF%VMr41Ai^|IP zC-;Rp0Uc1dIZkimB(q%x{dlM;zVcTur<%YLyM768G~igRU~Gf)Qhw#yzHOQ)5Z|sT z=Yk=>O5%QL_%(no?&GD|S?y7UqCL@=x2u7}mY%mgNkvl}rMKtop>NBW`k2K7D!k7_ zi#=ge-3$jNvKyh88r+YIlTicUoZLGvSEF+&bFy7!S3Tcyz$d;nsIyf*^vnLnirg(I zsm-p@uSq>FSgEb)MThzf=8)cuiR_Fz=az@Gy{PbJLrivE#$(ow{A{kANU2=1^HU50 ztytP3k5cM9D6&CoQJZO6Xt<+*+%u&?4H|(I$Z4{8!Je7)0puvJ^I!aoN7oqkLfI-A zp-x}G(Th_tAx2G{NTUw|gQ(tgO}}J(oFZ}n{1bKeP=r~nfvjYq;`xQP`A z*%`MqEvSoy%)Qu;XEZo|wp?r6*NdsJYV^(whPHDOM1RQ@xn3FIfillg5H`JtUMBGr z01Rh@1m`i(w-CBHLTa-*uOny18BdNx$s#?09ZgaS*!ScJ!F9l%-;t>R@AOb8&SN1s zi=`&0&{DmhafEHQk+xaWt*Uv)Lr*b=M!vaEPE~i7&SP>L;TYbrdc(|o$14_02aNRh z9*J&L9?SnOVYzs?B+XsTech%(e9cvzHVC+o=)l~b`f|Ng_=RlcvadnAUynj6ic~mtdyq~iPd*o8x>kRja`994rc(ZSRgEL>NFCSm&>t0A z`eluwK>H8=7Sav#D(bz_-GrCi{sZ>+hq%udR!k{t&q8h7v_loE2;G$fY5UIS3!x6R zZBfeI?=!-Xpk+R8bMp0gZZ+5L$hmR&YIhe(ej&;~eLi}ycE^-Lg5k$6R%y&g&_mBKa7YJe?#v7X1!c=gqwrf=Oy38y1x>Q)pZi4nscd zhPX@IM`~d{+EzQajt|20{PjF4`M%xTb{ekgYO&pDUM3Fc3drlE;^2zr<05@cc7_&9 zGwM|R<0s}CUfu>s1pnclMXb1Z6l-#PofMf`5opB?E9{wuz~B7M!b6}QuWg6cUi-J* z2NhKfO#iBWjU5^vS=#`^=geB-#_0l>^>)1VbH^FV@;}V*4_s5NNA z)iL;M9w{-+x@K?c1Lk(hyWkzwJ?bkwBl9t1u7h7w-jRpN&kPAVcgN zRj)A{^Zoi5KFS(#Jcw>f>UuB-u0WX4?I+{GQ?^L&*eb6oIpf&+!%zBVMg9u~nIDdN>iODU9N~P3dFpW3`Zg-3t_&%j zad}Tv&^vxv{+L?51ACBYip)s6;R#O!NBhLj2m6%vYx#+{E{qa6-4g-t zVV1v6Q0Tq+Pf;LwiDpVB`uktI;=UMKn0*{IQ%R)3fH2+Q6+!KZJbi-alf zM5yE{Y^uh2j^iy_4byb-d4)f1dvzQ_3Wvb9XMJ(1df)vdX_BR{lg%li?@f8^8btMT zeiWuj;<*rBy}S&tw5=wXe{IrzALD%y*#2)hP&kRp6o;RA`>!}q!#OnF zLP=9-I4eKh(2m6Ie5Gd~?zxn&FR6EK5mg%n@7B3hcd@CVN=3DgTT&Qctl6F`^e11T zDYl5=5fG!SHa->FiYq^OT~X1A>E)dnOU$!KGqDeG8fyC&RDgw9$H zqju`6l4$G{{CSPr5Kbd2(O-*Q!o%<6u5;&HE8-R&;5%{=%!I)FlAWxA!`z@^#Isg+ z^lMLz+M+aDetxPezq7fB!^106xx7zq5`^au@wi2!+}VkYm|V|!>BB*Jnk zS1nxY`yh?l$i30hfm@qXP$u2}&oCpymb~DN8>%QsZF&oCJGz^r-rY{dO1B;c10ZVCRnA0qG^-zkMZ(>G5l5j6|Ux@RWlWe&1El)9It)_gA@~);e zDdm$qO8s+RUpXuv^b&Ov9{VK$;vkJxSnRzc(A?`J9beb^cOfk_*N5joXCLj}0&Ris z`VPH9=&!uf%R#`3{SpJT$@DP#r-HLNfee=i602RA3C`xJ3D}gLpBEwm|8TZT=8FjK zNa#c`V)lJWKu+lN9W)btAIZq;$tE$6p~3jxB)vy*&Kp9cYV{P4WZ_LD%J_j5lY5U( zUON{JwoGR-z2xvfkeslp3Eh7Nh3w6GlH$)zn1JO^lOEs#gCfWeLd2X`xwup$b4%K*gzNQ zdB_L0tK*7f5X*|kSIdJ!e$6rc!`#Yvx(jSQt#a)}PKyBT@Yvn$L{p_r$^4Sc7<>C1 z>a}8~mvh}tSGl05y^i3T(7o)uhq){hVtfOyqd7_JDIykJSy!5hZCd@A5UQ2-rOH}3Ro)~C1?$rpO@>{$7GO&o@F5y-DhRJ?=tEqE@@@)NhHWR zByaF$UCLAf(VD*P=Z@07lav2XTELQaB~IEtxGg@%2Yhd2-r%%aD|;iw3ds$Fbd4>F z5RE@sRzU>TJv%Hg_6zvzV&xZ#u4S@uaj-;Qahsm*qbg-+mj%!eitq>k#m2n2!f}@A z#x$c?W|4(>8)L)ke^6qQN%9yfss_I4)D1e56l#Y{X1b;22c( zmmZLc#m1e>3T-}9NT8kGOiec2>DlN#a| ziRIDB)qEG{JKsNO5#uU zDi$N;D~ri_K%94?jm5T!z5Pq$HYsP2WLm%!-61)3bT6LX)$75Ig$8a^>Y;}tWpUJH zk?B_bxfT?Qs*CJz!*L6a2@GZ^sC%aQ zosUSa^d@#r61=RUYDZa@D}pv)VNT<2MqIEfCy)Z`H`eoD|8B*+9rD9vf(q2I*ih#j zDC$uIMZuqNTS89UB;B~;=-%*4)Fy;i*Y;1o$qSL6e_Nmc)3-dIQI30ep+X(d>xtq+ zfiHgEVEjPNaj}9;(oWYYPtJoocqL7Wb@I(0D;6c)Z=+p^&J_F@sV)l?QAjb!AJA}{ zaOh6N%d)^af2B>*3nlhPK81mXSFMTQiXIaU38qOC4QYbcPR?-gk zp-XFRUT7l!wSB84eYP|mX|=7u`2v>N+tXJgUkCbGlo;nmWIldt6CVleGBD)B(ok@CC2a;kL1FpdNp8=6OW5`H?FafH z<1IpVnz2?hcn@Tx{v7G_G*s^5-Fr<5L=c*hguutFekg{^OmTY_W_D06ze2U zn)r&~A6g$yyGBDfA86T+|u3@O>qcciclE{d`HTW4-BMU zY$6TU2p3**PUig$!W(y)C~JVN3^2s~uQC%M3^Durvu^er7|^ktyZ>)khwG%CYFZ4= zJmgfLHvmJr!JY#&oZ(QV`2Xm)>69Q-vHbDGInN6iQa)im^IRMJxsRtn>|=G9$3s^U zn&(49DDC*~Tyc_?4%AhK1Ij<2YXvUrfddX4KWhcNtqwF+*;WSWXRS6lOG8LY&!BTaOzNj?RqO>y6V+$MV8&2Zj zAzG9lTITVSx|S$vA<~|?hJv+1BDoatCeMa4)o(X4S;44^W{y`x{1v*hKvxUBobxKEyXE6A~uOh$1W90 zH%G@V2gkDWBOXSyqJfuun>9ghZvV zx(N&~5v9FW@Fjy)D~^q0pN?FNa)q$Q8*m6c7Ssj9mjMA4o`ufpvta>2JzV|cltxge zI>W%K0fU$bqaphHwYVx05Q}@uH+7hK4X7R0h$DvzfdphTXwLCJ|Cz0RG?JZ7>g2}+ zpZFop+wT_kv3W%=Hgbt92B|B_#3;*3sG6F-sR_9X`^IRfx%%L_imHrNWOw^;EkVy96YL(6A5*FGPEjl;hoF5$FMR zsApJ!Drf8nr7v`b6-MYLCi0VhDse9vTwtITke{6KR%Pvo(M_jd)0-bDxab-SzHHq$ zDy=n>pFB?KSXIgFh{Mf2M8495t22$vv?#Mu%2)6y4bQYFWKj7eiWNd`6mBZpLNHKz zNfdcaCJCDDz0gmd0p*0r05;M7TFK}g1gB!M`xCmTFaTt|29i60YMW{^BaKM#Jdp+9 zJsny%oL~^P+**97bu3)Fj{+7zkTND>s&FC3vH#FSP0G3Wh$^t4d^zc}KFG}^saEVz z>;qz5(HD|I;$>)wYDiYW2gzXo5=heRy%c9hQXMq|JHrcGK3T6f<0+ygK>WIFGjCie zqFM`Pgq13xgQL82&i{w4uZoJJ>7t#%U4vV&;F92);O-Wj;O?#yf&_O6?(Xg|1PB(~ zeemECEJ$*jZ~b?z`*0sveWF(*SIL!}>L52@Z^hEDl11;{jQPI6kGXm?cMaHN9JPWj=%s>#LD^v%)@xi)wq6 zCS&o><{x{VYY4*Tv7T*bSAV3=ZDu(S{AG-qhjadT7_JmVyiyveSXFnT%aQds-qd31 z&lg}VBSV;e?Cx$ciN5S6tZQzxHD*h75l-RNNc~}BgB}(98hL5Uu=iZ>y0bXEhAv6T zs+T%TYIMo?O=!+~UYPm< z<1R%%X{=hm;v&Sw18fKC8Yu5mKJiO=xv1S5$+s|gfNiRIyr)HHOrsIk%#H568Y}RL z&WlC^yM-J5qNR&7QJ5#=AZMYip}N7IV0ki`DYTg&Slb8T>##36>Lniyxlme1?{snG z9Hl0bw?B}Ff~PB3;1M#9u&cN+fEtJtzt4Dd*1 zMtFL|5dBJLTb#=Dru#!I} zuhdH0?ql5>G3Q0KjEoJFl9D7-TCD)=Tl+8BlXfbvj zmu#O-NwD02xSWk-f#Uo8BkPP;8$RF7=1D@MV&Wq)+|Pj1vB~9nPK0}28!CZZ^B>=F zV2a>k3VCB`m0N0sDRa5_qkFic(Q8-ei3)y116U>| zkISD4j&u8YNH0EkK7IBazHXFwv+zFDj+Ir3l_+TA7nB+nk z1F=YWWWbhO2#sj+ZXfM<56&Q67xLUr?(J5%YTyYSLI!|VD?m!AjguUwFkiz)Z?S@s z^y80UcS#?pny!zC>1!u5(=(n}Y^k;Q4!C;+KSG#BJ9We>9l1<)lp8A)dT^I|Lq?5e zf3jZB>VmdxbNt7mzeFtrut=KurULcd)_L`OcltoWy5eEC zagUDaocv!VzF7CX#h`-&VVNTdAQZIq;&VEYyCEdX>?vlhu2r3zHw~qkNsp;?Com2x z$OVv1>IR7DZSI|9@i*wjer_Z0VZ!Wxko~Dk(aUwBypDn&c-pQ5G3ocbLIcE^dMQ8l z(0vFLoR+i-N?s?#z;TRVd+K>#CxDE~{cAcZmavvtkvoy9b3D{8kg%f+{@nSi8;aK>>IPq8uMN{pS06%kM8zTkMEB4bC0BY2~40ilaw@kCZcj0UEl ziG1&>?Ahl@2l1MD5CR^^`W-pETy9Ug9Eu66;1~)s4z*wkg+|5q6&VkT{n_}DXN2-x z7(p2TQ1IoxQOpU*gzWi+yH#_;ejBj=>(a|#E_c7)WyV|FTM(hWL0=Sszx~N(C2d>B zDr1Wz>|L+OgIsB$@JDNQ$aS6@_N<9=uLlsku^G|Zgcmu$HCg)lhBHBL0#QwP*&_z_ zkZa!k6|08)tbLdBUF(MiIUkTFb|^|2M7EFRZ@wYx#y$92_^y?v9I9dah@2g#93~j+R1Ar7|C%;l z%o_?a{E`EXG|IKXsLz;OOauL+)m1{7&BiOKIo3+>PE7BolRkFIe`7+YtJD!xT(zj! z`<5^BM|!<6lCY8ex0{`&9Ol0_ib6lfe7`OFcqXU4=L0MINd2JT$gXKFbs1S(40*N! z_|E>h7Ti1^G-?NB$xH-|zEJq>2RF&63PO&(8HmnNWbg|_zMNe~kF7HYPAvbsfsJvj zy=_>P+iGw)eND(=IW~de!^dwS<&n4P$v!S<>Fd!`A#kc0gR^A$IEtH7-t5$~KVN=4;oh@AG1ehXUfQq4$9KwJdje}&7=T?+(C;x=N``j-KDi`Z%4CDti zE{diOafu)Pzzw94C4 zgQFf@j!Q3@p7*VVSFM2yGTUNTl{iwV*Lg^^7Ymi zm1LXVprSELTx6qyCpz-R(w^!3o)Hm;WzqcY9l}-%^ol|Wn`G^5OPiPpx2R6>X}+rK zlY&`T9qf0kKN;bL(k%$u>UO|dB+7ioyc$-}y2MtUd|2-Nse)mX18ktxpa(`i*jSOW zwZj9q779X7R|9qyR}w%qG`g6T{GN2CLnU;MwkNW}LRsrQ(G<8Q#yusAi}kd4LcFvt zTxK%6%b!#n7GjC(-fw_vINeSfjt<|FN+|N^EutS4P77?3hg_%hABD+KKAo1!XtX~pOji$ zo|FbQqX67i8c05^sQ|f>hh(5$kvf8xK-wOS1CE;jD&RSi(7TuL z)JXd)q?0w1p2mYa0@AwsRkmA&#$hf z#rT62anAo@v=_T~S}Xk5t@h2O?SFBR_*^$l+5A5%Vw6ix^>)D;LXZWgTJTT zb3Vy!Lf?Y@WcdC*T#<8Z^`^lT!`cIvQ^07-`F4f;8uIS@%5tV|L4GYIahnA+vH6v4 z@jqBR#znfc^FQM)4J-E{+?5*EF&0JZqkiQs*_I;t($1$`;6RWC8@DM_ zsYB%n+8R`_$DcC^ha`$dVv0_10C&RBj)VPg-68fZk^vM2HxYHXb{ z>HB5%u)Kh(7bePTmA}$5h0TIFfjt*C)g!~fl;VG_+Q*j$bx6e5s7`zXkd$^Q7>(tb zed>qto!|e|y2_t{X}TIPcEqNv=>be8h7q3{?GZWoFRh;xty?{co&^oHG$YO!51X$z z>Cc{=g;-x14v?O)R)E)NcX##Nc2EEqJv{BDzIMZ}=wNwhfT+&MZ}~4fBcz|^cun@% zJbasgFIr4>^Qca2PC*(nCj&ezhL^!&_iq6&_-@&Nev%nLCX$F|)?iTuq8lR?VD;i;0suf|1dR7XQ*e|o(0?W7DIe2A~C=P(8VK;WXgIj`wf&k!Oml`$uSknKs zPqhEUo;YRT9eQLs5KJbmvU+R6cbO07JhngKC$qEC(1kh-e)iVivl(r0{IQ~Rpgq;l zr-{}5j{G4+Hn6KL8Dbm!2#5slFT~{FW+pogVKHUvc>S;wv*b=K#6&h*kZ(2os zMr?0y?Z3a`?`eG?^Q`9;@okyH(8tCu8S(9aE71FiD^ctSs$uvifiafQ1wBo@YK*p} zNRkaa>UtUUu)YQT1O86ZQlkw2FQ00j3+lvHe#3t0e0 zk)HocSsVF2#heEenA8X=r;=k;4=PtpR7gpFpC)l3iW`0AhHxtEQ|VgfK=vH(t^97* zctEyGdC^#>X3=NG=jrFd+2eUY==ak8x83GG<-fKS+_J+9i$xv6#~;3qzd(QczOSjS zC?F&m0n`RT-eh(LAekbXI1g%b0$`)-I`c61_;HD8u=ra;cYnqV(%756uz_pSb~Ewm zbX@@@K=Y)t3PXedT1a0BzGzE1Gy=xucrCQ`FArD+EZ~!j=@iWbz0d)zEP4F$YcxFY z`8Ytf1qRwhU|9VtxBWiFDsZu`KB|KsnEuyH@Q`2JfHf+)r@|M%pj&>sGS)4D|BfKS zSYSec><{UI>8ZiP4%nGk7osteal}s+)p($B>%V8uY$p=aTnc2#G#W&;90lKd{3Z2& zl0#DatulK0koP&wFY?xs_#aK9k!I?Gu~*0^_(3$c{@=ANqcvJ0D91^alwsc@Za%nM znex{g@|SR3hD&kP?+bEWlH~u=uJCL8gXkqX8P#ygJR(`yPitB zB%`sywGPP3j?WzDgf>`?N@i-Amp{3N1Nfb5++B5K(qbl#^4*Dk_=;gI6c!q?Mk)&= zQw{zC)hw%2AQ-e#IW&Va2@n=>#oQR2#q%%-B5h7^^UGM1(M&XIe2cK&;5y59dajV- z)dHm5r8r3_lfZVc-PbNsn({49JaFmm*N!kV@xx`Bk6`izDxi>dd{bH@Pf)&ziBq8c zPjiaLz@0~*$xX^RAU=aE_U5+$-fwHB*FP(NH&y?t?=ZTf*=oE@*C%f zsf71ySCw)Y;iwSeOG18Xkt_ss3NbL-;^vl6_A<9bbg)c(zAuB|qeMF0H>dO-@vIALU3j!yLH8LJTD}EmeU=4-0 z^g8gt?};5HxAa=)tZ|WV<}tz$8-^B%q3B#>pL8l@**I3cV!-4yx&%;`5xqLx2rcuP z_17MavQiM$xpH^wA!fW%B)85~fG-lLeDIl~vQ*GfYI~s<9R-OOoH&UD2@`B+A z1wiaPe%iWD>l=$SV}T|fV?AxfPx&U#gC)e!Ew}P~*hvAo%aY%dMX79g*~%pRNU$PNN+RJBEP1l>?G|bn z<(s$fE5iATZJgpeC@!VS61w9?mO*`Eg%>sV?~5VQ#UzQLavEwC)zS%st4Q$APuGQ- z;rg*B(lxqQrz737pt~I`PgU-4R^T_E>F^6LAZX(=G?)_y#)K&G>5rE#3v9EeGd-#g zbgQ@*B94m4_ko>cv!52*jLXpLIJ{!uPtsNoG0Xet;A$4mZe6p*51H2*G3#nireA=r z?#*qrq1P3Iem$7zQoRRQo)D|1N4BjmaL4{fKhom#Bl%E;Sn9-XjE?8Xd;b!_+tE5w zBejwA@~`Gc4)6}@$Bbi0wYnkmKrh#hz|N+QRy0MF%zwqncm;p;IgoQ(jHu4N?&$Pt zAyc+XgDGD8_Lqaj$b4r;!)aU9fgRC9$bZpp%lQpmH_~sM{tQw40Z*G1SX_b z+JSe|OGzep^CB7)v@hcwwInTcgThGpE zP|vdCICeBFw)mzJ$`+kL*l!h2ouj<}+&x0xHNM15Tan51>0rQJjnOy4&ry*n1H`?! zYA=9bLg)39zehHE-?!CPe0nRI1;$6-0m)ujM?vdQJ}?1F)0^>#U6ECl(TkoSLB&Hkp=spJHfMX*K9m5_JvfG6sHLX z6;S2cI08W2L#MuRyKG@l4MOWR2#PFZ!8Ht`y>yZf=u2|Y=>KR4-$K*k5smmnN%hD+ z-r?|YSFv4C9lfYs|2uG~y836Oi^)(-dKXy=HHE@4vEfqO{x@fXuBORl!#lyw<7JT_ zcLJTimkkqwg4uFEvb+~to*~#9vx{olC)3(xEO+Q)u&$ZVJ1AqK+Q9;;0B((BQS58ni)$bg0tB5;^fFI_ z{Au13%YhgNl&~5+?Eico`88Hk`k{8&ETPx|fYwOk5_|qdMn`Z$3UGW5vP3ZZ+k2hQ zgL}W7&HVC6Te{?1_*>Gju>4Udv!SZA{+8Q9m(Ofc$#43i>#|&U<(ppM=A1PaafuR3x#==^wrQLrwBY8mL{{{lfSv0 ztl4OA`GDwbcSa9d5+{7kX9_5%km*9Q?|I+D!u*-2>a+l4<)3#Rh|XBL5S=8%djJq$8p`v(=z&%A)B|bD(XP+E#JJ2XSzKT#OFL3|>$uxX6 z`fAON0AB2cB8#~uEqNr0cdp?87`FP3Ds|Pi`v6^YM~=K!uLFRW8Q>jM{BQ(v8T1jx z6}N!FlPE+Rt*NvD>?e#jsZqTl-GrI@D~#i#i{*;w)rx3hOVDRYXlvX0g1)lX*Q_%f zpLJ^24vAfl@Zm$OghdLPQXxsB|L+HfSo*FU5p3CKIC5V6Ap;V?z5?siR~=uvV?TJc zB^_8p$FGFS^3$S|PQvtfJ4X6X@LO)opwwggA=6JW<^}nap9o=lK3jH*XQ^4DW zfVZ3uR?!|-7>aa!Tb5M6yn4+RB*RC1oSr?_0HI-#hQOMQJ4AG;P#bk24Kb@nO(;LYvkmp`h^C}b6FFI=Bc=_6n+PMfC zt-D8>m+(bmnz$lU6W~y7xz4Lc{c?VhWNFEWn3d;ctdMl0@K`#rW^k-T8jh(V1#eEA zHigaMEO!lx5}_w=tSw<&V2;@O^sD9aAE8$t5Gvxr^b_YFQVU-=?P&plWQ+{1=QJPA z^5#HNxtzyTV9z~vNr*_h+tdvBmSaQF8qoa6AiD*fO;A{Z?j}ydX_*|4)QbY??wH~1 z_mN1(V;=_8oY+zG0*TJ75tf*b^z|ri5(+n({?6qc3rhP)#|!p)$7RXD`Gu(d$g4s9 z*&zxwPA?|t{`9I@k7>3v73FW$k99AQ%I^Lf$iLCk9*rV9eMhs#YT93{(wsol(-_SM z>sq^g_gfQFxgYv)9IB4=gdPx55C^=MS*+D$k4YzEO0uGi!i9`Avr_eo6PVkDcdp`0 z_TTC-?qWe%(Cm0n+^_>*@Z9vE{u{C9qqR?_9`srl1Dk+I+FDJaPokO5?vh3Dm*)?$ z+uCFq4bqG&p_y&|+H>R?$80AUQjH|m(DU|kY#8{|Q5^8-Tnd$pSB_=jkKMM{K1-~K`F&cEfkx+@{h#Oi!+OGkgj@--4b77 zKpc67Hq<2W*YM@kMD$UmqHf>;4P-j6Opx%KRyRcTV}f%r@Xb;M9VYkdBDB;$qyP)5 zV~NMIHjH=)E2(<_61arTr&iO!0T`e{4p51IRdjU$^9({Y-M zg@7X?c+`S|b@GP7WP!kwmjrjsPh+hLl!{DKiCFjPwfnrFfcgPyJzU$L*9nNi3V;l) zN&@0Nnl5BVhky{)o~Q+W`pOEW0;CD7>*_#Msel5wYb7c=piBWIlK}-GKq1eL@(3heW6s(dm=vN0bS*zL z!C|FTnU|5^R0G#^llZa?m)CavuVE9o$P$dN+8?5E|LMW^?~;(b!8P$zl$`kX_4?b( z5hMitxg{{8cnc^<5-3SNwcE&MGtyEEs$s@Dr`Y_EDH@UirmWt?dmSE0V9Gyb%@%=M zlW5o$nSjNWu9W$zae) z%=A@8bSkkk5eZRDCqF~V63K^pk#cUh9BSQ5lKr9?>u_az73LU7BOObQg)(!D=hVP$ z(F_W3zwR=VYe5pf-oEu6luL8WG@DJSlpULZ}~j<*T45&vgoVW({7P`Ao>{#72{K_8L(WpWqIaI z_SDs4HthK&9l9@=vOyJ@lN!Y{IV<)3Uf-imQ?Q^+ecXdtgz*&x6H(ws_d>1sVbHLv z;xW;Wvs8(JCY~t8S%aabB=PBGSC@nI7H{G;mQln^s}-jF>n=~-$1s=oHZiv!okC}f zhviSjZQuS)KBw@#X_)C`>F9qHeb$&)ee_HuVcKu0HTzsrMG)x;L=d52L@y|Iwrf|$ zhuEVB!vEAaJ3d{lir0vDU;GnD-dJZpepK!FsruGoo@SPN@ohEzD+*yvW{;KAY1IdF zeoy9@b5*HrfoaDK3rXv_v1K(7)xl3-dHem9PC#R*rx`sa{J~912hRJ8InO4nOhxk9 zD;e>Gk%t$aodyudU$C>9r{>9!gg%#HT_`tz&d17GuC7h%dEvVB8n!DbRA`50Q8F|Tl-%x%-MK%pof$M>WMz?Cd|8jm?l@Zk z)~%&e~yq;a3(0Dd=cDqG|ICD@?f9yNMnIP*)VI=Z~PT67~NsEr%bpN3w zR!U;aHX0S?L{}-N;85|<&85ac7`cEk=FA*U$Ifv897orY+VxRpD z@UFEf-$+8=_BRY5F2;NF(5XxCl~W(?&zTIl3I!Ju$xmI{xOa+Tq7)xTnvm3qHJrSQ zyl7R`@5Q!`3t!UJMn2G2ws7JS%UM9yUO} zQF|(EYs}d|{`RT{#Gbv{-y?g0T>cjP6HPE~x!(o1{H@+V`Ls_2Z*q;41~`ZXNLKD; z-N^DJqVQJ$D97-b^)|If$BLN;UY!oTlkiCQ(5sF}5eZzc+*(i#D_IO59M*(=xiJtm zki9^40sV&3nJTJr8W0N+_%>}t??K2?Dpq%2EMJQX9&7i<4Lrq7ec=YHYSU3BNN4Yk zK-*)E4^T)ojdcsIv2|(Oz=;&a8e%Wr!j})Iko_ysuvlq9`^P7zI%NWV@SJc_i1lLt zaqA$mFvp@-ye~u&ng*2K1OHooq^>-Y%ibS6NF<3UnNUz*>Qsgji3u#m<92(3zWt~k zZC!_`iko6P6dO#sif32V7tH4Qg{NgHCa(ZVX)Z6Upy0{#F5s+vGW{SubocK0w;`25 z+L;KKO0Iy_UAB*9SO|pT-OxzkT=+p5Jf+%i$-pIlVU^wY8+8IMyqhxLA2BlVt$yp! zJ&nFJIE|PswsPC^_8d#D5gQ?K{-_gh<$W*tJscyG){2XR`)d!6eQehF>gDUZQ;f_Q z1+`>A#K2ug>ziX6t`MJhwWNRLfpj{NGgkS&x2UG;55$`DitQT_Yr0mheTI!l+gZXu*x0*2qG-jOL?KCEiUFkjBK7XEAO z+m~}yNxYEjx7;Zcvv9+>=hKO1(dGyyk!n+H5QqU5G^z-Q!;Y%KV`(uXNFJJpmajyZnUxzFYH8P;ZnYLkVYLakm=`$}p?`WyLq~o=L zE*sy?Swsqw=9(mKoga^tG6wqHr+I3)@VX=Z&kT)6f}i8+N4>u5wA%jRI5p&DsooE* zcshQ_i5S~qi$dO=N0+%bXbe4exXn{>ZRdWDSTyo~)v-a?w0Nl;m5#5l=z|ws`?@Vm zH8q75jR}0J?D#?R4#gJ_gC1pCTJy?67S%eEHDL~m@=g(@_Q40nkaM*kV%m##_u(V`Isxx%vFkz-yA zcQ4%N4zd8ec2R-wkOSfu;}16KKeOwIznCGSy1yRijLM8;V<6|850K;b3!WOQu6WZ$ z>Syv#YbxFGq+lxg`NE^nITZeAq5}*Kjv{F&k?c*dFEtO`?S3_5cegU52Ds!*xqapM z^E(2V?b#`QZHbYr?X8OyDs@4po};PbrDK#|>JRiudWS9~J##`L<>RjX{)xsGRi~%2R}kd33OHDO5nNZMrVj}RLkD&8do|3a z?~QQpY3HqM^9W+`y>ZWLI%F}M;2d8+Bx|;@F?#%)F+k;3^axLtQv~y@Av#edrV>Ns9u{D^q3i#(WY#5X}L47d5{ui2{M3hwU6nbkcZl} zcTgxmkJ~%4<)N!>f+8OtW%UE>4m2AR!Zh+$C%eC~D4!mvsEhV={^t#%mG_!zVGW~q%aOb$bGI)H7<-m`3Z+jwz~7f6e|NGT-O|` zZP#2K*Sixam-{oZoOCe;3y!!h4)3TEG4 zsJ2V)${IMT%gK^3g>vaG7hc!BGV)xE#qc+T`Bmw?aaOVl9p(O`-NfOd%_yOhQbI}h zN6iGelm(k&{g;c=XXMZ?@e)>Qx6DRy&BICo#?>0zD><6TeW?=JN=I7N?MT6P=+a(| zGlcTVkz|q>`^6s|Cb6HkPG?E+TUF#{jhSlL=_X2f20nS4D9+&>%#v=0$?F*W$TV}V zAGX&HZDV((lNv9cA>NEHaqvk(gk^Lk!8zl5kq7P-hs^k%VLZUW9+t;g;N({?XE33T z%7-w=u$ciS!%Zfw;~AWPp>9HOYfBMS4fWKb?*=OGXa{N!tKz_YT7h4CG_j{W#ks%U zWeZbZC}=+;?}u;*5;M*5O+j3~-|(MDLg#6W>qm*Mdpe%z!X9{5klSkrkJ7Jn{}!yR zJ``LZMkj12HJzL_5rEIP^Wgjixyn=pLuG>DbBumVzhb1=<)(uK?K_|a@g~1fK0H*m znPP~H1LZnv#i$T((@JzbJop>R2JYVfVxH@~aJ~y z`jKDzPea_R8ZPgo!H#^Q0u{TjnRFR7+t0WV3hx7Wlc71ehe14fLpfr+AnaOK&`Cz3 z1^K^1;_yGw`I#-w`d__g-D6%n4A z_@`xW^rn8MO`c|2SH5B0uyVnVV!0Vlu7KP3+rJxaznuX{r(SnP36J!X59bu5ICd^G*`QE25=(GWPUk`IQsaj1K=bdL&yx+dy`{4u6@SQuyNi7&yHQ!fmvbSbW$RyqR7E|hw0rpJV|%5)+pRJJ&r(&ra?r&w zzWVErU5rWXaVWMSu)h6->n#0-2&*{r8#?kmnh%&L3GISA4Ywdicg!T@6y>xx7iW3Ms?TWNQizeKG!Hh8p#cDwg2JF>$Gn!CD@*DK% zE=~s#^L5E%u(65j0(uxLt%qTm>rXQ{`@;$}GPIL^W@A;O3~A0w?2EfyxGvtE*Yd3i zI2X4W3B(-Li&GDF!o~BNp2lqI%W6G5d);?VCEOy)y&y6JUO8G=yyAC4`S8v?&YR$n z`?&N#6#n=TW_ZlY2x=qarosUk$d_-{e8V_YB-`_=*xSY?l$+=|KeXJwu#_wHaF*X9 zDyJeuDx_TNYSJ z5nPeB&6?v~^q%7=Q2 z`yUmU9O{yfx<88)@l4+MLa7brk;%m>aODe0V-~+=b1kcgq8c2I&R@S>u)g+du;DJ4 z&uzf&!BH_>#v34R*4Tp2D;RKo*+EA*>VynFm}s`L%*zxkC;IHSGk>J56cw= zLH<9rFnxa3(Ykp0%Naqt8YPq#ZDOX&!|sP8f-*y#Sop};_+ltLAa!2A>>cgnnZs}*6PVqo|(%m$CUaE|Iwody800)rb?`nx^-!4lL)yu zOz03rtTTkVDdQx@rO&zM^PGwC2_?`dw5T5o<*8)(gWa?v(XT zYh_-L{Hji5gp0kz(HQ)7CY=t!pGD%UI=ay##&9NLwOD9QN6r^CXDs7Xx9AB4g9C?y z2fF2nB`sx&6P!5n)CqDUaxghFs>fT6%qO4G$A72Tgi_oBWw6NXkFLqlcH>!l8$1LpnP&S zB`;gvpLEuR9fjZvUiI~omo1780YyGwIFpu_l%H8UPbQ#$YKpwuO)dw;y_uh`5F!Qj zz9E1u)Bwh8Tta>NM-O#-5A_p48J0$CFsGx?)mz16Q;zX!{`Ac zTeTX<>j-oxg}nj%zVD9e&iOBXpSS%Eo>@=ttU9dsIP=vLFkqo^CadHHKe8eIU6f1; z7JKm*Rr-R;U~hrlFlUQQa)8~I6vJe9!y-q&oYu07PEb{}nL-mQEB?vBNY6-S8G__y z)nbcKyi+>KTfi4#a}>V;w_qsDDIn~AC;J}Z!j~cND`C+;B&}c?sExAfGk5>Qa2*#h zQe+%>(s>&lhkI(BL?1-XmRp_-aB3>1%h^DbgO!Z|3VA!cf2#IN3omLKEntN-&lXl= z&_%=vi+S6EvZzjIXN^pG_$yDdVo^<({4(3a5GIWS`4CSJ?Y&RW_*HsJ2= z1)rYRp*db0-9Fjo?Cn*+BU0jG9oAO>%F+<7%vKepK z;crH|3Ix8*p3jp0H9_cBcImsgZwhNmFugyV_)G&MIeTMy94Ek;b3~k^fhleFukPi& zj8UqIeA_~N<5Vve~5Ewm&K!}3{Ggk3u%INO;AC4U#vus6>YScM5ge{69!)?)H~2=;oD?%yhUyw0D z`Gp0P+WZmwK~$dk@5ev!&lEIZgnxf}MeTf0!}NV3hhBSQzw-Niw|`CAnDMf`xyJXq z;S$C31SO`8ypOE8BFv@lQ=3^URy|!*}4g;{L+bJr3+$CR z{^W;L(JKUEj+?RK!@HL!)?wTVC3=>^?A^M_+-8*C4yUo1b=n|?%|D?S#I;Pm0Qj@C zc5#a0`Yo0|>c6-h2yH~?^qXTixy0Kyu|`1Z9iIvucv4{s70J%~o)h+Cc&ZEuhkHZe z5(t0r?gB6`>#2>NOCBW61E?sCtZkXpM~w$Ib&Ur^vt5wiVF*&Mea?^!l}!5eBxIAZ zEgK0TvJ9KMBEgTE9*$FsP8hT{f0jQ!w_%1g^C-CY?U*Se! z26s;~4-QN?G)WGmp@vOfEerEm62OW{ER(fYr{2Psur0)mN`89E0zZDA)vF1<7i2IB zy|JWDC%|IK5FHlg8!N1ENr7usCjh4b0rcw@O`dXz!`O>`>?g7#Abn(2WKK_?Y?*-L zYy(U)`fczi7qON$-{YBv1Tk@6I|Y3O&n`$!bfoVh8e~wpHdJ=1jHhKfq&Jc$-V^rs;pW1ElRZarl;Mr*3 zi{ML}SQcpUT4LK=yoEss?#2VsP=#MNp$}RGK73DIZCAEc^8*l22FJ`UVsBf%g~ENo z~k+qler+v z4-{uJ%I)5I>aiuSeDgsFnM?ncbQr6M%X8)M5#RyJJQ2kIBBy*wQ@_etgLUc@qjvcKj}h zJPWg`|9ygkM``L!NS0InnOirxXH*RBOOOeH;%Z2y@uz{ls+prXmQ!I|cN_1u3Dq>i zSK!5o69Yq0Gt;+6E|ny-(Azar)HY8`_zDj6PNmh*R;3B`P7f^%%9Ik`PfY7YHhe}i zpf*8lJY@R=tifE)mJo3n9iO8mJhbCtb{xi3Rly`0@Z<w*_A!pUDoqJ&>joWZ6 zdk)gdr3}G#!2yY8k+3m}C>TKxY&UHQfrS z*xa1^8M7(3eE5@g@pbeQ7l#)+{Mo3;A_P#+YJLh0`@WG*F~LZo=m_n%a|~EarK7-* zHj7n#D-8)~Q|pfVo6eDW(IZ9SA#m@3@ zPY8ijUKD-R!YKans+hCq=Q-}ze>qyBi^nt9YHb{LA)n?mKHZ;p={J{n-7}1h5zvDE zomCtipzZ2L9T6=%?f$0xW1mB&aWI?3p8HYe9k2S%lf>6bgLBZ&;%;Hb`HA+MXzj6U zAuZ83mnKC1D=KZUxF%1~ywF6$4_ije(=Ckb9Xj57G#2xoAET8}4Qu-8mXwz2Hg80J z=71_@w2z1wyK3?*wL~hQp(_-1=q%S*J)@zlI5g^A2$4?-ageaJ5Y302W!?8Hb+oRY z7g^&EZWux|{a8GK%@l86W1~5cn=RoA39-N4LJXs*{{&PgRaW2PT)c`+)4&iy5)_)C z-SP>efX5VaAN|UW=}Gse5Rr0-8JbYT9E@uaHg4x}WP#Gkw_Rajh#IOETgy4>MviX6 zsPg8}e9|M{*6w-^!o5BwgIO1QEDfoCXJ^J(tsoAKwyAvQd1i}z31b4UK?iOrt zhu{$0g9HW(8giTGeb>78u5W!mk|}y-x@J{(b)B=%-n(#0*kP6qyfI0-In0LaWuEzd zun9gk5tjFaCZ0jJAKN<6T2+-&>Uh8X2YdO?vxPVlP7XRM&%@e!G2eKS7SzIYV#?U^ z;cPPdTtzyEk9p=V9tO1|0^C!~T|-L#nxAJ+wwA?~rdQY&o;&6&`AxRMuyF1E$qqg3 z)fpNR4D<$Mi4LMS`P%zuDLX>7RtulZU?2G^-m`G*U7&1|r|)4Wow~Xw2ZL=tD3QRe zHNjo-ucX$8MMzy6#vz}EXD{1`(b8-nlL8vFUqQ3yUyQ^u+$X!*4txn|mDJ+k=u>wW zX>De77=g@GWdQdcjzO{e+4 zzA&|H*oB(r3u5)WU{01Qc`x?-MotpOMN7#BJ!F zjQ`qtG6w_Q$_XBAQTv}}wUSRHC3VoB2(^o@a`Rsm{d=Lq`uBh(3Ee%oRU|&L!1Wi; zfx7V&0R~q?efVYARE^)xM!t#Eb%t_4!CJwfKeel)AWY5uR>*d4PLWU}ErBjXiM?It z2wGB^VUe?atrn^td*AUdL~r;CG3Q_VL0MBY`lo;;1c@H zAgp%p-@JCQUki>D`{)z(N3ROf)z>5l^D?Rdouuj4NZD7xok;t;Uk8F_>j{`0^>XSl zT0a624xa*=kf_X;nPUc|M>^n@fPnK{4AUPqlDS6c;F})S0bO6)up6h_WHj9t3(yq4 zp+%R3WJLmRj0x|o7>Ef+n`%R+#tzEcTHQVgcC1X6eQCL*BvxwmhOjo#*9qtc$o3}S z7+uc=Yls___*!<}7wyFUagZyPTt6?`VJjmDpYu=l%LWGy4H4GgSIY4s{YueZ<5&l= zG$1^s(e))*9K+x2T7G+!ss7hZBEmq?sCFKALPn^p29(V?49 zt&;Tv?6LFo5t}4xTH4K{bp3_-dGznHu=l`{&kx)=(i6Uh@7*nyvxG8Tn74k1O++-b z(X0LaZMT#~D!`mFac^AwK8F3dnn~jLt^K*IdATpf?C0LMKU^zZ@3c_E^4=XwDCU@H z2TRc6V9;~7bJD#aVZF%zO90KN_RpXtZy4!vr>wC!&63|#{*hoa^^$K|6L_k49oFzd z7*zWn*f8ghbMnmRm2}KPM9R40%T6EZ%KOg?0r}hSq=aG$JYXB4xU)G7scM9Do%!xM4<@g_hv{b^k?YMMEA=*!81yem-(SkU#&t%#U+};WX*1UOt5Q@&xC^x;xXXgqFN)he|Y@l3ll9NCr6I4Awrs0!b>f#A(MvD3*CW*Soj{k z&Uga1G(EEwcmwNT!jYZ;7L>IW^j)$61AaKJ`?Vxlj;LF;$e#Hv^D4b7F%ZY97231C zML~Qjwh<5~?Y0mQH_OoYr-^8ZI@#^T4LQnHHglQ~9$i2wnAHDiVBn2CRsJ&g4nGX+ z>Ul#F()Nu(+m^@vFMIIxy9@mCSuzw@P5M0Uttu1m1_1qw!=>H$f;}6|Qvnf~gXc?J z&y5BLqWI}oSww5P8GfP(bY>r)z9XL`+TLtCy%Zd2P|@OGV6wCay4ZFY`8}toqzI0|_K_4!DJHeaR(YWl zbF*4D7Ckoqd#T8FF~P;9Y3~g=_*oz zw@%I)_-l!N)qnEFo3bHPt>`d{1W|55dXf($aG(kSR=Ggsy#8aCIZO2Oitm!f1X8Z4 zG*!pU-)eErslgd_{4b-40)LahGI5uz{i; zjLks~CCX4}&eR~_fS-QlsX zBCx>Laz9v&n?0sF`Pq}d-kIy8jER%5Ca??1EaMi#T29Od(oLVqXm$;G#xwTZK1x$+ zcujRV7>K5=q+p&xB-0v<;pHti40ruTIu)y}IJ3I?tL}9BH7&G}Vq zPR*1ppwtOuQS*%K8^;b`)6N7_YW*2)B*++=_mcG3;c`GMnyaWaty(_!SI))Z^2?~? zKuq`KEo*UTcDYv3htG&L`dkRbxadF5qTLIxG2R9nalljH<7f&wRjdz$XqzFZW;Nqh z=t_ST(0m-ixC`@%4sZ;}$O&X*EbO_N$Tn$PPHHUdzF=X;7xkn?qm_K}++k1^l(BbW zi3ZCjco&+7KcO#8jtR1Pi&~xkLgpus;{9eLsjn@vkWqd{y_TwMU6raZyGE%7ow7Z7 zbI3t}@F|t{&7my;f{D7jmvUypyJCjPBw>au%d`X`E#190_?yW52V;$_@zzSaD!#cP zXB5S6CX*;ja@@jL2R&OxlSo|!+C7`ijZZ2ck~(tz7IdoR2$sIi>Q;%(Mg{SywLT4i zV}-ka_ql)K_p|z|5{nf#v&{d1z71OuYl+;hoD03hN?j}&>tdkC;7575Pw#QQE1&_7 zS5;4-eLf#{RnJW+zROZTUX5!2d_JxAb-gwC3}s=8yU1cK`yK2jw}PT1uBqc4mAXg! z_)`;jVUWi}wP{Ig?D%}3&_Wu%AJHmHNfxQiPEq-8Fl^@CP<_wWqNlI=>`H;=E#3}? zEAipCAvz_Plr%YvT}BzF7P*LC2Xl;@`{|G3N#wn@@=}j9OYKl>R{cS;e(7sUQEXSf zlIjn9ebvLY%GPABA2GKeM|gh^ zh5i#Q;k=Ul@y|ugcy*`@Qz|FqCrF46Q2fm(ZmH_lL{_@=5w9NWtEYblt;ZzNK?8&g zx$8oDH410t%JTOdE8iO5nzRf@@A#I|ca&k8Dkd-KU8=>mI{M^nJJ}oj+9kbwA)x`J zcv>6W`>c)JmN|6HfhX02z8EkK{sV$qHdpz#N>{|Kran0c4D$0y;+?uZ>k;HI`yV8~8h7VN!norzUI2t!R6x~6&GG4PrK%#k7J;pjB*7m( z6~!#pl6W|z@5PRajkS_hI)Sj(eL`)GIWTj`6no==2@^j#nzY2r=vBO{n0BL5<{T=! zr7{EfY2tsG8He1c^x279(A!guOF}=qVY=+PP=`g7i}g#A=5T{YHXLx6B1dlp&Pyu~ znUoX$kY)xNUQD^c=-UimxVqZBLMhVUdS8UsJwCt)&Pq>X#e?QwUd0+bt21 zd6m)R;B|kxow~p-w0C^c?@Ddas53$~majYV4$HE#RJuDVJoJT*+(m&*fCc{iL*h5u#(GTeP?=qUHPEA@8Z zbd2u+w2(a5^;kgRFO~}l42ON}Yv85u`>YxG>jA-W9K6{&$4F_rDZ*Sy!5|p=agMpJ zT@4fCDW21NQBRKg<)4GO_0POXQP754`R`p{^)K5fg1lSbtSdaZBoTPR(zumTPRQK5V*RMK&jMTS@D9!8}Mnxm2o z1HnPmVqqTj%2afgm?6oxt_;tv>O&hJc#Hu1W zLI9z#8lq23gX3yH0ft~Akt>saK)Z92nvuzznBXAu2Z(oxlPPty_)FI@Vln5Om9pJ- zqcTHk(?pM4_W_UQk$EbU;>?9g05GY3JD79PW>bB->2}OCQAl z2&qzaAVk$b+fZ=MR6zO~nYkX+vaOA`xsV>gp5zyD5cTrO*qIpdBtF5~A01;}%=rw# z=-2zR3;pS?aqNNbU5qalh^zL_VvUSjPCeH=){Cb$L>9L@DiA30UO%w)-Bb*j?DQ6C ztOg+8T1@P;!-m`Htn`AXZ+8p~d;ufLTlSB*@V2DN(yOeJo?rXZGZ5h{hwCs%fLbni zaT|iQ>6bNwaFUdcDRbDe^;i2xYg7+{%9v6XJ2goP;15mv#-5AdbZ^-_oTj+4SHD^Z ztA);Xw3uOaj+@b~_(Zuk09)%yuUdeyStTNybq?==yfSlwHcGsdlMH6fgIkvfzB%Z4 zVfJsliq?W-7ewP zq;`~Uzw%r}()sM1SrcuF{4ya?c$E$OPgoqn~agWgyGos0#)Oi3GwBoNL zZ{<|3rjSfOCFXX86&sii1roCUN*_|dE`8&WQ_@XYhDge4*TF(HbZFN(+)zR}R3ZJL z(V|(5e1%Y*BcC~3N9?t4`XRc5VMb1#SHZuLL?Vj6&E9MaAM<)8=If_Wwf*Jp?A@~@ ze~(o2PfFrvL<>h^wo3AqgD802Kd?{%APV{mR3H5bU$Lb+TIMc+XE3acXYr%{gs_wy z_rBjOIbBH*U)r>OSQuQwh$(E~fldEB6oJb+naeI7?P#l*?I8tvlQ=bpt3&E<{&kfk zVqEwO>p!1P(W{;L68=wRCY-8g4Y^?VGGURR3Y+5B8b8A>9ig%p2szTPU}wDz(Ar~; z7#x@mA7L1W8pm**I^ zK8d-ioq@$AJ+5|Y_T-bkYOa8g0%IUsRgDh|iYZiverwFc%ff*%^-20s9BV0gD|%1Q?R zHr@lG9c+%_v3KMSb1^oE{dfj$yX>TfcZ};kU5a7LG2hIFTi!7&p-aR{ATq7`V)^Tot$@=n~o=n6hSDo{d)-u{age}Y{Z~2=WM+g z>48s*&L<6-$K)!l5Ei50ziX6D8y3uWN97|e;Fh?o!Kx9cqr0AfN5^RS{F^@jwHKq6 z<7VRiXdQ0EDJeM>oKcbwR{c%}Dq)uAKjG18}xZgG<)<2uR!w&Upfd7Fj&Rl(?XGM4twFE0I zRwMT!nAulBwl4S?QUFwU$x2loO`%AJy=YKQs0ebAtm~cXn2rDPMOyn0m#bYp+`;f# z%LNskZ?0Lhaj2BP%gMntZyUbBac8pYQ)uw6bt~F>Y%1LeJ; z=CdgNqTiSNiZ{Y~Dz*ZcAYK79D{vn5gKh^q^wi{FaS{PmWv1pzMge!OzDHP3)i3Cp zGSuRy{<`>PL6p)AYIso^)rY*`j(_J7bkN`s1H;)0HGLEnJm>&h5dc;W`T%7kMcral z2|w6MIr6&Z2r=Zd zZO(38o>sj^Ad$gCQdBa0966-)vz-C_SYLc>wi{14@&G)!HW;eJ z1c1GL!1x1d*!uSe1e5)$?~l$E*Z|YsX5eiyr8h|?HPf3b=#o_Lc<@*; zhOsB>BIr}K;UOxV%PRX@ebK7{Q!-Ac7?S<;+vdrmeQ%iHe9X!{wJlHD?so2cC>PW{ z@w(k&-D|?qwPoLdlhn7?wZ5XqZnuCny3apa^)TQ*8hb%}HhxuWM5_kR zDTnMeGnjeagCGj=*Dfe{y46I%J_^+4Y?5X+JYx(oGGG>wyXN=Lf<)sEfkd3Gus~AtZCg75fQI0Jev1VUQ!RO-`jpo?|u zq@-))ryHse*rGTqequoNE?}|}a(Y8C|O<5SWTN7#f$UzKn z!!$5in%;?JL;=$az-P)X^gk6uapb$o%7K*x6Di;+MD-!F59piv)#aeHl%fqR=8*#{ z+q1Oq1Q@mLC*^0-zlbe{ga3HCF^?I%ufaA@d6Jo>v7|`-f%U;rFRH?DL0D#YEQd8W zZH6lo`L?Q}9QDzA^bBBJm@1+TQ`CNia`3um(2Dwmze8A}c zM7~c?D6tr+eLof#jq0`}@v$vWHAd=)8FPUy+Ip#c^APm~pW$$=z24FE653p2Js*6{ zD4l%Ji?JDRq#!)Q&Cjb6?XQJcU}~UcJGq$rh^B)YL__}w$fxueZ$~H0Ln=U1o)xO$ z$iE$P4Mq@7N0C(lLcXc5Reo)H1?5U*h;%Gu4Lzv#RX$6aRa=`fLIF4D|#D>2eA(J;d1U?IY8n-kBbz*f;%*GxZs&sV5X^ed1_ z$~jI^1;BjY*obHF6D_>Hg4PXRlS^?<&6_$sC$-3H5-~j@leNnKiXGw>l&LI(bxTA% zDjfuhFhO1o`NK}QLrzNayLtkd6a(#DHOj^3D1ES{HY#Wfr2&m7hN z(i%~MJ{+R@qHi9k@-v|G)qhKQ$Ypg=ogrmS;%Glb#oEQ@40l<*Q8%lws5dd4?JFJ~ zWb^-+e_X1&Ra|mY2>fCrvCGQ70=h*h18wYEiEoB)ec55Di^*a{T9x4A|Ex(fnGd2i za>tQ%1kjR*eA+rlh?-$R7+ReCcM{Ols0#D9D?W5^sx?46%WepPI$GPHYa9X70UH1+ z&Q-1uHvf=GQ>6{#MqRUM%Q7x#l(l>#XfI`F+|s0fRTqg7>sRAq`G(O;<4~!$T29-7 zB>BBUYcziH(if%5f^Qq#1j!>=wIL1N^%%}oBg=|HunGu;*^yV}PZRw-Q&qZ;JMcO2 zm_f<(De_Hh4{TQ@n`1JijS6h_*&@HCmq%NHE4)+RzC%Kr)uUrmJMi@W z4ZksW_jWlP@nn4AWg+E#!Ok6P^*Daa!*>0lv@yES33j|R4a};0+@efidCz54<%&mw zJAOrdWTK}oqESG*&CS?ByXkm}Y$yG<$68fPckfUq_x0jt_eN*e>TG>-)fU5t&RZ72 zBxAYx>r4Ox((1Q;2|<>%><1-pLDJ~=U0->A8tbo^=~D4P2k6414J$=a;mbePq%b*mk!j5}5~n$&_9z0^VHLME-FV z$65%~yGLHS7mJ2{v5M5qPdO{f0o7GewTz6v+PZDJA3Dm?$fnyOb)t4u=@uS7K~4g*}Mn%0xd^}HcsVCjA1!ZhN= z9jd%0lGB*AJM2$7QqbN=`IBr|?_zcRV=6I*P+wam5ng$@N7uS~@AUP>a!eV9#7OLg zKFNCSL#w~rzjB;zH7%TfPc6v305w+ElhE;x%_o%2l`CY|m`K&TWodKgVl{OGf*2$Z z-XiAZnVtHL5HqnQ9vsmnOZI=)l0R%$)-LNr*!{UGDtfwd_kh8(K)U^uQ8Du4ky!r1 zP)YWiO!0avS7qGGTujl_p|;Im=ex5>L$e0?z^g&K7o&Ne_^cr4BM&`7t@lJ$cGrxb zkTp1GV3!!yz*n#SojnUV7`vu}oeNherdaw1r{eC=4LM(x(0u#QNv+X?GaqrovqqNHcmClcdtvxUXwaSEtg&oCkfF zfAbQU?6ca@UGYPYo?M%!(d@~m0)7x8ne@NPJ+`;srur-k8%Vd~%H^pejb3a2I=yCa z%ioFk$i&F@DqzRH_K%n1Y`4%WNGdstd*LBX)Qi@%u0+#c=)elyR>6gyd3F$DnUi?! zLCvF%B-UYr6K4aE2rZekc;tu+K4e5$M1eo@gd)18sytyTg(tw(Wy<3H*{eF!2f+H_ zp@gDwi;bQB0#niYL{6xMNB&)&h425mN-LOTyfq64cPRyfHW-M^j(!0g5iMGPLU$h; zg2Ve8T+7dg3RbgGs48}!#O-qS%S8Cz9L0b#fg7p0HIIf15fz9RVB z+ZWYyU;+trPQ9$&c%)kbRJ2XU^!Sh&?R`p+N%FF3#EjpT&Zi}w^mbdYsTILQWEfRM z!;YIxh>`PBJgL_&WzIJX5a&T;|Ky$DI(;$2%RFn#(?V;t^t>nP^sNl_CR>}IZ`snX zfrXS-2-c8SPx_Fxx%_s9=bz?EZ;bIre$&?PNxQ^6hh$9rJ)>=vKQ*mR$tH7uF^PCt zKOt>yov_0~w4nnTWU6>mh^2|*KyY_vI6w;C7f!njWB(gaW<8LCe=q9d9$V+>tZjX! zy&?16MgOA8KAU3ar+rkf*`Inc@Y6%hFO{e!G3Q&g`2p zwn41U-(RL_`VxNkqBsKdNw+}_@=Vv1m5ilF4^LNw|)Kv)^WVF3T$WP0`FgV{MM47v1miF+sz*-y^_(s5B!g z6(|b*R40EMrypE#CxM)S^Ade78pFNnmFh8XI*d6eX~!XKprrgmex;bRb%Htc_in?X zP|;HlWBsWWa=)hjF9xPt_asXW1RK2xf4MBm(Y1A1n6e}9w*TCr6%t@IUU6B(;uL4_ z;>Qei{8Vao<0D;=k<{ohM{9XSyW(tq)+4I_g6c)CSaV2k1^>k7MlB)nz^^@|Cc7-I zeXN_9)#do`f$^|e5^?OoOh419u_HkNj9^l3ScJ!4`|Ak_RdN>wnoU#tuBlLLn4>Eb ziL1LFKdEcQ_%5ds;t1v~$QNwr#) zn-f{In4t_s-mvNlot8FvJf0-0$y<;kRzeB3G~-83$%M_$B^oicE*OVNO% zvny(>wu3c~Qr2*>QR(`?0SJZl^j$r!Qb3TPIgZ*(^^^zcB+U^TEUP_s+a`78W{v@e z+c3pwh~$JonE|E6wsrD-4P9L@gRg*7lu-42eq%&O{>6U5-y%hkRm3ae#W)`x3qpouDt;7;tJyLJEG`OZ{q*6o!iP7E z`@FWNMF*2Shw#Dfqfkd1rd*AqH`1_4VAz@&Xg76%SHIAbhOINBn6b97?ug4&l8;Oq zWKT?!8@gFH&epe?LV=64TO!YId210kJKScHK9#2?oNf#sZ4CeVzx)r^qhZZ|jOGZm z?Autn5ES@7nx>xYN4BH;U4Pq;vE!+eJ-sh5P_6Ewf&_!7mh@J?-nAkS>nihogM1Ew z4$T{BgoO3oLMd(R6tYlEh%&JRA*6v=k2S?xdE;ePNLeHN$}m(#WFa;nKxS4%yTup) zKk@fP&KMCOOcn^irg%G8ikv%;A0s-Tk~QiIObvug6q8J04I_zRC~Jm4xU;$NV3KX+ zy}4LL@%a!0|MU(n3j7$Okb^ka82riMP)xv!@3M=tJ2?U^pK}l+we+})x zXaU`#FWO4-^iy~TDIC`s#UlF$SHwXt`6Rw+59!p2xcE-spd{gJ8*pxt^Xr|#guaGz zL|s%?F%aDCTgZ+Hwn`rxQX2eqVEg^iEu9d~d5`PkJs6nOh0aBDdb}pzA9JkuzA_8WOOc@p`b(gBmCx(I#8h<>D+fS?uQ+l4Mb@R|;AJDdm*Qh>NzT&fpU zEErLXb98^WUYOVEnFt6F|NgfbZJ7RSy^L`-ELHV2GDj(}IOne#qC5QfOy2miX>-05N!CEUv5KIu!9uT886^Tr zeoj-?ijkp=ybBqa&udG%;g=gmAdi-+R4%~(^4eTdNlE=R<}16`qfINxc_NLgHgB*FFE5>!Q@wac?S~^H#3pxNU zK5CR7GqVE-Ka2N`kJbH3Emd&%NuvqjM3x?<_02$DNVY)C?ih_Yo&3ztSF?BC8fgA0 z|5x0e!)?c7$e1o#Pb9f~r}}EOuEYV7Y+b5mEry!$Mts^^X%^AE0B~FI`Yol2BsK~3 zm9rKjN21JPtSSvV2Iv_@6I7Nnt7Z_+W5PjT*Qmz2|F^qqJ5gx^c_BHX0l6u(_Tzw8 z1zP+O5?qQI5>~Nb=LKq=Yv{+O5=TIp7@mm7J%SgO)HO(r2%ur%5cGM`lREFDrqBs2 zdJp+Z`l?J3xq1BTpSIR3R9jkPRQZZ?n1Q8`zdZmYE6_~`8|ql2y7-kbNx*akAHg{h zNa{O#?G-??QG=hu)Yr~P3m%f2kjH)w*8*cv@$rNW|HiU)sOvnc_TzX-{fwgLNk9U% z#mR@sSh~$B00&~`qY8Sa0{gey#J)Z>8%o0xAdS|SvZp#FE!Z0U*;^IHzJ_1>q$6)F zyIfMAg6~gGKc1^Fdrt)nQpczc5$NAsP#7>s;xf{(gXckd4-C?R*_=7bj$91SPX&EL zm*-2eV7PGfl=iYpPh?QcN_-MXB-p2_i%qVgYabR4I5HjHb^BL;o|cgyd3v9KsEF@c zLm350_1QIb97+QflSOwc?a|-_uz1sLo&s)0+#F-?#^VDGg#m`3Ai#oE8Jp?eam}OP z#pMqYxJR-QQLJ7 zvSbJJ>?ki_)#=d;EbqtPvvl23&&=gAKsyL))F0kS+Jy?R!IxHR z!$O%a!>k%g@+k^OmtDl-*(*w}!M?7qP{C&}m@2@HN34Mly{J2Z1U^9|vhTz@#Io5& z$#dWbI54UhroLNX4D*bz&OR?rTG$XC{N)|S8gKqT92}oMQ^*SUz>)|@6(MOddKhb+ zxsp>l0fk0HRq3xf_nbzPvG?*4Bg`{be5g2^@2JUw5pu%fda3++dD?6lNV*_)q6A|&mTGnNmhXB9O%*ey zFT(FG0GY{EpLl9HGvWPy<`9ud@#lC{nkmjP@1A`mXN7a*y`n?3KX{vY8RAHTbTS4I z(&)aSq(SqpLG?-eKbKibmd{c{KUBW9Ar=lxT}y>WA`kSqAqJv-@@+!qE^P1E#&ZZt z@k-JR8eC70|5i`N-s-ln*~amlXH!#ezI6_dhGP5roKfjf3YL3&``79Vjop{UMH8P+ zLvgmHGt;cg!!bTw;wN=aJ8FMppHm&ZAaVV9`AynNgmL#FBs2PO@FuzylGW$N9I|+) zf#@_x^wtLq#_j|lWA7WOapbOZ!)9b_whEm!GEA&%O5p#IVEx!cTQ$T@08Mn1Lx>9J zCI}~u+R}=&kfYOmzITBp4)e~I(t?z7N=(0o`JkoVmw0Vd>O$tH#@la<5?Ny(CCR|1 zf4P9`$CHJmGB|88w{{-Z$XQ$l{q4BV791b$#7F}$Wt9q_b;nI*k|AWNb64l6vewtl z#HNk?6p|DDM{DV{*tb*-Fz|{kL7>Jx#nc5Du>RGLoEaSdg19OsLt5{QTC9m!J+P7m zTCuIKSgD}YybeG;?^xqRaGIdpSpfVH@M_d%G`4rZCUib`hHlt0{!U-?OiKb^=yQpl z2lvcR6hY7Q5!Qds|29C7m`UgHDTMJ+EuS)OMj9FC5^z6g{#9c2K`gzW|BXxQKlKn? zs&s-&kN1FB2D}#ih(D%@K*lucm^(Y5rnAs1jz#=aCam7m%Gc1~4LmpJC5m|JA>_c0 z?3PYEEw% zYTS${>60kdU~Lnwn=9hvo}+v9vrO%8atO}Xnf}iQLGYCOO(KP`I0$iYYf5S!yPZ%}l z=FU(@<77c5G?Eq5RZ(>+{_T2B`Zn~KPm9u(UK8w`rAU2KbQ8A#wn7q1(4Tu&wVu2h zdak+|${{PMX)Utn zl|~J)*#C{+2CtNyDnfX_g*Zs`iEfw~;YZ_}8Jc`X1Im0f`=Px{oc;%N0_+f67uH`) zs_h~G-`|K2#cXwzhbfaHY7ir62Ebj&f;(uHhsgy{rjhyxmwnFE_`6NDO8#szUsj3fUwzbOtuWDUd=8@q4l%oWWe(?Md_&$+6NdN%2!+>iqKu^25 z&+jgKmO9mxc8s3(J^W_Cq$}W75qlsr%w6`w*T-JU-TCZ-6L^Hdfx);Bi>n=vU9LBR zd@~@G`+yVH55=7I=;AKC*iY|76H4zv>i81g91GlFADDVs#1))j;SOHN?91Wy84sjU z_o)4@Q|k`J;VvJRxi(D3rM~&wW=Iz9`ZIHhn4<0-n&5fyAA-&la9K>dTtd!MW*CmF zFB>5N(ly}r@2lVaq^Mt+BCWC{vVNU;yNi61PK&jCPVhj$Jz-}Q!Kxi-c?)Xiu4#&V zp3`gbA)@39N2czMe%l!bf3WvI;h2wu{`FcOfo*NS1<$MiVO;JuNV1ene`z|`KJ_p5 zpeyzJc;OW2RQ<ED@n2oZT(U*ZxZ8do`L{d7SLqIBSq3bCAlBOpb8G*XT zkRXN|>upvKy@F8hb1ftHZSO4haW89Ur0^;T*RuH3Jj^q`A!fNL^uLDl3v_w11+oXr z{v@4rgYV@%r9%r0_MO?Cz&-)dAb+;mAeO2LEOpr1bS(8GftnAL--o|{KCFjk+SUun zM0MLbvu`?5Ce@GuNCwy>$Z(^_^(6r8ZfGl<2E;G2&y}I+u>B#-{u}u)86%y@qF@YNSIpEKE7P1)o$n&#DVSdr59rQa7-nm zb_gdHM$Q-l+NI|QZ}FCs$<+7s)*VVzuL)=Xy zfUimEmLEMqd}O~Uga6Q%H&$K%0xX|56PNw>T_B1!3o~fT~_i%Y-GOxYbIub%qI;0U- zQ_%wXJ!E8*YZZiaEGIux+PS3c3vSM&T)~@Yj{Wprp_ZPy64TD;;J#&Cznz8579-H; zQr(2*_t0!2m}~pe1ArtxC`sZ-`rx@34L&fT9%lZxMo-zq6@R0Thzwh~e~%vSjFuTg zpJR%in8$Vcf#L4si`1O@B&PlEBw)dvvLuE(ZZQ=PL5b z9(w<8La#!A5c5oEVMXWSe_S+eI#xawh^eDqpc;IYi>WGKDWo{Inr2j?=;uJVHWwR? ziI@YM6zjoMOUK|eeN!GOmRc3vNcwurVLE-$y91V4UCu$8-9jrm$t(s=Ez6nk{Q%3o9TII0}N85^r3)-~#% z3!75BZo>%iyVxAHJ@NfLn$v?8$1&sNw@(n}VeUt=89nZa*dd;{9y*gQrb-CUQYpt) z5^n`zv^v`Cy(p^aV=LnJ;jozk=M4En(*Cek$bG@Lj+QV4_kk(7M;(yY*# z&8bU_?W?irpZaID9jOCq)m12-q!`UzRx-O$s;b##pNR3Z&^TMsG;ur?qN+F=T;V7* zjdNeK8|+iWTzVmx)vVavz8{g|VkBS|I}@~hm&dQs0`R&&2d0)&u=!Y&JKq({{hSNH z(z0ZsH6flh0`f&mgx^bDLTk<`iX}%NEwXI%BTlevHc(-c?lI9GS zc*6;k=flZsY!Q9eNL@>#CWkD>?M}_1bPz9SWzdTl4?eSXGVf=ubYSBZ+@!5h7fjQU zNk%@R64tR=@4F1hcQ(zzsW6_-R2PeUMNi};W1KCK0)E@H-PQtq-)CdWsfyb`2=d<5 zFNX&Bc)i+mP7k)z5J~HR-eJ)yCHA5=_cn_9eBm%-&S4Xg+Vpvr{hN{`K>8HFf<9i{ zPUnQl$6x+ZC!lulc|k^9R{i%~(jUNm0+<%D1&0DCG_~EL^9|J8xx#BNiu`iO(3jGL za|w$Q0g{p&5DTgGmZH+m0-h*EG4S2hup(t0hWXj$x7oXyH+{O* z7X>z-z^80<_Zlz!B~x@H^wuL~_XJPKas-pV4~d(;@}$+5#yy z7PpU^eE7f7{OQ*VT)M@8PaIWnt4XyfGvMsjqEPPM4(3`ct>pdIQS0wBX=xg6GO$_F zslF2CxuwX0_dNaLza!ux9en3!`X=yq4BLWakAKEO8*xnt0U5xpo{zx$J6aG8Rx>04 zq=kHY4fch3SA>9A^k1J$6qvatxcuJn4J`556Q}x=jnODKjyd6{kYXPw&@G`D=W5vx zW5SNP4V>dY06;ERp8gFwH>!V-^s3v#b{#c61J4_Ej#9WBkEA%B|0#=}jJ>)^2dH?{ zlnBbiCaO8E{h6&hv}}lZ$%??~0pL~2KxONLwEeDM3?5uXPX~#z#Uz8Is7ge5JYt362A&Pm|2a716cXq!4%=P}ko12z^(#}# zB@9?n^QQEx@U7NEza`dNEI{(_u2{(rkuXd<66N_g`?m7pN&JsSHx(0n*`E z@9xH^F_~(}zq6Ck+uiBpc3$1n(Ne{FH$4>Vs@3E=H$A!8?*BRZu8qxduR03&V@65u zbaXhB`sn}r29|uQn_gIAlbhZkaK^(xHg9XREueMV0-R&-xtE+g;PX;MZq|F%SeHHj zd%EIs;GkF{(CaYJ-xgo>YBK&e{WdoG2bcfpjB+0M>hsCWhc|(bhPVQU8!Lg98*p$} z*GF&gC>HqU^c&zeKll82BY8S%N8*!0(LI#pl+on|hNLNx;k5U91?rx2SBqVi_&Uxjvq zZtVe^mJL7wumMEw#DELa2i4=rgoW6)wmr+K??)t=E;Ir|Qs=$!ebSTswBNh)#x+3P zJ{lknnOn^397U&GE(__+&H8`ndh4(@zA#ESL5i2+E(MBfac^-_90J9yK!FywqQRkf z38he^6f5p-p-`Z>2Pe2&aVtCh?LNEveBZNwBr^$Qawl`=-gD1;-uFB`$%d~!&*bB# zSYjs<;G#S3+k66TqR_!5NP8Cu9|lI{55g0FEmi$k{Tf6m&-IRnv)ZQY<{BFJQ=R#; z?BOFSr;%`ci|R`d9lX%*$Ka$EJueC=t(Ou-1WVsM=`r! zj+rNgat?~H19Y#52RZ~9o$(6XZ%tl>=P~P+gIoBkmbb=@o&SuU3j*os?MyCWBoE+a zE1+)XU@Q*2+~$)gis8BH5<3r&-`@53P*oMQyq*}^!|)n&_L4vDhA6nk@I0dWMd8<| zK{W3tp!P0PrX$LvC=-@)JGAR_B^D-T;$6ZBM}=wg%<;}AvR$qO(;<^aXW(%m6PcQw z#u^XK{)X?H%Gb5}L{Hxdp?@ewEZ5*ZdHKV{`w%Nn@fl5@d|x$ClI4ueIjHM#n@|k*)dZz0!j94yv63bf1lM@8B#qj} zw^Z4|j-WUudh~}#-hLGx?*$3Zcv7UWIrYhq7#$W>^0hzZFW}@A_ z5kBX6h=VOk9GA9UVEB{fd;RFQAjE|}1km5N6X$tHtLpv+SoLf+3X7xk*~3KPUjnSU zK*68hG%fY5Kr{q$#v4{)=VkM4GXBFp>_8Cbi2XevAUymRbxe9v=^ZiZy@n&OQL!)j z`qHeCYpj-BaK-ZFh>M$)?;Dv*15o+zbwC)S0xx3pW79cU|6q4tpH#3iSd5jS@e+o# ziNJvf0@IrJ(3u}Q9pcOn;W#6Tq=b+Z)@EIg!<66r$=7ZU4uc5-VX8%Sxn16~FKpqGNJ>_dbJufBNEp7sM->FmDU z{5-A&ZK^*-3I1tJ?^|A_2X-lVB6=I=*988_W=_a)mUW(fEPbLFVZW;=shDp2X9yfu z5oykf*d66@0d$`RX)FCU?o3#cFd@6xrNwwxe?&*6Q3nQg)jKHpDSqdxDY~Ujii%bF zu@p&X+JugIjOK)FMEp|^?f-85D@`D2)%ExsMqBz*mU8vdlDwTf&uqaN2gtGc>r&T{ z3(J~Kk)*GEH)T(Wov;V4N_~|*ttwX&=1dBcM zAl*q*p(^q2+fH(^{IGwmCOSBT7;bYjY-jGF!5gDnNBq) zX`nLq3^bg*T8@;eph%gaKzcs*~_|EToC8acaGTw=FN^O zDGYC2MA1;*_)FgZEy{9%1CRaJqD8Rejr$}xugI(xC&eBaN3r1l`RG^rT;= zLIS83f3jA`e`TMH_)i!r<0aYCQ+A~U_nGm1RrV|wu)tSL2Uz}bdcYvig9bSTR4*d{ z#Qhq6`4Ulk-$;mdtbg-3F1s4HI>?F)rE^`n&ch33{gHaqB=_feq{x};vSR3kqBIEk zA;RE~*x#ae<1|lwqxzVe^1&`5%vfR)H9VHJkY^QG{s6PB<0~f01#0hk-L}ljHGs{4 zL5FC=g*i7BE4{#mcUZuE?uGDvYij^$A@L>Dck%y4Su0Xrg{@Cx)KQvA+xNd;GH$WlHBwg115;3~z zn{G%f)SJT_kQ7_Z9(q1o+SubOHC7t>eEUKD$FnCQqVAxq-wJ_mGk$UQne~_6FDeWP zXk=3V)w-Y_y9c%C;Qpo93B-h-UD zS-i%Zqw~am1#nXPWa0R0-d3*Nm=mp?or^Pp>a(2wTSma7sdaN0dCI{`okI-5d?TofWG@+S+T676d;>~T`rxuz8Gw6pID~k3EfV+yE8A2WyuHsmn`^xq*jB!wev@B0NzWa+jJk0nV@pBaK z17@MYU_~${nYOlC;}1&mn(9)k>GIuOuxErtPZY5NCWc@LHtS#<*uYfKR)B4qJEqx| z^gb=+7lL}U!fvy5>!5i{kMQ>H;x=pf)L$}4t?hE@vfHnuxn+0Bxaq|9eqbqSh_fmvb_kMmEkd&}D8B%i z2-eM^=gVr5S9*Vp8h=7uWAe4z<|$C%!LU!{`!_Qr`iyY*s8BGTDB$Sx=`%DliYe}` zF0rU5)5nY`H9J{Wr52Zy@RaA))arKp*RVpDBy3cg+q;a9u|EwRM<;+(7dCbRF;T_A zKVdO}#0V!7J8)w>P-FMRvYOtDTY}~gGgu@r6kDE$jRl`{`Gr<{t&WV)a|S$%Mg<&~ z*8Vuj0->cmpLGF;m7M)^b?gugu^9di;&F^A!MAc26^c%8Vt%tSDkI&-XACh9MAH)| zc#&>y(}OpOd-&r9`8(PBBnW#`Z73*XjBF_tivu_Hca{Bq&KY(-I9r{lM(SEmS{1~F zdGIe^Xk&ZPCV0{(Y;7py5m!$2IZY=#`gqL*1EL5xin()pJ9;> zB9A)PbAdB_DLvngaTh=RUK{PN8&BBMMJq9GN2QxpQNvYJsF(Y^`>W(o#ti3=uacPQ zO0NS3#T`=R$|pQ#TEMWgt2Iq!k>xc~0IYCrG45P)( zShPrD&jTp2x#yh4(}79`5$RVy#_P`({%PFSB?d&)vrmqGR&1 zV$9Yu$$MVFYY4ECQZ9OYTm`gbL>p*HK5Z53wn&f8q7*7%k^if^>aBM?>A5f@8st1( zjAmi;oJqaso(1hWRdi}>pX*RYdsqGrt9X5XT;KW9;Oms#QMZzXzKGpX-!5d?4-*FJ zmZ$vFl?+YMzwq<_^*IO!T2=#Z@h*sMpvqqCn+Ikz4EYvHR0;p2xWfk@ay!uVV$Xx=M36G7F~V`4Z!dzhfHPdDbU-mrzZKNMN6G9CD0-VRXv)8GRxq1Z*pbaRXe0g z-nMdLXZ!%jgb8<#;@5KaoY63fyr`Tif(@~kn5VGH$*VXSp%}7h_H51T(QbxyF}3q4 zsW*4nsvFC}Bw4?&=&%njie0WC&q(<-`cqjDmMN`TvqIu#g>H%nySie~RR*nK;OTGI zr=H-|gMf`OG#{U-{3G+H^rrMO%>`j{bOw9q^!mT?)Zg598=K7$4h3#4FOApABIg@; z4xH~)cF~}5ty)xO`b{OYZOg$=3#Ewl{Y0!;!c36cE~l&AOct8FMvoRscR78wB~pUX z^>OFS&!4m=R*+%bh5UZ_Ic5{IZO&4f;(6}gG@$L`g}ZI|8*gopnmUM#IS9pt4i<$5 ztZ6)VD|y7S#l_$yU!e8Kt48+?g(Yx zZXJObS(j&FwT2HoIJINVD1Kd(DXh2Afbvz zWX3b~)PXS?bl@x=9ga|=KSh4^<57R#2%~pFqZmccN-}zpFg|BOLD=Zz0G5VCzTx{8 z$T1`crvjp#SnRyE?T;-rFvP8rLVP{MgIOAMeko804p#1w5?jElcDqNPIBT zZ;NJAb89z%a%XtsQlxH^%Z|(5D257czx;7*9Rrcd{B^TVn>WrC_2I!2uNP}3yC}l@ z^U~sKbjfueS?TU>ruHJjN>eU{=T>Ss;b&Y|TIqfHbFhZ|D0XR0CX_*nt=8LQqtdu> zeUn8zF-AoNd)#PPLqj=#=+96Nd-zh05Q;EmoPB+KAS!<{#qkx``-y*cB zj{!w;%2@ExNm(RpQD@-(p!x>G#qFcdS3`IvC@`66&Plb^NwwCPQ(uo6>24^DRCWAr zZyH`=XW;t$ix`#A<#|#`!qsk)}hnU0J+`nSJFzGbjR7wd-z$)rFa{b!V zI%G(X(;N#Gq4_}LyVPSJc&M3Tu{2J&pe>x=5HeE!ht2HjcepeDik(5O|J4qr+tu}y z%46Bi{+^#Be0`Bk_HaUF(!Q0#*UaK~v|KcJvcDJ^0^^1IBeUPwTpzoub!1^>zlr;^ zVrOV5bH@_uKl1^2!9R4vbKHDpfi>hY)J?pQ9*fKInWQaf2Gbp;**MZ1zqJD*F5H!B<|-_+HIgx1!Cw`@%r^tu;B5|5a6o=*dvn*Z08k zQHd2MT5w_gvWP+Sd!Nn&Neh0Z`L6=<`T@p9G|@iL{>Y*tad57oO=f>=TJsti8b{C= z1%_q$$`SG4 zV@Q3aF$HBMEpg#<6`t%8(CFIX@Vpq<#q+!tep@w|Q$@6v0Re!@V@xx9#nBSy?aZ{UJ-FYT<=?b{-?(b`A!Iv9NPZ9fFgBDPfa{0Zz8)a~2H^zrL#0;pi^ zm{Oh;7;~RT;`}XIr7*--DjC$#sCZHau%;ci^Rs2-#Zxywj;j;F&bqJxEQwMFTC^i^iO zUYeveAQ3g(RNrw)?>hIfBlV%#scENYV57No+`3HX%h?po+l^M|F`hRO0(R{0mg?9& z-U}=1E|*J7P;NEf3=6x-Up`NXczno+cI(nbzP&okw~4obW`9F5Liu8g4k54O*Z56H z=9Uhj^&l)s>cTI|Lbd-xllFWQ5M`;89g)=QY)b6`{_pNsgj_bMV=5D53kQ!9E3|n) z7q8lE$@5)jjr(5Q3msCSHO4@u3>7a-bpbbDzcJ8ZH*)20{fbIFFrEHa7HiOIjCvWo z>7zfJPRD2wb69}X@>?oM9fC{hT7M)9t-+F2Q+QK-xsBI$*~)Dh_tU%&6{RCDy6ZQo z(COArcA>`f+@h22$LhAk^1042;T2+0IgTn`POLzK`~#j_I35GA&Lt5)siSehZwA@n@1p5M2~NCnhkH4?Z%sXn=_cBn2iA+Y=I1=p^vYd2V9 z-Bu2kqQorROmX?i-VE@lrWQqr4{0+(P2` z3MX&rmt^3@9i1v^uR3d(&ZS!ZUVqyYYzzy#J3iAXo;{^f zopX~VV;ZDOtC)iz^utTqn-mJ1nYJ`P{&1b^eS%c_P4-6_$<4Ii&HzkfUJ%9ZdduA6 z-KZ7e=KTy2DduH);;wJF=!Hd_v(QJE3_AMZuPj_U!bUh}pntHr#>22)u)<1oJa5!c z$GTF8yQCR>x^(yGPF&E?=0v$?s;PyxA&(I?48^?dcNN7&qkr1lGcU&8Y66{4a+6Z5 z+i)hm5-R~c6hOV=t7%imc@QMxHm<;w=L#(hlbgTE@NaAfJkdGe)~_^VFr=d0H$lC6 z+aDp;Xn0HBrHuVOSa9~*wUShjsNHtL*Ou8Y{Y?xTpx*I&Er$>x>7U|RFlUD;Mnr?I zy;4y`%_fL&toS8R_yO|@-Ow;l8o`V1pE4l>pjOBvU$N-go`c}2Yh?;GErf?c0r_0? zK6rvv)sl1hg?lQFI77q&JN0hwE5w(!<}oF|MPXLI&6v3M*J^AyPTFo69b2_p0bPna z>4@7$mc93WvA4#r)?SM2hnL>WG&-}L4V;y0WVm3@L<)9*8dTNA@S!W2q5_`aEO}Gd zR)I&32S+qau$Wrf#Asxbw6O*~H!cQUuI5WD?9Veep*k&(`kJ2k5R)XKFk{_7-TrMu zZ1lIM$SQH&bb4!EFxQd=MxOyL8F*R6h9KWr1>>&C!FQ#X&OdpaF8*6vmi)1i`W*Z1 z>&lPD%TUifg2;{56s0Vjif){bFs?$|?(dV~-Q1=J*BMQ1xm>OuX_0-?6@8~%ZXRix zWP?-(nn-Y=1C$3+0daxg)HerE~b%ii$s%LK!hRi7-x2%ypb;;2>@2P;q` zp0Sv%VmuKCe;MJ}Q*KQqfd#zrh1EX(edyvN3*q>HIIWQexV$9`BwG2?#-UyS!j**W!^uWy z`#}~L_ zK_3~&dScgGH{;4vU!Hb~S5bDOK81X+RgxPwK+#K_I`k4BzcfM?3Q6&AANWT#s4otk zpo>Wgk81fwC?M=~72r$EM924}MEN7CK#^x)CCEk$4$>gfb{OI?G(2%bd*jwZ;{5$Y z=H)7hMr(A>EqS!F_z5d8$Fc;jc7J`_n(-#>4%Pit>?FM;?O?fYZ@F*h|M47+{97w> z(qqbk%Lz?^>61Sx+Dk>l3U%pFR2+tI-h6Jx>aZ4ai&cUtYhSRlbtT#Q&_=IicqpY0+nVLu6#}yT z$q$8ceSh?S-8(DE|8Oj*ZC8DXV4!@8!YvXn1XM@Y#jvji0fvmR?PcV|2*}H=hUQ8c zOTwU4U|e_HbM4>tjd!e1wOBFAWZ7RJ_(ANGP#j!=s(c5BW*lixT`!IMV%($M;VrXa zU+F;&a`s-dyB@tz9yR>JQ>HxOhj29lsDy9OYn*sr8s^Q@`W1y&h?NX4+%H+mG2`ki zXiNH@oSd(5n0u^{uUyg4LY2U9QKZ8=j8e0|$2iofM}Yo8;5u3LdYV;!BFp9_Yrt4ps< zos=o_V>!!xsGczIxy*K)1;!Vb2%FU_GV#E)>|(8sc-qA?%ReaQK?0Oq1pbvFrzpVI z7JY#2723*w*JB|%Mv$Jo5ESNdpIavxyda79j`l@<(# zzEO$@&@|6Xc}|hG72ftDo@=W|28b(>>$o%eyh#PT*j#g_-o+czFwoDa*A zPnGQo1EMKS6T~BKf=jDEs%g?XvR|lv6_Oq(DuHDr8Up471?AssRWBx?KZ3GS@e%5r z9^&Txz=>aRwd@)6R`i_=oN-MqKUKbjESaqv{LXqhYn&e88o`1R&xphm6HJkTFFhkV z?()bIjHMs2ck7i18E$yXOiAb1%Hy-76yJb3V!U-3DnRYGH0Q_dhtc$YKi4u?#M|4v zHQc>EU5HLp5}R#}{*z^sXy`kK^un2e0-<~9dHccQg%Ia8j8dOuZq#|v^*_HfCR7Hg zz`(XI=a4DGRox{Jb&4>4F-Kl3F)?s8=>z-+xwczKLBfOf* zP1o^lseeroar<}nbM%f}WsX0-?NnXRjcZ&8@WlEjw?Gqjh$a zc7C6*$Xlj)QkOJ(PF5mU)PmlTE+OFY^Jq@1e!qAv;8X{*Fj9_VkobXlSqEn(^{5_W zKifB)6Czk`9)fdTcKzq~bg*6zhUgkn3t_r3l%{~S;)34)@GCV zu7^2!-;3_9@rP`Ki`N)0;`7lDg?Zc4@hEB>~sm*zahhrYhv9XKzfc24|Ny#y!H@_iC}l z1kb5o13Kuc52jUxTwWe&c1QZi7YJf=JY%;>LXXL>?=>h?CLlLAgG{Ik|6Ep7w$2fU z;?B2y182DawtSXMU}a=t3<$!UL(ArWpK!U|RrCFQzH5yztt}3uP!8DtA-Y8|8N{W0 z>D2oqsUxunt2MnM3bR!v#TOpPDDdijMeTki7@qCBXMiCVDlOf0!ll!(nJCsP;2=9% zHbz<5?ZhpvWX(oZ&{1|13`17aRCxZ^uD|Vl>uiKYw>9R@c>Q=qhdwrG5*%x{_yUB_u5o4q??%*X$9bzW?Kdpl?hu&5!QO5>LKY>WjWqlJ;2vZpL6hFr7Ij?}HV~ZeNJ4fbP5eKe zNh+EME!N`Ne5~1)W@1FWR{y`dW~V~Aktef$)6~_iDPaQ{iJO>$<@hUj10`((OfG+=M=iwK1aO{IAHY~q8G zrgw;Xh6M?Nthii0B-~Ic62xV8c>LvmA{dhzeV_T?E_qac)4MA&0SKefewZ`b|2y-Z z^`TsQD--wWfU)XT2Ngk1`Qz2oLt0!|q<|bkS2q_uzX*=W4W(1!Z>FHIJ=nmOSf0qQ z>w`Kd_SUJGwj_4r(cu9QCMTD65m1$(b^LHZ6-sc^*pO}U74O~+qROZU2IMfydkok? zPEgMiS`Xz`?F6}m=v^? zx2kM!e}N|3>b|lN6ltYTY;|-WWb61lE%P`AR_H$U7&Tk8VaC3wV2Bvuz`KG%$n#U0 zT+kD5`;lmm8Sz}o_NR!Vq8+b4g^;}X4qkw)mc=(j`?laBgG-5h<`oon7>NmSX@?sX z?fv7WvYC6g`cB2&{`c;z8F%T307`*(GJQLYNYb(!maTmu$W}cQ&Hb2}YhbQ&m7m+W zFeiwsKu|Z((sG7p)-m^6;H*XiNsH%lcuVhr1MV zB`wptA~^QeqyWR=sh{+Fj9ICF{YU?f*K?8(mWBZhl@v!AvMD1))|>mdfAc~PuP`Zz zgSY)$TnVt~v^9Y#>zT;MJcIKNX@Dk=exJMgJ<|DW7ey8eNbwPo;(?0s=B$ER9UnGA z>J!5ZBr{SoWw?L&ecnMg=_>^VeugkWcxqCGU$)iY1q~GAwU>T7^dCVgP6qD(Lwd6% z$y$d$KDR$+>JX$b0i?ZsFl3&7d(I?}UlYcpySni>Ut<52{aXxA0ovt6ZNIcNgY_#L z1|F(&0Th`@rdN2bjMwDXB)s#zzA^Rt_v2!cemkb#0%O^Zz93DTaWGrn^w~F$S6)Xi z?#)cvY7Bq@ZIz}I+l4z>X8ONLsHF=svFYY9;oUA|25;Nl(y+hD*g=1nJ0Q9XYAGb2 z`KG7Lgc>d8afWF@QA8J&HY#8xt=`9DY~Fuz{Odc@d|!OJOezDMRpYIL()WJ&ML zDWz@Pu7r{HVKd$4Lwp4HmQ*FFyVB7!_3(Fvk*_99O)fEK;!B=`{PI5Ef2$>khDjCx z2&ZDLnGZlXb~mAwS?kReY;gdno9{cRM}2Tqp4YU>d4C}npZ|X#my;`(dLcVN;&2<( zg8~zGvEl6iLcA@Oew5qmdOhtL|IPjMcj=F4B>=jONHo7wUf?PldE?z38tl};EcbbW z=(Cmcw?4TTSy%1Hj1nlrH zY6$?hPSM%!=ufaw^NhR zIRG||sJ1bnJNlZ+DJD${S#ge|WmiOG0Sl)E7OalNOtmAq+c$@Fg1n~k3F}~O zjnrr^6O#_uaIbINsCa0qIwFC?gUp4XoYSyNApOVKf$GANz^>YseUi-QNPZMI5Rz1+ z;0YT0lfyzzN?;`i%C_BxjpWNI@2C@lm(2>GYJP6N2D0M6o$9_aA_2yaBdcLh_WEkx z21HZhsRDIK4QlIvRN(AQaji^A$Y#kEPq5+^iA}K3M&oPrW6APP(49ctBlLW-8n#_| zY2;rPnCy?6W(L~x=-j393kuT*D`!yF&u{|RTH~E%hP8lB%zLp8dY505_z$Cm++5p3 zhL_ zl*#os%lH4B#4JYhfc+KTd;4NmbsennJ<#tNVWvwvsqx1EDJFGyDq)MC;-@fAlM~SE zY$NL6@i90iZ5C66^Fq<;T;{$R;2u;WJ9@&bEgR2v;?tYZebQB08^J(W6$-*LIni>t zi<(TxRgvmHVRpOgGm$^RMQVYj-DXwG)|5*FXVuIJM3O!`hw*3J)6#cQ3- z%7AZ0CN^YgYVx~!bshOlgNy;pdg}BpOuEknRNT_Y3MRh7o+eWuHzr>pO2kj7U2Gjb zvqKsZv3=O4z)LBg+6L6FYcC-Jm~cUH@W^JE8vD-{LZkHvBxuASJq<;;aUecVQke(! ze8zUDveur`ZJf!-%%(E&06Y|i*$9|94Z^`q%eR`MzpKm>@`}jVa?sj=e}|pwBx`Bk zBq|_AfarJ(0C#wl^@-i#8i7nhBY$?4@BaXMY_eXOY=gT7xdJG>3^f9zj0IUnU(unF<8Vg4 zwZg7FR0z9S){@MlL0>Vn)Tw5mH&e+wFpJ9VIvcZIThVqwGqHe1tdP>hT*DqcRyP@4 zJ6(YiT+eqbWtf<25T>Q(}}Rl3i`MVsZXshln`6F zZG_gxmuy)St&w7j@o?h}_js&2lk2DCs=nV}#P7))@Z1I1AEWUZ7%JLwucUy!ZucAt zORG=PDH2LD%d#G~nw(dDhzki&;MM0{(UU}AiId{v9gNS+gG=@gS^*5H~k3IS!WGO?cpMgrL!{WNcIkY3QPB7+1bAJQv(HOxP z&_f@NX3pX8_ivJ()?L@;HEc*89Cm`3dxvfnKlK;tmpW#+p`2U^@Si7KFMVUii$V(D zZq5fR^shS;CU@M7rnr$w?F?Sqy6TNw~AX~RA4#E0_?Ze)1`ACZUSZZAR3mb zL(;2NJhT)<8K|}zu?;J6F=F5j94Q7a=UN_{XYeEH#R?Mzpwgj~_%M`Z0T z&Ty*+94p@-Zx{ANuh ze)Pv!xPPBCqB4{%?cf#HG;poAzi>XmxV(O#!lUg=@pB29^){Rv>sOBmG(A_=QAWA-PNHBsVYo;u#S?K;bsSySXEgC_O0zmsmDI zdD{qQiKHMEotQDEcVh32Q zRU~3x`2r(c;p{0AbsU;eiPcx+Q&)zjNL6B^aO^bPjIsZ7D4|8HQ*UbppGqy$PpaZjjJBj}LM3DK-}Y2B<4BBF^6^(L(2XV3i{S1{ALncT z6sUef)1;N#w$f}3D~0NWg9Ne+`--rv7|Wka_$5((N((ztrF<%c38*RfWkcCmI34si zbK=;dDwC7*_2On2>@b7#BWM}W7l~$2GRIZ56<0VObyJE9q*pa%Z%ZWA5P{i#jE!x? zNXPO%B{~)*9-#1}G*yqAMk_B_isLokZxC2Y>#Sz4)M}@#sCe{ks7;AE>U#E2U#woe z9&ZchmQ&-2DN<#2Ic{7?9?)V3m*f=FAA`h2;?&^0j6^O*zz@~SVtXy1danY)5Cr2UrGJ7ZRN#eq2VcvZ%HYw>N$lL z&sHTBX6XS`8A5(~P5<+f=4hYq5+S$tB#Zp5dnA8|O7&uy%l_YY6mzP&qWS9;!a5h6 z-0GPISozpuW+k{VyZ$QsH{bP`h+Oo6=2)|!$pDM+GjKF48{qOR@4hFo!cszpjVZ&Y zlz5b2h4#<`dyTuK9@*sXw13+NvFHTJ6QJY}8Zm{~$vn*jcJ5c)9vDeovD0@FrBX{1 z(du)3+n@VgW zlVQAellmJe*m)EPrv({?j*-0r9AS$U5b`bh#M(D&=@5(suOZ;VGPiID46JDEnxgr9 z)+a;F6_(D)XNYOF@gOS3O4Atu&%bJ^*DpPl|EZ}Cgf;q^)MsB7w_h-_*(4Rbb5}P! z*aY5Vv$?p96l=}$r9dB^EN)JV@2Zk8sd$W>l6>5|drZFTvPcfRwN`n}-Tg6vW~!z0 z*qZR%nxES#mmJG@ar2yDO>xY#xFs-n%rvMKfm8Z3Y6dbiW$eCL+Wn<99sNYtx}1OR z3m0O+)}h>DD6J}bdpOy8P5Dm<>do7`xQHoOOCqG3`#kjrprQ#%DV|@}&KBDpLiy==9F)P)@**lZ;l7Z(CEdb5`u%~O zp9`n}HJMXw{T$kY$NLB!?i`^nz^9Y-0?@8FPw^CQe^*($nOMQ+E5g37cubLkFLa7- z%;Jxd)>;C{nVP3{A#{1f06J%g(sRuJl0leMPy^S&xO+<%M}9ovx$RvQHvZ)hfRriN{UW;8n0eoyi(~@v zB~Oj!bK-*~CKQ9H0uYRhr}>#5AxH)kOUKA4f+`{$b*tI$HD(7RD)@Ag2PT z=keZieM9$6+OVb*2VS&=m-&wlP;Z#V)l3vup&BzuB=y&y+qGgZv>*Wqj6ECfYs2(~ zO5SWlE)2xZw1rAXj6}yW#6h&iz8a7iRs1$QQ+p{x`ICZ6;eNCH(Q?1?ND)r7 zmY)&Fv?b(U_o*L@RY;Vz+VxRyfos$hm;RXM9R{FXBrD?tweu=}5M#<0kxu!NA4o8j z0vaAKo}&qHfR4wvlZgn2r9e$ zPamKjq)ybYHkCqns#T6Vf#M|(sq+@q(NV_07WE487EpfYi|KKYWyCK=^tGU<12ileG^g*ivfbL?N_11 zH9w6syC5KQ)YY6mDL&k~iyf<6cf%Gg|3MSzmF0Qu$ntd-_Hm5NSF24LB1}U)EiCPO zZg0{4G5FyAPC{6cm#Ozn(6quN$-wBAkQ*y^s5vG#Af{OPI;2vVN4 zizhjg9cAf7o?05Dmi)}}(p=vP)e})8BM?`H%t!anws@4I@amkh$JIlQrkexe$_od9 z3=}xbd3e#ixx=x=+$fhJP{+?^HuRj#faxD~&vb{2q$D+K*- zI+N{(aR?>}qR0sPW%nNl@Ma0zqVyC|PMmgx@)KTt?~(9&v!j>{OJbhdMUp_rgYl(1`3Qw+J9D9`& zhkp;)m|+qvxBaH=v=tKlUst$;lbDO@eSnHBo+oNW8SeEHnUH`r-w#dI^NRIGNN&1(AI2rr& zPFHjv#O4o95Pd0d@5ryu2sLX_YZ@X1fn^Xc6VWjzHMms*0F+s}z5GJ;lw%8B6j|p`k z(k7B=P?y!`fOOJCKfGD;)dV%^q{s&Xd+QBwZ` z&>T|(zuGgn{(??4jO)Fj>frO{F9Bemwj1qR*pG)uTAFqz^p2ADw2FDHB@JN$%rFBU zw+XBWD?7X`T(W`4$3i9&Xt#%{2rj?KsxP&<_7Oc7cIsQ`WS$IQ=ikknp6U#5|9i}G zhc)+`QWpa&s`L!UK2GC2GU2~E1kff~b3nnNF?ge)G`pP?U+wlx${1o9Zd|NAZzCNx zX>e-O@er2r=Q0~w-Tn|}a#UmT_f5S`R~nX>5io6Aug`eM$nNqww@t=rD z8QGzL+=LW`PQF+ic?ZZ7l8hP@aeQK@-CQCt3zcQjNpp#VhKcvdrEum83l38 zQ?U&A-N2ruv2wub z57DCV8)dx!jK=Sfsj}@K3AE?7?130{3*MwpjFUu`n1hRl*F7KCwp{8g!L23#9lm@l zGpFM)E;(T%D!_2S95>KZbnO+ODqdn`R&O~C#X0u%l0d~3jRlXl%;uu+Hf&;%pgi}_ z_Wol;V&enHg<`-)94#F9zF&|oi1};7M?T)WU6lFA8ridNfdbZ#{M+PG+l=I0*v!hn z%G=80XVOX-@xpC1uDYHFQ@DpE!7YF;zti_~>Ub|UOZ|2`}XMYzyH0(c~q;#{dX81yTnAzP&x6%Cy8yJ7B) z-W#<4h5P7SqJ-i$SyNT^pOvDuW@vzx5DHziqVz+ubRM5XXY%c(4|8xDWks7X{0-ta z2#WzKtX|{&E|3*+=#S&`dTNmY5bmQ-?SBjI*}qDLbYR%haFsy?DZn>`z<|#}f?8{8 z*<=qksKRym3|!6x_iSxMklyx#@{<>aR13?oeqv}&ML^-cvfsG!XRN=^N{H7E7W7Du zUk>d>O+W~#&G9UY2cQG1n9uKX9f~6hy7ZDw7fIfo8`4L^2*+hm%+Ow9kIca`R!uLA zOdh~#miv$Zr|*Etk-^Plwl{qu-&5m)z7qLr;{E=0;-5yLd%_8{M&irQ82j)!I7z;+ z3Q(s95I^G)gS}OWYFhm=qaW?}EfPygEIr#@1O~}%pVS}TlF5xVYncZ_guhZ!nm9OO z%SSkWEDQMUjUOqD@y*^(8srhK@utJJ_)B2PI);inPl>@>c~R^EicBa`=&gNJZPoy# z<(a;PbiA+h{ZmD>eN%ESpCZ;k=hJa+D1G7f->aNE5sf%}woF>YI`dwy^0w9hs~V=QFg0uPv8{2UkQz3|PrNm8#n7`Rr~cf)pB!)AAewjNXjp z%gBFXvd7O(wAPIFo5&^0(}L^Lg$_pUJuFXL^bHj^y&!x**ywguPCE(8My2Q_9dh^n zD|$Y5qjUVfWfq+V6Y2!W#uEGZGa69yvuabjIDDLG4T|0}|NfUwjR_Ua@!j*;iHWP( zn7v7~lmV0H##>^rrW#QhSJKwUHU(n?tC5t~rs7!&6`@wWDKqZB%o+vaP+Vl(Xn(nT zdt8I%A}8e&A9u=sjkr(4@G7}E6#4RNJ{%}YfZtBRa>B;?dcRXp%JITHecmt_6) z5BH3jzg)cL@2Zur&yQo=-lfsBo8V~DE|--mfTPdN&UrThOCPZ4k91S6FFql|uNLAg z)^X-c&OT3f?Qo)IZ(dYL#cDM+6+eu6@!!kN5Y_&buZ;hTE{5d*tZ)>jb@E)k`*^xY`1W|_YM3vR0Z5Oytr#W!@?mv(&+ zM}-Gw<Wl!0E#p2*>_?F46dUk5p+id|F~RvU{^afA7*dKmcFB`lAwImX z#$trW@#&-eK`e*NOwwQRV`4(PvB6E>139vHHCnR7loFC~{t+mzyykL5QR>%T>>Unddz>U;dp z??Sb*&b*ESd#{}$7HM;13b0rD7SaKtsY%M8I^&*@+<@D$rjD85SQn(;=Ly_fD^b@_K7y{u7jS-TXod?u3AnMv#R9t(W9XfI^Oq!Y4iwZ zN?}w5G&|!ZG8g|uTY2=F1wK7-wSbeDaAbwpyS6y+Rc<@&GNVt7U4L~CV%RvPMfB<> z%xm3<+;$R95^mrvMo2UhPn~-cgCCLr3I;RU93$|}f_l=l0H>IT8Vb_I=(DiRK)rj} z)9=MPdN;~g7gxC3hluIXB@;0(I39R;94AH7Vj2u&8(nGP9ka`P1xrbsm*VEHute;R zdGJo5^L{5qITT^hvcK*KIl4||egI;s>}>n!7yP}`!V(z*s+7e^yJ0_jl$+@Ua5Ig@ZG$2K;*11sO?ouL{uX&J+ycwHTBCA|p{N{=WNRiD(LS;}a!z ze3&7_kB_7|lcxW&OO#0}a9V(NUQ1UBw=V@EY~ElLf$|zF8e8!Pel&s;$;XFvt6}F{ zYF`{EZbuM8qdc8$p1O)4qWO=$lAgKGcgljbCFM;G~IQ3WRs_&D`-$=IE(ZO~qH-kzWb=UmR zGe(oIb@*Ce-;m^RI<&`hIxhZ>W(4{1nKd0iHbMYr@=Y`$ zb?5XaT(&K$L?7IfHtDR{K#21mU)<%#>FShI8jlyG<&NI?!y>t0R}^(R&)XVq7=AvpC#IvBFFKFbL{6`Fu(z| zJy;XJ_>Kb`*ZYpuBzNF3$@a}=jnF!`G*0Cl^((6eKw9(R`aRYv>IJ19LLb9SDnNV0 zMD`?xz_BYr@F6OFti>>FE~zF%QJhm5VAwE0$p16Gd}k{%Sj!bT@DvdxNwS!NEUL9I zwwnR6fKli7c3xe?)2|AyAVE4eA|SbZJW~1u1qt}%jG56$?)e$cc0j!r%p8X_h=wEq ztuO=GeV+@hr*8konNh&0*S+&&3EJ>1j;VfgDkvJVm zkP6@o81z=-{ol6=z1U4S0}8#>MAc6ps@`A|dmds{ua>op?oLGDc8@&HlBfv3W|h;m zP$`g`2I$+jf6*VE8x|y|)ZVjXfc9S12Y4v0CcTYSN1i<`2^_vpqzM@}gU*9rz z-u7R7tQ?drb#1SoS9AEwGi$l1o3KuxaBj$HssG%KKV6krBB0IeU@!9%2=`Xy(VS@Ol=V%Fr{~RZ|nsFHs&@dBO-FbLq-S z5F0iZu8#m>NR+9};m+y2{EYef#lbL&OovUZkD^tKAXeP`uWR(ve9|jN;>QM+umsK? zY?Vs&QCmztvd@ojEw4O{tl4N}KLYbZ=|R4X)}EwPE8q8VPIoK)5HIZk&$R!5)?vHl zwZHUrKK`j2mH#z4$n{o0l6s=(sbz6iix+yp*)w&2m37Q-Lm6B#qJG<)th}Kb}AEmkx#v+hZ@nBlhapb zxPC*T>@zYj3TA`f;lqBzF|}WsHxRERtx_AR?9J;#c=lnc4q>-l%=%4fBrX7da%Xww z7<_x|fT8yuMNuk(F{jG9Vrp7R&V%pxiyasRaB7@J$Fs#p=GhkcH<3=zAf4(0K-J#J zJ^2IW`P?p<$@QE@Cml)NA>zqu6$fB7Wk$Zv1vk zV0V8pNhZS?mL1M%BK}z-49ha*e?hvBH1H;T`gtM@N8{_R0CwBn*}}Zb>y^8R3yK!8 zeeR#N+;IZHP#Nu#%7Eh1SHT}_7DtjqlBQc3vO2@h{)?LT5k!$q1ja5H zM~x>RbH8!2+GyyOfJX2oAy!%T{p|uUNMq8kW=(T;u-ax{0z$L!nP~tza}^+2q*3Me z(q`3zPXOY($HMd#=~_N`(nkyF%AuA?Ey&6bg^5-~3no(rFPL%ny*X_NzD>T=1lr1g zI=FA@1^qbW%_SXpGev2oGfEEc+j8JR_upQlV+ydYj|Lbe0qfz|H21R3pPG}RY(2C> z-z#lMHii6AA%Dq55>KPZet-#@aT`bxUAu|CFn>0F{_8xbo&1eISA7K#{xU5s2 z6jX@GRf0Aii~j5sX5)^B1DOV(%*?>LNr;=~!Hc}24>|Dgc+vWxmJytC;?)S5pgH?8 z@Mpnk!M3>mbK3)#M{y8ENDVq6{fp=aJ>Hyk!;az`Y5frh>MC^pvXLiH>Iygu|6>|1*8_(hBp#nBr~k?Pg&i1r)w z<;p+rhuf*nqBq(CsHrkZUUsKI&BfuTc zik+zRyR{05*nrkU%)W1ZBtTy(sZ%W}PU)g`tQ&svMra;jgekd2lo5Op6x~JW0b0^I7e244lDnkEhF?#yW=|VhZx+a0m z7XJx(0ZezqQgz@qZRl4Sit8L{>{b-=DBoWvYV%7c@CM(6#5%ht?OTT$4z3cdV_)tX{{q?Y3K@Oae%jdUk*9 zcM$@Wh#}!%pR!*iI?$)>g&8yk`NQnq9bgj-ELsWam)N;@aLc@`g z%;(}bWF_n-abWX6NdvDShm(d)eZA3`btDo7+ho$JGA6Kv+ktm#W7vbJ1QwvBm#J7( zUIuE&%8f|D>G8U5tMP;n3|GtBf1alA2~&B`GbZJvGl;#qATfGUu02Ric~Xn+Na=!f zOQsF}M}<+9w?l`$@IwaqNR$wEZwBI=@N%7D2KMu<8ht0IdSY|2Ms**K$`~D8%7-1u zU(Ir2IKpWojQ(bY%akO9Z5@3J66OtM#AI|Yn_a55sKAMCiQB#6=9)RoaN$wISJBye zHj|vGo$EVY`h7ai6SuS^{w4U!yH4{%{}A=aVg}SDP3BOJ~ebMisq7f)4s)t_FONFRFi5VVesW`HO1~6;DMrb*9#NU{GT(* zUvxoBOSjaB+))4so?TO8IC|8;-OysJJ^xS#Hv;#;SCfg+%~JdN_lX&(VHW4>_%H0| zs7&Hh8#gR+OBkOx3(!7oQKeWL12_kYIH#Z%)LX~CP)0y9CbI_Yr!n>ln=qtUjdS!R zMjxl-*FS1uOjZb3=V3E$x&NX3GnIXIGU>{On37S_``@E_@@a$Tqmg*ySa{DEOW`_m z-Wid|2ar3`0=H-XnGi;3_5*aCP@tcng1Ayn#dRGS{xWx2O1Zr(3k~e&Q{Er-k=p9H zN~}Sa9u=455DESGg|>Ud*DC&>G#tM&?6K|g=}Fs^ULZByp}5sL215(A2$;N8@$Fcq zFw@)vSUi{6ik52-)#o*5^eKuQqA{;JsqO<3@*YXWoe17TL{mfAH#W%#hbC8o* zW@8i%Uu{M7?RBzB4X}Ehd9Lham>OXC+IweWXc2eMRIv89*^vb>*G9{IWoW0v_A=`2x(Y23Ld1w)!BIc#jkAqg#5fmf4A?*07K z0K^KEhkR5pa%K%`bzxN~GT2FIL(5C;U!#gV_je!yl$z^Z{5in_Y)5&vFM88w zA5-tnWNxnBcKw%LU2IG|K1T$rAt%8EzPO^DCmG?<~@KD3DG9%@fY! zA3xNIS2-jkhIjO(RHQpI8xXL}jc%$5>cMmrshC)uIAc>exfP4-RvKuPZWs90i${8r zekWqV=(aM9Q)g=Pz3%x3kQf3t1MbnM1VLHn2eSrfUYd19!Yc15q5pJK>{u41N%;rc zZaGeOOZxH&$eE&ZDJcVv3KRTbI$Lq@pEQ6XQyaZUMMVaCz+N!1b=fPIps2q)+=&4T zpVki!Lhi~h5|ox4$2ef#)l(EtFNmC+Xnjv!2f!_fc#V5;xYUkqpbtq zm7K^{*-YWRcmSW{tK4_H&7l)@CC6L?%hK(uNu{wjZf$P%0%1mEF4(td6TymrYx?cB z&0BOIKFPl_Li&hzCZXPYOQLQmF@fd>7&Bo`Ni3S^NNLvM+GXCInyjf^@JWi>*P&od zV1@$E7dAYK?VkW960mEj6TN1#y>$}2$v}8a4h!yUZEoFAh2O14-w`&Rjp|2mDGx*m zabZ`2mNwY|kRv*(vED{2x3F zI}09yH(d^|9D^}jskB+01&GJLO}Qi9I3ftjMjr0=C$aKqebuw7`Fk(lCzlp}$kVI@ z@54gyqXAH~)lV=n3}qZ@kz~C35UzhTO^nm3(1)yB?SEZEITYFSmi*KNiv{XcT>r?> z4p4JY)QO&Y_Kx*ruz6EAH$a_T6O*buP3u%1fn zUozRG_eBL%AA%aUf)RE3{b>%QzG3)cL{fxphV1uZexA3`yT!i3(F_ouL|eq@uEywo zuNO_#Lx(MRZzn)A{ln>XaaV?5d5bw^jg zjml~)5jL`94caZ7i^}Ex_OlU=9-`rub7^(W#Lg?2Y@-N7LA2rKo1$w@v!T1%NS(sw zvnJnc%qyXRDD`^1=uM%kErT-J`HVhc%(#ZmDuhfQWnbOkPfHZ52hj) zfBq2pka`}?AIvOTd&IsK*2JMSb1JlQZ&sxSs2#yGQkVfazcd-5-)$ z;iXA^Xe~0J?$fSEW5MryM+371tOs7*$Oy%Hr6#FJ`6R*kwOnpkE2Bvwyhd>XI!A#;S*iQB5Z>3Zq?E0$03Zd-QRf}yU5K3@+Y@SLk?^i+$p|6^MYg0s|D)qZG03zEn&f&`Jt4H z_UzFGAM{93J^6`H;9tyzt#BTHAR(ou3ZbI~uu&;pWPbf;Nm1_`D(|n6-Dj#(TE2$C z2(H$0@o6dmftOjFdNA%v70#VoD$}+U#^6lFssEEU)RGypCYv(h#Qik5g&>?~6LtW% zTaYM}GozW5J_9-)llTO~86An_6xyP@fvj$gYVW2bPGp_?iJi+xZ+*_{XEO>H-3H;px6WemIdtXE(-oM5D7J zySF%{6i;e?ej)==3uisAiuotq@<~b75d#I+I%Flx8N!71#@qqHe~Ai3G|&9GD>hJ8 zg_~~tZ_5d#)l&F?!Q*k6jov#w;oD5;gcgCU@#aH)^B}4ta*{TjL5hx9kjnfKgkPzX ziHI0vFw*CS9h!UNCOWb3wk&u*wVf1x*vE+y_g((mwPsRT+U{nh&C*s*t(eX9*(8!i zdA3SS{Ki2$AZ1u~?(rs6M_m7+r2xC`zdu`OPKC3`kCI{a9J<1fng{6`Gq*_0YTF9) zI^-j@O$wH}dA66*QrgY9nNL5v(cQXIxI!>~Cc6LjU94=REYzAYYZz1Gucx-wE+b_sPI^RSG=uqD>_GLOWQAssd>I zh4sL;Rpo`opLDporBxa)2>Xu!pILT+XfVXo#?`vv_U6<`xKs@L^dMrDuNC_gR-(#G zd7E*d@WQyG$Z=i?pFV^0m|Ofs&!V}s=+yJf`6M41pkenOcAPG5HBtI!%9CIdxlNeh zqinj54x%qF;D?d`BANg(?-HPXya+%&$>w$#Q1awpL)7^$upP$$qK*L&h6AjLIzUgy zr!bVEk7nn4C*{;un}Roj0yg|nTIzbxlo>9_5Q_(PA^wx^R6bS$~ zDwzhtHE#c87n6_nZV`*SDux?ugzoH;e6;KDJLXongcppdO@vca7+V+HFFTqa=%8y^ zGxG$l5-ZQ}qgekZLw!rt{BY)_i?~rKr6LrkP#T1lPlw2vGptLw{;D8@$FVF633{^6 z|4zRV8wS~D_syUKq>bY9F1f?N?0~QIhbH7o6&>C`4tEBZo(lvx&%|&I@Vs6lfv~r~ zkV0z#GrT1Yn-^}PvPDrw(KH86U(Peok+6Yt<0+^aeqwA*a9dW{RrR{m-2Pc{@%#7V zjKq{FrjJyOKlE$nB~mTVEO7Nw()>OamBy6Rs_YyYj7ZPwFkUoYwbA_5C4;A4YY-99 zOwesw-oJ$4T(H_i*JX;%jU>9o)pdNH(;LxYDKFg@EW%OLnTwp_SBu=HXcAb`*MOW= z(p*&+=5s%Pifun~#iT2bmq~jwl{3W~mVbr0?{4)dAY(%^)tT>9P7q($LU|R}Pc405 zCas!(#ulr=O*7hm`y+oYct)SR{y6o?)jOG6es&+3TDU>qqr6U7Zq73C$LcSiylGYWyBr1}2X-#Xgy8IZAQjh3EDIsq5t`!BX?UD7d*Zjg?dUzm`m3ceiuAx=z zc?d=h>Fw>>G7Ftb=tnNKkcLFT87>Oxv8%G0EEGwcg{YzG6-rAsqS)ui-JJVgt6pvQ z$Yr`I@7LOKEQcCaeot)>R~BRC`?j2GYM*dpO6{(fGo0$dZ~k4L_PfQah;c>G*Q zt-z_1m3I~h-e1xMyq<3&X~pEgh+vTJZ3|Y(IwBdHivnB=#E0rHia2~d&nsx}rr_9M ze^)Wm;i%}r=F(=bZtFE>0|1CpDFsn6#T5~se{Uqkj_#;pt_^>d8=yuw1|**+Jgas7YA*2(0 z2zq-vR%?^a&+(Py)U# zRyaj@p(=4J_%Q7Q z-Se0?FvgYgP5l3$wR~EJsqU)bL*F0^tLXW~y`*r?reW|ft71#APDu^%_r26nQaCol zt9^7t%Tp@~n3k~R+r$5qrY?{VC^qthp{log7r?oI^~>*~c~3|71T;UVPf)NP@K)_f zN&BvL(t(WwyHR@itb&}f(9Qk~qt+*cWyHlBCmv~0d`#t6;@dDAGWn`W6Gllnlp$F~ zVI+i=q|MhHPYmy85|ZYO0jMO%4WuBqFSZXb`YhFW_!V>t&y{CppkFuf3x2a)^N8QY z9u3%VLH7Cjk!~&RRX_l6DgQOZMS4^v0GlEOK2tSkBy;AqZ!$H>DcLa-Xdwza@}93k zGP2a74!XgrhTW7VJNtL1D2nWAhx0sQPe+^4LRvR`i2hZE0gqSWtcR2jwSXC)g05_V z6usGiIivgJH*TT9fkH4gq@PsQ0l-9R1D4xI8Vlm~ur!mEtvy*%eG48rg3h(dmf8_< ztdW#%+VYIM1sq4gMifwbvNvwn6fS_FZd8(;qVi1CB`3rC4|)8Gy2xQ0g21>2UR z6@5S`PRl6JuHwRW27PG&vZ02;OAT1Bc>vubwg#*S0q7nHHDEsb{cMi<00h}m=RhRr zEF(sfBp~GR96$CWU_;8sejje3Q!L5lqlDIKlOhU?ZbcWNDluxvCZi&(&ZZ!mw{Jg0 z`oZ`^SZzkWRO)3wY*AGKKyc8thfL1NSZ?J{EA$d!WTe1D`Nt(bRZVOCs5&+yfUTw@ z!|{f&1l@6!zE+~Qk22P86d;$GRwh*kJ1C)_+SLGw!Xt#@JAg%86W9b$pcEN7g8{*3 z4hfxsA|piJ#0MX^j&TLw)tA|=8r*0~*b@x!deI!tr`EV`
  • -*{9i5M=q8Iuo`1CttCH;?0 zb!>oYWy{JYqGS6EIXy!H5Vq`OZ<&Jy(?z#@SJzg-aI@|!N>$m@*qqw>{eC40L*Irb z#9~Q$6Mba^!TCw+%JLh67LO848sIw|=I`rCdVPcbtU+j0sn-~$@rvip5cMdFe?p^^ z|HuqM^^_|~t3|BbJ*J%(_&y%RY?aaXBxgZPk2`_3Tkbb?kKT^*7=4EX_zs~HrTwT^ zE_?H&QomDNn9CL4OG2X-0x5_)sV3M-KDaOLPqgd79jcHtW^;#shK2zkon3$)>>r-I zEz53?H91lp&HIAjbipLRXm2h=FbY_mHom7cfTxm&;@}H+JFz>j{1m*gHB^&1V^rtT z+^w>`REOs^PkH2*a4~aemyc_B*cX5;ui&AcwyW{}2az@@L3m`NEu}rCM_iz*&w34{ z89_X%07xZnsx{hOYl9%vTaKF%knhj5^0w{Xtgnw0v9~#Rwz*x;l7KjVRT%PejOrFY zf6U^0=f)x*P1cz%0sFsdC?Yy8QdC+;{Q!|Apa#WT?hpe|g?O4_K1}9uBjfIhn6W!OwPc7y4GpYg zLMH91M$t;Sl#UaQ=?zl|rXD-xp)uIZ=bCbL&Z1fEIvfIQ-p-iYkMu~_DovGjnWM&$ z90gVASnK0VP1lH}uwIhI!cllD9nr>BMtFBwyYInMJAjD{K+*t}wJ{R;Y=2WAD&}rU zn#XY77B%xA5`7y2eQ?Is{<%Ym<8E>|*bd_-X1s9oaDrKGRtEl7eSD3|wJMF}g6X{H zOwGr=z8qxTXqZ?)y=a5(CT0%;1T3)`fDA_fZw&PTw@MRmtu?k+(Urn}4}CMb!@toI4x{Bmi2QGZ91_5tiF| z7SSz2yn3BLlxu`T(3RI(gvuXaqF#hbS)SI;0#*59c-d(~p^f~uWx5O*dT=*7AGkgz;`Jjq$5J3;y8ztbK_GpZR zakUxE4hq86&1lM^ZY1g3KN_7lDWA&npKwZ%!{-=PY?8XrlVf}#5ij>5yC__P4m?h z{psn1<$Gl`mj2qgrhSt&mY7HdO^2&aw=2xU`O}|K^@$Lj8RFRTy-OQJ2+Ruq5ofXD znXJo@2F>^?Nx=oTD<{^qWf46?I12`eb;ayTqmc>e`0dNefwG`*?FDb2<%#w>U;GEE zr`C5=tNhm>Ma9>YLu?x?M(4F&(FJHYj^5u<_q{3M31vGb_mGGEq6sd*=S!(9Mzy^a zD$=?bIF4zEI8)bRh$}f;!m~-EAGWyPi7_3k&Yl@(F_AW6pQx^e)nLW?m4E|j^`Mkt zj+8@dt1K`p+L0ggdnL86Un|W!_!j#B*9$G8E2i=zO1bGiphCVZk{cUvuBLHWa67 zZ7^*s=9RHUE0m$8^=2bftb;aL*uaamgXgt93aSG*yw|Ta+rA*NxaQv@+o|Mu`#S9Q~*=9vb>GV0{F8CQY zua%C~aSzlZb1~h9f{)L!7=_t$gijdwE8((NAh-uAQj?3QCf6T!LCgIgs0EfkNS_g* z5meck1iDFA6ZnwM$a>j&rs*j@puZUwk^YV(SYTGAbVNhaD*#+ii{Y3}x6s1_Kf^90 zUO-F?Nw5~Ua#^BMDVfBsBJr@0sF+Zf@~aSjmFt=)SNx2V*Q&=nDw0rL*+iW1Bw1p1 zH~b7BIO&lZ@06PNbp*BV5b|qYAiUuh2IGwtBQ@-h7WhmG@+*oze0-dJSf9pRZ;OF{ zJ+5Gdf>sSmNNc!=+*e6EQwdz{VQI(CIYp6Ff`rKcw-Lo5ZXCgVJ-cz_?>mw$4@Z2v zBBd3{4}%Vy4E%;sg)1OjCfI3gj#zb8(9(pmtAU?r^SR8#=;TW)ac?UmDS;~4h?(%| z<%;6SBrM$(n(=67!Xk4objXMOl*EwqG&t25));fv_8Isav*TMoiRr@_mXr+hS0-rG zp!KxkKQ;t#4+Ma-5ri|-%n$%alE1pj{*2FLG!WbRnA22zbiO{L?3yW%v$9h&(%GE1 z*H-l1nHe}3!|bOB?APbZ=uBKHSiqi^uO<>k&C|mud=OpO-=k=q5Ru04(5QHR_;fbK z%P$^O<4(Pu=r~m}CJ&tvJ^oypvwCOPaQYs7CpddcJ)Q6^&*5hJfy$VB_oe@SmzM}7 z&p5TNiw`CvSA1f)pg}vejIIb+9X zV*%HMP!0>pi6ONW0o|6AHYd{gzmLf1apk0QWe{&kqJB<=Oo`6k@u(3IV`B|E_qv#he+vdEu z6qf<&`B%h%ZDO1R$bk;Nt7mexSSC%DJhEV;`WHhfOh1ywJM4dS=*sT*nmsldzLQID zYkaWP#Ap7cfF8k@)X=1@A^2N?0e_OVUQK9yXU&YH&Eg-7BaSD`F4nE-30>SHCK<5M zwlR*N=XXt~c_P$X3;Xs64I*--38&9HO8HqPEx&a8Tq#N4KB#d!8d6rUerlqYL^Qx} zME&#k&6%Bg298sPkcje*Mol5#TR>#`t-)NBSteD5)bVwM6rxylFR)QKpZ_7Vk|4MNQqKLB6qZOj)i6j6GMEY)QkH zhjX93^wuow>qp0y_&%r5QKXW8I^r@wi{dVElqLE zF8zRTtBrANvh}n;#Z^IFS2a}V<0fxG8AfkT^Ravt9iL_WO*XrsAF{8mu?T=w{!m?fzpse*VvEyp-P!oC zD41Bp6Ox);^ZP+G7FfS}*VRnlcCCmF6!~3esSx3H8{s5UM4{8q>PF7#ed zGUa6YJ^y=OQvUZ}D|}3T)9kwM$XdfQ8q-?Ws5WJ3m%sg*G4VGVVWo_<7H-)^1?%+5 zE(PfphkhH5w#Z1iA~6!#6VKy$?-%HglT2GX7QC>fK|qIgfvh&o!4f0gffC#MtGN1l zYkrxouj;z2TrOUzbp|meCt}E3X-5{>*N`&wyJx~|d=Hhp@2tl(52HpRQ*T5EB2@5H z$0Q5gkEc4o`R|VgY>&mOHC=posn4?hsYduK>ij)B)e4g<-)W(ijZ3c``~6SV{Fiz} zmGO4aTng?3{sRT-KDMQR7gT7u+6p@EYTHyJen8zDedlj03}{u^sQ*1op5WUV>$5~% zTnb@K&=^TC(ukg;`ywNLs3bF`a}qm8NNV=CJ_22*no|AnImOj5+q5{1Xw0pZRN8~1 zxB=)B7gLE7B&PN5?nwm;mD}CBAVs?f)99)CPYBo6T94@!vN;t(V+l$}&R8?E@beNj+wpWoP%d${B2Q3z9qT zc!{6mBbEOxS=(g?SXC@{at}R3a{Rc!4M{*LTOyayhElrbqaaJCGJJ;0pi$)$iy@}R zy$jCuNzNMq^%G#`6cOtts;!9;SV9k)&(?UYI8qJmi#{sA5nYz#g7zO{Bdldu@a|H z4*N(eTdZ2R)1t2%*OpYGIv4k42!U-01l*O>-okGjO1lPXJn@|@(+fT*tH-CUmkDMe zCh}@}f-J$yV-*F9P_`akxc5v`c&j(dY2%~cu5!&4+;T~kPJxOC)v!TXf^Zy+TL!)@ zHI9=V=kZf4TqnK+G?Db%zN~8e-;IOl`r~9y`juHVB)>&9ZXpTUHhjgIoEE&r$by+g zsV{okBuV=^9CcBiwTN;r_U?eR_5^9o4nTo%%Zj8AX_r z=>io_RvVv+E**J%d6gm(X}1l>ykUyo{f>VQyF+xiP2d&=^O(W`=*#&f7a6x)3Xc{a z;4Z8h)UkLakk|1Ce49O`HmP7F%xA!?m`hQ`U>axn-*qTUeAkqS-9!zf>-Nuesj-ZL`bG^y#20901wj z_D1tn zq}BphJQ#004vygHu;n18Ux#zd1mp+q%UPgA&PLlec#j&fbE!q6*BjGeoLm-4oof0y~q}6CO zP!l#82{L{DK+qe`EDKu_EmhU-VO1=tUG=ka6SG+JFEvh z0FPs!n=#8fkE0cqbyg%Q%{_>L9wl`MPJN6)&(Uv8DKD6{-lH_hGPx$a&$<{DXdPtq z;A6Ic)07J^v>UY)ycnmBYW+yce>~oYtk(rh3XL8_x_9vThCkkLb~36ugB_eyW_2U) z(oNUu{85JQiBy@&6NQMC=EMr}K}n7($ic#~`HH9&aWr;5-#FFu{QZ~rQn>ml7!R5F z6IsEMoiP`{0&e5Q;x~uEP1n*f|?IxC)jbeeC4(o%t@l>VsvC-E@WlrMpW-!qU&TWC~*cJWUdVQav|b<0?eaN7Cl7WfqYo z#cejP*iZ7HCOF-aSAW(=zp-}1Nm-QU$NrT;bgbz3j87(~AId#X_T}AbZ~oWlPo65s zeR2KCT*>y?(5y}PEs*X>pE>+WLL_D&+7xX@GHO$sYC7uvtzQZ%ug^L!&J=9?3u0TY zOFC+C0R|rE^_?r57hXVkY22%h6E2Za{UvJ(ypEY4`hS)S=ta4$8q7=i7Gz{ z+lb2O5MlGPv?;b36-*9TFt6GQZ+1I*GN zuYnXauPN<%sOzjrEQ2gOgF09~L#JB-Yl&?qN6)RAE1pX*-ec#RW_>M}7?+?Jh8PPk zHFpp7<;GJVPuBzRV^4syuLD1f)pJx6bnN{JXgLN-_-9JdAlK^G?C#@K#KJ$1`YdCZ zpb}^sRBrZRpphYatwDS*G+)U8Q>?U~w;zIoSU|52=%pQ&v!rOwE+cV~LJog(K zD?Rz_4t;hq_wXUW3$7;3;ZM@RdrqLlARD|_d8q@X^Glt4@ILmX4wN-7b&A3Jsh2uX zp1;)J4c_Bw0d=6{1WF7_;P{t1P&)5*+?g@DWnZs|Gus++PoGyx+mw&SQRK=kx%ei? zt;+`|*8IKf+~ceduhiSGo|!DTAfR21Xi+unpvjNQQBWN#Jh+UR;ZfLev1{RR`?Y#o zmTDk*N+!df=G{x0Nd`$$RrT+tpSTR1F=9VuWDo+E{Bso!NnQ>lD!yfIdRqb#ftYGr zJLh%Rs?oDMt*RmTw`l&lAyc1G)H9w1r=8$!8ox1Qo7RM;nKgafz)4S7WQLvknF_vI z`@`vlls?1P-_s-{u~PxA*EeYsD!y-ZsfcF{MAj=8HeC{v=uX~5vAAjO^W4E8Nul}f~lZivsDobkIK(5#w(wsmLVqo z;R9NJNuOg3ugh z3oNpW{96+E6s|JoI%~oEBaN*y8rDg>FJ%ppzn;H8QS$Ni1&@mkN3De34XOPjA}<<} zZVuMvbl63`lP@Z6_!DQ`K_uEtF_dQ;-;-pfpoylCSs0-SuSe=zy}$HMg~eSw zep2KOJc2#jAIhse(s+_b*fy9dy^>&bdMP|bA#Y{6-?V7Oy8bOgTYqqPT5kXM@8tMt zl5B3MCi$rl$z$i^WVLyTt;JWV_MH|Cz0|Gth`<_?r%P3)n@-60It{XF%fEdw26*9W zF00aqGw0$?NjqM$(`bfKy$sPG#lL;6AVHP3e9wr!#lp2F|E@{ceYaL~F0)i#NbHcg znB<`ee|)N1uCl-gX-9@%a+ZT#4KwvnBan`d)?cOkerCeHXrL@EGZ4?J(vjAP9EYn8 zq_e!d7*e2@o0yiXqfJ~wFy>~nja#3uenjf6JW^cpk>St<&CHtN^_UximpE$*0fLvV z75}$32w`LHr%Y_5+-CcCsav-*a;`BGR;P;+85f&ghqbD|q(~eCXHu1;btb|d=uH|E zTT=1Drc{AY?wiuRtXE z+j6=EnLfXZlL9t@l*{S{xbA&i?uKm{cgDuM(#Fv^#|sIgQ|GCbXGIX?sBOR2U%$weA53sHW6!5?z!mDw>p&G zr5+-~PZ53zho20%^R`rrXTUiT3+}NsuB$1BK*cgYafvJFTJT|$&7V5o#8Gluy1Q$XY1lVUzuC~0U zV%F1vVc?LfP&`UjLMqr2Fy&{WaN(TJ1On4-vB4Ka!6r>$b`E^=UJ0quiC_y(By`c) z04iT5rS%>`tIsW|-1&g5$L%KXHE7c<=}(L9uv?P;!Hji3$??xux2oGWh~FwX2|KYbH%D>l${R8K<49OnVxgQ~OJdb3kV zqmDkAwh?B!z}D}P;8$Y8w^&IM`{DA0H8sqzqR~b?UlpxoWdipW$(*mDxIN0XF>$DZR!b3N)BF}!q(&VP$k5`!cr_YW* zk6#z&J-VGSL43#g@ECScoqadD_$_svXN!}@C;dJ05)Tvx_R2a`8=>0zE~~Zt(mwBj z-K8-*WWT*NNpewKh%egj|Blf{j{n2fS4UO#eDQMW2I($or1R1e(jeUpBHaywN(+c| zBhoD(Dd1IsE8QIu(jiLs8`SUbt@YOX1Ma=&%$eCW`^@b5%pTB3Ns6|R>(Z@)%p7ds zv`BwD?`yc@4|j0ggIVybjfP6G?~jt-fx)vxsab#u2Nk6Q%7Az9i*dF^%$($6!fyt> zne@+{DB0UUHwpE6BA&pX0^ohKqQsaKO zKS9XYV|j;aslAf^4AmHRkK)mzZerVDy64Cr>(?(^%-R_cXLO&ljnPO2) zQH{YgFB8a-F4mlsAo!NKG?2D(Q6-(hzxupiCsUp7n-Rr6Zv|_`HT~Nkke@%m{JGr= zyA31D>AG{@Bh+1fLj|SNVUUJDG-S1~{1f!ywBeXga-c9rCbXX^Sul^y9)^-_U#Ap)b(S9sx7 z7u^v8DpB-@L-prWOW2d;nah8I0%6`vGpz}1#Cm-?mMFG3Hp&!kL@XIB&&r9JG9_mf z)P3{&pLsnv_IthFDuGzo-sPBt7`6(Xz53OieyBw`-eWa_G~X(m$c`{KQk!2(pW{tN z2w|ZGW3!7Ue8?xTHWTb4LMRL2UJCULHFk#?!u()R+%whq`+>!TZt+NFOr5&wFer<~ z*mqJ*FK1}0a;H0PRt<8t9K3G4&!T9JjNIYE8x&1F2DH@pj=F5ot^rta(x9L6Lot9L^7OFC^O2Ae*3I?CUs$6Bw zF&<5#FNh&StH2!{z7FL){rVAndSYmdPz-h)|NkQ6QM9Zw#Ku&E|-C(t}ho>`DO=kVB zt4u|6@)0of`S?M%AJTE(8~4nGwl;-BdOL`b5b}|VoJEF$OAdAqjAALn(EY5z;$1L3 z;u|n%Zhh9^wO~k(sK*$^c3dBq25B?C=v`1(aO41i-1K#{JT)+9 z=-H%)xfL}m#vXPFEhAWPvUAx{_A0eZ46F7`W6V#wVpZD2g}blnzFP*w3;e=L4C|hM zF;_}3kebG53VWV>jIaGW^!qK1l3=LRaIIybj6)z5m_JEysfP)y`Y}hWh$O{#DOk}5 zb-l5H+|&GZm?0`IE`;IFkIRDX=^Sw3ve zLhEZ)%ri5WZ0sd1b#^q9&$@hb=_6l!3V-9A+ZA+2((*~zX!}r(3b5*CqJbjk*zPB zdcZ#O`S75-an5CaBcoSnB$<4;Ib|LNBV3h3uPF&fZ&P4?6c(D$-ZU*(^tfYndw?N9 zfKX$7>1t1K#ZpiJp*W;dRgM<<&$6IaKdxgV#ZOS$l-r$2G`Y z%6$MRyH8CyD3{QR$!qhBC~F8})>Gi^!*mdrEfmjN`LQXwa|^!Cf1R8u^`?q>l9G=I zp^3SxZamDWBj$F+4IKV z->4Rh=k5RaGdBDsmDo3gj`UTnzsm;tx;*#XT;xIDsv=BBKfA#I)9qQp40ON!Xz}Uz&t7xk0mOhjs=XoI+H*b(+AN2vlr-PDolhB zywX@gdNo3ZrGC&0y=9QERDiFMqzC(g@afy>&5~> z?I3R9W(Y3h0IEQvcT{}`Pt9UmGAs$nuE;4;hod)ZfC9iZ>wz1OfSjCw;2QBEHL8Fb ze1@exP&+a3)Ep1PKBz~9egaGx;n^}Q>B$1cw1Z}C0GTp?8X&$K5Yy)e&1#3Ei*N$( z*#N4!bE<4|uupfyg3qZt^`PH7=mXjt0x_2$Wgz5N+Ue-iLg0Z=d`KW@AfAxH0>oAX zfKa}I@^*j=EkL9eJ)+s&d%PYW;tH6QV3dQw!EJ63KA8a3!GSR_fQSq&J)gLsdf527 z4v-z-dK*v`49a~XWv~zhwJJu1mVic{08icv9zz872WkzFiwf0Xj7l&A1pl#9zPlCt}#hPaL%g7Kb!mx zqE$$U`1nZ6!uisj?|__ohc*kFGt!~@_Lpz(6bYW zSPa*byPT8RamA`qy>iY^iTcF(0rOW=xE{kz<1l;YcM_xMvpJax{1D@(Oe>&}%>Sp* zEh$!&HNpQ=HiGkmmEbmxp(b)rR(#jq3w+TZBJS?gVG>&gpJv=N8d7x`w~H#R-kI5O zFk3BS-fvGY)t{J;yEGt-tGYi+{Grlxrq3abvT-&l<}xDf7yBn(`I;(kytml~3%F{@lUCOfwJo&I0~~K^aTM*qMh5Yr^9!7;)^VpSDgp*sVg>oq^O{%M^&bC~gJzwyL?(;JNC7Lh}!x3IB|%o*L_ zmGr_O;8jS1sXJ`=B$%W+`IrT`rYyO%r6#dHt+&)LkiCzt+00kHFk>}J`%*^;-i1?nm?`L-1!ZL zrEPYLmYN$V#b@rBd%N}I3DxadklGU}L$Q|W1U4!L5jkek6TDS8+o7STkV=*0uRShs zFkhTDTIH0U!0SC{#qXNyG}8(R?3APzO=g}8Av=OS8H#45%o>{Xj%_jyx%!F&?pWuQ znJ>es9C9}vdzwUsy!}+elKTx;V ziZ`XP$M4`@O6A^*tpBfS`ja=6CK~_IsoY9PW7dUR^ZP$OgtgZtR@?xW|0soIOza+T z111is9O8H0quJ6h;kuswSGq)VUBvxN7!dJ?PCp4-F8oNm|M8WQd_E8``>(3`xYXd* z$@gF3|6>BbSKO4UHI3zO-3La!ZH82>tN)4zW${TFYoz=U_!ZUxEaJZ24nt($Jl6Y_ z7E+5YcWOONW|C`$NN&IXq^NQy^RvwVNDqqOt2H2}_$M)X5@{*(*Z6;6HL3x4C17 zkN0B3|(S2n^mnGnY6Le(}%DYc6Uey&#i+ zMfWQ$J0)+FR)%xr?Eh-ek7mikebemMpH^;+vSwrN znK){T`&JD&?H)|FP2|Q8%NZQb3%b@zb-I@}MT9+ZzLV#iDplmPWt|>XYZB{U72yw= zT9B$dUHWGkAIo!i^FRJGP<%?Kc#=pL?th(*-$6m+siopSdb;1%t_+(xj{T!OsL#uN zbFl3%*RtX)+W3+C5_ehyy*X;bd7tqA)^nU%HC(9%s`0r5`-a3mEs{p=|M?9ZMW?5n z6wtwV@tqESxjuP%->^b^CSMG+bNb|w`&AZs?=Btg0-(^-^$8LDR_rz3Yl6sqV63M< z#erg0pcTsQo47%LmT&EW6K{|GjX%x95zf$CU2J4C!#G&46A`&r|69{;SsR^t^I z@_c&wR1~*X;_&?VNb5hb)CaTTE?~X?%Ry;VN`(62odk__s3WIyW&_B?yduN@X)$LO zm$LOg^&eNy4hv}BaTi&=`q*_4C+^O?X5%^*T?iZC!gsx4!P)8rOANPG_gLJ0bCLFM zkN;%D272?R8K=O|wTd3-g?`n)x!gC^@8|;#R(7`xoVo2)1G@X2zogGS4AQ1*)eioT z+*dcoRK<(#|M@Au{SW7EKASH5|LNyy`($N!p{3-nZLdJ5U4Y33j{ei0xU;$YCRgx( z#>LeH3{l1WzovdtbK@@bCH)fx?HlyJLZfYRquOTSl;HsKgnrO)7Qy`m>t+BPN&HvO zjem=X7dI?(LlR<{E96eKjix43FLWo4NIj}ZKeIIjz+l*aHZ#>egYL7bPWaz%+K!6< zF&vVqm|^(riW%=LNxT5}Ol6n+I0&LOW3M{CetFNfLwo`0>|Uf`<761hXn~hg274Ak zK=UKdg-AyL4ie%dwniXj!8;RRv4y0K)#kI)1+xLz(_VVwoVxwQoJU8l!%8oLBwQ(F z2MYfeH!5SZ|qBa-Sur9hNZ;oFQH*nB5EPBp}&u)@m=MK$s&oVT9S)A zbBV`Z!=_2-LFE}z&~pwihO}p^Qr%wkM+q>m%6id)zXWg=17Q(1PSKanC3KXa>7* z>=EC+gV*=LykQJX!NAlO%={t{C0_vym6-zkq6QW5d%r!v^R=FOf4bUnG}cm>wi zXwVRJFRKA>v07%RpeK?o=M!Zbw=7L6sU_U(WVCsAoi@b;<|wWu#u1e4?BQ^)f=$F5 z!H3u>%X(b0xIEQQH|QD<$YJ^-WdsKbTd1s0XmJ||4!qQr3#7*wG2Ce2f}#!9kkKlu zeZ7(&C)Y}Nj}@H_YZ3F+k{LT|r4v8oca+P&tM;|uyeeyPnKCY8=j8J<{`Pjg6_o{~ zSjIM^<|}Qf{v4iso_(YOThLI@B6&~9vIeqkSj(1#dF5{+nlZG7rZIcbFL1Vo;xR?# z^ND}6{RV($&O=S%LkQ1UbMW2n$8*G4tpf_*s~fNm>n0-mvA}h|AJR*(uG4ray9D0w zVOHJe(4+fcpBN@WqLe5kAl;xiUPFU(%rW47Inh);%J9-P0^6b5@jy%0^UY^l`j?qI z6ecnmv?`yFAJE2ua4sQ~4NPs~adHSoc}7sgIUizo{bGl|L5k&=UA&a6ZG7_D5Z3>c zNWAs-kYPnJ_2q$a58fH0?)5P^ z!KKcma$b2ak$i~I=fm(K=TGWF#=J#T_o&&F6xipw0w1H>Vc@wbXP21XWSO`q7j~Bo zhJWxF7MbW8|NWrXxbx=AdArkuX*Z)*I2UD3i8S&~a!B$;unWBv{yLmWkYpMo-PNuL-;AjfYW`Ny ze8a$PyVzYg%Z!5F*P?p91{Oow3tV(WiNs^LjOE)?-jm;0|47IHV~A1)@vzmXNmsZLy86t;*etvz=imc!_D0@ zV#f297gb~G4Qoe9MzW_H--SLvsVdXbFY&!(3{;&v(c3tI=^1n+D@XsNmPyS8#KhY|1)8FcNdw`>e7az8QGO)qu6!LhE?nWnz2hlxCDcWZIvcWt0$EU=z$EII|I^mns ze1gykt4-YS3-Q8W7<(5hy^A2zvIQji)YD@G(iyom{a~WzDV4`e3kC z5fXWnLMLA0h*qL8`q$~1JOUA&W!Wa!Xe%Ge8r$?WXH5ph?)N&I_sh<xz zQkCJgQk5*0rx8bDL)KWoQgLrC?m$p5iM=Ul2cx9Q%PoG<$syb4Arh1hP#E(DT^ZGT z6qYrvx0ZDliDXF6oCwAc@>U8xU~6AQZIqFA`NNZ*5VXl8dhz>v{xU8rz8M@CS(*Cs zS?68SU_6sgq5D(`S86GmHLvDn={xNiXpjf3+r1p|>Z-NET7jc#@wBAeqMOSV9iq1? z`BKEpzPW|=k(>8kcW#j5w|WSdJrsu8TgCb&Zixxb-b{4s_#kn?hFi_v)oCZc+{DzD zg!q)3>lDniw2v6Q*~&+$(pMeNbfs8*DbuYmT6+f>$*S2I)1Fgko#fWP7^&RJAHI%Q zZ>{G_P`4T_WDZYCej*S!8gQFmsYeJ+;L4X4n8HCWWCn}&&xd2gA~9?pnEvLLNJ6qF z#gy}0ke1HuEM!ek0-%l`LqyhC#Wqt*4r1X+sHG~|V@;NudS%sY%)L`=haA-z4vw=& zd-)Mo0h>GJWSh~m0i}`8ijE3SO0gOu*IV}>qnUni18erV4{)Vq!Bn;hypgQ~c}dPp ziczDkr1z7aL;XV(tHmxFTJ7lGrF)UvC+dPbaiT*F4x^+@mM0PRhRFglYANpul?Aok zMH%KflUv_YYYuf5oa9nExDI&FQ5Nd{`qk8%JpbWTXuUUm&z0-t%-qBeZsm)Qt$dG^ zg3Gknzoyhzxa;HimMERp?Uz@5+|G8lyD0LR5}Bxfdp%KNA9-v)YaN{FW0+SQoNLu< z9q<7cOG1B2eAL@daf+V7R9Nn*%@NBj)CGrd+n#;Av>+bOTL-*!*%htRiM+>oi;dIc z%U#6^q;Ky1mELT!k|tdiyBbTv3{k-YqI9#H9>ZB>z3*-EN+MPLIOgNHj7U?j==*)A zzLiyQlasxFCX1#LH=Q)9*qhzESYBn%-|Z1$B|4(0i@gtKL*p7H?AN7xw*(G>fMJ?K z@?VX4mh5w8)DstSI%5HGbjqVm2bzf;YVnCj165-VJV(VQ51lKv1d~cVxG;6&*IQGN zMkm1f`i6tHhc=W}YjQ}nY+tc!k7i%esA5@NW2;3Q?P+6?n8*=L71g$`6vuVx%9BWT zb%r4?3`WDnx0r!ty`Cm(Sj&OYQJ*+>@&Q>=zR#Z8U zdCmI#I#D;~W_GyjlH2>-F4i`L>^R6Jiv6J}9(hZYtZ>Iq=DIlk%A`|Q^y%|5DZ(N% z*QkKGd-;pSEiSG|_D|ZH1_TD21G3Ci;}B;!{{U}7kNm|GhVBprZ$4ytAyQ`*=?S0G zd>#8ICjezDt9i;bxmf#1f^7%ASjXCGm^Y|=+^DPm z-K3{R3U#den3QE(X8h*$?6apjRQX2*trDC%O_@8BoQiOMw(_~vlw$2B{l}AgCJ7T& z?Jh&+*&+@xNcupF9~} zFG#%3+z3JFO`v*B&FYz{y7nG5d}56iV=Sh_gBq87o0WdXe-0!0T;W8|SuM*`npT$g z{yDNPcC3N3gh1kL=~2O(d1iq`FvbW<=Xb?Xel(Zmy(-+^Rqpjs-a z<88`j_=`T0r=?FpjKf_9t{N~B$FSNDTD+bNu&8QdRXDQ{1bCZ^f)5S7{!+E*~J>46;wRL84lkbTyO8kXx(N~akCD1zN}+pDK$(!$45&+Gx3##V@#jDh_L=z%%V7? zibaCHeme-z+uR52zjs$dZ@c~svp=4vi-bG@!<#&ji35#=U#yh%FKHTWfK?$cpLs*-M)y6!;g8QPx6vX}ECM2e9(;*djVAS=+mjKz!>-X$ z4+3xeHKka1?H$?o1d16x&@C>sxq7b@+8*8H12D|9x0Q`r_jhE}3hs&v#!sP#H7-+R zC>rXk(9uR9j@&7rxEm>>9F!%|oa`g`M)~g*z_RjOJYS%FhR0SAC-1dSVddhO$Ru;V zOCbPm(e3pVvQA2Xj<??uyN1Y^@X;MSysRcm5+zlb^K*QdbNX&+;?~Q>;T*|uR#w>5*0i`F{Y0f~r~Cj7)YSH= zeyi@bY}oJTV@!L}wmjQZp%bcE-~1|v5z@M!!i*I|vURbR55Vr4Tw<0%t%2S4qaT*+ zLmt&%Qt<>`gyW$ z5|UxP5>62V#(6m_DN2-X-1T8MqOhC zHU{iX2SJxQNDG4Qb_Wc=?U-3Iaf-u)+x#BO9 zkBRkyxE|^o8al|ldQmMPp7yq)N^#O&%^O;I(b z108irIN4`!Aa!5Qat zU-|3fBE|`dxnf_sZ}vQ!62|j6yHpDB%|dUlO}^@ueI=|yGu0Ruo}gIRp3WQ%ckZkm{^xN7_;>-VbI~o=Urt% z7@}WVb~3_GLXxFxFDEjZgwzPeQ^yqroy6icu) zv%W{vm1kISsb{W8GKgpLaod7DbsI!DalIUoGg0>Q0KC2t}g!(*I z9p|Fh7f+>r%US*IYH!`G2LbL05=f3_`@s?xTe87H@$OnQ2Zw#DtqC_Ej_?Vr6H9)2 z5uMK`umJ#ZcAi=jGwS3XCJ`xA3KPmKOH^oAN%$cih=Wi_)-A1f5vePkcLS-|yK29A z>FsjvMDI1y0g#^;WdT7Rs})0f($)j5M~`Ssr1}su44TMMg?M0kB9@=}^8BG+BgMc| zzgaJ#%VG}9C3Mlr8i=#((KT0^z|u3P@(U*q@kpdnGkxX)>mCwN=McR#9KH z)~wF5)zmlCzpn-zs8eZe_Cg%lxXr9zq(nxlc8MC#Ie->If=wJhP$aIL?C z(^m%0?TroOYdgW*%);(UiB}4Qm@}{m`6pwZI%0yu-roGCq#AfCHDgwf7p38wqqkP8 z12JyxCa0q{N{azV*FI{`6Vb9^N`}%`$0Kf?#TwWUcn9cz*@JsZvvHL)1DYAjp>;v? z=nxSNn0qeOr3ce3MKUPHpD>H20HRq2gdicf)WA&Akd-#)cmc zs&N^ed#}Igz&ULE_>0rG-xFz5=dkXii24EcIUyymUa&oLAXsiRb-#kVomU8Is#ylRu zMh@G6g3UHAlB?;$8#-5_Ae?jnRWC>Wqo*t^+?Z=*ZB@t!ReeSxDiP-xrA4}AteMpA zhE1z|>RL z8!kIu^P^0>1UnL(4b;T=6hpS9P5{oprjJ`o7s>b-@450##C=+dzUM3JR#buNM;*UCtwHx)uEVH>9Fg7} z5!I652=U4lbpf9lh}&?B`vXl%M~mw3CRk&yW1?GGEUyRLt?gisCDqp(L+uo4#bsOE zP#L$Yu&9lTdpl+X-c!77xk(a_`5{p*WB3ZFXP1c(6=qGykE2-d4_;Y)K!ohxzaiog zYP!}~RADW-k>2Er!(`mln@#?{M0F!Tbe-Sn2A6&@U;Kj7a`{Np#|W2ISRzG1%-eX- zTTCPBFnhB%=S$XdoKX^L)r)h=FS?DY-Y+Abzsqb(FQud|P%z%LUs3$Jh^|DDZz4B= zZ(O_oN4hGXIedGPbEMe7w8GkqbTdxF$&O~KTq1Dx`~NSx`r$cVlb{ECql#v zRFj{VFh(F3LV1}Fa4?t)*LaKdMaB9THH$b@oR2sZu4TmUed*&H^P3qjgDx}`SDK3O zUHW!)C;Pt0zW?}$!V3sTM*dLa+sYq+iY#-R-i8$Z#!=R~e6bfsO%wDD6 z@JFwykoro43iZ1AB5h&En5J;BD8!v31pnGXzU; zCOh26CX9zu^6~GgYIKvcRxq?_4w@5_cv){)X&`|;SJ(#$=~X7n_-mgpX@qU#l9~}n zQ)97WHtMYQO%z5Zk%=5_w+(h!XFsEMy)vx5vQij{r~e_zZHw$Q@j-_?|12~4m!QH( zi!uGAR8j0LNapd8*s7h=7Wqn=;@-iATrGXW(_T4Pv$kD(s>fI*IFf{|5rJDxhrG}@ zlNUs8dFFa?e4N&%C!J-GO_Bk=EDd0^0QyaEW78uPecDyJGl(JZTlQvW_Hud+;fl9< zKY9E)3Vp}Y-34Qh{)|-h{>Gnl>s-6}R6HsQ7yCMT4T|;SyQ|w{^mwFL*1BaN;elEf zQ|zML3S#`6Y9^`HWE0qTE;&mDK>bVuMIXQxQz&OT8Q*Qi2O$gHe!Xf0dv>t_HSfFO z5EekSi38wR1wLf%1K5|cH`w(JGN^vh0Ej_fA`HL13wKK-siSF ziRu35mJ17)$rF|mw?X^Y%39qty$~>jMLdwPgh(=1!n41mdRm&3ETrjL-ZzEuaY;ih zD8YMmUd14=%t}$Q7)PBbyr=K7?*=IYJ_FplMK|bpTmTZnvq|o znkXhcN^7B6eK|#O6JE^oeK%$pC+vA9fZ8hPBNQI6oIeQu89R^N%kUwHDTU3WpR`vf#e zT1YGLBGYlKw|8x_5u;8k-@N@$n<+XUU8kNDXbba?77aTB(9qi)IvEF!)9BD^g45`P zK@uz0)((#foOF#3n1v5zsD2RLhj$q;bTX;)dYHtXc;L+}vOS7_r3sMonc%gZH&+ijW9HSXpoW0b>BCif#lQG#Jmx*w+3^c@ATr3NZ9ZP>QLN>C;zC### zIZ|uSZhUpY7VVkT6Gb7(YIr#_G%nM^=?acHY2kdC5jT}MDPM<)!}^h{4^orn*(ruB zMJf-gk^kj5f&RwI7qj^FRUj(sN1VRbnsF=HDY-n}2^E?PHSXnETiOOwA?lCVENVKf z&9qiCm~D7%f8Bf7Uv5F+mdc9wjFm>e;J0!mf!1V4oe;7}`H!+1>NT1> zlt0oInM3`4vN>mYCSPWq1JeT-`8yOp_Z~${$CyeDHFu&t4E&glp4lOgPe`KWYAB|j z^^}55XlX#p35LS-3dh*9XxbB`v%<~rz#<3+xw8~*%{i>7w;zHsQiao@Dk>zDjU+0y zq+&74DIIXe3piDm+tF>q%B$qdS45O&UL;=msLl$-T@#~! zwh^|1O=u;-(N{ktnr|bL{5t%smQXoD_FO4S3YtG1FOX+|_uh));2v42xwKzrSa##* zB4@JoqpK)~2?0&er6ny!}9I)#C($Sn_J6 znEdZ3a6;7!bc}G%LGeZ#a+rsD`2%0&)aAr$)2NU?U#Pnv`iR{s;F1JmXJmGwZFXWt z6~0))*v;=x6kw59DOAG)91L2v8j80n0uH$niN~N-Ul08W0O3ep4^-673J7a5SoR-E zUb?&4cU~$e$=Kwn5Ll7*@)j=d8!BCdE;%U8M!lFxeaTlse>CoB{Fa9^AZsLFX_4g7 zfO{)LolEjVR1xz414YMY(>#wf#a!-{;Aj3Imhq%A|2CV!28H2{mdP4Xe~IAz!p)(J zuJ#)<9~#eXW6Bne(8g{O)rZ|hCK(Z6^eBMJB0M%W2_rtO(C9@7fjq2bncf@8cA*O- zy8pD6jNaV(gK5dKH&~Sc!G!5vrPlhZpT(oNGQQ4!z6w)uP!m{gwho4f+p1r4!X)}V zo;h}aVJ`vS z--8Nv#|-wlEx1}tg5y@3niI`votB8HzPsq?Ajt)`u7vvqs$9mX=3;yFfb1+%7HlsR zO?7EPeW}dt&;MJ7gVV`!*p#!?;baD@V;y^<$O1<6p_iibH!porA*BWqtP zdV`A#=?6R(9YXUCK|--L9|E4FX3v*i9%syipRT*a-->(WqGZEv-6nClrPB?5|FpZB zt#5c3s^Bq-FFpNxvHsQf{YoLS#}9D4ALNvBdg*mV&uWksFL%xgor#|d?~Y_UZpuoQ z&1Gmo&gfV&LNXtBo$@eYu^JUKzS?S5|1hhKA=*c~wT29jxHVSrf4d+s5hzn03|WcK z4l)Sl>-^0~X(ibc;U|+=C3_}8tx;f|HST*Upj5OSPxi6rRPDsDenN6@jyQpZyOIo9 zq&O_oM=+eBMcIb{A@$jQ462rc*hwC$6NuHUUmt^$X6B;f{mgZ*KNdazC7Sw;#G;8z z?KWWS7mi*ZQt$2kiO^f+D-^u4lq+I1zXvS3Nb2|`OC4=yra0+uZkG}44$g}y+|dLUdYh04-1M4BjM+}81ZtQzNQ2t~2Fjj>SEZdA_%+?0?X2tU^f%L8?LD7~DQ z2N01lxw(1z5Ewcm=5!QUzI}HO^;G7H!+y6awN_)L^QP0bcxu>#=BfM?yNa5N@$fbF zhT6`TY>%at)1cyg69k%X_NLQBvn9EadeDz$g{Cf1`73dClt~!cmc{L=EC}>OcWbE%1Y>udX!TN1E)k?KW#`qS9k7ng-CxH&OW%E^wXT*4|?cm>G(J)JDszuGdA)n-a>ycYJ?G< zQbeYINgl)2T+MYl@3=EAXU%q^W4Pr0L)^MEIjf=C%vHZSqSdYY@2-frga>&e51tWhP*o@`1~=!YKRpp7x;&Q~m*SR44wDDObK|5RARs3yd-xQ^Ng z=Bjiq_Du*`Y*w(xkglHSFcO7zt`8MUZ6>4c;@}yYU5kSI9~HcmppT4r35}_XP@b5c zL;S&w`6k@jqwZiy=T#|6>R@NYaLBky&MergFZ?!QP>ly~o7wJ$r(^-#0+b zuXCKSc}C2s5EogqrVut*sAK|6qh_z7lLa+iG#M4Y8!V{Ys=LNB@{RCC?ococbn2Cd z%s1gAs(y5C+q!)x7|D8QxI+YkZ;}n5cVxAthMhQDMehg;_479Nf_wx|cX@^M@{hBB zJ1rhOx*TuJdhWq)fhH=Xu4WaqwodigGl_n_xdorp$wel3Fs!xUH$D_)UW2MllKe~l zu7yW=ledN430`KaVgXmD-No=E&UQrO*Kt-7aAw z^@!s-aO%K}Zwi~;=I(+KWqI2;S^0;E{%@QmQOtj#9y;Z|KMNFz_1@s_{475@p5gSd za{iEB%GtVLn&p^Gfov^kviMN2_gOIM#QM(I5uV;B%N^pmoO$l}A+!e;oatAW#Jvrn_r3j0%AORbCEL)zY9IVuPR+6b z)xN5$)8%V2robp^Vqt?BQ&k>8xcc#AdH!VR&79U|Q%cV!vMmzS8x&{yU{pMuQzk{- zbIp#IzE+5B5tj`?h#ae3p2gns;w_N?pt&9yNSk&)(qak^-qy1b6q5(7p|2Ueys0)c z_o*w>J7l}SxbrgLKDE+U#Lk_#r8CQsDK3yW3KN6$U?Z`1*;g)x81iYOkOD@lq>mW}5IPtigwg$cE@#9 zYb~OnoLMqBDdvTLS42C!&fqKkH0t1oXES7BqfocKbYEgZNRQYx^Fja&^N4JhB{nsw z2XH4!)&sKG*c=`G4T+c5vUO1WoUORU3(vtOHxR2Jy8MkwXZC3QR84Lwk=Qfzl`a2? z72G~P$87LYTJ`?dAodeXp%S!<<+GE{rUn-3kHfX@4wb*gvf|H-0)F7(4?MnT zZvr|)Bh$zJbb9g>1eUvrbJA{y-E+e*n-c(1nA4wx*T)a?WwY}bW3=<&2wk#7g$=Ud zsRey&GR1+gO5?ff-qv5xT|tNFs`{?rs07iqOY8h1?^go%$T~uwb>nVA zr!{%T0k#93ZI6QDVdyI+2ABdtzH9&k)dga2fH>9XSIG@}3<%=p#e$)vjO$tnKPon# z7$F`0CO>_c#a1;e)}KF{tcxamtTShz8RVe|Cm&jKl@r3^ByXN)|J-SMLY46vuNJJ{s&Q9!OWP{=YYmQR@WA}FVBha- z3c2*agB=MY@*M_}idb7NqGn1r^BR_kUR_Dq2ImPb9oeY6z5> zEE<2T&Ri?HmpVP7DHrdIVXC=Oq^;@?#HzJHFs0uf#S1VsI?U#hQ1MROWEAD_BA76N z&m)y{$iI+9IPQkB^G!(Ljs*rQ^zU#j-G*5%RL@86U)NoZ$oq*Evw*6N2N z_G0nZhfX`qy9qrXHxxobjAw1Zpj019)h9)8VVMhntg3tNdWGT3uCGm$k;6_Zbte{i z^W6KhC{y4)lNEd>2S)JZUH`EBmy8(iNkK-5lT>zOao)BNf{#B)RW3tz8$PW=_oOo0 zRFmR{L-A6bWUsQlX&ezA|gr; zph!;$C`b{IUX##EfP|Vr+MCbsJM;dN$=qb_x%ZTP)?WMUwPUQA;(vj9M3!0$z+aj0 znSaj6G$=lDmNJW@Uv!PLTE*0Sm6cadzTe1ciPI4`Ake6WxYad zbyozkA|fG#e)t?B3fQ<;8)d!n+6cXz&A975p5`x)SEg)tfn6EtU#k^l_BB0LKCDmZ z_<&_ISdMeF7#uRpnG|>UmZ8gRalz0Un7w+T({Hs@bodryejMsEVg+=IT*EW4T#XOk z#14de+jR`ZEL~VuY@fLDfBnl4*YRQO%~I_R3F&#;@;E`=m>b;1vA_I|xwB5B40Ib< z4l32MLu#r6&eUe>I&`L!j++rKSE&~uG@^4@lUR<(!>TUcE$dI!01mbwVYvc#O7lOX zy5Gp?&=nHVxYt8E@ZH>lwTu^nv%OVdLiqcM1cxk6UHNCjnd!XBt%)hI3O|2>9-yerqAE~d}o>D>8mvTmap3(*FG%Y zd&W=}ZVa7I(GRbc|p0S#19?jr*hc_`7ZrsRLWF@T2J|A5BVh590v+22LEt;X*@%7qmzDOMCU z>)!CPO^Q6_ieHxDz;{p|WCmrq^h|0!bd4L)qnN;zoTwvAxf7}8x8EqRkY3l_|D~q$ zECA{}+o^I~Y-o20bkkM+*wxcl;WmUbVgw2+Cj1v1MFQ+Ttj(gawZE{3IIzP@h{{EXb#-$53 zWI$);hOqR|2d;qQ&6`gfv&o{JY%dJCA}yA3c}B$+b^Y@5iryrgS%t)GK(;(oS{FLX zYmp6T0+3>GY&5g7B-m0)Gg>e(5hPKw8~^;aJn*DE?QhqQ4SZ8hkU?LrkpC)iOup(M z?-C8E|SJg*509DJ2;=cC>kF2>wM_<&3Cr5w;(e`sNyTNGFe3!4>Q9e!mn z`hephJ?n4#bh?(*V=?m3Gr7l#M!6~X9zIFBdR^GHT*c-5o2#$N@0ee-yDDHX_V$65 zQD5fOhI>{ID(vlMu21l;pCHn4V3-zI0)t;BPOVc8+INZ6TlkQoom*27A6OGfp8Y5< z+A0&9@w(z2EB=5iGB0=`{fnty1GpsY7dM0+$8Bq}ef19X*|4iCYvKLS#K0@`@cn^q zzKYcFizg;w&CDgiC9*jOMEHIEsYl@Xc)v6S=)<(iQ!(xjF2k=T&t^C2?mI;wHw;b( z;v^F%*_tz}-mkTNxUgc5ix*)&QCNu3(D;+{zv}_-redAG$GiEv$0@V`-<`W#AV<+1O{+*7qSDo18L{w9D)| zeA%snuLR7 zzKYfG+~BHP^DQpM;Q0ezVJYu^no+K8AWOrYFcR(sz{KJ3@$EEo9J5=WgXx}o4$q6S zusdSTB!!6xhim_@gFkcu4`Q7({;z{)n4^1drsTJp-#0cY+NqKReCWbPl_9oMF`89b?guU73e2|1g_?ud?O}6LQYckr3 zWnS)VbNclt{g=uvZ&wHJzIxI7m{`S3Q+PS>Q}rL+eM3mKgt92V?w2}?b6HNDFM?eE z@qJ8o=Q?)gP58LNtS$VBiEVl(^A+&g`aK`#NgIS&&oDXJ;3VP+btSp9C@RgjgD)Ri?0y7z0`J)ZW+$L!Ak#(ViH6v#0Y z`s$Q)^r`S*=I3!7=X<^|rt11!wJ%2}ruMC7gu?559OgdB5jiV)K!-7hc=DAJgD0BV z8YpWC`}lRPg>0J(nbiZd=gy%_Uilhk+V z)(fm-c$k?U^oR(s;)@+fuVuwVd{#hSCi@q!B9iI;nb15{8^)!~{7`8N3QjIYtWLSYbo6QOzsz#Gce(f6-EMGf<6qqDw;As({TzC9 z`0jx3(0$nBVou9I&(RdE@jcdzp5%P-RA2JV+xxdn+?S``n+Dav;NSq z-yMLL77`qe$GGc`mLp=S!y>E67`0K8__?78chV=YjJ)kpQoHebFFy&;NB?iYCGC5a z)r$Qr`J{AKBbAczq>AkKzOK3T#RbB9gH9ma4a@aI>B)=xG90n_>j&$0G=G4=>aDFe z18Z=82wMv4yP_sOBTeYfx6ke`S$Y)$+G0Ne#}oW9d0X1-ejjEWGwAuIBXmf37IyT&H&*R)!^(nmq~xP5 zNmNL`8((&YbaBkdYQ*Tqb(E-N-(S++yVYJ_pd89(c%mfBcK18e6r^jhKY|>(L^~_{kbOBf7Rqfwj)nZmUcyu!>H88 z1ut_@DYnNsVZu0RXkTlB@T{VG*Q7=NS9+Y8?#hI`;~rl{xfRZVSc}E4OdW(HV}kKh zK5}Lwc$Ene&lr4CL8s}aEu@n8A053SVHzh z(Vs=z!ofvwVM*G0Wq?u z3~Rd0iNjyo#yfH>1Z^KbA!&HV@0-z-YXi^+s_4JEL0vQ1(Yj#!=y4G?X5VDVMH2tN zcac1<-dKP2?PBcAu!nh25j+#ymSLEdUl*wipzTNGu!UPpMZ7Aj-NSA4OzH&FemVH?E?zGT_NB^iZxO6RS^qYRP9ACR>sT z3;~z04yT$tkQR3$ajKfvB}ioh^}${?VLUzK%D+xTp$!Tgj{AbIt1kuR@UhfB7`Jl% z>%Wum4RomP6vgReWMmYWQ2FDBY`KXrxnv<;0e-D(K!7Ym<<1q;s=%sh2h%wT2%Co>N7@0VIhe`B^1Sw=&|x#$zOJmac~CsYFz{|1`PUhutv`f?_CYA)@GV-Q zvR3*H@{7XkCWEeXShkv&jWhjX)c7kr%kw$1#3{Z3@-kv<#YrD1kJ2`IB6b)>cQhwR z(H)KBA^cIbagowSOTllH+oc(mzSR3dUUAXS`rZ3on#@WqLp=Y>enzjW zYjKI}YZc#tMzRQz*+$<7#OQfM+fv!vg(90r;WZebReUKGcMYXF1kM3|XUr)H13F75 zQkZr}#(547&Gi)fRuxYX@pZC?eu^!sk(xwHUz?yYD`flV{0MpY+lQ|^B>E?}WMuLJ z`1a@HJspQ4KBeuZev2=)M5`$iF=f?jTamsYG+4%Rz+yQj;!%@G8>jvbEl5RwH{@a|}iyVPYrOuWiBL~H!g=Dwb=__23w%;KJq2X@>y?=;F}>x>GUy9o?YpOLL)ux|+dr$g zptm95d!t72pe{AP-7X!M*)bhV|I3-#{q6T_Q@rLuB~StB=6=A^^{`)KEx08V3w>pO z{B5Dn;j#qdxhajZ*dagu0wlHHp2P7-K~=_iq2SaV61JDfXZhmQJ}w+szPtwqA0g`C zJ(Qe{;cQs>Jgi25QLgM^{f6Pa;h;d9bmTsrd`N0gTsetoS8MRjWF1~my`@#i<>Rt6 zW|ED~J`ms2D}{ZrOSYXk&r8-dCyYcLq&F-d|4B2;_yn8C@!SoGmAR1%Oy1V3Z^rNk z!{qNk8yk1&}~U!e?ublC1*?9;20 zAx1V0vimg-&Dt0E5nB}*t=8a*kt@|Z;v`&Zglvydh#$d-s|~mEPQg!Pv?uYP>nJmX zc|5PSaPY|y0tsi;x^?%Y5mW47_}Os?zx*Fc6>|2O6Mu|3=nN5_`H6H;QmNl`$BPz95^N`w4?JsK0f-_ll?;USV zTxFn51~t$tI}85IN)>KuHP%&2&L*d|nvTH!Ym50&TCO{5sdLNqVl8}QW)zP2`oMmY zokQ{ZyWWpddsfb71Q|@WVV$KkBIDu!Eqg4_Dh>;=CbCfeO|Z+ef8!SC#0rP49#;LEjU!*houm(oWF9L>A7o$_yC6KHY8Jmhz3#$+ z4o!o9`Mr;G1U_kjYA+e=EyhI}IeoU+rt(yA@U>448<-I;BPX|W%T0}j!{STVV=;V( zRoT?*A@*Sm#RE;OL0GbGHJy9ld6yU;9{Ni~VrQc`0 z3UQb3t?A&~Us{xb8z=y^>JqrRoKvnbUCo+$m>9?(y7)s0TWN|`-d-=3o?a?cbU(}j z#0x&Voc)HGHYgyLuKw}n2<1y?Lv9{g{5Rr^Idt8IyJO>V?S5?G_e+J3gUiiTOFExr z+)CTn>Xs$E@TS`+2f1~)Kyt!u*qKs zFXv0Sih|XkzjL8d**-tA_E~XLK^_uaRD!~CtWV*f@q}-iu=uOw6r!DR-@s!;W~qhx zp<3I>10nc}_)WqMZ)gGAZ8hr>w_4cERTGd}!SAp-Kzny2O}5;+y+9A3bCPhR_TMd@ zewEzNL*-6H=pT`D-!7d$)+(g>>|5*0y+JD$rNDBA?-?wg6uhO{I=@~2`f`u*+ImtJ zWSaavmo4E)B7_!$jcxtzbLrgVyItwn%SdGr8t2kC{dT6~n-tg9`XtDIy<)ta!I*v# zqB3WUVJycX&i;nLu0m?4KlLgV5M72%=y5bTR)J_N5;SC&VQR<`b>_sKMtM7z3v zC-#x&)5Y6SztCrRlDfI6!}rkhDPUx(?(VqQ-k?{j4`xQ=!1kS}JNfb>St8bcM)3p;M zIPZEhl76fRnG{1a#|ZLHy0!`@c|_NkNmOci{@l~gI;&E_-opHoD>vC=jW)n)dP@r4 z@8t&}A)3P7qGS1=;hl1Z#SU=t~ zj+UCTJ5?VD+wmslttIVWF=@4POj5J84qT>uf1O+{qHwa^H_uy;|45D^{PX6hZXkV% zmP{UK-}c6`?r}=o+#N(yQxMot$T?a7-v%G(0wF_uXK7VJ3Aygg^$ubmn`@kcrGO^vTA zf=X?R18=wNMCYF+I(Z9Kr?6PFhsH(yeMi?k!lT%T=#q{Tb1k=p-W!^#*- zD5o;!DTm!+&lc*mDlk&-Y|QwfcFo$!(VNf7O%vxP1#69By~=+k58gtZ7H>RH0AtVO zKO%{8e4{E;2N=ttkM0fKBt?nWz6zx0(Z&MV@xZd$-oV8p6{ex&D%@E-eZEZG3AI2N zDMOvg6|negajAFSs5PsjMQsi9cB%;X-1-}TH23F|L{jh#JglzoZkJW| zLqxB!m3Z!o($gI#{?JG zCHvPp!3ae=bo@Yah|}<5DWyG^I<6sbl4=|1)4>7#bQN#;-3GYs}hf=;xMBD{g{rS{%pQ>2< z>X{e2#@~^mpmSHevu*MY#F1Rk_}=PcXz|#Cy7SdudYICB46j^wGB-7Ld$@BQd)^TE zlK4flnisB#hC!y2Q5h-|BY-&SMUs5%=m`CGYY=mBW@wi@@@>bL>+7CiM_f(oclPyYw6!u@X<%n$IJ==IP`X%-EuoN;kK=UD+-hsgKCdOY-3EoMNac!AVIU%_K4firS`e)-n5 z%fg#>R!0kg=X8ZO$NvB3Wfr0@48^@mIjrWw6kM;W#OVLJ4<`!9!!yPN+O=Ac4DC z9CEHnh;~X?5I>JkD#bc$Gg-%{3$4Daj9tfdeXVQUqhiv)%6hEOn}__@eAJuZ9e0{zB(6e-MY;%zw_x-+LzF-UMa-6Axh~0|MOc zSKC6bRaN)txvDL6Ng6^gu3EcDRX2|t3LoY9S5mHjUxce1mR@VJe(7K7R;9Jz@$+&m z??~}XQbm1#>Ecb&g+fqvZ%mN;yYg^@f;ZNVhVLP3a$XQATFVKrHqa#!UfDFDRy)P6 zS_@lND@2#W`4@iIsZ>|?u!nu0olBvL+!Y30Ql`e2A^vI8e@{DAM!##~rUKNi0*-pQ zvE0Vs7d$7^-uHXtRwR)H?715Iu+(}C=aeaJ;t#0b&$RXXAIsZ$Yy*aNQA57vdnP&6 zvLqco%(jb6}p;+QpFKl54+}lJJ-;-DN$ksAH*Xe zEaf=!@$yNmS?cinP4c8rZ{Qfpn{S@u`{G8RURpB$VgeyhXiI1ts(0K{cY)tDCsCLX z)_fVkqTs%+y4&hWSN5h~KnHd7imR}TCnLL|p2}ThUYtou=pc{28J;)CPx5)xKm9nsSzYGJRVDSQ1c*p#y4)oRs{SFdI*X#ukh@>@5G~>B zKll)=z?UGA&6k&?WZGmGCZBUL#_VxFOTpmrRr&A#lx+9@eXMo}K35!1|05kTUh2FY z;sX%Yl4*UEM9Z#5-=>=BINMJ2j^EsJ`amdp!URv6dPo&*w&5W7l0KbU5323@>1r4_ z_*Um=VB0DWTVWz_)r$s?zpRha2<`p7W--4+@5?@!E$cyTT20!IF5j$GLjcoX0E&}D z7X^)DN>czd9vWAAsusoj1cirj1LGkbY#6&EuV@QdRQ{(~(ATQ)!Wm<# zz2cGis5O6*M(XL;s7eGyfFw>i2MHJlP;Ynq1FG;I>E#I>>33JagxTdf`+^MIyvFHI zC0SaydF+-|zjobZ7*p0V`kr|LuA=E4f2Is00ru{~XASz`$TzJ2yP+^Q*HR^-M z=s1lYqEu4oHxe@z&Q~+xL{7y=({u0x zp4tKi(wsxW7>NSVvRCsqGt~)$)z3Yx7Zc1^_Wo~bUBNl^pl)A+55GycNNT<=*mv@W zqUuPaYJ~P}j4mb{lc9W&=XMAFT$&UZHin|BSGJbX$H|HMOn9*z(<-q0O3kSyCF?yT z?16Ho%|!Z!Rc_aZ&j`VEkyC*lax*GY;_F`FVEp&RQbKV4b3L1?@zD=zfGI)2a`+!3 z@T+mxakVYEfXwt()}M(TsgxYc^ZCrHZ2^Dt!rB6o`&(~EIqd&dJRDN!B`EVhfpP&}Vnj9#6&Z3u zC)q%$j!Zlyr%tTB&(tP!BKEN`Y53-na;w>OaW#;mRitqHW!WzAOtjD*Y$(h?^2q)L zu%!Bi^nr>Q`9b?0m5*l0hPQG9EW`*`su}%q|so zWBG<3>UYqaJ&Gw!&T%5ytSy*_OLPiUF}hH-_3Tjgomqcu1F*BbhiJaGAW}=&Ri{{V zAQeAKFC(h=JaUy#BfP&298>+GyGCHYJYM5~TtAbZjYl|u=;6qT$w+m?JGoCo!<)}U zj&%sZq%RD9Cx#oGwgreipL?^PJ-4>LWY{X|lTv#^Ed8bwUHRB0D6JAUHdl7|?isUd zm*)Q*q<_$3j_u*D9DRi8sg>b&aC5l%Js3k#5n5KyYTV_!Wq5i zhoGUq5pCxbnF2*I2PK8chutw}44xLkete8Q_uY$Y)78WIieua)g;il(d)aC6VIbo2 zXhBU-p84=&O7~SMF!@!ew}jrA5G+SzzbTL}5N9uJyi!dU1#6TIdvARE2Rb=tSyDQ{ZcJYxj_f4N1VB5$X6&Ee9-7p$ zm~`7~7+m8XO5P088H@`|q5WN=pO2Jz8n|)8-DH|0T=m$d1atU!x-hDhFMu7_JJzYe zJrw6}%(5@CjYl1+42;s$eX=T$~c zEOApOrgghn^Pg^zy(P}uc~+L#_@W!ZD#dS7&!TST`&&jH-XK%Y+Vtx^Pcry;7UNp* zN1N>{$})dK_ENKZT8Fx2!1C$X+)8A6ve#YL^wPyx(w#XhRcizvrb}VnRXZKv`HTsy zK8z{z(q;PEePo;vahVJ~Ped6`oyDzcyVr)Ks}B+|tnML^9kW0X{|50E%h1boQL5MP zVkTe$Na(a7RMFIy`tW-SM-99iEy(kLjH{8MddzhX)m8nIIJVgq{8!(2ruxGr#(2bt zPyYVP&WUc8G^ueoRmT$>G0l&@+-RWp@i6OESy`-q z_S6^Ximh|yehT;KZfK1D~~830TP!RFN1;Xq1+7lL;Th)qcSGX+is5R{Hwyr=r_)Adn!vz z*HvREs(1y?-l>a?^p5pDdx8(Ue=54GwofkbN@v`b6sGO0yv!+wVyKp9Kn2Nng=C@V ze?q`WxnqCACB=J?X6>hsSJJ0SFw7C1Sv`9V8~3AxXy>3BJ-ldRM40v!Hai&r=eo!V zruPr>MgqLMF-Vs(_=gvg(4l(r?Q3022CRWW9iLv~s{Zhc(&E1YQ%gAs^7{k>&mhN| zx4n4Y~dFYyNLgFV0 zQ;yzxf*qDzc{SsLdyc+`5{05$cy+Pjk)0#1tyxJBwgYiGNAHgV?MC-H#DxPP!Iy1) z(BwX4o3{RCy=hKBgb)pl8phPPFSsYsZl#T}Y2J${Eum*eZYQvNsT$H#wuYsTK*}hq zAkldyq$UEYhTr3^2^!DOtIjh?VUIiq8t4?^>$ks^-F>j_b1i8T>1R zsHovz@Jcz}2x~ecJ`Up=L-IIp!@HOpbmNO#3{iK>H$*UV>y9ic>?=0jT|vzoZTU zp1AIkYQN^bCv?7r1Qn^C1sjlB?Y+})eJ_yLk~~7yiXZeFAw{R0)}EE0AM>7%+_Vbi zUNqJ28KGCN@u#k~D1)+-?>XJw%}c?kA2xi7F`9rBcx4NgVJZeCNSb;9Uz+v{@|J2+ zn%u<{wR(3pk08nnuj&kmIU6E$lyZ==dTo0M?{Pc9qD8rpIX*> z^GwySU|^B`B^8sgj@x;*(-VI+4}C@&UpaNLEY|lBeQm9BiPxa$2Yr)}iMp zFZh0A$)TVB^LEfETHmo_N=?c9Gy-(C7<(h-G59y=LErJN;!t;c=#j+lv{VBH|+gM38QDK?Q zM~opk35C`%obBX~4y`S-&BdRyj$(<76P(e3pH2nLk#j$d$v-b0Jf6?B7bTu!_%V?9 z2S`VO$xOU@cG$l%iJy(=(v;mu#;PJxNLZw8wQYkW6eS50&PEbk-hLO+9jp~5w81yqs>r?|=~?DejiJWf?w>{{bGHYqPr zR(a&e+s#;FN|~<1>RGR)F zF2L7(vLkaex9C0wB=$uHM@bjj`0Vv}- z8Oucfo)hRxYG5R*cp|jRZ4pZab)h+rlOs?UgR<-CVTayZOrRt%b|;9dU4o&6YqRJP zc@E-tm>$hdzC}t~l$)Cdu#u+*$nS1XO zUXeliwIIdVGedFeIk4Cyr1o~6p-WSPgdP`TJn>&KlX(P{!I$-eAv5#&_y=pKb}^op z#4da7g=wh9aT7MWnPsv>!iB#SFk>5fa)M;%KPVHzS?wC-aU+wFC;+x%wiXt{4Rxyf zFH&@xNw)KZuxWAkr7LiMFJaL=KyO-F19D{M058`nz}rp!D`s0qu?fmcbky`1K2HXs zF!s>E4r)Tjxm6S4CKndXL?@xuf!ygi6i;2&2RW7B(*UEKWS>}iRuWCe8&Y*6NOwMP zTRB`99?9AxbmSvdpZ+o(^*f1n;TZ4f(I0G-x_=b9t-kn_B=07*dRs$DzegSePNph5 z=e}UPL+s?m7`aIHD_$FAu9>0VHd+4X+&(1iW}M=1J`|R1zj4eTy`PQaA=6G1@1APz z5>>a=@Kq@`jgx)>C0pE&8Rs0Aqj^i+h-b1-$az9LPQ;2Z<+bjJl+*SP*{)lr&~WW8 z`Qg}j_euRzKH7f=Gj?fjH2T#`?OWu;5TK1R=No^$Gi$Pkk<#6xVt3a9GdHi6iGCRD zE^V6E6BO*eTX$2DH?T51L$l{V`hcZ6`J+Af9hwHmAxE)#ByBfVSW<(*sxHB>8z@kW zv+(kcEZZ}vUT%R3?k2S8(3$J%g7sUyk!;8D2@|d1{3%rUif;aw99CT=t{%S=?O8y4l)q>bd?1f^q(rt%M`l9W6EJ_gHAn zag)w8ERJ(=Y%7M8Td9opCuJS^Kr{9>3wvX8=M!vss>q%I zSSeJnJ6;XOHec4;B0{TOq6cERgMI`_8-Hjcic?|m%0Y2}>8o`L~hAfknairX2D^JO74v^|rI&Ke@f3~}_*Z~A2xQQo( zwG62t+XmsY7yI?9IC`ifJL_tQea+>QOXSBI9w9A@z(X})H#I2!$H8}uy!J6Oji&+A zL^!7yxS`;g7mU&HayNutA_vPa|KaR#_&M3mQ=ILpA@P1SSVm~~xV$a}7$DoAm#E6A1mZ~CP{ZegsyL%M+ zu#tUh=f7hKhnP<*F;J(~k9>9U8T5{~q^4xX(hfkRvKd22LdRKkUp@#*RnHb39t&^w zVCqV?nlvw3C#HAi7@yjvhJL;L^bA>a=MFv#L_hO934{9RZz91Ba=-zPlCx5d^SHL* zU10>RKm(xKB&gFe^4CVXEVbtrsy1kzt)CNCv459I3JKsNYin~Lo@_)s!f+yAVNeo_ zw$5qC*~XKn<W-7 za3);kDYd6Ap%KD={0;kv^r3`)o;*z8ja1#?XDjRIegfYZh}c)swgeBC0rL)(KUD4i zi_VH|NlC~E3xLESD`{fCO`8UUH;L(A0+C(J0UdWcG_JY_GA(bAofnFejC@(O@WE_ z*9$49qE*l!3n_h%*Hr&zuIDO;{AOC~cU*u(Gyf*pA`7k2wx^-MJ1+26?b8Q!DfLj` zHj90<-ro`8gU#vN`2k;Ss_HFTkCpVEZv3Wc#ajQx)A$B8d%PRF(3ivG`WS)#<2LL< z03{EN_zk&NBPXOeyX@x$W06P}PC{sIx`1<@^Qeq=_fAlF;N9-Vr%o!{s+Toi-tY{} zzr=&4tIqaa?ko%HP(=i2?Rb(I(KJbKY7;-h7i<5aHF0zH`&-*PE+R=@qNUU)x;u9T zCl2y?FDF9n{<(bM=nCvSRr6||rD;+GDg~?I@f~N|FEJbviANY_Kw>W!wdqJ-{AI7# zHE+E+K%vuak~nAADR;sV-FCI@7K6&ERyao2rC*=gtdU(!vhcK)YPODmd;1(NFrZfP}GcYBpWHgy_@Jd!>%nSo^L^AZ|8`3;dT8A?IT{JUEH zc)`8mOK~z@M$6Qeymg3VA%~wR-cWMbhi{uBS!6g+_Lw`U>4S+m2wHLUkrS2KbD(Ne z(@l|gd!i@NTSsR)ct3pY@k&Ii7gBg@zY5Lc2`KOJb6K5GS?vwI2Fk?0(bzXps2gY< z#CQKqqCMD`)A!UnNn@3wt8$P-wfTpVI2Ru^Uwp1fNwvcX+Pw1biFIhOPOr9T=ig0Y z#Da{Y>~Vb?rDjaTm zkWP$0NWsZr;EeM%@(0H2ozIP_Nr!FaCY0w74urO>dhVnp@ZJ`dlg06gtJkhe+@FQ6 zwjgE$fIYN}^Ne{#9zRgtxleaqUTx-a#acHz&6YKbYY7vbLPtRsv+Uw(hlyXn_fq+* z&jwZo|A_wB4Tg5*<0Ez4I56>|DeFe3`mr1XFNy+$rf^`&Q~PB%Yhjv?9$HmH99}45 z(`6qt1iV3lM^?;2A;1;7)`&*X^u=BUd$`O)^JW) zt(8cy`iP&Z1{DT_%k({ZPM#;Vr4mghg{Rp8$j;LX4QT^nLGqTW`%q9N?XB9-ZlDxZ zTk+&!ak8GuWTe4Tr1*nz(f~z|*UMqJLTg4@tpApxH#hhcsb}3#PnX^gOGj~$Y8erK zn%XElG~)x@38aQ^8C1py^4vuDjq+j@NTPcF8>`U^ocIJ@k&}bfcE6cAsZ|7%F}P|2 z@Ja&pcQR6*;>H7iCB{Wp13cxM(iQlM3R9VDmKasul_Cl2J<67l&9srI-O?XhG|u;4 z=?!bMy%;LMMTNqX+spt6zeUj?{cK41$M^`|4pdb2BE_cDPDOC34#|Bm!`0~%6$1lZ%YF%Mta823{M>q)U z^F-Z}>hF#ha+7mX@E^0kHDpUvA)W|q67Ea@PRy2Lq%o>R424Qey*=ZI2%Nw)n1mFf z3Ty=x?-2s>Jqw}jh3uADCl^ylfAowol?Qp$$NE37c+=kp@cz9|{+*d#{dgP{Za<}9 zvh%H}=L^4>r&{}*DPVt3{E{v8vw|qT_wp871D0n3Ep>DbRuTP5FU5O+Q(3d8d%-#e zb8?CtEaVsh*)(77^-!Wm0cMknnR~mO z_WHLk4<`Kft@pdXNIvGQvZW3)LZxnM*mG3ucK!@xdAZ}d9WHp;Xq0(3q zh}bkqez*@9S9YR0`JiP3V|(G12DjIU&9;BZ>UL}C_m`pj{OOkR)EQ9I~b$ZlET(LlCPW-{}7|KxzqxMK%|A^~>KLFrg5l=ZO%(-RY zt41||dWP#ZD}lZWYvNv$DN<&&c%Od5Z^cicG%GwVdSi);Dt3qyVL!-9uMRwPk~c*( zTv4<@)F)*?3(HThjh7(w(B&Xd9PElV_rkj*2s827^;jVT-)wf+TI-PQj&uP*<;Sdr z`93r%^4e4X*mQCgtzp=(3Xn1h!$v)$iCTI;yFr_lM}tMna&sBLZ!wK-CwK zkc~CLu(04Hh-xd~UF$6z1h|UMbdKji=EVl01T%@ z+`MhmBw*pc0ZjA+{CPzHbOLhdm=`(a)LXxck=%w?LE1lJ9rJy*l@D}k0*JsRC;I@Y`LTW^+E_`n}( zgKTs@t?2mwD7yBz7TY)e5<=8VNILBGhDq4#7-}0*AsRyHFqK5+ zJRg1YHJQ3fnMq4uD57R*s+JYr4{uy3BA+t0TEeQ&YpQa?wPX#b4S$|A{O|}?q;uE% zVU}S+BulqPvqBdvgoIB-&huVozk7KP>4!#ytm6$sn&Ku+U*&4o?=wRzF=Gb3UMS(c ziS07wmzZ5J5$0o4(M+CSQZd~5i@0GzyJrx# ztcTQiQ2k39P+>GhW|=zO>A%#IdhD|H`Bv=OrkxQ;t2I~rAMg#}Lq-iyiyJ^_T6y_T32af|4ojX}#yEs^sv4PuA8vSKI47k9@l>*GUIgIwgj zZZhuka#}ow`6QyN?J|ky56;_b{-@Ynyad|tBci$JGAZ_qF}j1xD$u1?6s>t%Kgn~KbD?0|E5YHn(s z-Kz_v;iSu2SCd%H+Ns+th+a^mDPno2Vw3KSSug2P1m1m}_20sj`#JnKUr!D1jVNT* zM=U-;wfLMq*8n4bagRan`>VOCee#BrJZ8QS}v7=h8HN1yQ~{!e-#AGX3Pks53WqT9c1DJp77p!RftG6^+hy ztuq<+3n9$w+ka)~^O0tLNz#mRQZMa#MZIz$?!t44OdhVlH*rC?;!ebhoF?R|_|-}B zM|w48bO6|2lzLy$FfE;@d{7KB1|^XJ;K(Q9m-RPpba@Uv&~CySiH$sl7YBfqTmdtP ze@3~|+bB?*crt;(^D`d;Zx&@gu|CVRHVMqUD^DP9mCt?R4SFQ_s#uVCmfx{aLOHOL zckxg+on}AXzjkl@uVn-iF{WYtPFQkQI&oiz#HB}2q~dLD(yfUzqz4H}O+?G)Dm&7l zaa76oYe;Rmntg7z?x(%x*a6?=J-17f0na~>iTQz!0X2He%wf6*)3c2xk&6e^UKuPj{$E|g@HqhUXgME#sFz~6)I3`r+hW7)vnY#zh;W{snd=> z;z%F1b>j`T zN%;H7{7&KCb+|cjn=<8+=c(`!d)Opx&QFgH%l6676gl2lGV15h4gPjv^5W%cgEf0b zcxj;PA#N zS?d**r1g4Yay`G98g4PS{`#h;6W8-xUQF~<^WpW?WcR$e9Wedwwxkv?O`G-!89rcB z8@Ci>*ClV^y|;(6`5TlkS5O1Efxa_w!HD|JAU9AaHRJ~*AYi<2Tcj(wKb4dh9y|y0 zAl{HtcXZeN&ybDXVu@i(&Yx24nzG%^W(zB}KSk9Z^YN_x5tsKA6_!v)%S!iS?(|9A z{b=1U%=+su-c})Z7Ao;hNXqQ%#X(HhZpXSaLr%%w4z5@jX0IXDMQe^GyXiWyB=krH?eHsF z#m8yl>eI7lcHcdjto*JNi~Pc|)la}DkyQ{TO0S30T>>pWUltnX&lJDo*u4F05b`|8 z%#XC@>c<(qVB?eepYa&q3p4W-Ao|9REbpx3d8tt+He)tJ+pJ9=E`K=%-SiCFrK$Z# z?VJ_(JlpEq{h5Sj-<4O`W(Ul#u_0UVn^lehtzE^d6Ny9qhZi2^AH>(6+IP9O|K+Ky zQ{HcDBd&oy?Q=OV+r}M#J^lyZ-uBQfXVxN@cIle#<3IS~Q<;c%t-b%@Z%&bSt-cQXa(ToyyG5G5m*h|2X+IX7QKw|37EtOZxKoaHB8jM(>T6d@)p9e7IzxVla8h zLiVc_rc0+DtukFoVg9>m)j;~@O{?~b+X>HG9SO0A8ApDtL<_~Fb`E$V{LjEVHfo{R zwwY)vKM}}KeI|jpX0JBcjeV-vwU4O!?5|vO8oEPZ}yE$;(((??*p53Pv9IxsO z+o_4Wc^7*zZx&#SCazicI}0%tcMGKGfFZvO=E+z54U6`AhYChqA?|qGrYgy|gG}&0CL&>W za>q{sD%V0)X=xvmp!S9b2t9|9u`kt{njf(np;c`58YVjo=v81jhhCH`m*5?>=AE&O zrQae5){!*S+{?>g(2Eentao4u(OK|VB#3w|I23&GwLdTI55mOLkM|K+!sTq%hPuS5 zEaVOkf*SV1C>=(a1@cwmr)n!Qe0B9IBgiHMf4^_syRr@NrfPKW04&cM>zvY}ssAFb zzp7~*g(ea0RbLG#bcjOqAkr7Q3_s;qFW=RY{zf~LDYXRa3A7iiN2t~u-?%GXC%mnP zM5`n;s)~hae1GKer=%+>fy#D~nN;bfsnhP7LdQTtzK*bm3ZdTjtZ*t4EtQ@ZCGq}Pz zE=V#v6moGWzss3|m|Cc)EJ%T$@3rtl&ed2@_bO9a4B(IZ5vsN(gQ94nx%Eez!@9TNbbwEfy1kk=mV~5~8%-8`(2|{m91*ed9IXjFmvm3VWABSwv zaRbZ9yp6hM3Jj)LQT@Bi%`eqMmmiRNPVT~uqRfh)&W7ECi}ow3JD1=SzVPnCC-*B3 zENh}8hz_aayRN)yw#))x@O&rM$#*_fW!xbfb#8h*nK*YwL0o)E|O!AnyQn z7WD%_%Yx+t8SSa(Rkgy=XSyKZUe}y1zLxyOtmdVr>5L+FJEmBGB!w#~gA?c}Go9A> zi-D4daPW+xa`GNLC^2Kmm`N#ZOlE5vq0hwMT(2r9$#CD^^h7!%gyaTjz17CzSIxRw zU-qVn6W`3{H-EhurOyYw zc5tkM=~%s+F_Z$gs7^XifdXtPK2_uJ`|#+Bpme`NSaYOnh5Q$H^kNWp{q)?46o=*# zx00zRhwC}BFNLmn+}zNZt++SJrJC($F3$U@z6sN@Po&1~)yDOnM0#bJB+mjn-zW}< zUvbAnttS%Ud?Fk1cy?V9_%nTQ<{M!os3tf4x-sN1H48u`f@e`E3D|aA+{+C-E3;Th z`t#%Y)!tuRk4;qy3{?oN6sR*BP1QR`=E%xdV!G?Xhgi9E6?^-f<|cQvxJB%|=g|Tl z&#gVzJ+hN&_eg4WmIIwfxb`WR0l_1IEYAV8!>7eEA7s^d|5+Qv^_38feo|S1KSBnS zpAS=$=_Z`XlfV*M^;}x&L+sqo6U~)RdAcJSJM9V$^u(-&x9QhW=SoD#Kpe3$`yJjS zR+Y2!OV8sZCo$aZ1{<*7Ad11nQ9 zPOI1LRxNl>a?<30i`1KdtnR5;LOf!22?~UWU5j%a$9o+vr`o#5#wL6DI&_ALKSO|> z55FSh%7qlYq1`rZTHYs%+9t;aO6-VhaKyq!%3We#u;Kv9mHN>4!;;KY#Q8aN0{pXB zG7RP0vQtl#yoyJNq7|`fV?y7*bhDYkL;Arm=N7?OgU5}ZKU=tfb8*}vhkXLWKznAT zdP+Q3s-ES-Yfn^nnh?aIsksy<2(hWtP4PBQ=tQfQt$ozaLWsr%k#xH@@;MdgvP7bO zez8IQ^lCQmA-uXGi0uL{B#u0zrg2Sss$`x)A5xd7j9fP}T!#r@pOKq$J9#&0V4T>zS+`Pe z2RlScD{)>k-4K6wW_G#!N+4*6AMgr`WklFgoC0a_@Xv)#9(uQ=)>Qs@Cdx>DArO)X z56Z+3UVT18w^5&iYa9V`n;We8oPGgCii#wsZugSjO1g@IurS=K$!Py zQCVvNd+R-TXr|h?tC8|ae6omD7}ZJc;d-3a&{)@Tptnc|JQ}H+H z$I(U0cqVgO4!mZl1mcQZjI?cL zUl3oERE+<23cO1LZ%nhR!gGp{@o;@i`AEqb0D_YrsJR?|EUu?|x;KIF3#Y(qH_8Fo zRJ3|Iz7MB}rGMP2aGrxbgrA$EUFvZ&{Bq3j-O%XIFUJmX_%{LmlQ4L!*YvK2Qm@H- z_RroU?nJ^r|GTy-9_!x!he#s7MLEIdCe>~BygwAqR^XK|#2LpcBUr!;$q=sM0CCv(fg6^29q~_ z@@j71L&U{##$#m;$ykjNI)p{j1h&9_VP~<~R(;+YV61tzrX9R^)id}u;`2!7BEos1 z0vF>9Iis2<41mRGd5;kIM_$&{6a?R&1I`Ct9cP>wp=lUo1mRJJPV!7?2lBE|=Tyjz zx`p1L^OgukS%qvDe`zD*wurGrg?%5MidarC68p4qdPhFswe3M!={MU3g)LjO2EqWN zDqTwaJL1nG_FIbMqX#*j8nd+JDs7_Q?1TULUHDZVO;XL;Xe zi+Tw|6WOSPyruXMVEj1AM)mb@m`0stVyoQ@T#O%3>SulJk8apwrCH1X^>=>z+Fz?>(cow6oSk zG8{a!kaJHmkS7j9Xh3Z{MECs{#HG1F7`P^*dfIf$L~mfsYjshsAMYMvjn1^Ja=ghO zuq~$07tGyBZ_C}RRX?wpxgKX;K2YV6;`MXZh8an(L-mGE#cJ;&Olwc{&zY#;kV;PF zg+RJ%68cHZi%ZXs(e_reouYtVp@W~~KEih#pOb3GM^K&G6sHt~`Ko6t!{V%6cyVcJ z!ZBCsxrSsmsV)7S3e!$@t71p3(YyOQ&ATvD74duM~C#*rElYCJJfq(Jg}$KqMhxj!)LKwV6s`8cKsEkwL$Fx;EVU~ z8^Fb8&>xtN4BLNgwQB4*!j~mawlytDADAnhRbykq$!gHK6Y{<^IZ#2UvkM zIb9*=>L@+mx0!MB-HDgUpX{Be@sx||!#>5(|A@db@fqT=p-~FwFJS+1Qgb$&2gfB1`67PHWNGnKcGXm=P$zHU7kp5f_ys)rVa0G6KvK-tpt6h@WpEgm!dow z$3_?}1vG9dVrr=;Y>q13uE6Q;BizQ>8~zCzWps9%(SFFn`Qz{5AFWkVcSW36j!F3~ zEyfh2R&YrF=z02aZY3v9D!1iZ)$#T2}kawK=072iz zLyNWgPSC=IQEk*ZgaM%jM>2b;+hVUX7c!57)+%oPpooEL#pJ3TEe}y+OYvIJ1#*V% zbR)Eogy)b3``*xS2(Rqa$>9ly9QIi@YNzU_aadf_TNKzR10OdE)}de}gzbl^?>qXF z`nnWneBGPqYmobuPhw_&DUY2S*USUPt>Cp=X;LFqo3(=8*fpJ!@hQdYqcOX`bSl!0 zQ_l`lR747yoLJmAiMxXE;dpqs3$*}Xw&!lqUIE5A)hcK^D<6nmsQPU&pbUSkBuxy_ z2896*l`856-4=pz_gL&Hm49?1<2W@xN1rumVk6p$)*)zVBZuFTarBSC0^sdIw%WmL zPYK6B=wa%p4HnOC&`oG@#)Pf6&42VE3+2foxU?E+&sS1}qlzlY_|-%d+TKd1&z0$` zp#Scg?O-ZThgJ7Wlt1cIf%2bdstOhDJ0^-EsVh}gLRUM2o8IWX2cyh@9}_jI9QKrC zyj-fax`X(vLFI*iWoEO7L_{;n9zf6Vv>j|#b3Fr6zipp1gA5}HR0}FxXu7CsjPAr8 zT@)KL&LONqnyUu{>%$F(Jb<0n1smjB#Rf&5Olx+{vzsGq3tOYf;XPlLdBmtI%LNnP`${$T^yDLdeeyAW{#H+9=KTXiyV387iMTy={T!STE@y#sd zmOLYv>YOlpVl)yxQJjn*sL!S7Dzd=b9lZ4LL7*nWl%l63+8Xh#yId=^^MZG;r=)(3 zO2J=D8y+odAT{qO*XQEF-~9p&NOk!0!k+wprsxMZDy3@d?tXpca4S7a#7Kgl?BxVN z2wmFNsXD~bUK2k_mYCr$`6v$hGv=ty9IM%YJhck{<{_&4Lp`T*yDD)9CFoT_QDs&* z=Na(st>O@^-B>P$-I(FXYiy9jY6^&Sdd9?yhxMdHFF?Sk2GsFsKoZQ}CY(A@o>>Q`xthI8zyq^HI;S zduM>p*=t{iG|t)r`~@h+V)Z3W(3)vYu0QXpvUeM&AYUL@NGT65W?@(Nd>7$5;h}pd;-UCV3O5oygaHr}N8b!Km_J`1F z=bOoKAFYv(LSr5XT>sot-5LGx>{hCsVn^(KJcQ)R%Xx=~%+5!UOwYkCwxkM35yy6%QUiEcMH$~a%Ws)w4*evy%6C)KrCMu$mMz;@F z^jfC-Nwdyb+UGyRcpnpRjyXbcxCAG1Sr+@0%HSqE7pJ1_yF+cu%}SSuZN*s~6v7e? z<5ZNSrlULdT(EVVZ})3FvFDjWb9BGGG5%7lqQcW3T?p7;M%hXbQ2PKqH^lpOi0koO zYb~}YZo$6#@x~K-8}D0E93;o|d#te#R4)KKw^U7&%+=Qd*^Sno?X|{`0CwIm(NOV! zOe`r5Iv+t}9~0l(QpFA(vipwC8-3A8IbEL|v`0MNY)!8HJVV+j*EAEEtKU&44k&8= zRpR7L?61vJk>tye0vmS+qNTqG{uf}mbD zvD2n=1$H1Zz{D0w@`If1tz|6qdQ9Ac-!H!S+#4S%4(XCrF2jH5C=aQ}92%rGu5nTI z-o2#@g=O~MCj3Ku`dlymMw&`Z6)B>iHN-Q|skzILZqsRVg#y>U#2!BMX88kw#;ZcCwZSpc?c*z1%O=Q(n*Qd`{Rf{ewH+dL zF}8TD`i0LgIE{PW5sGYod~}`{J>%7J^hw~e=Z49|r^YbaA3A5b*9!J)iqDH&;R84w zC&eJ$eFQ@VcWHvjMySpnhJXb?5<%cnSe5+}f>2Ll-5lAfCl6TP)f&s)tqS}|nsXfDABfJ3buv%%hqbiqgLgznCnKTO zJA~d6Jt*?9Ak0X@Vx>EQAIEvdgaHVJZmlRbQYov#4!qc^0|8)~OFrgUjAr2vl-Tr0-GY8`Pa7d>apuzjy!SMaK$`ibCP(a(}NoxS5l8{>^rgL>kiv9jhlM| zPkp(6`f0(k-j(Y@y2`602iTnw1Sfomio`iOLTIhgg;CoiA=I?jXd=svx-Hx~& z1DKLhhPhgIJcbZ%qS}Xp2NBPXntqkdI;#F+q~{{Z(asNaj@Ps>>js3XKzdx5b4Y}; z0@}}HbE39}wvny0OriF@GflE&*%8R%zUdzxpI|mP0!h3YK)528BU)?~sl}#S>|$;a zqW7rYdZb)GS^lOQa+n%D6TOJANSi8kjLxIFS1Lsl2R;e$owOH+AeiR&J5`rs+a>on zt`f{h+e*UQyQRF<1i5iOVV3!pNSk0WA zfshB_lgSE8&6wtC`k%Ch^PS?}>s&f9TzP)Hj zy@xUS^K@RQ2)vYx3Uwg1VcKm{GDC&;N;7Ys1w;C$53ZpUj3t5m@k{5?MF<_|%UrEB zPZAOjVIv0dfn5y>R0$l3-Hxz z7#Vh(Wl6uJrCrw^%Lk3Y(^`yjhYV6EI6(9SB`XRg`J(FHJp5+_$w0$k^^`YAUozd8 zISTGfm8o@%SXBLMy(>+!*U-wk!M%?Ei%-YjU<@vy6!^(hh^Quh>L)@jqz#kNnL^yG zdfSOi(x#(DZX2#>9Zxb;t&EzNu>UTooCrbV0pblIT`Te+|Mb?E= zNm0Xhsv1nCccho2`==_n_N$f$ z=jJ8P8e2<5g&pE?{nFr7O;?qd#Zo}{~LuC;-AGBma{ z-q32u%D1Z++~>#`B`u@pB#yzDX3S{F?@;AdS8zq#Lw$+0r+5-q&{RKmfOySc)V&v2 zPnM7kU+?2xtYGs=^(D!nZ;XcA;E_t1^j1Iy?WW>5XqpXHni9=aX9FximGm9ctHIQm z!-FI`)EKGOdh>pX3{wy2Qg6FjBCM@rI^)Tf2m|Z;q60s36}Zpo*^qT*+KDQ>xu@jG zIvG69Le=DFA<#;F{k%|Lq;g}>$oJQ=^2-7IF-s!6<|DJEe%3*r-@q;}s+s55+0bKe z<@(+`g?Qd5BWwZU8(+&GwJc=J?(E{*w7Xv7N?K;6O(~$qaQ7vylHFCYUv5^X-S#HZ zb96vWfve}tU9qs|{4z-2H z!jJ|hFW4(RCW01LOfed*)T`Tb+sYHjuiL<{Wpkk^$h`U(#^@pO0-e9rF*g4)w7dDm z=ux1ZagllmIgilP&bWtgYUx(g39?aNzsREI7&RYZU7S{@a%^L$Lrh1(Bxdfmiq|Jc z<~oWs1(6j;G~y+U54L0TIhe!E4Z9);W`&CesGb#cgSJ)H2_p42tBjf2kN|Z#T^Nu; zT%bB)p(eyFA*|F&q{oCo`{hA-x-;v;&!n`p=k{~4VPRV)|NU|(_)AZk!AW>4GK4t$ zh)~PI%$uq{p}c^ls~^k;?xk=VJfv#=#$nz3y@=J4oZ7FYbIS*FMS{xF{e=a|xlPDR z|6pRjS?W1eXqyQXkvV+lZWlzEqkMHu1W*+#1Znbt)<=r5l-VO29t%mgkBAb;5SCSF}GZ_cR&UHm_mezkARcUTTWFU zuNWd#8dx)$|K#hmKU)&Gaf7s&!Zq4k*aeiDzMk?s(q-Nx9)DbIUViKG(~hVbTHU<} zt@g`x?h-UK#`+GdP17I?YUI?JI^TyKWLT+n#${;uZN!WbJUWKUy+Zc0Y(us8)&y63@t^Q$MW*%cevM=crvZYsvy3OLNC{6eYcEJnS-5@KvF{R?yOgNuE z)6ly~W_5}*Y>?Q$aAx&C=y^c;*SA#3jsC%I=>l((t>a&)=(6cN?p++#VR9XLBFAKZ z%%z5w=(5q@+ocZz7!bMX^H91=mI6~IlYU#%HM{AYPFvnHtGM*LkO~Pvp6ZsDQ_COY zo<>ak@Dz>;VV6lz-IeOz$Z@}JPcyCP(sp5I3IhF7m-V5*(|LG>@*4I!wuz64x21)} z44sDPO@Nzt!(soRwKW#1`#Gr%qsEZ;I*yrxs<3MTaEI(nn@t(_OXYbqxqqc6GjGaF z3)LB-J%fwV&DGE@_SD{1(8FQ*=S;gx{<&EZ@bdGAV{P~>pyq&M8}~zh)yBxFFj0^_ z5DCzjh99+?8Uzgi{~s{yk<}*^2>y-&f%M2O2kQ&-P3+AIB@toQ^iN~X6Y$EO#r*bK zKe^ce*|ifBtNlduM~j#nP1+dsGRpVT2((d4OPyBwL|Q!@sXT&p!v1%I)gQ{Y#V*jX zi)%?7IF2h39|Z2a(2sGxRVpIMmlF=nL1jaXsfmc+T=ZKa;vZZsZF-^Vpos%zZV_Q! zZ7WNWtxyzc1(C@?cI}uuU?M`uWz?+JF2NDlSx5EZHSinN+wURzn_JbN-m+uL=L*OO z?j-=nE7`9)feB%FSLAL+HKx3d-fr+lRP zzpk?M)zSw{PQ8IK*kd!8seCoDmDt2rPeWIh&eFH4BFxqwNYPplNl5tM>058Rpoy`Wy zM&};&{fCG-n45f+h<_l#dQBck-#c+ zZpuM>W{-(Fx)?%wF59h2mUB&v%OPFf9 zlBrLT5z4D0f3MvXDIJ&G$2IbyBac<5^vx@eK0oWwC`ZoqJwcO2)e!pn9?)M{;%?bo z&Sdl5V@q2m1siF<|CAQ%7m#H{DmioSn;)+7(fC&euTkH52M*$6xuG0LYiN)T0 zE_G}qJ)Q70lH4a&^`ULzpsLsjL3)GhTlD-?!gawOi*t;gLVP%x%*OHBA+2=SGK{#ztxsw!p9N&~~*td{)P=9 zG6v2tRky~0?-N7pvb4UV_waD2{SFO8*n#X+2izdCIjLwg&06SDE#61^d!Rf+VkF9E zKc>|k&7dU;osbWS3pGBaC7u-&D5~L}G`KPLeN*VWr=8Eg+$Fuh8juBB#%NgIS}mI+*Nk8Fe_Gf|GSja-i=?y%sF?eMtP{*# z5pdVyP9~M0G_^Zh_gmqqPv6KRoWRa69R1M(d6(G`jm%%`Xb^t1b_@7c8T;d?I_3Cs zpg!N3#$fa+4<#~3f+qKs<@CAoEQXA%=`PAx<$oQr{o^Sf+R|*!Y=7EOMNQh&Rv=5? zlQPnJ$E6&M^!)X>;Y^vrM#@5Vycl)wIGI!`lbVT@j~--h>7qtWfU*YITUc9Stf@{^ zy_?g}$?lVZUI+YgE4Xui`!1ZSK2$+3@A=zdho(!_V@y~@K+g1A5#l~uQB7Q^m8Sto zJ(bLITMRDLEpm)WlggwQCrAe?bk;ni1RDrniIv+H6~_D%Y4Qr&P437Y4KBTE+n1|dbeL>Ilb|9^jYrS=%& zv0=OGn|m4&0_*MfY&a_x^@(yvTt10gyTIh*pwh`s`W>MVe2&X3GiPKY{r4fc89^82tm z;K8`K(NGO3o=S4Bkms8frQO&Nb4&B4+-UTD{}a z$Uf~*{Vk97ZF8SYDv@Q`#~j{v1Kev#xcp|4=X->DgqL)SH**xT#&Psr^(qItVWYd@ zNR4$ZyInGsEoxerq|NcU$zksbW|Rt9A=MAsQhdLNRyx}N7NJK-YY7*DcC!LxcRQf5L-eB<1#Ok?A zcM+gl8KnQ?+{6YPoLpu`kUOgf9TO4i$3n>=YPlWnqAU8H9q-BZY?D*$a6NV%@m@}- zs7{XBrT5gDTAjE{93t1g9Y-8z)GPf~sa~dqSyJj!h9GYeGOr;;?D^PbbTj$~I}y}o zQk9rOOQ2ur9DIlvNqR(V)5y)#QGA9bA2#s_C>gDqRZ`>HUxeS$hcp{Brs#}s7KeQ` zf*Oytv-IS_di@k)zJ-{ak(o*VwLz9AZtg>c+=R=N0B`UJUmn&gS~uaGuN=jmMyK_!!~ThZWE zhfZ)Eu0rbbo-E`{zIvMjyE`P2dR6a2<2zKbP?h*des~+a96VWV zO66=osHQ?3up`k;@1=_!9gbB@*~t=En>xem3`c{+$NCw`hb0;R;^5)ZyC00$sH*U~ zwD83y*;G-zr+#H3z^*--;H@f@ywSYXF*bVh9yv^`C{O!D>TjA1|HV1Whqj@6?p2&D zjjUc|opE(ECdwqy>tV(C{#mbf^~$}BQaIKQ`*)$}s1N^G1>I!VU)F^5xrK4hX2$nY zVD(Ot-iq388_dAa>~IvWjpSae4!HypJZ=zlZpC+=Aj8I_ zA!vUM)wK%sIPBK@clm+=%3YR~?qA0x9NmUPRj=}5-pCKZRJEA+AbwP_>Cwc@^V05h z_AK{xgk`n#RNSe_&tGEP19At>s%z=O72>zxB46bS4eG(pc`zfCpQ|7X;|KlHSN5n$ zXwZ3tCi$oI9`r*WuHV4n&K`ePh1H^*)Dxw$IdkC0o|retg@m7p{U-n&OuWx;p5rq8 z^5>nLne9H%A?y^&tWveY5(zi<)cMib_d=OZCWD_>+8`mLdySBsUhL3f6jM~+!ZZ-g zP1WV=WpEPioVx*V8W?*i`RXFcxXLIQY=iE7=*#vI5^oWqh|@AKq}{AuC-klCAB+;- z%LrBDR$C9er$iR)iv4Yrm&B6sT{1)Q|Z zdazZqLcODOwl*{s#x!u)N~$hr;VHs2VX2n56vcFF@MIDkLJ8c@;|JoP`joQf#3PeT znH7b%r?vV%@(>Y5dUi|C)NEN~QZFMmlC*Q=GbS>tmmT^V92)GHTI6EREO|XvY8b-U z<2a9GJakfqTndW^Q|oQ;lUUnD?1u1rj726_?u%-ln{<4Y8GRaEfvygH2i==~tE53jC^O~CSSjRiq3eE1`P`=k zsLXO+e1f!YA%Ae#s)!mf(Ql(ia5Bx$qgeS}D-y!Q1Z>3`AeLCG2j!sT6BsdQuUTL{ z=TtG|;a+cQ%v;8;n>{myl(!5{8RvmuiT1bcNKx1wACg*d_Xi_V?E##u_ml?>71yOa z3OfjK2ItjmRoNQdPPAr zo>yk%wv)~JRPv>&-8i@j(tse|-bP>r^l-!{-@i^F+gCut5G82Fi~8N zAL(kHZ&9w3{+#asS|w(R_xKC;ifeAuKbnH}*_CQ4Mi1_jtSa=Fz^q><2+&Jm!oa92 zPm-BCfy9Qg!Rug2!09O+v_y{@LiP;)n|(`7ZCu$;RJ>)s#i*&@+-`ugyHrO{w^wUX zaf!)-Sb*-It^c9R-)m|i#K!pBO$BlV3w)~Ad7f|wTvrMy4>^}k~!hiEq#NE z^bMNr26yVuoOQ4DDb(?vR)gjfzcKgvU>Vims}UjQn$|YG8qE9ij3!6YHXKNv%mO^WXEAG2DDz0!(sCBDFO&Tz)3+6};^ z(xnGgT3NtO%`xfz zTbuF54!e{9W9b$EuP*6*a!*N)$>$mRfrAPRn3GUkaBGtqdY(=@gl)0SUFevK=a$dlksbU*% z&S_2_k`OOCFcBkz5aDwN-Vx=dg`$r^-E3V$w3Y13dLY0+j2(9QKXv{QQ)hZQKm4y$ z#8uhka6L=^w_p?O<+oaTQbO)<^mk9oDg5DzDGBNxYq%<<>dMh6`IqCJRyX>;ZNh%% zI}AUmFRQgo2r}%K-#j$BtFbJ7zSA+x%TSmz|A}8^zuT3xP}uvn+=O2F&D=i7cFk$5 zl^*7;t6A;1uc0ixFc?CF=v?_aXei!%Im+>Re@jR(=~*aDlCM2oR=c%lUsCI!@8KOS zj1CQAqsE2K;4z(0{V}&rbrSl@aylmjyYwjWU-p0Eq|!;@7A)>_sB7TxwBSbdN8{9_ zlF1PS_Hs?P>u~S%dF0=exS_I~+=Q`0!6~ zxfmgG5P@rz`&jIKj+#s>*tleAVEIKbHyd>z@})tlL!7PSL}Qed<8SHYYc#8Mp3*pX z099}5UaJ*2NyDq$>4o>z<-O6?gw)MqWfXI9pX6WFJVKCxgDn(slD~un%B5DulDq+1 z+M!_HH0kGqfk~CK=0xG&NLg*?xO7<1psr7o-e-E&Y3<@g65NdhvPXk#u(H-#r%6JT z9S3m8G0gvIBV2mw21fNp2Cnce_oxQF4L6A5$UY|JFqRYM*HX&!60{eqLp2szsh?NW zQg|Wvh|OVM+fDLyM(rYpvsLaZ`$9$C2fInOxLVlxcv-SAtiO6?T#!|vkt+$dRWKEW7e{2WZqYnc^(<^`#EZu&+fz=NA<@j61COgN&@NU9IWgV` z{!$ZjDUNejredbI#%MCc71Mk4cxkrUq!`j~Bag1VWvd##+AgBcUBxag6ig_X9uc)9 zMaG1lg2s5vres_4Gln_I*+WysGQBaspeG;^^6kJAco}8j5u)ZCU_V}6Dizu%k@-X>)3V$le>ff zJMII68?xiVXP<}fp47VLA}vo^#ys$qc$~d&i0RYSEYdqcm{+eGwAJzKgS-{`Z0`%f z@S!`%zHr9_2QWm#yiB;iz+PF>Oez|8pDEh4oB+7Ci{?6FrOMP8tIO}33=1Rs7ofmv z0*~t5Vfc8F8p`+^6#80#$ace>*&K!G(x#6{d?@nNzbEmVa?%!+c1u$;H&ozMR%Dq@ znK|V`ZaHR(=Dq;#l$N;Tj<^Jh3d+8o@A>?$-~U|a;#tmf?$_&Hp3mI!ta9NpqvLde zZFS={qd8r~KQpjZ+y#ZrJ8PXO5%Z?TYxEcbvsVMQPc<}3en?iR#JJ0PNSqklugHh0 zB;$UCJW&&Q?BwZ|uco+WmGr$(uKZXS{mjmyjF)vlm}nG$3%AvL%3_(4zja0&L8y<* zO8Cn~}-D8PQe`m;1QPG69mtv~;kE~ir{1sgv z6K;{>yH@@yBfVtzfhQ!(BE#^rQO@Jp#VvT^&!g){*Tbo%4HSRk_-l!YFgh{tn@hx_ zLHm7C5W*Mm`8Ex5{abFa$=#V=qZ#nRR!DAZL2ht~u+j7c$#5!`5xGB4fIOHkfM{=w zP`N*}PGJuC4O2|@`-F7L7OhbME{FDkrfYl?eTcX={eOh-MJBczv z-%Z~;X}GK0bq*N`KQ=Ma>B1N+x#w{X#-I7Beb5F|;Em1)!ilKhJ(_#* zdPp|D8Y;+KUt8_fgi!-9(Ba_YLb^o=C<2-~adFtYNkVz;qj`ucb!N3)>jj~<-UR4b zgzL$pcJ~0#W4C=HmHd~;OX$Vo>Iy|)+lmO^JL%5in)q;MO2m5}e^R+#b9qCjsOl-$ zo?@>l>36Xx*LO8v3sEjhPROC5epATxIp*wVX-s5Oyn>q3Ni8&G%-4*p!q+Ps{TmXS zAB)h1%6hWxYHsjl=dxv7GACWtt$H+<{Go|2MCUi z6q(ezL%6(dFn&Bfjop#kfs4W6`G73@yLh>bzZV#}m^1AteL`|nvbWYj7peQ2 zTFU!wHN$bt1dNz#$+NF}>CUthbmf8Y|3+g4TVG+a z;)~$KfdvvTjWqHYdvR#SJQIeV>R(N+H0G^=3rU;FeRwiqxg=8_}6c z)AfZDr9P6`8*gAwe8)gWZcE0vBg^KK~zKx8~wb(C&-0D^XW)gQsT+nc~@Laf4~8x-0n3pas0Qhas@Ce&;0`1k`2EX`Hsms^oWP9kXv>HsDB=$E~! zJG02eOJH)HyShM6hjbaBn^e>TSb|My8qmaWjJF;L1x24)y7R!O(L=)iD%DO6bJU z*?gu)P%lh$V~|fsMX$NXh!F9zO5QyO@=H=Rs={+c-Na3{S*8y5kJe> zeP>Ag7qQMo8L8SpWv$~a;i{*-R1VbK@v623e;9KeXrgXv+!{qQ*5+L;_iBgE%~Wwb zTYS|^v6`3G*2HX)MnSSEMbKm97;MsnBG^MRedbynRk;1pXhf2b6=Qpp*Vb9#1Zh8> zM6YIaP@fM$2}82ZhD=!9HR%0g!zTC{+Zrxi1}$ejLv)=BujrNf!tW;#y8^X2JKqHc z7t_UONUQLT^5M>#v)Abra=!%UNXyQ}>Z7wl{RdW&38P+f;qErW@UAF^m_XV#QDJ@u z&DaDH%7%EC)3OEgJ7j-{GlM~QuS#!agHImbr0A9IAZg`lL zaE%=i^8%E`R!tl>*Jh+NGt==t(@=&q_PGy__U)g*U6&_FOUXsqLixy(HlLidH|rVY z^l|#xcwrdB`st`C)F6)%X5~QJz^$pxgmd4f(1{i-OSp^+PTa@7B5celpllYOXbJqR zARM9nL01M2jS^a)a%($$J4B2puv0elssRN!(P`A$9W()6>W3wl25UEyKRpzNAwujmK05Mx(?j4!o*U3VlYDr^=E5erwKfcAqsa#IVL326dS{2 zFFK6oAu#tm@Hx(mP4ki5wL-gX##%*?(pxB>FV3ruof=a8*`@QSSa_Q^{ifWoH$7Wx z31QlA-NKlh0E#jzVKfnqr8t9V&0nX@X-gBQZ7qPne^b%MImpDoeZ}r8MrrrLW^`$MyQ_Y;pov2RjZi#JNO&oNIcdOITv5QBX&cb+HbM+QI$`D^#n~R6Af%3R zQzI>=4*g2r2*@x3e~GH#uyJ>>$N)Qdl1hTxrN7C`%Y?ixX<|?p3~fk0O1pDysD|mZv9`B;`^PM0S=k)JN}+eNFLy>9 z#U16yAyUea@W?rJk!&DP3Q)Z#6}B-=>NMLBuHfyv!04eMR8MG7$y|gbG`kE!;!#A+ z_j0=Xj3D4JE4g+m*hjc;1~4k7v#2?|m!XlxAtt)Ry%E3Y+wP`0@3jsRg&dM~8Xc$I zw~cx(w{Ygc87$}p9TiSYK{B8J$WT3Z1*6ez`lPSupdvo&`6SuEV)-!leL@&i+|qp- z#1$t}RkO~t8E8-P`fK-2O-*|8>|x0jJkclTNbfo*KQAp}Z>1R!STQ&LtYX24QJ6)E z!4hj;_^yIp8`^Q&r_1t)_b|*Ixu=Be@^_KE%2@NermIQnCL35?j;(M)h_*&KI)CJ$ zz_~udcA?%e06_mt9xTRffuLSGo4A79UkpjE4zG$ouKn$U# zBXIM={Etk!koVZOo>G+g!l@?Wo*+NpNGz&1ijuq(pJZ8H+@mk=qncu%ybh&hiN*}B zsS=u8`)IB|1=A9j$5MnfZ9L+GWYi1%w)jxzO!XV`Fhuj$)&mjDyZ zx1EPx7>r^15utm<1w8`}4gXmGOih#!aSk-Pr2iSFw-Ig+x}+DuHF@uNtz~hPbSmZL zkBXRHU@C)`skRJ|M?1=>hgdeB47M;m?;Y<2bT9SAK=RAmGQrzDam-ItgRzWB_8_pG zc*J)q6QReD5KR=;WO7J%x^@>kme*tUzaC3LW|>TP4|~cF|y|!$iWMGPq^l^@EZQ2J`kpVuzYUe zeE`ANQ3gO$`dRabII2_`5et^d|NlWe*z$ja08mkcrkSBgVaGkYxo&3&r8OhCk+BSLB~+P(B>^#yRvDX5NQ z7E+nTGl*hMxMV$Msd)N|FEmF%{>YVh`RDN8qWU9E$VCZd(w9_&iJaF-_W-s1p)7e( zi8;BeSo)l5DE-ma2}(d8I;yt7nDsHhM7@$I zSq9hrYlNGq2N%bZzkm5oUmR<`Su`)JZc_WJ0^l07Bk?qBv@V7xt{;k$JT(%}{ogyW z0j|3ZGh`Y8BQbdS7=kFtHX@AIdqzuMz)2}aV0{c?ag6P#!tvCpas@AHO4$srZIxhb zKt5OXF|1(HfU=+SvQHGB6d0{V8BnZt&%y^&Ilcxd?+>Q^rZr|1+wdrPiADo1Zo?A# z7maPef$h75uBETjo!RCL{@duuZOQ4|w|vsvZV=S7>-1;rD{YhHU9oowHuhB?#Y<09 z+3$X4Sz-xlAAavx{#Ykxs%auhH~dMF+xEENt;A9y+gmLCg~a;?3JR(~ffyzSw-@u0 zLf26Khw<`UtVts!J<2s|JIc})xo?2y@0gxJZ$8a``#3YGRbA&MxwR7t-m#rsq7)~F zqS&+tk}=89J0CefK)5;CS?yoc@zoei4hK?3;^YrX3 zo3%qdv`uF@)CmrjSo&5)*B)g<_d>foj53}a{xmG-&%la-oF-s8w#Yd|z;%l(>)2OgbAf-XBZ)cZkNuy|z=$`&}RZ-2(kK{1yGIke!b!*pa?W zjxom&eRRVQDTfu?r60Fw*YM5yij(LK@jzjdGq3ZV`tWr7FMw=xo-4e@a@DW>ix;l< zXZ=gpyLZw2(Hb+dY-2IvKJ6T?WFHnIGzjawb%OEHwKQItEW-1))=bNKJYp*L&xB_15<&g2?=`|b>$F;X}9IeNVh zcXN5Bu^tvkZlP+#wKu}&@99>6%i=-bL)esNd|`~%I^C&i?F8BwwH)>)Y3;~~;Zu!? zu(M3z9!`eiXX8)mkLzG_W%?5)v&XuI1zizO1e5LD%P{OpZQhI`+F^sXIC0$9Q>A*+ zQ{lYhfJXaDoR{X%*Ph$Iu<50pF!~iCN>u{c+F$ovB7=P2S$1ozeyt7$0iA?}ka%e1 zHbGB(DW&r4R(2fX*RQL5AxkN7CNPC=RAdrO&>-~WxA2ej>++ZmWZ^42A*0+E*FFcP z2+09E4HtuaZ&$lE0px_>X*NjU89+mTGh){+$_&=9pQu|hL;-t3O`p*Q6E^+psuygF zH!#)fBtK6)xHLA!&#;}U$>Xs&bVO8;G@q*!S_PKeeQi< zwWWz;1%L}*nmAWk+=yvW2em5QhHfLuzzi}yY;!nCT>5)>OM9Co?U4rf{HBxBLK!#B ztB9gpd%5^e6Vxf0c71_g#*gBG(Fvgm{?+@@SPVT_Rr8h~nOMqpd&R>QyKja*uC4wD zYqMv}U39o7p7))dUCG_zAjXbq#m75c0S~bD-ZD+iO7BldSM<oq^vId=kDXVRGNY&cycON{sqg7ZF*a6uUH1J)B5z|jwjWOZuSO`f z0j6JI5B0aqt(ub0DzCEUq;PQd=^f1>~BNA5z|_fcuqde!Xdq*QpJ(R}$6APEnNGabjs@Q^=BVKk};~ zPM@D3wg2r?X2}QixmHg>MkoF$=N=?}Izq#2gIe>6`G%cCa6)$|{U7lxN{IW5JpJPY zXr+;znPz)Ta84zV$oUG~1|T$Sp#!-%GR!C0mSm?~2vC|@YhH_0tBOMk(m^UR{25M@ z?h{OW6}FP0^!^oI={h))E7^S)0IYa9uY*SL)1IEsa2Gi#S;{a|El`KPU0v!tM_+ln zdd1=vG(JDACWnGOs*g(yoIN{)Vm!w7q(mMJR{aeBw0rsl|2f1_>})taM!1UWsBeE> z@eu@KY1d?oV=qE36_>0)`}TtGUKKKVl+L9yVA@sRRl30yJ^Aax;h`p&5Ly9es@P;R zM|?jq@N^mLWUDI>k+&aHuX9Z{8fW}4FzbVPquGO43L&Kh-biP4) zkR`S;L!Zedq-801iEtkPcf$;0<2-&iKGgOWNfV1ZR|dEPcKH7cGG9lV#Ru8>Q^d9C zC5qEC^+1dfZ=*I!{A2vMD)L()!ejk1GR~{O{foUD;AR2b zEKNh=ap_yTwNx$kr9ttVYWWl*Htolx{{f8ja}$B*^l$M=4d)B(GiB3b)G>tjuBlAv zII0({Xa@990Si|<{%1%v0e;lutut}-AORYTVTWI&3|!UZu;z%W>gFaex|lw}KOnr8 zn)o+)J^9YVri_Q>DB|MQzHUj$I?Mt0@!#R2mRcrSv_-qD!x#6@y~tm*S^R~JabMHf zCVrkETOVErDi5*}+A1AlAdle~l*p3wTHDfGH31ya*MrM-rHio*(RI?jThlFPnZ1W3 zcTT%_@?xRZjb*tuJ;FMJX74@Hl>4h@hc+RKGwwsY{!rD881?8TKQ$!k6i>AIuGQ5% z+v~BiMCSf-8fhi@{fmBZC3XYc|Av{ z@)l5UVmgxLA98h;+eS_X)o_TXBKzXmh9^ewQhnruoY_XhRz+ezig_@?vFe)D!obd8 zRhk_)Cim4@ANLMhD)KiM4AkOkmk765p%^snE{w-$Jo`kRB{StBB0a{){Fx7%n)s$` z{5qUN;V=!lwL8|(Add}GUg>?SZ+buvKgeb@^{@Y z!x1t4R@5|7+h*|CoKogT9Jfc0RtB5NF?)kMB1%vA9HR{2d$dQBAbGh9x#oGO_%ZTV zSM{&kSphw?{pD%l-oMT5`UAcC3Jd%^EEm|%=3cwXf@}9C7K_)ks(#Ordce^BJ+zwH zsOE}({7XUsQag5~Z)Yhyy-Rn`kYS7g@3lTQijfZ=-$0ynuL<(m0)O{Ewcjz&YejnM zKKW^m*^|EsUkhU%p98w$pI0|@TR!5jX-6e>C;3sRdwVg#f6UrulX!ol{d1VmS~(H@ zGVhLXwSUg7Et0-|F$0=j1yJFN2K|NwXAVR6fnsc0sO(r%cp2;St?=4#(L)2NTxD{U z@N4?+>&k_E`WJ8fyF3a_l_$4fny@d4l=K7_k1Osh2Q6|)W!|>YOVDqbuTTs??|`AW z&5G2Su)lFWvTB$-j|z$oVm$}L3ZUX-dp{nwL8~8Q-Nw)oqx#L$!4M6h@|5}L-@tBGi zT$EjD$NQ0?eBr+a3ll8Q0w15#+KPac>HVlpRdyI~W_bF|#eIf^5FNerU1(6TsJhIf z&CdSUGQqNx-LL`ufOYaE^IXRMVUM>6LcvwP#++(j$EdNB!{qZbKTU>Hl4>->ZB}kUNsH8SD;9f*R}ZH(?Yq7n4Q5LJmi-0Ck9rL z-WnGJH3kC+^yq#<9JXetur1&bGUb$GC*_VUrlG2=1uDE1oC)8V-Dr5_$f$Bs-i;#@{b zYWl^lT8AaDdsxXK835GRYHdd&V+7zUyR{q88uX##tn0PakRQO6{C0>|Q=I6vU0;;G z?9NXKJw+4M9unbS3(}S2>ffiIV9OT}_pwb(R=OZ^BRrdVyCxc9;J1bYk{75cjNc&v zW@fKkaQrsQKQHJxzqnZ8HGHBHC`hC0RXau16Fb_6#*k27yG&4HebIIJkA^ZFi?UDd zmpP)WS^*a#Mb{kY^kzZeSXWrwp3J>x==0_9C>g;M!$J5(ZGnb&R>#%;W;8aP zw-KRt?6#3~So5RicY&TN`_jAxX*FF4R1c7IHVU@~%o1ysYQF7Rw2a)SJ;Z-$bJdxv zd{-ayyczK!gy|;v+wm*cp=)j(-a+6=y;a@YTxUhJNVi0Jae`R%>F|w|mHGyHsAGM5 zZXb|T<1^P+NxsQF0|RzWP~&VUc1NrEe&77Zz;0q-8SlAH^j}5EK2~^|f_l|?Xkyqi z&vVbtc1=5AHTx*)6uK+;>{F4a*=~(tgS6+C`atYY3GHvbD7j&ty}pn`h>O_> z7vJHa81JWj)~8bqI?G=Cn|oXyS9MZ~ZXB(-upH*SH#~Hd;Sm`Un-K5oPy(2y-{7*t z>22Oj)_}Nl_+Wg*7UhM-rQh@T1-&Hojc`;u=NvU%> zH%oqV7_Kn7f(so^H=(RX5Ae@&!n_VHf&1+B0tA|X??KUDxq>FZTCrU`ps&9nbkA>g zga4Mv`>4-5OJCerv22EOxtPwYv5|a3Ln?g$ykM6kj`xPK{I*a0H#BGek9j8&yIxCw zMSmulwLOdYc$xLA&6K5pDT-pdv*`p5liBS7eYQKNTr_X=br$Qj2blBgu9_A@9YFNx^E~;*H_pQLyy8tuzL22Cc-JJiYG~S2 zNNy*8we$o3bIc9?1&(VYBUCGh9~1sh%wL=G)SQ>KRu@J5#E`hgHU>x}KcRy@uEtxG z2%gT59K-#7jw#j{`#H-D;o+=2l%^-mt>y@VbYh&&Q+|w^pCT8#n;JH1e$p;#;POi| z;O@MjDAv6XKa_{8P>$T{zq=iGsk`)f>)!Edc6yI+4L;JacTrz7Ga09=+LRG5ID63m zi)b_LQ7%}&y78LxovP#*w*J+70@rEmjK)Q8-SZ&#jSJ+62@WAfy=Zdg0uFUfi91IG z(}L(g$d%)#?LGPt7pNzB%mrOdqlFS4`2IE^e-?2LH=Is*S7RT6@yxf{!| z)!3MLq_WXu`y8W+z`vpia5SCFVybb!Fw&`@Yxk7lX}Wk{6XPVf-lZa|-F@uAVmPgI z8|L8YnGD1HCC0uk9CAb&By?v%OmBStcFb(5NVqCtE-6%=uKkO6_icaP5i}VNpBmoF z{fR{PWB#km!@2Wc`tA&5T>-2yL&s)?;_-sPS2Y$Dw@F2GrIYeD^PS7HUWkXi=gV*) zYyoNOAp&am5?I=2dCApx3Ki2a$jg1sPF`h(QT)T8b(z7jR?{;YJc5|2_0rA03fhcm z*2Gd0T5>|zz7Cpie|)8<6Vm89&l<$vPoh#%w|Xf%`~CydcC=TwOV(lP^n24#vvP@` z_D4ka97h_MqgN!79*=o8E=xH^m%hIzId2w?;LjI)yOg%z;x60DY)j-@j`0(+(?uld z%K{Q%v{ts(L7`nB48ipy!ZHf zURhAZ4`xs$LEf%W*mtedU*_gnYo6GlMGrh1$ivQkne_a`0bAlxD%UN+j4V zi`DKNv6mFgfNP_zui9#QEN+`Rw1Y1CD;8nf!{e_ZgBzE%v3gw}+kLI+;9`_1eA41WdNd8DOe>!*)V;9-A;xjtT>=GdJW!~J zI7JHeDZ=X`n5Mq0@7};-P?k5hXrfD0@e<`r&f12F_IRprUB`cWWjsL)|qJ zcQS8SVszHh&^dPbR|mk}Hw}FMgFE2+EijRSW!bc=FG-U&fpW{Zd}bq}-G1*A-p{ZQ z;|tudAgcCXQ;{y`H_Y#K@uDq_+g*>*l|>gDorZHe)VI&G&*X15+DHxLxiEEZ%$1E) z2c6ZdZ=~{wmgCvO+1DVCIC0aDDa3{8s>aYQf=H-2y_$UUarXJm|0mxc4iIdwN#d4j zk5Ug}YlE^xt8x!w;}YcLmtek$Pm~?yt%UnJLT)dkVcI6G#?kU;{J|n=S@BRTv;$x_wn4|z zfhg48qm+Dm`Bu7*DAS zj&}j!PIk;gCa)I+3%4sT=`RVLPB(|l@qW~k5iY6H{YSlXH0I3+M`Y0&IE&YAn^3R6 zF{?cZY_J74n^%x({u9Ijp@ivb@2ZKAJ(?cUDE__I$Hwjp#h72n5Oc9xLFkl%5>;>~ z?HKqwrp0dSPmrDL$H+c%?o^d`oHV~bvMK)^9Y3czyOf-r=j};jJf|$y$`Y$NOo&e? zS6DWjmYm$jkD^5&hn1Dt`4gqIu?qsm(=~q7h3ihl(UH6JR$xT@26)u5adm|PcNa9P z;hl-Jm6sP5P{a7K@d|DKFYvr89AxPkw9RbfzdvKblSfdZ5_E*#Y_2}{GV);kdBTp)Cln;u%Jy2aDq9f#@50WLL7? zHP(?QQJ;_K%pNoCFo!Qy#)kyP_$HsK#?|M4H26V(Mqgu_Si_omiv4^^mNMpepp?D4 z9DuJ?9@AJN{pcyM#%RjVy_8)-K)` z13A`+37!D8xEb3Llr&cz2w^|Oj$8*rEN&-7^BlQXCmZ-rbCflNnQhuMUd5V2OgVo2x3FM^qpNNkr*grws zA9JuWY3sHXoxrXrGIwf4S)=~@ej(Dth+r}V$K7Wamg&2Y{a^pA5Il32^t6p9#4oF8 z&?BDWqKruu8YqN%5VVLfVy^cw*RpO8!+$|TJ=!kXEoTwb5~m9Mh~c9*erw;!k8Qom z`qg~ZIeu~E($aJ;71?&OI*M1I$9Lf@f;CiYq5Hl^65Sir>VyNV{QDFcUPIo1+>sF3zOH|{E=y$sELIe*S554Ruf z!&n0Uh>{buFIxL!9rqeS`$7&$zCazwmrQA#C2ytHamE;5)V;vdo|(aaQFs=|REZiz z*-%zTUp~xH=6}%mQg*E_&Zgp3;N%H3IFh9vAAVg(hsWfmMSlYF_2B;W9av9z>m2^A z(>HDVP~^Y}_34lsIgcj*045yOwMVJ~;dBfi4?n5iLhD8i}P-gzC0 z_^+mDpb#{rvRfg!ewN20HoAWSh-s{vko-^cjdqm)D648dv^iE*3A3nqp7j1O)rNQ0 ztcdp_?+O0b8w#J^6v;s?IdQDS*cH=eFU`YuI@5jyWR}fIs>JgFZ6beJtp5}`M>^j) z!&z?StansOXTV+2z{idaKhXLdL|Yg0ltn$rZZf#4+C8r+U1((*i&{qhHWLia24ks0EQX{Obbe9xL;d|fy1B!!)U$k&92 zTZ#{Lo$me2dkzEMgulG2d8_VU1rvB#kdg)?zl|pI;zpI3rD$)Xp*+K*IZf|TVr^0r z#K5FA(!%0#rj|Ka(^8)3p|e><-1?myjp~_YZ`7_MO75xp60u8UQcmseJZ70C*yFI< za4=jKId*HFBHjSQuGMDXvn}K`zZ<6ux4)5lzn_+T<8DNF=e~>nn;FArXZuVu+BUtT z?}1?Jfx{ar{(^2>Iv`(zIZ}-gFO{Qwpzic=H44~qIYzO5tB1(p#gq0;m zyt$uC*ob!KC-H*?q?^}fjmn4QbB9@z@gbgN9A->;))L8G*GtUpV;9=L&p3Py@e?>J z^7!=nW!G{n!f+zT??L!H&(mYidkmWuXj#PaFP=9`)3|pYP~QxYtK&Yjt;{oEn_~&t z*z9Lt9-%WH*tOVYKY9W7N`4WuZsQ_NhPls!QIwT@e#2qovazi#TdTzbi<_sySaXQ# z3|QPhDiOrA`_Ur&!jUXWUw4*a_eAO2bN$dx~^;xNm6%wPz&_^dxa z9~I^`VSiumOiZ7sl6%6DBe>bhoJaR4)Z^k6MoF|Xv7jd=HK9ZP>u7uC&X%iQP*R+%^=78gKAlvYLSrRAGVc65qi%XbmScStZh* zbnG!~SLjA3TJgm=V_+j(duFe{{_Ri71?{1lv7kniIF7uw4^w7RqzyFh0ooHqI#I?Q zNag@%fIw>ZOJU**0%g1lvtYy(MwMXyb z#OwU3A(7Af$%vA4)?;KP?A&_to+)L&_@XIM*r;pa?7~DRj2Kz0z}t)L6MHz*3gyR9 zDiV>bo3Wd8uMA?Tvcz4V&a{i8gofES?lRXkTT<-A#}HGbJIF4*8AA+R!x;r9kGU>* zv2U-yH&zTrdYvK8+(dI2o8X0z3c0sC+q_Iq8tLvTd>$V>f9VRcUhO+#>QA3$S_iA1 zid|7eoy~%~GLo8SDIj+iOLhoazKU2eMM}C37^A!Z|>op)#Svlzu zkF|o3(KwC8V`n=Ycp&^lp5AJh4v7aOKM8jAWzv==I84m#z!*xKs@~4$H^f|O1`DbY zp@$rRJJ;5E?18PbZLkh1+H`=o{ z!2?Rh`3Z9pq}Sj!@vqF=_<@9V^FTu(hqng*IXzGOxcrP3)-S&7IhC5y6|#5PL2ruS zBuBfB>Z>9T!T1wBZjsT2@&ev@Pj&r#!na4rEf=w%Z64Li7sK+B4*AT|JEG5T;RGnq zWzG{~S)#Lx?SbxjYWg`~rhh@QQ=oP`K5PH%55Y8I@H6vtwQX81??=Rkv;C`}1Tyi8 z-Y2=KQmHbZlG)FC5!?`S7bn{4=Np@zFz!`sFcxnYIQ~cw>}-FKn|E8tzKm;g$Vkrz zrfO61qITwvwqEAj8KgMg@1kpLO3jnPoK`!;0`%?J6Mo-spn${+NP7ZMN7ixNppkOX@$f zZn^2pSZiOF()f7f&G}n53lD8M{oT@~+=&#*3{fb_zD#M?s5aW`%+$LBE?P(I_6uf*D_>pjE7 z10xI#BZ?6fro4nGm(4VzerKuZE))}7qj*wfOBvL}q=ney0izd<;w-Shr`Atc-`W$Ced@`~SeHOwwe@?lo9NMrhm(D8gD z7`U4svKF+jvW-(W*p}4EHdup6;9L3so&?z&q_=&^Sr&T0v*8b{O!IJAo)#oFV+9IHsJ@?O+3O;%?PuHn^7!%%j#b z$;*;KmJ0)jUk_bkq}GSU1J8L|_4uk(BqcgZZ%F6e#9Yz*rjmYVeJ6q3Pda;FmF@ZV zWc_D>ogoRR6TO@uOsEp{8_V1$Gk3CC%@cR)=WzEJc-9T25xDOOh!Mwt0;zTgkUVwz93u$8+oPTR)*NstDSRJO~Tw%K(jH+s-XOWTX;Ji z2`spFF91*5)U&*-NOgETPN0floSXttaa2n-FypK8T3I2ev8S|ay?9@zbo;GvnT@z_ z3wZF6qqD*^hsE<(Y7OSMIp7iLE|DfESm)lUeoPn-rbxRqReIi8EGtottV*S;4pdOZ z=B8vYh56^=sG#s&bi>+NTQyc;3r6Jg z$mmAa!tJG`c&=;PLQp^fW4<%FDiw7BR}HNpUjKWN6bJ@DliM8XC!n4G75Ur3Bzv>L zn?y+LKWEqi&6oUO`e!%5t<^VrG2yO`6Qc9=DV56iSl|*y>vgY6LEQFg2q%)sBeSbA zVL)uF+WrX`Wtt$HOc;m+p7Ci0+Rp}iYXO|iTFfmV$)P(=w9k(rr&7gKJ3}7p^b{#e z#c;*YOg4buma&1|gP=ap6hxhllLAc=+6_tsTWSzwrviK{iK~|zt~BIV>`w#P=l**Qs*7{Prc~7jb`Y(yjU~-U!(B6m+0^81_SXsq4RpN1#t%2;v;f+Ni>hRF)Y>RHjJ>ze$RQK|2P_2v(h5 zKt`I&mEY6kji5(7Fv0m}sTEnijFaYQXdd#ZfO;q|X40<Cmt9_5JLMK<^TqYEr+oBs_F3|?ZXOXZ3>7`*q zLcpwn3+&YEm%Jkk)}K4H@EE!14YaS;DZeRuwf2!JpT2-m; zzzv)xg0y0yG35=|?lIB<;|c^ykCNu`p?Ov{ak{>d`|I=n2SY%-zuCI&+KWv;wB2IZ zEmqsZzU>{v`mngz9?q8A#dw8sE7t=tC^UZ#)CG8uUz)sVcjnJp_|>DAMh7p;A7j~v|Ic-F1wwF zIUMn`UoH3eu^S#8sf18|+N3iXPge)^6MAy&4reWNWpTOeFS#oaJX@}=+Wnfk>MGt3 zE??g+yVWITT)MR5VY{96%SFGr*c_ItVRP8WAnSJJ`oloWZMS2v%jIsnIa>_fesS2Y zU8EkUd16APhK4#PvecChC8-J}bvYXVeOw2+!?1KHp=R?iP#3p{6{onb#p-g|ExP6Y zqJ=CAH*}QQjFJnQQG$roVSi4b=iOmHK-%iu4fE3BS8t*TUv#Q!a?#8-2MD>cj)x9f zuw38U^xg8_T*Fn3p5(dicA7S`_6}xk*Y4o|^A%1e6cz+!DV-$z}=c@m%G`%9c~ZZl`F|Le7$WKxXfp(T{5p- zbVXzYF1oQrbBL?hs$;WWi4>wBO)n)I?*9hRO6=G zX9hwLpIID9V$$y)Z?7#@mO#AqO-|GG26|41&m^K-E~fUS~!R$^6}ZSE9Ub#vBADA zt`jtOGsA%_bPNd`tVJikPvZF3|=U}3j-L&M?xxF7|yPmXLFP$hYz;9SDc_qQ6N#YPK>(i zaG0KbGzhRM%SZSHp(9llx^)=tr!x7zzW=UWT@UTz)x)(DQ`$wjNbWgtt{BAEs4n~tD5F$NU*(`5z0U{khLTZN1kVM&?aHum(K+Fwz~N(wH|tQwfA zBTfx|`C(KNW?A}F;Il^0%be`Gb-LAS%QF}M%B$~x?X~aF)jE*G=eDyt0qo>L1H82Y zW?3|)Y3L}u%1rv>E2~luOxoH4)x8tYWfh8c8s{`rsTznY71WJs$ig=DF_5_(LFnwM zHrg^D16kO1604u8Jj)Fr3Pa4L+<0q=vMf-doG7GlLa;6*!mp}4QFj%vftH@C3kAZd zy5^~!0Z;a(2O^)_Y51prBl!rWuUG36fO9);iW(nK)s2Ah1{PgxC{l4Xz;=@*KJSI!87Z1H+$uo z7v8^k_~1L=4}#Py%ZnC%F~zs1AhmQ{l}o5JSlOHaD{Bo_p8~73$zgs9>*iXRFX!1Q zu*`tvr@(RpR-6JW3>fP0lVH<*b2&;F*q08gs}lfKrYk_bbPB9d%4}(L?J`MB$P82B zbe{VUKl5urc6xt6Nk18W%`>qwj}Ynj@R~+GHFf>9_ZYCm!>FW(1#JnI7(QA z3QkBEO;X1(j!JVLwZ1h(UFEt|Vdxt9=1$vJg%Ak$ImvaBYT~qTm)E|(dI6&KlSC{g z)L`6J!+^rof=z<^sL-m)qJCFJn#3`<0!>VvOD}Mt=rrKEz-iB}&%vtJ%+}rVs&$Rr ztTD<>yZ=lpwrVR|g(?eeG67)d_M`Na)BEZ4L{~tpTelVLYa#zcx^JLYyJCR32iULO ztaW`Gw;?Yy$a>hF#}HYnTDe3i&Q#)bzE^oQ9IN>^_)Zug*HERke$u(a0@uDnrd&bGRZpYmwoHX0-8{e(a->Ak}k@CPR%_kvyN&L=d;z}_=to)g{D&`hN@{aW=+D>bC2#y z4CI1IJ2WMFiZCg>R(YO{uwl%-+(geuU}K)@G}T0bjq#;0lwqQtBGCm*)Q~qCOJM6y zc2?Wf%`|y#Xh#iNqsBkvgn~qTj_GMrML-i`LRDva!JjIsE+U}GqEbCTQ^l0Jm??ll zH<|Ttv$D+sngS>_Lz-%3)#wgSLYUs3#+Op_#;NJ9^HDid=viyDnOMNNZtxV|%>}Jk z?J|wX61Cz;%L=7UV0j|6)2rKNN%|SG+tlO=5nKfhQ=33l=2s%^l9Pt*Q~l)P&bT#Q zRGB9RkZLVzRpxoS)Op>Ei4yWg0qqVqrh$GQA<+%Zl_|b4 zeG_sPI-vV*)n}JDhfU^gbFms=3*3JjN*iLQ2z}x>RDjS@dWaQC)W%H6o~0ui8pz9^ zQRJAUIo_N_<&ULGkkc*9DVedTV#rf+9n7zVoR-_NI)*zblx68ukrOgkmdAi2!Kz5o z2n2*D8#5M%@+!`Cl3L~SxDBUdnQR0(rb%fL!%S2OTCxHf^Y_we;Q?Th-jr1pp*ymT zsC{Ej0w!;pZ-QAAc^>y-0w~L(lBRe@VY+gPvlK;)uBU|4yhtL*F-)3Gmo~v7VE-ms z=VPFBwCqkwsHs^c(<-!+yRsQ6+XfM)_2JSC%?W|X$^SVO3078HV;ne1Mn>H^ zNk*y|@&p-arc0b6BiU4uQ)Hxw0moz{jYry&k!h_fuj5=NX+tt@Ypk85qam80A7u=4 zav_v)+a?x5K3&?>LdfSaDo!kfG$uNy$?9l8CV;@vE&xp^THp>eF#(e+uNm6QPm4xDvt(r{VW#UH zMrr5hR=4DPNr==v>|e;*mg*>J(-73Hxzq>nLG6or%W0^n&wL;(U+01O(f#AR^{ z5N;e7N11R}kxLZ*hS`LK#O#1DsEKKkIriH9227z~Z-Z)#As7ld?DiY*ICnp#U*r^$ z)fCbsbhA0ycBE@+N4gI575=+d%oDX?R?O2mgPAeOdGhiyh}al}(R8a~fHTvdkEb<{rnRAIArw z%~xxVkEyF8#mX?zXs6VwNuv$9nl^AvjCGN&qYb}0)dw?b<0w;uX$rcsSgzNdc(3cs zg%cR?U=EI<13cRvR#%I5zn&eA!vQoo->r)jP>DVQbK@{8yegH5Ge;1Y-~b}4f8mE?}PNlwagl(Jxc}}WGOOlgQgebH!8{tll;|pbM4LZhBvJwBrvVTfddfhrVoR-kmiqIHCCZ{;i@rp(m@Q=s%JNa5~F66WC&!n6w>gTxid8yA60IY7#adUZenj=U= zo6G*_`1T3<;KW9Om?jXQx^ii1L?osk#ULpI4z*c1eRQ`w?AZi|w8JI@l5%-o!N9wp zc7hk=SqDrt0?l<-4NCd-`(KYxu3|`icu$elBapd67#)ErFm`- z5&cwz?J8K%F-bKUf@Y}C%Oy>Bx%8t&A(>$JDHH5Id4eGjO=)STw6yiCs}$>Tzfv-M zO26O?EF3kZSXB@N%@D6E)Gz5{-0LdQ1huRy?etjJ+SL)<1Gt#UC0Qk9VE~jxT*_$b zxdstaxN2P#H8OX-`&AjZ|%uqgU2rka%1iGgB~jTx=E7`)ltuj2C|u@vcU8K63l~QId#(~IEhVAbj}BEjq*o03 z5vfx2S$Y@HY4yC+q12>l4Y;bcm{rxL_PQ~;_FO|Yi8)xUQLk!pbIiKXWj3YJ*ei2% zyS8cO@N{YqU7O>}b8|e~9&N5onil@*Br~=EbNDpT9`<#jg-th{x-F?W4xXA)Qhl<% z&gLeR>3mskj@KG1M^zboakwt1wOPX*0GmDE@DWa^f-%KZR+-Ao*>fY9*G3Vjb7L;a z%^7l%$$h9aWmYC+hR;aZE@aZuM0d{K5Kx0R_Hc=e3|EyvqNt$8%jp&lqJIp8p83i& z0XOAUsL*2%yX-1tE;}g9Wd~(q)^TQL&|F_omWFUx+Mtz(s!H^_s!ThpQrBJ?no^l| zR*hNlsV=iNr5NswK6siom^D5()WGSz=bLVaduL5z?tn-wp)d=+Fh!cBV~(iQb4wZw zb|r=wBncRo6Jxrp;4~N#WtR|9=4joSF|7@4G##mPlV(Q0Hk7$ZENwKGKp1Ny9oO-p z%w8-}n*lHsud&xfnBjmsR<`Y`Tb>WrP~Z?7641^Su z=TM}M*1BQ28V;RP{~TZlgl$I^*H6UBj+u(0L&A4G6Ox``K>D;fTp!mb`jjNt zC)l_~fW-FzcaD7(Q>_L6M66V`^A?cU{ZEy{hsQI-s@$<=i1lT1e~Wn)=F$a%G#$ke zl0}iQrF%ZCH;V`9{l!PI^?39@0@HXPalUD#Q{{DHj5rV%Ar3@E#~KZDDho%vqavyO zn{*XMxsPF%MjZxeQ~^W>$KfzSlsyvK;S7lGgPN^%UjiM*Uxil~^!;}Takd#$>?AH^ z3_#uh`00@mLxd2N5Sp-a(I0vF8Ms`EzD{kGgT~iyifX>R>8|@TaHfFJ-Q6AB{v=zX z=Sy$r(X)^nVBgU=GT=g~W!ny-F5f>NbVu%fbb9g}pK2MN>IQsB6S{nu#4W@g1YBA{!EhNmdZ z1$<6d(#=L--wxIN&H08bp8ORW$zf_F2Vn4!IPg}Zxk5zM?zn|y@lDkcsM_lY8a7>x zx)V;-lAGbFeGZ&(30%ZgUc^;ijHO|1x=HoPk^bvW=a-?sQ3R7Jw z0#~joB@UYmBXW$MfTK28G(m4V1!Lr%3a-ggiE&mZgK=tn+#xATozYruT(OCyMkgT> z$Ax^6@hO9(^7TbW43eUnU2TA$A6MOhE;i(^30FWoCoRe7Znr($wj&pV%oVy^U7;QV z8Ze)|g*_|zbV`jYhbqHuccalY7!7#KJM=0sn`0uKF?NEbIWOw8$P|7f+M}fRAHQz5t4p1l6+ZRmu)W^3J_x%ev@5Qav)rUFuZP28e;7=ejiaXm zv_CT{p{lH3>5|NCLR#T53THc=y8h`d<$3HS zlUK1*WnPcG5}VOMc2|x+tX>q*#1-BLi@#Chtd~X_$CU9&_&iBM;klzh9V(n5%87|X zcdXN*z#GRR3d<2-s&${bDK5x+APj>}TKo+|B;Q0>IWY9L4kUw8fTNdE9}qeBO|;N` zSlU+19o3PlpoIR)QEPCOqYvFs<9iaHU6{{?zZ=MAaK5-3>!Q4omR67_RqV{5^M#bd1m~+m$qw(&>_~UZC%M1TFfE{oBD~;m{%0 z0%%!;y+{nnS`29+Buj`w_V$gwUmdRZ!@Ux&iwv1Z$1$92TdU&Gi;6@3WZzZ$s71~L zdPc2E8y)h;>x(E|rj|mqkLoijDX^KxMZksr!U};;9O?!3nqR zvdqFIHkB%AdqF7H*VZzdmm0CUXau)p~ikP;WvP@hmgMR2(ln7ZTidpLz|3B4s`~ zXB3>ezz4(@p58QL*oh7nphSdvrb>b{L!mD67^LFvo=1Wd!#f=!S~N*qX_=}@$)Wk| zcC#KXUG{t)7ns(1C`JaK0*;ER!2tkrYTwYD)%9tCs7#4^)u&1?VXH3yC=rArr?4h- zG83haPgImCE!_I#+&PpjRE-lPvdTv-8l7u%OQ}%xoP^3URo2A%fUA4s$^;4OlUP#% zCk?evt-D;t$m3Dm+Nc^N`LOA5yX;!f{+pRoyx0<;ClPw-e$nl^%;qD?IoC~_n(;gt zwS`1RqDfOzQs*iQ^FR)DCN#l63!Qg7MVS-FL4ddr7GHa2LjlF%>q0xG!zI8fHiFS4 zsWwtWtq5)idZaH5C8#YQs}19>1LLkIcwk*<`pF?axglnyG;@g3?uQoq(dpxHq7wla zQ7LPrgmi3WDC1khVAq_~oMNPzIZk<#gPP_3550x}N*eHi-GvX2vNr>mTv8v2)LR0y zcBD8Ai3_%`<68EaQWIx$h2ptMDK#@S?M!_`Q{U3mHnpNorc-sNz5}ucWFl?8kmehh z+V-XjudesVV%@~9+x=*o(xz1UrxQpBF7~0|*!AXOGw|~$W@n(9hf?UCesen05r*5> zU9Q{LAE!aj#~O5e7zTVa&WD7q5r$t@ljxg_qxgw3GVN#@8&c|IZh^4GJ6IYtgz`rV zk=B?97fysU zjBvjmBj8&oIED6r3-rmTA~4)g$}SCs5bX*uoJJ{%gXUfz9Xn`=CxqBgtDh2`>YJ^H zOEI}lQ3f8+fhd8r_eIquZ71mEvl}*zk zJ>)GDABIa7LMXKI!nX2aT+&o8gD+}`6F=P;iph%xTiIdhXvBG0)OlQQ5CgJg&Jd$v zFsq@K)o?hX%eYrUbat7Ie5$p%ak$qJtK|Uasj5*{?tDHP4!dq^y>KW}Mjc-wie2in zLJf*cl^LTbQq>bFE1~iUSv;+iQR`I6F-5U}(HViJj;G0^v>_9?JAF+Sl+qAVlw zQD&Sb^OHV~U=&5cFsGMwfz(Q1EE?uTs?zSFyYh9}lZ(2ZD+r7HU``EbJkIIlGKR;& z;))^=xHK++#4EinNBQFeTxsLS@4H2cKdXysC3!5h)W4v~2<2zH8qgDuBrIUmm zj-`ggXoTxr<44DZDWuolWJO(R=;>9Wy|BQ=JyabJxgU}K;Y! zyQ8SQ?sFtLaP*k!aDtV)3YH2BB`Fj^QYfs%UyLOFA{HeIBPbR@;xDYkUucQHn2`7j zBgqt2;xDX>SxkvSMI_x96Jl*)WyiwEL4}cnibxJBtT?~ zVZ`|&7ISHAgbeVeK&qOi#_nPwCooS&hDISn6Of^?$k2?Cp^1^9G04yaWN0ihG#VM2 z31nytGBg$$8jB3g6f!gsGBgv&&{$+>V!_uSM`Mtqu|wQg+-N3nqnW^sW`rBf6mB$Q z+-NjzG>tjV;bdI>{zj=^11(dOZJP;cPytou0gu95c2N=+eXRIyP7{^6d2}Vy&PioX zbp5g7cxAkSGwt|Pn)@6a@6rc8Gwt|P=DBH;Ifq-A_lgTsO3|3XG%{$ZPwSQD9*D9; z-P(`SKZPq*rD>f$byS+WC(6t`!BQ2DNpu%AT~owgu{DHad5Lp~7P-nmxU3??GF4O; zcVuCMFJrXA2t-(LEzw%`+`wZpModT*391g2Ce0xc4k%KhUYin*>~D&IYe_OuX;IaM zlpcwub5tNI#oSa{)o@y*+0Ls%btG0v435G1$U{q`ApT zO%x?)2nj?QX~04e36eNXyd=($Sczn_V^*Hrx8xaMh|&F|ZWhu}#nN|@gTWLJqSQ6Seq~Xzf|!d8k9eO(~6m zFO$_r(6*F3P)Z+a6Dx!y67azC+IGsP!l#Q-gAB zJ+_V<^$2Rp;Q_5~0>%`h)EgBNl7(KzLTlWKGFM=-%*$$OA(O?C=I}9%B=ehqjr*E3 zbCs?d+CO%*lWGJO#>$4*>YlYV;#@+yoo0V@xRX5&YMqIaM)-*X{bqa zPK)il>6{Zz3yK*TF7qinFWHv!NpnC(HqHFB86&NvS&y;vmU9I&vh!x8N{y_Rb6xsm z{dKJ%Vq2-s?Y9!9Z94NxkK!qF1%br&wJcGi#Ck|RX`wAOWGrZq`Bu9~YatuWMKzoM zBHw>_Py0h3-~`!_U0?5x-fmcHF6M(`465goY&*>xD*ENchn|0)0VfuIN>Aw=7ya!9 zPIurpo8b5!FzwY7Vrd80heG25AH7THMPvGyMA9;o)Jgnm5=mYk%&4hMFik25ZCAl) zqOy4{sh;6dFj|_hkFSb}+wF9t&@i=bRaaHJrmSM2YyDKuYhM8x6b?rmf2|t%{N!4r z+8PG`w3RfibJc_CHIvv^DO26xc)2!`IHFQ;+q@nJhc_xX-MFeYNE4+xMNoCmUJ>A$ zl9_2Vp`7>+MF3ZwPhIu=;GHG>g zCc~VUn`>ibhlbL&;v7y@BBUCj$)yQ<6- zTO8My%T(5mVQvR;A#-PC9o>; z4=?h#G$+boW=9+%zq9xmB#*O+b}s4L-J zL(FDgzANE+Gl;&JY(NP&O+hkA#_)wg(xv0#+xA4O9fj4Tpw8x81c{089m$ArNP5+7 z+kWWKN8W#*I;ER73MPKb&+&|qI2LU1U^-pt4mXOca;E1XbCYY!JMnr9c=WFJ4&&hc z7y7Vew#)tzh(K`t4S$|`D=~$;UNj8M=E8}#ht+0y6jhv7O#nXa_?$YnYs$odGcnW8 z`ZN{@pWv|tP4&{JSbKey#m@pDCmVG(ZiOSsqd|*GPDjVAK}#9s3N0Nj+YU_H_;G3~ z;IixhKnsDwkMS{2OOe6+5y~0AeFWDn*zTRg-bMjVJwpRq zCx^A`^a>DMKI3I$tynQ#hua%3`ZP=7=3V-D9L56sA)pi8OPze8AWZ*s&J*#I?_9+< z0Dzi=dCsKGXQs^@b+U!EhIq^jfWoEA8nyZCbep+_(!kId6?{z1S)%|=6ED|Eg$5V; zSe!WU;55RyfK0w|THmIzjs5LJQl{uRB=(!UNF2Gph5iY z0xB-TJYYV)=2QJNRseVyT?$l}1N6&oXz}Sc{5U}mO1Ml@L!73b^O#Y(yydJvZs6`? z_<;hFV|Tb1mxRflMPf(|mtFg{FYLqvV`(}MAX6l+u0s0b2wWB5(#N#h&(hF4MoEt( zz=vHPDvnTFMG%)(5pu` zO3JM&1@pLvshvz<0ZsR8Qv7x{9G`Ey-R6LL#d=tz^Eoi*^<7n=rctLj1@1#X_27bY ziMQ{txQJ3xN|VynP;gfRAKk1vxQjS^MGs!lBV6v+#`EJ`Rb}H-j!&cboa6H-K9LMb zoWu3@5>wzKN=YOou_+B}a`<6WDo&`P{-xZHH0obgalb1YpVTh?!F~6upNi`X94GuW z@j1S}hrcR*-EM~^$O!Zi)yz-6Wzjo+Sw>WeKcW%J<~&4MJl2da^9Wy3p0zZZwSvd4h{u}a%P5|UiAt%9JB}~z zqV`}P9HPe0>Q%BvMz1JVspLuHlv47PaY`jARg|)G5su(tB7aBeJmtG8n)6*fr%8kl zl>!f|W%7`lS!WQDOG>U&ig|%ow80ZS{KQ!ky_+QuZ$;4+KMGXEj{;>}OlIRthA%CA zx1x8A;McrOvIc~KAN$Zq{LaW+-Wi$4k1@>6V+=!|^V3Lq^cYgZ@y$5i7EmP#^*AvP z%=9(K*Cw94Z$kLG?_iuS&r_VEBP?ZXJbxi52PjrwHA(RSrtnz{6`lHM_=@tU0TQmG z!&`Q{Wl8f0_st&{ z!yen&s%{GYt>sty+nuda#7uYrbzY}(RsX&24+}Cy&KA#o$IH)r@WFi-`@+i~UcCQB&i3MSuezw$K6qa;z3|e9 zo_*#e*vo(T{?`_-J@f2K?_cQc8@#>3zk)!I|AYh^V&7ays_8t@9(2Y4}4@0RQmGF(0V^b0RNc=rAxy_em~^H^TjP5nb_y^nB+U$*yb7<+2YaDf|H;|Ee+8bY0s(Q5%LfqPT*%zFW__!}We`Yw*)3ZdlwtZCx6={p$E= zv^wp2_O#m^2g-Ss$WBNan#V*-qdjd%+71AE34y_u?2b_n{M=q`Jk8gBst;cKpd)8p zdjXb+&hg`|i++tnKpaCP$8;?e`XKlz0#C$Ycg~CdWj8@L{@GzQ(J)2FLpOxe*K(+Q z**R5|hrlh6=Rf$&^AG7-=a+cU)ac`aA)!<2kNjYXKRpC4n#biu`*8D#HmqvEB^-&( zg&PUFmv*-9mRD^+U|{g^Ja#Q^@40~m?-3r5u)qN4ulF)`@aU|UH^$~P^{}xj!VqlC zc||&kK?8GOL%K@-i6{>eFt3LVc$|0FN0txHUCYSeKx|Fj5>HG@u7JT1Zy?KikVHQ< z4aiy7!NOQVl}S*iP-z}II1vD0WT0dX)C4q~iIAr!SR3-*OZe3E(7DNlwbgR4RKYd)dOL{hXl`-69(vm#!X}g&L)(Bv5(la;F6y)R%3+=fQ?*4HQ1!D-lF${%*T7T;v#uYPY+f^FUJs4Bz`ST%}r0`LnZq4_}={L_KQ>;BRq@vPrm(5Q~R=3-=O+ zIu(Wwcqk5F-Zv#R%C7^x^oK)4`q%J|x*GwcR6bEH`_;3|w&mX$4M_ zFbTTA*`=^h!+en~(88TVZ%X?{NdCDF*XGSc2!P{SaX~Ur6u8XuT3afPcZ`!g?4S zwT8inB^abAYW(H3XfPp(v8jqr56}gxO#bCa7u)YapI-)JpYg2bd*dlpkU^9?$BbXk=6Ou?lCfsHx@=ch3urvN#Nk;N(ngEfBrZ7Zca^Spy;5#b0D|2LV-e`> zt;m<^C<+p%7HVf}EIl<7 zQ+R~$S+rCrw8jU{(JD^u@=1=>MiK?DaM$7Z{Sjrpz;7^P;N|@Roy-bCBf5}wq4LV~ zsLq0T3y_*!%{!cC*`=O?Iudw(3l_s+cqDRu*SfjtTax$Bmn*|-khUT5R`?E9Oz;eI z0{!BAx!G!|p8X=dKpD)1K-GWG{mvgw zUFK~?!6@kT^|S+>{gKlgcN2o|g<-i&niaazzD3yP^lPzi<<%-Db#BfdEyBaWBv>wQ z)0?G}7gpz6CxFLQH{MDM`tW5J(Lmo}Z?`lQCYpgTQfTe*f=p~4@((nF(UtF*WG07( z0_g%%ciOb@q$eq57`XDlQ`pl%E0w%GaOi?zfLsbf(}ZRbsBS~8z}gN)?(W>`wOSF)1CtAtc%4t*ubss zo)qF0LQDKW1Qw}-Tg`_ncsr2|e+=yyo_LNn{Kkn0gTuw3~PUa(?cPi zn2VV}HaR8iRHmNGB1$0}l3s%iH!K110Z86e+iq6vzV`^{_lt~K$Kk-{Jd%ItCLIvx z)N<6hpbaip9JO0++$y_1^LM{^25o4f3ri=ob1?h;1O$LLxbod9BwE@#VwKD?WNN+`Xk8FvXSBOPnkH`6w3ppq%!es3HmQ>hmrH9HGm0@ zc$=5(RC%ljThA9_RPcLlmOU@ets-JXTh_3k42h?b$#QkQR@STYU2F$sS1#G4dFF-t zgsHv}CVRd61O7d;LaRiq|4ilBO2bMBPJx?TJz<=4x^H# z1SK5b1dfTCfPebiq#9CoA!&AophK9hBGNaOw{P{g5kw(;Xh8^!Rc6zXcwUDB=hqN zX1J8a4K>6YlkloaXq{Ip0TIPO&KnWSVW5X`W8MS1hevHm71j-`chYjp`{GX7Xs>%~ z1tGy*QHNlJ7@NSEkt@@=+_UQ4%Zo~=HS@cGQudMs%T8$IXe9kWpjn8tl5VwGEI+|6 z<7%Hnl#!wY$4U%&lL`_JPbu$s9~dapt5D{Bhxcb4?yvif?5=Lkw`;#s0@ETcS4QEJ zI!?Gg8AF^`u_N?$se8x0R}fEf>$4vnEdzC;p5JGZRj#(CW#0MfYJG#aB=G~NuEfLY zB+7g5BW={x94AOetMH)n$j*Z*f1oKi4496Qw0f;a_&3}+fnXDt> z^_Y0+RnRabp?!gR;(_xZ5dt2DT_BhSv)HoZjyVCS{;J$Sls? zJhZ$g$GRvjNMrg35yJJ{Wm{dUeI1e%!d^96x55rYmmY)QOtO8groChR+h)9S9bSV8LhU5i)0>c5kUcB@7F84v+G)^meD2|nCAo!deA!e z7wKkw=lZ|CD~y;VYmC)7C908OnpJzSmH0g!bioUO_ToM;j_=cEeH2mN>gSPBV@`haT0{- z#O|6UwkN=E@CFZ_k>CML zl>Q)2hQe=U-$RHGhGBh=9iDscVc2brnT_&2i|s`$7ZCkop9A0x zX45e2EJX%7e_M5;1gW(VT!17;_AewpwA7S!F%M_YJ$H&l*BhA|P&X|J3_E6Fl<`yS zPRN8r;(#2$Op(|r(^>G$8gEYoeue{RoPg-);-#0$SaV(-j*nbnmqRL+8$geT*38Dv zhW3ToLPR#U_XWAw&nh{e&;!nkv+hbZ&-M01+KFLrU=0@O32`?E2J6f`N#jc!)CvtP1Uro4$Q^yWC&3 zYQqiI#Mx?{!jh6mrN^NFLH7V?eS+PUM4?0vY7c(dE{99>ZtTligzn(b3t1oZ&pCRr zYVRK$say^1S|fC1D_bKZ*#y*$1fEyXkP1cjIK(GgH@j%pT%o3zBqGOrPpT9%TI+=# zJPwYijvgmDobPd1QMZcr$RZ+bAPj9V=Az`=&%oblyBt#VxjkrMhd_BBgx1{&Nj`FU zL)%CXgnT$Db1TQ#L$_NF^_9_uhVG6Xeec@UtA}eROt>OH-i(#ZzNpDLsCyGbA{Ah#NoU87O@DQKj00jxe5?62UKu4iAgUbiq| zv6wAJ;>a%=L_5Xc=!}GjU_pVE^{V;3I%I>#yTay{7ue6~Q9>dNO=6ZG`lV~y?X5L8 z^Vx7%IBK;xYb~?zJW$k1#EGRy2qWp3g`7fp+xe>vysqw5c<DV)q>!ovcg(o=M1DMtTmBc zdVMS60+Cf*>Mc4@3u(rky2T!JF=7O42~dZKx}YuxV*?(mQLHklokITY+8w=OhnE*6{quySb7 z0~#u_SCOiQ)RAjFyWU;}?{D6(R+EJX&KR-1o_Em_OO}BZW0GN2l?dwCa;)=(Aclyv zYen!ACR{~&mE+DK2n%unuwK$e&o(BxU?3q;I2_=6c`SL6kq#RUhEfm2K6`zBj_j&w5+%n9 zhl$)KY3*oJy`OPhys@t(Z>+$nJ+-DIcLd}9rY)Z=St%j)V&#whEW1qkCVP_1yL#G2 ziG!os9P~9fJx1s4w68~RmxZ`6++S{A8kyw*!Nk}F0)@KHM+kZ(as z7}5kxxXI#{Z4k>K=*t{>Wtg(2adV(c;Jt5{lE6gkgAF%rHy}fhKiP+C)ysA_$&BtU zF`^$!hqz7XNx!G>EO@N96E44W+%ud$4x(A*T@$^pxty`WnctJoNu z!fMf4bG!4)Y48r%0dbI-wEbaw?VUEoS{TuCC|D6-+|~^SCw6&<(+cVMJR*`TUIZ)- z;I$tkDVvG495fkU2&GGw&PJA$Igo~-Ap;bJccnmO$gw8I7z;cg_1W>yTLjnj5{=7hUPtR*cLXV7^tJ8J*+ zU^tPJ&h#)2=2@NZTm!o0?U;8UGse3TPC8#91$byZg#wZ&xk7D?gq_^rSFYq{B$6aG z8_qB?H5>hS0F`?iEkS&);Ih5*b|Uaup-XwF@3=(8PHzr)G6s=-1{d*%+<(O79KBil zbB+95&PawmAJ!X9XEe_Wj#%O(9PDhMD|s_ah*@_D^SuO>|+&GtgHSE77z)gYkG%?wAKPP;U^HJ+_U5j1Sz z^hYNKXd@P#U#3e&n4~BNl$dGy!3P1wSA-&A5S){tMPqEMM5Y(mGNH*0o`7iC~4-ef2uE)x4}1qJ zoe_QpyG<3A)?(Ou1D7)Gnp1g9;gq9~x=lvT`OxlEQ_N%j>W?bneLsCbPaH%&*v6w> z0$!n!E7vf;D87CR45S0_Qu3qcQ1Ql=HSm>yD14B(%U%O^@Vrw zGJb3E;tr-Zj9p`FEe^$s~7j zawoZynN03IhfL^SefDH+yHJ7WBwKU7_1Rhl9y35W|TTu^b2lXR+k+|YobGZyv+ zEkpwCe0u#{h;X)3;c_+piybH|x{ai**a~Q^53pr9ghawsC+(r<%+6F*V>R|GQ%1A6 zdisI>h-Mq~rVdG(-L`M*++zjIwmcdq&Yshyf!gi8NTf?a5Y5g2DR- zr;pBQa$RtfXUgdfSPY=$p6H8Mev^S!qdVo@9Q#ird2WvO%}nr%b#l!(AtKM?0f|8? z_;|SQ`9Y^96^Wz}sYDFC8;D6N_EOL6VtUGfnA-7;C)~E)KMSty(ZfN4a)XHq6}P2B zPPI9CdAqhc+|O;9oX?n%T{QkM3V*Ewa(80sdhMbNx;FS=s)wg2{>A-LCVh@*UsOzU zy8aD}yU^H%lnbNu%Jjje9R{Eg{qq|m=fV4es4`N)G$mPml8bs~mG+LM)zLLPEf;)W zUOPAX6Z^&Pb)+enXw75`#$jhPl#3*jpBc~VqE&o&`KxLH6OIUlBjyHuarNBdU^P08A>0JK#$&)2cR=VEBQN?XA2zxZ+ z=BVfKePgGJl#^Tf!#rPVPJ}EPWdB#6Q#^4A3pWmQyeW5Vm6jp}Q$s3~Lh{hlhe zq<45txlN6?w~v>LOK%kO@Mhn)Dk&uyV25fcHcbUh)C&s$8kLIHL(C zIB7_wj}=%dBq_NDr4{*>dJOvX(^8ANbKHAg9lfb@VWb!UmY)Hr&ZAdiUNlTT5VLng|KXRiS5+0Zb+ z6(o$#{uk&*nI(~~@~`TvgNHp;Sl^Yw#e>-!o+#mB#PFLHA^EGW^{6clVxv8T{^p4_ z_-NmixH;SKmg)ywNvaCulJ! z81xVEBF=zt@fe{!#;S4}xuBEV;;sYJD*U1?N+`Cy9Y)roa>CooF@iAu-r*o1pLtfF zd+l0J^|dp~XDo;8>e=zf4O*@(2F8Zk+QKVOjiBQJlD+vefI0)D|p0Y|FIb ze;nv}T!hn6LR0OTXFbY)PR%Z(NRyQPN7bo%nozoi$z8(;a?Q5wbJ*PdD#D>12L=xO z!WGilI$dD8qEERvi3fO`5BW){TUq!4w}X0dDoq-x+ptKo%{C!bavEFK>cOG9=-`jO z$Q^TPAu_4BEY6%Ig7K;DQfTT^5*;u;(agZ9i|}5juhC6;t>$y4!Vfhm}Ct*dkdcf7hSCo(0LkdvfYHS8FURO(1SIf{F zBbPKnSBrH7e)}jl-)6P;KuOrp)pqwK0*nIhMW2XnvU^>CMlmZ!K@a&CYE4G*TW7_vmIy>SLjaq`d1#%5`o*K_lZ|!L5 zs41RKbkfW*rskKNcRC8EI}LVsw9?nKT|z=@iu*|$k|^3gC`alaAHrztZ|mD|fo=!3 zTj8F2+YJtRz$dtGoELTHJ~zz0^l2F?H6RdHQ9H4vtCY=?7md-i@v* z7GFPU7asBQ)PmI_#%h-IV={b>V=xK0?p7_azR4|)oc(_mjy*e4@Q%MzWVd;K^YAZ% zT9@>a&V2AU^q=^G9CMF26ekwh)U%qu;Bq*l?S3KPed$lGels?|&_A!f%+_&iK7DMZ z7>&C=JGt3^S>8A;+{`OQY1+FQ?k{w@b%6~wLq#}CYWT;l8Ry8?Lj zo?G-7GMe?c--%@rV2rAhN&e5~^!K^PY9 zl4ROPhNpN#A4p0stZS|ANLs>1r}s5n;QDG#P^3Tp%f3$2Pe)Apc~Dr}wSU+6`ywU(GfC-x_3ay5^`m#w)Ytc;5aP94cHfunpMTOw z=KrN}b#sll{+<_c?*HfOqtW^&|EotKWA|%yllDSQ2($JfMmuQa$l^FDYM_@Vw${?3m?I-@Dx z?ISqO@42V`ar(OP@cA}~zZZDY1Kcwl``_iV|EREYeo*M99r>F`yfL_^{LI+@Tf^Y+ z^+2hAf2#C}`sXHDA;yaN^NVUW9?qP&@AK=S{Qd{&*q~R9pZ&*M{^;il(f0Pm#!VsX z73&!>XZ$BMf9K%l>)`I~f}(8f2DHzuf4A?=egpUJbz4B`r%T}0@zeLF@4gFP=VyxI zUSRPH`P27MYS?(V;uoCk?F_$yU^frs!P%5T4$cqN1ck?+gZn737p z+=`!6z&GjlH>?2@pWpq<53r&PC>RXTe>TWUQR)Ah{P#cz1Pvr<^jp@-SjE!F$${>- zk+X}L6N9mpoq?^Du``1QJ1c{lDmV}@e^Z*~{|!U-|A3*lF*9@cUszE8<&rA}e4`94 z2#}K{6cF?O1M8n}7A7VJ&IZnAmUK+?rna{K1AN)z?W4Nf!pWZuX^O-`hEpygTH2GBF+DN#$c zY07-uPm#);*_yf52ea7s(+16dI=kao_g8Ler|7r2qy3*GNCK~RhnbD#pN8k18}uFj zo0q=64K0v%8a(K)MBPVO*zjs09UcD)kwE%%@%%0r7)HIHRn{=N+j^eDq&AU$8-UIWw;K0<@v=jQbXPp`t z!HiL@@^$016AiHcu2##tU+I>NbcZMEdyn0B>SP9e0AQ8qhZsEG>KMa-V^>{#&VCyb zo=x~0^frBtHr;>w6R>{vHUr5BT+s#d{mtfW+(82B_bc4ee)ZO$9d^>tlbaLh zh1;JDW$HJuH}8nLI5E(Zp8G&9N$s%h_RlZr0f+0|vMKDxq15>2L{5qBI{Kv<{~%;? z_>4cVnK0Ml&&P}Z({63|Y4P9{r6kIIxL~4kK)P_G!DZms`NQrMOSXqWPI}`WSp$1^Sow^DT?18S?ymZ!h+g zXVPh(r_xm+@79!*E_|n*QuZna0aw6!N=_#q@J#v6X=x#Tp7)_m_uS2Q1VCRE485w{ zE3A?82AZOtw(w#2cabC$tdqY8M;UNdaR2F!i8Psfy0A2`pB9nj!=% z{PcJrst^plxnHVRXCJwozDc=lCEaY;sXFE@e|%?_&->2R`wp^$>FR1CObsIy?{b%v zLm81RE9^^FC{{67h`x3LC?ARSr}ic$+`5EeXK|{7K$QJfS$Ar9MhGEN7(kwl7|iz? z&Y^NFK|gniEmyXU)4qLT>=xd~)G{LYl(G$ee6Nf^^5i&D_QrWa1F7PoJdVC!(63yl zx=NvU*{pW9*9{3d>g2nFEKn+6GLJr3iyMQbZq)vm-v!OoG;v=t>lEpkdTIE zFd<{?C}nJmSzu`?uz**hVdBMBqVne5z{?P7bL9@B4A}>@oYDe5cp~pp?_HMpI&~Lm z#_OeA58+t}zbN)M;A=&Z?(5^(IBjk7*7|R<~8Rviv*vPIp)% zd*qz9;XRGFS9=__B%uF`?(*n+g%GawPFcReGA@FRi^b8>Q*G-!#~A3RD52q7ws#{> z!z%hVn6977?YaX3hIjDP@_4 zr;NJ06&4Tu=YXOfXecZUn@^A_z=Uy>gCeO``op*ddw=LzM(aZ!tN2J`BcFkdt8{zK z;6dq}EU>3ph(W$mEF_Lu9LTJ|p_DGJr&)<1-*0>qR1u>JkbJI}fNguvO&_{>E9Z;`vyPm);$ z=zDt*vETgif5;ezdG#lI5RwEtHBQs4Jg-eC`$W{#-e1?Gr!@>*`=G&Z&~{i-oMyna zP@Qt4?`5o|W~v@YXRd*J%|}^eO$T8J37`TJf_<_DGG}CBeP)bVZnRzlC$`h!a5e$6 zzuU9G?o<4<8P1*C26-l1N;C=qC_9*1kVxUsocNMMn4UEhcZ0x+{Zs@^saqQZSfLjR{;BgSgo9yuYoF5z zyzg&neqfohx64?Myl?PfwNG#Hy$L2a@I`5KH)*pGY9{`T^Q+%lpEiDHx<_ zQ^Lr|s{?3bu9CB_En_$fZU==VmWC%KMHIer5_(rmd4@JqYKu+BVGL!kIq}JsLI+(t zl7bv~gfIzJZxQCH&>?mRedOomQJRB?UI5m&)^9_O$o{yaX(pzyRr<3P)aYU!j)X;x zIf=uyYd7g+sf z_Z6q>Vcc!rpA??qQF?8i!mZA%GP+=j}5Hn`NbZ?St23h(lO}~4GgV3)vR9cJP2pT~C={I_1L-q&7 z*{=#%AhqC-T(f9nCjVHHsV%@HNezMP6Ht=nzC8Y9&0G&?l&XTKqz&S#3QGmQr6kxk zW7VEp4K#SL<~*)E=)lPsKd3g&9!PcpwY&jXR{z8a?f_m1h6X!Qgcr$Y>t>4oxTIXJ zj}l4Wq0OX#>V1Km;OyX05xHNu*4tRNmOL?Jeyii8KyO5n5;GVItT45op!<5ETdg$n zEM*bjNpEp)wfTa=9{$q*?9{dik8CwRyh}I1&y21pK3pY0&3O4VY@D`2Hba8*m((Q7KWDWj2Gz2<3_;{>hU@vphQi-TDHWrdMsONsO$D@ z*wNDO*$4-L1^y|vml6X1#0G$e!KWQ)7!|$ZCqq{Wi)lE9(wI{=3eg#d5z9$YHWar1 z%VsXUS?grj;JQFG3YBsogVKT)gb+5#9U$Zoy4!N)oAv{dOhZeLVxvqe)OvM7ODF$! zN}d?Tk?WPehaL4aW5O7BH;fd1#fX;K_m*-5_W@Aq!|fshp|qn2_+;&&Ub{O?1>YhK zg`0nF#2VDP)s@ul&eoml2F*%K5e-R`fp$-hoW#rD!P76q1p}#ziMrs^T$N{F)4fP)272TRQ==G+- z2k+lO_7qTs3Pb_7GeDR5U?Gj`;vk~{RO8)F*C!$sL&zU%$LzGnDijSnlXD8y3U|1F zf2u3-yDq?r&MNd}>c+&Ewlgq`2Z4?t5P7qsRH7s4-{!edlhj_AL~oJ~Id92==Sei~ z_up@bYeKN?Cj30LCo2eSaRT)@k|c^gH1AL6D?at8Jrwoj{TY5=fxPZWw5J_i51p?5 zefuQj|4GiXupK$wU3B)nFAsUDW5ShU5dQSRj4i=r?kMfJ=yG@jy%0Nd41my&M6bde zO7=l8!ca6Z$;fR&(xEp>h6#S9#>g5y7wtHgxmCk2Uf2BL$O-(b=@(q&v*btqT?Har zoCAUU>U1X)kj=kWfm9}bM-v2qysbpfe^wnZeZQmHfn35I*62Xws)Gq@`ldc&G^QC< zwm2x~w<90l$V5CrHc=z8xB}_e+=P6sBF4#24n@^jfTZ%JJ-!iSPGuJ$eHIb!j&DGj ziblas@qx1+BRn*@4h5QON1^fjx{igiL=4&*Vum0BU3_Ph`@4TYo3;{d1%nGJ-Qg#D zQQmwGo0x{xB}ajY!wh~cueSea3v5R$F4D90Yu~2}%OSVDzJFm6Easl2f${j6vP@XO=RLV1q~BLr@vW`KVwMw-Z31c_WLt+0 zmKX5DAK4|t>ze+_F;U+$PXh~LKeRO)mCn*m#{h!%U$t03t)&aIn8|dcsMM6J`ViU& zb8Pk);)pOJujKWM_;Snnjw=iG5cagvf=Lh+VpKF!r;Q?-Xi>gH|K1H{CEY*e;$n^u;N)_u4kcf zn`8sm=0mrMCL{DDn2NX>sBv3GliYz%K&n|>F#OHJR1b79k6e5xM;-iQsw*N4QgKL$ zw#02(EAHSE0nkWo0D+PwQskm=%d@%c_5y<}L=1dzGYPlF0!scw?%v>l2PVZd84V9N zo)-c&m7w%yn?@G2v)!9%hA@V|&u8h{Q?`aqg0k{#EM&jxD>wPfK*4T)S7w(h^l4voh%bn{fb{MCz*P%g{VlwFOMaqRyx@;0=L$$0Uxw zBNT;1Z1Idb0fx5F*s%vj`(n3Afn<=iRL|!|P`1nA2SJ{GO0&T0-$=H~PiyQkR*MEr zzcA@0>(#xZ4J;4^sGgg`Euw#|4@HmszT7`Pz<<77HGXvCuFv#&z6BfzvrwPeV-$-G zuGUcM2a^v;_ipIKAVYRHW0G!JvoH)yw!P!%TZ1Eab0aR^gIhtdMY5Gh)yU%Zg8SZy z@Y*pwC5bnLHN!5EsrSiVQMh4E8FF7}{Dy#`@Z+*#L0FkK&|*Op!S?yW?7@){5G>W3 zpZ)AwbXHeFfUA|hVr#I*M^FSm76V7qxWf@e3SO1!%E)Qs)1i}&*dD%xUX%V*rn|Rm zEfm2)c1`y#x!c0A} zpC%%?_;immz9Jh5RnzqW``v^YZ!FIHGE*F;k00Q}gLy-^u^}og?L;xtk29=na)92l z-AHB4_Q7MG3WW|N3bYq)JrJl18l&F=g>ZoPGvxM}Lvyd*Vidf4D3Id~bSZDPt zS3a{9PfCKbP=M9#D2(Y!D?`*yWpRFx`%4S+bb}){Tj_A$kCg)weT;tgWlriZg3H>l zj(c8V$IWhqtQO@I(8UyW&Ajk|cxl89SuIp!#VB!PhjrjMcDZkrHmP7e{-KY5VL0$? z8w&n#7GxA=dBa|5*9McPnq#P@2t9Ca>0C!FVRYslz;hb)D^eV=HEXra+$Qnl5mfrwDO-v)Lk|XoCV_| zs-hPjpn)fXD?``Sr+F`@V81$eXG4k?wN_xv6e&8`y)XA!R>R?C>q9`93mM z?+n5ucN-UM@PeG|gN z8qhY_Cj^Y+K&^Xc7BJ9_Q#+(nw;pa|HFjp_1~@h?JDo}{-A!Lv=C2&TiA*;U>PRQ( zxCZFBMrJac56gafgss+086WHbI zH|P1TtIC z3?D^!LSu7oNKuu6r{NW^)3#};BBX@Wi2};#RH3^1_5^PTjzTh0x5_%p5C(&1;xShB zJti%kAV~|qQWbhfl9#yC{okA&T{d!oy8O~}bvDBAyON3nzKcyA=jLI;>%rVNB|@f- z;T72jQgMkx=)&)(crq=V)*bJ4>iV@p*L8O249Yu68Dx-U!cnMbpQ8g{OV zIPvYpm(l**U#ky~C2?DF_2)z&*!`V-dJ$shPJ?c?yN@Q;^j;U`=%-k+hir!`Gdq)< z`Ldwt_(bYuCk1&!G?~tC12LJA2dW2>^}CjPZ4I2+em5utI1rVP<`eO{$2C!_(=L_W zP?#_Hqr=5^T&Wid(EU`I)gGC1>w}8~&P7t&>2H$A5FJzch-W_hy*~8ax?j9qht7}V zw_C^Z3G&^FavQG>pObPr+)mveRoQZ-dBED9Q-7zz4n|z+{h)kz3<@hN>@X|7g?vpE~Rlf~Z$n(neR}+v{Y$jBPjE&Rd1Y1qQ_Sqp&~T)Z_>6lo^cH zUoOaSEbJx~&(GoGLLkWX267z~#rG*7$X#+MmLhRP5X&q`tLww$q)_G>ZNCqro9>OxttEk-!#UGdT{g zp*+VO1dY&^P+pC&t=LpS2 z;0MKeFmexYc~05O`(&rclh`Q*CQkUnL_)Sqdg6A26&qpuw-wQ`j`#)`jRBxo&DPAMlFKjK!C*Li_?ZbQ7u)`a7 z&Z7KF_v1qif-(%9f3<@e^yuK}y7p=d&FrTlhkB0EKLStEX%;`79?%VRWt`%kA3d+E z%HB&xOe(**UHf=X?EePakhh2ne38?n4NZc(LHe7X?#is;I%P zAMwXrg^rNsDXt`mKvf=yi6>Qm=Vo{$_K6dp*_|+Vt1sMH%{#PLu5`^d) zgH9bL%Z*I0gz?X6{03BokfE?VU%p9726Iw62U7Vii<_RzGEszYj0KLg?Ti zRfmH%s1S%7dn4Y&UGd{`(GL9+{wTk(2?4={>-A0T02m^@x}o=A3px9zZ<%yv%U?v- zH+*lNMFtalqXoE?gQ8il!_VJ91USXx6G9&44Z**1ZTWGcM30A$Wvoih%Ks4|eWT@m zUisnR1r<*AH=ix-PC3z?ls9`#wo`bZJf^}YE4%uRp2lOIH&BlC9BFy1IoI}5a;593 z=}h~Uen#kwSt)q1EG4`WTK$9LL>&kZiQBsYQHEWS3%l184>x-NTC!2}7=JU$u%)TZ z2cIi*ra_FChF!2Ynb}AMJ}$N(LQRF8LE~xOP-l#BaWKqRnn_l#v`lZ1LkZ~r1Y>v# zWQtUyc9C&(JlK(eYte$Q>6K>k&>)u`J-6+f*6ce&X%z9SRB6$cc9m%&M$XCK`9y)p z6yfcx=fbf@dDA}>I+4KdQoRodFF?mx98m9||++n@-fg?WsTaogLiQ?_B6np_d_jS}TlcH@%1C5xUZU>Q4G$Nfmk!lL~j*W{Gzsg zSsT+`3AdRgE#^x%GHW(@}s0!*>m3S10oTzma2)cIOCdtZUj=~(FP|J3=Fq+U~{CX=SzMBdS z+nGQfjtCt{&}^IUht}kqDRzbjyqd-8S@)CnHY9NQ-~(w|Xk>_1)+RNbplJ{jB#c=k zAKX={@$oZM;^(ib#m5^wy|Px}=d&*#iWE6K%yzT>#C_!@V9aHR%ZLMq4Zm&z%+n+> z4HbMy5!3%Hc5B+McSd29!J9Te?@S5!9j&irA>#!6q zR|kpDs&T`GsR6PJbm0zn;9wU?OgvkB_+R(bS?gN`qxfCZ~K*ByzZF-s+)7Q6mmh;V?ck(+lt-E}g@VoI2Ta zMa^wDTX>}&QRd<6sPTS{4;sHZ(;L*{LMmU;wOsDI^+dBQvvA0BI)#2`P}lJc&cF&p zLH_%vYu^V<3B)LTIfAKYY=TDOkBsO>h*S6&9d)AA$`!5!*Jl1%^ZHO*8}M8j5E-VG z{s;j;kqbg{WD7V$V&#Lp^0H=ExuuS@LO{9-!pG4sD#`$#a`NDW2T!drZ)Ve-7N7adh)ZlILOn-b)zvfc@F0! zeQ%D);eKw8Y0xhh;-l88KEH;e-)}Y3km8%07iX4$61*_@$qO4SR~#wwxBMw zV8b}G0{I?PtEN!^YW)}@f$&YOcmm@1W4Dz`zON&dXHv;PX&qI@7Z?_aGtJNpac#sM zU&NvOl?BpIo(8p@6-oxl=%3HaryCi-F2+=DUCg!7SUEN}Ty)z?{srfl%%iPVJFoq!Y}8 z)}1K%mFff<=OBBNac*~x4l!im$jt6gK3OVtPP5ct?*t;n!*luvkc(D|t9bC^Y!Kq^ zI`SsK*W23^gZS|2`}a^p!&HCt^&ReT=ravz0t<(rmm}=)u8^1eUXQz0lMjAQ^z^P* zlGa@Vsz*XX9sRU6+mX_Z6Um@|wtEF1!IA;S4~T0Sqnv?S8b0S=L3vSs&}^LV!5vXQ z{7-inLRi$Se>BYe!3v+CbEt{q)pgo=c&&Lx=Vf#s_A>wJcMz3RZH7{hwj7Q^wamp{4)y7 zz%Jtkn{1%@El7;69%{D?=5fXe~to(cYN zM3qqb*Wjw}~dFGuApw{PkNYd-rd&^BlOXqa97N zS4g;5aJc835UTyfK4koSM>mn7=KwD9E!^6pv5|Ro1zmqYcMvGNXF6*`lF%IDch9u6cf1R`=VNa8Dahyt#A`c^S}Mp9L!L6nFh| zC1dMuzi$x}DEJg5Szu??Sy`4cEHOM^iO zMXHJq3n5dWk!|z)LvCA{%C#^`dIqQEv*vsHgXAmMe`5ljA|}=?62d*JZ+wHDSC$3J-x|C&< zd=h?8`u>I}Z48DA;4d5UB*W3Dw1~Y5JEX71>D$tm5^+LvPE2uc314iO@bwL0iVBCPk0i(*@XzA?3UzF8B2%fqmJ6*`5kn6crU%n6z;O*8?5;Z{6ad5c;qBtP4sRj`2J0C z^NTT}3b>QODnb<9jdLwK1X(m$!REQx;YVJ)AE6RY0SffF1fO^rS&+^UXW{MSFvA!c zdL~!2?FxpArUTDqUmP_Kg9@vY3t^3d3rP$Hfe@UdvwVmKCE+Qh35a$CB7?>zzX@nn zBLhTyAYpV|gZ#c0Xn<4PBHcSQNbf$h68cV%-TxhWhSdtf)Q>Uw1`iZAhMBXajyH2w;-uwOqF4pC0G5{5A*cptS@$k8{jv?b0%)>3{j$;2wG zBb13`&UFDLgsZ&7Cz1ep5Hi!iN~(=&ECe}^!pQpUf@0wb<%LEHWXnW(fs9r1`7eet5HirX(I_S*Wh>Hb#+E;#>JQ@Ky57$iu%R;aPLpQGx8d_M`!zuWX)!UK(N8rzhYz&0 z8X%({{P~c^9rXg9hw`pm{5V$?{0m5H<|BEp{ngQ;KfS5m!!^okDCvbLWD22Z#zA_$(6vYCKnNKU zXfdP0LIQNDF-q+!GJB&bWvpu&?d=qPqk%+<`OKu6#MpL$!`8G82^Vzbgv0n0cq@^; zsH>o-xj5*=t2^m*;ce;kBwz*pya`IM+hZSrjx}AW6HdloD(5_W6aTVT#9?<-P?!^g z!Q1mOpa{R_wC5UmgK-MLg$$V?sf@+qe&6ObB~=8@qAo4&E}gix%C~;O1=r)6e5>nc zv@i&Hn4KNOtCX2lvBRxL3@PhZysV?aWi2#z-QLYY1ypM0#60N3^{YiM9h|t?Iy^Ai%%#c9E$Pzpk|>53 zFrM-5=y7t7)FxTnUru5A7|s3?jU7Z~wIS(&<{)Zo!u}t*_wv9k>uG#+MwD%`aVt=J}& zc)YBB4bNTs{jM>DUNH=O%C5|PFBTnK#A^}k(>+iI41A@M+(HQm`A9F6!`Ja<_%iR? z$$KW3z+1dIWm(tE&SW_S9DNx? zt}T>BQwvXMA=pwdmAPi7h!;c_r#QI97oL>2iGxm8OKO-UDg$H%J~6Z!*M-Ac9^*n> zN8^a``` zmoJ|$&cw=s-T+_QR9e+utJ~d)ypcKiK#I{>bK*uH>$2pP;0dFRr5XFbOp$=$ofM#$ zG!lF=V=rt4^$otp%!i&xTl*`pMxS*0r7nw@+M6h-yIz*6l*hOuOOb-2oEx2rbSa{p zg=x>1qcf99rhPWdJR|3U{yoUNPFwEG5t*4HaI|ULEFtPPDah=4#DuAIs`t=;g@b*@ z1qipipkX|Flx`=EJG36tg5rGrHsv3;N6zxUt^tQW9zD5=&cWDHP;_BNEH95%P zpz^ANSsvB2XmC8fgh})zCL%-fe@QaXEK#&1$I_LUe@d}Xg4^@EDZqO$?EhZbj5sYS6xPqBOo&w>&>hlca z_N-VZRKzoT_IO6$#KkE|;+Z?eV=fp@ymg4EJT*J|%86o0k8H=AR<~Zsow&~?mAC~8 zRw3nD)daN;q1DEhU786IN-R(FVAqxJpAvv@K(5J2>#zo4v6=LJKAY?2*4jwYek)<6 zTNp(8keI*WPnoL_N+R=QLj;!X^K}lTNqRpp7VpzX-2hFo0Hx5dy21$7dq75$!N6jz zfpA|*L%ILvCfflIPWERs&+so_vVL)K2(kb}I>!-@gFe2^BTxP$z&h5KdDR_Qc%b|` z*@u4B<*eCX)F*k(wIp}jAnvb0uXEm6JE|AI{pKwomO+J*!{UaXp_E1fUmK6`5+GX| zYboN&R3}KG$8YA2j^R&6YeR2-+rIx8a@j;a?a5Lvbqp(f=Ph2UM;rxWN@LW?@XM~H zmmO1FTAVx@_O=jQ8rlGj7KN-8lwuwhTxv6q@?yO#GDUU;d5d1DPy})_ATSD@2=*;9 zBRJ(TG_H0ly~=Q0Zgrl!21|{v*kC6d3wNEkbywcKc*nCPIO`0B6A+rng?%OI?IK2A` z6a~8uS(f(OdVP$hKG5aX#Q95BJ_Jeu7R4l{EZ=(o2gk^UH&rVARZ=2Wk1XV@?sD=1 z?^#6JokzJa;BSfs%1TCaOa%ugl@O}^ov+YlZfFqg@t_bni?T*bJtO#{;lXe`=->;`}hm+|^4 z<{~OEK(*UgJ^2{WR=68i0AtCEY%JvpB-jy%fyeUm?|e>T;aSnd+Hj&_Q=+lsutA(_9pf3lTsOT{-DUERaEqxTvQ|vFnYH ztUTAg*|q#Pm&Ekz$D89ee?tGJ>K-E#hI-{y`|M7r;X~F7t~4>JIS5oIm%|sJ^fyNt zB|9R488;cq!GMzl0RkVS*QvEVfpC5Z4(NtTf^a+zz4MXAfULyWVKin{iIZB8U zI0Y?b&nloEJt-|MQrbwlZt%3Mv|%M_cl{b2xg;217qdrW-xXkVQNl4(E3_d`bn}}&S}xa&xBbT` z{73AVYrd)qpxGqlPGtOp^BCary^Ndsx`w8rV5^Qzv;&t5a_d^cM!fxlhQ0pDFDWYi zV#_OI=>Wm~GlsRIl6Ymo-TO~5Fthgj)sPOdM(jQC?lxa zS|~Sg00hsJ`Z!3WY_1_G8)byd7TMPZ%ozzDTd*h40Nf$mOi4faJFC~8&vJRopI5*9 zQh7OT(6B1NlUb7TX@$IWpKLn){U|^ArBnzHEb$B`dm9BZlGd9Ne zPNrOZaI=ozZvdcI?DL|F2; z)oeXI`Pqx+MYrnDwswmT{q&?6hRn+vA*m>89wpfv!hd&XL%fbgAWy*rqrv}rHNkol zVS^3tj2%h+g8_eGwjA`)Me&+W@w5xQkjL_V!zuvufTF6x=p;xB6Np4Dk)E5o$xSLr zG@`g)I^-fkeF~q5QkOw>_U8~Cbioz{M4~Bl#tBA2T(iIj>g520LXe&ebNw^H^a5qT zL6@*7K4EnmV?n5ak{XP=aM$hbN_1$v*1oBTEZ$h9z52Ubt`j zp8>gyYY>!@P+iE^+D$urBulK%51VBOfr@%7{~=`vL-ad&2Xp%Ad1<0bTi+U)jxGm) zWoi7&YvDJjAfy{HvQD~grm?s_)n1^k?#K8mD(|6I&WrBS4e#N4PTQEUg8A$V-lI@~ z3K|qyTx;=px{zqnm}=AG={zSW-m%Xge%JTHHbEUKgJzu+^}V-kzi+)|@FC2nhcqOB z_McyG#3@z1^!U=&vl-5o>%W^8k*B5jnA@>`S3(|c$a-(&xbsnCZ}H5u^GLb7?9RjD zObK6SG6;#A&D`65#EF6V<8AghNy?Qtgv>x6V-0~-Iw25HP={Na2v|Ib*qS0;F9aqHusYNqPh=a60{>Dm=;4 z-(i6%=mElJi?=xB7aVg7nZ-eMgam$p%Zf*(a|xCeOyKoyvPJ&G4KkU(6?x&Xm1gYz z?h9q#@+dujE!NbLR)?x#**|UBZ`WMz`FEcEvl8#4i#0@W)o14+a@~20)&OoKp&zy_ zF)lb65e-_so0qlh0>G<n%nt-5%hi3VNoz!x08_O8Qg!qT!a|eXi52!rQqLWWU3V z^29Vik_}!7Sv9q4yjSd%PxnOYt@eYy(#My5?yOKZVNUn{4N9=1CZre%^Hn57+F6wF zN%(sq!^J=TeC=&ccl&~cA>EHCWV8s?EztiTQ71>sA53sEPKdYJpmxT!%XJ-NNKq@a z+OZ()t^WXaK#9MUMT|=n-e@bWL`x2NK?ocNMrqbvk_4yrj_%PGzNk^OBdB=E2FmGp3TTr@lhI z(m)Tud5sF^@t$CX{6o4A0$3`=*Zd&mG#_!!tP{)n$xa{TesmX6LTar=KuWk-p#){u zpDs`q%33+^&xummb<5fSLi!la<$ZoU_~g11#^GMdIuvV`BYY;U$F=7{SKN>OjA9On z25*27%laNYPb?eap8Oem<9rh4ORZ3STr{VgGyC|mA#7YI1H=2CEajq?rR0X(OtRWD zWa6Ga58WFBp{cIRX+LFeVLF-pF-s@2$KV;|!SAwkTFD3b@qufWO1j-ZI(5)KR^S)m zqRc&0L5feG5J)pQ)+3*^FR1@RA4 zGVU~w!VqPjDzDx?8xwsAmDfqxED9yCMJO~rYLGAN?m+jq5Hq~g*+DuCBGdbu*rYvEW9ID zjUEQ`!&k@o?j+ww51Wuv`M~3gU>eBt0k*Ft1WO3k48WXJ4D2d&pTm6KzSl=kH0GlO zk++X3qE`M3s;i#eX8HGuyb~Gi$s5&o%i&3Zeb1}`>oqfAmzou^t#o7a%Zo=*`R(F- zPmZY`(hp4XV+Q`kT-}lxNC0>VVZQ+*c2=Ti44m?h1ce2pFc6ZPy7! zyD{*gD8MTUynvx20abrz-Wk``it6rKDV8;GUY|+NDpsFhUVXWI>qox-ku1x3}TmktNO^fXw7OQwFRuvuE)c5GrIMbO{D3 ztiX_kC4^N(C!sA-N}))N@K$Qy+(w3Y(e616!A1jN}+IgmIO;XUDr`ARc4P?XO7gx4nbe+y;)jjwE&<1E|# z=NWDKoH8Gee(Nrr;a;6gYhmoC4QUz|<8Wk1{dECcu4<$`3bT z#HEF{bv|%SspUbh`%eYI8FQfQPZECr0IkRLi8Y=l#eCOA3~T3p2)vQSc!LVo(!AUR zC`mp??K#WB8*4Wd2{1Df&Wr_ShI{I9nvmUVEndItS1>b=JZqTqvqGf909& z{}sBJBKu#Y87cDP4`k`~e~S~P>55{Y?A@T$Za#{ba!6n`?xpMEMj7_oO#14MPJoVV zeshu;<8>%Ev@;*%3P>zMuYjel5}g4nkPjW{&VZO$)GA=;5C8#7(x^d*N$+ETZ7Js+ zH##Bw8P0%q-3jqNiOb`PE8u+$2l=_9_-30QW0eZ|n)7!)i^f0l>rqCE3XVdA!-p-roD2l%)|5Bsj7$Pu3TkeZ4q@=Y z0@wT=Ex?+k0ZkFv$v;7-1k$Bk#q>{%_AX`gilLUkRTc7$27Q*IaNAK8XTQ)ic$@+& z52DJBzh=}#N9uZjlLwDG&8@hjC7Ops^FhAmvMF}%XF*`6C|`C;tXVO`RKfictiXDw zbddX{-%^KinK$==QA^dzVvq`uT6%y3`I;-UL^Q$^UnA4NQb#6v+YHgtqjE^T3HMX@ zK=;>#z)8qB=#)kT%Lteiu1nC=m3o9Gbhtn@uK8Xu?#2 z{8?eo&~Tl)4U>hTc7FF4L`}1GohK+-tzrH&*boeZISQSUEed?Oc^K`{jSnDzwBv)O zPun68sAvHJfE4VAbaV(e1VTl(l0s7@kCb1lnoM=4&D#o`)mHp+K8(_sgjFFSgC*+qQRp8!9 zsdmh{7=q6_cxIu(cCYc zj3~Qxq6{mB^=~rmeJO~9pJDC4XHu>GO0yacBj6E*gLZ3(!eQFc+V5tOF@j|nt^Fu5 z8Cm;Lr=`h05SZ%v>SSPT(!sh*0qe<$_Wq?td%ukwFiwm%1bg2SME$-4g*5*(v!ZEJkp2T` zcJ+uT&3c8R1gxW_V$mUEcs_2uVRSxf;12GsLBSH{Yw#C)P%k*n2fC1b%av$kQ1@}H zyk)NtIF_yKw_@nN)bHT7p5nZ>V4M|mLCL!Ddy7)nCBk57c1&{aUd821Bs^VkKC=BwLSv z%ZS&%=2OP&e_%FlkYQ-Ls!Ty`JzifA>DOh7Sk$DL!Q9rkfIt7Ji51YdkVQ3_!Uv9) zYmxfArPY^8i`37`K1-y&VvjM-v}7ys`g=`=c>S5Vlam-7y20&E%W;a6?h?(d!puyP z`Fdu!{=J_$T>m<<|76k94$Be7W&=j#-=xKFvuOTTP#{=4fNtL-o68tq-Yr^Aa^7EQ z@%+fI3QX^@kRd!3t;W@SG-*74YVe?^K3ndl4WAeqXe<3k9;E$M4Hd=@3X#>j7s$K$JS<KWqqQ85?I9Z2h{PwLX#Gsf?y(&P8t z#`t}O@@~NR{mo~L-@nHgzkiDozYqBQmN9<+n&Aof{L26D`2DTv@%zb%@%zUW#(XYd z>r&$PgOkSZ&$VO*?xwWB-F;g8{;phQt)lS#50tg4LtU##^!J@1YBxcL=@03_`{lz1 ze^X}sepg2L*)A=9KP88UbxF`c!WvBW?kjlDpc(ba?g{bxDGK>#L$IUGrJineN+&C= z`y6OG993hF;rW=;GCEz zMG~D%#rnJj*VMQgZg>dR#40^L8~OPHE#9AzH(S+7ivKdQ$2E3?L`eRJr4L2o`a+P~h+rpj`V^UXF!`)5xzAP(^K zhfmlB>)E6I$5=FI*Mw;Q)=@+Fv)35@%xCG*n%hacm2F_lwv)R0&>5orWi{HrkPjRO zMdG7ukX(FOC->y9aKb6xpYzqwPaIL~FRH{!n15Q7|Lubs{TPG&|7-~Mf7uZ1|DYP| zU*Ux%|Bflf`{6(cV!VHNAT8eiCA7q>2gHJ1P7EFZNu1E8F8awCFh92+#jX{lPyyu#UXIK$b zBBeu0FndZ)e4>|YO4AY9*(1?+FHaOW^s7+`<?B)X??HEn75nr7d%a6W1eMWw(#`4Q&h~@thp4&Z zOr0n3SO*K|=X^iR*0_0MB>yx0I$^C#i{xiwnKZ`_&l<_kMq$w!a$gMep+xed;8&Ne zVk*(ihzAh{dH4%ffHQrafFHBo zz7xXpRe`L^;oB*eo`vUE5(#5?KF`AQ83sQ2jN$n`qdII!eI525Mt59Fe#H=aZ#QQu z1{#9iAJZo=k`a18fqCB?QuGXB*dSb?P4KRbpZ2NUkMKpHA=%Ru z4VXjd8{~CtUNMSFHNA5bfe)zWeebhYnUv;ypFqv`a5qj)W(4ok(2Hb4@V;U!1}S*| ztkDv>^{?;E!!(o%6#G-EM59D8QiWoGiu7c~0HIjVpsT>-8njbFg))cmd`+kyN{WW4=z2L-6H zTU?>orLbl^aXmbI0Um08jLs0whc~8Uc*~DXY@a!hn2Dh_8$i&`m%?D+xc?{lF8pzA z-~L4?lKd0K=V|c_q9uqhY@c6&E-Umv3eB>;=Etp#oMvOw56hCt@2If1W zB}~A(&ZFTFo@%xm@I>~3FY21DAZ+7oo1dVeqW399lg$bmpZJoe&&(v$*5F`EGKTe` z1`as6N42N)_zO!T_f}KQ7Q_!-B-SCK6E5PKNhri1fds2tt0&0!r_x>W=#TdSg~P)3 z50qk36D(-ku7&dUfINFJR_Tp^#FwJ#j=$X+R%fV+!iUhMs7DmO`#4t->a3%jmtQ%P<=BJ99a!iQM+8Y)twx#`Aj`PvZ_8jG$~wS{oEx zRADe5-n(XW5*otS)KTaMMVv)pk!?vZn1!N<4j*tKiUNbHu&q?tXDFHkW}QCC^O1Z~ zn-7#%6&VDY9@M1}Xi$mQ!oWlt3=n8gB~UA4;I%aW%>B~8RdK%n02R7?f*OmE_HH)> z_M5RC#2RQE3QHd(Q5FWRii1vV7!l$NVRcN98ZoBp=fuxQfWKkv{S@gF8ohFFMRCV& z$7*QUX$50px8NBm-?+Hug{Jp#S!e)6km-P1qEyNu;Rc`I%C0!9{}(-i}<8GmSY$XA>m5U%LV37&C=zQSgx!Z1VM{--`eyy_pOpXgL3iF^8K zS}b~)lz_n}cOky_Gkk9+e6yL`7}EpA0P(yfyd5zrTG5|czHzz3h;_#q&<^sKojC$Y zhe6`Ln_-wFaSim#B$`~7Qv4yP=gm>2QV3^k65N9%O1@SaNuFT$k17mnB2|)nV2o)4 zayd^ThzA*@OP~fCi}U`dXl+8h6D`rFF+PcUU}DK(ZK5ECGYBWzTqGuyW)rwy20OifH5ILKt8RsF{EYwzX;~G$|@@=-Rd_UQ~2OA*cA0 zXvAzaSCBE;$^p`p?n|x2BW)2vg(2P*C8C9X=J&DIS2@Jo0_y^Jh?l+J?x&8>%Uw z65RQ4~Sb)I0m}x_(52J_~Jw-7NUp8H!G9fb_{Gx}Y3LK{d^Ph5er8)F5@ZkGah z6)<3mXh;~O>xfH|{}3%P*FTs@f32renH+ClH^jj(%QB1Qen%KtrKz;+#=0V92V7HaF@!YGfnhZIg6Fh^ofHp& zyWU1cH;iePMo~ZYsqArAumdUV2h9!lo3;W%Lv|Rv?oXRpL_rn&B}T1PC3&97>1%Y&RG0oiSZG6L zXHg^itI(UMB1;H#EW$t#7L)J9rBB5g#)VMmrAWVg5;$6lNOTr8A&zuB>ShHVgKTjU z_V9vb9e>^(v|EG=lK9{1F6k>2{|0z?niRFYPU(Y6Bc;j^25%V-~M7JUG!SHNkJ@_ttUTLsiea zOwODKMazEn8|ZX-IM8I2^NpDPJs;xl`tD$S*vfeyBt9GgK72ysL%jHxXc25gg%9bN zCh{T7Um6xfDaddGYEUwdbT^byTKF!|Xo-$w3Mo-(h^Y_hie?aXS`2J!E6p^3jo~Fa z(=9gMudVP~ZYqP{=1kz}I#u)q zf#0?n`AsYeVw_SszhTU3hsJMYa|3gA=8JR@gdPeF{DvkufU1Q&V|#{p=T>;f-x$zw z=B?8h?dYotqh%se;W%I$ATU@D}<2Rfb1Iw`mFWpx7t-^22?)`4yl<(lkr zGX=zj4L2QVYzO928W8pxp%(!`ClGO{kuTF&68L?`pUcs5X#gnc_6l|sl&)>HH0rJs zXv3MdG%{Ly^iLCMZ5gwVQ2*VSAu0f$`pM07#911RPBgsAq`{cBaS~|kz^*2|m{4DD zd>CZR>~=idse1G&r5sW@~?g`BZ1a)O1B7SfTsy26Pv2q2QxClWI4)(Ncy^*1&Y^{CBfIE($23m+PO)mov3nwu8DarW^3|jJBPTJcB3~b zS#yI8q^0~q`u*%$jCFi25m$UeF_?f$ig~cX9mN9LXB7;qc7I|jpAnizt3RyCx+fuU z)FuQvIcL!sX^geTj?SR*r;yzLmf9$|Q<)#4H>Q!qIq$XX!Vq2cHpgL_Y(^eV=F>D0 z=hM+h=20Tz!29@hm$LEl6?k!4LZW^Z5u==Qf1ge{3^D@ck0u6+P9gewf*`3NA`A-Q zFj5c597W5d(NBbNgF@7wmX1sng0ESnqxUpAGX6dRP!HRTtzh&7@1oQyU!juBWcIwS zh^dFp*%e!OzFeR??h}jfw5oc#)xyr+*4WJ$0ssSUVOx5hA)u$vqll>a)h0A;H;}ecJ44-tnw~h ztm3`~mb|Lqj6Ry%NZs%rlX-#PB( zFr;kyd0A-3m5(QcA>BPy*c?Gwj{~J8J8BQK%?@;2=#aveMu){;>5C$r^mF-0BR(@J zzUlsonp@4dIcY+0H=@pn{*_U5R)Ct8{1eI_A6=t~oBvOvzWj!nh!w}l?liE|BiQaP zJF1I>j5HGs&-bb(8paa&BJK;(lUH*?j^`-Hdqxo-O^lxcou9YGL0+3Z9qbDK2F{D? zJtB%)PP@hCWE7mEzn#cm3Z2Q_!;n=CEt+tdllZO>wNn_5Rm_a6vZbm z$^-Kh9%*7Z@0Xx73rqHp{f7v&`HAlt4qcb4m;Ux!*Z)XZv? zU)9e;lWfEbMvSu!#txhB{1iq|;B;h=ICk-Qyw6OavvpSpK%jQKf@Ba9w_l91TMFXn zI&nK{xWZ+rx$(<%WmNz#=xYMeAzB*c*(ub`M-B0i1yN7KI00N4p!3&kIMYun@{i16 z{!9){rU;-z6Rly4T!_(C8)~GJa^C~)Yg-zeHN4r*Z4L4@R~|xCq=i~9K~1{mdDBh| z6&W3$iYDY63cj8`h;k!vbSku)gSTPF9Z05N?eKw93!!Dai@I+hIFl=$TnA|;?fl8%uX&N&>VUMWE|%=YJVH6ZpTU18;6$Nudt&fEvyyXy}tm)kA>Yc z1U($gV$gnJmAsN?=gQDCVDU5OPGO%SWvk63W%)br4pq^86r>*jhCm;Mp_8XK9ZFT2 zRb(5aSvHeqk7p@|Se1ypxO~!V`2AnCcyX563`#W6N$@AC)G(m8$JN2p6~-ufE&ZIg z4VRmUa_a}@wbLwjk5ND z$BqbIL5KU=&GKLIUTd%4HESRMoKbvQTLKI4w33k%IqzD$Yk^(s@CEIBIiZ1hI2bMz zM7T;6B)G061pE&`F0V|f7a$t|cGl$hXpHAPrnfIOZy_q-f zJ2T&}VTj)($nJJ|mhiRZ0eXeWPSBSJ0rPH$ZpC*nJMd$N+doalWhCD4hg(2!nD_4k z9;Vlt-j2c#1zr6<=g`$(GX{MN2eGfYJsy?40}a2y`^)xmmhr`iXO@t^)*kbn4}(02 zg~oTTt!29)m2fYf$Y|;Knr-9nn1^rR(Po8nnkcJiK7H=sc~}nrTjGfSe*)jHNO>Al zZnz^Gzmv9;CH4M13##=8)hsO#Rq?K(rMR!Br#hpXgiOTa_8PckQ!R6(%gh4`3VC{sjt8KZ{yI-!Vt-3zpa?%`2qchUeIyJ9vxy zJP}MLy9{gNa1x39(y-=9)k*gc)miApzHdM;+3^uz%^igA<3YbjJGM)gizj!d zw)zt6*l8cp`R6;TtogHb?_eH+|>K0!HSSCLkHY_Lsk;u9C=lyB*( zdk3}$ZHevpHe$Dm9W}E?zHV*#=s2`e=jZ%LJCtVax3Uv*O|tu0U@-BW1A|pV1U*aG zFavidoEM@$Ht4M_yWq)Jq;`P@Y553Srop}TSi_4JG@iGEa*wwfGIg>ug^#E5^MMb_ z=I`}_qBU-!Bb4lXpm=3p*I3p%o#60%;Io~RW#ccD&)0kT3~QEm(Kq~54Q|Fs;~2C$ z{j598n5ls$*D-@aDt^N~$iTAs`q;spW_APb-sA%?6L81C3SpDC%d<5gbcN$tuO)tfKh;2mZe41VmiQf*8OIN7P+VO%5n7U~<88Y9&S8$yl%WdxTZI*dk5*DS6?pb-OYskxgW*Y^@ z@eA|N`qH*2fqjI!YseOeUdQ$b2jYMu6!!a6XkfOD*l$lrv$w&&M>8@OjPDvU?9XhE zLmJyJ)|!_Tv?SvhR=VAlJci4at~}#5BcY0F>ds2peLF3O5?j7fH5%E4xhiX`<`w+n z?#{r~W3eP+d@NpN?azG0$RcYolCHm61xQYoUaMKZQ-SZoaf*ody)9P8o2;#AsnUM9 z*2RFQ8(WE0ovzyKYdZG*aW4ViyCYseUkMq3cpCb|9KmzBZ&YFM0Z>FcHQ*s{AH zGFumGS_NyX%Y-ZThKhO6s^jeVLCUA_Q?&l)ePy=R#fgu8_V>TOgK^_&2jD*|+K%(A zt=Hd7y9F=cYaNI%l`V;o+T<$`H-Aef!*{N;wVGjaUz}?7uft712j8~NS)ADLIs~Ud zaFPwb@r&=la2Gv2SPQkzyN!^**Q4>!Jb^{1&R1(~^CcuPD~#WV)SdQL3)?x;wLYPp z;Kf9GUvtax2)3&%*dBogMq{H`l2{T^lvO$z|M|&#imCA$7zu)TrZ9G~W(`cnF ziB^9Rlq3U0B`a-LM!bfW?l%xzkYx8)@KSaSIcqZvi<5a`sYn50Wirz{$60ByMsqN@~ykfM#?|C%&7=b?2@c4A0MA|qGfv; z3}8pCcVp_Nt|8Y!g4?vLr%evZe!=#pytew#RXSu%+UCGlj}E58!#xRm0Pb3ofD5y+ zc;%J`BLZR`Qqj#H6-Ht14g7y z4Yvo;J0uf>_D)!f9GYwN1p<$cpz&)-Hl;&*piCAB zT2^2);M?#p9JK?ZB2<>OV-xVn)9Hmw$mzZ+YilCC$?#J;b<8|!Z5=~3 zXKHJN8I%-y^6i2iD&OmL>4-qCP+)N7BgLEZFT6atZD6FLw?U z#$or$_-*z;FU)lVVYZB?dcExd)dq+d=i z*lF1=08PAkc4xyIIJC9KaGrb0u;vCjW7O0_xp5)0{X@0Qf7q^`THl21XEB<0Sy-p7 zh=r73evjdn5Mhtq{{>LM)SyjoLQ$Oh_s197qkwD3T~Y4lTXNW$${Tqo(gX#f%TtD*umg&AH@0kPsJ2CKuV z3F~q4c(>~{DUCqs05SbE-w4cP2 zAHWN#AwZkTCb!=*bZ9Ca4<5rt3%Kw-kTl*fhFK~OJ0-27?^=OId*2YN{}9xJRpWe7 zU*Dy@Vg(x#0avPh3FjYoov#$>jt z>G{O5*yD>d`2L4>et{k&9{hBh%gz}5dTM4^u!f=I3z#+tBSo0g|0p_Dy2`9DN{h!$VpMkD#RRa^U8P2jNuog9A zmZj&8R_%p2o*tn0#a@f1Ond9B1J}_4yZ~j{4c>#p+4`*I84$0X@pERK1&HH_t2U%s|cisgC5jhEnq#Kq!(l#^}OAA7B2I?(l@va4-d5CofCU) ztDnP$TeH_@uDWJi9XNJ1k^A_9}Zt9-2L(MP>hXcA^&`(!|$X6Rv93;4dG8Pq~> zp!%zj{fLRJ!aV4a_QvvgZ2-K#nFrkpO^n|MH(ZJP2j)R}o7wi1d0LEHi*G-Y_dXhp z=XAwv37lvg+3XwUJI^|0^@KyfdA=Mt;s_dR1>Ug5Bp5e$;W5lIHmLO zacZ`fDf4k+?M!lgtZnpg;Fw35fqqD=2c>kvNBo1r|Dxu%H*Av*-DhIngVUagh|Kg? zX{;c*t$8sh^!|c>tMl}DpZ=r(zIyRzeB&=TZf*I_?=qF8 zX1|(3~N%sPi4Ze*3QzTjCO^X zrk%hy8v7{@n zrc=x%7t^e6K;R!;LqUeIYsf8EGgBK&p0?k?>(}wzvsvx~IYDr|08O+lb^%R)I8A@Z zh>NMk$2Y1~HG6+U>_K~GD>2XB@0&osT$FA^$vFfM4WbVv1aoEbi+A;;8Lj?wV_?6A zmbBB2gkSqXgkGZw;6Y#Q18#h~!rxyBKAUGaEHN6QTD6d^2mB)raz<4T>IDKcF{@-U0tt=bYw&BvEr+H5ypGhtfr*fLt4awPuey1+raO#O!7 zdgcJ)HwD)d<>t9oVS94>>e+dqJo{8fcP6)2u3i}*t%Bw7&UKZmXJ?=5i^SJjl>ZOD z6srI8=M9gT<3Q6A;th}3bZejWO={^BtZgxVdz*cCVrFYvjBPfk;M*JZYAdXGp7TV5 zj-P0sy}RN4^z%KuWp%uEOR#*x6k|DJ}o*Hx~b1Em>>Lm%e@yt?gpkmsls z2Mxv0K5tsf3!rRo86HW8vMpCZ+46PJ@!MNIfwF0?x3*onGx1;~jHrp$*Vl`Oa35JX9A+@i1YOq0~y0x!`CgJ;7 zYTtnOTWZ7c8Cug4zTC4tFqS`)+n7fjov-q@1h6>o|W!(630vA2UzhPNFX%)T(ykXG62ZHYpKE>vXYh4Jd zhK7jN^cbKUx%Swqk6SN{u?pYHGiCb`56gqrtvm33==z_^{LbF-t_hc4!R&D!4$C;q z=P;ea6b{F8IEX_PhhMB^@I4Oqa=3%T`#Idq;q@F|&Y_3HG781^fc$xQ3Wwu49K@lD z!!OqG{5jmq;SLV(=WsKJ*K>F|haL{gILzlTox>Ck$8$J{LluW#wD9~n+)JU^|B88g zrvY~+W%_rw>{flb12+_A8Z5ghu1B1xB;2?f?-|xexaQ04A@rtW+XV?pJNC5rWK1&> z>P5ol7X-wOL0pA6F-mw^^M@2Mw;b19HahuP`YOV9<$l9v_(v%;=H?C)lHfMTW-$u) zm^QCC3;C!ygj|1YdzzHG5pxrQxtp3l)H5Wu@3rn>B>@(A3NO#dF>0zV8gn(du>^Y%c@_D|wkIt(rE8bD({0*|fk zTHvf}Fg(21XI|Z9Ztzw647;>bq3HCA!E{{eo-i2J;8i-fp&8OlHT#bw9|-&rMzLL5 zHBi!9F5?*`US(!jlZK{&6FOfu+9gg0U&Hv8fT891{KgTmlJKH&v|Mw!RoKz>-Y)G^ z)hvn7WtC z%U46$Vr!SSq8hmq(wIxpqH0#RUD{mm;m6GmuHB_Q2mH7JqjLo%N|J~sb6@BAG-8+( zF_0IVD%ZQT-&OIF&Z6jNRU%!d7%_@Qye>uT0Uv71ooX8KD354)zN_- z(sCU7j0GS`kLeso(fK?J`dzPG+UZriP1ICt=bO8_)_s;)N@PDVob>;G(%-r-!uNv` zS1FzsUk-`C7x~+lAE~(gzaRQ1s8nkBY4}g8`02jq7x6#-^gr{D2!aZm039@hMug~~ zQM5{2gy^8Lbl(@R#6^e>8aLv9eg6C6mADAeLFd7g)_hKPrZ^%C>nUFR;b$q8@!jZ~ zL!Q9HlcCWHT$z7QcrZ=zD1m}rhWC`d^mMm$yF!18XAuvr-$~S``FrAtynf$bpPtfG z*0;Hr@we-o@2_9Cd>q}=>Bx{F%6LWDdMxjp&~%PuoP2!q*w8$i9UPa{S)>=A@7SfF zCkk8B4cT^qwVdHh9hGr0V17LK?WrgRx^Gdg+LB*6z|C)jW$d?rYmbR;McS?^qDT`>KX(t58Q3%F?i(sAinQ><}eKLhh?q=pR0rQ z#zo8}f&Vn_)OA5z%^~79ToiPB>!D0fbakbHbAxMsg5jSl+(vLo;MVbYd4HxAS*ZS# zmdBv!?NEIv+f`T9IJNQ2nI=y|ozGS4G*y2rEbr9M-sl!}xKaBIH?QVKl-KS2*wz+*|YSjKnDvV+-nz}@ZcC#*E z;_{&)jUgZe^^af?78OsrZnUZg)< z#6>Xt=KK_$5!>)?q+J2*B%yp^0q7?X{m>T(SCt|U36#1J83+}O1s;IgmY#0#Y;Y_zglbT4kYH#Vq8ZDW z_$h^)SV~^_NdR>-*L$|@^Uc?;kHOONj2>3*8Bv={(J6X}53Lq+Nv071Y zVREySCVzqEp!fyQPGfDL@H=u-!Ra|6jiE0{%OSeh$)4ce0eHCL1`B9cE^ca}Axwj} z@u4}*$NoAbOCK+^Ds0J4ydQv-BUMmJ2HGB~2m|9h)@1_T z{{xsXK|BxT1`vfHd5^kbD?BALq9`Z7gDZBK{{Z-xVMqsAwGmdi?-nIWe7tF&>&pR`3Dn7!(PI-QQRKO z=2yVB)kGF^4e_>*aMdaGSsEfVxxzI+pwAnc(hIPHeA<9;G>a648NevU+SFCX0$mO| zLwyQ{K8AjQ`_v6Z3*ShZgA63xM9O6wgaSQ)tw0R=kujS9gy8ntg3N|t33%i^gt=mN zBLUlTE(B}nJ!BX1CIxsN^xC7f<7LBvP~8ZT_Fb?Y60go(r~N@Z?d5|;RWFN6zEBI$FvA#d?R>;2?os+(nVkq@CMg~2)4&J_(CG^ z1QhKfn+iLCs1CwfCwOxJh{5`xECLb(k*qOqVV*F$Q1DT&KoIs?cTmKyyk0n9+kOXq zhXiZI7rGH~59uq^r8hKy1Bw7WSor~xU+LQEo-zQqpGfQI(`asM0fQOGaMiB>UpAyE zz!i~O*`S(eWdA$-Ivm&>tAdf8AwQ@?L!fdHz&8X>D0bE`F*MKwD1Imey0`>uoD7Vi zuN%%2^B}C-Z;&f2{~=cHz@RInK58Svn@gxqgi*u^RAC7EIwDx`g2Amsu)-*t=b%e~ z?>PlX;i?JB7pm*)l`FI_Tvru%-lIiqB>4p)2Hq3QAkkNW6~P=FKsDdOQ#T`qds3UP zjpdb*$F!uBSMCvID3w0?bLgEzX^Jg0iDd}%tR(%nU@u*px`lv=3oWW*TxUk%tS z^qXv`CR^WO(>ntI2F)zlGuxO_wp+w1mBu(Ss$b%%sp{^no7s~`sbzAcyQyyP&U-}i zQGchIZYazW*&wcBsZqH8Q_q6GAYD}7#URAwkpC9B9L|xBzm!#>IZxh{qIZW=$tSJ` zi;U>ZL)fT^v9C#ZsWF;xkB_Mm4M4;9xl8rw;;%olWrfloKl39v2!82J#@{~M@oPaD zJ_z%07s*MO9%&a?^uzYr!#V%AV}t2{f-$PzK%r4k6UZT&u#lGPXz)z+n;O#%KlWkh9UP{eMlD|J=n)l%yRc5=5W1dC&OuqdJae=xuFc@ zNNIn(KjUdtwOE;I;ukODg1vm=71l1&32*+!fd!Y)2T0@39e?z5$gYnOZ?eW1cM@>K zxG~h;I^IfF*X*b_bz_iQP}G^yvXTawOdsirL>KR12V^6XTVK+dlQG)v3;GIuSL09z zTqBh`O6(UUW4zsbm=%F8+#zq8Mg;fs*fTuiTaY38N_3a#PzQOVjoW*~nHadEAmnWQKwCF+Q;GYcX6(5ucqumjxu6=B z2+N0L4AJH2mIP{q>4exc8x(=KaCVa$lF>o5ChnqkLmI+~sDnO&^+Di&)3zq+Dj0Nz z^x^A@8GMJ@^aPngJ&Jaz4SfSt)rND1CP48KZc4i?4ON75MHs<10yaI|@FIQ^ZqmB> zgatrvE`c7x0*E$aK%!7SkcB;l%-PH zF(?A%!q(+8NCNqY!{4VwE;U3Gssv#N)rr5!=~e+^g*<}sVd&}ri|&Kfl?1wgd<1mS z4V^=F!fh6S{zCb{Z*sWpOHM)=6Z2zrIe-qsry+CTE{xr9K#oH^;YKKpIGevfAIKNM z;KybF?xv{QXK!j!CSxfrVJVFuroD(5tB1)G#sB)7ZO1m(wsQt7{xiGc^oO zo6|D9$du&##-m!aw5WaIwWJbc>5Kc;ww$%H9AM(DV}Rm)P||Y$-NOz>s(cVe)l4?q zAlWwiMe+6<&q;-8m9VcwKXKbZl;w|}DSyA%zV^o2lJ+TsL8hpT-Q>f&GqZL1oxl=$a3Zx?klS@_b~Xn4(^L)8{4v zad7&l2xg$HOXrxL180sJ8q)$v51DRxvwIAtmZ#HMo7}Vgi4Q6ceyhg&_1fSFL-vYZ z^hqQCjEq_C>7JmIefHIk`XVFqjC^<1~ zGkWGJ$#C}NOG^pKY|mmVVb#dmKC|nU0EsCXJ0+~yzq(OMaWjE4Mn=YiTt4V8yZSa2 zIXGm(^-o!iw7&CWfu_Kty82Y`7u`7TvL6#QWc;LM?+t#F@HkxxLZuQ0fk8%Ly+S-j z5YK%@KVnXk=3RhIa8aG);p5bsM?NiZTb)h~p%rOpzlP!vWk{02A)mjn>l>+SkcmUm zbSEZUHZ}6s);~=*9Qq^IgmHRbe3hMpV34Yvt1XOSNSltY6}~GjP+@wmi5KbJD6}LV zofhga?`~%K`A+gxBF&#ktG4J&xaOU9;=P<3w-l5*fU*%re9F#3<;r ze+beeD~IKHF`ZL(Y#H>F8nOEstE3F=3y5Uhe_vnh@t{*d&b+i+M(oRg&kr<9>MoUB zu0zrgpkze;MeqGeD15~%yuMGBhHu-{G*CUnf+=O?r;BMhh+i3Jm>-M55nLZ#cd)OE zVqY!e?S!IEVT0B&uDMmlQ0*?bwa=kavZQrZ%XBX=CQG})6UAd{pH5T3gQ9wqUb!MY zNuhFVKq@Kvdr}PsL;pE+QC~~T?8wRE+5CRbt?P7}I7^)Xk_lhVp`mk1qHI!rXeZn@ z#_Nkh8>qSl4#z!wYN#ks7KV!y<)^ZVp)T4~a2??~nIwF-p2>;3AcCK^$r}7SWPi%< z4&e(f?}oM?n z9KJuQ(p%ioUNZ5qK>w#t{QIAlTW1>L@vB=Gg?LZ5_W`q$OZcDtl@45#koOr$phUx+>g|si9UH3iaku{thtG9OcZh3 zx$PV{MP?IjOXJcU<)4p8Zz>eK-&p-|2PfW7^4;!MCKB!x+!H_kHJ`ANurB@-2y$ie zkQH-`lpnY+Uvwp5StQ%J>vLwdz58TWI3OE7of78;c9V$rB!i*Y;~s=Ss^AUSL-TV zRz#E?{2-wDa!oga7O`0IGG3(o2|ii#WGR~KrNZJwsb14Bx=8tDjwSucViZ^&;+niH zS{Q7g?;q4Jzdd_0a8eOL@ZPON{i2cBPw(^+VnDlCAj|ba$_i65pphAT?orb(Qt6YR zl<0bRf`VM|xl35nCl{0Bn*I5HzjM3oTQf=~+&9_$tk;mfAGSmnSrG#6(l^fj@?D8) z(N&)*Nv<$hbM*z~DyFH(t!z}xN;O*Svfp4APBp|t|K%7(^TmqbJ?vb8q)?QF zxzD9-S*%c$jrqNQqvC;!<7Ld^gzqmy(otoGL(%$x{QKOA7>bhEW0U6dg!{8jOxZw4 z9ruT_`CSqi9kR?9rnFnD)#n$r6#0Xq;e!Ue=%YR09%bLPvgmhuwqT@^qGzADVBRt{ zG^3C7bIi{fo4clHmCyXD@&|#Kg#m&eZyR3~ZtSe?*1rP<-fxbmKX&dgEKYz4ntuH6 ztIc<6z0ALJmhfUK$U4R-%61^ER>}Ove@2v4ljOwJCXx@g!vGIL7^jJ6NqYX({2cvL7p(>_|29#%%Vu3B~AdO@_?N zSJjYhklWo0bz1-0uVX%$n6hmVCC0gm#9)clhmTh$hWBmGm&)clv>B`uU~NXpzy@>0 z_RKx7`Jl)?YrQIK;nQqxzp&pXZFFFT{UvAkhuxZGO%N~Vi}>nY4z|KuYurK#qS5wc zyv$4cuS8RTg#q**!Vya4H=DD^WC%*zhOCP|ZZ8GH*++?tH3Jvscik2z zpB^Rh14pW|u82xa4Ok~BP8N4&F)W|y2{bQ1@!w~fZ=SN$PPYTPK5(*wZ8DZW9ywo( zMozVkOc=9{L}ks;vqdWm6hA3s#WPx?|7)GRYhc;}*;&P# z)BD#~-kLY?WZJUQ^baub$BTAOk!n)9xfU!lBl^*2gr>ANRFL?wW_mg?_48wUXZrOL zOVe-L@`MDQ$u(rLPCEGDGR+04;ByOBXZ5X#gnrz0|FR0a3nyh^n^(Ks_2@1Hej05Z zNErkSDEu6Gm{|8LzZ0{(t9o1{s}IKg;(Bj&jpej+HsDmU{2d~DyJ&c7;5jfYc&j91 z!7iOObvc zS;49a9aQ_8s$PFntPoUhuWuAbB(=4V;5kp>_ZucjZ7}D878?6QNtti;bjyt za%)^Gi1=!x?^3ghbKDH&lY)7W(+y)P_(#(9?5BUZ?;CM?+;RbbozmUe4f&R2d`-7r z*5i+RQ3!%a)*J%W=Pxp{X?%W*{t~|PJbUA>2BYyQl~S~_3`h0k+#$WyxQ&p4?=67R zVWX;MT2s~j2mGp;+*U}1S@a3nh39d3vA`nEKjvdgUcFKt?DdV|NIoVZ=oW~|-j!^X zD{EX-36t~o1O9n2q<87KkTBfr#g6_--?(z{%ls({oA30-mh+7=e&X!LmZLX%m)7KO z9&%HKZ)vjY>rPhFl7(M}*P04}>G6|){OmFge;p_Jp9UjQZjg2AQtBtbz@MqK>N8(=5kN zC6Eq6kWmB(WK@Spr8$bvQl2U??EX2(;l;RjWmqhqW`o=3jORYPVFDP)q}6#n+k|p! zS$|{QKBGPTjonRP3Ft1QB%&CXS!TgrgG2zdMpGJjKi5e2WxsTu+}L5=<1BACPOC+) z8!M!3g^D{jmQIq2gR@t~|AT{e^yHBd1mr0!H((ne6n|Toco&k7#-T(G8wYfNI>AtK$HMXtrVcrw0yPlw1c$ey&O zI?HfGT{lX18pMpayE`{9w`<3kv~eiTK*@%4l03}HLNHd?n|OC$7{wB{Yp9!5y_!&e z?FIkyhYLGnKs4T|XJj!`SmuM~inzA#LwyaTvYf9Ts9Mz>B?l5Q{7J@NzNC#mmq1qZ z;2IM|kB~S)!xqAX!B6b(R7W1C61RAJ7mFukK$O~pjnAh?EZZYv$d}e2CjXSa=8l$1 zbE)tp9Vt;KVlW+cqyIx2|C0a}W<&YfHd<=IrR+&CjDrs~Gcyl{6CeM^P*8l_=Jyk# zq8{M$Et%7v_?!&4H8~pjx@1a4%U4g?f}g;R=FE6F5PJ47MN;(n!Lh-=MJ=|96wduthE_K{j5LX5E5SZR(p*OOAQGZg9P75IJs4 z690AXw-@Jls)L*v}Z);kI zH-3sDObMZ7x2Gmv0j)2diW%@z;wm&6AreSw(B9*S)qXq6at=Yuev}`Vt2g$<0Io8Q zh zz$e6s^HAdNPqMb+ts^#&TjXUc`&#Z}rv4}_b&}7jW`qM=r%T4r2sOD8+#X`DolA=s zu|!qVLnlk;ie=c-E7KT85=_UUT2vAocEjIQK+&O#ptRxa=OJ;`Q>W7w6%`ezmC_@q zrY;;uc&yF{L{Y=0l@`hfbSrtvGY74vLnK+yLD^pbN97p?xl;W!C&>@<6kxT|wJ|3k zHG$}a03fOj1&B!2b3}lhG-w_hW}eoXpOXJevbb89z_jJ;93LAMmBUtU2)0W3V0w`Q zFkFBsBXJxMK>EiM`Ic4YQ-7T`@fFJ#!G0ZUR8!rF($awUXT^NBGsSs(-_m*aiM7zZ zq#~{-@7hq>W}rEIs}`;e&}+Yvt=$?sy^1>De053F-*S?Ro0=-&pCxGk1oyDZshK5^ z4UiU9<<~fe*#c*f)-%r8iaZ&?U4U-kyf`!6$Gn{`lV1R%>up~~GcWq~(XJ$71!kzfIer6hhzt=XxQ78Bw(5G@p#DH#v+n{L%{Z&pH_jNey0 z6k-q=?PDWH7SUF9aRJbboP@TQ5EJL=m#qp?;c5VsVU`v# zx%R}e_E-m^%Yc`5d(jbF8B=T9Z$GWw2ZVF>sm*eaqldXkRbXqFHazV7|n+msEt!Fd_ zCkmt*-py|fb`qLo5XRVueesl1LQ>fbwVbSId{jd!e1aQE?u5co^=Kh1Dy=oAOCk7t zd97(v2bJ%t8pN0Ll41f`rK~Ig67pu2pWftu^`my`npL&1it}>_B7Vw89-`9kv}d6Q z3XH1N!OmHM@=W1L)7#z2`HF84n+WK2A06v2@Wk`lla`o4+8%A?jgc>O!Q*L0zE<^s&*cL06;{%P#I?6zm~!588~6uF#HEcEZ3ZKolT?DwiMrdE zu-+Od$Mh#`v^ORtlgTKXbKOC@`5*e>&hA*$xyEsARY;26*b$@?#eyKQRMZmufHzP0 zyowlOu^j}$u|_lhS#rtQz+mx5deEl>nS^g+bZT2>TFqw|zF1q&{NJZ!EHCrYqdzFS zeeNmIkK=HJEqt~XXVfT~nPoeN61`Ef_G7sD7P~BWD-uJzdF}{kfnhMUtWlo{QJG6o zmcL!YoO7--i=t^?0rIv;&uvj-)|U6h=32ob@=mj(wgdunFlp}moL?MUl}x+`=k5jr zBMRU{q>@ef=Hs^Uj!bdn z`%ZYIII<$DzVF`OrKYyKk4)$dr*4U#QPVyrEoo&@4qanPShh)+Jt*1{;AwfMD#W>x zml6};L>L?G@~I63GyF?{*%cXENJ(1R$wsPF)b8n-O8h`cdE4FJ5fMBa_>x7;wA~7_ zt!)$3bbpzc*5pJogjt#N_fx;iV?IuDBFa`>*>hIGHLgYmtqv7U$C3SeG2~^t zCpd}}XCjI{mjL0HF|DB(8J8r5Fu_VOd=iT?n0LS$S5FMY{2T>Nr8!|vFzWshxYC6w zJSFzsZ$M^KL$3@3ESxmjD~`zCaq9Q}!Jt5x@M1_sy#;c|uIG|exO7IWdqfee$`f38 z@W#y!h0E3MJzwW22ZytsVmMk1IdD99CpPmJdea}H@)fmHUCKZbUs|0kJGpD~OCkKQ zd}6_rz!ho4yKlbIW3UhVM{T~3!|ybF~zkM)wGPvTPbMfNlg_2Zor z?sHzRF9sfqxv(aV9m#+IhW?>w5fXYWgB(FbMWF+YvM?$VDS*6PfVhLZ2HJWqDz#p!_3!k*VKo)>!i{1S`b16l7KZE!D`Wp zmgu*wOU}OD{>DWe9+Eo2zCatDvN{(-h#fW@@?gg+Zz&6Zjo_)M_`&_WCEL3X#9@<5 zZ=QSfAuhV7!%<^%#k_1z&-Hq1bp?GI)CEOkO}G>hrw<;TT}qxHzVed~m*W6aBpn5| z7->BPC75Rwn>-15lXq?Z5ui4o5KaQ}no=8kYB*bJaOn?qQXvOjI5XCF&TU$t)3;Kf zfyEs%2PYHq{HZe0^cQE&^`r#pJH*YHO4j|{5b)9=$YT;Vpl?8`Jnkn zjXQ7Ns0TQ-QbSo&ULGNdFn9$~WwU%7hT>hZWJH2HPpMB-O{zNuU*{4@OwKjoh;G4X>6r{~35>chQgHnbxGf9McIp@5TW%W#b73bd4 zgG8RjcjM6x|ACpedQNZ%;7>-41sI)z22$;U=H`;tyHnugqJ~2D1w55f6Q=>DD?XM> zF}30>IS)F@C>2s#AhJ{`aTAQXSe9bDZ_!LX`ku64e zj9EWvfd||B9?!+0&@t-x8oXqfjZoaIh|)OLw-&SoXgAU^x6)QLYi}`bRw=E(!x;{Y zAa&lXs_VHw57V~WSt`7CqI2@tg&2igMLE{De%($N2(x)j^8#3W zf;;Ni#S_9y_K_?`JTj*=6RUJ{IT!Fu5IG%|ExkOkmy=Nj;txmPcE=`VNIMy;kE$+Na>pG~W{WSh+bfJ-XqUv| zNIytmXqh&6{YqiBbnJt8!0-%U=GX`*!u|BCkEPbJo%kYlDa7uQ>HGHr()>`V;Ee-@iS6 zPz)m~NlZ&OS(r0`+ZW79uA#!zHD7TR&q}gS>{4?P=1*{cmO2z z;P9 ztbzIykr9OS?e~}$4s~e`6;zA~<$I#zx2GEV9Tj8mSQB1d%x_X%)QkrU(GcY8N%R?^ z#t8DGj30x<##Q#=+Xa}YyYV&M1=N%zv~p#gxBIA6oEre3b1GexUCwFU67&tB$??C_ z1kLi^i2H6WlXz;+A%rOF>V(niy1iw9q}){ldG=o zH#yoRi6#nFF)$oKsV!MKFgeoScN5?13Q3>nAYp`1pDlA#GIBql?fePf0d74%5~*U4 zmEk>7sVCq$*+aMg{wt0UTC@*0BgM`xt;ZJtYBNN5K1WKF86`18#S7b56EI7q$3am< z_)!p$t5~Zq3Lay(RJ;po-3!X1Y@ln8<) zt^KH>#B0|QYWKmXy62^CFE_F=TeNGXx#6PgI;b;#AT>ioRNzDL0*pHtK4Yv2&Mqv4 z@8ig%C_n%bMMgcb|NN!AStj!Vo#)5uPwRU|@$}et$0}@v>{iM9HuVKTso!UTQrlM_ z*mh~(bDZNORMA}GBobZYo~73@Zzn+6xeHS)9CJ!?pR2t%atfKq6i&HS76B3l!r$Mm zME%(rOb3r4qyS^LAtMZe?(`HKJnc7~?pQ`_$>lWYRv z7ww%Sn5`e8jCsl%D=N?gt4!&0sH9??DDuwSoD2l2*Q;ojb^z z%2vHdlsV5dKMCVMeUTI@lk0W-*WbTqdqY{Jb)Y@U{1J6SY;HCD^y>U2ZHV`W;3wKs z+px~X9cGd_)(_Cuw=r}r{Y)!&Y-@d%JejWv!pw7pX7*eg*MBwSDrx4@GaP_GeOc%= zEto#d8p#^On}58$KiwoCG<@bLrd>?MvFPc!H_oN8$|q+{G?m*qH`Bir49uiCGfj>Q zu{}fekW1)d>}RKaJ7Pbw7F@jjB_PgC6(t>6#qUYG5K~1zIVOplDi4#lW=c&(r7?6I zn9yBJ&KL1l%^)|yJF3+1A9atAg03mNjB@I5VVXv!i8UXdA#t}%6q1Lt01`2HFPU6@ zJ5cao)onR~G!pk&6!NUPmzBAU&zh`cnwU^Ii^OihzXa$CaB4${;eZGj;Sn}L@~&nhZV ziL-r>henxpZDApAvmPrh^N0UAq&^;7f;EeLE&yI=VB6ixQ^-_J3H;=@`IFb@J@$`1 zvZT-bD?AOop5{!Ui`BBGQ3;Ms#!QxowV9(S>^V%Ch_aL|IbfXX*7|-jY-csO)T(no z^|^Jtb-fia11K<*>d8W{KNiJqchl>^sqixpHrf=(l1U9C^W70b|B@aZ$X>pRv=0&J58>fc!*IdKOiM|vo_M|(>M`k7)Nwkzzz$OPeQEm-!+@Asuh z(H!yP&vSfKxLh093Y8=Iqu5;BIT868$c}hJ9fv6seQPh4w!oaNbDc$Ml*lt} z>i0JfDFG3jO+GEC6<_F%-!IFp0yWDmPqR}lmv97!-%~UbDdt067;Pizi`z}{vR7mC z!l328pEtT1o4(`ho*@BBamDupLeHNC`AYU+KZ zhJ|suFBYXYR~Xk)E?yQf0$y3I=abf34>kX-w{EQ()(1+~?CZ8(2+%iJOCZ|PWbA-x z!lC;NfWunFSiM7x|{|~57snDvf$`LB-v>&BkBWi zo!S(b4usBR;N#ey?oB7llvjw=V+546qG8Ibhsp#~{N1*rK}w&hx26!mYEO^i%?9_6 zesH2e8dn0h4m_CCWMuWzF&VHe)L0jCu6?h!-s+(NM>s01C>Q`G3nIY9NNyH0H*$k@ z2?d2Nr%b5_lYxCEn1aJsO}EwD%ZJH;y^)W};289~Agi8_F)B-0!1Td|2C3qoEe%qV zE?C{Q7C9yZ{Pg0idbv_`uweMxRy0WG-QclAG@%=;J!VnA&>%@wH>XFbN9zN7k~Ack z^8S^4Z?JClk2C~YCyjxXOf?0oKox+d%ee-?x1>39ze@*Kcsf>RG2{RKrTC|fm)sE8 zlcU|5ey@$Npop7@)RE3Wz%;6eJH=26mOm4W${Cg=jTUN_B2ymce=4U|f@M#oT~_>~ zl@RwIRESJ@POZDToZfS~t#KU2VHpO%eg4jLZzM^uj;RK~aPS2Tl>d)(hXmZ)gVljyg`}bwEBeOYs?}g;{HX>(!aHc>QML`t*>a5MT2TT&&ze2BZAyJmWK2) z(gJz>K5KrwJb!Y~z16QMn@Boao_i%V{ll?{_<^wJmc_b%b~PP7jOvJ%;Dz-yZnh!P zSiZrsJK~j`h-?QXdyvTKcu;g^yw7ONTIgqb$muteK9{D8-|~O<9!_0kIs5wvp<@Yw zrsa_3`*0RgJcPh}_TXN7>Hq^B67KZ#lHuR+v>c44P3qS@dYow-f&bvS(-yXXPK&W| zXAz6Ggd>J}b4H!rY)Tt*0uE2B(v`0m&D8CZzdhMD& zDe=3H&d2R>y||2Vm!l~f&lYPb55H_T+zl9=gmf-`x>S5_DSrOU`tV_TztsJ|2CGZm z&3l&*6PCasPKBV{K63*4kRcDajx3Wcyc}T~D@iu{4bNJZu;7-BM49n&TFyE`y{D;J z^Z)&E3{JbInyuxzI`BeS_2YKDJDG1*AVSSu^_(w;VaB3#RJ}kSAq$^ItNADN0`Ye>T=`ph# zR2CkM5`hb18-UT$CeA%2%%qM;ZN?5iVy*ntPM}y6V!I~b!(bT=DF$`~M`I70) z6>?fj8Vp+m3%h z&w3~4-!9_b+Mcg zCUGUP@aEF?RX7_YY&09&v$s;&PUYhd}QOkR->z|yF^Q8)&BI59{7vuWOiI3_@ zy?u(7tlbO|<9fyCvV-VuC6l%t@3O?2$;IR{L&{aPJQ|7B_$oWqHnG!2+JoL_?n`EU zl(BFL{C;v4v*69}=|yfK|C-dvTLN~ZQAztfSJ2B@DycIN7Nao*Ka8=xRBM%1 zpf~l_zn1jpM9b?A!2^Zm0i`V|ntoI)4`d}%)Z{(3NTj_%RBUBYbPJ|GSE&u=byX~H zT&_E022pfU9(?Y^NfZtP%k|8XMS7Qw@Mn8VJPr~3l+qXSJ|U{+w`sKr@vLHx@|Bg9 zSj|UEv&^1$g!&3XKe!N~#L2bi9G0(QE&gg_>=_9=mv(i*;x=UEjo}L54Y*DJu)CKR zI>bxq!He1=dPNe;BHDP(nAPVD>KdtK9)om2=}(UT%9uh51(H&{Zxmn>XD#U(sd`&S z_0#6j`z7(yk6#IWZFV(39Sqep`Fy0wGJ77RgUw||45xT{&AeYfjbf@3x`{t5(oP3V zvqG17IBE)F9y^!>WmvttK=S#lV3s7n(q)QlUad^QQBq+o@OVvvO5n0hi>5}(%ej`? zJ61H05lr`~fK!3mvS0^S0p2dh3c?`B&~M?Z3CQd@7AVo2=>P8H1J<2N>uJmCt@xl3 z<6ZNSiaB>V%9#7}*tT@dCLP%)eIt=q74Js3-nCko`*V#{;Jk$BU)2s4+3~8>N#t!-krk28)C86#m!#JOzT0 z(xtpij(S{nlc=`F{%m;Hh15s(QLR(Y-w71g1j_mNUu9r3Xrq&6uq#dgEWdx}>EqHe z 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

    P4Gr9e_k*=d# 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ŕJn1=UHIL5Bnq-z8|=X6A=CFi?$XPjYiy?c2gdiWn*08?@qI&c-{%N#Wn!NmJxSg2859XO}19rS^Fo%2{?-_=&?ZJGxZD3L6d}xV( z|B}QuZPWJQ)pn}#SUK6sXBZOo(`I`PWZZ9;`zLW;I4|dXTkN0yQG%E2E?6EP`p{W0 zRqh!&A1?ny>>S)zPg^ATvVD!*Q9m(qTtC~ii;lh}Z5OUL=7%;D`f`0>5V10C`ON7l zhtl@hI^z65*AEuA21fZ<_f*(|o`(?^8wF52S-p?w)rC9txA)@Pk0pvoGPXV4Rzlt* zM&1#a7t8N7-t|KvWrV#={0GMOOYr-Yi0`Y7?Q=qGZv3ZO7>Ab~>gi$)o5FTRCo{8;}-jp6Or^71AQ2d z)8$`*;FaZ1gj1LM9^jBeIe}c;s6g8Qp>S(ib-bDX#nTv?&SyH)KlPl<^xIYng_+sX z@^iyow508Bl}noS>P77LasP7WUb762O^bik(B%osFXY$98=H||um6%kVwqWfyo5`H!rB|e3YId{q)wEyN-9oVP{%q5Jz4Mj-oBQ>u+jt*c-6~?g-n!#| zb-%tjliT?yHhjN+bSF(<>U6odvtRyi?APco{zv=Obh|Y<>~^ceG+KwYcbfL>_x~1q zwnS>VyhRJryYN8^-y|b%u{kqOTqld0EO&A$UFFbq7D>v&ZnBQkP1X_Z=q{4#x0A|B zq?GEMwcBMqss&54%ZP#vBkK;;v3288Tu7gP&?Wp#zM|UgRzFZRxI6av%Rm}Um5#&3F}S!t9m86 zNxOp}V)hKv4xaE*ghe=w0rkPAaPCu6b^XVe;jy-5hocAONq(`SI5-AxIG1Ru@6jA_mUsk{l|1$1i>%= zE3CSfVbwi|)nUh~-!j{eZ8rE}GD&?i(w+>ejnW7B@=VhJKl>Le2=&HU?{3mZi`q#i zyf(nrFYQ7HyiVatt*5cS`g%S;Nng*IruCfrFJ8|+cu*fdKLeK)o})dNLz#-H2~9jx zZz?mCoNx`1q(ZjpuXTCWnyKOIxoE0sJ>~xXns;}*NowA_u>Vxn-GCq1f;cUTql){gC6*aGMNCD+d}m1gvA{%X|J)2y`%^^wZk(6D z$^%x}&0zw|)?&dQs$fqwg(yLb^0YA^uN$c%7c91=roowA*-$E&tc)=HKzC!+2P6Co z9?;Xey;)rzt}LI5bJ|> zi%{!P)bkUHZyo8@WdWb@23t_DBFr+Y&b$QCWc!gy)M2jo#9{Eh!s}6$S1CGSWoI`< zXfm!I`wye5c@IUqdLDD4Zp!jgbQLrx0BD}DmrMQS>`QK#ra{Z_RSW&q74XUv_DU(* zpx-~!Q5xnnBgc`NhDt>aa+Na%$X;{~%zG4+J_SsGeG8fkx|FO_PX7%q=67QoZ5$z? zztdY0=kPD7$tntYzDKV)x6=IGGTC4oSP1;d(+#0&JLI^JbNqf&0y%gi8`AYpqginl z@K~`~>3e{Gf?nnXCg$Ri3$3s@Y(1PzSc@3fD#E}&0~c@6!`(yPrI@3v$3BAFNd<6TE+#NZaiB``P%h|3|cCT(+NDeTA_7=N40#6e++{7 z8?dG4RNPLTw^l)utFTEmD^L6CsfJMSHyID6fbnRr35MZvP#f^EyeVk~O>M+wuvcbH z&bAM=V1x%+4m+?>Hj3+H;ztI(IVo&0ed%<$H0bGw*IoJbL*cKBu0Ro13tgTA!}xhR zEk)}|f?WY17^ZcE5%}Rj-5Olo7$&cZ*}(b76G2)mdvx$IMH1H z`|I@j`$y!T#QCSn{Mt&awG}g@>HKl=#7M}Rg_%&lkZ)KHQS9)T)|~xdUf8w8V9Z-W z_gy-Eynl+o&)5IOgs$4HV|3LMVCId9RM)E$o02SnlxJ)Vr>#;BbdndM_tZ}2Mpyl&iQpK;3b;KK2yS>LqgBKApVHVUns z&dP@)J4*wlt~BjQ+Uqbtvt?44f4Ayi@|(wZ(D>nT*f=^SnCUd(g@J3tJgKHTHIB#~t88#2Pw*c3ZCH}xBZki30;Xyb{Fb2P50&mZ zIs;=mY74M$YyGwrDus0hsyRMQ@r@;)RgUCwFg-mc5u9X=G;6>I7FKB;9z};H83mz) z2Vygn4I#VVwi)Vdp=KsRTjMM=ZdArQqx338=a`S&lE7iZ|JH^M85}eeir653wnaOB z7FIACE%Gx1xm5*qtsZFM)l$_=+r=giH(i=m{h^^0E;~J+F>Z0T=yZ;MF?4!fl{Wnm z?sQ|q11+J`=g@x*^*M$6oPRc~&zW%)Sov>J?opMQ!WPQw4t?nma@4t zSbKr==EtWQQL>eycTq3Ee>epFW0qF(a} z?~+uj;(H#R{g3Aow6rYRrxc+%4THITGj>?<-HO={r|sN`{q--uT>yQq!+#0T8@%+q z+C>hjGP2M^T+n;O>aDR}R%(Ym=`Bseh&bfA>WowAlP&ySH=MGW?M`a7p>MpdqUS;a@Fz z-Q`$wqx1>kz8Tr?cwog#P}|Mjo0%}uN5zpl-=||p5RM@aCZs8AST%)nK$AD*2z`Qs z@@?>|Z*+Y(C?Ct^U%~Q;5#^b?T@~j43GMjTjG{$<+HM-hya0^@j%K@ow7I9q(^G0r zm@b7B^*#44H9H(#^A3bUo1suaU7Gvqg1T!VxeM!vFQ|hWV*E~O?MwVovdT&7$M-*J zrPZe|8lMj%tEfJT7?1-C08QjjJ-=j_dcE->>NUz-Eag^|y*MxuAN)EkkJGQqGMavK z3%b#7Ug@Rm2>Wdt{Z7M%-7(&wR(E{b300GKw7MXqGP5IN;5a6+i<2`dy?9#`MQdz?8zza%yAgdlQ;sbM>fk8I|hxZAhp&S@rRCRmNe{V&c z|K1vCeV)^Q3HKI`W7@!KJiB?0!1!(&N$|<5(Z`SHJ|HKkf#mY@;?b3(J@ge_UgP>@ zC$Q(cEH!8+Hj@eiO&tt${T~gX-~(j!SgXbSYO{E2+N%}rJ1DLO6n+%5f3Knw=&wJ%>qs(iU?an)v9exJ8I26jUD^DVI=l2A+}WZDh~%P$rR6KJ91QO? zSxv-0oNZb@ZSGC9bV=FGFC8q`sHwDau!hA!n4=R)(aRT5)6eEkKz$n;`cbXRaT^IP zd(+~?50I>fR;^N>+*ioS+xRUv{R#f!Bu<6uC_w?nBkl`@^u?1+8)frwS?wAXWr6LU z9+qs;N;=W=J4505b$*_R&+GYl5k9Zs=cn;`B|krh&x`qaJ3i0j=biX`J3oJm&y)H2 zG(Nld`44=~;OAO=9>~upu7~FoQ9nL+;pZ0z!*d)zzk<)UPDcN0;_0~z^Z&}vA7GtF z_&Eokzu@Ov@Og*GKLnmX=I1}s;rVTTeg&Uj;O787ujS`=@cAK8KRy@m^Fe%e^YbV8 zJe!{%#{Nv>=PYbDm!DO9@8IXY_&kK4?O3)CKR<@gN&K9i3eO$+`CA-&Y`pLVn6kB4 z_g5qd(z@|{A3Tjk>m>O7_X_mtds=(;7hu=bt$_?OT1b`Ga&W{9I@dBk_08*q#1oLm zzZ4jfw0+K5hYJ>WN!3*(rTd^TeIsWM#-t`|C%n0GP&DR1d=hu2hq*JIsWW(MWiPn| zU!49K1voJ$#}SAgho7Qz^i^RTa3j))D(%qEVf;W)8~2jQqfmtX%@FoP_RKV@a|KoX zRPx(2T;X~Bk>zMS$svh_tNhT5bed}GEZl|_NP@d~9F1b!H0g}-rsX($E^-uMaes#Pia6*X5srq5RB%PriO zpT~)zXI-|_?k$T#?{Sz#8&iZ}xm-qf@8I$;$LQ|C{6rGH%X1TqK#a-sPR5&mD0#hwbvqZM0wx`44(b7HxoP1C`zeti zKiF$U!ikABB9USCkUazw4~ayoQ%0NTU^~8KpGYKWfBzBp(s8v?oSz`+4Yg52D-^#Y0#==wC?Vhq0*uM(Qq zwVpz1>ZMUC*Lg;{x%4djpRc4G$j?!hlxf;B#CO5`hGskPrRc!%W7Glncxdn?mZ(>b zHEp4PK`kZZ9QcZcF#GaFocWkJvq#T-svd~7K9qKMjUil+#buU{6(ceaz|UhVDg~r= z17=sUc4*1V#0CyN%LX6OT*Iz0rdC6RvemzFrtfZ|Oe4*i4(XXDLZ-0jE4dhbk|E2^EwIaS$YK3c2*padu-qrvZov|y^c8FjrdnjRwwgNb@_NufUJ$Iy+D*^0o zzS3_{3RHRj*!#z$Yp)7vk9u$nFXuH!BaVN!tq-wFty~PE0;5cEm_n)O`jfOBvBUf5 z{>+u!2ReHm`c$D+JwY8lh2mX!JLP?+uyvtBZpUyn*Kf|DJAcNlgVFC=`f1Q{aZ9ek}GQ!B*z36gkA z^b&O1&VsO+l$kwLZ=x_^6PGrGs(l=Pqzh+i=`#7F!l}_xAyaT#`26Vp9sO46YbTgP z6SPyv&N-;~%j6K@QFY9%3A`f zi?7GN{x0GYqSG_-dJISs9QobtyrCpd2jLvER0yq0czmgRpRjH;T{(#LUm|TWN~G97 z5Fazzbb&WuiGYym$DxxS*hsYU6HCqek2d)|X)UWFP%>n7G(&6=UFoD5S~tO%A(y&G zdX3omVADw=pMye>ZylXrHlWNPC_0GYyng!^pV%qb%m8~Jr>X!A2k{mw2dDr|aX)3l zPObY31a4Ut#fKJL$Q(`*mUE?s#Eas0qx(XI!u@ot%%W%&)m8A2gb$VZ$lrW1o+ja+ zqvZWe?1Or6sbV<)zX^HX<~;A^m}d0oVmYG^L5@|Nqk@DXBFC1+5;da3As!WEoyA$L zdV^0amQ#LXD8gP&zt6p9yg;6#Mw&M6EsMp*jZ=I_EyCP7%AKgJM)zT4fwR#fjEM`G zJ{>^t=8zr{X37YfbDv{>piX~_!Xd~BD!zk8y&aX+ugQAf<$67+zw~fU_!S-ia&W{t zl>Z4o$U{UBbaeebg&FHRohJPC*x$um$`C=O`@^nKd2p1t4@LuU%W&+N+tK$hXSf_P z0Hp=;b{WcFlo3^QF--CS(S9tq?a2CP(np~Q7Q+%sq ze0-8R?@ zYEl&+32X~$(v%{McO?Rz8jHHk!h#~)kTd9_s8-83ByM(CM>0In)r4mWFcg%gWv`rQ zG5ohi#=E+UZj0i}M@sN6Sri$p$`qen*}MZXe=?G0x!+%88Q-ENF|vgJRNTVk3WL%W zS(a4b#XK^N=asS4e&>-UCS{Q9LU43A{@3@{^JC?`SuoSI!5S8Z$HV&O!hakOD~J1Y zC|ke(U3l?$SSEik{*P#ns=L*_>VECLP(5Po6Jr<=31K+(aWd3LvTOyls&5fn?Ph@& zC>|Qc?xRC?$%srN8q;aIY=jl2n@4T+6AZe**+}-L90p2>#Z{{;dsJG4L3#@QQv0D@p;m zD$v~d;00RQC?3{9hiPS(EFi6^h3Ek^N%4J;ivedE->VjO85--p3dN3{O`18n@q)NN zXhg5s+dQqkp(wU-Igq7n_%RDti)Z6s4qO9TfE&LGn}UPdlE-MtUW9D(DcezzGd?nB z-eU|p51{I(XJA-gpbwr)fU6M^r*J-T+Ms7N`8bimdnJCC@w^`0UQZQv$EzKf0&?_I=kEi=QI4tYoLAR%i{FWSz7h*{`M%)(&c z5u%8na9j^mTY0QhZK-AtOl#uLS@0BJ8~E=szPh+MQ^$Yqi~E}fqBR~edh1ZFcMNt? zS27D))`UXF#s0fU+c_9Uj20jdJk}4&yH@md=SdJOQA;t`BvzR-Gpd< zo!=1dGZZp>YL^DJvc+@9P5vUDZ}R!;`=vY2vQHoF< z#gxr|oCNg!n=~^2xbW|h)a27mM*FxmntUH@d^gssB!kw=A=m3%wrRb-yw6xKw8>g9 zS*}iR^3+gdF>J{tKN&?jS%G*rRP4S9ZF2ciU|EJ~z8BvYG2gU+6&8~}B3!`PyntL` z3RK{EOZR^(M|CvF{$2o3+)h62dQ{kdsTtI4ANaxBRw!WB^Q58+igo=3YT*Fv!0H#s zzaOQ~VtS2{{ut9frk8R2>WLfCRrWndOWKD_{v_$+gYYpp4)4b}JrC1%BYiuj(?Vu@ zpPo0;a`0M=$}+7*&b$VUmw@MF$m88w00`EkT6ah@%M+x1#eTcGm*oRhHxMgU?J!k& z?ytyU*o3RZ`Z)JpXm^4aIoljGd980Wt=W#h8f%upHd2g)58M!TQ7d>5t!52jslCeP zyySu2N!kY(52z-Q-m?BDVQzbiR4ZC}yOFi!~p@5tgJ>+QZymb_b(ocRlr zsC=d_}p)}@W5u| zc(qVcibZdR_H;!hgI-JmmmW?j5(w0$)`Gndu=g-rtOdPNQuyu_lOuU z3r+s_J)g7O#oGv&=3ep(g<*+Mq=5*njtCGc@#7nGn(>r)MjOywG>6kjYIgOo1QL4W zl7HM?D4##XQZsTvU#ng9khBSSfV3E0$-@x*Q1j@zAq=!H>=I(^JIM+q0d?rpm!UC; zvN{i54P914&lvp?-LW1H_6d_03VXs-c|P*5Aph;Vr9HQ|(MB$g6d(H5^ESo`|7d8W zi8sbDdpj6EJ~GsheX#cbkvR>a;3rTF1`qqgvtJI}HPkflMVWFM~~;WeHwM_0x4r z{I2Vp(G#iF78T3R;Eg(N>O8NOI;@qlqIVQAc=#{)CHsStbuDbZuD*I*FUq=D`A=E# zow$cUL^04JdyQT)4`iShH0

    ;Rq2YF_>r-P=cN+e#Pnt-L3_#dgV(BM}^vpVq?!wKeV1{u;k7Bv3~T?_84H~f7G z@YsM3v`E14dcAr7$@7ZDXAcb^e0Jw>;|3ZyV7eF3if5aVT1$!4Q2w)IFe9}=jMOlE zSTc7pX^@E)jGb+W(fFi+_-vmEpLKy+AGjNKJ*#?sO*{T;`Woe#FSN~&{(U#tto+t( zhs`4Jx9P@v#tQS9#$>--{iyD*Phia-EfQb4hcUX~h*&U?se~ruuN`cXtrp!WC88+l z@fQ)&I@w5G1A*{RCvoe%!;^61V7jCsSF_rpN}DB^C(e`Xi=BsL8I1evW(Qri#M})< zG48<*9A6feA%Cy_ETfFS7E{EL0G`8^o7kohl+O z!zLE#(yXF=o?R?jsos%a>`4EN>p5yKLH*$B_eI6-!|3!tr}t3#eW}t?CxJ%r8C@9g zFg$nA0XLu9muK8lPJeIhkWXAabu>}(Fn>!JprQXD#sPWTNwL6l7hSs91NM-&ruzdF zAKpD6t(3xvJywct278t{*|7v|&JpAxB8*oM_%G(Jbe8W846`}gdV2%kpg@k1oa5Cr z6E>kt&tRskkjcJ4U(Z?n<$4B(nAUUd?f;wWIeH+kXZE&;^(^xKpReb0{p5PK91^*n zFV3R%{9-`U^=$3^@2uxD19&}sTmRSBbIM>^tx*HQ*7NLb#(ECs9EbWxuIKLCBG=Ot zzoxGYD01vN6SKb#iU51=Z^zSp zDNg^&^Bc7H_O-^HOs)2QAsw3zI|7b%F>?7I#VpoRgaAi*7zEU6-a?~Bi%Qt<5 zjy-JRHw}3w!obsg5C*oR>cAi&v|21-;JKLu1BurfLMs$PxcuF<7KH)^;*1rN{!Hf5 z`v06phYgH)P*^5(g-~Y(1AC%t2=#!V%wfez9`asVc!S#70%3{s2z(8sC2;tFS}lbu z_6(J<^~dlSI1N6K>ri)W{CwB0UFVOL9ghx-2<72J{!=o{#JmN%NeA$aHcM4VL-P8bJUvcWo7(iFXtcL+Yotbxwq1#u9`>o(7&ac z;wEeFFQxTIWt6+%yGt$q54FVtF$1t(GD$CYdh4PVbR-C1gGD|5GHL9%0_|+rNFe5$ z0o2X>R6YLR4Ah;e-WD0Z4f!L|U++cy(USvAIB($$GhamfBJxG((0R#?%oh!3z6j3z zG1Ixp*ght{=(-sOUnH-qggg+|_tQqU~Cmq#t^j z&UADlZaZC^h~+H`P7v(c_`UrS#0`Grm}~LsexShG=;(25jCNwPO?1_++LGOGutCa< zH|k}yR9U@@cZ_jQtJl*0oZF9uX$3kxM0wYQ6p23XOf$j!v|A8~#0;n2#n0|@QCscz z78AcDCc6*=IwV0YcDjn04RlKJowDd&h1{1ey@O~6*@qxC@!X00PhaySut#CxN(LvP z|1#QSH{%`Ypn|$o_J37Sm*$zx_m;Yx%D|Uw?C2gW4I+`X|63}JCab61H4CO0@Eh)r z1hP4xQxuh1;G1Dw`b-~_Cc>a;LLM(GFv`Q|wR6X)EJZ`l>!A>LP`%*1xlV zYDO_lmm3nKKT!u^B9lDxrM__tWvYa;r* zP=ur-lv1Rk$9#3a|589$+OR=r?NOSeRw%yPTjTs@qP?TZ%+cS$;fHsDzUvWpdymve zOGsc))XKC{v;Cv`wc5d&d4WZvNUkfsGG?S?WzKLg36tHbF+ms5N9|a9SI?h^3d zJXVQEr&mOL*Rr6tM=du%FD%fCG@m-DX|1U(rgTE!E?bAAZL<(-_ zuF;i*S?yA*D`8Dx9Gxq$Ciw`>{zJ(W;oZMR*XNywnQ)qN)SXTd4SS4QjEEyI%*qb)k`f&TN^8}Iv_iane>iv&}__0Ca7_jm7cHahLQm_)0I}5 zMGiWGHU*J_v^*cOqbiKY9^%_&i18+SWHUgs9IN^?8Ve#sG(J zs1K(K3aXjI6yFFNDbzS;t>K9lCo)?x+a9A9^ES#}s`y$Md3QzRMaTV6GcFH0x&Js? z&-sPLI1XUW$&gd^PP39aJ1vc{yoD1$C%Zp87MWll-dCWg)YsL9x7P)ma7SB|q92Hk zElF-^M}n;>zCUcNFWrL;elj;S-Ofuryq*6|a98&qa*Qwv;uhdYE9cCU!!D1uv}+g)nneWadQ9oFpGMlqwPam zD83#Di9@q(m0qkObLQN+itjuue1&%|X*d0&&Lm&e>-w&nUf1LAn>+A1f6xlxZE$Rz z^b&Cz{R94oYxZBDMguDfJQyc%Qg!%{GZ{poc9=~tvBH`!q`sufV=%=+A_7R6kiIfzwhkMnv2OW zHqw>-ZakdN+SHrQXO*-~`DvPX3c5`3A!x(X+ZOP)*s!b*ehT#zW4Oa3fQvTb&L*h~ z1%n(}rA|l;UR@swLrqpjukAie!H9@Al>utyZ^6;^;(P(Qq9hWgFKGzl{ua2czpF=0 zf}oc8u1yg23ZD)AY^G`P?>5B-_uVJ30Zs;F_rES2js&%z-=P}*hrnhr0~>(Qj&}%z zUhAUkif`B6#}(nPHKUaH!mK95)+Sac5cH|$%ICLz>FL}BFGM7d@_u98OF?osvZ zv*ZAcBIb%@g4HjsmUQjfT&V(ippJ8{=bUG+p_~t2EulJA&-rFu6aPx#{4oN%((`@d z3v<+6PW4MWEDjQGr@xiM->az9<$s5LisYf_%|9Z;o?fb~8rcHvczwyQw?P*S)t8#$ zy_Ci}(#s!gC1qPD9sV&xn1C1HP3N+^qXZeJ2+5TU3OFYYe*pJV7Lw5y38|R8LMLOX z^u3Dj2V@Zfxwf=(!oP2nx57$9+DiAH-4$OAk(zQ_R(hG|d-w_!=gEp+L8ddVk}a=D zD0(kU;d5PS3Rfn{$=*Iz++QduJUKv@CR>~FUuUk{V%0mnIhM!9lOhLUjS+)r*Fp#d z_c{C)lJG+Re?ZD#2mL=}FKAQ<6_W6aa%}v43o}m-Cv%7FGA4kE`&lN zjf))gV>H{LH`x$pa0H6hHZr$*NFb@Tj7VBsMH}7`a9Xu*UPm2kCW#gT+FM+9Wy8os zhrbBfUwc_~2fOzN>&qfOSp^$YTD(V6hNUP)W1`R$ViNPgQ?a!%i4LHIDCW^}@5d`v zU{pEntqCcKFqe8-U7UQY>Q2sesMC^D z%j&LzpCq)JLisf;C0pgr_Vc3Pp+gv#A!YXS`XD{_^8z9@7PuP8ulD_GhKG_f2vb+i zVUqGy0}(b)652hz1BmEvQEp&qM>0!0HA=9ww?wgl2cI`Eo>>DjY)g|{V&m&A>|QEt z_9@)E?|a6`Gp=0WEB`sgvNXED&FFu-X^M;i&X@Qh$IP4EV%N5 zS>MNJf{ie^fb%8511x^V{K3hYzz!*hCHECmzA2^MZpk4Y(1Q3mz&HCauV^9@a z9lMthD4@18FUPkpN33W=J$3y>@%@vRn=aQu&hnJV^3TXBK7#M$`a0MF8choYuYnhv z>BWdz$sM?Bk>-!V6YuYr6S3NOne@-ev!u0mHiX1_1+$Fo+d2E3&XTqTM@rMtt7@D0 zchKdvgDyAeCoZ_$B+h?jB$+F?9q5a^Kl-t58{we(m(EQ+0-ntm@q6RHgs;^{4E@zD zn68TSKfblIbjNnGvq@guXQZJM{zB(4ofYX5{I0nq480zM*$pHhS}Ds_s(f*DV_frNN{9>+h9u&m_ctb;-T9YO29q3L`JzKpy%)b#F z>ZZgx$wJemeop=ox7CMSvnquFrRP%giQ*aQEIQ$KIfVtg#cg*5+GWz%kK;O%wLyuz z60>(|K!?q0xw}`1zmH#sRst(A^jPDA&Gb;F5h6C&sv=+DE_dC9h=F$Fi~xQFt+ zT1@+^Y0f>D^JOCO>ysTqxbO0}K(}Jh=F%rjcPs@bv9jx!2IqO{;;Od zi#T_CjLvOAMd_Q^>5%Z=Dz&mwE@%CL7B2v%R!f~2dK6W!a#@Xl&)MX!m`mpud+V(3 zp|BxXPsqK2VLva4MpdT6eooZSZ~%&SE^*J9L4TM}A*xb0}fc{N}SlW_N}_=JWV^GG5R zzjFN!#;lKv{)^4_KfIHsB=S!Bc>SO3q~GfF4Pn$r-jqwi^?j>fHqzH&daaR0Wwh#* zMjDmY4f{!;*U+1H69`MM>>{V&j~g$tA6e6bk%aqF?OS(9-taD@{Z6-~E<*kQpS$ZA zK3#rz;W^+8j75Dm4O**kBoDV}8=kdU^uk8`x!Ll%cDGuk_>fYe)teiRnD&wpkn#*i zUhPvkm(M2fT+Vy;Pv-LZT758#g96Ow4DTezY>gPR&~LQk{H@mS^9$)df3BQA?k_31 zcT3>S&D{d%cuZHP{OXxM=~=5<6TXD%wiTf8w-feGWY2J^TbXho*RW6r zX88R)p5S-AWO21Y!;Q6^98OQhhplHMJ;CuA^yCsbzHVZCfpcPf6%JdH#W^d><_x%6 z)M_W5CLhSgIK%M;(vUS0h27zk<5O1Q z-M@K^4=jLck9UY1U!qQNg43Y{ykL?O%;l6$aL9cFywE95uphtBNlx$zexcKxU|ZJz z`jPf`e5k#ISnu@>Av=L=lV3VVhsL9K@$;9v`jd(9a?o=a<W4@6l z@;AvyQ+%#$BTezSjCjU0HXhHp_N0PH8#JcbQQUYoM5jSOq0%1?lk3gl{WHav;{HEl zq&eJyk=EH?bN}b)Y4jh}kwEFBg2%F*0{;!s@t@uq%8x>Pid$D$gMt#5`k5pto;+ql z19?Di5FzOlC&M**sGvBvoMHETlH%Ar8AM~olY71n&cbb2`BVenGJgK9J>ln%J4k4M zY_N2>vI`ACJLn@2`cH$UIq@6K$s1;i-UEnwrsG{fiEFfAt;mV}Wu= zwdX;5!Cld*Io>jBPI{T=47*70Sb)EdfGrozK(pqQ4hwXAB+xMz-)38@@a4#`m$2_C zLYK+o7V>8_y!7@oyyH3m4H_hew}*2ia1MVvnWMuXGl)gNS6V3<=<|Tzfm)R{$grTJ zbe!InkNpYlzWz5809go?ic>$I^7b=76NsMy^@j6vp_7rj>r&?6#O{*p+u%4F%;vUo zFxdm;U=BCCU&6*yeM#ha2Cw;(@!Wm#zd4>KFX8cY*T>U8Vm#e1GM)(v@BcRX{vU9$ z@gVnzr!V(Z_=~OfhE_d24MtH)Sg`%KPKd*_$^Q)P=el;ZpZ8p%^S=X3{341Zs~|`9 zE5P6I`Tb}+>f!h8ki{=8xcK>f*opA-yVy-o_Oo`n-(J15I9)CD?pjXJbPbc!)xu*( z%~A)nKc^k~vL1;3s|P`HHg{(({-FPA-V?Y!`Ucsm(}%;Hxwy3+|M^+)t7 zDK9X=DC*?=07*c$zgM+0WQfqufd!JfOXhfQ8mi*L7vQtf_7MwqkOwmOR}QS!p`Yr~gsme3J~n50VzYdYm$q!iThTGsyxl;s~HAU+rc2b?Tm1Runhc^BH~$|^xDqgx*rXO!~^Tyx-=_Y-m-Yx%-hPpguylA`6IkFdNPK;EQBI zmR4R5C99t_$0OqU)7r2TMI&b%{J&gr>Jl|A0q~!91=F%#%top-%c&FI zGZS1i_6ay>|3i2Km=|NIZq4^ccz#;tU}(;$LMje)O_(Oy`K zPJa|%Yb#kzP<%}v>O(-{TS~mm_QapH*5`%pM;Jd0=#3FWEQGCI7As8h$vGGcc_{R- zWD2e?MS;abPS%**JPMGBdq2LWo_jL`xpp|gw!6L+aW`RiNfIEpW2!P|*%6!5?}&+II<54=d%cn9kM#{vA>L1Oh2@P@;V`ry z>z6fcwde~oA^pf@+6QT9K6avSRZ*{01! z;o2Q06fv!MzdVbE{}ZFP zf{QfyrrzW?DS%!5Vg7kX$I|R{Z7J4|<6owT_?H#IMP?#J)-+J)Cf+G0TAMCv3sP`1 zS9(#xEUbr;rfv=Ae`WbKT>cGn`HU30rmgKl_JB_#?))f;*P$Zj7`(M;Pmjd;h7J1# zBsUTP;rJ&>BL0ct|7m<{X^^b7Hg5A>>K^St54_N~y6;DKpqUt72A#5cL#-9xJ_~B> zctagMz_rHrY;6vTb2YW?=`G#_;#GPm?$HnmiyxAX#huI?r7V^@Ub^>g0GkOH>~S3@AfqB+^5jWIr~(4=e@ zSD|xZcEDny$34Qb_7+*un-j}z!q(H|-|lFvobV@Fg-`gM-D$#^qTr-2lJfFjV-qY* zqNW3lIiNi{n#MI7BZ;Pc(we(g)-*eNj#C`l)t1@}E;EqIC|R1df0OtIC;*5xE!D1W z#!@*&zyj{txQlkJW)wB^IW}|cC!M&~?tk93ZCvI_DihwdrsrLp%|}~GeUMhMrajW7 zo1qU<)lxJWW$NKUZOSN96xP%{j9(<9u!ixM_w|Zg1=m7)%nX? z#xOL*SXuHN@JSvMyBnlS!9tDeh zj4$>pJ$-b(;a4c&0kEA!)GeE-+da!9b-TY1s9TNhsL?dPZ>Lbh|40%1(H1J%0h+Gf zT}+AU3Y|WYHkZ1?TW56v3G^3Gys+!Nby1#faGK1B%~w*YFe(CKRjgR6FSM~!{b_hSAiaK7Z>+q5%>m?NcElwez{qEQTO0~gfHk;dBKB>FRnv;G4q}LGdi$JtdnbGlaer$?8BKPkTPwD$NiG9$1KQe6pclq=Ezha$U{=i5o|7=+K9{)x8 zUySyPx%`Z<^1obu(enEKP1@4Zq9czib(=%o?fvO0?I|;gP#~e!s>cC2?8lwrJ!bWu zv1&uidFJS71jE03Lm|)SBLc&I!c{2>EgS&F&qNeQe<^zLK6>%4vN$Inl~^drP%)GG zJ3|on0Oxg|z&%eg?m4aPev)y|X)RA+oYUGr^e5c^{>-?IR~1!{gER~G9f7vnabo_R%up$SQt zP$aC1{aI3nAp2|he)ktr@!YtzWi?lMkJOp=pXobvy*!kg8kR@4U&vm(w}x_uq`?HV zj}~X$VpDlL@Wt+{@S4Zn7ZrsF9^DnL~}rJr+?6{DI^$4o{f0B zEQB$ryWz9HjZ@8xrSvs=I*!s;>*>UZbW%h*h0@*ibSkBL>**ns?x&|SDBV|2J1N~? zPv=rPRZmZ*^mTgrR!ZNXr)N_-TTjoU^cX$8kkWZF?Zw?quO`rRckMHn9GH^>_BHD>6vM-Pf#{wpzvvDsfwrL}d~_fYtE(Vjme!>(ek2`+xI39HRf zKT|gB`v?hR&a8~QAkMknd$ciYr8CzN$hBsvxp`SDU6#pX`~>QlX?O^z$kK5@JB&O) zL87os^Le{P)ms~K_vbRFk!Qh&<@_%2By1T~SRt zofuZ*u?u>QQ^Vys&XTOTcg%7Bb$(K1%$nG47Kh6Ppc&(VM`y_d$M~d)6Gi|wh?z?- z9_XKxo#)8G7qjq1AjSnhTk|h+{*?T5FSOWcZ4eeVtlB| zj3EW|Gc2wLq2Q$D$O~tXAzp@yjPNoX{NqF<5sF`!C(*O}en8D>?8C18asxHDTON*@ zTPzPp&9>#?s5zR-W+sIrvCI?$gOPlK@Ye~zUyF-4sM&H>5-5`Rt1gc5*P;6){@T)n zex?czier+(x>D3xlr3|mFX8IE0~Mw1bOt7*0;5$_>T&x=r?O+sjUi&V67l{MUT(y= z;J|-jmTpcv#1g?d{&$*6tkm+tJ+tedLS{=dbJ~NXnHBBXXVI@?7tcs~oLLc@Qh3G?aA# zvw+ThBp+ojNfM-9=-U7TQf59cn4_sDiDSOQ|3WhMR(P0jz%RS{_{^bJW~sZC4cWPs z+2lyWyCZ64cJ9jT$?_~W%Pug=d^pY9bJ6J9q2>S@++lUBg!D>>b+QC@J#ThI-Xo0{ z&)YdN?*%V;sudzfQDXJ3&#q8867OZq|j3rzo7i>DB)`wBpeU*e0y^didL)-GOr zit7InXjECfie}w}N{?O;s5CO~(){pzjTg&zL-VM)Nxn|u`K%(J!=Ih!3{0AgeMY<7 zu!T=D936z?ZyDSw5dZwL1R1`EZ#iaq6D+zDIbS;w)5?#FTyJyF@z!$yA$MEDhh2sx zZ65-IIz7XCWLB#x00n}#N=I_4g?~xY+5S;03!Pn)#D?2vVf~>8FGO^lD<=5LK&BR| z_3r3`^(G@6zqGL}{`kY~Uz{=wQ6OgSGD05}g{C`(lC}+@itOBI?nPwZ@WKK69M-dg z+7EP5>Q;1HQo(O$yV&<)+ly2c+q9~+RF&rg%sx_NUqzKTL?OEHpyR4uXciYLXgZam zilmiITj~deC{&+$ehPm@$1{=fVBzmWw8`OtJ(|J8Q*6Yq^n8Jg!r|d{vPXBIj}i7@ zwi^S+9vAr5`}YiV_Ne&wM&k*4Sbi3spB+kEw}CI>Z6}UPu$G6yY~h)ZYs@)#*ntRSpl^&M1AVFi}PcbY1R9FIQIo zgZi8jw0ldf*s1F3A>Nv$OY(8t=Son67~W2=fChjI&MVJX`W;ws2?i%tCpaAHXdrPe zZ@Cq!a%XbydO>T@Whj0MTABO@{F#0l>gZDekiYbK{BWMM9;#o;FUA=>2RVA3LYpzb z_ueuq5QCmd5jtW=y$FO7f2I>w`2wz$GC&Z+Bwfj)-pCv6d;@L;&6CIEt7%o~MPCgmLwOjUl0{c)}v7C;5&miEW?SoEwYx*o{HynLKylYcdUx&^^ zMmvFMdXHGkj>yTztbL}anbhVo4r&7!Ne&7rH)+HN-RN>>j=7V++A zY5yo&-;vNiS%_xoF)HYeA@Uy?v>5)%t(YRWVv5{~DRL{O$gP+nwqoHn+}D7chA#!^ zc{f&B^$Cf>hU1m3@^pEi<6}6C;J@K*38JM<1$g(S5PA@?v@xd5gM=~9E|%_x)RqmQ zU>?cw<6<6q4%IC)b72L`FWZOM_?XRGZUa=Gnd|hg!nF)WHy8>P7m<%oM)~s~l0W-1 zIud|MR{hnAgfLo=uVwu7ZUSH`1;B_Bjwd7k8VSkTAPgXVEBDkMr`%75%MFW zgT(){>+dDAu#=hC$wku5`M2w#)%E!{+GjF$!Q`06?Sy4wPHq=0J}_cxW=F~83%jZ3 zvGA;X^PxePpZ{Y$-c}ya9ATf0`?^%2|KURarGfaVSXE+v)ANV)2fH6Iv-bz9vZ3Dl zS(I9*IU4Fi%7*<2wCV6js%}z+A_c#N-!~1BLe{{dSpNicc0}=0VfJ8hCr^m=XLbZo zX$`%=9fsPU&l;CHVNU_UMA-ni#|zasD|Sfe+Y( z1Q>SfW2I$3MYr0nftsZl7VpOqLk*!`O=&}c!6NkAh4u|PKRBrExgf8;eyXdd zyCY)n57f!myTxm2yi9-nA-~q1y-+V@-V%N#544@twVyJ)L^AL6Xc zh$U>55hr}H;eAM0wR{y)%<6{47IrI!T_iIZSmjUAvi~!TS*oO*(HtuQsA`?wt+CpZ zWNsKUekaOy z?lJrWVBVi8ZwB@Jt~e*g{C-Y9_i9yE=<`VEb18N<%G}wHESKn=4a&}r<=))|9iiAn zD6dsM#P@+|$+_%m#a`0h7-ldZy@^8;SU*c3rX{DyMzC6~3sq)SiqKsTx*|xS(_UzeXQ3E&L@Gx$v6|ed+C-@t$K+$43hx z8e#sBRH6O$6sLbm+@CMJY1I$%!p}QP3-1|2`o54rt(ROUbg>^K2ofClcNz-Pk6|a; zeg1ngumj%!dt+A*5@+L|f%?)h@52YuWyTRIJVFc4{9Q*)BkU8ZmkQFle;y*o(FVVu z_|Uv$i32FH`zmi;jOT9P0lJ{lJJh6go?+qv@IE~ezWf`%SY|YTU)>wA;kt)$&8CEF z%-n;;c1|~n6*tE}#8rRR4F3?_9RFZ*_rneY|B#6t?tt~roX+tv$oT&Jf#&6hKOcdd zgE^R`SIO{{0_3K->{zELJ1fDMD zq2fez_O^p={W9aYB!9+N(_>~8Cz9{ZSpIZzdUgHu|2Dl6(#y|C8&*r3PDD%b6*0#V zV}T}-_xhed?uYN`@Yn9l>O>$~i4&QAWyDrybg@u1;>N$dGp^E$cTlCB&|xRqEqxP% zPcOg|b^=v-*IR@;GOzTv=u{si|7WV7Jky$qp|0N)-rvGoBKn)Vn);i?{dI``j`)A2 zzk8=e^mqL#>hFW!QGeHb$Nha|)&C>?y*jeLrvlX9&%dSqp8l5mdpyvjzt;a>`g`Bh zi2i19f3M*FUL*Q@ZPWh#Uzpzr`yrG9-HKA6dB{AdTcuu?KPN7~@P^PO%8J!=NN?%4 z1d98hbB#Kyvi$GxZup*7i0I}qp$57zHql;kBa@oc7ABGtMr?AK(zG~%43M(wYveG1 zCm4@*l;e;x98LyrJ4+uw-JzlppDQ^gg@g{`sH{R z4yC6rIhP+EO1{-9M3(ccLS$KB6(Y-Gs}NbPw+fNv+x+lxa;X(>fA_$e)Crau8R&d_ z;jrY;C3cvn#6XFqCA!A#OYm%M95P<^xD|4;ZEY+r!3|Lh6@L$%gL9%?%A4 zn9gDcNLmR~3+FuC!|-_j%Dm+HxIHrfypA6vAq3va-gzLwveK1&A8f`{gnSYI=J)!L zT^uHG!vL<@V{95Ugd%kq(?Mt+@0(jS!csnp=nH7+K0-P3(0}GZ0_pw-43nZHZRYRD z%Hm0rpfyE8Yl?){6bY><5?WIvw5CXCO_9)=BB3>fp%r!_ZiWbl)rhY8Cay@dz*_68 zth9eqE^yIREVpa-`|?B!tx|kv$ZhO5T&=8F<#Yx-3wkCyxPy4#|Zc0mhR zmL2L=Zz)Az+^B(qT)?t{8n-9=rjQARVY*YD=Uv?xKxklSU|1_K1@3ze& zaD|n3C&#kHN4Th@6;IWY&jPY@D1A;6ezGgQwx3a^okF;oznoyGLQ89Hqre|os%A$L z0P6*CQeJjE(cY@c9+;?P6`fF=pQ?w-evTRFOsPB1ZsFL3tB>9?1WmY<^Dios{)+2RYy@lc0$VD8u;SXtg;R&t$bK2rA1gH z@kdZ0Ri?G3TGUEqCED}sMT?$|`=!g?z?~uOvft`MSw%lC8SVWo3dzbM=)BWgX-zu} z_zsrp7J13_(tb8{V^_Fat%BvMFyt@0Pu7Q=>GhtSV`lvb1#Xk=WJ5K#=W1`k=U`%^ zIX*P7Ei;c14A0+B%eJY?1j9>CN*He4$afrk+nf`pbvVZIk|dOuG#-t%kf;Rj41$Ho zGqyYSL$XD?XDmrazWRZrBhIbGW?lz}0pLwO3f0{Xb?X>)m$J-mWmOPm`8=!Cam`SQ zdO@NBaL8=?N3#VUn1EpleZ-(X4Q&c(>)d3Q#3SPoj!4!;h~e!M0EgKr95Ngo;PU<2 z|Hs>VfJaqyjpMs%L?qr&7D+@2x=0Z*vAhO|nk5_9NGJ*@3MvXB`r6$<)BuUQ3%RZf zQ4mp4!1gNkh7^SqNGJ*+bWmxQyR1ryLP#L_pE7gr-A(ZI`@Y}v=XuE9GI!?8nVB=^ zoH>P**gXAuXdMnjQ#_`%O7UW3^|82DSbrE_JY)Le;C>q4%KTQI0()+zySsW!JMRFY z^oWOm>wyTN(=?g>?b6@zbi!+Yfwt$R&v81DKK!Y7dzYfpHLbJ-kexJt7w=7NF8{0Te_m0RG^>5A;EWu>f{!2|v=9Y$_zc zx=+&=fS8Eg4)X$dK4Jm9#vi;et&?d(uM6UyBd5Ll1}K-u(DYe80Xuv8mj?0=AFjGFgmL7O-K~w^BbVzIT0(NI?vDHbm#lWp z9=vyS8#om?Z&EuRCVahi7nDov;-kU1OCgjctCU_Ao^}~i?Xx^ z#-}WZ67@ZZ^YMUl#J3=w=N0IEg_jcm`{_6YsrvToSbnddrDI_@$K9(v@H3CdxU-GO zmR)j06f2L&qQ4oDH@S3$Qe1@FC^VCq_Y{uG+j3ME@u*CAnjoF?lrbuqSne&pPRHvv z`8pM^->?|`!(us#AO0jpaWReJO}Y_{%rAg(Np^(|yW{ia@ZA5CF_fl{b^d=P ze~_$?eY*T0RD$DqY^P~FUvFtVbq_doBObP+%A_85OD7%ly(hfk)OxLv+|u)sf!EKo zkc*kgH@^_;bHWD3!B7XVLF2aYVj^FNPy+{S&pj#7n@cvKhu~JrKZJ_O#5mnEtOprH zQvEtNyWhfl@_3TiKxCTINyK}Y^Ca#F8y(9hTExzb6KNuHs$=E$e2?T*@1|jjJEZT^ z|rAHGPL^qaMo}^@JVFspiv|O`9CKQ5PKKjXH8RuHp}3 z^ZzfivCBc?W@#=ez9PaPe}?Q}+5UL7T-I5(Kk=MuW$9e1h_4W&vV)z@sn*rIZR21{ z?ziZn;4t1&nO3x&y4Z#xel<_$4-aq`Up@f)^EZupzUD(ys9<@XoWJ=8>{{qb-1>%)%!<$is@!TaO=s7?BM z9|5#|CGC@k@W;GC;#mt>!?bYT($Z-QK=JqIEg}|)hugbohn|a2J_Swo;NSA>ES0WKkp-(|zSH7yq7M72CGG69qw?+eJ*0&<>9JN{) zD#L)6Y(>%3mb8*Mz^7L7fE&gXQVLtNuc2uLjcZvLzmaM9r+_$;C@j2UpZt*&bM&jt zJrT{ST>l859)lBEtw4dVS;wkUh*~`kXNRU{hTe3Z&HYE$QXmTbE$qLd%)s+>co^?i zFu17Vdz-07|7ibBJ+RjPG+S~Ko$4lR)+#Upt6m`pD1X%=%07};;Aw1frwcdDvsbJ(FW$X_=MRI~jzMaWM^P@;m5LZ9%;YK~_u&fjJJAzn8t%>KFv5XjJM`y1?vE`~q8-g&oV=>)560mAOz#%aUJH zDk>L;Sk1IBXb9Eq02M-l&agQXJ#`ZZUS(K026Y=6*4lEE2e7@U@Zr#Yl-XBw{H2xB z=b_bN{{j3DjSa8NCMvT=RQ9~A48Ms9ZJ_bO>u6KFJ-m-H#RJECt0^8h-p85Zh2p(A z9{As{=hFYOo`2lj(t0l4OzS!4D_YMRzB=1_uHM^xJrguM4KN&a*z8~SzK)x0a?^*! z(v^bULNjGciGq#YVz+#jsdeKVXhY%7#h?lOgP<2=JPPeNmY-|ki}4Cn`%fkY>N^V7zsMvh-WP4qf7(YGEoYHjvCQ6)pI)FarY+U@v9!utymX^wS|2 z%@E{ZSZsm-xa3CQm|=e}BaRu^<+20uPHP$bwVuL18xRJvfcNjF1JpRYzHc|5pBfG^ z5*~w0Z9-_sse5CKlnN1}Ri0sE^;H&TqWV)>BTI&r^Fb-kplLxyl>4!aX!khkn*SCU z)1irxl*~Z$6U-VuLP78TD~eT#Tj)hqE1XtnUgp&EC;1J3bCS*Tn`C}t@;?twlJ`vS zzKHP8Nh?JXCxY9HWpk|sS8_kNO2^y27EZuAWvYXcPG+$}C|>dXXrY0{Zue`6To`?x z&OS4jDXT}?`&FT}re&h1eu6UdcZ)?>aQ7;&g{^GWPNYq3qcOe#tuiCNs35}L_J;B` z?=I1N1~=bUG#@#$E!_MEIInOXojB{9I!1E}BW_dcl7!;5XeynX>JUcDjHX^};0c5I zVbOLXoqJmdot@FXsmaKJC#t)at80Ij>IRDH{(zNHSO7!A)w!2dMU!e~haUe|)YrEq zQft(AqMqw}o$Kox$Mq>Q1Ef;Th3^BlwV!pu%(KtBtQ(pR>hmia*~Z|#jdFfP)BGA` z++$6_Y~!8+7GGoBlWwY8qd6atix5oP+ymyJ6l;tJ%7>yk0*%>M*yR? z9HMs^g<7P3hYK`TYKeSkj-!aaL!;++FmqNrtfy_K8rlOVmtehUhyKgY_P->tqSN1K@Nr`N!fm+Qxk+E=(YJ z?yfkdMzoJk6(#60JGk)1i=sjoQ2oS@v_XDk3Dj4M;1v%@mQe|oQLsZ#8DMBQ+CFv) zez3R!Cdz>>&f*&{3hkO$Qh3irXF}D@<8=gV>$bx5^)KhqtmHhK6Sk44%g26>Z4FJH z#wd61!uwJhUF>l03Ji`Ht#XUxka6we2I(JMI4s2)s)>l7$l3t38Qx0L%-F3on8%3; zHl2-b-b%ujt?FbaY6*sAvSz>Z~yu?*CR4od;d;t~IZ(r_t)}?%98` zc+drZi;2sj70Gku`^iaD*b`_!93LOm5I%BiBtABo9l^ELHH?q1PS6y6BHrmg zS0dv569N$qwNx!r%N=D}JS=Y5AYlp>XSH({XSFXL+@W}cEia)st0UZ=Up%-|@rWds ze+I)pRKOpJsrwf;G@1D?jGrCaLV&&rKa3oEjj)66(UO0zj$ib+M%-%N(d1jn!JI#ocu!iQIO{pff`eJH{hL&4< zrkW;C?6ZHuixp{ouk4fduk=2s0JtU9wF2(?{;S{B=|r<8sxwMx@1h+nE2eNI4&5#3 z2;0ESE3Zzsz^{t{tQt66{EimC!rF)9 zCjYyD?dMuK(N=Coq$RAGa*0LTHy?x54WwzAl*t*DLvY%ULbkJn@P`YkLojIXuHaGk~1y|K)-WA()$ z`eW1k6WYZ6L0E_R^>PvUch#*P0k5?(9VVUsVkvcHqxz$fFAu=0<#WRDLD(V}aY~gV(F13)mO>2d~Hv zNE3F}{JMv7&G~h06j83l{JKxsk}P5Qbu%rjhd%&I{r{X_m-E#K1B|xN6mT~+z(U(D z=m^ak`SWU(+slc!Kqf<*eEHwyS8OunS2X;wR(8M&$pmIBW>~CpEQ^&a874ETX%qqJ zvpog&bY+=B12fpF425rUIU|y-04u>{fSDF8*gFQd|JcU>YG43Z+*}WU0^8D7p&=k& ztd{eMayH&G@M!X2WH-=ki1I1mO(EXkK@e%Dyk9XTNrA>i{-19f!qav3G3k$@6z@EX z2&XoVm{QcVZ*8Asq5RsM6sWF!5)ESS-hYG1)n}UJBSn)C_%!sD;Xm{+-v7tAe-!Uu zGVX7|`Wri0{puzxja1g&w3hxuWCn2PJ6QveB z&Xpd-e>jCnmg48-0>=e3GoqlLTy;|zo=<6CG>A;g z=TX?@;W9o4CR>ziWf-j$TqbMUA}mMcN?F}A#^Q;~Fun|vKU_d$Y^8SW!)*9Yq**dl zyL}s2cs1#B;fps{(--&97t#+jgFHxqUD9G25H|@^xzvERINRN*VT={j>kvy|U0mZw zBFM2Lpk!rCq9sBfs|&jFJj#e>lTJ*6r>_<0`w3d^>CNqZT>jYGp18zP{u7}xkZ?YZtTmcXq|p8D&RnV1F9cS7+ErFnCCSEz(yl{qS%*U?Pw znutUH2TZaauo0~K4gLJR7*}(Mx_<@UVM3to!9-fCqJII~ae@M;U9K9`uIdp(M$SR9 z^ss#oFNdfa@2#_8YYJ9}*~f|f_nbtr2DE=y(f(_H9QNPYBb)8NI`&hgojq<3TU_c+ zEv-AHP1*AXEeFplNft4AMQV}?O@X?H1fH{hkN4w4F10>K)pFJK+GP0DNfZQ_?n-ZO zEYRAemRHRfE^;#r8DFX$ozu|7PXu?A+C1O7Io6R?=dwjoomK!7K$wIO3P)g<{}W2C z<*tMwd#N`x<*RX@>mL}8I9x~wejssjR2&3 zF`@C{my^i6jpe_!4IFh{kEvRMQUO$iVCj#8t>)_TW?;0nY9@Az)O`ObX|hc`r<=te zulc*tXeDqn$L1#)R*{pinWMohv|lsg2fU{X4J-~*Cc4F!h2uDXErkFkIu+(Kb$cr zZ>X{~%bIbu;(Z-TOv}h{D&B3-|BURst8)WBI~}^%w$JAs_zgP>8OC}DKVQ$d(w#xW zSmo<&wL}&{`@k%#M@!9UHDx!{IRokpOT%6Q?RDn%ZV~NWN$rK^$@uub6n@`dyl+SE zgHO;Rwr zM0>K)j&;aO+~DF%sKKZvwkOZVR1LkvJ0HLM#grc`8|{(?iTC&N`%3eB%)Xo=-e>ds zcl7rXKJV)UUud3$ueO}vD?r7bsn27%+`IG4eXioN!!cc2z}JKEXAw=-Tue=}K_u%J zf|u&;%lPX=9b{0c^Iyl=k3CXmW=AD-N1#jC``L6!imb@$d*)a~a4jr@ubK_21q=ww{GT#dz;(fU*`gfJtFM69WK|b= zP~B#qIH(r$UFJt|sufNq-+-1KP{W%GsGZ+mMC^RW^yr2%bX>@PsHg#L%co}{3zLdx zOD~Gn&>iCmKyTOv3Ez`*KU4zL;bf_HHi~40mWFju)4hW-jr$ zUgEvx`j%8uC{dRCC=8jsgThW1v2Qo#yQfzvd|oT!3e>zxjX0qZv4K^AY+*7+cR-6M zfAoZtt+E@MSHAol?B(#B_L_Po`pPm9|rQNJAYVjxxNW@lo7()m+(l zAU{34^@`Qp`un^-~AXIp+Lxd=KWz>t8r)uPd4;XLc8g{mTptrUEqsnU%+)#XNn+nqCwJ2(R$u48Q=1+ zaD8p__Alf1+nd|(c=q-=Vbr$=p-7zBKOvt&%03L{4)|i za>`M+Lg6nmnR6T<%8kuMfKxkr)D{X;{%we;xMKQLwz!uvgP=xS&N-H9ekJ=!i+)6tUuM z2LsTP!c?()2P=*fKN4n-scuoXYW*Cf`L82lYP)Q9lA-zEw_J{+JAr;6BYT8fw_ zqUcm0dGx!S{^6OT<}?e%PBhO?#Ww{ILGPg`eK9-}R=9ZWQ0A68Jf*3@hnmk{76kbF*zPSqV z+&&nCue)%5U&lANsK||XEK0C@6>opm zcm;y(WU!x!wye4u!S?2`a&G4H1ol18nOMc*rH1x)^q6petD@;*e&w+I;POqb}G^w>R@N!W8O^ z7K@FUigy|gb7Q>Yn^fv!YZ8EB-z=d%-sDd*Y{lOCvc*1@sK>Ff6VV_bR0Q_|@mqye z1uu~H6svH01>5NIlH(gB)WJn(#Cyj#|HAtc;~sk+ER^>xtikw3Q@q+$RNV(>Wc^tF zsqpfZ=JLxjWc*5g>^U~v#8tw^VG3WZT+Bp4#F~v*4Y{JaKXU)>1`b9&N)1MXZ z2xL}!>f)4{LV)}oO6iij&d)u~#Nd6IKgm;(9(vuJpCi*kR`_kWx|k_bp{iBps?tiU z;&75m))Vh>^_lN+y_xTEErz{+CR)G8#@I|tG&wn7=09xKXXP=)!q1IKz+ucwggw__ z!@i4D+5L@svbVX+xKFW&gyKTqZhKOd_21CEeiMB}JwUCRWYL`uuB%XqC)1`JCEes6 zl_mB`e7jlP-p03U#O;l6>-5h;mLS`=KL2KC|AhNeV_^3G%ER^m+;B`*(l7LHt#~mE zji=P=@{}if>JsxpFca<#&`ij~N(0wjsdu5^Gmz|O;0(aUH;t;iJWWLwvYQ=#-c8I^ zoIk&7WjdZ4xV$4g1aMGk<5+PYY%Ts-tl+sbAAMh3=$w$5t4^?|=VBxnr@GE@@-X}@ ztLsu$ALUT19X(6wnYwOJpmQNS&bID_H`zUR_bd;@ydd_@4$zFXv}c*zKV#a(SPVFq z5>38PEymtlUQkSM2D&{37deVEgy7af5dr2h1k>rCM{oj+!*gNlF#(F;Xacp$oqkFRu^jo@ybiP*ic zW+rkQzXfk?GV7zE7oX3hUVSzbHP=4}XHz06eSXh}w(si`W8rkc1yS)XUz6hN3x$HV zM%0vlAB=?>bJX9-sLaq;W6+oP=F<{+G9DB0u>RU_xqJ>zm%6B=6Ggui!fG$7EbIoP z;!`TCp3+|K)zGwj(G06a8@4f;o^-#0P5~M`JVQ0DscHGUcSEQ9Y$QwGgW|-`fMn%0ZKTkycBwbS@qpoCY8?HQR`3=VGuB#a11{0bcCL- z;^%h#`J+ea`8#+$;WV&I@VGf3|5ChVw9j3JK~H9V$$Q>B zWD`2#9(!ioIi#U&3jn%%D6`wq!``$6t~ovf9=0z!^GOWdYH+LgI?}?4z4BRFfekZo zmkJ8yEglt}`UqzV9fQCAE87(wrPO_=)b}apP^X^6Ivu37Ya8&45Tmuyj|iC?W)LzB z`~}bd4W~?S3Dm+k8MlHMS828Q6-;LGZWgg*ok2f-|M%vT$cVGO;?{1+yf&znA zz{B7Mc=8P*2s(T&fI`PJfU?2#x=+R+1pSfl;+ys9#_zS6jbDS() zcJ2Kjylh6UvLYAb2jto_+>fA6fd$RkX<`kHbG--1D7D%(=xe@yamh@x%>-R z!E-uF@JYbBJQq!a|2C~@oAL~^C^UT55Am3RXedy_qmsn%mm+$XGw@6y?`lWAh_z>< zc}%3XcgvIg_Eh*aYP~=9arKl+PA1 zlsrW%w9y~v+Jl+8_CS0&pUx|6L%m4^*Efe5t}ihQn93LV{`BO`q-2;b~$-iG>ZdtoV#F*%$*)y^aNhOHiF<9 zMSQ%`=37DC-XMqDi!MYBTJN#;3~Cbd>m6Cr5I#!oOs>}5!vR}Kz;-Rv9eTH=K6yi2 zzZBj!oAnpLOLcw|6=c&1$KQKRI1Y?X*B)C!e zDqtIkAD%ozEcusS`lict1ETqIPJqfdwH zlN4VUhJT`m+Up((|DW&b@Ef%za;>ql*7j#~g&;isrI7Sv)xo)EjQJd%Z;#~zw#O0D z!8A;8=u)c`?`*iAe1o23a1+I;u$W@9cro&t?l5qr)gX~V`{)!d4Bktv(o_iDktos6 zHvgaw4%Hf&&rQci9-r?KG=cnd#rGII@DEB1|E9$0&va+QE`5zqrUw$PEu`fp)QAba z3vsz^Cql6SH>KpCnGB4=`iAv(1?Hrjhv#ekQN`T56tf2g`|9!~tffIc(n?_~Y-^RR z`dx0{`n)u~#kJE(K`L8ZfwzN2Yajf?t^JDOg9i1c+V?gZo;{*HV@StL zry*SzS{$KIhj%xKcfk%#X8AC}p5CzEJ|D`{&bgWQt(yy3LrPnh?;YH_tnNo)cgVZm z(`1DLZ3}5?KKFEzC221eJGs?!C<+PFE$;)mq|ta-A^>DPfVvzS4=ahSuTFZ z5RQ!blD5}}AAAKLC@&(Tcj41wJH>YXc$?aJpjkWj{v_qE7WG%>_%l0mK0HbP{?O&s z(scbL&Nq|&jNpK!{^~pAG^*S~q~a=#`L;dNsBdEAi(Ks%FAKuoa6WLmYU8I z*@me=!)~;aeu`O@U#Akuojpym4zW~$;=K^#HhR{i=israzoaA%W=s@v#Qot#Us$A9 z!7rI#q@4(z2le%>$_ZIbaN{~*SQ&1g6R;KG*J{w*Sn!$y;q(>O$Akhw4sSyL zpuK4)f@TDI>ecZ}0Ns58n6K@+>*!$kjeG+xW}6=`d*Pm{i%ihAPs03@=e>wiHvqSID- z4$Kuo`7AtxuOf?jXhr^)`tAf;46pOFp+_4c9`>C628HGOH#EqwE2 z1bxX^6i#2}|2=)V>d7$ra?z7!`cn9#nZBg_bNW)8Pr#)-DZBs9!v6t%c|N~6ecAqf zGy0OB-x7Th`z^HY$M<|9qHe`VH38e;eAAZO4q@8sz8JRMyngU9gI*r18sw(=FE+Xb zJ4yMsak6}AF}=J2pbFbkC$c?$y0ls4m?|#yxc28xTD53{-NvcPyxbE@9G}DpUBkt@ zVIioc#!K`3?^}Y37k5{5k?Z2CLHlM~+sDHW^p5X9ei~+daQ^QG{fXp9!sD;dQEezM z$)dUUVi1CpYMDF1x88k@Jj;XneCw6DrRof9M>Rrfw3HuPEYcgqA{_~mB5;csF9vl` zlW|nh>HM6%$fD(9&VjrHe^%-i&9mQ13zq0eh0{OWjXZcZ^m9La`2lyLW`1m;NeaC(EgM?rUUU`bF*~7VU~&bUh!h zFX8JC@cMkd{sgbj?GRMvncWWgVpi9MCVWCxie*YkxpDdE-Eqz$k1un_a(nTN=|0wWib`~X~d{tb%vJqzjGn~*sRjEu7ucAf6> zlv!PUx8(il@^kHI^q(^xrdF$ItqKd`np(RbsEmoTP>eqrep}{m4~#^Use}#yMspXB z#s?cn+k{HrVddtpjq^+|HOaxj(5}$o(W0PbXg~C<1SqYP9nOP!&CWy7+iofBFlZH> zR#WM;Uu-D`IFzLht1FOePl21R+C>e*O00x^S#0+$pj}MtT{2REb|)Kkr5pCwH2?Ea zbYFnJC3o7kE=UsRVl-%Yj8+a*OuGb|FhU-bqMtvxLTKl3rTMfzxIQ8RfaUR1(kOiq z)PLYrI$OXGcGb5~6^-etGkR5Gez%YhN!<+VwCE{3U_t-;j7*v?b7=1&^LjVg=}&&u zFrzpn?DUUmV}++bMu&E-kpp11%}UgK zT(%vTof1)2mPkSGl=R8zkHQ6#q8(zydolP!XuCfDZpGonQ9?7LkvK*h zmS0KxZ3Ww=alj=vP`2%C$wru-|*Oza}MTRJ=kt=Z@jH`1Q&IJwv1 zITY`tSlpPS4a+BDDH!d+lTe@QLN{4>Rf;BOXq;B7+_nz>XXT^+^f7XxrfBSrW#|E_ zx;gr~R(P_7b%k0uZDKt|OPjCLHobrP_+-JxsFwR`6fe5XgtiEL>eL+7C*%%GadR*p zhHwI>9o5~Lq6K06Ro8rZc2_#jhpIYoOF2Us|&PE;< zo-)^E_?H{?UC8yVdP&q5`Y6J`o`>@j^90#Q6NHuca*piQ=g8A!A)I$UIxAj`LeF*3 zq}Pt9tmS}TSedRrpqIrhz0~=+?k|z{fN`|oMFU5&Yy|yBZ=O-lk)KZ7OFB&x;axI# zE24Npb-e6jdq82@m0XIeoMXjA`jf1d_S)J7FS0*LHtgj$T-@BBBs@RFXjH_@^J1j4 z>RkJ~q)OhHR+B57Cy(XgI?%d)9Bs+=$HBw^MjvD8=lY-H!U3Ca5An2))r5qqKcgvL zRc>H>Jeoh;*B%)K3LtYB?_avx%qleTe(&=Au6P5)Bz!;t{{ctNHi zqKnHz0I5^GmstfwMr3{f*x`S6_|Nm4YI65bR?W5Fg!|0l)V^EXNurfKT|_JH*OxWm zQu`91aUTS*q7baX@P@sGh6LO;#MOPfu~WyiQ?;BPp@KM^K`~hRLgeCiOBXLJwN;dQ zO)wvbaHz5{{U*iNi)0`k1npudm=ze=-Rc@&M8P1I*4c;!L)o|m^)9VVK4YEm#44AovNFh zt_0XHN?kV@k51(H5iaau@iIb(*$nZ}#J`D`w*o8thxsD)_#Sy(FaXDD_%txw>Zxx% zMG-QEjL#7nuY;wPBKdg=eD3rk=KsADq?T#Nq9gLNa`V4WG|?aDPT~zg`U=i!79Sek z_cY!=-0VG30b!663k8WkM1C=a`9-baCi3iC9Jy z<-J_-qD{>d7rO$7cyEhQyj%DRX8cOpc+hqI@?Cr!vP14^zs)x2wTrvM2MZOvBNh@f ziuB1-pXgYI(R=c~Kw;|^=~?{ecHsweg!51Cq!xbKPDq#A9xE@V&qno-36B(yO>da& zAJt>X3S?*%Kh!rlG1wGH7(_loD)|euD(NYC{>p?R_<(Uw_C&WE_hf%`qkeDD{&ZgA zcOd+M0vv?}Wc~o_bBOvat<_UFV0}5zsSN;4H&ICGPt0S84o=Iq!5CKj5si#^Z$+88 z62}4kO z2x{lDx$GFYKtx))tBD! zE#D9t@8kzDvWDOgwsNc_oZ0qoMaV^1?l%I`1$nFKJVsw%;#>>Rn%AG!7aQWIV)uOO z*%E)Z7Wh5d5;jA=t~al=i6yLnvTh><)D_$1H0~CV-Z(Wa@kgl!06=>4#*h$)ixQXK zI_kwy?WTI+@|*x8VXQoqc;pE0sDTka@LMzuEBayq*lMe=;tb$ZTM58v+XR5*f2~b_ zuAwRPMsxa;&g(hR#a0)+74IZebdNxg$&BJ1i|Jsnjehv|vBe@3l1FQ(y+5`}gmie$ zSl8)RgTG{g@D7uP_`EXWH+xIN(VaEKoX6h6YnuE)v{RvIi%xID2B*uZX7$UOUadj< zjdeJt%i;S_m6(sF_OPMfx3Miijj25q%gcBIRFbDkW=+^sxd)1oy|u%0D%$<@w0q$< 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

    CJiQ6LHx_Pu0eCCJ3xM%`W?W)3?@r#O2oC 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 J9%v_KlLXZDz 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

    Dt(dF|hJ3Ub%S}v7^FH%i3&>J{l;|sKp?W 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%0DP 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 z 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 ?@WEkrm_Yf-eF{sS_xbw5(CA1p+gCR^5wNUBs zgidSdoCclU(Zkq4$4Tj2e9hOl4;)jV^M_U7n`{DK5r;2HsZRuv8dQ=b6d*|w3Xvow z&NRA98bO-N!bo#DLi^51MgH^tlT7;GcNXjak&}FMHm@ABPZ<+rkk-lhrlT<`tjkX? zf-e7f676wHf0Io5TfqBEJ<0J!;Xdtrasj$~8Fux3w|32sm!D!b z{z-iNyZ;yZUK57wp{W4DU%NSdP1|K_WJF7o!&+L8EuGzsyqJo-h<^g;v(RkC3y(E) z>+!mti2HoX`s2j)2i-@8DT|LqU3|7Aa(kq&}-y|GhwTgB8EVkeox@R67)XaCJ%wcej|#nClbS~m{AHN zq6Gc}LRuI9DA(w(6H0OK#Y-n3LoY@ddT|@unTIc5TjJa5kPosk%5!T%789!32TDNv zma(cAp`RpRBtL&9i}nl;iF)+v0KJY9GF=dgD=svmc;JkP^Bl2v0A570EI&`|J#*oX zD9iHUV(goKZAPUdoAQno}I*U_jEY)tZuG$|*?k z`Q-VhBE{opn3F>0qzD}8rOX$RolgG$-|6{%bh=;Z^e*-M%CzgGQx1K;(sj8r9lOSp zSE-?TC5+pceF_L02APBKk^({}TW@d-2MFt63iXP=K1d2?dmKbH;-Zu= zF8i;8#}4Dqr^9pLrjxq!c($KS_LVu)eQzsytls9E?vuLde>m7ab%0Z(4qKJ!%a2jNY# zSIK)I?o8$$N8$ScCsc6z(!IxASNi8?p|h@Te%59A3U-MNR_|{2QTPYZKW5jbkMj8_sU3z)Xq3dTg(Dr zqUKq2Sln@)gNHRGcpka4H`F{U_f{-EE7^ZVQS&T3MY1%{Dk2gz7dOvZM!&v4nNc_9 zgczuxh=GU$Gwi)#iP(OjW3)U0aeyCzzbN}zEWO1Nv3^l$i&8pOyKkc7C+`n}C!1{q z?VC+FYS1KhFBkYhe&aX}jnw4&m%qr-oJ;OB&AIH7GI7K^QN?jABY0Y^!xQ^=F6|fG!#6pmX*qplsc#aI< z+@yr@x~SAjR%#{kwd*tX?sonTx!cuLox2>~UCZAgkGo#;uftm^l1%RBQk#4PMa-Iw zR(eNvX!H-4)}iT$A1Y_mDObglStv?CuPc)LviG$(=CH%=FJlImi*O$S?43aSU*$e6 z(Z^)7oevGD1+h@bL`fM5g@PLm=k=OBbbz6Hr%CmLuj=|x`~~``f0jx8^?lUW@J%(v zx52pIKNEOQE`Bu(-+B|Hz{FSkjqeL4)sJlcJ$Tbh;r-c&`$&X$!{#t}kC+f>#pZs) zE1Oi$HGvo7=c1FEwv^SwlJ;nlJ=>fig0W2`V ztv_!i(8rsAp3Xo|#y!T!jZv-(HdzPP1<=;Cf>Dz z@hiab+snuAo3Qb_!=a2{X4v@A)uO>BeN_ykD#?0QOLHK8nd*H^it2(sgJ@tSzrl92 zveM49FBj!l#aLnITH1{3v{h{OIN(vgokHvHt#`Bi~v-!UX z$T2u_{&RmeE&zZo*~mm&ITL+={{oHVFlIXMbcIIDcZ~~y;U-Kp&Q3*#>Y3>K1afr4 zsw5k50yN^5Iaax5m}Sz^mqb1HR;)4ttKc+~T?`LC#B85O?a42z>pq-$HrmJg!au`yDaC-fa;S z!$TvebD519DW0?N>oZT_D72$*cI?~aDd)jY+&?(+Wju-#ww605PW|lmLDLf7#^*ci zk}UnS8r`_doR~Z+Nqomj`(qvjS?0Xt(ecv0^I_@giF0pKHrbha=m4@;qP0U+8-F)2 znzloXg!IYmS)47AZF(%&D8wx&cpr5+_bf8P6%b5wgwIpQ0#xRz9orID5 zHeYl{#l{%gd?vN+J`h+kzN2D2Jmc?<)+M9pf)WOBC);_7Yp&R9bzP?O|K^NH7|)HO z8HUn6lK~H_PoQ9+X1@+!kFeVg0B3{1cx{+P^}titfKEU*_=tAC{F%vlXyQiTCJef$ zG&qkp_>@V5&qITOeB44{yp860(kFNqBL%lWC1lDMfWvxi!hILR)70cQ>cs6gF!%S2 zx~Y>7zqaiL*A%wvC0+QSAnqyx-WW-jIdH2qi}s7_e}J7+LvRcSbuV8ynt23}#4t8J+9Gfm?BXs5wcmCa+jngwM1s2&>8UjTxUPAk zjoeCi25Iv1cui{!^5kh{{8-JZ3e`*({R1^$5CUKrJ*6VMS;Jpv>lF0+06^&sR^?-)M^^WKnvom+8z# zzM6GvS2~4~W#mAJ&_Mxz9y>0-pqG2H0YFiw0BB&Z!QOr12v zntWP2l3XB?wa&Et*^4IhNPJ31k4+}@IJ*9K=}`{!a4~wk!xh#q6nc~a>}-h9LyG9} zR8QaZa7eL44lK*6DQ+q^GalZf5Y8G|kTLtEtl(2B-J*v`LzE-53eHwTbtJof1S47C zX5D=PEc~7cy}o%8$T5u5>wOb?HDUp4f9drtr&sSO==G12ebXzcPkK!|X`q**PkNnk zQlVF$gpH-j zKRW0Dvz!hvZ^LQ0nk%cPbA|2LaW0n};!Xz_7F?gyi6$_#)V+xH3ow{Y-4Ki(d(9r2rHkeU9{r;C6jH5F6cxt~+F_ z=o+x}3}I`FKk%{O4M4do`XdEgyo-Ax1t=E5bC+(}oQzRvx8| z2P%xTyszeX-kM zaLIS3TKADVhN1hlIuyQ3BF~%Y_&wEP+=45&m2OvVi)4|0&X z>0zI)2Tu}5&f+h+jQgZ4k|L^{&{g?E66zL(%JmF>9tg;a@@bMa=x6@?NGxbhtV;wq zB&*=L9T}STM0-u?=0J$nCh)DZLW3b?xeMxD;~L?!!) z_iA&ILPc~H#a%+exfWyENc&)a0W)VPOlF)-0?Z(sP__zx=A}0uD@ET_g|)6!mc+X? z63iV+5uhl2D37;E^S4=dKO-@tg{+9h6l?cDnzJ>*;z2hU8~hb_CN_r4H_WH80Jvu+ za?eanw8;ABhwv5?$jAd_6a!tg7PRhe zi@{Dm-`%#mHQ4qgeJ|F1-`l#U^)P$?#k*~Lzt{u+f7$kB+wS&5OA6?3ZqU}Yr)_r! zM)xXl(#`idoG$4aUEp&fo?^=rhNuC~mHX2GugPV2dx3KmX zJ9B|=|14~6P@LA7_fR~MO(R}MvBuLgI22bJph%Hl8cZgO6vf{Nl!HcS6(k}o3M;T} za=c1#gte`heK5ZS)XT*vka)Mgtxj0E5or~ZNM&(I)R~Te7x*s^Rh)=jdYZ6xw=dcM&E2@&ZIRfWN_)Ca zjb5n(VGe(g5{i+A*&`4byn#v1iR8E8V3PtH)At45;~%h|b`#UHbYowg-I#ZG}; zqx0w2g*5)~*}Q0NGvr6-=Y9V~%@!}E*r)237;eqJkwU}cc}%K4Uz=)L1;ubPi>BTo zvG8%!l!ZfIbN6s8ObsFbh>}ABubqKTGs8p0d4LCr zJ;`DRHn!|+-dGNjU5Z*UvdI=}sknH$Ya|93K!A+*JDXNwK}+y+MOQ=|v0w5pYwhKM zJ9n!7$A{BUyYe_OF*#kTz6C?RETd?6JFGl?%P|X~lY|#;l^C%pmlP+k8|xlt3iH2# zX40Xy+}z8;I^Y?bSnf=UUY=C(78SZg@H`r&kB3R%RPIC|XujnzcW-nUL7(_s_wtB- z3oq@f-z(VGd@=SJyL zHNaG)!8AwkUdnvK>FUgF8Y$1=qzrx(XMsfw3gEfJow0)FYl}r8F3S)CU^cKu!a$tW z7l^l>WFY!_RS>uL=s|qBM+I?~;6=SoH{d2v&HyL@jA^Qsl2{vPlXpNBg)>gLSfpLq=$vdF7u;bfZH$dBw4P+0k!Dh)Ccpr(_><-s^T$kv2f7)bMh~qg0AW!^dSOCr#Z4NSeSw)A&tT0Smvy3LAYV zFg4Byxq{VSudna3`72=31^&U!{tW5#aHPw6m3*1R6K+)=@Ng|ZLa&vFQ>|J6YMf+z zcHz>x|2WI+f*}6Fm)l3)kE6>@@yIc?MNydW!?rYm&ABWu%(*2NMeEwkB}1}Tqw|6R z{APRQPVAY~AkLR;KKNL&W|rE66~eHqY8k7(4Cao|%IM~cNqfe!YMESpnS&45PSu{Z zZ}^lQ?mHakP91NR*_HS&aUr~KLgA)znTj%>$?Q2OcSInrjXvi_U}-~XTqxc=q-$1ZU?{M-hrd=79~X|KhF2!EHw$p6b06WQergS zAfTKiNla z$Y|#y9c>+)8daPcYoWnfo_2=30{$F_JACDQKB9bKc=<6{{$WX1jD3c(hZ%QKu_!1; z@unjD`3hNd0r7-`@$T}=D^H*}WuZn^l#3@|gY`NIy4;!x(7x+3kT5K5-b!sKpNiE5 zJy87xPDJtiWos(w(dH@?PuOeDfr{>JbUx(ddOmU_TiGx;!X3YoSgJgMqwh+Ef1#6_ zi?H{-!3r(j`3QIu+@?KG!RHsW=dt*##Ye|58$+;>m4Pf=Mrwwkw9xW@)J(!>Exu08 zdHAfw*CGCNu$2P&+s9N9*dpM%spRMV(;QIdkAdnhb}O;uyK@E43i@GnsYm?l`Iug> zBjaCUPyjeIX?tDc)F$Ccw$-vsqJZ*TNZ+}V37(~U;w<4SOg%7hr#$|s(il%;%i>Ga zsPurQA7@SHrU##4=fmhvo~F-tfzDa>QZ`EDGp&=xYW52krT2pMe2JL(iD##UiDg zZdg>HRG4IwAXs5ilG>GG;X zl$GTfN6lV}An;p{eID~b?f(CMJ~C&{?7i38Yp=ccT5GSp)(e>j;md2#{}BDIP}lEf zqtLYAo>2Yn*$+v-y8~3Rxx5p&LiIb}Dowx33DxiBhUj`ZxF#rXd6 zJRkp1*-e^WnzS4<4G47(6~0lZ@D*wbpJ~0FYt^L9=6IBz+RUmSqD20*TQ$|M)?d`? z&$r@O@MV1)X0%k5&E#C4uA$LMXgH(??jU!U=Dc%yLCm?G?ix@M(PrB@mcaGl>j%d} z^?rhB4D+UV++-5}kMu^p7U{-YYaQ*8(H6H{fpC}Z0tY7Q4QcRdn^c z<-kUeL-pICB=l0*nSpVWaI_BQ$EV74wf+Io+C0(PodW4v3v9|YNK|QJgEzPEV7?vw zgP}%^sBwX)F`NkGipkublOgxVqly(2lF2)@7--{?ufR$>MWq-~3DZOQ-$u_x#@n9A z;-0Ot@mCA`uI=8GU}?^^S}Mk+y8AcBT9lx5?62;h(a(mXV9943|w z`i*#U$OHC342O00-E8-b!9yMYU6`uTeq^=SMOPU+U9tuCpxsBjZFo7QMZql%|5euG z#HE`m-ka^-F*U!V*nvmt+98qFnBxVbu@8I2L?U0u@RGYsC7;tv{wGSw98<|fddcUb zl&mv#WwKuKjwmHnQ^}Ef$th7vZZJVV+@qB|Jxa+HrjnoNCA+#KOWtHE`GQ{Z)6n~^ z;=TaZ6Y9Rr{^I&MB0Bx}=AK>=*hbfHQ(%zVJx(EeJJ1*KM$nWDF|F9<@Uf);a~g;3 zd+N!ZxZ`0XByS0MKJmq4$n(26o?Vu{Okkdt2D;Cc4(ormRhu>;%f!Kk1Pc5q#C1H6 z;wF8T%It$ExQx(3DX8vkzHE=TP4BEy?O@Z2=V^2EEm23|HXoI0K#Yxx9GUPBZ3 zSJ2+#@e~dYzAd+i&~Og9l&s+BDyykoH@#>G8NVOtF=RE$d589Lw0n<7yZ1-6mqTHp zKSh_%-tM6JSUU>}2HOmIYbt)6-N?^Y zJN?BF`D|LqfI1D8-5-&KX%Ghpyu~+|q01w6Yse63DMpE5&8!JYt--^yyVQ!#$&v@# zUhJyqoGRy4bWW41I1nDl%5>dI30(5ocfR|{_~0F6;$Kan*WwL!=1EoWSR5{Xw{GR$<|LDqG=*&PTHD8G{heB=Qp0n^0jHx!C@+^I35%%a> zi*Zz*{jyj*UoxOy*okXKnuy^^cI)@3Zp=EoLhNn?-6R_-WnKLeohfDD5kR2$g9N%y z;Is0?lsp4b>gh@wiO)mv%>(Gh>(8}flS}Yf98M*sGXLw?q?oXI^>B~Sszm+-%7hw$Ac*yk;J_M*ptiBbQcoadJnrmn@#dn8`(zT|3W#S{RsI@|=c)Cy=rp1*tzF zQmquPp8KeA$ zHc+XLK%iB9=2xZPmk}&bm%pNvUppSl2R{aRFrI8` zhW$2PNOKf|@d_%Zhv38gB%Xo_8~4>HCsA;7C_FLaY^efXKD85=iDnJ@G5Dxn--Tb7 z8SNpC0k?J@E%L*jA!f;6URocLA9mmGJ?5OK7~hWemuXXLpLz**m>lM6Gz4LWV&LP| z$j6lEf=3s|{iUDT@k1Amfx~>YbmO>1@+@KgcL?6Sgn8N9AzuK31sSwJjDg1){FsQ6 zJxj+0F~Z%f_i9^ZQ%;N)T^uueyhFPlZ-&plBqE~HzBi1q`B)dpk>A%PSc27>Bh^VS zhe&WliSK{YWRjI3>v!eeWHyhJ@FYSYuX<^{p5?Q19a>?9L>4|LzEph&a7rd?_DnRN z;MxHFP2f0}I@29Wp%Lc#iCsSLT-^+JD+q1W@J$tk4V0(5Q*|Xi}kS$vW@tOefTMdE;KIu!U z+6(eAF`!{zo~*C;(ET*y09KrSVjN7$ohW&J;;l@+K-&TnVXWx*9ijc#M2peC_Mo8{ znWojS$C4Oye5bZQ?-veT>y&b5O02Z}cPpKTiKDgMR`cmt8;=s5g;}&MbPVaCe4MJN z8D#qw$I45W@i9us;hE&Q&8nXXX72Dh0^@o`bl;Ez-#(8l$M4sI{l@U2C89mvK)X*&ie6-RJpl zg_={Pb`%=>*NHVPi-5z&q@J5#lO>YORNb4I&g)(4A^B*`<*L?pC*kdKX- zOgrBNGF`{A^Gdfhp2(QM?$bO z4WV`bocFGN;$NA14|W@GsGIdq<9yY&y3g~~cPSG+U4c%qE%INOv1)0x=KrASr_g{MFR_y`!(uU3PV*@nvR^ z{e>{zYZ@tpT`u{aMQ1Br4*4dfE0v2%P?SzCLew}62N*c82T4S$6f7D0khQ~K-hz;^!r2{-@bCM*mpA+Z94pR_-aYG!Q3sTaQmp@ ztBtBS1sjjdez9DNJbtk}3ns=$ji|yBs($lk0;R7wP1-o6U-s6!PXbZKKB@uwZ5>?M zM9bm=V*WOrKS}KHyW05;%RD<94kaw%K zZd8MExZmPSq>VssprMtd?mJds&8XrWk>&gVdR zRyq~JBSuP+Gtigddn}R-C^a~!s)@dQjAW0X?^(^umHN_}1WS9q!`tA`i$jqx1&v^H zex!t(Db@yGzRSE?c)1rTifwxonuRTUWgS;Ih1wke?fMgw!wI#=+oAsJM{Qv<`)hOlpd1!?iVb19vJCN0 z1>Mf>dkd)}PxRlr6N6$l;O%8&eJ`_D^~y=(?B)H&O|nVL%W(myOBuV({eut$b+MS^ zBi_3=mPK_SemW?kWZ=U^oNwfDE{R|0(rm_6GX_}HJwMP=z81X&(fJMqs>5E&$TDJg z2mo4d>JoW+Vv~K&>wEr&laBQdOo5c>2M1e@?Wnf zSP1EQ95iG^*AJM^sY6adK?^eq1$xL&%(Q|8AE@A#FP0sQIc+$Ez8HYE{p~XxZ2SHo zdi?3iy{MJ=UUe>rp~+Ro+vy}4kBJuFKlcuVhxZTQUz&0LDtrUX?4bLTWYN!Hc63f6 zK3n0GWB3+7ItT!%Ct)9M!tD_z)TnQe5HH|%yU5Dy<}5;Xd-}Bm3(a>-B?XIM56$Uc zfGwAkI#Pu=04b zi9As3qLX5r>`ap<2rpK$k|@nq?MzWSOeAXskm1I+@$69Y{*4&EB!nLUaj zcz+8#KhDn<7nJdf_bRQAp55a85AZxsythI5zw&dP58huXo@c}RiSR74OoaXu z_RkDFafU^Fz;!+7mYgk=XB>aB5S{m0kCx>vr)s-=DPAe5s*^AA@mT67&K0|uJ6smi zeeySZM3%SHM3y%fXL-Z?-R)?R`z zPBO#zUceX#FoI8L?k9DozO4GL$DCP9myc>EVEb>I`&UK_O4#`9jXpl_^QG7^=&7J| zo+d5F^gSSXW}GQc7XhfVD>^gel8Vl3_h8to&>gGAO6w^OK{ea|Y{@_9s1k$y{%sE` zic}iWvO{St`?%H!(wiF5-^6Imn$Aaxjj=soqQ{DF#n=Yqkn_3EV~l4Dc^Uw&#TF|7!I&E ziw>Q96c{5Y%Ug+A-W9-Z(ts57(2)%_nPV`aDu09Xr9^Y_((404?oVpy&}9(%sMgSV zQoNCWkTcoW&lUJl|E{l=fZn!0Q{>NbPM^x{136#_pOY|qIQo-iamI*+mSfD% z1wTZcpQjvVwt9p?r=#hwO0{zK!Yn*49fPasdERZx&I=SZBgZB!#r&RpC~*K9g$D1Z zS@pp^ znXfuHOe?sJ06C#hb_ZW3_MEL$!PNsZC z&S*IeI#P83w~YuZ-)B{HW$}?NI}D0FBC=X*-{sdriU-*47mh!f=Z!rDMt z*8QwODHk>Md5>nV&&K;U8v7)d1rzMoxG{d)qM7LzEm6<=XH`nNA4MK}!Qk~97ReCu2{}0 zG|@llql&{PEV3z63S(g75Cnr2)`9os>MXovV0=LJ)Q^}rNIk5Z@2yw9&8aw?EqNY6 z7tF(1d>K;NIU4FulhzhG3vf5e$;pyu;{PwsIy*o_el+4c5a8(3-cyb5Kv?56Kg>kftga!>*o8 z9_hpj^)tPjDF}5z3hu^~^%tIL-^~)|r|_M2U8nJ#cIqVYoqBkt*25kP_poYsFQ*8( z6uL<(?ar*6EU9WBK}g0C2*l8R6U~x|9p0IrU}+sN8`Qe?Sq^dx4gI~2en+*B$O7cR zazBUcZ$7a~nI}ORh>70%KquyK5i3NXSi7GjX0vAt4|0EvIRox)f-h$F-0@LA z)FIsI1DQQ^e#f1*8l4{2!<~-7{G|-^Tw;SaH+$PEefp&gQ<+TmPfWTI9pa@fw zZ*!Se)2Bg-SVz15fFs;LT>gtG@JESrHb{rQhdGHYn$s8lnUXe>Nf%wfcG81Goc}Zx zYhD@TGQ4!Um+FrfL3m|Zz@3tjau^`hk%{s-5J`Kv>-nV`ipwBUo)wG;SGUdAP<6H{SZ zIv<(<$#)$dN7jgoc^RhrBD0Be9y_+Yb;dqj z-U?~&B%{4UO5GG{Z^xsUIMT2$n9C1|QvQ`kMPP0{-oqb}-~4+?ej6VmzbP9?D2S2g zRPqz4pr_;dJz8W0R=yiu(K%XLfe}HxgIMO${4=#+R+D!dHUz}<%}-H6j>`f9}??MFuwgT(1t$(B0bwh2o>FkXNlR$@gMiG|Tr_ z1q?EKH%Xq+v4K&IF)Lfgs%BYv^P50IndEtZkFYV@W#&QF zwv@dUA?L@UX-}C|11DAC=BVA-vI#;zvYXcvyyPX^Q7PXqtSMu)lkewQ{EU;ThVr?| zCD?*FhdC_Vxm4%whZ0cL!zO%#;6-HvX2Qiob+z`|o?hKJE-c}q6BN4#@w)^R1CZz^<&2Rt$W021$wP$2Hed{Mey=%-G52z56Rz8b%*qkcI9QJ z`r3N<6w>dIiGB)5@quf*qwU|YM$Xmu#2r!g#7C=-y=FiBgIKe}^Ou(k#W{j~{NiL% z+d|P_m(RinXKq1F-wxU|>O9hldT)QFsT_x0*_$KUORW2WbAM~??i9o76XDRT+}J57 z5;s?1X-f_M#SmG>c~l*KHOJ?o^SxcWjq|-rxAHmL%j@T;?Ztd9*8B(Fu))uByaPtFS^gcTN4|X#54jtbjY~0C1dtH>e`#0%~WW+0D{2$YXc5;+@Yd6s`zSEnVDDXDb&j!|*)Sl-g zNo~BS{f0`3_tKyRN|uKa`4&Jc?Si;kxy=j(%TR>FLWWdqF7vHXh6W%F%2akeyToc) zlx+LAqBOFmkvf{@RVW$|Gs5xU_f-gfzXv0mzWR^i z_kEN`96Ekq{W1Kuh2Zybl&0Tp_=EVZi_*w~1`WS$e+<9Y5d2<@()5r&ir>Rg8rfE_ z;n(_y@GEi|$SsM|ZdtvCTxp;9+!3XoOT#DEC6FnN4u6sX|K=#|bkrRi{$HcitEx0~X_Th&b;$Ox{Z_#LArM9W+ZbK`!}4E7DgW*JQOdKthq+)c6}e!K zmI3y4g9m6zSa0mKEro6 z=6Ox^{uJz|wAg(kK-U@U8|J&!2B5qnyo+qUOaQmb*WX`e!$=r*-+g#t*t?AW){i@P2{uFkbLdyJVt?lD|ijcb$g3+a5*Sd~O5CyW@r|D)CXaQ&bqxXzznD>xhvT zE_RX!n>-mmQr+kK9wEW5RUJm><3i@e_;n}yA9;*_>gh3l683REO;6I~<9V?pKd*=< z`MFj7$Xo-5@e#_0+N!>7`k}@(V8a~s)E*->t5k(YZS3RtTzEdhleaG@=dklt;Vv&e-?2WuHZ{5(0|qjzEp?xnET&}{a^AJ|J2hR-v99Y@AJ0M zFn;Ox3`7d3A9aWIe+l*fOZDyWAGG<9jv65&(%q|6LY5AQ~(P#Xfi2Tm3itzl-=Tw;UJEzjOxxXcJ`tt; z3eoDu8xuypD zpRDyi$}|MbJ=KD@2@Q!X_1Bk)w8z8Sbhn|+G_25*s!Nm z6O+6}3!}ht=2F7)F8|bCSV$M$?pup1tZyhFdfM2}_Jof6~K4whw?B$_X|Mx zXA`>OJnssDZ@Pi6H446;zZ;J4I?lI_2+szD7XZStaAXpwu36H<#%s^1!hx5L8kDjm z+oG91S5mLD$^|PUR4%I>2@h3uHK_rNAlG2JVXEGDC#+=8&}d*phSQV|8;phf#K41q zmlzNBMG<4NS9EeVazZm+k_>)e&gW8weLEu{uEGi^c>pE&SZQ?|dgpV1Cfk_-Qsim% zbi(g+i5(j-qZhmbekkcR`J0w`bNN@a{pQm})**tTXPdSTRQngdgH)YOD>0Lm(m00O zZ#DXsMPrD|s)))hk_QvK_;Y*lXmsfaB=kK%=<9q1Na*5#9`B<3D8xPmdLuY09*FH6 z+X(#R9uioIv?hBJ@{{DLVsax-?K6|Rn(4j4Oz-k&^!~gI=)IEYT^^0z@4)ZmA&L!{ zF}w?ZxW-KHa&Nvt?*gLtzP-`uJ@D-adgq4Ho9AB%N0bul1FSK>zle8AM%?4_6)#ER z1s-3&K9*PPulE`NSU{)0EA~wWO!euvc#}yAmDhs%boyxdeoCBkeV8R@wFXgPh~DOV z?mpO<=l%=)itdW3Ix+d?qUu}3tKi776s*yqP2x`?NuWw^(c*lQH}BmfBZys_sbzf# za-3==v>aT;2!CeUKQg!AjTj_??;&ExhmaksCKTc-LbtndoTgsDq^a8*eKS+ujJp4d z^NKvm2SxdY#ZI|~cpf_1d46a|-`pD^mZ^V+#;bbWCm#Cj)N2bdFKA|+@Xzc=-6S^Z4_5(4OmK&^~@c44Qu5u07xJ!CpYAEpD4*!<=sdi%x8d z`y8H1KlrZqo4~@N_SRrbd#kt?tG)=mc)Whk$<}Sk&Jm-wSzFXya)QM_Imx@JzI#Od zzTs9?*%>=ZwRW79UmTlXzFvXhM<;kjHgR7NiJ0HfS!6cp%EQn zpD>2lG>PtV2>3sV{w_4Z|LnCMbayW4_0CF@F*jt1w*a&I2rZ&ozfW(@7Y>cEA8?+N z-28m&HI-<36syJp0O2dJd*gi%W5^DrGnNwzqx>};wZ=bJ)lslH_lW>MxvI|HKXW@p zoRC&Dc!%oq+P8iUE=av)+hAKru55hOVq6Zq|4e`pkI8FPGF!?jBHJq&g=HuXY_)kj=8N%wb(PgH7WLajK;(DNrO}^(BM``-6Hzf9cV*J@ zmL$Bi$!H}-8IRmo#duINxyiDG3lvC!gJ^7WQ;e|@Aw|_~zjpVA`~cHxI>xF6Eh@=- zrJb&Lk=^EC2Hljg`N`**^vPTCir-f-_k{an`z(j>Yr$`-3~l?SC$|?k{8Ng&1u4iJ zEyeA#K58i-r|Oo1UDWvW&sz$xO;9gd3d-r1r6{}cQ-%JtOnWLgz#qTy$6o%Z;g1gf zIKm%gv_b7YGU~7rsGzu}xbw~m(J#b$2~QG=8prlsLhx*hW5V@z?Fn+~PbW#3At=6AK zE#G)i?_sPbP2A=^pq4@{@A&2=+RP@VcLZ)^@2aSWKFUiytn5_wT8Q}{LXWgwvb<~*fjCq>daY6wrfL;6rivP#6S)SB0oMGNiCJtf zp(GR71l4#xjSSG-;ka&+=Th`&dwVr|#-&y^GL6)`p_KPa=&=kB6c46Vod=IR$6D1} z_QNxI#2!$u+fS}hX~K4Q+k8s3GZi2Tl6ug;&$qZIuVP-dkgH%p0l2f70W+?3ry$^xi9btDWAi+%V&B&t=cCi zYyDl0zfqTcV?n%E{flkhpP{8CT8C-zH^;T6*1W?thWrA(@ZWxnR%l)b)mL_7a&8(w z^^LvMhc!nG|FxO}C{I33^$f1Z{&GE9M;CFuvLozF7$Z1zXD3v>{)n)n2d=?pg+JG; zCRV&-75i}QUq443a4!3HB?CuV&y5m8L7dk(PTW8&Z5gz|SpT4%niJqfnEwz-l!GG6 zTUYgc9<(w_`A?tkyZn+U<)4dI-q5!m!>i3$cSDrAH$dIC*tT2;XZ*SIB=?`&a&2w7 zNu0pv&J+$$2inDO_F(bsJ-0mF9 ztZmq1g#7h~3vc|of$9aDjr>3#eG`OtB~ItUEX-y3^_H*e@f$w34c07H#U=<^ySl!K zbpl$Qz$H-Q>+c8*nYE&ve>o{#^V8b+eHLZ>UU;sD;us3080BW#w7Ov?U?!%_Iv~+Z z2c}1Bn`&#DnWQv1Dc-2a|A{Q(g3n0?o4f$c1NAYOtZkS9N@=uXu2JEUlct^pklS#8 zX4*0TXxq$0!~NQ#o}G&J@NC2C%<^D5^vH!-ZGGhc@^uZQHOege@L6Gg5GhNvG8tTk zJbqq!7Cqf;oZw_}q0(iS&rrG??$Wl2Ng&gs^KzcWl9dYxPZH@m0piB9iF8d_vl+hprR;ctFbK4-|wP~;kVBKCHJFf z*H%nMIjCz>XZG~!E@IkwbqNQwm!mZD)H8Sphy>Nnq5gJ5f~AGt(E7ng0HOAIsEleO z3`(kc!VN5)%U64sXybB26hLDDP)k0YZh;gl9TPZsUYYJo(`0an_7evVCOqu3EqpmlP5c{K zlN-yL@pYU)!vV!m1poW>pb<29TdTIaUsRgo@NyUd2;49yLD+})l56|&Hv>(PsEV{s;J%^#Om_Q*;9#!3hl3NnFKIa^np$ zd?w9W@Q+1ktGVH}+wptKb#i~s&xr`7AVQwmgwU!mgpP*KNqyksee&4&TrXdb_}qT` ztlJTvTj%%Z{G2*Izs-tDprhflcW88c4nG0o)87&@J}KJx3<$?;?)8XK@~qo$ov+?= zgfTi9F`5${qi}@6{qGF?-tPmyYY@NdkI6s3beZ_)|E~Sx{NwKfe%s>!f9^5i-)4q? z_5T3>hQ9ib@c(}7{&$-D|JOebe?njVe+=N?dF=k1;a~kfz#raM{}KM*j@|#m=Kh!b zarm=`^wIxE0scRZ-G4LutN#c1wm#rr^JwJ!OxED{i=3Zx)!iM8%4vwo)|pXJ5&F?l z@cAVvIzC$-0es|R(qm4Ci5?T9BXLxE+!MN=IrRHKkI?!_ZJ|6h9KNn_8b)clZ#5Km zY`h0`^Gv!cl|dot5k+s3)BB~`bf~wNU{}>iQ*`L1=Jn{ZKHzUzX~1XEdISQ)v#*}N zLd!c&BUdmPd!T`{41wJFO3RffeEK&eGrwj}C9qalz~SQ*?ND zM8F%T!F&ChsPGbw3*MYQ;Ps1ucbNund~|q^{(e00M)v{l@rMcCDg$1T2Jhn;QQ@6& zT<~K0fH&&l@cvz|!Mip(y!U=P9(Z32jSg?!L*eiiYVh_?j|#8gxZtho1Ky<(@Rn-u z7DtEo-(Qah-oifMwLKUP&#%E77#-e?#|5vr4|ww;;61FtdwN<_c!z#D9(Wmjz&l(W z4(|yK-Z|0XEj=!HiG9HHM!yT@50z?KamaH(PHS9^&wSshqS zhsenS?rQj%!UE(oTo=Jzqr-jX=TNw-32vyrq|x6=L;9Hi4}|yk4SoI>N1y*c9}j(Z zCiOA@BjByo=YMo~?;ZF9^j(nDH+^4U9zx#@8hwA98kN2mANV8m{d*t#)!5}B@<8nn z&Ha-Efkr5;mQIb@?+<>8*6&Dv9EvnDFjA%W$<9f>a%Z8s)=#Djm(c88ps}wz!6GEH z+ipNzE@|PcxhSC}-%<*?+{B+)ILh#i@MaOMu+G?4>55h_#i_U|!Qvg!Y#VM-nlgm< z4(A^h@)EwrV?H{L!yftGalT`rj67sO+5M*oY%y$rnh2Ouewx8_K4;q^SObML*Ht2O z4~-C}y;lFZpYgm*`7saPxKq`;uB4mw$PHd=WfOunpC_s_ucY{xs6b+w9cbZ9HkUIb zK7407i4^vn%DwM!cbdewe;(Ntb>jU!y@#6f;8DJ%&Ewq6J*Nxvp9rSI9{v4FN;<5@ z4<-kbM02v_|HGa`nai#u-YBA;*Xg|R{Jv1$c!!Y1_={#>+qn^%Tvli(_+W&+xN@&{ zho(OIhK<2FRM{88#6t%0@O*6=p680h@DKxMA(B0NHIo2z^4lpSW0N2ZGWH5VaTCE; za3A`xAHCj(JkfSv2x@maqRHF4G*0*@t8#{25~aJz%eC&v3PQ=*Rd+rhrZ`=dU_d(f09<87XgHKzIaL?839+{^Q^N#X%N zXd3V}S47Om0YM({NtHj6Cmu}6Q&e>_P00}mQjNV)Zdg1M?7p4lmkdw}M4}eN|nnj(m2g$qmX82KQwyPPFiD79e ziD~J}Dl5FVZZAf|?Ba73)ml+*bM==mKoWH)5;IcQW6%p=6%U(k&#tO-@8P#1@j+vA zp3P+mHfZ+|4F3PP4}G_7DfDaMvGxA|56#((VMc#>3}QHwF^n)A_Mv|Rb{Q7a`IZU4 zulkTL#xAA#`Kp+o7bcSLQevnGa6}UUW)?=BpYN#0)Q30pA#bc(V(2%x|DF)C|HeTr z^~cMj0=+mY(2)H%3ja0s!GD>6M@`w$`0o>nh_iSW49~^=Wm&M{u>Lec$H#_yuOv1k z8|;G1h<_uP4|wj^P@Xf+A7Fehwgjt8=RFbqdpRk3|E{cp{@rr4{{8f0wEm6l_Xqly zXzE|}rT^diXX2lK_rbq+ctZAq`Z^NzW|4Eli=n14_k7P>D=^{Xdws-h7|I7+DhP$077MF^ zS5a~i^j?rSax6o-*{|4`sa%XmeRCO{S(>}4IZ9n?f+$p(FYM*E!x1zyv zN>FNV4W6L$S9`0nDQ#@KR5iG_R~y2(1t&13uWFOn^eo}{PPei!t0E;C!n%u}H+O$BsMvIB+-Q1!(&o>brO(s(_a{jS! z9ZtC3^KWDShP^#b*|Uwmr)b|l;_u1Y_s#r0N&DW!-yPcbI{u!hec!;}?P{5UJ4SlUZEW$} zyMdg3j@^wUts5stb^|-{TUaL!gmq$XSSQr5PV5Tn#Lloze5G~b?TaHj@zrs5VoJW~ z#5CdgEGn`0BaH6B@utx|avY=EJyEo1>!Zb0<`yl3j@{xbT8nR4qqlgKxkcM?w0Moy z;_NKwz&KH8u`6mD0MN$0O z&PRW?B$UIhy0|ZYwxlTjY|e|1&!3I);CyiC&z6%L)t~Kr_Gf!Krw@O&mE%JF*|tXM zU;V;Re>T_dWBIdT2}=$B?bDx4*^Aeu?N3F4cO}BRT)?CD2^xkiB|u(E$6SF$*Y=nN zR}58Z_=8jX{wVGL?1uKI9#{L*`fMNLlOurjCIDt({C>Bd4n}A#L(eCz1y@462u6$G z+6ztcI6`E3{G0Ajuw^qFHF&S|0WZa^CpOcZ70wr0(v{JH+!+bP=89jjeOj;>$(o}$8t z(8BXc`6vn>-$4MmW&w|H25>*c(r5cgYcodJCx14OMP|Z}N@J4xST<>x*wMD+qs=nZ z<36Jax)_gh)LGfOYKqYo4aIUH%2x;YyKXxPvA2>sMPZ`f(L3Z~3P*Ivb$d@Q^(BSX zDenO&ks%bSETK?k3xz7jqCU$x-zzP-K9`P?u>a&O9&gReKS=ef`gst~c z%5D;6Ut_*gCj+RqYi-A>ww$Uhz7wmQL{;p^sxp(S6kwIz=VO(`V^vAxDoI%7o%7K! z&~~jOIFQyOll)t4VS{*hd_QdN!wY!2)m>nCy}x-Y`$mrig?i$VZpsn55T3{Kv*j9i zJ{z7xe5Nz&LiK6B%j}|Dvvh~K-Q{RM3I6CI!V&zV*)=CkXeMINaCOA3yv3N} zD_=d``(NQRovw7oa=Zm;=}I0a@5k!QdD>Ct`<9Wi({*Uu$e4ZyU_OoT#$cWsaqk!X zt2NeNRtnFDDTxJq{cNXlK$14rQLzCx8pWKn5*< z2c*2M7%t)3S%J?ujSGC!?hs!{qlRaVaG`wH%g}6p` z?C(Wf7GezcpT)OY^wL+hxV)|EwGr>(<)xezpqIW8MEXU|G{p%Ei-$13owpdVu(!o! zPunnuFQI}<;krB3a8Nxr24iafK*D`7DQl~Kp@RP0JkeB;KJ>Su>a~7@@Q~DJ%FY6L&N0j zkcM)NhD0x*oovyQBi{;0wg}98hPci$O^rkI zNl3uq^G~yR18ROZg=)V_>5Z3fQJSqvixtq4suu8t*2D_2GihS2xv_s6jqyCgtT*a! zw6)4_dpFSyP@P{XH2M1!Hh(>a%_lkm`xI^ev1sw~>HdvRF~@p~ zAB}fxj970XL?p+921L_nz0RcIjHkElrwqp~3isYV!@*gO+v19WwCyvJL(&~rPtDvy z9Ijpa(dMQ4e5XE3p@^8e%R^qWsG;6reu)tz)f*`E1e~Rh7%k=&Nc)t#H;@VUA z#Urq@(|!Ef;ryZsU(CiAsr&--z2eCAijfmH4s3rnjog91_4LwJgxXWN(#6;cEk&pC zi*xV=l^Dq{PJtJ&C{YYldycOpb7)q6m~y#$_!pXlxc=|cOC4+bbTtyeb!5&l+TP--iVJ<0;}i@;MpRO z%U0G^_Ta5^POKxX?T|cpJh<>Wc#ZKCF30c#F&6jC9Bb`z05Pmr*^P;>INPmAak>e9 zP#P&ZPy9Iv=Gnt{Bgy8kV&H!<0n5ITyj{|~SUTT^W;&(GfkMpi&$=V>D{;In z*?E)FW0O4jRvWnZ#ezMXo2sL=?0^syoi}DaH+$5P`#4pT?>UWn~y_c;-k! zHq{&GCgX1Xp6-w+L0Z$Nn3_HtnpS%3k_Q))g%c`!a0ik+2l4L`KkV!u+qZOFVqod zGikNndz-^ad-e^;ScR0`gyd)J9~7E@5I`Pk4X#vrQYB9UUdPYG5K?sCm=q2Y4*eX; zADg1#7HLW@Slx}{KqkT+8M^X_2>vPR+jDzB*m98K0^h%y5BmH`lxHB~yinO&?&B0c zAf{3<0-2J2iafBsS&0-VDhr1{RlRR_H_8(fSOnugA~%@AiY0||0ZoWA02l3)1iK<; z-GZ08DPo9Xp-cuD-d0qqVD#ZjsVU+lt>0-1RbAV+z>TS`r>CvlFo!ZS z!Oy5(;ak3rzwnOs*7mj?1vt324?#{SnAkpeNMT$mE)C9yW)1WKIti zV{6Q{(}iv5yfl&JT%=+u(a%$#JQF#rT;s3Ec-{6WThk*5g--8mc!&o*T!C?;n7gid zu3HlsO11S5CAzn@7Q3fMu$-EQEynw+t%qR0>$FNsZWm!jE`JJ1=go(;ZGm{T`IT;t z5LvYmCtGf^H{a>Yb$atNe7R}f{48j59)M75&fv5*lujVm?#)l~=M%C8XQ08L>^4|j zebs2>@AokN^;P2$LcfRcudmup@9p&7M$a~SMpL%0B9Y$Ub3X;2mGM@2Dhgym_zBM* zr{;FB5abAr=Zfn)VD!SjVE@Utv2-hfzLNa1Bj0Xng)C~`Ba{VNYy-LJ{>2y(!hSuo z09izOPEW8XciH>PWMeuPe}T66{4&XEn~u+(b2rf4W#{P7fJG*dNC_S?~?H-!H1RK0`r*%ber1y#46LS8 zmjUuP7he(cI2pZasBn?{Gg!KZ208%D4oSp)w`Un4@;wG@;aOY-gy5zwDbP@Lf~8!uSNWmJTkpuVk4K3ZnH=-(?oRK zT!Fyn`pKc-M5U)!9w4n9T+!Jp4^;M8mkn05W31*_Yw(w__$o568Xj0EU2`Q5(nNaT zCHiWWJe0YnE2d^h9LC9dp4s27883>RS$+va=N4!iZJP8x&E^XH6q)?i%@nCxl_nXp6L;Mp zU!!!D)|`eYdN7@vmPFBIs-?`teN;Ar_X~M232Ft>jP>+7{GM!lx8irZd3{an5?hFd zT!{%xiU1=H8>+RV9uYiwKsrn^R}#ey!yvD>ol23zFu$VG5i2jGkwq%3MZ+Dy3O*uE zuP_ar59y*$r%O{4wDh=bbREcNF%5){-BXO6kU)|IghchWzfeT7_c$kAmX!?1FulfM z+bh3<1^a$JHnRpF56Q0`R`hRQk(8b4Ev6vG&Tr;BQ(=}5)KE(fOb1%D#uYZaKPR|{ zmN)dgg`e@l39#N~>ik^qmy+iSm}B=85_NvCh&XKjvGBV0-Eefd=?`MX1GOx}x-?A) z*PC%8V5J4k2B+zISq! zzfRN%*l>0fLchfPdM(QQx@Lx!3V9Oz$=puV3~XilJS-P!v>X{rQMOPL?Si%R<>=XE zL=|3%tc&BsN|ZLUF?9WL>g#qpN6)fbwmvaVTTFZ$+cit9=eYKMljFq2SDmsso<;;l zDQgFQmXP3|O{-nt){z!VwK%^hcV@t_=?RFjJz^f%YVLDdNRV)!;m_|y)?0#yX#S_+ zPfz9dK!I-gB#I81x*lV*$!B9W%U11tLff$3IhTZ*)A7ef{<&J{quF>v4-+V)X71o$ zh-h4qr2hm$!AZ}Cm3rswZyi@&$#vfL=igB^-*yh+6 z8g@Nj305zHT@OQ>%`goL8lLR9l+k(BX@u`4sj43eK(QDGt-a#eICL-JFl~rE;{7X5 zl=`^MacJT7Ho(tYgZ8#9L0f4x7rZT@eZtOf0=J*4G^DjpXjSU1Z4DyQTdVskR3=UO z-Tt-@Gq*$ityF*Ojy>&PLVefHZ}vd_y0msztI}X?YYeSVEns|VcpAG^zDeVy9`szr zmA>a?WF^Vtx3E#flKMWfljQlBstTu8}_^buTIaTAbv9SWPFs=qj-NbD-0TzKFyo{N#D@xaz?cl7&As9BK zYQKKj6ADyg6O7r34Vh0;H0<-{nESW5C$fL1jnL5cZZZ&uUl4ah`^~ceZ9GwIFLs70 zg~{r!;Y=MsZ=A^D8jeE!b!HSWR&F>7&lrsy?2g_@IW!VzGmdS{^mCl0Q3$n;aQfXl z!VKOM1$^povg4#t8GShCcWaAA3N9MjlJWeRfJjkybZUHY3UvfQ$ulqc zXbBLnJ=2U+$B{^!?mxwJmH|E4q@Ia@|BFRiqY-H4Y>fzSLm5h!F3!X&hikt)exz4F zDc>b-$ou=01&%Ge@EPc|?;x zz1@MXuINKwIm?X8XI+uF%mQ4zErFYlL^kj~ZunSc+$=ozgUXrv0uOeDrxUJL_ND`x z<<4wtixF!*NqmMV0d&-CL7_(Qgk9Sgk}FWvPuJtu&jqSFK|D!|(gaH0z2xYc=Ujlg z1U8!}#I8^75nJ~d6g)wIc8|uN@c!irBokV~qtZuj3i`wq}sI|qSCBu(DtLjlgA zG|k1`xKXnL*Dd>C&U$mk@GGbE^ak6)<7d_0SXx@jm-NN8Y~hTRXk(1ivjr<|u0K5D z(4P9vm{D8(_d3p?1k#hX3CR;BPW6rdkfe#01#+O#Y|XuV>}wlfNSrqbiF1wU`sa&D zWEcz*XF5upH-W_IJ`to%_W5Fs5cY49eomQJWb%;jxFiJ!FUxaY!oS4BFZ9ySN#5+50)gUFA!U?Da+V1)(#0LT0T(EzWPVi( zQEG##2;Vc0=}$Okn{a-r5O7B2Gf+V14R}PV>kz0vXq>tpi?fj2Y4uaN3!NfaCC67=L<-uYw#8q)V@9wlMQa8?tqiN_eO)g!vgEj5Ok65E?5gFs@ zxJ*8#R=40T;^XCJt)$H8xzT@%LEb z?@(LB*B^HGD&Ob1FV}4s;-Sq-29iO-T{_F${5#M*_NT>^AN%S{$vEInH4R;maf}bm$B9(=r(I<~Y~@8)R7Y=>qLG&akwfE!&Qk zTwbtqd8f{$sMCJ={IvF|@LM*&%%PXBsPx6f@6z}qojy_rV7Kn zIz9(o4wWJ*Ax7-X(07QJIyCeha+?|x`Yx6DV_e8PJWy7@410%B;hV$W0ln3?!rlR3 z_35y8P+7gt^bVc4IL`*9#HM1DT%4a;^{21I)7a(~WvBjjmjw^I@d=5U3jbOr+VG>) zJJ~L0p>GS!V#zaw*@~v;W)pLNli$-@ODo3N+IdfAT}8QbAqr9Ox!B?*7*f?CP86_6 z*`KDF10QPc#vLJ@a_hmcd^6vf1`@}zFR^HDO8ZO)dDrJAvpsKkP^ zu*4Sax#$6VJ}yn?*D7D1oXbm67A!?suq0tx`14_1%n(uznNjOIPaL&X>CBWKKraVa zF$yDAl04I*%d5&&hz_nMF$+nUYmllkSUb5|m*p@&+otZ`o9pI!b94OqBBlShy9K&V zBL+VzVLxuAA3x_Gmx>>4;>XwM$5#H)YZ3Yq=I7f)R?Re`C`@~zW}UR`DGQzH0nalv z({yTjoDYZ|;`4HT2KjvvwT)RbVE*Hr?x+3K(J#T$to)3G$=uEpc&2xoIOrAYJ37zI zm;PB7M@G2S=z_XAhPfcn)s1%5ZLk~#PS*HEe7~kwd=Itn!>+o69!l9jpmfcZ&(=1I zUrd~Mb)LRa$RYP%YH+LlACCZ1W!f)Zjd}!t!=~*SmuY*(m?(QjZ7y5b53z;4hBnl{ zY5lFi?UQqOMcC`dMA=W~=N{Ew|JS7d|LpaT+mC9mA7k2%qS@;kCeW62b5wi%4^78y zudi)7K6^d#QE-pQcWV~?wb_SD95y(14kheiqb}R`N_-+gC$a|nyqmVctdMPRYXfY9 zchfeQB@{f~24&s`v8nK_a2TpbS+o!Sm;5(w1r%DuR;Vj$lY*N zR^)D2ofWwomS=_RhFSh8Cm#1+Sbto5Ve>@0Mb1__;?U(&@?2rs3+n>)`ozThJ-ipD zoBa>`wu`xKL2qR1i;x8#{vaA#OUq8ct!QeBzaS3R8QcYnVcnjZj7tnGL^pk>en58=cx8Kp;rYk<77im(3_DLDG#rWoWIUj_2&j!-t#(DXg z;DvMmk(x;jp7qBVJD$uf6_aBHYG%X9v_EDwZBhylV}JBMO5I-+M(6rvD%C8 zlkWzXQ=DuPGZjj}LY40$b;jG37DuS#x5ijvPph;hSj^{}5qd_bHmuQe&U`jQyowu8 zq(;25hcsf{*rb}~azc)#3IC%f%%Z6IH()lDEKHIkG_-87{KM32G@mIY!l+hs#k=EM z;&FXZ*smefU#Rc)kOC${Wbe%+keq;yAXbYzwmCkY8#Lnw4JAQ;6QMEmwoF#KV&q{c z-au#Rygg8a$Y6_t3a-u)A-0Ks}=z6$@l za^Zh0leFpda!Oo51Dm=eg(F2E>;amO8s{S(>c6a4IUK(z;9K!%D_-g!Dt;ICN@XwR zm(Gf2!_x-+RAbPy#h_P+LBHj1G>Q7@_5u`Zu#W4CM$;vtbTVhAUf9!1Vh`H=I^*0^ zrL~353z1L8c|WWR*rc^vlaiMoT^(T`A^IXSpr@Vv4Xg#V|6yQHUi#(E z5_Jx=Qnf?!d}*!#J zu!MyD^O?Qv#a+M0GEty%@fmU-5UodnSaTB%+I^x89Dvc@KLuYU`IxRlJQw26m*wN= zXZB~Jl4p`ykj2wK+kC4(5hsaoYvZjgs!znf;;)p|d z7)zz7iaA3Q`^(B8iyo9bXdu8m_adMDW9rG!;~nx$q)duQxZB+sj}v$*d$mey2QPDA zj?5yPZ>rr}1Y6?N)MZ7<+EQ3Irb&0={AZSt0N(HyHr?lCf77px@3bC#Y{WMc7wrJ8 zk)e0|P6MP2S6y)#i>v<@vY!e6u6M{B+O8i7O7u7H1Z5vUtT@a=m_-K zc$zlB@Y^DK9z%X)M{`u$#Zh03U8- zNiugWR_xmEku!r^hVEqfufzi@)HmeYl|USHY|(9)R&`k2p>0ZC+}Le$iiTWT79mHM zor_2FUJg_mYu!$fQJ~>--im5FxJ=j%+UfFU*-VqY2sZMuz4BNMge}X||4gm_9~$Lb z;1|G_D%DCA{Rj*^$ z3ldQxLrTvkL4wUQ5ohlw>9o){Lhk`-?E&1Z)s?e_R|5K9ZeDZ=v&^XD#HPznb|}1Zc@aCiErnuxeweboa99wQ8T_8D$=CSgq{CX`B-e zHS#E@z~6(7R>^}q(7F*-!7IILefNk%f%?vP@28^zO2F#qN)|8!F2=)SO*_O5 zd&X5|c2q2B z2dP)tbiYNY+S>fB{2rMEbfPVpJFxHQQd-&l8}@TK(m~mDeXY^MJ@uV&qxSeOvr+#7 zC$ld%E$NCImYz+4CKg6q5j@3acr|4>^T`G_le%!TU4to*yE`q&tZ2Wl>`o`fT|v*+ z((?oKOn8x}PGvW0B(%LrRj6>+2vx_fb0#45I&g3xzSm@*LeiOu6v}U?CpmB_nM5c1 zKc&;H)pQfxKzDqCB6|cWrMo3~e+{n3!7Bg6%r{3re(11&QZEyyryI{djr9cfz>xsa zN$eNP*K>RoC}Q|rNvP{<;vXz$<*=JzvMR&^BVWO*GUTG(ZLpf(MHhG6r$ZwaZ-esP zp~_CYoGK?>bRB*Spd+b~y};T*do@UjBVpwIY^|aBbeh<4`2>cyt~3UgL~}X0L|<2( zNQ^XGSBK)dI!Ig741W*P`r2w@xOdLd*4K~xdE6Hk(aVK^Rz_OLDJ8R-46C>9VhU+(Qfug`ZZMkBa>03F9zG(}xgXhJ7!wvd*`U{8&SyY(+T zaUbHL&7#v4q-Y#aR8BX0DO?^obCD_48_#4uRGJphg=KWB9};O%bjN`oiTuXIoV){c^y(- zi*{Z*3hC1ODNd1#X5p+DanTI?z@+Lzi$Af0B5=e5-sRqSeY-}R2(~TSmGbIwJ{s*7 z(n4!fN6rK~K2xpnzU4fF_iNHL-hV}#|K)-{V%wp4AhQjLr-dx7Z1k6$Y@@bcBCd1~ z^2Pg$jws)C$pe*+)KHNECgzR^ag!Nar>?=CNow8w=bJWeP0@(-N0#z`Ra&qxy;)|{c) zee!tRc{?{34`sJR^=`e&Ahzc!d*>r{w1x8`+)E_S+u|`s@)Q9%7hj5B?2-rLGvcE| z@;on!z=E*Pv@^^x;paF*KSZ6c*?WL0^0i7w48;I&Z;8gp+K?w0l4+Va38b@$wrRx3 zNhmT=hjEv_G^fiw5eIO7W9IhYYU8}*C^N-m+|YppAIF{us@rl*y_xW5jq9GM#cd?u zqGk0M?T2?Fa6bG{`zhA9VEvHuhgO!Swpk2?5!6ULUpmx?={I~UDKf~}Z6125>td|~ zDnMz7<}@Wc(|i*_#GXnU`y24L;?87{tj@zzp+Zm^4{7Q{eeVc5sKt#e(Mf*6h0atp z{l)HHUf^Mx0%v?{qczPbEm_4YxWx($|A-sF(w)39q#~$fdb2!+-q`WYgjj9Grx*ma zs7P-_%1Tv_#^~`NK%UFdjLKppY%uSV;e8p}fl6SmwH8OaZS+=*xNY<@0yPdjlrG@b zM+u#KtaO=A@?3^rm#m5n z7d6f1|3JZ-exbwkKAQ2E5rNGyzM8bWAJUfJ#Y&zVjBjyL)j2UFdbzAMCt^eBuf7py zK|nsj@XS~VwxzC-VRy?kuw zZ+kJmQx{C{+xfaM;*HWC9)Tm`7Sa+-h_COWA^Cs2eS2V2Mb>zdrlnxv1}IRlN|7K1 zE4EM`)qsT-!L=YtMHEy-7OPgoH9^!0tx13widFHA%BrjQM%QIa(Y`1Yd;+>_5m0>X zmsnI3g+6HWJCB)rCu!Ps-S7AHkLEt+&YYP!bLPx>(g=;`>A`X87BR`|p;&M*)L9-I z-r!yEqC7tQ+4ZeP{FGkdukzp(nZ#!t_w70H3c)A9ge8T>@3rFA_i<_B12tb;&HF~| zspt(4x;F%SVPlr?8e3Y_`Oc{JzwO1K+Hfe(;%U=7Ha56+eIu$y18nlCh$d6?CS^62$ofwcFHDgy ztSxk|os4^sPB6tLR4L?o_@OQE_|t7-%n&f7Rl)k^P-qRjr26O`SNeLh4lmLUcOVXh zcSJ%kn99MPWk58F-)9nXF!s?XB;>JRR@i(f`}JG2QOj+cMAf{%`H+3|ya^Qa_60=U zrpMuS^M*mTJ=5sP>t=(fua7gf%9mnv!tZ_0EU>o^SlWE8>i{x0o9EVC5sW=VvUk3vE*sMNx)&)j788I-6G#RuS0)6v7a<4v_5dE zTsMVcws1c=VOI8&{jZAsrJ#H_#*k%dnoWrti&JQV7D^6W`8 z1$b1=g!Al0JOwBfLZ=Ewz0xV|IP9)o{$3?nyvv*wBZ6+yMB$M-KC4CZCR%Y`%pVX_ zlV%Sr07XE$zk0GQBj)E z{=xqKCFe3UH=E@a4lw4~?ZtQC_SDTv;z(NO-43C>!T@pXLzf5ZvT?eCNXYTx1I|G# zurq991bwIJ>d)ALt{TJ?%7yV1KG2j0rMN4_$sKubjM$Oo>m}_%a3&w1JcPDC`5+G; z#K^gX2k0FM(~S^pRrb^b!GAG)0(-S~-W)ySj8#tdDP*tt58C}_SU8S==PkO3(Y!v3 zK3etNNUbM_*ZXH;)S~g9znBbC6)*^y*URQ>c5zODS+h5cMV52_>A@TLU8;YrGNT*u z-M~h_)Ne2#zHY%~(qAVW1D=EO4Y8XD4}zDX^t%_@kHNdr`wtJI8MOxf^^-vUEz@))*#xj^J)!Y((Wgb8sBS8^s(G_tm0^V*M)QjZo(QSFks;f z5nJ$fo58=4Y)=%?wR|G8DjS15jFijc=V$YnYHf4}ySyU3n;y=$ae#>c^}hB{HOBYOiI;ELzZc%G343o1dyhS_ znRLAel`o@4GOB}jM73uj@G(j%fX=a8|A3&6L(pvk^khl@wJjDQKqnF38!%YNbUXx2 z@Id*e#5W#N@NJ5<@k7P_&V8g1MM5y{%gu@?TQ>knHW~6DDRdKZ?V;Lw_$M|ll63u; z6Gc(b6BPyVBvOm;Z+%Na#PxlpwCW!b@!ktN6In$AQI)%0%g|t$T6^gw?W|R|yH3m4 zjS^0D?OCp^ukrOj(2Vo5RQxNjHTBVT!)0B-BeekiI)P{Jl>Y)A(|7}(f^c|Hc_OEV zHd55IYxg`$w-(pkM3RNVCtg_RNAnjX1ft;c!e20j0lp$^I!Q}$fjW&76wp5CEkPS9 z)`uWEXDEd>^;YDpME!$T>HZ+dRR?G4`id^bTXOAMXY)Uqz@NeV5xrLyOBYsvDp5ufp_8?!z${ zLE&Dkn5+iil=S((*lG|>JUA?sI)By)Mi=b8B!4p@6c&H#_pi5~CQ?sQBi7ptT5q0x z&auTUW|tPefb{i|rogtQr?T+E7nrVJ`k(BM`lVStB~Cu4@&g5=jm$TQq(4UL*%M0F zY=j3{Hs=6$b$r$?*RNt)3-qwO(WX;QAdAhvd-o6oD$k*jq1 zp#%xKyMw=Y0Xb*c{Ew3+H3~d(a#T8QQ|S0yhG#6UDtEw)iaxk<<@j?FXl{5AxW5x- zS)HfySo|X9pg^?`^V|F)8b<*#ITEuAmA>pgMfL^oRq?lG149IMe|87%PsEi2Rv9gv z0^US8(hu7qucswZ%BKn*0;lb)Xb;6HTm{*V7XWyqOH2$WGHxs(UJZO@dOX~ zF(eb3VKzicy@g20WU2TA{C|gnpLqQy5=x*;E~U024M-siB;a`g9T+lEJ&_m)oy!5! z(1jPHJa{cwB|C-+{}tBekn-SulhEdD!tSg(!z`p#kCAvPzTyHM2+v*m{wL)xrOE&o z^bq8y@xd}_laNbwZZsL+Kk{`?fU+Yvh)*pFmLo6&^#FG&9jg7FDOeP!L;T%U?%B$dJNSObhPX8 zZ+B}-MUK&fGq4Anl=z<&v*gQQ96qj?s^4SCrZR385m1G22#0I}eg%PPGI8tXifQ`C zTg7`8_@KPQv#+8LVHg@?U~vnVyf5rLNS&gD9waOC-ikVxrZ;Vi-x-d!^69k41n24J zcc809RGHHDMCE*2k*z;I6CYP}lXVCC)BO~q|8$>c^dHq66}kHTzvzCte*aIr$F@yM z+chVRI47GFoPDdCJZK&aJ5N*Q4E}T#)jwLlUq<&hX1*qRqV!*nuSDZzqoKlSZTuuM z{twfCo%T!l(0cg4>`#(h;QVN-#pwM)-OvXN20QtkL(B{?^4w87U&Z zy54{u3@3WfUut)e@M)_SN_w!{Y|sO0#W|^QgKnQk1WWTgN8ije8wBndc^yyqQ_lE< zhMhpRr1^VC-k-@@s&LsOvX(lI$l7VBHwP9>^R7mSwii1u#qDAw*}wFrePMAKtsjE2 z@lnKgnoqu8L-&7>_d!=kt}nj-Bi?81!^4jS>qJh6t0kiJ74>kfLX`HH!ibWX0kl93 z-XZ-XnYs`biTCZeIo$YG~*S=A3ZLU?Wt?LcK*HQno zp8Z8Puo}oiY9ML0;ciJ`>t=2B<4|YF{?MYVx`inJ&z13r@<|D0Zx~x=h^Hb0-rVrr z(Vs#g^A6ZBS>QOfIzmTPyfVp*RvwyXp@oz&lcU7|V%^#Bz}23%kngC}vEeHtz|j=s zIVVDan|9X8x0T3Bm;;J|0J)<=!9*yyRoB89>yf+;*nUIi6V)|9EasrFnSsPH`c_W? zoxF3xtv2*{(jwjzs$68eDHdtRW0(4|YT_a2x1y)S=tPD*GJL#c*YN8xJf58l{!KsE zDPw8gDHTuy-INgm6;e}b+Km{xPFnG#tPK2mk2*ZTf9dVe%)PRSkHy5WD zgKUX;s5cBsC^8jL24lZliTmRg(LoDE-_qgW(YZpE?@Ro*XDRq^#vtc76-Mq6eLfIT zq680S48ukzKNL7oqK{Bclo2A)g=p_Aps!jL&rGhvD zShxhil4tzJCww&(6qW0E@a8sS`^;9l=rYMAzNXEP`%_KPzmgvVwSVBi@B@p;gq3^RGy9Ji}B?W{}LrEN{Q11y|e)T zCh^yJU0Mk1E)Q7jJoW^tm-dN;u=onex;X*&qe9q^9zBP3f6tgm{^CF*y5*&pv^iSg zONTSwF-Y?+vWVUDJ+m;;`IFpUcQYE?Ww^y$UqWH0G|%T|p~HiE6b0Vt27d03qsSk< z@HimPp6`j{OY*sOn1@CNq6+M3Z;Q~;8T!+JGF6+PTxa--yzUO$oZRSN-ZZgDraKv4+6oc>XcAn+$?cL`blJ%K$ zNa`!u_5w27J(1x{|+C_5%{ongusV+zX>1ihK~EU5I$@t z!BrCa^EyXlZFdgJ*oX2NM2Cj~9r`0W^v-%O3>_95_+UFP3O;<^)FnQA6M+w}L-EFE z{zH6lcEpE`=Km5O;_ir!50)IDv;vv3x^TdBUMD^q<0AV3X(|NfPqNS=Zl0AEYjt$ zHKIYOCztqW#95`bP%Jjw$5DaP$ye%Q&KdC*h8Br)P8Zet%*Zfu?R?%+M&+#pgz42Tb@GQs@Os*xj-SxnJ$c?Qjyp7(En4>p*F)$>QEl zj{Je2oJ17tB2!VA5;4;4MCyFnhDOo&pMv8U=dN26K@k!hMt`0=CTIE64*Ek}m_WJC zkmp9d8{wYflLfr>5uV~3#gudg^M%o1?tw7JlJrRhIa2}or=KOr4Pp8+1Q$kJS0=Lc z8sg5n6?AKL-hknzkp{VzmGT*SXgFvVHpxRN1U5@T&qTX0DPc_nSy}|vo)HE3D-rn1 zNIymldE?_cJ;>ONW+V5?6XQIkKSQuTQVlQ9AAH`p+|WNLgRxZk_?w^PV66F%^}l_T ziP7g)nV?NWsE=p+=iBY2v(Zq3dV2fN;+8(H)6pSsL~(P>?TKXC^zm2Z3@hc46e?Q4 z`=|nM=1)kO3uNTtDDf|Z0?H$`R4f;R^KluUkMTUYY%0lbKQ$S)&*!nUR`YypG9%Fb`j^u(F$IF0LlRS#jB}thS&|`SMoLmsC=>NesvFdNs`bKU_z;Hh zV#n(_@xWn?_PeP!weGKCQ1DIX*I@|!MDD>Pv^@WnmJDb3EYr`4upb`2iV~Mr_&FP^ z+#aNZ>HX}ITX#rJA}exGx+>`1rcOScgKkBB8t)5ilntIzU!hRsL*AGv_r(`G*?SqM zDOxL`b2!24q!4A&pl@Cl-%wD82g$I2JMYEd<1W+lBqE?mcOpsMvpgFZbKtVfL+zPlbR_#mdg4B2h+UYilErD9b>iLP8=Hhc?V3 z9NH#)+#?ZT1{<{Q5CL4238pP^$yR#(d?#OP@O7iF0}8#TpwNaoo(R8M|80t% zAc7F9b6mv10YYU~j$-&|Cw0}p=_k0Hr#Bp-K2s3tqFSCF%q#_sQJXPpa~P^oL_$_t z)x4)G=oKd_>CpkbD5MOd*Z1we552Mm0(xy0{t6xO>)sk}8w1J&&;6bF^^YX()P=tZ zzpAmR?j7)Jk%C`~0usNDxBXw@*U33u;@7Lk{{#Gr?;5|ZJ^owptFh`o#IN`$`1O3% z|401V-@i-z8d>$ffM2fu{|orFUfuux)fImIUVf@F0@a@ClAkKe?~{Un0w8u5I(!q?X;cq)f>&g><>&P7a&vcDb5j}(-hCfeE70cBq_Q1+?cNnY>l zZQ`8wWzp&DyMkSvq~Pm+Okex;=3X_o{TBL4_`0D~g>4dWzxi>8?BgY`BNVp}z4M<7C$CDV zkpuO{3u%Eh@c9qqCq?c|Ob>K@g-}q0t1Uc$U+uV$%(p9y>)5)*d&B*eMiRL~0*|eV69pZ0Hu(c!8)kw2iO*J1xb%Y(eN0 z`fzej3@+B?UGCO+BNf-kNyda7`y9nM*piWw9LLXNe_LHPnY?UV-xntJwIoes=M{{ND=S=by>igC_f!xySRa*b|^Bo+5_oUw=r-6aN|E|3$H#-|1*E9=H}h!A#WqVe6o5)VPr}^n72pOybrV4K|5^>P)H zbYJa5SmynMBwNc@%Y1Be?`{ZzkgQrub0{S6ece$U-Ku%eMH`cCY&B7YZtHl*NzGFO zH;y*V`w~C2pXaG|4%N2wpMW7}6*t*M=Nn;X4;^R=VOfW#nr&enusSi|p5Hx}ViAkb zO_(c&s1)1O3(eRhp9rHyxjX`gd*XNV6C-ya$^hqMKSTUBKJ*|~&Z&-+WI!Sxoi+P> zV@wi*cH;A=jRUoMNj3H=c2qe*4s}y+zij<$k#fza2MM&KziA?j3W#B982RASU z7NmE&=_2~gD;`F_v(i{!n2#TL4>)7p=b14KWJ%oyleA2NuS%Wvx%D}`4a#IYDM%c* zVtoLoqkK;{xbP!i@YsoFcXg^SCmA=PPl+*iy;?5zWy-fh97dT|SzX^nqS=9BuRR=M z!#Jcy1LI6074YE8VAuj$ZWNzXRW z{CES*VZGVce5F{3}3QeuJP_ z2MyHp)m8_r+LmhfR~oJZ8cClLJM>B-XrF${RN!jISj~eGIvkmr_p5e-jDYR$>o=gZ1Kz@{)TPT_XMEAL2F`)Up!ygZ%!}|@a z)!-`}Pl^kVg~GwdPjZjPXx?wzxW~}>&p7kkp1OTIR3gnIrVu6w?- zFtA%({|m~$!`H zLR(jfGS9*FCF0vva6MIAFNW(ZQRYIpK3hCLzI|a}h`2rgZS@m<>{qui&|N%FhB9r} z@bh!w`X|0NT>;nM@^$s?aJ^rYc@(Zc5YNlux<-`$6t4d!$}~e;FYdAuZJH+(^aDB7*b~9XGE6VSM>&wJ-Jk)ccxW27sVPK;8whXQ_#J8`( z^)S)y`*1x_Tz?1GJ;k>!sM9RUUk=y5Ud?5G1bhhcb#*3`Kg8F?m%{a4@%$a=;|_6M z3uC^OuT2A>%&VgOVR-&$QD-|`KP1Xb2R!kKG6isbwsv*c7vTDj;(7;MUm@BW z27R9)t}lS=$)b!GuE&acu7~RpSGUO^55hjkh9@G}i_`r@_6a*<+IQxd+ube5XW7@} zSnvq5CMO0pnrm{b&bxhkU>gjXocT3Pwymfrti+?;nw(f|%g!}9aTFkAP2wrukaG}n zjOGT4+hw(z+bK57Gmipud~~NZrp;YvE4{!R5#Jap51CBP;WbV1ThY3xvKv=UF|Qh5 zpzumamQ9UM5&wo|$TYl?Y`s@S*gsu%c}8f?Y+u{99?a|ltDfsS(KuYvH(;C_&E5km zE;sKm?>w*2KK`)SJol&=NM1b}OCZyTqFZ~p5*mt}M z%;Q1mmTb14N zFh<*8|D!sGS$7FRepGK$d4s21707%Fw3!z8ku=24JmAr>ug)BA_3}!B6oFg>K)TYi z0-541i+!ACs5=);JA>??r!d*#_Nd^Rua83P69dzoKGDUO2^OhcVLRfhhW ze8NPSE0Q(saVv z3&x;_`v-IBOtW|Q%6BBvmg(`OksjF5i-?2_cc5X$H0dNp;o(>R%_O`4-lvP~DqMWd zDe_=%nqizg2Yn>WU>cW`zph34!J|W6m1XpZwqDZ zWP1Tj9D}JxF#-)d+fZGaYcl(Lmz+y3g`Rs%6u>Oa*Sw|&lC(8+Cbh}<+3eruOl3bs ziZSQ(Q@mtepH&n?Xqj=3)J&0I5EmYtqu*0(R0LRuz`Fup&Zaoh*E&L)cS(q%a*;KS zmRn0k9!9*LR&y2G@>_7~QG!>6lrDIT#SB%*vMBySRU}XOr+%MN%@B7N#~8*JjB$h6 z-m?8jR_4Qzwb1TxP>wik>QkIim!mhwPt#V7g#V7dng>0owR;}JJAnIET%6tNrxLdM zh5!25c-(Y1#kfCaQ4oHz;zpWP#)%l$wf?ClNqkQ02ZSaL_8LhR9Z+yOHHz6W99Cyv zZS`E)kcAp*e1dLle6x;0u+mLQnY%UQ+ze=exnDA;&me|6-9m(x+6cbsSV7 z`ZR~xHGy7`9!JF9($YE~2<_{V!~oGg&PkEilW z<-M7|Um)+Z`FO33p?sg_y3&CsP=t4qS<|9LA`}=xhA!KiXE?Nf|g@1cP0mp6#%R>DFQEH z1l_ZhMRXVm(;w$IO>4hR*P1wy0C52ESx251UQl5(C ziQ#n3hf{a>k-5jwBKH4RPm=75H<5om4M97S4k%;ET z#6wds5lr^}*rt5UuI2mU*vkikh=a%lYHpNY|Hh1~`9>PT-qT3@cRp>knRcnt5JI;} zw8g&D#1er?WG6|5I*2T!vp_Fp9jwW+v6#wT}VaUhC&*5(B=30snUVs=k6+fNNjl*y) zq=cf{mVNFoH2^JH6*T2hI>04mzD|t&K?W@Mva4i z=U|lZbbOnUh50ZiWBQvZ@Gmn5{*BFrf8$2NzwtvGllAQv`GGkd|9qHa-&N^$w zC2+PwO?PLGFgTd;5zF$}&$KLO^3cV&=1}HoN55rHIv#Vq>}Nw6-&s4YsU~zsT(Q`{ zmLG}nTW*XWF4us&mT{HsVhsOxF`md@TJvUw59P(RIPOIT@mWmvG#iwuN#i2o#E1E) zGOA}2Z7n&n(M0;$bU4D}$r^U30^g^{UUs)zd|$lL>)6Y}X1zT|^ZbP_%zP9&rKE17 zN#tB~zfIy*k*<)15bV4|L6znkgGmvdg=Sn1;%jU!@p_n#8AZ<8pyoyT+a)Zhu2VWT zyGANNmxRLO$1Cuh61*uy2?vyCJ;|;|Sw9m{Y69aB4+oRnz{^C{T*J}Ee>I-(LiQ&Q zL%T*kU>iU?9UXayexl|M9wy6&jo;H=E$_ZSX_bDr7xnXY{kE3$^=bP3n{=O`-#
    z+v7Da4gs93FmAV;$${1CJf7GiV#+Ls@fP!6&GVgzbNnt@DMaM%Ov3%Eui=nj;JdPQ zrCg%eKUPUr>s_hIwkofuR>?#C%MtO^!tznVkO=L)gOH^up4kmf6huiII@=AU|rQ&HTOSvoZZg@!=+N~hwk<H&wfQQ`2!Y>*aXvlp~5*kSTgw#QuK9St2pKhwkcPR}W}L zY#P*0I~qh5v+Y|L4cl>FSBf0+{+&nCb98UD?bclo$; z3?LqEyMX~ElyCW5pPTb7_pi^U(OqMcxs;83$?b^3-$mq4{*1Zuj~AD9o#=|x~FQ(6jXj}ML`fA-mF5 znJf8K%F{}YoMcLm0)tW{)=yEk=AC46^zPU;H10zQ!cLEUomeHnUB@6fyHb!d_p7|6 zF2L86zuXqcM)}NoJIWe-_1=BXG^i$t^~mv$FmMUw_`wJfmSZBVBQz{F*SkYzZ5^iC z15$JjzRK8*@M@KV+_mP6{aLlHU+7yT@L1s!P+@pIu%Sae;xvmg{(KW zT?Ph|Fn@y`(}6M>ke;~-&vK9Asge1xgf8*Y*E^TH+)cf;b!hvt(__7l288Y2B!m1H z_%!g$3UL7S-p3n85~&%SlS)0rnYw@MLxOE4-sjPLi%*CsYEv7+p!98L?CoQZ6uOEjsa432j5cUcbqSCf9%rN>lO+# zA>fy72jAw*ncIYAko8rZzf3kuE`VD7(=dl=t+oF!GO}PSXLB=fv{ae#V~LU2Z1XItApqbx$rmsMU5A` zoIeAwZE~c<@JT!F@z8*ulYR@0f<7W|iheAj{PfG`ZI6t1@H@vx)|+thzaO8acm4kH zA^b`qk$sUp-Fv|QccNLTXi4Qd16yOcbiCLst%2`YsnuWj6JKq0*QL--Lj1}hRtROn zSBFF%*1+<1!wk@m3xMdNe-`c-2|gRK+_+Z(wcpOVgj9}~Z@YbI$nHIgUDfIR4kiO> zg6@&SaS%)37j?_mjSMH(q{dd|!$8mBxJy-oF-h9>aO^zsB@)&#MN1 zRQ;CjV6DgN56fpOP)wg>f(r$64tro|3r+M+R}Pkl5hZqr^%#36k_uObwAv;SeYu(d zHs<8XkjRjWA+neHj?(!|t*k~=R(=Q3olKRjtrYJz&^y-zy&){XnT{V4{3bug4VY5L z5HqNck6Pz$QRj4}JqgSE;$2!~d&qcmjCfQ)mg&!t%(E$P54F8YB8&-!J@1j^it#Wv z<(cpgvrCxO)p{;GWR5sqaw9J{MVl{A)cL~CX};jQ+bDgk>$ECth*PS3e(ZTyBFq5+ zY(ZEBnXDQgR_0XLx~UAQzhp995x=%>sW5L;^6Pd6&m;w&uTKbgamphbtxmFlhDYSffl zqa4EG=W$I5!M5WeUSh_4xsN#AOs*}iOXNT~!v_k#uflqTOMT#PP!COrSTe_+*Vfl) zTXthM2B&%+WmpY<5|}TMk{W3!kRZ)-5vdQioA4M35IgfGa-yR%*_Z%#|B9JRF7%w9`(KKRXA1?MDwBB; zd##@V3T$e_+ zx1?ix2aZvD+rrwzc*mkKXx2ACi7!lT(a;k=Cu)KP6xPs<%G$Z(7|Z?9?}!!^Eu>@5 ziw3kuYPAPyM!c(4?sK=82kvu!72_MAcd3*5uU6_GDC++e)o*khP70j%r#Mr?SSNEY zgdWI6Bn9`f6H!=Qi#ra=&Ywk^chqR}zmo+W@uP*N%w4Sq z$ffQzQn#$Z5ze+yIDJy%_2<*U+v?8)8qi{KUR=_G7~~r7ZjPx)fGV6eceABJgR8CG z83jHJ?$6$_Dg-qG)dq^RVQ$Hr{NN zcsd=*_cO{*>QEkbL-e1RP|A{JYf__f4p=1CTM%HxR`Phmj1y4@S89tdb<0wm=T|0lN>2FQ2!@vHdXjjCBT?kY3)A^04zHV zGo%+xL?Z;}WS|7jLNP{+A59kLO&9_Q(>J-kEgy-UsWk?e-NUTGMbHF|Z#oocJY>wL z9q&Id?$5^icZ~bf@%~lgehA(_Y1|LT`%?9MGhu&hdHjxrDnTW+`4}j9u*g3B-;mRD zZ~1+rnjJZ+x891QijFQ}_K?00=FBc#8t?nm2h4pMN-*MwwW$_@ie2ESTgee&3Cu{g zcc1f8XeJjp%Rl&80jSFYs-eG#QYj|GDsYMmzg27kQK6oTymDGpdpL3(V*gM5Sx0-y z*`-(RaUV%4ZUrj4lq^3EgzQf?LHqi7CZ!&eWD0ww;^qv^gQ0S?bv1N5TJxNS28hjL zH1A>lz+P`UJW3ZqaSc#`N$3kwm`QGYOZfApFq7W+oNGTW84!TeJkj9i9ae!L+0tr3sx&xzN3HTYxRy))$RYbD7TBW*lt}cbE<6y}z z8j*FYX#NoElH4sRng{L6ZeQtcv2y+g&JTdWs645-UAI^?Z>5;gou&-QA2)}bQdWHrE;aI$g03gbx9AoXg=C309RHuT(K!Dcz0n zGCeQOublHk;x7O>T8um8w<1rJ_1~Wi`D*Aa#zoRa5e6YM_%+*a@$H1*C(?e4?nejf z!tTeCOv|_*6MQc0etd9!*nL*eW86dIV=}6PTWG%~`EF9lc{t2~YG^X+Je4DiXG2#5 zYg^;{@4jHk(gTa>j7~n zTuC_)JhcC|D>|_yN+8u<90rHPb}t1OqzCKl8{+id`Dz3-zMp*!fh!22d~~>5W;)a$ zB-#pmxzLYUrFr&bzs>)qNLrK<_*1*EE*OK7s|!&_>dMHvzzXCdZf7pk4^QS|i*AG> zmqNwcNe*0q`hi>&qi(18%YwnP&NpzCtP2S4i=M?@g-Zi`f9x=Icdl6GrVSXvQPZ(iTo1eLQWq6)Qs zA!j+(Fqnno);Go22As;*^4l8v`c4vna-=O41l0~}GJIrUUeZE$i zXFmg3>!Cu`GnYGe(5PMJ7trUk+!#-SvG~t4mBO5X<&i=^KYb#nalx%}*+mmMi^~Hh z(%fd7*#31QQ_jathLJ_9GGk{@?Gwa|>GTs5D6Tef>cm~FMZ_<^fiJ!Lw1=t*GZAwD zTh3W5uqC@Awu~X+1{wq8$vS?-I(CaX8Y|d;TyNo5wS~qF5}qP^9*V52U%+cNSRj)d z3XFsH>hgV1zCXwan*O1OF}}4=XG9ADf&56}gSFCbJhp69oU!v=0873V=E zfnV6{0(r7ziWK2SKLrfUIs^^I=VKGQVh)x;>(Ou=eioA5V_^6^^LViJdQ6ws}{mGNk7U0IP_yf4MrFDo>p4Rt9{hM(* z7pBu2LP#gj$5Vjm@s}`0_QplOY7Ju|h2Pvr!nP#F$6|?(e8|A?pM^MR zxQRhuXuPn%VsKZRk+@0%@dXpuz-0^LOuBt=M;bZjn51IFZ%s4H{As{-Ij=_Uk!(ly z10mFpSyv||eDu^++gn(~eIz&7`|<6b6NPq6H!vT{)ie#RX^9z8OMz3*$8Wxi z8V~C&4voWxg#I`lbbmRc?TZ#Y|6hv@jt`WIaI`o?c;2%x+wR?Hq4ko=4B^i_<5mio z0DI@rz~Q5UgL0tA-Q5(YdC%rg(rA0>q4Q0nk#F){6NfqJ(}aYqVJr^f{v>x@k<^=` zzY(t#&s(&zM)5kLd}32##C5jjjgycO<6PGPvI`_+&oE@Mn)gBM|2QauMw^)^bt~C< zcn~1Rl~>2H|2ly9`A81oL9;F9R|@oSnv-af|Df3C(aCHzjTpeS#H_;A>y${iUi*>Z zf*vplPM?JUYTjRw1W!xQyhlvN09sDb2QUMnn+}k=SK7$4)D>H5EjCyC*Aj3U2Ylw> zUy&>_9dgbU)W>_!q|RY`hmlIwA;OF%JX-Ot8zMmnj+f_|X-K+f;k#IPS6T=a3Gvn& zSHVEmlM(M{XtL2vs=uRwtv|>ndW$AXFOSWt)jWI51}C%&APdWn+xOA7Q1EaYiBARe zE#c4y?@*Ex^#)+Jg_Q33=!!;k)JS<_$#yqTvZ zBSQ>qISN*^soPzncue8=%Z*8F7T0XWGhp0HsiZ|$x!`XP2b@ZqS#g3@IsosHBKO<^zGeaow955W3X?%qGo3SruZXzn334&kHN9n%ww@bkT>t6Jg-79aFs#TQuqwjAc9Mkn#jKs z4eW-%8W`?whE3#0cvzg8E|Ngt*>8xy$iBQZu^6wGQTnqH0t3k`yU;G!P2S23GaR1o$e~EDe(W!T8Q* zt?_}EF7Nyh`dUC7LRI-cpZA0Si^dYw&!Z>uv%T1kK4|dvxB2 zT9jdO>qA2CL(-x>o?8@CzylMK9nIZS>- z`899}d-pA$;*UA6>>F69D<=?(E0)LT1m-e(&gp>S*@)sl2l`U8iztHCBFQOZzAzeF zDMUj7pCLp`!mS@_smOxr1A8giy9*uBld>*|cg6xo=o(Whs3LL_u!GoT*2N)YKX@7K z3UhI$d}J(}%OR=snQ}Hsg%s;98lg2;k{FBK)6Zpr$KiT|~%RiW1)pTfHN_|eAK8qGpV3`}^CAnvbX9WF1 z<(WSQMsHTVdyk3#>fN8{R}K2rLH+8meuc+4)Q;?Q2TZ&+XtV@=EyQVtu?!5$k0S>c z8rU>DNt$b5n>qViCe;}C3b$iq+8?UTnilWu@7bq$ucqJ&N?fio&pzi5uy`_o6FG*1 znv;x@w6RE@$I&j3lSIq|AluTwecz%3wKzw?9FHf()+MuHlDh$ivy}A2JrvS{DA@;I z6Q4aT9!>|z?xx;{=Gk25A_H{37*9ur(}q0IvnJ$$SRNMWa}SRv4lYA1)nvJ`CxyQ$ z2^bKD4=#<(HY=<;Ie*WTaC^uR27i(Mx&gm}qyFF8`kflrD#42p-Hy$Q4ZF+AL}N;!IkHSirt zLD31SP{#KFbSq>D^38}KY0R&ic}%GJ9mPPmsuSG~cOvJ1_Rmi8UxYjPSh3fSgJX6s zc|e7<+&p_Bvy4{}KDiz|lw<2sq~8r2UzVVsXU5~|FTMoNGx5E}#5k`DOkyznRyUSk zA<6@0(44|2GvE{d#qqxHBI)MQz@=ZI&5Yh>BR^zjMsSp_FA5x3DVsnd-re04<2)7P zdq5+AqN6ezH;Sv#jSr)|l5f%*eY$-G^6jV@K|XN-9Q&LzkXbxalG^pktj_c+7MFxC z%tN^oXqzR_>xHQ;8h@_)G9;3^mO_cfgNw`fZZ+P0DDB%s`{0Sj&@9v7X;oa79_@~X>+xU8<{Sj<9vryq9BJdEiNNfPt zNG2z9?xlEfx|7oP@XmjMmDJ>j037~t7R7E~zJQKKFi{u7d6hE5ikOJbOGy)xNr##U zO-v?MF#clnkik%hQKDO;%K(Q#bl1&dmJ!dd6sj?!+Plvgz-p12jYeuVM&P-fdD^6hUfOytVkA#^4R~ zv5n5_bqfQp_T|`CAHemW#dRZGKh(Dqd!0G6OXtSBk7TaN2R^$uu>i^FtD0hge`m(P z^q&!!Zsllx=w2Wr_c>=#9ABHeE|V2ihP|xeYL>>#p;`HEEgXx{lBAvzf2D+g3xq04 ztvf^v%sI0wE~Re5d8qhovhwJKRH7Fg!O{=r+9xozNI2MY4Zbb3Cw$?s!%r`N0x;-n z^6Z0a0!i+}=eu`huYuhGc=mt|E>839LaBC5Abt(%sg4G$AtFSWzc;xepDDu8c0_4= zSbq?GGf`pVZc5QsV?5xH-J1p-6Vp;IvL<6hgKQYSG<534u{(PP`t!!X=#ss23=g4I z8Hx-Jg}hV@p{NfrK(WteQ{|_OdoqPsXWWzN!(BSPk~_OK%~-EZtB}deluX*co1);Q zG)0>Cx)9~BEwZO|n5J-jU`dgEt_cnLu9Hk38oz=MHa9oe#6B%p=FUrT z7*?E-v5)*~wj}iR?7kzxU2D#&b^WAm$xBQjQD(g4_E0c;lA%EPF0Y5pX~uf!zKYia zERn#Iwg|i@{ukhN;`*eh4Y_b0^FD8pPLrN1;d0q@yh+hKlg<1*n~f4k{mS7|fSMKw z&P8AD==XeT6Rz$>zU{22K#9L@svaGif_Wn?jW0)5Qms_t zmz8*BB{x7N)LXN^KZ-$XQ4C6<=Dz4h;?F_2KnL-{L^H-BSdU30`y3Q>gve{YL$5y+ zy-pU*Y2H2|5*vj9R<8i|^M|rzKnR!+xc8^W$=qv2zz!xhj7^$>QsUrt5pO3-+uKFk z8}%9=ZtuG7WqQd%rR`bM(GTTx=Q0(5{jmtZ=U+BVOorcvVJQqwrjUnrHS{*Ul{jvN zhX1>1aj0c2@>zlyUyX#8L5$CdEh19(&k6ps&G4Tl`AiWX@FIKf4Y_90-g`EmE1&v+ zGu1^Kr9-03om{4SIUZpeXXt@wxIHYnUzD81CBNvZwlprY%^TW$*@{Ak{{494Y+Jt(y&py2yApUT&xY@f;pFv=r30e0 ziA#U(4XyZa^JUS-YRLt0Q88SOcIA6i!-oHz@tpO$#&b{?<9Ygfk>iQ}q)qX@TDFE* zmI+LAIi9PXXD)Lx-&#H%ZwIi3syqvBTxn`N$mH$7F(`jfBvH&DyeXuY8AU<>@^OZ~3=Tg_*IM(To4Ch$KXy?_A zbmw&Gw>R_R9Sg~s7VBIx!(jSi?nb7MnFna!$$Ag@#K^BguguCTeu9jSUO1N>>}3cX zY82bcQ`&p5s4djEj`%A(x>r(8(G_G^fcg0-nB_HeI|7xoBHCq7y4F{+=6%h?-cFLz zJw1adoo6zQetJ|&0z>%8PEK$_E+IvBjIT)g>Q*zdu8mgr*R7goFtp>TW(}H3E?*Ii z4E{Hb+yad>PIR|goXg#?pz@~T}O#QS)~lhio3)~+3=T-IA0KXBC}KBUysx+ z*kbr+v@-qCJQ$<0@c|-i!O!&fMAU-s8uv&ngB8X-QikA5#{F4}67@L%H5e17U+`4B z4whes)Z{Zm|1}Htw*@dOr>hA3SBbz5dtlBE$+=+oKOD;E&KF3G6bz7faIWUvjMGov zDpU42bo=sZI8f!zRP4(O>Pcj&^B2^jbm;zd2I*n~-_*$#$vzHR98E38Y2G_TiyiKGr)$JSg@-hTgxl;ZKEZ@KD z@=Z$lo3OkQZ#8Q9l$l2P^RWDuF#9T9e<6*iu7^YTvOh{wkbz{Lg0f#W7S}w}(29Na zrEDBR4sidB(G38--7PdNMcA@-@ebYn=KdfY!&t?k@E2&maTm3)*D4HP@Kmp@debbd z*MnBJlOcSU6?a!Eo&Xg$KCj!e(~)^=2Yc@1N{?gwjNJp5t5->0>m{jP~dvg1?9nXs+Z>ZpEw>C*{Ex z6{$)ezWEj!zc@(RxytwIW7V1C;2DIv8W;`@6Q|0uz_ELFCMq(4br*vu9rNEpC#6lTy#G>R3MzJAKe*;s6#qM}MHR2W2>sg3?is`_DosCmt8DsXr9^{L;;vhzF#nBa z8Dr{&Woya)D`*}Ip*QBlBX<{eEF_t01+FL8pZqbfzLJIU zRi$psbJfjKh?WqTHUiiBVuu$hXq--ggTh?1=Ap<3BwGf44I|BIo><hdy+?t`{Rhvm0|o@zCX9)ap9($jq~pCttvx(#~37o z!(102Gkt;UeE1oc?mQC-AO=0t~S{)hB zsMGV!!#5k}n`Pzlv_S@i0Ce4GalR=v&Nuf&oNs37=bO1p!p}D%_-fdOf9VoFZS)Xr zxiYbx`J=@iahqr-PxBTir<(UO__T3T^=O}&{7IsoH_RQ|yG*qA_}@i)b=cmK48b{m zYSK?p7U6NeC9P1EoBJ4A5_hS}fOZQ}DLAUEUJ$_)fp2^UXz} z@bk@iAwItl^zYvsVZYnA5Y7qh?FJFv&|&^>f)WRn62C;2_y|i>gxOQbvi2nrWuL{e znDe?LeItD#5_J)6W0y%db2+btrS41VF`;HO@?rGj&D~?);k$75g`Y*T1@} z`Wv5uA}O;br;}eu zLfaE2dhkE|w&1SN<|<=f<3QbBr`GRTMK58}(BrmriaBfhidc73w-sM!0Ribp{1<(X zT_Q{TNy;`E0sj*S5DIKzmX7{aQlXxB&VxQo8bu7O>yFOgpE`;|rOiFSr?^63TVG-? zicSXXA<f4UHck24K`5bni^=)a9`nL32Xep4c?bTFX3g|l_KCFs|FJ%9tJKGB)|bHC@co_R zZ8`yxhJe2fLssp=e>7&D==nF-}oFlIgO}L75JkB|o?!0K(mG0IQ zr%PM4-Xt|k&Un@;Q9c8TUj4^g1Ob8u#&^+x{}mj76g@s*tHt>?Dtr2)vZpt^(LH%+ z{ZtJ0HeN#F*jt3>B|0}c$nDa~ZkLT~Da{)?q&8N`^HG5a0D!^zm>^sh?bP)2Eyk(o zr0VbO7Qu z1&Bfk#4ZG)av1SYu0fLDm^e%x4&-RxLJFzdX0rurt zQ*V>$NB6TQfgk&^ad(-dFK@}U81J#~q)&^_*eO31)F<#X)PU*oFg=&|0PuS#vcHR5 z2Q=@SC>V`{MQ`UbKgrQ!uqHp$B#o+HvByatxP(l(+J!xk=_MNLT4xVfk-j}L^aMLu5pu}>&U(OGx1T&pg3n0*-Z+1mGX~E>KB{*m z>t8Ta%{1!gSwl#2lkB(N6U~3cNAv8XISx)iebPmFDESQ@VK?>qoCzd3*w-f8b6=E~ z;xAjOw0R1*IR%@0JB6Ezg+81g)~1iz41SKfmYnQ0ec}52cDkOm9j?a+d%>LSbQj#( zMgQRb#v~3;J%Ub4YcD$ z?TYUxJekY<6?!S=`*S9|L!4-n#n}^S1yQilLQ^_)15Lv{eJz5B^uStkva4{9nuuuT zJar-xjKx)BOitTG9Bo1W>fQC}g1FZBPy#~K)Lo4X+XR13p8qz-FkA~zt)CpZU=vOs zxDObqxxPHR!(EGUTk?Q$$#fq!16HI01xbU#Pziak@OQ+fW@R z0;}fg$Po3w1@k`iS=y+3;CySIM^QIlhiDcNk5JB*Yq6X}IafTHG<}F37q*8&26}8l zn&h8KsCW*%$*R{pUs(ixAg<6ro3*N4{`^u{Q?BoV@udGXpr*#cF|EWRn$7x$=GiE# z`v*(-sJbS9;#R1w(OADZ*%OfDp`%J^g7J#I1x!$)dYI_5`K>~YH?K-+&%%fO8j@g z2nGfv1Sc$?%)c&Dbz|86Q9X1I$br%9xpds)3oa z6wEwwnU0x=iP4TgzKvnHsFN#7Vv?{)kgIDn-vSI9z>i};I~kG$Qi!~)Z!?i3X4iF@ z8hg4YN{D>=?F|x&`Zk852SK4R%BoNZ7{=jeJ)zJ|@NP8FqoUX{Ger^cvh7KS z_TE$4%hTJtT(tLie=#e6j*Z%0dJsuwnW3-iQ2%&94(fyg-S zFMgYc;^|gZ|A!cFvN{v!H(T?*Z5E&vg@ZN{F~5jGo34X4yOs4c4<`zn(O`^jkN0_u zVLcN$O6#D!Y*A}vTa+-{yrnR3VYYe8aU>15tIt{td#?_|Sf>o*hQ}nVFSPJ5e%Dt_ z<4=~(hw=NqU9ZtAyK3LAP>E!{{o$hh8~ci}y0we;ZOW8r)_wxD|5>xNH)>_` z#PwuBd8W*uV4VgqREEWWn$Z>tKHD69h4)b)zVT5Bv8$OOF7G2&c$K+x#NXB@3e_Fc zY*@3M&a4AU>nNLTpDGguiz(V4i>stT`z=;^qs+o84>hRxv2SO6H(~&GH|g<(JM`{U zrFUx|k-dAQiF@~1?>I^<>HX5w`FtGeE#~9n84GP;^AShEa%^mWDZ1@w(${+>*^`~s zq}Y>nfGe-~uUy zQWaPJ^&-Fz_X(b_jN?Mb`KJ@Q!P$9oyh&bh#R<-}j!fYKyQ~W;9%VPU!fUY3b52Mz zH0afRLrzG`GcrW$gVoIEfE{`j2ZtI}Bx4mvj(5`7ZA!_X{{SUxkB4P9EGskgDaC>f z{`*vM#?Lj*_^)vGwYMm@Okfk#glGE)@#uA2^Y~3dc!l|vPHhXh+ZOxkHE#*y%P2M~ z2$S8C6f~EoDbW21AyQ6suS|?_ohIk)r(VFq$D!!6!N}LHLRbbhu-`>1_VKlvx4)T3rk5ZHLWA$)EFP$)Alrq(LZOcWUK!Ld@@pTbQu2uX-+PMc(Ndhh|SCy$sC7 zo2hJg+)W*uZ;i1bozu$cfO12^{7cwEIra}?h!a?&v zr=B=E{#ae#RxF77$3i!ni=(|GO!}I6sAcLeoY^Us&V~1#q+qnZdjH6*A6K5@pAw%{ zudV9?1*kP?jt z(4U=+QkWMoRA~x)8GJ|8kNf{%%lZgt=Z#5OKdv~#_W=n(g8TLMPJBVmA9{Hl^7-(f ziu|0=rNy^{#3{kQko<z{Dl+2{vMWjKnquzb>R zuPY#p{Hbf1R&5lutc%j+4R$=z2ae=IufK=$otfpcsM@IN0p+*Ss{Q=f^O|Q9KI;|! zY!yE16ZXuD$D&G{(x}6cW)GZyALAGv%YDa?JK_zYh-q?v0Vbg=EcBzTh8KQVb!ogv zj;`bCe&l*)c1i$+Zf)~=E>C7yPWvPbc_ay&yWZ^H9xut;=kb!fO)&-Tz?+;VD4ky~ zEbQbm-J+K}-xRn6Zr0?SL^WAtxpiu}5mc^?CCQ0eWzI>WoHJ0N^ojF&B@(3IU50-jZGL;g_A?RfYy(9*!$x21h#!HEr|_n} zfyL}-Ux>@LG>RFuPLE)X%r9k?tr7zajz(8U+wiAPrBBEduOIC?uHBgJmo)EyEhXJZ zD<3wc(xTyW(cGa2=)3!I|D*2!Z7%FaD%44GtCzjY3mZ~f;HSwX`XkH9>}=7I4jt>m zPzKySS4Ti43r;Ci)_l~mRV&3g_OEwWE? z?+*R^n!EY9b6{jAZh(Vb@L*dg1j}KnsqwH;@fcI%UyQp9j6tgB&&FXr90gC$%0@hO z4)_1n&cT)fFJ5S-pbFBIt2^cMO=L4#UJpkj_+6d9drRlpGQY5`R~IzU1%Z zPO(K$&)1m0o4{R7D3uA;6&~-r7ujG1jkGAeBBo8Ah_)%32jl0%3Yg^UCV1pHbtXmB zx0eB+z_<4aUT(0|`F$J%SWm93acDtRL`!dRnc9`tjIIQJnS{2QdgN>){%#>Nk{!77 z>v*viVt!?6+_gY9JvSzfRb6N@h8v{kVL>g{F?*8<$E=Zp?fVV&$5Z{z5i0EKu2UCp zS|D>0IpR^=jNxIw%JUA?JEjr`%ZtBSLfr* zSvl{J+}Tv`$&lnJcLZL5J7j#wKgJV;!dY$FI*ixv3$STq8=SXc72>L~zK28Wu%o5q zcNC{~x}|e-rwyxVZj(#hCOC<|7=i`vJloxBbEd+kL!ES~$wZ_5#ExGv(n z{q(tTzUv!yzLV>TW4^~XE$TS-8Ooca!xS35h&6NX zS_lrw54 zGH7PhX~IjX+1)PZR7WdMr6DQ;DoA-DyNOC!r%roB&C&`1;s0LN+I!Ei@pR7boZs{P zpYQ8=ayEOf%e&Tk*Sp^JUR@8RoSA>8*lXy?@aqxSaoFqiyoUN-JJe#*ujnArtM3LW z?=Pi&bfJdD0{`oul>P+L{=0zie;(mK?EWS9;kowlQpC|kTUhyslP#5xeGTZ?kSyK$ z3VGAa)%^{0d$&ab;(wSd8B2%Mcan*vK~4pa!U_zlOy}X};ym1ArC7E3jsbx;M4ZQH zn+bO^E{D03^ZfF@lq=4!z(~!y$*Eg6O?+JBCN9zsPvoHd9mT=f$)uAk=tNz+NNlXW zQV{!WvmK++6T8KsAfR^!{p#b4M3BuD&1cGbO{GsG` z`2n(XaD)!3>WFh2d|h{IVuZ=o&PynP=c$j9p}F@ig}?Ezb<6XW?;H76=AQWS5Ls)2 zQfnP}(@?XoW+ISdBbyv=HfkJ!Ib*xUG&b^7e1lOVl$Wt}PLAMUPyPk=VeZE3ESR9T zOnI`RUyc9QHwwrW`{WwM=Vj%=HPCHtH=Z2VhfJ#H+4=AM8vL8hq0hlrUb5=^oZsSh zIFH{VsvP3Cc&K#ax5(jr!*B60iRHI+pzvE<&K~?0uinS`EiU%u{B|w;oZ`25GwaK5 zkuh)Nw>X;q{I(2!2J+)}__6aN+MNvMM|9Hb%#Uc?a1B4A@r=TcXee_nKccZ+3_l)* zpA3FPHRQ$oh&D+#@FO~4UB-_m;Abp9o`Rp={MZ0L(x#gBN0{sTXv;p!lMMDx^X{1^j|L--MmHfQo9%Iq-Owz}0zP(j2QPM( zVff;Mf55aa0}L%Ll{gq3hJ(UyFaL8L2P1SGJf!1b2OS4h9S3bX4xZ9+(5~ZPqmF|e z`7I(|Cmrzwt{~z?>WC+BrC8q*n{`|%)2nUQu>x`MTpb5{>o^#t<6yjwgI#nS9Hism zc{&ab(Q#1GaWM5PDE6>8PPRVA>@=Cn8Ws^2AvHLN^IsD^JE+;;P<~Bu-5k-DQ&cxQ z>AE?9GHy8{+;L_y1E1*s=6uTNdiyp$ZBGF{h1_SICakE-5wA|-PR4s$X1WLXxp0DL zT-v@n0?6RtwKk|etlJA_>lDmq%U~$U4y=W{c&BCI3cp!WVG3i z4E2kFd;!3G*f83AiaZJcKkPEJ+gphDb^ig%uR>jxH}))V=qWpPe&RVC(eD#a*_AMg zXpxJ9gzvYS2-fATqVJ!iPp!$#iOz21T`XEDL%cA;tkC$o8h%~a4u1VQfL5_98ipcz zF&a_)sBruUX|HoT?Y(Z=-m>uaM0^X}Uld)x$;-`IJo^619>6(`eFp;tq@y`6VDWd5 zIfSMB=0{!rP4Rvse=uq4d}s{`w~X4?JV(B32*FSeNAYttf5gSzP| ziYA4hO2fm&|`t zXitR|3c!bGdo=0nqufUj$e7#zxUKjMf_T#4Ka~eJ)dGPbolM|-K14lx&Q&C?@?IXn zO2~^1MrO!A&l$%iT`rfh;3{D-S733?P!_tZ(!|R(nGNe)wyj9}8t7>nMN>R2KRXWJx_$ktLZ!d3cn-C6#V^XyuT| z8pn>Onnk85Ji0_eF)cfKFAq%#XGc#(jI^na2CShhI?gmGQbc7R3Psh#ACW-habh4c za>N`v$^r}-MsW(!ea+L9#yTzvVxr-Tw30-T>6{#CU4jWOh2X7=)nIAnomw}?O+WN&#V{)SZ+xC4u?D)icEIdn*OxQlC3O&Etvw}if`i;(87w-HH4!cDI+V0 z)$08)37R@pjiP=0eYyjA`tG89$GEeNG@nO0_$M6cJV$^pO{`V79rp+mqv7>L@wsgy)ZqkjcONE@{>orp zE8Z7){alW5b)4Nj@|(8fh2_nv15{L(^kF`-t2jq7gw=Bv@f_#h&*v`*f6#V{vkCZ0 zEy75MnL|M81OgiQDUD)aKms~Lyp@Ik#b_!cs0QZExs2-FcEp5o2*&fR`(<<|X>YtB zHiki>T$UmIAtc!6#UXu$P^n`L%Z zIB%D;c{h2B_wwpy1n0mQ{YTn!y2VzczpcT`)^nf(pl!b+9N#BW&8R01W{2WKYdPpM z)eNQOxe0Bm(|%wM=5gMytyVfsSCFu~zZWmHX%SWx$=X!aZqaps#iNFjtL!z{OENB5 za&VX?Uk+@d^@cg|9mRmc9~-CK$e?WN#X1a?8rAlrv3U6AS=vi*7Z0?C$q#icja1Tq zW`Zi?ddWDOiLFL{Bm*nBOwa7S$>bfZzRH@JJSY z8gfsG!0edFCB7e~>5Njh0!oN;<{ILGc_XO5{)2W{2)n~3W>RN|c;kFf?zMn0C6QoU z?=_yyQR<}21>eb>FZY- z#_wQ0MeJ&(2^lYo6H`m^g|0DUxsG}?qvdhrXYhcqXoT}>G%&ZQtV+UyIbO{ucNi92 z`<E9%RsL-;gZTloB46i2bg#eFkAkmX3C$hkldmcY;a zY>u+)y1-e+(RJOoQEU{vU*g&sQ!Y*~<2CO3o&BsKSf<~t1z54VFs~LxDsjCpgIT1N z>4-hIC+?+qk>!y?>IIhmXW)IciQ%38?b+dd@2<1MThOG#TXosl;H7x`|pb{VT6Y*V0jIXv}Jx!u-j@f{yFeBXJgF)62cwt#;&m`}g4TPTg3Y4z)= z`sVhlufXbPb!l3C;y8zrRf0%GsUh}ePw5lq9-k;Q$=C(pQA!n_XGMgZ4Q|x z!8V5V9xr;AY^Ab*?W^K|LUbC2vKn{hCKfqyGjpa5BLUZuVJP2n53K*1Od7PsC_t*X zd(I@%GP|~O%&skM@NXdW8xnu=sf*9(jZn6)PwN-V;QU|iYEs;jJi8&yy(xIN&X3XL zlCK9wyjY4;@Epg@HGC(Rl3n;+#tTN`_~L{rmibSp($4Iti;+DjPJ>sjn?$VO5Sz{i z2{EORM~WD}7;sty`n}((xwv|}p^e9aEf(E9cYR0Pn-7b-6FQ;3OU}kYtL}t)T_@cM zbuDi^Q(Kr1msU++I;gloaC4#yU6Q&}Oi|7Pm;v zUlE45lbmI(Rv|w86M_AT!NcIDPMQeT_p?O@+a3n?Mg!PC%@kli(H_{d4%v~YBneRW z56*uZHw;DJ(&CZx$_SCF`iJ|3`;^y3$qwaULi`=kdwM&$eG5}JSTXl?q89|D#sKC$ zi^zTITVan(?h-?!d-&E4?9u6cHo~I0-W`D2A+C3myP@kHn}M->)%{6(Gqlyvb}0Je^9DJ~!bMcD13k>!-`s>Kfa}@Qq)DY{Vj4n!lp_NKb3c#|unk|CCV@ ze?G^;$iXMhr;q}13Jvr>} z^3$Pz-=XEtAbN3~Q}NZ{Y%IhW1i>Bfh|Kre#*hiZ|AP6y>J!9o?*28T6wXO-V(2?! zFGu`}uD>jA%?!94vyhA&eur7evbU=Y((I|~j`K*Amm6y4nJ(fS4vi3Io>%K;p3(vl z>4daE{OD~)oh$w*0vW=sFH;6G6!K@?-ZNRZ_na}6lxje7Eph&i?0+f#26hWA&fuz_ z1AIl9c#MGkX)!Sn5`g?50C{nWjHrjvI8pM4f-UUPyAQ7)oiMYZvIK8Gf%814frE*n z3nMO-=QQ+pKJs{{p|_0)yUn+H{l;k=?~?pnDgJeiabi!sT@@m#%I$*WInx+puRWlT z2%v+1fYlo%?hgS^EJwZ6df1~c9rTc+c7`5;byB}uc$(Dj^WYZ~5$AbMN4kb$@N{Dn z8Sm)l$461T^3Hu#mf~~q&KF{z4`V(o#_Ze&qrMVJrp;HT&%?#xlC&d$6f$+ zy9vATC!j@XH=gQHdwgu7JP}H!yoqdHh8Aytjc7I*$2tb_7vLsRV`rJCrB(61ESe~7 z3$uFXx#%XZ;nxDhuQPyOe?a^?6H$VArTA$7mJLmM?2#^>GOMQ{(tWbH6JvY^6pm(* zR|cTtXNGg>{db58s<+g%Ka@XDKoc^uuSy89M=w0Xa+7cQnQkxp3A#wvbSb=-BU)xy zwx>Evq1sv03Nh3}^xvfJPw+JABq z{wgLRbFbYJ{6)8CE*sY_ih#&jMbN;>fvCxuKPUY^gw;MmUZ2bRW@nc`wZ9iN5SPOg( ziywPzm;L|D__5n>`!B?gZT-mpo8!lRf@RMhKep_a-yT2q)a20ku`UMXKN~+5@b+Jh zA6x&S{eLrlY`*C3|El=03#;w_JMm-xY)T6$e(ZSLzZXCD;fen*e(eAM;>Yf0an##Y zc0GRV9-TcJ74c8w$NoL@|HY5}fAM4g^YLT%FlNT=&@pqI0W;UOHvhBuu{Yd!miV!| zZZVA?yTikbCK5==Xl~xEbJv5R+y5)$$L`#t>zPlCHpY(~vCVE0KNgCIMiWinW;ev$ z+x0`$e>Z+?!d@NTGzl-okA1SjZW2GX4ZKfP7~%bt;Qf!qkL_-N?v?AqP--{r|i1V>9=L zDY2h|{nT#!*ozDh_tzkn@nh$0wwuI{4O`NOH=9shWBl0O%sOcCWB1LH@ndn9{5Rvr z#u-MJd0lw?*k?D{P2$Ift;Y+S?7t;`tQhvc7(ez>1AJ@K!sEv_me|AM$A-aX-DLka z;>SWGA@O5p|J?lV#*ck!Z^>=%9uCOPz`LD;1J-kP6;?Sw)(D<<-oy|6sd>2b% z{8$tF{p>(4C6A0;(Ds6_K7`JD$6T|}bjzRM*m~z)GTE}J1;8I|M9s&^zbH>{Q=TmA zw@oQM=sW1{j!n?KCOFh11t?X@*2AM}o!qlG%mzz=p6Wm0_^-RzK8ft9vC^kqb~0r6 zYjdEQ47k=L_29{7l!NpnH70K#TJ^3Rx67eya5;Jwjjbs-ZJXN*?@E?WzWJr%9QV1N zZ@Rh8CwXbKN6%MAH-D|OC*W5pJs}0wE=QDl5A;`j0wJsx`^n}hM&+l~Z4bU!Xt5Ln zx6``KaGu+$3g|noXC0iHA@eW&x5#(v8`13=9;49a#jC%fcg!z}cLg1gajv^PO=+&d zn%9P?wV7+tOzwahA`EIwi2rdr{>mGnu8R5Ge`EO#SUyfG&x(Vm*q*HLC-Ylwn4b>CFtBd^GD5M|_CB|}jj%OH%zaT|hSf0QdccQ)9>p@1nrd zIU?tvmGKO%=UZz63&(MRo`I*cVzfqOp*lQ!;0$Z6aUKlbdqyACvxW(M?tPk2x9cE( z)F9ffL$rVJyfHhc)n+?VYcm|F1YZw;FL*IuEM}G122dTXZmhn{wDi8RVha>upWG<* ztK(4l5VGH93;3F00oP;6ciStOWhfcIl8c(P_!@;rG4M!$BaH|HcG|I6@lD)D;$*%c zg{BbpD^|E&+WQK}7TR#aWHs+SI*@xn>8yE|!K6KUaX`fN#46F;0-BAJJWi%cZyLyx z@{YcxXclUZA^u|(qRY2$3oPe47-7t!fy49|$rH*p0?%vhemSr$Y4Smvm@t(2{y5Ip zE+@eiItf)cG-0FNC0UTIa|^e>CUzwH&|ruH+lLy_L1d1lxyX6fj_4K};GiwF_I$t) zRMgDvQ-!hs?3ASMmcs*ZFnXgxeoyC$Rw%xANTC@^$w_yg==Z?a9->l0g z@`>2T0Y_;Ah7OO@X!m7E9{a#)dZ9cE{F$^RY{95hanOkMt}?h)$wT8)=q`BjYM8k> zoKHEMjCmrDnM`~XfWxkrt|9ar?aIZ4=r0FytSuI(U(`2~zY8xvf-rGRI<8SnVnQOK zV08EyMiM>2Dcp9o@T`&XSoO+-EcNA5(PxauyV;`YBCv(mA0pK6YLFUg=RcP!VvjHl zXTC6OoZ7*}sZ@v%2M6Gj^B48xJ9e$|s$$@>f+%EOO8Ir)VKpOgSEy;MwHE-+9I6I- z5?_ZQFXp|Yt0AjAIZdtfUzKN;_LK`xh&Oe}GJEpiFPfb67-G58(FxP?Wp!0LA|T+T zmvIt^^~Gh*eV)TT>z*11b!w|ocDpBe?Jg zE6_B;$jzPMe-Gm_ReCVQhNb>8L9d|& zc?YuGyOV4%cD`k|6tO`B+Mg7yrASgJWncUjA?aau(qcv~7qD9Bcv=U^;L&ZtVWCG^Qjs7i~3fBRIWMZv#0RcX-)iTGCx{}r2%n3!0V)&omcruDK& zj#FNB{;`(PF!x@K0f)&*RrjnVD~%ks+HeR~Bu=n0Jp?NgD_EHr!OBDnRtBm4EV_}3 z!J|3TJ!?s4n<~2jVyezuONYTMK%&eNBK}YC+_FgqniSZR7w?=F@RsMEYq8)l;ZIK^ z7cpg2g+Co-LE})(0x&DyJ0b*2c~gW4-I1P5SfA;b?5kG1+gPEB9RMIx0~SxCm9CjZu*PIpAmM5}p*D_?Ko^X7Kp92(v?1Lv9d*FA5 zKY-}2Yh!e!q*r`cyMx~jH(=H47J}ti|D}nJO^tX zr~p_%r@wm&EIQxp&eBM6VjXqQ)=8D>n}*Dah>PcW(|11#4sV>0|s0kSq( zS<;jB5E(H2j-t(u)fQrWdtjtEsDMJbxPS=PbCl0YA&|$!0x?MBh{s>_mv#&}fvg?6 zlIa#+`|C!=p~)D=8d4tjpb47q5%{-mKS0jB!jfSq6JMe7&=Ce@F^V1p`O3R*r)EFj z^)GhWNqFDt%q#JhkRZ?GI*yH($Bec2UY)U?e^_w$hSE?b;~Z{nG#w{$jl4O?oOKii z6INXGkD-;63dLKEwi2!N%8aF+R#@-B^cvQ?${Mh31Oy9usv=;J8?9nZ7bl<^oY^DH z?jzWvudEt-)Wxc?NBtr+_6QB!1$*>jgvK6Cz)6D>j=sR8r7Au&V=l&h2BVmoJ}J%# zyK9C8^(i@w8ySu%tY1Nq(bRC%K%CO;TYm$3#NF3EdffFI5UxYgJ`BDRL0!wo2L4T( z`}yV&`SdhyP))$fXq-kAJA4~dz*+`RH5=of(LxHY72`3gIpLMw#7bM686IsmU{rL8 zy@fl5`MT37W(Y@uGxSwHMX{Meqk8Jq_L2Vkcs3Gqz@URKpD~_~bc%*Uv>qY43Lu)X zHQo~Z1dn(^Iz+{IfqY*zY0+PpNC-3x=7+Yw&!qjm*gm?mI1dKThaWm!!V4Y3LT|uV z%7YUegNE=13`!Ij1pH8N;~BbVBc0WVR`Ani{bjH>v{SdAiS=sZ`Y^r5NV|c}6kkRP zQ2!#fr|&-fvi#Md_64Y(D}*GXOW}5G&LDr6O)WDtwfvAlev0?*v&&E4zh9Spz5H^R z{1n^QWJ_iD>*QqMA(Ye@pqa5$$WQx5=u$|kE(M*IJiYpfgJIRt-|RQbPeYph`hI=r z&xAKC1*mgTfI7n>NTr{0ClT140Jhimto|C4+;V5zbHQqXFEo&Zp(J;PzSCi zwu4}N|}!FNMio zB}8fZGVdRpx;RYsy1Et?<;!LvdwuLamc7cl%k{ca_B#JQUG_R1E5B@zsD`Y4oMG)# zu;kqKO4i(`msGIin2`Gd(*ul}8F-$eHe&AJA@`BIMK+PNQvmw=j>Xlwo- zgg9*qi_Rtqm3rn2F_aBfJtSMaRd}WM)BtiGlpy^! zFq{a+R0)PR$r?Jb6X4h1B$s907f2us<2FL92~~#~DAlMoH6(pUgU8+?yj@ZrUvJcz z&x<=jTfo&#m&>`jy;TcH9Npf0?fx7vXtKdSULH}=Bhu-J>PAOYjIsV~L;WJCFZ>YN zaE;E(wdLPtNOlP~$YCXhdA zX;&aWKTj9P=f{a-uv_8w)p9*T^FM?T*l(XTyVvb`mIy2{K!tg2rT8yC8+xh3zeA+@ zX^Vwazo)5GUx&<8p09t_(AN0xbIo@=c3y+i$nG2AAE9F{kf>Md9gl=zEA!| z{W;WCqc8jI`g1IQ_|mreb3;7)HkB;zkPc0K1M0D|piL1g6j2vlD#F-n^5<+8*yZ8R zx})c{waUl3c5EK)pD(5J_`<^N+19r9_@b5N^y4Xuta=OsKU%&fA&kF@Zrej{Xhxe3 zG(uM|xz$em=(aJ$tIBg-?L8L5Bf6i}8=NPk2^L0`NIL?GXFuAUi|v+1iW{y1{k1N4 zV9aa0KqKRXS1V)&-4Pm~RU#6<{ls}BjYxbs<{dugaRT6}DJ~7E3Y)&~faz6mo<#U^f9#_(17j@yMJQ7UjImV~oS^w%bd)z=VoIX& zQkiF))w3f_*-&P!gn6CE950&1M+g4d+N1!H;j_yFU|ZpzM08_I;BooxZPBi6k>a{! zyFegf&C@)iv(Mi|kbTV-OWaZM=3!I`6nO`C1K&oW--Fwl^(5UQ-+@0PBrmcW(LCA*m5 zbrvkfWWM5{gLYK3#UgXu(#e*3v7UofDa~@EuZt+Uy9V7k>aSpXVVIA13zB)0M7E}iZd?M6*Na-%(HbgY8aIj=y;Y;|Ac%Kft_O(Qk>8PXIbzyWb^d<0e10cF{I4^ z4;0Uo2mSMuK=jQVmI zNtPomFg^(-k%94v@RJ-EkE6uLqyP;uAwWZn56}=D0UBalfQHy3KtqhJOOM2;)qxIT z9bttz2tvqHLqU6 ztEuZ|v(-UM$f7^Hi@U4mo_K4>7-lS$3%s(u1%9p?7Pv!esJ?{m+wW`l?S+PICASnS z!Ntx}CqOHnmIzYCx;i_{3R~bI&UFW1#bnraQ>75lL%uY`t2FLe^{Q?*GzyEhq|KuT1r^B3iFZ zZN1i-t=Gc#)~mh>)=ST4Pw`E&Sq{}u!;>4>t&LUP48?s1U1)Zn159n4Fb2YJanc?w zl0xZCHqBSV@kpVA!0)h&9W`w*LA|YtZcx!OKN;Eypr-F{XDG*B*T71WM58}s)Z>9H z$1Hzm&-N_5CBXS9{~63{YN zm9%ej9z=+t8&Bg!sLg{`uR(2|?FFoqQsX|35CURG3my&`5sLh2p*~za1au-EKvqb8 zAsQXl%NG2esQYar#o*Kp)6D1ZS(Ev@xYB(79%v4mzvOo24;!A-wqXi{w0Vbl<1w=F zuF!B?;E4}&V#%0+8i!fc;tL+l#^%SHz&S!5!;4pj% zu}9k|{?RNw=Ti1I0q+H7RQop8^0Rl7h*oS{%R$(z8K$jlkr*4GQJ7uI0Rjzkg2XaHFp;NWZv2NlT{V} zEBwjfaQ@`*Prr#jdGmsQfj@C9G&}FkTll|o-mP5FmOpuN!EfPD=Cya;HI;?%CzF`K zkAur0oq6j_=$^|lOWh9D0-XW{NIL5;(D?r7N||X&>_&t zvwa*295s4RdAU-l$SSnc;?GN^PD8>Gw?_v(tqd; zrXu^B+rsZPfxlquS>Sgu{Ig8p2b!m5K;1w$v|m3kmF}_dfJcnm2Eaw7G`Oy&k;J&a zlo%je$}m9CQmPT7aUvcl4mlr&442+~G33!d6R|r;W6kI6^c*qXrXFq5$EwR0kP<`= zH-JvL=QT|dMt@cxD{YpMCS^|nPIQW!^3zkTBriEi$h?KzFn|2@So!Im{!B+qdE>dd z+h1J|pjX$}Em|1-{aqX_NuyW|OkiIOf&F|(TIOQ$2 z^?uvYQ933|*a)Zo#5gy?iYgVvAv-2czqz|j_@{cGtQd*!G1L%uQ3kF$FM`3ANKn&rAB$a z+*^IHx~>);$K*nPFJMq0iH~Rm_TUJz%u2(fq`qU_e$ua~k?x19 z?G{G3`YsYbq5kacau(~51VX{jf5mmrHwN-F#sf*i=s`u&D{W^xOAP5+hw%>{75?OyVx%D7arFqrS81WgA?b>56F(-$DL&NYp?)-_GQ)9A z0tWX*!`)P;`ySZGStX=sv_>%gB=}e2wO4Y#d-oXRim49OcZBn*hs5Q~X5BUdIiWMj z7SB~SWIBeTMb{$WQPU`MnP^cCd!2zC-@g$LgfuA~M1Ech6J_yP#`8}UZ!nx6G!haU zTFDT|*{Zwl$~K-bw9#BF_~BqS=}Xan2FrFZz3(KcyNb=#c@9qa-W_GQJqsEW^Sc!^ zI_IBT&^X8)C6##baP2|EHDmk6;pY__-E4Gu3CE+Q<1pCv3Qou2;9}Omq1hfrYqGP} zBS+*I_}rr97(g>NvNe5|9wOY2taAb?_AknHP>@e-{n#E>gbjSeZV~x%v}oldz|N&Z zP`y7=WXzZ%W3ryanh6f|SU%eWZE#>({-VzelXCk9 zI4PMzA-#GM=(vJH2`q-;?OzAC_6isn&%rlU?R|{-_T4^QfrtPXNehn zO`pMMhnRKu5DkbLU55=%#r&7;(&XE{W<``x+YI=}0Fm_Rv@2&-xVByWC>XyIj53u>R}i zf%mSSpZIm?vc6o#6D>R{;$cUAv$UE+$$F}_0c>{Q+NoWk9XKUdTR3js&m4XpiKwqy zS)SqO?<4!X{_aRG5ZBLbq%x(?`;-+Kjw@YCfOEv7THym5DL}C?(I)g7N9Q-?RrXi< z(J)(-uyBCVDo+f%HsO*dD;qH0<`~N&G!onIDZ?pp_)mDs&~z*b_wduqOhg$6_7M+^ z4vFjDZ>HcUw><>Aw6Z8I0;luPLv~?J^sY^45rv)pU*QXka7b%v7uWfzLtR}048v=OII|tNaq|Z@V`Nt$g0iV=A8y7d5OBwP7h682_!9V->2FbdU$NR-Ihw(OXvB##4RJ>6XixkSyrX!gNV?L@tC2CRR=p@xhrin z#>hlas-1Mnj-zmAvVhBxWEcU=^WW!?6C`U}g~Q3C4~Zm>-hZIwaRiPYW|Wb^_anEH ziY&-jrF7!BrDQG=JAp*4<^_k1~o zLmqv(R=oo>L}khlC#EfB7R*>TY~hO#d(17Q;opfn56E@?A#b->%Cjk!h-?{1UQJ}i2buUZ5Nh~{L~#CyC+>KWmm z&Apy5=C_mfQjwe5PPV%Ft>#u|SwYi9b2}p?P&OP4*jBM|l$M_~MmF%4$!fWPznJ?L zfqfB%`=mhbv95DddMt3CWc~sE)pR7h{uuHgad?^sY+ys;ZD)K@3hlnjFTDNclc3Wpyj%%IflMd_5fGvYx`AX$};!K5u! z>7x-Q|0E2yNLwFxzphVxHQ`^? z$jG$PjnnGiH|B?}->a<$S-{k9HC>;jCKJ+Qt~VKz_au%Ovd{WCqeeB*!_zLeUd{d zRq_6!UXh2skpauFPoRV=cUU$4+*xI2djhwnyI5T4fn)EAv5FTn+XW^ip_ARct?gK> z^gw@~E3(u9P&IgctHECd-;b?duE&=ZbXHE(jXs^uCjOPKN>ZN6{u>>(P)1aJn7)g} zEi1>TFXPW|!nGC{wTz2|(t!mw(X33lM6e8`)8KUr+i z0t#Lah(MOiu7UI$vCipAmcoQ#CX;va4ef5l#G?6v$cHnG9pFl?~z8wlfKXsR*u ziVYpaBb1RJ`@4CzCmHh_GeAe$+kfY^v;RJOogkW`9UBRO4u#3+|KR$A*l^xgXnRE{ z-l6C=Aoe6?Z-PCic%L%3@tkKe|Fd5wu(_RWqHmlS_8PH`Tl4P&Dyqxx2d`? z*Tff2?8bvX0(w@V1ffAP+~m;oHku5cLp9uE0uCorS2KSkUZP6z-NgpA2{=Ok=p-FNN`XY} ziebJe+FgB?c2AvQRozH=&6I%uU$H|MA8S|IpqEnj%&9coc zln0jt-OBPZPg!EnE#ld7l;p4VU7O2^u#M@Cu+8-XU6Gt7|H5+S?Jb;VEH&kX;`;z; z!vv%Q6d1c%=1Xj_x}L)WHMor}M{`+(l51htGn@LS<4p{u_bP1S0#PvpzqR~0&25<` z!0*xO&#w`FXJOJ6D~zE#43iHTEL{x1W6*4oQzZ88_SYfz2il4q{Bx6J>KJk48RdDY z$e;qFO1kO4o4^F@t$N36MAep80Q1WErPf(lc<}~f;~IpIccJ3-AQ1c2Lwxw$tCWt6 zLkTbHk5Zi+U#SYyL|I5MQ}9R+r+;LU;zeaCl)Vg-hhUCEOhATamst0NMHc`|AP*R} zY}u=t`9rF9%(g?Wwiw7&GMygoY9d#Px0*ns$;4ohHrX2cJB0OLX6QfdRU{dyQvOT* zb3@LuVE0zGM}}kjD%!J$e^tB};8l=D>$*O5kgG3d5yOHsC-vu|{m5`D22YRhcY>CM z8!v$s4QzA0M%XvtBPo1&vb zo$(5@J8vW5gM;law786r>SOV?=ld){Ye^BE@ z+9r&!gjT+iU1{L+!=Qc=F4hCoq#5lWDU0ff`=RaUj>dzK&JS;ah56}BgZ%^viXXr! zZ-{UYDj9(=;XlEd0zWAi6opkD2yaT#u>k%<8O>(s`u`OmhDSe-=Cv2Lxd}emISrq2Tm&u4$eIXUWgdw&J~p*~92A7K4o1 z#o@?s^nW_RO~tg&%&Iev0M4JJ{OW}MDqb-g5=(x99^9`4ztH6)x;_@$c-{mxP`xqn zB_hw$e66l2un*p&eemN6A@08>&=J<}vcM?R$n;`qb6@3yQBhJWVOvl=trBnjxX%5H zgkQi7Ip`NKPB?xEcvxScYWOSS_X{WSfGMd)Pl9>syDu^mIzXsk`WiecQP9BbsDHoW z{i{G!V2_STY({tc`Mn5}U3~-=qeizF5x729&#w&UVLjr~oMJ>H)Z9omA#wq8rVmXg zeZv5$xseM=Hb26ncl~iOcd?|IFw7Iq%)se5GgEnH0t*mBS>>YZ<8UT4eT@+**Svs8 zIaS6JEhb!^py?-wWo8=+74viWx7DxUIbW>P$G8B8bBlb~lvE_Eqh26<7y%6OaE&g0 zEyvU=FzEsqR(DwPp6KAzUD+_H8;omFmg6#Y(;arAWpNDQrZ9O2^`9u&g?mi#akN_b zJd-J86FsdK&UaFhf$KHFLOg1MGPVM1DmbMXJl?~1w52InCQ2+^;`cBg<;dtFRr5EL z%$zY}MtLh~q9gh>YMN;Ht!>t|9Vx|ASx|C0%t`U3@DIwBxP=5UUlafj6+k5L3SRM@-ak}~ z#fn|wpZXmJQCKKHDdeG7nL;#Kz3^E^*e5y==eU%FgO*{(=-fgJ`(b#5Q63zoR)G=SGB&sf1&Kkb|^!HTYX0_dmXq?4%^*>K(pGCgmTjF1?Cy5F}us}lK zdK69hfO_Uc5TKT#rGxSC{N{|}tt9@W$zOpH&FJ(e(XPgPa(vAe&i@e;LC=)=qk)+T zn;f98Cp5Vg??I)MLzujIrJ2U4f;S%}g#l(jEgD4*X$$bM_Ot-KoBHeV9g5UAJEu zQ9bd?-Is>lx zQwW*P`Bu$@qoY;3HPl)RsEFZ?iIlg`g${&K-+l0oMQZkG=iSv zLxLL(@h9YU?;Ml+LEQ4T_XEzaeMzYOjM%DE>lw~X>@%DbtZmVNuptoePw;X5T{OPK zgxqtqdv1X)2r}OP$R+sa#b#$yHpx2NPc>t!lQETc1qwX~KOYtHj=3!FAU2Qj6RtEr z(J|sWFO>c(8?L{!eH1I2SEF`@uKcG7%ajF07LM2Hw@OS}a{xAe$B?7PrGy+i?jmgc zo3^7--+7XZ!}?Yk?4>#jj>xw_7k~_*1HsiBaWyq8e#wT@fs8HUddT$nN@U4xlYni- zNZ0YO7q28m&W{t})q#}#%9t8YW9PZ=wmMcULSoSo!}B}K>R;vi`6<$h)UOcsrX8Q? zOn>|2-+332yyQXV@2fgu#0>a*8vo79x~j$KzsK?`;x}qc)-;<%Tk6Zp@IvHza^aNdYG`m>1+QRwGytQZtu<%QZh& z%wC_A2F3e#6ff_vdd@_;zf0LnpE%^c=3lfuH3a`*Z^mfMZf%AmW`CDNpzZCjy%a7= zCg@s$ATC(KW3Uv!n;+yA&#L%{6={u`yBK4*OA7FvpaB1vV7JsKu|GF(5l_?T;uPO} z3&(ty0*Pu-egl*@+?PyL47P*1*iB|Qi(_!o07c`Au5a=*T%{}|IjRAoM$tnSLi7s7 zFQ@m`g*x3(mo&Eqx3QXr=l*J|3=0DDzd4$XpkBtjkFW;UTD3L!8rA?mD?YF2H#oFa z03e3ANdWLkmfaG(3_mVJAOB&K2_GnxSp#J~qKl6Rh;KW|waOc9{Te+-A}Q?ZGHl@x zN){SB@QDP4m78m@d<~SpXJ3}kUa2#%=--HJ8bEnp(r5holu%0DD!^DD` zA!mrZ<@?b4cb*|V_*#<@JWn1Jfz1vyqf%3fSn%?Iodqv<+4ZDLP)>uHS0aA~R z5rTRk(;+)q%%G^0$$DG;EG=KX$j=o+OV02C+sV_iVi_i{uV~l34oW9$la@hArYHsT^W!K1 zRF2;~TCO8I=dr=ipQzo(QdzHVf@ zxe|*w55lxx(;A+S4)Zg98=+-p^r5;%&hv6H&&x6QvmLRTGKUSoXtx76&}~AvQv%*d zwnvD}VVLiebB6i11xs7_c)<*t4@PJQi|=ZyHgDQ|J#AQrj-N?n%Wu)sR39E|#{_$K zwHV`(HlZ^r--ne2rThkQ!5a~w9mXUtm+NE;Tc;Nc>oos>?AIpy4MXx%07IaYr_6d+ z8Cg4Z3LXfdPqKVK%wr}dH`o?jFYhz*`y%l@fxoXfqve|`u*i5l06oR-Nj9AK@;rNW zVRdNktFC@H)G&yR>|vSc;loDi;dcT|F$*2SW+BZm3-fB_EVMMU1~U!SWvD(Y8V9`C zIm*JLR*^|OSy_y%P2fd3HG!ACm)Wsy(tq`d1@xs_@s6i}Pu7$QL{{WyY82mHWMR9Y zSR!jtGfjK@)Cf)KZ*4ZnGs3XwSy^a3kC#F(2Cvqv?BwkD#O$m+O|x^Mw5JsL+_nWf zu-P8XaqyQW!+oL+P8`mJW9k!5`^fd32ZP)AZ;{-s3#WC1cGom%>Dsm_OJ2Zu=$$B4 z+mrBUN7@M!fe6$In|>s=xm8o|7~P0^;^qrZX(HQ{D0z^u2Lja2Ft9tP7XW4?LCH<0 zaV-6@PNqqn-iA6mu#N>I+Li^gT67nakP1153d^y=UO=@ld%h6+mgh{l>11`%0zTpX z8lfXShGL#`he)^UT~F-u62tcHYSoF^7gn7RpmB!WB(_Bc`xl>-E#MtT*Ee7m;$MmL zz1%7ep#2s;fV?l!n@IONo_t3thVij|21Ay~rz7j9asFV7)s;-Y1&ViuSSzPK4C| zt|h#FP005hZNArseE)Ns@0B6neQmzChJ3$MlL&Z1?J+d{N(L%YaHSqM6$_-P(>x@y z*32K=8E~0QlhH9a*br0-X_X=5|uc+`KRH(0! zZ{x&U6nEB_gz!T|ZX7xZ@sWX|s5em5L;tt>$H?EF-Y1CnQD~DhQ^$AtJz0D|dPZ10 zhJ7C-zVE{CSG4`!TYO)O-#h8wrTvNIVq?U)x7=`k7k|uht{SvzLOe-KB0LFhZP5qT zPjqk-cJP;$@bht~_?&>B7q+y4Z?GIcexIp-=S?wDYme!_Pa*quN!Vd!0ogr_kCQ4)ekfPlj7a{hoQ9ukVRZczvH^k$M&h_L)E|GI%S=uI3uL z8ksNMmZzAUuiE~*q@DfOG5_D+fA5Cvzs}dSzyGFG{x|mDn_>HJQCi#mcZtbjMnC+o z?Z0vRe(V0z?5FJ}T7hT&#MGNCj&mKe(2MKO`20KGd5Rb1Q(M!sNbxiTP&>tf8Ht9F zmT8M{$iJpNUE7flNtqBS)n3*!xV=6d&ii7NRofR%yhYcc4Ur4B5f*HVQHS<9KvzsY^{7L; z%%Feg^{6neho+w@tKs#yfY&3Z-aA9{AGe$A$GC@B|7F~d;pL6^abljl0IypCpIapk4dB zSTkSO=xGMqEA%8Bd43P$NIK(42E}6t21EEQ&ENe?ll8!O=HJgD@;Cw*ZP%3fPT;{^ z*8?M6{3DFronWGlp{^e&m*LETQ!oAw%DO&nW3N+u4Bppo*8MSp`1jh7_yiih>}dyI zuAjsBf~PZXYLbRaTO;%si8o%6geKB5xhvbUfya_-Ik zk3|rA={h2t>lD`9&xYn^U~?2kEV$H1&y>DsuS*4}}j8|v4$$;t#ScKl1 zeV?_8u6E}F%l>E&y4iITcFf%8Pr7}USl_qXS>H}>THj>6tWS9`6PJ02r>TScisBA_ z!fw;`UA9$QUwu`JTXFq%>Fe3aAG*HHq3bL1^U~@3Ok42OTo;XeauJ4G(qbwmG5zBh zBUhswJSEf7!?6>;jH; zI{S5Wn6#Y$jW5i1piN|iyR(L!J;|87Am7&43AcJ>Lz%xLYQdA_{wGCV{a0cBN?)4# zBR*s@e+dlgSgpg~dGZ|&YsvXIOBedjI!o)e2tP$bl`goPA2Aevhw~!@zuYE9ENdPl z+!`FX)YkE{X@LcZy1s+%O9E-5eP#2as4pO&Nkm*@D2uf7pnMYAFatjqvOag2u1|(K zI}nSNTKXo8eCNBp zO-Fvyjoy5qzfpX30A;bbMW^17k?2GTbQ(<9@Hl{IICOLER&*Nm^JMs&0R2k5%VCy3 z_wNV{7ndFN?ZL>cxdwYGBLh>K0bRZ=5^?n9)Lrnnc5ap;NhQbhYxA00>$Cl5{9lR5 zmf_p6mcJ6~?e$k{zQ@sd=!YHv9$fLg&hBpsFuk6#(M;dY==rd4J1lE%Z4Hfz%=z=8 z#7PjDrhZDW^1`?% zUq>aOAB2=Q%koQ-~M_=ysb8($4Qj_95UJ$ z8i$hS*VYtqU(LIZl=2BY>9_kU{U_+kna|NMN?Td4pw<6YudgQEhw81C&;mWfI#5Ih z{>otQ7A+s5R(yh?y>IV@_FB&9nhh*eDm5ER3?)mj(c$D7de?0bo{2`ZlSI6CM*PQ^k=cn^p0)>n^wAgFj~;AS&=I;};Qhe|3Xa9rsfGR^iVC09-leVz`>Pz6Usp2jhA2 zYVbZyU(sSM#;b~JN$~ghu9*1wM_Z*}#2nG^4!cq>4|=~9c9 z5_pS7)gfGVVc(4?Lbth_6FIWOqZbCf7Pe0SUa3dFkF2|W2jM=|6uU82j1hm8u^&lk z6O>X<543CI+u!pH!Cn0K7BxPRBB>Mz3<$wH5&6cwo-X0bWcW&5{=Pj|T%QFeW1|1l z_=zs<@T-&VX4Qk8g#T$A&uvbI)P-Z5N0!sOr?!(1DHq10*1X>~-;$>(&V8j>jp+hM zp3^F^eqQ+hNKo%LpxwH=@IDt4a-VAlp1Tm9G!uB*DL(_tM{DI7mrxuNvY*a8(UyQ* zau@HVQ-;0d8ji8A0A()5(n}xLRRhBYv@ZZ(_MY4k2BB5HMGCFlEC`vxckV0b&K=0& zZsf*WD7wP1aQm);d-qe4yh_lG_v5Lva6TO&^U3m&*F)u1f<;=rmCxTvQeJhpw(T-n zL+r&hf01J*GZvi5Gv?snU6av#CDv+~y+0I>NhgBRi>%m?<>^IYDiZ0yZtP1_CgfF} znLLxMYIrf9!0u?4QVmG3Qy2aS&-PToWf&yPk7|=Uk0*DUQ6h){$cbI`xRfvf%FcsU zi;+$T^IG)-42LR@(2!|9J%hxyqI;g;R}JdAD?>cjn2Pd^Av~T#uEBt=(gcR* zDGaaLdMDGBxxx?Ne)I$AR(K6^tbxbK&KfTN#c>vCFBIrnl?l4d}_?+vn;m$>fZsMGxEjwG<%JQsptvs&#TrReB^L#D)yV zZJxtFq{gw0Z=fSgP_~6Lq5E207XkpkM{4{MW?a=jkGayrmgemE81};0vtTOmbaDS`!m6Vz$2IR6QV)7^<9Ky zG=sTG#Q#qe?NB5u0duvd+=&yxF7}w%0S5)tIY}g4$GH5C0H-Oy;QY}H?sgM!f9cyk zxHqoVV@7Uluct$E4MhX0eBFVuE$?eVf zs(zV;)54 z$9PBAPi4A|_FkO57arzkd73&X-T=L`x#z%*DcQtwDx2hrYF3~2!xz2rSA)G&lhu7? zJ51Tv$do;-6=wcFj9<~9Xl=({N`C+LapU(1q5Mh@d7v&bJy4TKsp*#1+cCJlJ#vv#SxzQH{1xq4Fl-cdo)iQS#fM8EFVvLW7^v#kEO$$bns z1j#?#VFG349}vnaOeR`k#ZnoVpp>@WO8U*T+(f_Q3i{A*R@nvgJ9(XrezUPJm)$ee z>gwV=2JC=e<@v5k=j4Csgl)j$WmI{P@>6i~bo6ksY{5S3@6h7sM~bVt4a4_&D%l^< z0Y_g|5fh8(2r++u4A4*_Mc8F3c}c(KR+2oX(?u@xa$p_qYxW&;^(n6D1jW|i1@xI; z&!E{|I&GbeUtqu?moF%EObO*`PmCFiB3-~cUjlN1u!FZEJR5PoP(aj86!xfgbSYkl z(_4y?z%59`fUg)-e?Ho8RYp?xoJ>~(HXrCsM}#l?a=hZY_sfgwD*=5~60_l!yqs7& z6K+I31lxgJXjlpp^grZjlM0QPe-|fwNKYTO}r)4=3cOzJATW;_qqa6L@fJ+o*djb z4^ywS+FU(E3%0ERwqcHn<8-oJ#Ra0m0B`Z{;R3Ol;I+7}5L1qYFrv;D{3mSg(I|}G z2P1UBrMQoCY|EQXHr*}1r>wteAMTi@e)nw?K9_wD&$aw)X|9~6?&jyTHSoS%yw8K@ z_555=1kZ1Zx@A!Q1yTM>cwQ!+?eOdq`v z4WgY<@P3#mb0<7IMLRxt?jxR0?3|`vEb5*Ir%4y_{z`bZiuX6b^Ur_h_cP!*$j_Fs zP`8es(@sFYAB$&9(Y!-Ep9jwy#d9J&za{EE0M9Rr_aDRa3h_J}+VP9$W$^rnC_fRN z9}qBfhvz#*nI%y7HhwN!3$Tq5@7F<@>qOlecpePT6!vr5(xqYcBmNx|$NN9=?-gFM z=db3KPg|)A?k7#AAl&Nxmx@T=RYDI-Cpht5(M2Nrt$N@MIuI^^3sE=V{qvLhC1S4A zPP(%x(EL+NwfH;!z1V%F=V&5@T^5#sKfc6Z+-d-$W)gq_JqlN}$nzMp)v_M2H(HBt zMj!c1_(#d8VTod-!mP0ksL4R!D|)ogb0oc@#R_TTKU{betzLo2$16$E^V&^do5@rq zOybNL1s2`7mblL(hg$P83F)E=w_|(ayfL)nGPLvUL>TLVe?g;!+N1-X#tw7FC>y*4 zV(JLRdj@~UE8agxpo@w@ekS`=pVoQ8Jm`~QBOZkSbnnrcgJz~gV6*NL<9*EQK&SZB z+Z69^{F?55zDTD)uRX1E3b$QCIT;jRBVKtnQyHrfmR(P4{KgR++;bj(R9Bjhrq^r)Kt}zWth;5LMIf;^K1qdjN<~m0xPrN zN%Rcm>ar;!SG2M0FO{Ho|Hz|gd#$$s!Qo80Q7P|Xm@mbbYQ^MF`=J&_%M;0);xYTtkGpLaco+XA zzDcaLA2KPk8_K|CdpMTE3-@rD+$j}H)|SD)iHE+ft%eJC>cMPBGW-s&twu39MVQ)u z1Y=AYKaxnH9Fscj?6)(ef|5ENz@$zUoX^Q$S!+KGfN(~q+2dx9$J%hGkHp%*T}D%$ zZkT|+t5~7&`)=)v_}_jGPoW$`{9g(cQ)~Ygx;S(iCk;pW{VpCQjSvU+e$MH$ic6>~;L1CoDQ^V}Zc}P@XYK!I6K4mhs zZ;xp^wHVW*h!vcgZ*iKS>Z?~VRfkKU+UrH)TSueCX78dAHL2$)3(;CRa5H+kB;#Js zWM%8Dm*9NMbj$-}wz8coAYwkO-Glgx*K2_QwJ{5ytt`us8u zUzQO53I11(ZkJ&`Ycl2hziO19tdwi;l*t-ApDEXXB5{V5H12~3GbK$Q(aK)My^Td* z(~Huvk}iP>;+3?GeL)gQ%S@?BqS`4_P?KoIi$5G8-4&}WdBGxF_&>D>7yjqqq4=j& z)KExlfWS&&v}F@)i#qjrR#8w;osNac7zjb}9?(08QI`Boc2LY6xQ7?Fu4>=r^3s)3 zx~Ru9!0_(uPa5e;l=Nbe8UEiS=H8>rCyS3k0fYT;pku%?3;}fwzUm>a(f9QWxiTV8~(;xb!WBgnU0sXRtVjX31 zjz84%@dBZh31$2fq|JkX0I_f?MA|gN-|!rN4?N2$(^2w>4oH(1T{L59xc{NlzG}1Z zjJ`evH?+;)7hXQcP=4GEVd()yzCV%buRpE_29c_?B#MAW6yGMKy&i`4EH_B2{ZSe| z$ozlznzBtv>aNk|`TuPHV*bB-O~#iuy8Zlrz#kwZ5GbWh2WT;VHP-La1Htr+%EP@w%GPQG>0f2kxna*q?y9}&JeezL_cM}#cO*n=CfBk$w-Mgba05j zTNhDucMY8FJ?eYocJ{r7+xgKX*x1NGVx!J7XtoE@$YXSq6zs^~1bXd@GC4T~YW1b= z+-VH0D;d*A$oiYOJ`usiXKCY`Ww`Of^M6Qu`2U!D7r3aZ?Qwi&7<4rBOi4vaI@MTM zWMEjRSd$=9QCX64lg!Mxmfo_OF-ubL49aO5qtvo8%gVB=_hyevh^Zh7zACgAgqU^f zcE+(XE9Ifgf33CmKIhCZSl#>kem?&`pJdKC`?2=gYp=cb+Uqfi zLp)^|6OIEZ%zd*!mgvvS_c0vPMvCcy_i?9m57hNfv0#N4Bh_IrN!X`0QU7<}OAL*LOn?{j$mSFONHl;QUkSgAYtR z>47^QHMtVE8_VGL7jTHp$C&?=YQDhYIRN`GgNV`{@;TYcc~@ue?xmrd%V|zu>oS*V zY%aH)r0yBzjQpmCD8^&Ha%-9ZkpT3ZLI-meQI8T87-nBW`Pmv2z{FC}Qp&V$K(5q_|TuQau^K!*Ur@ z9+Bl74CBiIuu+fNTCM z-J0iIvamc2V@gd$D@!|KCx2p;^_?0;!m?*_2`jj>t3L{H{Xx7|=W|AZ$>GD@5p@$E zjV8efp(Fc_SuPPA4%d^k;3F=f*mz7^=Jv0&RUr*{hRIv)WMvfSaZv0x6hQzl+-G@M z1OfLb7P|^6B|N`lihGwBk$^4rd3{7zj>Z|*BNXHQYggK+ld6lLU|@NGqWz0^=i$4u zfbMT6cfhx*M0o9aMg#A!0nJ~X1uK9eL!gLMdVh#DN5x#>ZTG{rlf&N)#CHkC{`7Ab z;J4#yxc(x1K4O1oKCZl4pO2eyJ|+w752Ju6i%fdBg(D^r(FsO_u)6OOsEv(++JC#k zQLEw0!JH_i1#g=~v=#RwVRPnr!(d-2khNH4@otDB-1+PUOr>I+BTZ!;IrcV*j9B5J}=atapnSUexB3kTk=lEO{f)b^xD`&A(w>T zL?oHao(&#pp3-=I5&t?#*sKO#>M}(%HLqTEJe0aat}Rv$OG|6yt?^a2K|2#C1s?z2 zsBaYcc=NEWmac7~Bu(v&zY66UD~p~Fqj1kgw=GTn7ghgem_o-@Vd-)O|4%WVWVph_ zdgt@H5$LifS$+}}bkZ<7sC+PG`rZM`sXXm&t}~_Tb}WBb9mN9Ou7FZ0se4OzU}Tdm0a5Z+h@OdVrzPJ#U$PFRAef+qXe=Nq2si83cd!~OaaJq3cTce=Q?VPPH z%n;fjwuun|Cq)aXqNSWBFBc=BFu1MJwvNELLd?7mI z));BwItz_|rmvUpsaCO)lYJ$};Wrwb^5-mP5kBp2Yf1!Vl=efm5L{YKyd zcyB*0!293?;~V2-H3ijfvltXyl@@sML|8nzsEzNAXgp7A{0`ALGkTR4CLjd@b4t^P z#D~BcR6^il-7La@_m>QKU(#tc;yqkR!SUaq2pF1=>-b+41^-uea{P}n8;R2QI38<< z*GNy|dhtDtxpap&NKc*#PlLA)-f4s#;~HqwFkR1D+YP=NBJkzZV7-*b6x8sgnpirn zJtj^L-jW16TN$t}Ovfn}t%jt38jy7V32V2+Svy~JxT!-&&U;aibM6U3j>l<4%oBu| zd3N8^VXa`vwz5lV*gO0^+>j?!KXC-Lu~s(jbXcU zMP7?L%{o65Lou>4$K^srY|wWuBwqQoh~I|Su39{70r|NAd1IgBFBAOXp|SB=ZGd_P zjD&W+^04|MMud&(|N3%dTy0FPMV%mV?rn!Qe!#2hp1x(c&U|IKzPdDa0!Bpn-s53; z#q$OmbIEc#EaQ#25y>|AQq&=xO(3;~4T(5VWXNygNH#SMp}Ubo*GkYGj|Sb5KL=f) zGirWQZr!>ns=Sb{-kL^^yJci1Z7!{LyN4fk-=10>>|HLmUf`ZM{D}KHx!UZDFDc#Y z`JwcvCtt3%P@FH$6p~(G`k6^>)^2qy@5~j7au8@Yvm9?5%7=gMIi(U$Ai=jvkGccw z`lB%--WS~uaow10ao0hp&s+urxQx3Qx=ebQv=jhLO`ppzCQs86M;ZN_&>+rw*$YDJ zXH&~ttt96>gsLR}xRBg_!NXUe6~NHcy=dUFbc?*jJh;L44B`vt!xujv?|Bq^*Y<_} z1fkXfcV@hxFQVq5z^|ri>qp$rg_Sq*w>4NkO)DQZzw^79--n0(kMnycpWnI1x}V>@ zMgMQ+_kk$$Tant${N9W6n_u+%^Lw9Re%BrSe?Pwu80TxYVSYPOqR#IF-OcZ=l(6~L z;%%kl!3b+kiAMh^Xt3|=DS0U}Lb;nq+;X3v+C03@(=T|ju8*1KK6`kb`)m=2%kzWr z!~}&8M@}$ywt}Hg{ozqMkM8kjy%0-kIlMW9Z{}*Dft>hT_nXjLk7^xh_t9O8VVlcv zUW@hOUHs3O{W!n(wT+L0lldU%_(p03!|j0o$u>>ZNdr-~VSW!`9L~@0L@)2WpdWvW zf3-5hwwIVdkq8(#Q<&kBY@xRi*?xa=xh2Apf6iU_gf4rx!FLu zS7XWj5&MaJ2*Y36#zsN-sY6ILi$p5IBiJVM_zW#CF!k&|W;69{6@K^=8rsS!7{lSq zn3987QEs=)Iz!%?Tw7R<3fg3&em0MJh4PLyKo1xOHtiC$01Ivs`X)_3lo6GGj#IC= z#3=gVeI|*1n9rxX^K?cO(eH4wCi-dmB05hCw<*-Y*pbh^?!lV_&ljje;j!=#?bev( znw6S**cz|YgkSgqN^c~>7DU>2qgS1*6kBm_Qm8-g#WIH_ZSr;dFmh-itjC~ zT7o91cFFs1;}C#T{M+5ZyiKp=xm8uSMLA4(!w8~tvl-s97~Vz+x=rm)5Ap8B%!{@$ z!v7ucS6kT^@Z!(wniz-M+K~0Yd3=}ftQR?N?1!!79n6NHSlllOAF>Mocm$hw&lbS$SMAhzc6GljPn)14c4(@Cw@99on4c+Y-GaeE50 zoj{Y8DR2hNVYfl#)dOfC2Wj_kHhDt@59uF;+ASAp)DBg(cwPMgDspSq^3Q~|U|grw zgK^5!=}JZ1S5rJTJ}3l!?EwP*1;k0s5q zz0YimR?v>=aNi?$xZG(Nq7C;-k0Wy4u+58?vn_JxL&p5a-Ry5kP*{CgFR9BD(aR6Q z@-w5A=j-OwC^Jx;WV8*^@B2#*p-RrT)`4CP43m}FGbY!gDJ{YGHuY4&qTH` zXa3f?vM7`#QEYwHQCb)2+t7?7%Of-U4+>Ua@q>+#OeUS{iVVFErf+bVf) z?M3@CaxCjyWCgR$c;AY$7WpK4oye+zTo6cg{UKnSGHN}96#2w*wmZFai1Zn`{tsBR zBOXU}8dmT+O=jJ=jPBccy7s0An0CC7UGwJFd!5VJ=uPl*iT<-(|G8ZJ%yJf)IHQ6t zTxNFJel%z`9nDU#@mG>}80K=Z$<Q+&JJS@I3-mjPuD?3c&3unlvMKL<9<8q?nO zQxU<9F@;J_QoSj8(2T-*mo<6N?BsfvZP3)@LG`XU_;+f(%MSm-%Xs!OfxS#*FC9<~ z{y6DdR=6SOoS?OfA!n9zntE4|khPpWr~4T);Aa~AT+M!>as3h#H?H?mmL0OM*G%r6 zeugcw7h#@SWD=lRW+!l){CIAYZ|64o1>Au9Wmar5pMJtCL$QgYc+Ej#{?l~Wr=rQa z`YOB!EwKjW-J-WxNUKq8=u?&U+b+JheIy+tJ<7KgT>ojLVU{&-fW}yIs&m;6hCw z3Uw_g+!^_!Au2ypsJ%V1E*!yeX19-u|EH+;Pl*h$dI-9PbI8+j%3I5I3+`kG916d0*YxN0w2s-Yef(G8;^T(zpNhBNL(}DY zD31Uxyz-`4)5;xFsvPiwR7P}5n!N>hVc<9DrCeuW__gUk%MyAHT-w3o%Vnlp7;C22 z3AjXh;IiJq7E2zE{Mm1D9a%AjVk$`?d}Dv|+mmt#)4hyC%wmHk;b}E&iUU)qnupzly6BkDc}qL zB=fxI-!z}OqBiboAHq9r`=ZDz7$s#@J3D8^a*p{DlnU%NLeQo~@YE+JU z5ZCZQEMBP4;tW(A74~rYTE4-+RfhdLave|P>$pF{@bFPh>!8<9Gt~d>8z^-Xl-lgL z1v~$db-n=^NnrRR#B1G9;LYF2nSB}SOC$a5`i@G6?n}-Q zCcU$NV?n~ZStwLGlqgDH`U2-Uy`I{2y^!1f+fqNPNfO*G!CK87ip!k4W?TVfx zrqieKuGHq?4MlOm1csmC4UhFjRi1Z0EA9DFG~!C9eRK}qhR(m+!bAs3kqV&BFtgp9 zO0K4eE+l;nFtr;|x1e5a6Fep%5~YWc7~zfvmMnk+>8hz8vS3`D4!&(HdkiBbvV z<*^LpjXe3?2{0#*R~gnS{GG|4rD5wnI&dPAP~VO!1PM%U^!hv^sxNO}cN6=wjswfRmPTmzdy z9v#(64$|qY-BQI)XM5zw=v3x@_*CC5cp{qyGbil#7=$4KA<`Cc_m@tHe55mQW&=;2 zVEmZQTQ6$N?=n(TdEk7u-YM&&I07u z@ne^KASokBDt(pN7);}W_it9lCwU_Z=KXe2sHUpvcpqMkJEPnhlDyBdk}h5nL_=)W z_W`Sy=gjiCGJLmY@SsH)sAyVE>p=7?6u~g^oar^~1L02w9(#PuOE`sed3d3(?e0lF z<|yps{M_N=j>Iiv?M)vz@$fCZ@1?(RB1PVfk~ydhMta(THI&(#xPNQp@oa$iUm(E!BgP>o-K_m zU&9ibFFO5r$FipIh5Q)FsCF)+;+ExRvL+_tLm2Z{Fc>ca7&%N`E)3>Q3FidR7;o6n z-~!&@4KU~kiu!1uRgh6EZ8i+Jz)DVx(3mB>v5CB~zjke`WM3G01`42&kz=fq_cV*X zPtJvUjIn5q2HzJSpW$>Lh&f@{-;Cr1CuTwRw`KsLMWZsLr#xp0Be67vo7(+X^n^g! z*gX6Z(o*L(!?wG|7;l)vFMngEYa$$Ap3|nF?Fg)`8=yR{QM4rq+=V$Fk)IOwO1bQj z!^z-$Z2DIgb!D0VgE15(WgeS9cS`{b9QvvFk_0@|L8nHHw1uhAFHBRZJZ@lXc)L7RZne2D71GbAyv3>& zy7cq$X`20NVy$Ms6jj^&uN6#OF1VeQ*6dTeDZh@FPZs6*f7<js-e<~Qz_#TzmxwZxT~DdvPUoYQy_X;ns6aO9y5OP`0?wE8ROA+jKEU5%j-< ze^aZC@z3@K_lL(nQ@)rmKD8MG;^g}5{u$1U;kV^#!BCTF+0T7c*YD2&3~-wP5sT`j zmBOJlV-R8iZ*yTVBY|X-aX`awvd)VwzUmtHXuJ&-wNK;tdu^qDnxACn9xJ{x;1B_T z%zILEX=C(MJkOl%sT3~@5x+UmM_x(0i9+b2y}{gj>B;UsEw!3{IXr)rx8~4&5e4`5 z7dS5xqRIZ1>_Ysq&#ahK!KtlEyv77@;T<|WQqb2+(ZrTFB-T^A**y|OQ?k=_zb@A2 z#e8seEA`b>A|Y|)Fxga$hfJ3P)5Gj%@^HWO*?sTeBtZWI)Cry3qQow5%_GxiZGB~1 z>9~z1TCkip9w*~dYyXT?cUHzwcS=TzJ6A060dE*=JiawR_I=;uq2MYl-xb*q*n>;- zXDk);>d&+nJV5@yhjOdTuV6-&mE>QQPf<|toG*>p0mmezAno}ETMQaXzGeR>{dE5mktF}`&~*o~@{S|ogi#p8}>|8E_L z&phkd=%C+2TKEqfSVeWnS?YvALpAJ`;e%F6xmc8Ww{)PV!wih{oJSth8vlgy=+uBY zu1&#@*$Y~l)xnx__K0k<68{Ol#acfT2!?I-36CvWWHbmsi;O`DM@Vub-dVyR07; zZ2zD7ens{GEA;2f@p+N{j5dscIof(5mk-1G5ww2vb$+vI7_TWVYypb#=KFY#H;4ON zJauu3oeV-F-AChXrBW+z%?GMNk)KFOt!?Kd`5(eRt|;iLF3Wi_$!mUoW&UY{)x@ic z{14MeQUpnl`c$?^-uD?Jk-T)j+ivmP^Ui23%Qqm~C9E%luNdq(De*Uni8Gu-)Q1`f z{~3xfvexlGPT>FkHpKrlBmU{~hcKqT-j!v2)EhB2O<)Z3m0gYazC*XKMFZ`p$Yul6 z29}S9jptAfF#@C#Y_OF9EiKgygX=&3eOjq)6|@qT&q6*lg9m2Owx7;d2=FAXnnXqP z5PsevQ}ah!X*;?ImSd9K9y2$&7*Kn)XAu0k^ajrWmJv4<18gu$JM=`FA-WaorTej+KAUlk6qZ-sjO*`-uy`9?$5(NTkMEL*@m+E>6spUzo`rnX zpJhE0-wpnd-E>| zTv%S8nWSwF+<)0BR1&qsAuhTRZ&lI#AX_*Ob53#-b@%jcD@bi<(bvED%c>TpMjj_~q1{7Sf`wyYug5QvAg@-yvgtQ0~G3dy6 z_+f?!_p1hb34mVP`~p{@ERvbPHa})x50BdB7Z}LCYnxx7FMFYFet{F6^g`eKFtW5* zvm0OUy5}8_Mf#pmMf9ySFoY)Q^$V!MB)y00*b5zo5n=J;;FAGfR+f+F)J_^tl0M$h ziKzKhOAgW5f2|X}0$Rq{HP#=_=N-uBeb*=8kqXw2Q*MJTdaW6^X#dt%af=4}T95lD zn&;EPz^wy0;TX#6gt#bY>j@SD-PouZJGBXa*+d!zJ3kvy=%G=+Fs0mng3NJp$dbY! zJB>k>^V*In>v0ngpgl_YdfLAyYWv4}l7Fw$pJ_kW<6W(%d^#8F&y*jtzy53-FCQz8 z^GyTa$lr0&G5+NU#!x8PijzPqjQR-vo#8VrTpn2;A&)Tl=0uEVdc=72@dBtsn`@)U zCzE3^9wvgJ>#u=#l@vK=qaGfL(*>GmBJP052o1YnQtovlOIbr4WT(xQzsjAMo{qRiqY~XLG4_OMYD$C&?V08J#3@d*`CDIUN4Tt+T zbiwaNj^7^L;8zI}euu$xlHA(ElYxfRLo1(Og{czKFhRnw%Gcqc>g`oLLBb4UegxVJ zbpHj8jSS2+CmLJnMYvm?^{d}n6Uv?K!jk%LM-&M zd!TP|SlDGZkCsQRQNd~OIrS)BPF;`2@QY`})2YHxEH2a#Hr&*shd{{w~E!id6SV=@f(^o zly8PJOI-!EFc%Bz2hqj^GZXP76zZGT(|WucO=w@-gpO5KX~BCqZI4+T{xLEB$1Iz+ zy}?swNLj7Fye?wMVsFy3wbIkogKMQt&85vAj5B3Dq<5|+x1nc9GWQE9EH?uAgkBD4 zAW=27(d9!TmKUBRET7s&W4>1FZoM9j=VP)D4&`koN>o=B9)$h@R{b> zTC7#83E(ToTt6-k<_(WQqt){_GUpc0oiMeN>J4{*->){@0n#*E)iE^`+OO;Q4OH5z@z4nuwE;Y%E-@BTa4i6?dWt_{ZXXw)N~c_2czf$3>b*32*MGfY#nQ zdgs3QZG4?#h5)Jtm6#L zF6L0W3j)(R4e?#Nj^`Q;fU7$H%y?G*g1AjR$|y|ono%1xHiyK;`W%)L)T;I`p~OBy ztWoZ+@#A3GhrlkzAA>k>M8XViAlPaEXli*~VoO*27c~cE(5=67BaBKe@o1!F*}6}Jf=bU;+NOMBwrTKa?@W$nJxv~o=r-(A6dN8 zO>Y?s2uT))6kfRW5XaiP`Y6@fAB=*w(HED%H)JG37QkiceedGWZXjq71PcTc5dQU2eDL50JOY5`QE?SqvmY7xj z>=8Yk64KabvvH-4qxguL1_yiJEabD}J9YW&Sg-?iy||v}dvL2p@7z8P7KB4?HT#~X zT$&@$fqhWRXk0!?EqpU@?P3;e?dz;!qZIPJA%1X+CAc$OpA)5h8?`TQq4vdHe65n4?I9ho0M7TxPIfFOvxOs2ub$qR_*RbAk2Kt04fad0pIb@mtUk344@mBFn_{OO z+%W|qY)Me&V*^dGGvG~2zKy|Ac>){xjq8^&5*%r%Oa4lEBI#CQ8K3yEyNv4FMD?+Q z8j06N*1xk*um5B>^+%ng{?~^77j{$sL?EL6Ew?J4O&FiLSE=2MNZ5q2b>%~G>T57W zvbv|?sFsiKw0 z@$;G=6F_oJ05%Yhu}0xrddbJ8q3j$~@{#F$pq*7}2MBbngo-y=)Pr=TvG~IjWvBWa zUdbMWr;pB6{rI~b3VHFz5%@8u6Gg#ds(C-YY^*X>LyLD2=5jgaqOVU2UqAQGO_y6^ z+!w&E;u-H79nW_>A7UB#M%#leTKu6_v&Ye5F)r+4UgKP?hPLPm%Yg~7 zK;+@}wB5k7B_2V#!MLmiJR8=E*5xe`@C-1PU%<=z)^>r0=zohX*wEEJItoAdX6+y6 z2Y4l~maHXyaA{L)e(#;c59(bknu#m^8Dwo5cPN1Gk=#Ly$FRQd(%0wKgZyxRFnoR9 z{-5sG_tjJM`X6*t|D2Q5uQBxhUN`kyzU#^#zF_=8{(j)bo(w~%M5M$rD-0aqv=GIE z3?O-ba!~%kEPrE`kC@dFhBEgFE`b3@uGq&M0l!j)fmMd+zDxm&PqCQI3 zqW%z3e-PFWL4D#f&(c~+6kNu5UgPpOh<(61axi6I7`u6FGG{k=g3I{Ck1dp=+rEBa zY49e0{5EXNmmM!v>{Y(-kNcPWu~lg}_Vs$YNolM(7$biZ)2m&HcM_=Twoc+zc4z<^ z%X7xJWMdL>`~I4*W;pHp`U3m90NEEt$gzFMCu8-&2=?XN-`3b?G7uNAEGMuo3@&(q z53^FC0XXJYMZ1+o66vZ)xVWA$kwTatra|ig%@UU3kVE6Gg{9TA&xT$Q%+Pqde2CuI z_Y)9(-#c-d4_bPT@F;yRDTL#>`rgflvpk2!^fXyRcW@TCuouP3F%j82gEVeZf zONQ}_u=cQWLQ4Yn9#^Zkm&EvqmGhHpUsDDKLo!k#@i>5qa%&Iw7{WhL3Ck~`+e;)F%yWepd&^)l|4l|4w*)l6H~2$9 zc^8()e}W&e7n(&^aAU-Mbr?K8)SiS+Z@lcYDeMJ|OYnEg8%F*vx~2H_fQMXM9dEsk z99^lEyni}Y>~)IvGEsXuK!54bUZ(0Vo!U#6{xV5>d9(g9 zS$lbx{xU^-`H229O?&y2{xV&A`KJCdLwi}RzjSFYztCT1X)gofB|IycX#VI>h+QGA z$4{KZx71(oK#wzqJhS5z`fK&$v$+5Ns)N!dx4vdIF+Nre>mfdM2QE+yt-w}=Z=3^` z^;gNx#y+dB**T@zmAt>L*_E_^N3#nz3I{UXweW$lrT7T_Uy(BonFVjlbE8z@N~>05 zEc(LW>9<+}zp`Vq#VYm4Fg zEw{psG-3RDwliB9n}^}~9!d|+!uastcPi~=?rgcmijo)oCFGCIRFOr% z0)Ed6Pm(GC#v9Dab?Nd>vuL@TTD~p4q=O0#mnyDJ^FL%(9!!^aSjw(VE6Y7wbU!}5 zq@4=E4xO3izm{4$aH1?Ttt_iwhP>4(?gwLC!1~6_xO;kiY!>`--~XVa5?|HF=D@$> zvu<|O$L7MXTgH!uU*q7{!tplaS6Q;9;HChR^5C692bE6p*h(hRVgX0$UJ|{rNFKSDqNi>;3JZ)%p#sY1>JwTeZU3S8 za{zz~0eGGO7>NMHW2`o|?S#=&j$Et5!(+}}vJ%bo(~)J0yq^nnaC5Lo@0FAUbwE=r z!b3rk_rcC-i1-W=ik*i)wgYn#?fsYheCW#V`8j|`w?S4X#;Z}USSk4Wha{dS7SkVx z{X+ahqE5Xlg^BJ->`$_V)qi|&mmL5vYV{r9-N8|IfDMDA>;PK_N7(`P4vw+|d_CC6 z@Z!5NJcIl~tS^A94?#uNx9TFs`j!sXS>K>98S6Xol3;xm#(2b8EQbf@4*Y)X5O3!o zYln2GElnLEe`W#-4(v!^1(6Y;B*%0UQ{VA>IBN*;l!-q3q46MK#FbWi9weRAGx~cw z)%DzlK~~8+g4yYi)1N34FCVf)nKQ(*jb_4gflR@Rfv^*WwZG{iZN$tUtqB!?P9`WZ zGkT;iCeY=QEpD=}g!pt{xxKghX1P7y-M4hF`!6WQu%)p9#Sp1tT$)^+CVw-q*Oz5> zF-W==j&rK$@C$3}EEJKCHGmXo@F(2hK%qtVhfQq`z7yeJ`0<4CaC$nF!4!Sm@CnC+ z{^010kMkq^#S7}Q(|O;?Qbl%}yxmfkomQ5e!57Rp!RLTu=A`-WH7nDA8Jf#-fEn6F zp`7%RHo-B+rTOonLf>?jjRUr7>ryD*Sm*>Vgf>%&a0*)9Mh;*=pp9yI8y?c;4#8(Q zcBsW|l*`C{4!%f2{RO?Sxa06eGQ5}sFCqY!o|FmU0Q{q7Wp=v!^@(nPpG0syLWQ~o zez>8~PRmJ0$P1Z8q3m?IE`uvn>Eg5DxHiuj#~LQWL>nA0!}EvnAeFxNMUuECzL?Iv zNMB6lpLej7j0=&0by(eZYrfbverr~qx)*0zndFoY+|_Ff+2EH=pyeTMo|IPY?#b%x z1%K8feN4Pv{1xE33%&!%G}G%9aT1OlqW^&DJXSYCx~27O`nz4645wS0H~ ziZYaKpLK-lveRPLi%WQuDf~{%Azrsu&o>Fr8oBZ07cEQNzG%E8#_SM z9Ge1rX}0u!o-=!YTLtW)dCsiHubaNc`pxivV@FGD15|1J8FtjH<^rb+{$>MHb2U{r zj;g+fbOQQ&_&dBwdJ+wLnzqQb=Ego-u}JJX_&1m(x6hk9t10$9c&NgFLm=UP*YtJM z?&d?Y`n5DR?P%KBv`e`$Ng120+?o=!wd`ZBwCBVMFw4Y<&n=BGCv-RA8=I^l z(%~D6#(Rmrv1q27;2VPh7E=(hOa|Gvqj^m7{`TfEN&9y;k0EFIZJc(K8SUa4*x%l? zgA4R95&Hs^j2=OcN6`2G+=4#w-|dC-s&Njn7nrO4ZB4P;q3TxwX<@3FW_kr})O&rI zNpfrQ+&-heg4gd@r6&&{^mCGx8u@^^=0MLqZO}jNEposr|77XaiuQ;=jZ#I8RPkXi z%q3$Z3NGGRtsF)j9b3}7+SqL&89ZgCP<%-=aKeBurI?apU5^dbAqp3+u?Rucf=k3{ zRDD>TL+yFemBz@mAaCypWwS+nfREL|UGK1(N%h>Zw7JS#3rKz*H4mou9hP>i>5f5F-1c2r_wX0wT*Yp9ufIzoZ9n2jv95=F|2v1u4? z?ySAYw!X2-Tdchr%EqSo{)re5JV&nG)wEwzS`DrbH^|>y|IBhR&b=FT&{v@X`d;7Y zc&3I!!I}xxjrZ)Ff+DuidYi5#nM}R-86jXZfAG=dBNlUQxa=OQl|qGe?-on&UG9%7 zgnn`VHQE+j7A0OZlh-XwUYER|;RGytip{h8Uc4SI#e9Q)?h#_THe48gY^e~&_ua#V z@kS^r@{tU~(M5{n@_~UMY;vjGppSv`fIdck9yn*Ib{@b14yJxNrh0HpwJp)l42JxN z+L?pJx2&}Vw;0BM>jb54yz+_sZ!>J8QbmWn%R=UQRyZU!tBbaR7|Y_PtMl{xd&oFDv~&&7R2xvy$VR ztA&5D_}H+j7wW@$X%`GD8)rL#%Vxrz%QlY7UDb#s3ip`^yzP=Y_}@f+Zt%~gxc9`v zOmtudYO-04y##p7AxCNT>|QuS%v=eO{9Q7>w+b8!U>X+cN8-}}7+-ib?>hGYpJQkfpFWFn{8BbqvAjpiqwwpdSQG z?Fe-IL4VXj#loAW6JHSp#nPJRr$90{Jk{6*+Pz)On>9f>`%qwW^=cD;p9JRlk{mRvh>g1g8e6Vk-%kNM76%*rrbQ z;|85miDkrojQChRI1C?WL|Hta)gyn->B^tO?)zheyoJ}{b8i8u1y!H1o=3UH(^IBN zElJq%$4`hmeBD1`G{!-*J{VDQl~xkPkBgdOUjusBcWsyf(*0#j4tYc?EA;0^`=inJ z;LdRQD@hj^V}$&*jpVO+B!5}a-YHfpUCG3wbgnL?!Eo`Y)5kIpEro8AKqx)dXvl{V zIUo`kce5Iv8}Tk;R0tN`!&ypZ0uN7R*uS96#iEhf5sfTljks@vGg>2;ueK(I$y?o3 z&E@@n3>!>>A*kg0Efeh=2$mm^Fr8YxugICuGSNmsw4&V)cHN)n`~JxOjP(ubTNHz^ zIo0i>&HAC1*wxT~y({4s+NcwWW~o)!r0ZqeF{{sjFEVbo`!K@1jJD%s*pY5(`|75y*p zEm5MwXa4Wtd++z)d*e^S_iNezKj<&qUyQ4a$J+}_t_<~+7XH)B+k%xXH(qCt4xLsKAt78dhUEKYe|b*Nv6nk-h+zV zd!>pZ=XBo-ba${FU(YB5!BakP6^JZZH3zK9hxqbuAUx#28Of#WsSa4BiXCPuivnu8 z(jXs@n&C&y0h_tCI?x0DVhI)g#$-{Dj&zg^rZqEN8DLMTm%ktAPhPLoR0m?EiZ)-| zMi*>U`!Q-jZc{aE0^{~wXY=1~#$!E#nIgT_g!(by(dj6wVpCAovA+%8Bw|Kc_?rOr z(nY8YM8pStr+?3|(>GRkpz%&R+Mf%{Kd9$0mj4#{YpydN5I9-Hu(;!-BHHr6zb z`V?9Rs&nmYYl>}z-(MY+7T`U1OH*oflNwxu^ML~Zpt(TPM&MR6a2q(dkBlJQ&Ri7c z<|6tPj((@2olV$bum}!;MQ|9L34iBu6^KjOqSTgr11t$v@a{4e#|X6$H3#iA!2}Ri z%ARnRz`L>~&iN)Dj~6JfY`GIJW?45Zgf|zbUcIq{;?(4d@Y5vk2hH_8OvMMT zsL!@OQhRkKOc>5pDcbY3#BK+a`dQ{2a#VzQh&_Ps07XE$zx4QTmgYcH?6>evT3q{8 zKw4bm-Q_+TDMWgwd6Y_ zv>Me`^Mf4-FNjP$AK?e;LS+J{Dj+$eHK4{)oXx{!Z051_WKN=-zKk0eB1vRo{3G<$ zm`L=c)FRoGGTJ7uoi{jjZ3R3dVs#2j!J=NySQsZ^H?LlT8&v@Kdp`T^6eNqQ0xu{G z^qHuxtYVHGTTJ1!{l*`l?YpZ`{gO*Qdtvb$TDap;5pU#ey^+-B)T3&06&kSCVRnSn z9q=cg1|4vVeBb;gUwyBC7)Mv4aP+U&bB-QZb{wP`UU5!%#W$iI!Ryfc49>gt&lLt}}Ek2w*jXWCthRsbwdE_~2j~meT5$ z2{y^=qH8$cbUSp9p#c#Dhe=mSg-n_%N(1FgBPhvEb>dk*x=S<6EW(b>#fj!%HJ4oi@a^fqVi!KH%`I^L)F0I3_i@q99VOO_^uG0e zjISYYLtjJdwT~OuoCBC7jQkL?NZi+cs^|y}Z}IGcX)VA(TdxQ!Zc{&k0u9!g2DBrv6d?>$PAAa|I3bM4anyUpYrEG<|JKPYFeODY`) zzkye{rd3WOUX|y}#KBJKx1$`@wbpz?EsZtW)GAR?shizXE^=nL+?S#b^qVupEZBub zlK?!I0Zub<3V3*KDdYVMPQx>ms6S&oTY&1VcBf@v0&1_5yfG=@acXsNqbMM&Ju++$ zpUXl_Rzqj}ydlcRvhsfIg^6BJbY#&6hBGWw_>IGmuh6%uPx>9Z_*FwPui7}s1@AD_ zVKX`)3}J)d`;iawW70IVX?=f>T~>GSg_ zi!TcoA4V`jK0o3e+9oiHW0y6TCe|Fg7Mj;jES+sq*-)k(h^#k1tlmtjH&&}xOG_>p zmmJ8H_xID694GhBqb#{)Z{w27az0=z@NL+5?D%~qEwFpv#?7&~$oYWTonx$FoSHFj zi__*H!FE57vd{*+tu3?rLR@OFY)t3v!f;WkrqsQG>CAr@ zAI;>$6Zi{~5pwC-r|H9<(fzPjt^>M$z7qrfI#c^r^~E+$=Z`(AP_U)V03U5t6fgDI z3HI2#3aK-o^2azb(h4+T#0q@wQ`HBbcbpLSvr+Z0mRbLW{uRMs`Y#XZziw^%k!ib_ zs;ki|R9zD~@E0l?u*H@HruHJ4DniXQ?L1U{p^j_*dAlNXT$HaMYX9!v=|AMrG z{oitH)hE|au}>JUG_YlT>^0}7`m%=I6BoHylvDYl+}U+eB0Wu28k9XX2hXTcd(;H_ z;vNa7qSUfn=TKnFQpFCWn6f-r=ee+M=l_$!6Qsaq6(4o+qF4@#Y^P*cv zqtw?N#Qd%`KjE}o4HGdMwI8|8OsQfo&Q1{*H#=Z{5>T+gOIh5I?=CBFW~qDD(uBEA zHeo(3C6#(wU&Fj%&}$*YM5#W%YxPh1Xfr64q5TqxI-YsrENdKZ>v_hBbci!7is*)u zYl7kA+P!=eTtjouB^=L2J-wlZtBG0rqVBz9>ppGuX!q^uy}QT{(MEqKKo%(H^6BeQgdo>yv1XP<*l)YJ zIeHeH@$rf}jd@|d#VoKd@Kv0Q7z1x~gj#yE^q05BQ=*nI`?~Jsji>+izsMWjztMg_ zu_<=u++9XFW4gY{Ng)sr)RtVQurNquNG;)zzr~LEAC*pa52zK2kC?j z=MyxKpcGz|KS%ipJ!sgqkx>J}RFYPw^!_Kf^HVelJRHA|5pDC3>h_Rj)o2@OGKSZB z$jA(RS`dBb+XPW)RzKnxn>d*P_TC-(+-JQm=Kg~)e?+n;Enwd5Y<~9H8i%<7r;UAP z&*k?Y=P_eZG86UZYG$I52BN<4PCE8w+R<4OA;FUhMS~aGz#nv1m~`$66OLcuZ-hXh z*%e(|R{@Tg|>55;)!c^==GaK6Rh zFOK?~9K2|Rkw{+R)C(TRFRc#uxuZ}fl}anv{+-)HTDZYXRwTJ_-1ruc(eP87iz<{a z8~YT^6-RD1B?Zp2aZ0er*%?!%v0HpMIm^&W>S`SH5Cf9p!;mx%y+O8Skjcyy)IC(} zTB)D0lC%UGR?pxy3(G0#ApR8gp+0xc;@iwr$HTaP>U-%po+!Xd~G2~mqXS2ay0iSyq@*9wC zq9MP*N%%qaAL9o@tx@?wKWn%AU`P~xkoHP+e!%SEQ*d#h!>}uSDX%ds<)I;#!-R~x z6Hmqvx3^=68hmQd9Z$pU*_&Q`eqg?jBoBOycWbkBS0QhFS8W{h2i1hffyw!x=H|yH3vduvxW$+VjlDIsJXK zl9jtfkRja{^>9El!KGR}@g5YFp;Uh+&BcQualh1q0!&X4&x|JDGQ{8C%P53cW<8J5 z2&?Ks6W&H%REN^;y=eNxTE?}#XdF&qJ3Iwif5`?+pBmQR z5jqHXHc^-hMn6p&{WM7x`#JqIAuNoB`cZG_B5_=}WosQJMPuvKk-6YwyBn9G}`7&f7CXJvj4UXwutrzt4V?vg&Kpe`)Ovj>dYay+Au_ z@9j=%Z*UL2J!#?cP6qVg5XjBI$JjTNI|C)uK0Ol+J)l2h<-nc#GX*ujNq;8&+|}G) zAsx2595eC&&s13Z#0Xq=!@Qjq2JQ#~*OT_U^Cs3kvhv(!G@Cq|=8q;X_$!l-DLzA< zGmgb*V8I!T{E-S9{kbEaqsGGviywdiyO4KSYv=9?vym;iQ`o)o$b7U3&8537lF%pL zX)uh9YX2(Y1>A#{$N9omv}`h^WJypmtvKw)K1nNp-OaISazHooV-@xwt7f_NLJ(TY zG84IBscxfMST6cVhCW)x+nO`22I&I(;cf44GqxUl*~stX@!aiWxt5aUHVX^q55tvCZ?yC$Z z{ORk9bC%t3HlQ>KgO{?MMXp8z4u^j{`T;q~uQf1dN=HckW?e#*&1 z+8)0XjI*vRF&lH_H~8-m0-r3gD(O zHf;sF|It({7_eYVS@sz<2W@2&&V>C%O@OVYEc>jo33%GeVL&J1SOF9UaTaZpf$IR^ zFn=%}@7O^&3d7H>QSg)T9I6P$_FrxGWXYXoSSkmOm5uHH2QamFa!07JT;6Vj;=zx# zcyn9rltM+sm(~4UGz6{?2)u&BW5nLtWgL4C{WY@Ar`7y~3QDED?7H}}@%?C@ zmPeY(#-Hx#Tb6l-(pq+1LRsdSW#iA%kh*}zSBJVR9k1vX6F71QjgQ5rz9<}2LY;XT zvqDI${XP7rIn}I0iY9IwJ8#z%e&b?2U})^UXNgYH0>0KJSDVA;fKPnH1l$AwYWbjb z{n&sgSe*c^18bYBF1=HIz5=_aG&xzYS!+eNZOAe!HCT zzJ>pegZF#*?~CF0wt<4SBm6_7jIV78>l0q78*@cHL;huy-|rs4URhc!k=Cr#8a$cgFndekpqX^?yzLWBJ!j8yWGr zOeQVX+m1W_hy3f94;USH{mjnIYJm=#Fu`l0vk7_Vu=q_(pi!UB|NR8NeM3CKuW|k6 zhy+rxe8u$INIcEX@5wd$!3LgX+~dLsGEyZT(4-rna$S}+MRUcLSZz!xl!~>E+-fy7 z#Uhx{PJSaupQzK%!HmbS?0A0VX{0Rr2^ySr^(efyl)Uel@U&5kKhZuFRbt+Mn)G|U zA*3+r`M3Uldb3YY@bqSt z=R>VvrIzpdbbNeMkDquUK0l{FpM%ee{(Krd2WDydlFGC2xlnti{lGm#2@0fPYM222- zO{_sNrj&2V9riujCZPc_9C8JZN!0qYS07{zqC9C$aj@`!Fg#% zLwy{SyzVyG0P1|16ykU8&9KrZgyi-srG-d-r6H;GcKBPj0E?S8FM?(^;ZKSe2n2@# z4AM3oiedSt(x52c_pJDi?-HRrXIcP*fCE1x@q~l0lu;wLr)G_}QWHP%`zseiw{`hO zed8_mcZ32Tb%u=cKi{7Z8;bqK&-Q0Pr24~|5&JWXN37JL9)2~Cb*PSoVN;rB+?Z<# z#4C3*Rp#ZpHKEcB?fRFZCW!9HFtkKGGQVVX-p!PeJK3LYtMi_NC3?%X=K2Nk@$9;Z zyM2;|2m@W}lC||17Cuj47kHdyqe8eQ}#*);SqBxX+S* zG<$XucaXOx8|@8IFX+F;%u>%;{WC+9vEyhSwKrw>VZ5#|xvvq7M?m|a0owIGW7-95 z5YJl-GP(s`o!6mt3o9kDejyHx^oVbud>%UeiL}qAQ0zZ-$vCTq7IDrfV4cy2gDZw%k>WZ&Q8-!b*Ewb}6fYW95zeUF6qqsznL-CaiT{#E!>bcdUFBXF~X z)w>kxmDDD2d|zb1_lD~UioO^!2^A0lE5Q@aKbZSxCGrlDf%6yMVcr!wonHu@`EGER z?r`6Pi3Zd!U{CW+aHm!SJLwxvPd>^23`UW{cxPVutH@*}|wMJH|VcLDw#7A(IAy#iqk*PS#o4&e_*gBv#AdPs}d0;jcEv&LOg%Z zpPP?Yx|xq9-sto3*`J(`xD&?taCSQ%uXK;1UXh?wHT{qCagxrK%m4j+AXt^3b(xQk z$19)UjM&9i|BnoY^A^KecS679lVM?fxG$$ChkJm$)vmOWcwY4*R0vdc82!n3-<~Fe zKKQpVeQ?+QpNZ1{YxBG7KXpfGNI5Jmt%0VijzAUEg%0cB`^g{Z|D*BB7q}s4{rh&aVZG6mX|v^QpQV1Z(_|{X zvVOFSeaNEY-e^oYU{Xe>)ok%2)5Mh41`TDE9^)Jc9Cyh#%{u`#3GH$|@_nKA2^Y0{W-xrO_FdSxra0F z!2lVih7r(xF_*%#6`KUXvmTj#j*+3{{RW|#ZS&>Cv0PMc7QBspR<^^s?iIs> zwz-`tz9MHDYoQVyoYDRqGe&`Ml8eF#TH6XGUKYTH{sRdAlbKdiU6wW1#DP=3RCoWz z_6O{`<#vo9#5_^)kGY*3w)%sE9dJ;D#h$uzS%Bl zj}5ngH3yC3NZ*IX3Zjoww6Fv-vdh&efxgD`0-WtoCu!xoE#cXH5!-3qr?udG$Dv_u zZN&QiPOR_hbVH#+5f8GY$mymAvz#;0Lmnu!$XCfGu?;;T*>{-6W;46+8gHhseep(r z!UAztH&E_|A`mK%x-XPFt&+DdhA~)}Z^0y$9 zn_0?gkHw^=m=?V}W$5LWB3vKKMj*T&;<56{e-r5)?u~D5wcziWXF~Hhdr~QWB%LW! zc4NyoTa9HN)pRcFqRF>OMl zY{`3$K^-cFw<=v1u+N`E(JlGii+0{AnaAljf%$jI_342=M*qND0CLPTR&5 zLdoAxka{x=C9@4Eu|FD#l3A=bH%kb%uBJVt)CSxq4C`?dHXT@ZLiE20X*uw+_Pi1I zwm^#hd^tWl^k+m$z^*-~R+l^~);}(ObYj~?ZRDQ7{R6%~V*I`d&%;OYJp3Q}ZnRe! zMJt+FtlT<^IE2fWNm@T&CIt$-kz-+>PWN;g@9_vQ^zkeG z?k@4)$aH#q9J`WWUC$~Nx$u&P>yvxgY@A$SSYzBD)7kw+z{T$)()oo#ivCRYR1W>w zL6e5hqARPRtL+aPy9&Rbyye!a*P$p2s_Ax4Rt__J3H7p{LZPa^!zVbzT!_E_$$t08 z-|w*B68!cp=BluCFT5<>JNt%_r<*pfpCWm;nR!mAk@4Hu8_Xy}p~LN-pg8!C=2Kp2 z0Qk&@N%}}H!ugU>`+_U$CiuJBzJ3Y3ta^Spo-+2VHm}EDl`r69Rt@flGy!W+f99Vv z+xIT2$}kSj`o9(y7IKSU>+#_v)u7D7!!IN#>al>L*0c_+X}1jC; z@Zm5rg7A+v_*h4I+}4k@nsg{PnGi|>kU#|}H{!!;Glz1U?_Gq>=R?rQ4jD~7F+;-) zr&Bp>#7WkO-59bkX#)b!*Tb=(ayT54c!Fd*eAteRJp5xEe8iAjc6EyfsUVk9%P@8yf}KV)Mnbf4*x z#mv##M?NBF{ZR52aCR@)+WoBRw)3TL1h>tqUqug+m zK7_=Rp)^)Cji3|o?Sa#RNEv~DVEp&7lMyKvhLpe|*27}@QegOU$B*pGBN*IiY&yr4 zMc~TxEBky~rfX2};1-CRG>)4S zI(qToq2B!Y4YqYtv#xdsKfhwOo?L!_VYuu0xy6jcMd?liGzC8Yy#Zo(kE%%Vg1 zhDC?)+)-VXA!k0ol_3j-GK5!L0~M>j#&z1Nz7t^ZtjF*!55))G?qu=^RAXH(t!5A? zb&|K#toI%;^nN6YD(1PF9U&t!s(vFhs95c1=y*8q*hL*D1k%Ie%ebB6aG@NWsI=lL z*%#1dyv`_UlH{4%WYlyHJa&+Ei4$^!LC>e+2VD85GO((CCV(EW(ETN2=z&*Nl8-e} z7%5j!ZDZGtqbUyEaJs||ZQ1=DV)6(Y_XyUn`vT?Xs#GAxU|F~0Ejp;_q&#~to-ZnI z0;g;8q!IC41!=_nInZ@g8?Mo(n7nT!lPKkXxQ|f^&`4DaR{OU>rnc*K!s!3LsPxYf z9l%!lXz*(K(_BNt-2gKg8fF;dAZds19H<!M$|M_Zg(kPxjnOzNnHTPakH5#>0R!J@h`H?OUxRpbf8jIZU=^Q z5i*>12irmAc8jOQH#Q#lcZSjvim~juVe{u%EY1h*F8`c#kIy&O9<{u0yt{O-=Mn~V z)v%GY>ImMd;UjU?k^RA8HU3-11W?IRQm6JI%C`E(CgZ{E*%R%dNTXICi~XNSF?a^R z#+gj~lU|QaYD&=H@MXHusmlmK9|HvL>!J5&{>^$YT1`H&2-%ngS}Qsi|2(h??E@IA)rrFd*}LE^F<*XBf=)eBVEQ_G#FA?Y-A} z*0Y}VtYg2aTVIwNkd6 zXILwD-b-J~{WJR~Ho8d2`5U~iJhvfa3Q&VD-5b>4P1xY|KL~yQne|;BN{HOk;6@Tg z-(`HMT*@C=BzNQjrl!$08Dk^JIrFQD{hEN@F&_$A%3v2ph%Ucm=yKCNt!OmlyqOgl z$)3KR$LGNM?dk2>tvK(7(&67K&O6MM=&maaa=nuv-w^ z%7W{3#xx&VftsJDnv(|)KdrbTP!27&CY9Y}W_^FjgWlyC^!xY1 zf3Yixp|cZk8QICw&>4EzIvaavzqxV_6yhgGY58*=5cxrR_vcpYwp@*&&s{h<_m@co}u{3(=Q%^u8dt>JN95MqX?O6lWe> z&6|kArv++!)1;mKI9vFdj95P~@d=Ks^$P=rp1NBcd22f+wD-V#c(0I{muTPQcr<#L z;+n==Usnn%0;Y*|J|8x;x#C-IoQM~u>GP5Tnm+GBgZ(3{oK?0cIvv8n{oSq7=fi%I z_9o3{EL5CdA&7s6;?yn17oYe6OTyOi0I=+Gpf|LA)WRS>8b$zoaaLux-gh znm+N*_)p^5@Snv06aF(K%&fZYu8#c2_W#6xhJ@iir)Dz$v7L$k9O=k^R3rbH+Z4=y z5d&74XzMiv*Wpx%64e6*m?sQi zK5-}7;MkI2)wYkW8*Aff5z9+s1bpBf{EhKE9$qmSUqPjc_m}Uq{dVYj>^Pi27I@?$ zfrji4e}ltw)6h57+1Nbw)fu+zqZZ z8{f%O-P@<+p|{Gnj>E<71gmEy#qLqR+UpNsU{|u+O|Ytwmyz|f&2`fDu*kjzTzd}t z#_0YkcWl%BRWSTh!Vq>=*`PQv;FYVf=qkneBwUsC?C<`4R(Z)qk2-41!?)T`de%~< zK)CJ!3%ZsR_YZWp&8W3>G3gQZkqok|SDvX&z>WG&GHgnTH&rPUYP64KyiROIx-a;a zmyK?BclEs>T2HO2LrZOwZ=t0B!^z63SY=fPiN3MiB)J0B!d}6&ILmq==2~8iCbO`U z_``~}bIC#H0~Sso8zI0n8S3ypqAe7<{lM&os5jtUJ%S9o!&xj)xVP9^1l{i}33wKt z2ddvd_3mmsdy*}QXbkS})b8!VXGg}*68 z)N|efdLNC(k(p{&Tni%MGE2p{sj0i)G23F^iTK!T@9M7Eb;xlrqFRk~=cVCPcVLh_ zcy)}r3tp{m#)u+TxW{}L)`qBeaL`&BP-S!LO!dQ{S8k+NVBy}^(r{~m`V{x_IXt)5 zs?AX!LPbC=T#m2)Ia)1*JM+?0r(JR%hYZ9;T3d zC>VTu{5_a;#B1{@Dn~q32eV~A8{5Tro+X>0CRjO|`ju|PFXjIJe^uX;vc4Qx3%E{q z_u%?C-Wx`^0-9WDBtoTjBf-tBa5jcV&cn#egKE9Q7|8_a^0 zC=#Y+t~8ICLQ9MNa4smz96&Grh z`c9z~vQ_tQn(e{V2U*r)(%@iB2M}Llg=)ceg~K0h8{Ske4>E7RLq8V`+#-!|jrkmc z`~{KA)yE)?h}U5alkV6yqjLrqjqDJ6{`-K=dE6x}lE;Oqf7+Srhb6(NAN$|XpTZ$Z z20GRf?M2(54@(oIm3nbE|8rd9>i)019pk&ujdR>+;9=b!9FNWVNe1<`G z*#3jRgMSd&&zBx9K!X$7-;~*`*>X(ql+v98@_HTfk2JM=eWc0L)zJ*QjsX$eD+-0k zk@_rEFK^?Fif)Q@ouYQ{kKx!n8U2h&*oG zbl_&u@j8P?*$(J+SzHqPWu>UUC9qQ&N=IeaTi_!MloI4Mx*NVg7qE@u)uk-sq?e>k zR9t>OqfE!nUJNgk<%}>7ubz7@bRu0@s(w0{oGdCcMAU zKd0GjPxR2pH^00sC>+k*elpq(1M!C(FH7o{%2u9EEaWaW+JEtL(<_GOvklMln9*v& zZxgdZDFa8nLd)J6*f-_na8(suB6ze|6jHaqvJf~O5X@6Et0CJbgS?to*&Uh?+#aK? z=8#j2s7(F*v~XF!OeTJed1ae)${mPk$vdAWxsYe#o8q}a>5nV=C*B}0_4DCkel|Io z(|Ih$Zv2TZaHcTH)7t-=m@U0u(U;hzc|q#|I;+DX{S7=CQDQ=6(0f!<>>3O)W&gAs z#3Ed8U|)O}xEl8U2#`zC#32(vZ^#Z>4Lf{*oE2UVVXEA?ES*{~^3Xv5cpQv1q zaOljUyhV8UcQ^2WPCO{jt7H zAwWAPv<7^OHF!0C0~?)p@uVSV1Y5jdFi#PVFV!rfVyrgsoaG&nq9#q~z;n!;h6}T_ zZE9ffJLoSOUO_LYqsu}$cq8y3Ns)*$ka?adPl*nf=p%2Toyc(xqrMt6iEeu~ympWucz{=p3? zt{VfC0ViE-&bo$wKATn_3e91FALwm_&&##%6NA4Ws(oL{VIVI~ zQJh~ggCNkD7cb+=xr#1ag*VA?ey2S&2iL#ngslIT@bF#i`zx6l$nVb!{{C6*`+niS zC$4u%ti{xb#uf~8{V*ix27|~{jxkyXrKj5Zq+eybDm}%Pu!dHOO{euipwvs=PmCo* z#IGAmNa8^KP{;l9>I~TaRt^IA5lrj@?km1xr-=a+z#+H2)Q=`r^J8mE@NH8?rVlfM zC2yek0ml6RuUBGOA)(F<#S5n52}veUH)W!+Pa;*TP??Na%EDKo61r-UKy|}$ebp+b zWJbPfJwA3bXV0;HC>6JtE!C&kf*V@Jr-Dv2H_EMd#ckdMzD_8$+Sj!Fh<|`){ z`;!pTpVP+#zc^QtV2>D!N$Ls>kQ(+QLF1Wddw>LM+bm2BKS&~dvH|JcvO|zgJk_XM zzgG&nCJA1t=}F~WP2tok7XASGk9>`Y?ML+2+6Li0CN zs5%Vd`Hp@Rm*h*27-AX+)QSDoC@**Z{SyBEN%{SQ;(MvH`)kk86`neL_ff+NAN&vY z>t9lQh7HkjvnI6rYOtVpPEqLwx?u^ab6P2kQ$myPrW{&~v##9}wM9U!WMDW8N-9{H?Tx zsH3j}^A^0L&vH5@%a&H^Tf31y;Cv4{(;LLff6?I;#uq*r(DT7N4(C*!x15#&ZSS9D z%~fr*@h?h;&c>M+42K0bag6;csRZb^JXi@Zz8l7hOrC@S@{{SPie4uAAI+|Ao^q)$%9tBjrg%k|0c z7>!nOS$c8>X-^5F`r9V9!d&ktvY5|5dFmTStpz$(5U`<(Zvjvco?aDTs3MqWByU~| zRo4$Y@hZ(Viaank+M-S3-`({vjdLj{Kvs}HG3h>GF0FhV<|EYUdy5)chcMcoo>gva zBZFtM8V@!5-Vpw9v?aYmTd&s9Vn0E@$KzV>NbMe&L}eC_A4aB5;qjZUuH^0X;@6pn zQIMM(Ow6@j>`EJbYlN~S2AYGhP03;l71VH|sgANP-9(eYMq5*0D%$>(>Zb+Z z4Vo`>k6g<4tbUK!^f~o=ig!o)6~3o^``?8B83yQyPVGoCv~SEAB{$>q$=;Q(?=$FI zFrJ`Juo>(yq&QD8mC~l*1){H5+f|Z42a49_83^=XhGwpoq1*E|0FCII9YGkgm*b%v zkVZp+HD2JXKBgHe4chV?h_c}K@eOxG2NULJEm|u`eXv=>oI(ricmo?3%wmI=QM6Di zE_7jU7#rPiq+!c`Z&Uq45w=K2l?8#3tL$7ssegwSeb3-rk)Rfa%#&#K#wd=`=N@aJ z5QW%Mg#A)zfYx={%EK@FUPk--$YA-5_iPQC{D%hUfSB*4aqpI2s~+${&W& zST06ms2q*nVlrNJABXqV`lwnoRo?32VO)Sf7eK(_9r47cX?q7_=Q`LLsWt zr?EPH8lOIFkn39^@5NxJ{TiQ-6!LZi3ZB#oIDM>lfmXozXTA5Me=gC$o$bQ@9M{9m z#`UoNq`n?bol?06o&i}*2e9SM$GeQN6oGwehF9w8F8OoMj)=PsU-9DtUSY8ox}hzyfJ622EXbll{3`*dv&H z@6Ia6=U*(}ragyxGH#fVco+Q5nmhL&bK%8olOf)zIFD>wuAfJ~o6fO~r^D!usAC(a zN8mcOF63-7Og!GxpZUYa;~iucprlXg5vQm{d^n8=buI0pOAQ+Lt7(9Yocuox?7HNv_@B`2)8qv<>1ix5fzQ_)O)$U{{4ve7wGr< z@V|F(9PMVI5uWW-3`u<%ET7hR21Nrdi9VN@&l*ANo`?8bydaS z7U^BzQ{C344OMPuv>#1!dp0fmmA&9&Lw>Hx^YC8J&xP2t3F;Owzbj$pco__L4K#yu7CrdH$-_b{d?b|P{E%7g!NET*T zXTx)k9}$_$@s3eAsKjBHeDC&bD3UyRTY!qcWGBK}~wE2n6|`$@%7_DI*L(3Ds}l5!a$b zsU>|=qWV!5Ba?xt(Y#ay>NmAWJx?qOAnGJ>x~43iZSF8Q>fV-)1G7o3g;D^8rXkt? zSl(l*j8M1H-{ zd0}MOO)V_GjygrrmxJS%3;E~A7K8kA70Zw7Q2trV@?#@hA6pwnenffuO!=llp66Qh z7uGZVmnC7ZoqnNH& zT=j{;k9?mv3<){rnGAI;GSoGU>snYY@)>5KCi_7kKKtL+xEC*8jPEbO_v=p;T5*BQ zj?A}aS2quE@2YNzx~!VRr@(z#Lig&{sLM9ow;^5HvjC5x5Gp;@FaL;S6VVL!cOt&5 z$Ok73p5`H&&hBuy`VzEUA5%1J`=8kw{T&+cEi;Zc&>Oq^0K>f)gZZ=jnfu`RRgS8{ z#iWf&RDV9rnZ{<7i)ezO`A+E=6eH@*OB_K-w&Z#1VH2N1oF_f~`0)KxUa{<6Ohamh zEkPnROSxF9<}60#EMP(XyU05l6wfrLDXIjzib@D&;aVQd#K~+x3KjV_HAF3j=Q@`1 z8B4DMmhf}79*mdkLc%_8SX^bEh(xo@cy~3cFU0zT@M>)_ynjb{DaZNYKOr@FmKd8B^hy6ITlXU3%dmPy&S#hc+mMbfR}@2HXn!z$LTL_MKv^* z-K3YT>foq3&j z|0oSJVKqcOfjHmN=xu6v@Rs^vg8QA_`G%aw}7Ahx`m_BK}~yqcv7pg!;9Bb=gV)5HL94R;XzJPlTf) zf1&*(+pS=Ms?^^WX8H8)SAm_nL^dA zI_nrp3w%;!ONNU32b~wKCiQK-`lM_nH2+kvKhEJ4%3f`=W=JYyze1w52Rfm($oNia z4W;)S)c+g>TKmpj4WkuB!kPU-$4Ij+9{IbrunCjp{1z?Rwh8y?PSgExNEa%W@@&3V&q?)VF@4eK_#s z1E+*&Z8&ctbXL|th2Hzaj5o~9ifh7PXcK&}x7a$Z6N8-0-^5JJg_(G6Ky116cnmV| z0?nUKdHz_S9foEPE=EVyrgpXpM7as(56h2|Mspt^8g`;e0Ou9Db_}np`~g0F6l|Rf6|SyBE*G=Z`OoW%`ob>JHvPOHD|>4?q3b~e)F`z zw~#m3-1d7DCKE?>GB2`2MLO}f#ljT9;X`QY;b$8FGqiw{0|PXkAsd>*TIU^2ZzJGJh;F>1x2rrhb|v&m9RBVV`0!EOpRm44o;f}HAoGI>b9FjBVC7^($)WLS zGEgH%wuY0?*6?9rRY*tR3-2{+dE9Vqf&u}@K%IETMv_Y^?FhsqnLU>U zu+O}xs*vY1xl;Ke2I2g}etB95@+b0%v22fM8%DDBJqF`Oo9NbJL$|tFar$LwYL(z4 zO~JhGpNm_J=5phrT2W-8(9rt%5{S!}?WE~rA&|Y}0$Qj&P1SKsWmU)gx!Vmos75Gl z6p6$BiH!|2J++-q5~MNCf7DQI)Z0+Pv2b;IZO%|!y~4EmaM)JwGPJrNs8!!$ncu8{ z*4=hT)z!waxl@eI1uAuPriia0->l$)B0~?xtC^A|lu1TLiR40IhcU zC3L9TekR3XMhNZR=JiXlO6Dh~I1H5^K!v4;SMnsL*^gEbY#CRD06ZfMB);Ya&l;&L zId0O7AymG+>ITKtWD@oeWtm^5cU2aliyfyz+6iqyb(>An{FL*T1&vqM&mG6BR=omB z<#Fs5#0wwCUX5LffM>+)Hpn_mP=fI-rtm2(4s8dE3a53O96DiCQMz#@Nje)OOS((U z-H#1(cU&Uc?%|8Vg=~Y?A+o6$!p6T`LZ&Gf7)wz2^mYpb`#l_ihype2s6KO8y?pZ^$c z7~cMoh9N#=7|5jQ;U7bX;h#V9Fu)KXp#mT%cuHfZ(v5F0y7@w))5zbW6=xHgIo%{O zbiT&6JQeADFEeJ*Q$GlYLGP)Tl_8kp5m83uisO=@`c)cUg_a?cv@75)rHSo7V?1-E$f@9V7E#0O!9#lp^ir5UxW;e ze{roJGymGM+O^>60&)%g>qPrDDL=1iBl}zVteiv{`v<;X z#PguKn?>D;hPu~W&>CRVt+4W|$UlD53Z5EOAL?>z=>?R^FA+oDV6^v*38(6Xe|L07 znD-}k@_r}wonL&oJ;=Uu#(~H%_MIX>1iXYfA?85+#eg49w5B+hqj)z#h~MJaHL8hk=T7H1E!eediGiSSdudktDL!8@PyFbp4wT zbtF&e7ZSN&k52$qYNuiKF)Ma#m${Xsw5G>n&9^3zY|zuwMI0(y+CJ2E-lO)zWURy7 zjRx`k{qK0Kp6@+B+HN?({cZfLgD-E9l6u2ec_`QdmzWlzIB*&!sVHH|mWb>C8ny=X_ z4mdTLvtlo;4jL^c?)PgZ8wUI8&h5j$Y>fOf`*7Jm=o|JC7JWJQcjMBZE0+G3^`+l0 zm;R>=lXj|@v?(9yllJw#tsxd9q%Vn({$qyqzhb>%{V&wl|H4k!|Hg2rUerirQ;27* z8tKFmx@pS0D3BkSzwa~uq zn;-%al*{;LqN@*lhe~hTg}5fMy4(F21#6~7CMf?_kUxSre~!N6Bc_=WvCMize#>qz zU>*>W-;(1&pn_#b>0#V5aMmJ3!LBF$9nkM;=!kxd=6Qbup*YslwXBeH_64<`Y$anH zG-JoeB=SqlZ+ta=sd}Q(!uY8`dwct-T?4n49xQ=>Hm`e^$n#t6jXhOUf~#WIuCnY1 zC9B%B+fg5RnMwnEcO&X?+?(w8xlY<10ZHh9iEusFr~ta_BZC4+(BFdn{9zG#GGJPv zo{n1572a(ipHd3gG8|s8r;57WNvXeNSF7loKX1_a2;BT=3f4BAi|J{DKa^pwFt*-9CN8)`>8;{>&leW!u zo5VI(aV;=)WaYcR4mSd8zt*?9h7q8RLHXCABe3La9)W=kQMkxePSjA2tmz2i(VJPI)4_OPp4gJ04W&^-K1fzYu zG(mISYt{iCZq_^%uHcW!t>9m~BN;WVh?*s^kB8ex#W~2r!iwt%l+<-0SAj+^289v+ z)!cNCU|eNsP5)-nn_g$qyfHorGZpG~hZ7$DvpYPl+`B^s#zokLfZ6^~V;9C!LxDA+ z0iAIKwtROX-MRj0#F-@+aE~xev;T#GE{Z{bZ&I8yVazFB3^6O0U{+rknAM7&tpVC2 zmu{qEPiY;8yGK`)vCV$LZJsCFtQBp(#4aFDha%{$UEvT^zAG3(=Wy-n>|LPULEhQ2L>JA*dKoTaZe2LpVo!`!ClBdCC57;5&_|O?_l5m zl<|r)6@5f79h4D+nzrJi6*?O4>CqaD!On*2z)9Jr$I#|2qRpEW*Mu-zz&m$_L*clc z!6=LtC>*pi6onV>6e#S|PVut-8i_$Mx{y;S`!6%BN-(TLHCQpIq=XgYZ6d6>inBLn zzFK~|BfuYj84lp3Uxo+R_GKu*bH5Y-|Lrsb9KirjrF?q0`-rdW62Y^2G`8P`To}_B zl%B}vI}Fz^2CA>@)*A43rw=2!meXxg8$|vIvABuZgIpjx!INwC#5Y7O-UHC~w7PdS zR8@Nin78gNir(cfdmLBY%DqvT(F1>#oUPS{H`Vwr&sOS6!jWB+E?9ZvF`hQU-jNW@9e>|lNI=Wp|xjYoE84`@+4T{h0+bV zV@#%f-ujr8@OW=bg?x$6>3d-?X!nbh)2bX}#JU%wx(+P_ggr9$#WT&~$+miO6C0`k z;=M(&jT!OvzwfQ)46y|J&t?Jpjb`lMKxDE{25<`*XDzK+3q3<8WEk_8&e(%VvaT1d!Dcd%CTBt3utMmsz1K3##jl|y+u^9ucnhqcH{i~qS`mW z+_0;qv>L|)hRM7O>H&~MjabpXntj#2E=}Jx)i*W38{YAneQhf&qEm5rXbiO0Q)S!# zS7YM6yPfkzL3?q~Uc(k{5#ZEmB6l*<1k}jgKEChZ|3%Bc8vMJ1@O{YZ`7;C_GK{jf z2HwWkFj^G6#xI$-;%kD0YmBdxRi@9}aKt{Vss2y!>+Q-fuf~bga71zCVve->v&NFQ z4%5#yG&N|imF(aKydSg~mE(Pti${vocbHv4Q0z5P$A5tpZv(kgzvnFpRtAI)9 zj0GFPYhhn_bzO)JwWo{zRXTn3k6nJ@$u`)vyQr7DFE@t&G~)ohNED>*cK7vtW6&2R zp>O8UvH}hPQMF^c=KeHttLBW7VmJqRXPaL$TSNaY{C*~UkGpuwCd2oEEvOMFN)cNp z3S%j}CX!^JXFAs8-Tri}d`-LbX=VRq$KiP3tf*yHW4Dr3U5)LIhNz7&XsK1JXJakj z9)GWCQY@KiWLj{KQWrtLnO4m5=jQC(nMrt)T2+^sg3P5Zb147GAWQ$u;+gQL>6U26 z#`rrnu#)10h_@X^AF^soXZjG~pJKC4FDur)&}971t%#grPQC!!btp>4Ay#WSUgb1W zn=%5mXEQdFTE!~AGuHRx4%+ss3;BE69o6&q>fp_q&0MpznVVPRblvP`+{n6+ZsjS*r-5gDcyrFeTKS+Y z0_;D@{532{(Et+4ui-&D^c?d|aY|%lInTNOM&R0Q>xQA0X@A%A+Z^CWP^8|a2_!B*! zkurCY-ApkN=6tz*24&;+jIlUcP!vt`jKO|k_H~S>utjnH1>@T`mbPHRUVDreW4aHA zg&dR8U}6!=G80Ti=*l5@*_DJFK}vDvo?=PeT{p%`6QnL$jRb+%ts>svZ|Wmb|W2c=CYpZ^pF;J*7*bO8az(3btBFUsMx8w5iz}S{^sqPzLfJl zf3DwSHf~DVDefs>^fFyvE4=@rzckqY1(1XcE<6H*=4&s2(N$cZ5^pUQ0dUyfYl_8vGfyl#PP)Mg6bU zV*R!cfYQ_43oJ{HRV%cUODg!_fCRjEWQkDjsR~3-@^^ z?;j*RKf(0uWO`_$T zOtQbT-Xk47slxM~gq_5=l~rD3KRHOMg6+gLIC5Qx?9BKzmdlOX)i^R;Q7J1 z%k?xFl%1ZUB8YpM54Y*_K@h<*LwHSRSwH>h9sr!}we25(Tq={}U8kTiw}+FWbP8y!+yY+XmRb-2GsZ z#J=Ku74uS#HtJiEn&U{I&`u2r3YcEiq%yF@8_Pc6Xc(?H1>K~H^6O#y>=~29hnHf9 zoG6#5&29LQjxd0)hd%ud*65}&(S~9&S^K0Ji(^BJdp7e9H&rye?GL_B5%+C>aFpyg z5f6YvA6q7hnko(5?rp#FQ1f$Dgm+6$} z+*1KzHyjdQKwp17x#%b%a)E`~3mfZCXv&NZt^fM7sXrl1{ks1%9?y~)ygZ<-hJl+u zfz-ESkku_ZU=qiwT_Z)H&R$VM-FsIglQItFwY&65bGljb-&!-Bj|jc?r>K5dbPj2^ zGqAC^2;n)dIPW3#cOsg}P+A1d7rEG)f~VnGoI|If3LCo&8iR?`P+*mzAL?U{@}?3G z=6jNBa^2@b>zl<3&$U&|SFbXYfrqu>_Bq~57(UX=vv7W)e5Zw$$w)a(P8hWodU+2pVxa@18ON&WyJ>T9r9I3m) z!Ld0Mj*7Lxa3m2N_DdNCn-9Im3SmmS$DrghlZZ@MjE_5^`J!v_n!g=KLW%BsyQc%x9>Q(5I_ zu`V7Ojzf@XO%%)D(lx;V^<2ke)Rm8J3*A$4y{(4$be;7-{w(_+(%iDoxw#j4lmQ2` zy-yh9X_IYxp&}f>EiF5V{FP-@7$C7Kg*bA3WpJh0qSDd0sN_H&#^-pi753Gg!EX%< z|KU*h?+r@)xquEFWQ@}wU^~BIGgrj&Tf3l zLfSjMhTCgylkF9F54W8~dq16B|1Jz^uS~SJSZgocTYNU{^*_7*eNYkH-i4yQc&)uc zZ%<=;NPQ9HXYpt^4r7Bp7Tm5}01hxws<|PRS5Yjpnw*;d|d2cjqyCri`_=#_6wgeNj~e`Km|=Y4<-YEg?}?^ z@vi@)pUq-&Q)zZ0btw~fks1*7E?rH*x+(RN!z7f<;FH=eitEw{4rz83;-$=)K^D4M zrmYxn)OQ`N!F>oI+NU&U*wU1R)%q&+vq`wH+0oLfuwhg|18n0(e9{eERER~s-#nud z3HMm>!CB>E&9$4gBj;P>qHMcZ4rr-iMZf%*SkXm1!cn^Lr8SJoqWf6weh%H6 zw0j%fALU5YL8J7DK1y9eN2%lx3(FPlY_{X@N7?Tnn-FDPj`gbQgVE-#)T`d!=h}6B z3bdC_?Ul64_Gi=m9C6<`DueE)YtN_CeJ+|3?a8+FbRjCqX}VDtb9 z!D|Kx;(lYtxX}0=s1F97k*0YER_!8nA{uO_(rPt$Wmu)~GpnRhI3ym3)*n+ye4Mk6cW$FC{GuKk*DSU1Qmz8N6Dc% zD#K(RCNAQk`3i`$T`4%oTL|=LXw{M$aI~k`wdj7x(SCs*_;Q(ltuKK>b6Fu{bL%cr zSDnAxQIqOuH=kdHszr&}ogV{cKO=__X3oNxOuhC~bY_RGj=PydyfjDKli+h%>!w}g zDGJpj^B!*@)r29Id@JSX?}C@s(}ATRf!^f2DC?B=yj&{-xE^6KYjC3$G}%B2iPQ@A zkGO!e2Sh0jZ2%dMPm>S)Kj)<}{sypLK(^;G#GMB-jhTgkAjhY9%o$RSoju?4*b||z zYxejoj~Hk>?XX|^EhlX7JXR96p`iUZ?%2?hcZEpTOI2ES>$dhk`CtTYFNS?CD$hdm zNol6Gp3%klWzue=wPCdSHhk^LD<(7CSaDh);Ai?vAcZmQ<2(xrSo`1e$(lb#(B>&t zvkXa8+m6x3-*W}Oq{S&RafZO2>KBJ;doTRbu$cDodw?XxCuYMZDhdk#Dg`}Axi8Wr zzQgUln)ow4W4m_knK2=1qPne>6%o9H4}xS=ct~zkIdQYB&DgvC$7s-Ggl?uMiqC>x z80Scf(7JZHd&c=sR(UzQwecsE4?QH8z51Z>W`94Ah~78{zACd>FO$7&_xb~6qoaB9 zz9~+`sI)uy#y~VHyc`VZvh;zrThk}oug06f>Ae*f zdg^(`7LQOa#Zzw#$W~@4F;}_A0)?dn`Pa*OQ@+ycod)%iUy1M>^gNRr$C;9CzbdP2 z*1_1$<@nVR9h&N&qr25A>uU)+eW8X~j&{?6QH^7Z_l}Kini}hI2S$i5f<55LtC=yxI*jVq}fNm}k zqz^$yr|1y=9m4;^$9v-MV|Dhg`+ve(*V9}X6}w|bg$aIetPw2b`Wmsu(fS5|ydQrA zI1~939fxzE49RHv>xr;L!9EqENV^*UjdzOkJu|VKnRtHks<`&_1_qi;QCIqUCgr$x zD@$ge4ue#2>4KNxNn4Ub#q{t)%dR)mfedmDq1A_L&cpE$i_94Kz}2WYv)P<&CaNOS zg=w3o*gDg_&)pTjTi*}*h9B1%425VwUmuEW4)ihhliK;?i5U&&o+v!>4Y;RgbYNv zNcvkWav?wTGaZp9!>G=5N621x26*Aez?ho>_wG7W>7r2LF%2)uQJ&lgOo9hThFsvr zXo)x%8llXK-kEH|lZ*r4y&b+$R$XsOzfy5xBCqtpigT2(@#${({F|So{5D8Dz0mNq zLVMa(JWVw`eOY_zh1P_-=o9dQ<8T^fz+j)igjkd2-Iswvz+-&I+aH4g=h@NAE5Wkh zTo96qtrr(BJqFfrur6H3ERh_E%y}r zt=zYKVEp+ej8nNP-#Qd|8Zgit>o6s&rflN+)W#Bj%)CT&3U&8O-JP}>>YPR?xRBPe zrTu`iYPTohxdZ3yn8E#(sL2Y08q<#wHS0q4*RLl4Az|i8nDW`KDjO#C#;kSf;ddfU zm1qaxXpU1R)VQk3k|Q7O?aR^PHDbIs+X!V{B(}B&u__LZ555zr8GO2{>$Cvq&FYI} z9cz+NM>0iq$r&(>Zh9X0(@BXg1YFA<(q4ceyjtS`-^MdIkP_s1!4OB?NEP| zx(q&8F}S6$smC7%`yHB)d6jiEBNIgk4J$J&1y~sI>PS3M@9p z|CH9EzX|&N!hpJr@BM+=C~DjIY0!E&d1`9al)TlWOqe1$S>|4R-a3P<34r# zJ@;==d3-OXj|9PZ6L;}=S-bOnlDJQf;ro~- zWdFqXIf;CqdxY=v2l4&1Klr|2FyBvavuGOEZKn3NEwIw24b`86U%?IdFM|OEC-Y1TM{o%M)CR_80kFiaFi< zT#D8iw{s~*S-qPt3-w;iK`%bOw83Q@UlzgTLcT=lPN1j+E}s$DGHcjb441F-zY#TMmgjkb>gq-S~3R15{4x*JN!*y_0&WnC3o zww2{SJxTV-)SG1wOvJMGbqYNCg2w;E`h8IFzjJyU`oEX<8bR@q*9yF8$24hn|MwFRks8v1iT4xmV{BaG1A@nCH-7)2 zxqXL!5|0xh#n;mqZ_-hdG~920yQ#jZ-q)=h|KNWZ!{d~|b5lJaIG<4fyT?QnCDe=Y zgoh3Z@+t5?;hd)m_IViKf-Q7q?0-J`-S%o{IC<=MJ@t%E&p15!xDUha0yZp$_~O7n0Ncuab0=1a;Qq3MK`cGE8g`XLbLsULZ2)*@p|grDY6!50Yz+Ol3YA zIb6c46e1)!bvN4V2=(Rc{e{-prg+E3d=_7X{(`6Y&CExLeb}yjba+{2z|m};Hymg7 z^SATN-eQ>9HyS8=R)ayKMfF(hbrs`C_DR@)bNpY%{8U14Mx9nJ3So-t1vBNLQk=-% z=iQ4{;4y;PEI3ex;@T}1`H}hgEU1$NkCACDLJW|?kBCGBV{+suYus_|py=*br@}6> zKzX*t-J3H@VcM#Pc}y?{BGN{p`U`HeXo^_w@2yM3JC{k(lLjZjFgPhZI18vfdp~Mx zSPHcTB7bj#{YA%oRzz=h12*I9{l-*Vq0nLcb^+bp2I#K(Q|J!-#@Hw#7KeM89AL79 zjlSMH*&l&1EVe@4m$Ym#S>n8e)+ZRhp)`I-&-rMxHCc`yE{5|)%JHi<>ErjbiS!KV zdYa`W%-URAWGdW$EG1?-8V6+-@UnC>bARgl`HhYr+8i5(syCe07-g)1QT|&n%E44g zIL3eAh+OA7;{O8!{$KnC@vlXl4hKj#$A%pBKyz3?mI^>#e}y>q+(1x#;Cv$no)Z|* zk^$e(-~2TYoUcjGSC04}io0oC9s#vJ20-?gdLsb1zz(qLagmi!r^`PuK{6#4C^ft$s*Xo%)6eF z(Iueij~^EGZz3qG6z8m$F2?VQRW!SgK05wAQgiwqo)7vX6z8Sr^60lH&LdQt*}k5K zi`LbCu{P(hBKin%2e`@g+J*iQ@S_81uLGHMNSGG*aJt|5ynSF8PD7wqj~ z`2WR~`8cFVPI?9E(3BhEPXbqampo5|0gpujxr8}uB3?Hz;gCFqQCnep=d6IfR;(b4)XPF3ju#MD zzerVg5AwGbGvDP`!zuEV-Q$)V*BoCmhx!Y#o33GorkN>-fj%PJrnCXBGVP z0#$HDXBE`;{*wyc;0k_i>oA;;HYUcTp+2{DPHQWkr@C8OjsE+= z^_QKY{!5IM5w8ARuKy)t{Y_EP@PQnb6s#hL5I|=+{rQW#TeWyVp1$N1>5CEf*8w1p z_CiMi=gUAes0==AnBz?+!_M)eVvetSj_U8K*N=1Oa+q7QDw5601gP9w-4+!85}tQk z(VZWiXr%*tAcYrqoU>zw_tjRp+-~=a@tHb>#GAaz8GTUS!(Lk`_!I|gVbO;DsM`LE z5DxD`E$mG&olWGxebFfU!>9o3YPTt?imewL*kdbN?YE>=+pfo?-~ z#fecC(#L&HfvYIrBrX|`!e8g^^^{w59*bePlThnm2bn&O^Q*vnS;f|Aj?-qv`98K9 zh~NNon4&HZ#i((iI#D{LgDnH*0vHTGgT}+pB`9)T3j4L6DWw7*FwQfrM?`Y)c=p$z z`#ZFIsjn;(D`lwxt2?(NR?|iB2(Hgl$gsNdQCbg}ZT%6>aR_IgH!na*3ob@@teGV9 z;cX_~j`t3e`dKTT2IpIcqRv6=XI363MwiA4S<9=qM!+HtTO8WgJoj{G+oqd-l0umw z-$=*$^MmVuC#3#io!0OBF{plFpPWzW(58!3&-qptT;EribaCkfic5=bH>{G6Q3Q&D zC|$^k=%TN8J{gCi*qXr+QV;c^5lIf7p#?w6?Hdr{sC>nBI*MpAGf#2-9z{f(9H}h% zC5oz}tz30^q^W)w@katxJ6k~Zee8SE6xENB)kxr75?+S$@wrlBB$Y~5jm^+2;|f} zc_!r8G)Ts^Ysl%%&5s8D(?ti0;&-gVoHgp0^cZE)!(C-$plDbWf{7~foN(Rlsx@|i z0~8=(y%EWMg~ncr)Cg-yq)u3~;bw14yhd1FOko`c0rkHb5wK4ppnA!f5b)sl5~iHf z8UkV&rqM7eQIQ$~{5-l@2-BXjND~V;2-Du`eJubNMk~Q5KB5 zl>E*9fOir~e{!jvsg@tXortYi>jNE*)ralFP^}L!Z5sM^nHhc8D=u_@5a?UOrCBMk z?TbP;Y)=USjFyC{jc&7dTaY|vB>9gq`3mg0Ttfn32Y&yr#)01|2Y&MtXBzm2_Djg~ zS~bYe6OfNpTs?KjQN4o$Z}7(w`xDnI!nRT$>;HtsQ%|k6pZwZbzsu`mI8(--VI!Wdzr9B5W6}wk*&Q%Y|s8Q(ftCCr1{$(k2J9%t@q6qXKjk2x(oYLluow;;oHZ13Qvv(Mp9gfY$#Oce$gQvm{&%0h@ z|2Js;Uwp>?YcO4SN*kW7b7q05(&JJ~wpPWM$) z&~g4^R{0s>fASX%{;>x5ix!><{=wnkpVR^VXIy85e_ChozgHCmzaC#2V@uoc#D8V?P#!euVmhqw!fT8{*y23ZU~W&2Cxh@RFY%(KXAO{zSr>Bh zYsiNp)CJ_|vcSagg+E!3=PO9Ru9LO`P4kfD*buGW2s=pF^~d4d;_WZxXr;WzygB{= zT2?Q1M9Q$N#D1S~X_-7+Cn?IV{cVgtmBl9fGovuKweQ*Wq&pMSup08wYSDslK8>6ZL)J#Z zoF4ssl93p+4#2$m<2q6;4#YHwk@o&%6*(k@tRkPQc6Y~fiMj~ZnWb-F8^1q9d&!m8 z!!lEm0YBvUQWqw5t!@%bmS5PS<2tM?IrMxU>l=^t-FT+@B0JW1b!YWy_H4aN{|kGz z$y43ir{uY7-8&tJ3&{Za2`f%6&$DC!MRxl_yO%>m9;?3l7ZasA#^=bF*F-WMrOUZ4 z9e5_?%F|IiY)eO`sTR`5_Beb#1)pP_h)0Qzq8vW6{WFhKZi&kfr)OrNa~Mg?^K7S6+<_+ToEfV)yBeHagNJIk$ZR+jKie8IMe4xo1d zl`}meTZ6z#v{_(9asG>0pe;#a=1~J?Vpk)}nkmm=%SHUsFt7m!87bh);FJG1P;kZM z6I&eBW@VM7m!l#XW5S#=dwZKY+jW4<4p3uswu(3~ggOcw2E z)d$)Hlhr2&lsbxOR!2*lSIKNI&oeOF7Y(C!%V)rBca;bE55eAv3>awv{U@DPpQC$- zs-#(+7omB=)(PvwSj81-rb(WJp-#j^ z^uz0YEe%mc5A2xH6jcJh4O<%zHGMb#oTmB)b?^84j>-LkFS5L;0RTcHw$#Rkc;BdU zk~V%ZbFz_4k`8W;(1nY!c?NycMg!J={M66+%{CSWeN+29Xluowb?w;j zaV-Gxa8@5==;#C@`DvK; zZ|t=F9IgGQSz(ZIqvASc(%L6~RBT^I@jb@)3E|rt+i81ywK&BWiT1`Su0?u##j-ue z0VN$K3;MICM{>^EbhF}I4u5$^f3U4{d}nvseu38hzgQWOk*zq(_54+m9ggjc9p3b@ zKj59!CgouSa|tOe(v2mwO&T0@evJ8RJ(TS%mR+~zjiV4VD@__Zy}>LP z?M{=s-;S0FLGt$GsYJEBs4gWk73Kg)(utmxOgd=AH;#xp0SV3X9-055AYG3V z@4^!#{mn&s9tZQ6`9}hdKn9V@7I~;HT7)5fj;-ewB?h zIEfwY?&{TkCxYxBgwQP42MYaBx|U>aYLntcIJm&f-h$#Tf@9MobxdrVi*&qON^g#q5q=bPg!?kA{5?+a)XCihGd7$fT{|3LVgdB?Pe zz%S!B4f&%b;I5@O@!I*#S^EoQT*dvF-AR99KR6qI0rrQ&L;V5@YMVehJL%PDm;^#f z1WH(Rj41)_H$-NI6DDm6c(ECWc4~*G8R?@GXC_cddZyxf+{7BXt58E{Q5OA0)6iKa zkve!bGj1Y7ZjuGfdID%F14L40fX#(3M;NBsx?=m0_WNX_50)7{JpQcFDIItT3^{-GUNB(q|ggMpx8+OLixb82^; ztq00f9HpXMtMWJ+_`^tMDC??**H9cC49#QzI~I;|@1luW{e8T9XZ3;DvN$sduP7VV zko0QC#BT{=wl%_KQ@q{^20cYo+z5cK4<~ed^DYVSeJ(0Ask$PZogk-C_;r>V&<;8~h^#~q^e)Gb~dk(R@mu(zY z!L`dUeOAsB;?)B>W+%SGQ&Os zaMk~Ibu1w~sV=GnN=8nJF&%#oLC+A&S*@u2Qm$M&W#D6V%-hsuR25=%ycsMxVo3XL zWqni%)hGh-$QpC?8r8P9D2z`9zJupA=-q03H+^pKV!DmrPp!Ix_d6I59(kst*<9Qc zgxv*yB~7pGT418Iu~z@*avrw7&(k^S(|WDyLsa85%)Tn~hXm~#AB}b%G4^!iqL~;pYIOC% z=x!J^YPP$#WRS9&g$A^3dQ$_Mb}8a|Ryq480YYFd&(@Ig7e)%@4|{nq+5|#sLAKTrB0i-iLlM&Y1|a05`>4GfQ8M0sJ04oc*r(z~ zVpO_${&;sJE}6C|yb4vAh4A#%Wt4z0))Q&0`G0gA5xFdT1M!qETp&rGk}s2Q(LJy2 z75L+O2gZNu6iRj~f}R!v7H0y}oIQf%)vOw_E5epxPS>du@TwSCqKyJX(rAs5oWn3$ z=OGlW=HeJfYs7*PrL8m=!;p8xT*iYjrjx;F`nNV1xxCD0QIvn$?>gGeWP6IEGI)GZ zjF^1WpXW1lvVX#uCWDn2+nd11VIk{Vt|I?02PY1Vmbjc{a@Mu zO(&TOvoN4;6PB0YX#H#yQ?N*lZMLCT^JBWcU|+Jhugiz8&;>*f0SvhP_TkBakRpHsgl z`SgL1^JYAcMs4|eOu<%X!e2g5_fTMoj|Yj#nMJ|1V~tq2&p<5?y@u2>og)TOeKk}c z{`yu>!3iqBU*D@#Fbz|AnDE!PgbFCPhY5dafu^!V%-3eZUlQG@%t>YV>zyRaR4T(? z@)M&n+;!EN@Yg$7mL(Gu`0MQ}%WkJK{Pjl2vZRZ#41YPlB9&^?oeN7N3J<`0HIR%Zks%GW_*EF3T`sL!AkKz4K(*%=57ff4wtg*|ZA? zc^9C*OqS(bh-LWe{fjKi7=UH?>%Bylp$Ai)34gtPWLZ%Zmf^3r{j~hH3w;Z}-b1ns zgJ}UN!LRolS+W{%;_G1{9^t-<@VIuRqz`)_|xK82;$ zXL-LS(u7c)(y&XSe;{+*H#*_CTbF7am&4vW+7lILKG~ZeL;L=A5klOAB?B#7Vv1Fq zi4o#DLvbBsQ`L0XHs-SUnr5SZrpvQYnSTKG5>rXjL_%9`p5jX5Bb4+miff2CLYe5S zQWpOdNlFRQAI^o^@Y9)p!{oSSSs6c>t0*>BPuVwotH?(ELV;2J{S}bzQEef?LLYI- zZ!?5SJw37`bgO@7?t7TIZ|+#d^*o=mq({Pf%y!a~ViZ@2IC7boo~k&1phLP0Ku`Kr zit{e~do^?o=T}#fh6?3*LKtAOI|U|L0CR@`CR=fJ(;;XVrx_FBD=X}Rt@Xo9&+VAe zFaQVMoCv#?^Ng~TMAIpoF4e&fRIPj2Z^$d+XpdH$dr+^~4ugCXT|_9(gND^lR@7wE z>FBYS!{uwh{sz;7JVYqNV^vBhh<#N@3!T%v)2tWBE%5_sycoew(Rlip=V*al9_Gw* ztLe~rSA59~NTPY4hC^?dq~d!zk+8XNm80!@S#Mq2gGre?y{e?#ZvFY3QT z)PIBGG#TTQOI61kVdRmcFG{X5P~%tO+n?NN`|k^%`2B3Fo;%rI#{FAJ{nL;t3D1jR z&K&K)5q5IIMGdmG23nZ{kkz564a>F|?@7jY-TFLs_|1;p0T|lL*pzD%?L*Fm3S7S` zOAay$i1wR+=0CkH(uCTX`k3ZtcTm>mD`X(+s5U4GjaKidx}hT%dCR~>-hTnO$cJs( zc~)IlI)++G+AE+*CQh7zKI~9!rkk=A`IJ=!)=30#A&0>?Hju8P!i~wK#=am2stC9| zT2=4Izyee<3rZMOsZ}K7G}UuMUW^%DUe}cl%6hhG{*Yu}YP05himlT?4llq{x|0|9 z(M>asa*&DMKHHHQsOz4GIoyt`NPEPBEaL5nwg5#yy1#U+VdVw9iaguND&l;e%tSlr zPaOf^A=i?#SgA>P|6#NuM<7~pePkvCST%hbh7Ttyw&MX1Qj|ffw!gqS7{?9Y94wqo zQDKI>Zt|_dlv6uQ(?i^O4{L!(W|cbviMIPn1GJ>Mt~7HFOM*yQGM#QC73WyGh@!I! z#U(-nrVJii6oaSdD83t8;`kce938r=^Ys?Pc5hI)?#cM--X!CGs>An{kMg9ooPRbr zx~v8@h~BT;4f~PY)i_9=6kj)xCx&k*j&<)Un`rhppO^l&s=R10SEmtF*5Gl_8LC2G=F!||(%lnGRk3jT02gDmEi#NEfVQEGN zI`SJOoeUxAj6@=cJ)ddxH+y&*J@AYs>CDmKqobE7I*Y+WLU~?!xt(p_+NP0;JKbGP zCiyJQaMX}oj2hxsAE&70_V)m@=@eTYQ=}qG$aScr(#`X36H4laBTcbQzLSfN))V)Mm z?*UP7j_juB-h`(qp;$if_~Kj9lWa+uNgk2eZ-k{PU$ei0TE9O+h`s|`!ux^e@o*n7 z4EJ;c@{T>lwfn~6VcPM&9p5$*$A+gg;>hX{-%D}g(YQ7bo5ZQ=JbUO2))p3bwX*K0 zvTkp6OKf#>JofF`8sxyF;a{~|S+@mbsdz`tD41cfLeWnvn`cVroNRz9!867a;qiFT zFdm2@e6V;P#f2nT9Xe*Hov+GS~jdgsVjbB+3!HRFbF`WVKfLpZ^ep>;1yp_X%B!Kt?P!mO!Ltm zz}VV4(b^|@f6`j!Pli#@>>+sl=&R||&?WyqkRoW+P@LFFZ zl7-z!6P@2;;D^Az)D0d30(K`-U$jKSR#&ZZ6(47o5?VuhHO6D8H^PohL-vD45Bw$MDL}mZS<6(L; z2EX(v9ltd8X3gUoN5q_f;?o}P+buGALTZ)o2SYqV%9o3A&S7P9G$+bzc6k(!QdqPT z3tWT&xX2jq7n5)iT0aiNSKA$uw@-YY$7bepIy{$4czn0hc@w$;p_iDl@IO>tw5`z5 z9BW_e8IuI^8%a>P&ynm#N8ITXB2A9kL`=v53s-+w4p6E)IX*ar(eo4ilHx|7a@>|i z*?rb$A$V2Z0t3D2%}g^i^EFiHdjaE-WI(B}Oq+k}$G|=5u%-Q=d3`1nDNfX3vyxe_ z@^(X&k3p5>1GfG~tm0ZWTVJ1zH-m%h5v)4;M|hq=^v_Sj&>-&2Btw=c0vB*Fc)TG2 zDfIp2T)&L^hWvw2{hRST$GyREIF?Bd>p``B*@8qwqtb^?;CnbW#%l34Hc+Ke7N#;Y zPXtTxb9}ZxBp1IZ+JVpd^VB2vs>u_ne3h^;p#@(DG1NacY zUTeUHT5}4sLrry6zYW#$CH;8)^!mM-_3eYzI-3qeXZ@aB|8c56k=5_M#^xn~__G$FXrvFOOf7$h4 zsrs*O@C&nZklAe3Zk}~p-I6h@LF5mb&m9^|-9_p#7o8$y1tcDhyVpMQpspXRUBZ5= zn_a+CG&58RCu+?lXwO@KiDiLf#?*&)IK~;;n5mH8xBkFj-%iEffD{ZPmmvOx)rO)N%x7%{;0wbZv(^XChCNg5a(FiEF>9B>vtf@}TL#Z381|ZUHDn7i zO{6#~d^3u}2{eUA$n;RB`0sszEIR*^uHwI6#mY0(59u7Vy%z(~6WHv@%&A*<0$_^| zz5_Pf6{r+MPsa7!W9~3tAGVyVJ14vGGXgD?2S&?9XO)ukm8wZ;c)&+Ddd{GncNrW( zrDr~bIVk{-g)64Sbb65|b6F_It93(MPvD(cPb1N2m~Dc6)XBIpv)!4V(fr!X!M_gA zFtyPkqr*auiw8{+xYy{<{LJV>wbbplde09M)2X*Hh(XMAcYSaPV$a@9JQ2_tDJd2s zzYeD98PBg)*Fy>RKg-1R+AQMl^SHT=3wRa9qC58?cRxBc1;f@>8vGns@7=(-;(1_O z3PO%xwYV-gwS!d2Ym>;3E&m~d_G-{pv9~A;8R=G=T!}rmjH-SGr3O8<8{!yj&MvCH zuFYjtxl`{sL`Gd?(MGeEjh3t6f;y)s8gAWy-ina*c_!XY&t44EPWenK&Hpiaxe+Lu z-TBUzUXIsT&rtq5n?*NLH`}9UfIT|f2N~rJp!roVbSW#^0grZzyZv7>$aCU3bt%_n zv`uuFYJmOUKN~`Sv<+hWre|y*lxFkJiHx&UU4f9*ny@JbY#p>EEWwAJQSL_~ym3i#K@MrAu6Z8uO?xW?| z+7X3S%jIT@K}tb-ji*7%p;9ZW`}|8?Egc zN7MLpG({MXngqgGfo2W#-5hl>w35iLCC``9Z9>=iGO~jSwvzm>ZdZBxtHgode;hHl zIiG~CFPIj50@`PYs*PP_EpUiItk*Wnp=qE2pE4piJv&%{$+|qRfsOh4Zp&OYmg3(ULBr`?thYl=5_ zr~H5OgMUPsCU;EYULI=HMR-VAF##{~kmcWR&DjW&gJ5^{I7mlE1}A}JDNpeYWhfD3 z8y%?fh9y*dgKZdR(J{J_;sZk%O#9N%IKEjJi|1@()2cv#z(9TAWQeF7xXKCE(OVJYZA6hujO2wI(I4Y0 zT|Ti9{WaQ*XOw^JFznHbh@0@eYOrV(rRZ0IYK2*Wt>$u^P zisJj8;s?XbYz>?&yltfT2E1+&QgXRa`F9OS+T;cr!~4KhPYJYZ??oBH1CrHPe57M{ z>!W-HN*q0g#>F^eFGw>snxo5r|l z!EYC!l<{#3xVZrbJD0rO{1)Xg^U8YdN@$voX z-^LQWyEs8vrSm^*JQ;faTfi+~0#^*)`3@t0G00mNord1XQ45JR{B=-&Tn5B{po z8!EZaVWUMjZ~OmZAuYU+1Oi~s!Ng-$TwxyJL^EKZ&^|)r8V@E-m{B(X+bcVKDe+%os$$Yq zttrt(Lh~DfZ<+J~L}_oRHYb==HdOj3Fk zQiYxJ=dME+R4|kF_EBR!s-fP}?wA^Pp&q|JqsjoFWs%68JGYYLulCVZhU{$JB9y!4 zzqezKHr0l|>khHsPUX?=UR*%1av_je=qX% zinuGNQ@iH}ax0*8%QnvlHP+3WN68Pyv4t#F9^9;MwnAj7sewLTM>&YzoD{$U&wmbR zK1N)lJjj48QnfT5oaJMKe}VJkX#+D;*5{eyO5ksCNeRL{lfyRK!q10G@wMS`vU+-h ztF8YrBI_?7&+x^CfG;kDp>r$kBA5cg6L}0PI^S&p&2MF>Z9<|N87>7A+62qFI!nz}{v-$Yi zTA;>5u_%hWUadBSs`;-;`Y*3^f>&Z=2?}lIC{Yc!7@ij>=0*z(KkpJcD!!xyD{W=!koi zLzG>@OSMJh%@4A66mi#ol40e}T%S7Gui9dC%1~b0$xsh?YJ5KK$nA;wZfPEgD*Yn1UlZx~| z*{P>Uhf_?gb_9+5y#2w*+eRLgbgqmISIFhFtle{`MjkfoL)hJy(N6RA=Pu?;yTg<( z1%p0}Bp<4^lyVTPu(Qke!64MVDQOLSpkX)Y8xd9CrQe5nIdyR0&H>kA%%=ohb8n{8 z&%6xXCSZ7{v*$DU?733RxF;X{DY9U>j-uJ0w;yZCW%KsMVV`acJFkHb!1o3|>5Ts_ z`+4}UTQdAd-47D@&jmT>voZWs4u;Fa@KYGBN62TA;=49;JeMLK(-ShlfHTBA#kUU? zv@T`Ey~v6@Ucwd#=8yjK! zvMs3i=2|IIfqyDkSZNsQV?H_^IFs$i`D{|=v)%9q-nIxqYoq*Ov=ja1gbwG&6<>rX zrTIWn-(rPXVFR8IV(29&!Y?qyu7=~U+=u>yrDzA&Q|uHJ8e;z=&b;cjULsP-xdI^V zb8dC0S~wu+Tr*;l$4lGcHhupSGqc{{SCF51K7pV4YXUzLH24{wk8D{rccqff%}akU zB2Ve@tF{!G{Ks)}&qYIiVefjQI9$`njl-7;WX^i(uV%16a(STn$b9#Fn5ZwfJ=}SM*`W!s2GbkKBRCmmZlYh)i?!P_7ct#P}7~|Px z;Xw_^f1Ad>+#WZ)vKR3EbyV74(|%7Zi0nVEZnhKf=LY(q8}BW zyQrWS+)l#T;Vd@v$?B(8pfB?z`f?cI+q@+7 zCHSjyA3oDw&ZYUzc3E_0;RZPC06;|q0my)Id9>rS4I@%u14GQSc6G~4Js+~fkK}(t z{D|mcGVkI>i z*;;MzC;e}gcmud^%D)6G9rU@Mgg-C1;hY8^bHB$JkgfWwD-zCJqEvh;J4*t=V%)Hn>)ec z&D2ZfTj6~!dw;OF*qt?cT9$I(H-K3HdeCI3 zniVY=xhCRopGD)rl?b?hr{`Qg2Kdr%xGoBM+M?UDVWofMkfh*r@>t3Df29;^Kmq%A zD}^oS{z}n!vU%RP;i$CGvzJ>Kz`+zLqdT_x^eAk#VguAn0n7OZ&H>BO)VNY>1I`a7 zvzSLmeE1xgQ9x>nZ?^@4gtD(_Mht1$6+h(i+;qPA9mJ5@bOF5UroRJ%ZPPXIE>(XA zi(7UN*e!#TSK|bRm|T+m6JHvCoo9lvmf;Hx`{0!{{T?>`cVsDl!t3QReAlF=a{+Yu z7T9nizbi~|a0C8fZ3Q-9tKkUcr%GIIyR_WX<{8Uf%K9r|{q+%s?~wpM|B*6jZ;EE} zsTtjxF?F6W+q#T|a)}kLPpGi#W?@q|$fS>E_@tyY^^xb_o}*iPa@1nKpEa>(g9z^; z8(lNh$?ZNd-jUXn-ANG18otg< z{X(wV?(*EIw&!~;Ll#G9fg37oU^iB;f)?qFjp%ZuVByMoy`)1{L)5?xQTet|LYJIpA?fnQIC=$LE?qhCm z3Ny+uW2FR-Jh7Vye)Ejt`FCo65fT5crkL-`Tj>}9-@B;+4j;B+;nc->fyVEi@#eAu zkKk)7m4=6$-9g@}T}xk!s0$i_h}@+j=G>-6{n)d1Jk^`Fiyp9Dr`|41Oyrr$K;xzz zq6Rzu4>u?e)D3G;YIpm0dn-(Z_1R>&>HQa2?__PuhQ{bQVDG|L#zl1ZTTS*wBZ024 zfq8`Y_Mp1QiRfbnNJgx}y7(QKz>#jcKI<;UQ&2w)5ohwvP)G_{xOzuNg}EE(!{TOp z9kvf9LkAxicmo?xzftI|x0v)-RnYT^%`5|c&Bpj!Q zcvL?x1Tn}~+u1Itw-~|dKvn%LRtB@z9H_A&3zXy~5JWJdC!EalHKs9 z1CcnQEOs{I%GCpB5&gl=#7bOmrD_|n>ZPXm&}=`<0|CAWEq6K0BM*P$I)kHW5W@Wg zj$Vlo`Q|0F=PD5cy!u)5hMM)$104GUU%S&0xhx!E?A=aV>UXE>Tgtev2wQ7Xyl9{Y z-?ShFxSv|e1pvzL2ByZT_%>LP`vX;E{?u{3EY(~#1Gm*)Sh)G_+|UMuPz(xB>U?g8 z5B?qBi+KH0Nm7tIP+5Kj5FQ)cepYXy;xD8p$ShN=_|K;&z&C}8KZ~CJ#-554|0(nY zk&efa=z%=}ReFWu2M09v1d_!|75_ni&gTX>gb3x2bHpH;I+PJx1y22TgK6`*m-AU3 zJ{0U>SVIp%L;T8{;$%!tK!rKNZvg70ZL^$2k_8Hixm46x2cP>n-rz@WjFXy&?C(%z zIR@NpKYhu-;2&`gQ(NQli-LWE4|pKakbPM|-2>h1_97ZY}HI7GobH@4>o3%qQ_Kg@uk zyg{Q`D1%wx=aS8HfVQMv8#M&8R%D|MKlcwS|FVv@H;jngV$BwV&k?)a58frT(BRdz z=WeG?&cPU57NIvtM!-=F9Qz$GAKV!C`_sq`%yfV8czMO_WUr(X4dK^sAz^MB2gNh6 zd<($K&B*A%aFc{=RJa4`JRgKq&B9Hs5P&iX0MBVZahdWE&tHDa&_T#V&w^<%WMKl+ z4QCxOu_j~;xC#2Zk8mUVndPF-$UbY2d~4`Kzgkj71K33zH2l?@3TSEz5M*}JMmDK1Zsh(7 zT<~WdvDKGH>P3O0J2Cu$&-X`wKO|zh}R1;=f0{Jx9Bmmzm0bPvyV+vftx)nOoWKQT%-c`#p^PPLRhGk*EY5irG%Q z-HKuvkCksg`kR$Z9^($fRRT*reNYMzY!I)yu`nght_a2VC^btltWo6B#(rLqf)W>c zOA;5zes@8ERq<`K8Y1rgYl#(J{DMKX?U;#6g@CfngA$i1Hk7zzS@Eo+#07XjH*C?f zcSYfbxsjD;`xGQD@Dsi~HBi4X@D*``SSi;<5|?x#aREUKN?btn5}cshi3-AO(?GMx zrH<`SRt#m|M6Y4HBitl&0rDU)!Ln)d^MZBy2qYmup>Jw5zXP9k>{hTO``EQd{xHh3eiC*EfxCmpA!S#pak0o75mV;eiNGo5^FC>o5v*EAy@KMBX zJ^4v;SQ#LJMwE~kplIJ-Nl_a`3HbhE0;oH#glKsranr9h%wQC^fZgCmx&+vr25?$Z z;a}68<}u%CM+jo=`wsn1yVO*d%8P5;Dc3#9>#j5Ep2q8fdzqd6U_3ItVHcv6{c%N} zGe1iOxxR?=ZDInpN)yyvjF(ha94QhDPa(ycK#N#z?|&53<&r-pKFjg815Gog2i~s% za|190e}qi){Xf8J@kIrl8^&K5*~nfxJU!T-v-4|!K2oYuT2l|cfxz_yS&+I{No%fP z#rE9oXiYuLzCaKcMTLAAZLP`dmKpWtM4M`$+=?+k8F=Yt34zl#hO@v4HVf>Y&Q$ka zRxN}0Y|a>oWSNorbiaC!!VWjK^Rt4>Sl z!N!tSuf}W@MeY%b?|KXyfg!kKDT?nY3#LJ>&bRP9)ZWWkg`D8@^t3QkD35_&6f-gS zCPURfK|ZVU80J#;&9RBb%43-E!$-e?6u{V`o`pg_BIzUb3Hj)gWK+VX1EwVeCIw}I z?O|}`&8f@ziZXz)^H?4OdvV409>Vhk!UG|$)@8ur_|FFW*6Gf)tpGKqcs&8YT)xJ_ zb18p`FjBIbW-D2O_+GPG^uSmnXl?Cv+l^c2sw)J7I2Scs{+&2oiVy5e!~JFd5u8j0 z?<>azybyHF)3ZEQb|C-=L7LWO!QQA04wP{u=>@O>wDF zYyX|<=9IMNnw#g&o!gq)&ftVW2Da8m2Ol}mG9?qHmXSk@aH@~lhHYna$WBdQtNO{{ zdM%Z<(YZgi7Xz=eLiJyDv(`Dlg8hK{sg-T8^8)XM(nEMO!)foZZE>E~@@6zHj2h6m zEsy9dOMkjIdvUkxR3eqmPb`;l3Rt-JP*zl0$TILE_0y$+>F)5ZV{CGO-!-05``KVT!xc#j#Q2*SnNCBnqwrr zWfSrkv~On=_?5vFc3ED=HU+GocBmh^I8SU%J<66MfY$E9)fp*)wwaEm{B(?Bm!E-1 zGd~mJ7B}U?5G~xHi|)0{K`pCDxua_9~;TzyXo5(N#~}zv<{;P>fVv7TFK0j18IS^mO;{^z;eL zNLRO{2U>D=&bls~8AI70GBr0m6paTqM?RMAm6P?aVcHi@UxqjUgn*M_z#xR0a7uv4 z{tm^Y(qmv{tFioG1!k4Il2Xlk#;P%=kx+UFM<;tEbmF+w6x#IaOmL9cIV*evgClTt z27kH&^Y;d>cJb%&_&h@lAe}>yMV_wOkSL_>V#7F1?a23xSvUjiy%;!y(C*9bog171 zhOpUzKI|4@)74D!>)?zGdJFG1xzVa*=TQo^!-u! z`;6&I)rWybHh%)rC*LASM@d!Y76F;%IU{7B#XaG;2~x;sssEaEM_Qls7&knfSVfErHAFMgi0t9sUTD&dOh3VVeO8S~kU%|d2L7q$g zNVDC!(9bkeKO?liO^HDecko0IG8hQt4x|fbRdnUKM;iUSDd>#v8F|O4YKILVbTb%E zA{f@A@rhfH9)RCYrf+|vZ|p@sdU4zJvfKJ1b{&op_I%veV|$+%&z*z! z4ZxcVi6kRVcxFJJh(ONsco^*YUjppjFoW_YjN8o7ObLhVIcXVJUCiL|n&CN%!Lyj) zIR^+u2G3c-)`i1!0m73j{I#~^n(_&ue|_jq2e{Y^pGn8`&g-ZRxtN@dpWniea7zs= zzP6MRpS=s@Dcn19k%!RLb^jPQ1W8ZZ|pj;=ParKJ*v-!81J2qCH5>_x@qhsdlf@ z)XmDTd<3zn8=M9`)ByFkuhaS&1v4l>#ss_Yu^n)9jEM4CE)uGRW@-iNpR3e^b0mo4RFNCAa9N6d=$eTgCb`rN9P^ zR2$D2dwPxWjKNSJF`modxx#ox>e4IZn@uU0+xRB^xf@Yy!d|Ya+hMEunc@i;&lH+K zkN1Xb$3?n+y9rR8#mGk``9nhd#3zIsvwerLG>=SROA}Xo5Nw9+{Z@=o08-ThIDrKq zq)Lal1i;}#q=Ep3VJZOAJbQ-G5X!oyOaQN(uIq$mBf)R~%??9xd2RZO+l8^tLCt0x0Gd@K7@bi2YazvU zYa0w%!9jA~P)j=dN|Sttm6`0{t@vR7v~ee#5~Jym$9dqmnJo&qA0B%Xr%Yhb*m_8pz^$hZQ;33lLygeU*l zG-QfEuHj0OCRpTS&%=cB9=2gi-LqlV>nspog3|l}RvNX9JE*+%w(cVEZwcJj$H(F| zFkpr&hmlVDb#_s1$qQ)ad@AgMr~i{-%+Vn+MItiZle>f!&uhj4ev_2tLG z8b$E|Yq#)p5lR~Ly*%9LJ^0t|nXnO$DkRHPkGnh**=x4ny`KV`=R5~_bgwX_Y5Asw)J=%g-d63 zu2YNooESSk4BXxEn_lRnXlq?-Y`1pT;I>xCcAE1QOMK69i1rFD`wMGrmdFP( zJ&e~$zb@##Bl$#dp2o>dAnE!NNmq2(MDTHXuMd43emE&T4Ci?=q$Z=>Z7s^OKfx~lp^?o#SRQA?KWD=~=b$0-9~Ivq zbmk`c+PNsK`w}-A+zFKbkzBpKqoI}+s5gnYlc_jQcY!M)kHpn#hu!0bDZUHR`-S+UmEJzP#9$57wf)}=${Ks z{2;N?S+Eh+_7mv_T{Jn^Z>qC-4rBfTCn{C_E@!_h3Q|HU=shZ?WADqhMj^TfxF5hh zg!yEV9Spap8u3`__9o6idZKFbHx8vWk+PsJE4&hkbW6X4vJn~2v=m*aIJy2fA^a6!`S zi0iTFpv(YeXd}krRhzNuPYk4%)I9)U3WM;^@HlEO&Y@jgldY-y*$a}DgPje^%FmG_ zU?*BSfc-t(jj$*jjW1arjg!K~j$sF%*ub8fs(bJ`n9l&bb$bsE0{+tKs@+z5Pm zu{bR!tYuXru4Q3>ELA4cT8@C=I%nA>nnMV!&9D_yv^y@eZVI#qwxjAvmLCE*PfAN- zXZ@S+=bhGMF*Be()CGqXamlt=Q7zu!846#jrB+`YgDNCf;1NCG&@4UR5J|z(uV6>Q zy0fe%pH08Tb87kKaj?lHUh3ec9T#o zPHmoB`|B1k0q{EX7)-Z1Ku^E2DjKipPZ#(+qW;^|##8`erj?9Y*+$jAO2J*aS&p+7 zUT3oe?{qWdH<%S`DnQRQ)ERL!sJ+H&1@3gSE=BG$Sw1R@{>H}jcx;(@Cnk%>)^4`% zOsId1__R|Xf|t5C%fnDemIvgmnPf>TT9WY>kJQFxiwXCa!OsQ`(rMEkr9N&`s%8y@ zNw9uvpo5RqeS_66{uXFwtPe8WgSjs#Vbfm?2fx1&-hm2pHRVw{zBDAtj17S zI@0aiSu#Q!UXGC?vdJ6X$)jUt1!BIPWRqL%vIqj#zPMStNH4E5qtw2UQ|k$O0l-!x zXBDCsFgX;NXR!&t(|j*Wf`5?KH---JF}2!Uw$KNO>(>@g?6m$!u@G;V3Y5o%L6*rL@n=$qyW&_Q;C$cHs_BL#(UY4bKlMR;h$$E6Gk;77!X$j!x5 zHyPQC4AzGf|JvxPcjV8&f9lUCMO60OlB%)e7g;IG8`8PBAd3)0s1naox?58=gHgG9 z+{)POm7D3ZIqN7P8k2kt1k}I;?DPy)W7b;Gjd@Oyt|DW;Ye96!`>DWwdb+h|>!Uz) z1rC9gcX(TebiY#jMQ)Hey40wRs(NNF8Bh*!B^;g$@vqBszSNx>wblY%;fP=Mg;8?^HB@*MPzG&y%a<;%VoR+Y>Yf42iP($SP}&Z1h=$&(%33W;laS`+5_hU z(dSZD0DZ=e#V%H0ZsmH67RKwW|5l>^S@GZs7@Q7sWgWnr8TgRWc7|Vy#pCNCs#2s@ zhi~-P_w-;C;d&5&dY@en*gW#2cnLyY?*r?Bw2cI5yzEnN_yiQK;=hy4*LoBn{Epur zB44gRV~OzwV6&iDE508q)eY?GQU8qJ0ZRsd(ae!A2zb>HA z0;$k7dLgTEFPY;%8Ss1+HN*3e439&=(_Mn6PU`BLk=T{nz?~ePe@cb6>xFF6J!!<7 zu(R9R)|&d}$Y#u^VQVRJJK@&G6ooxov)#La`9>UXZvgr*XJ?SK?{+HV{y5v+G79Qb zl#onW|0DDdeVTQEMvv^Qf5?=+_cwpfV|Q(+*gagovCy&6uGx;kMOktVBtC?X_RFb_ zR6+K=b6yNmnhXc0zb$!3n$^8W8Zds@Z>S*mHOSP~oQE@%30`?uUKMy7>>WZg9dJpb zRxUK(Js@~*D_#%}wDHRmyP@ESfg<;Sieh%V9-3Q!z`=eE2pm#BJ+4}m4>I8$CH6(@MX*l-)y??Ld(CzvWJtwPjN5rOJ&bBH^Dni%SK{AsergpbuYq~ z)bMR_L%)hsE%9G6{rM+pQ~Gie>CY>U*pkqnSIuDf9xAVuDo@HG$&W)KN()$Z*3{{N zrrP|R<~i$r!(M*(cjdK{=3+=MNg9-Xod|;Y-P}r$Rs%_zLCWS(`n0kOES_PZ0*AWU znn;rVtsM|>2D>uCukvdTz}PB*_QD9#twvF2F}Je3)ZG*0Frb(Ac1OWMB#0QbLDui% ze%mj#bK?lq736~o>MRsS0G89H!VYXd;z{EnQrUhN!R`3`lf8?sUq{7W#EdT)OrTmq zjfHm!^xVC#(er`f*z*kNc^vA!uxGGm2s9XK`P47@-ixhclhSd-a{{}US_mkG17+CX z81R7nII`Bz_p`Y=Y}W5E`csFH>s81;U0joH3EI5jaH~2M-@EK-(FCNuK!~R-UxtUp zuJ|6sAC671lHT!@79~^xM+9h%F#!G+CnH2bHXHtuZ48pRc#0RE%P2UA4R#m%3*oIH z#)+qvn2!^<{lZ}!pApZw!?g+ME6>9ue`2$^2}BZ#PlZ|yo6w$QkuGo8gz}D?jc1f+ zTxC3?{9}?KpD0BZ8zP8P+%tB&cyD32%QFh}|5l5q7wG>9 z&YDx8O&iAR_iyuN)(n8>Lr2jc5NTo~Umx;F;rI1t9Iwnz6r)9kosoKOM(TN$8pv}H z{=3MpL~uy*ogwgfx!xYqbBW9C9W9nRUs~$R&n79|)H^N!Io(ha#c@sV$fJT@NvHj! z$E!5UKd2JdCCAaVQc`e#-O*WJ49a?U(COdlJt3HH2Lo-e%nlWz9$Ux2yPmhfT)&kBKz+yH`dGJNA6mDou^f;hEJ5mHr8K?;*%;gwxf0!; z5DIyvLPb=FEDkyTxnBC7ZEmE}bl$wqoG;4!cDMgVPS&m1@6m9R$O z^6}M`+{_x{7Cza#+258?%}4~v@jE-gGm9cYUBzL6-k}-Mb;u5pml!~n?Z8)uU2zQm zku6BhutG0fHG`qGHgup<0&pP1hmZ455P4nOjGq=ijKLmdewKe<&8vbeGQ3X6zi~5$ z|8ZR2?{>Bz>3qLCiOKd}#fS4pWFox-%GSeZEG1_J^_b&A!;9So4r)2rVaWkrbn$ys zl(4EDcL>-g*iGl5tNzFEmFY?SpQ6;_s=$^$(hLe_o8J9k>i%D-_E`LWM3ejIe4h33 z0mju{pm0-JY`IV!xLN&lX<4kNvSK>!r=4;4gVk(1>+@UVqTULrx2+@|l;y|f^Um1` zC+;ig0TN@LOxDWTVsZqFrhI3QrK}n2k~D-)2;%*y9QPl}X>vO7h(8ray;>SP>58tum4~OV8Rgp zwvyMk8}*;>RG)o!7~g}*zFUp&w)ZRvUok-~~vM|MM%b&Cs@f3wJ^m(sQT}IMKLoHVox_5rp(2dNxa6 zuG#Kf?{(rTcS*IDLvHLAR9&-+@yG!olm|8Rhaq-_N~&mB%k!VX2-hP5t!V0{ogU{9 zG5nTgq8~9nogTi)gb$>g~s*n|}F6`8E~Ap&0x=o?U)cs-jA$Wtyvx*x&e zpwXkz!-qqVAD9bbE;caq+{S{XJRi!_XpMc2{vH%OrQ}MmDe70_xFx1;fMA{qP zA!VtR9)iJ-kmKX#BR#6kF}|=re0ZJWT~j_C2|?s4{>KRlTnVK?4#fNZs6LhvH6Y>CUiwzg!z9xOBWOGi7+)d%(~phkN7w7Y zpIEOmPy6xpIL3{IHSL^k!gTHpYDx~##MOv>LPQ~@QoYqUg zsl(02GKj`9sM9w#7Tap`dL4@C^KUH5v2XO3LjG$kji8sz_s?tq86Dd>V%s5syw;^7 zHUUe0`{2ex_dxJt$z%+2``|!*PV2CGZg_*x+ufb)ZwgnjkrlZ!Yn+7ZN0OkmFI(Bn zn%?v-{~L;oFXz8tNChOyni~g3e1dd?Rhs3cfd7a5rWuVQETfEJd_Fi951xo(NvBRY z*#t?Q5I@Ag_eBif-?l0|qnWId*t!kSt&&hqZeK@P6V( z1%tnc>KBnt|C#ZB*Y-z;_S+Kdk4}(Ae0WfD`y)wy<=A&V%~Y0DZ^IxwZD$F}Lx`hZ z-H+m^Q;7B=?~J4#7YXMh)brx$p+BaTUD-SbdcNAKR9&1JIHlqeyP9kD^f3f0BA+3< z87yG_Gj~ZA|LyWz!++i29i&u^w=;f7-Ri1fKd3hUYV&*=5xKaRL=K;q2w z*dLYV1M%xL))}Uk36{EVgwV-g;x?WX;vtWFigwbfsK}>FIdn(KB#}e=e1MS7l0R>r zJ8($*EneQ9Uh0-<2EJ?~hfyM&M(v*oB$GB%7*>Eh0Ldl_McqZ{Y0NJGh837}j^yEw zMdLhC4H{NF__)ci!o%S0!m#430kJr@F%dJReeo$w5kjrQBIqkKG_XJnB9ke_Z)N*9 zvWJbD@>9Y|3#-JoTzOUCgBjBUZvoAn2ejVveRg`|u8{u9(2yce3!7CBF! z35;6Xe;=ET_S8U==iC4fwX|WBq3JjPUUcMztW0haed+ebg2T#oYnI3KMF9@$i$o4f zsQ~wJu;>HNsp7Jjy=@TZMbXl1;T>f$m9nEME5Kg544fe`E>3Kj;?Lv^osD1im;aV^ z2g%ur10W)rCKAs1w<-QGiE5?=^<%N`26l~jSlMojmEEqdS6R&J`NJL8r#E zy;*-muRsV5g*Fttk$XBdg7R0$`IfUS@|8UNE2N^~BE4Be6P&ZzE$yoz8K{IS4m!~0 zGG`kKl`APeT^?-o5SafKqSan5X&y&tV~@usse(-$KJ z@K_T9%Miuej&{+$sFYaYg`?*7MgFYW?s+ic?~M^-=;%`Se6+9}dNRn0?G#^k;aO;1 z3Bim=w6FNyv!G5u@nPN@IYu!i1%4kt+ctuwp?9wuk9$rLfrQ_q}Fu`#0iG_=C z0DJWTkbiTKjljDA1Nj;8ol#$KiLNi$i1v>c7|)=?kn&-QVZC}S3`_A12lN&(+@?U_ zejS^NbqdZ~Kj>?u8*8y+t!=y(4d4Qe+K|6QF`f$GIN|00H7A&y=Nk%Q2>G+3pYUgf zu>I>mDMlfw7h2YVsw@0rXZ)H%-x>b9%CI2=GRfjOt9*0$l}T;LzTSft6B50I0)X?4 zV{$ZISd)D~s){b{q0Ih0N)oF1rF5hPvq5v#A9;I5q)#Ebrgvbl?BJvO51~D31!Zo6n7W%Zd7y(eS1-gU=QKZto{%$ z&#AhF1P{u!cQ?Kt1%bO)f`OV+RW~bSe;uw$+1{$o*zVe6eRaD5TyeG0j@m!NA9<`L z(H}UMi~{>8wFUMB0lY(3%n16j=E6?(+mGw@Q-89)Sw93uu33s7@E@oXAqU32;&;BM zFaEWArW$G@1fTa?M*V&P?m47~8LU(_=cNStD9cykBAlq)_g9OqB3gyQ%4)fZvDC!V zQWLr=2j>@u%L_ZXEyA5BS_cEj!2!y<2L=IoNFoUyB($7=aAT( zK)a#|-<=W{X50z;*KzxG{Ph|hrgBlAd0gUml(m84RslUz;Byz0dF zZC(4?o7T_p?}HwSlJsy2^>7Q)E-40w+V_3rP_GX5%fE+FpC$c5ll#=dPxXtVfoXk$ z{p#57VbNi4mDl@N`TDReP%JzOj^1k z@cg^<=S@lf93&HZ$EMEk0BY1e=#7G?0^zbP%8imbc!iZAa{=!FlS_3ElRhR9U-I=U zB>?`C1ON}(Qf6yc01$D{4Dce6%TASmIER%HK#K1-OW%6~kl-$q@9oVd`6Pze(Y6Ex z3r;-%(m*Z0$R1j$fK3FL8HO)0>0^xh5Z56IyrpQHnWe4ng_Cxv$XOuDE|uU}(#wEX ze1AmxeqArz45t8`uxUMgWjHb3^-cg3O*d8@!}!I4_i&HB%}=T)$sX%Y&E6T%cs97I z=0J;24B2w3rsDGkOBRl+HoSrzqPfuRkkS4v~pOnma$lS4SH#G;v^~+)WaPJf&(mj4bcT zg?T{RH(4OiUp4$AMkPAO&!(Du!bIFhhfvaWR8bG z;9DaPv2BHMkcMprrjhDzh5CCV8+88_mubC4{^?RQ$ac(4dSVN;p(l{b=~$}~5@K$W z4S1{vo?5v4UL$H@IC@{%6klKTe}XuqB6HDu;4GOsc0 zCyU&f+WkF@%`VD}G|FfT*mq0`eIU@TjU+vMu~Ow51nZl||DM~(T#t{+W{#lz1XH{zMO#dhzX4F9LmR>$7kayMp#p3vuT1el`h>hX&&>fX&*^dG zxfK6veD9z^YYk>5gBfr(O~eqh3=6&&B?F}2AnAw$s8~KI#Xx?dXH7bw&D~=0NFUsk zD0*Vear4NLLDTrtW|{Zt!`(>qA_W8aQD9jank?TQjm8ngbMxZ#hFLl652O1&h~y1 zaQq&W)ZhTr9{S^0j;i?I1)#mKiRdK&SN*4C3t&u;^$=#&45dF{-3f6|zz4sLZFuy2 zxh@q+>Y3o#0%ScTy)(-rMZ$Q(%ieTE$EYCN1Zxv6Mn)yiz+uujP}GL5pA&S!^B%HK zdL($QL!Qe-oc6k%;k4J;DkYq!+RkgkuBwsRgLXPocpvc#yf(=?{oc+maF@taI|kMV z-q<~}mX1^7Y+Yc}sByL~-kHE@ogC9nFDbFN>nBnskr@L&6`0b=bgvPwF%CBK% zv|HT>_Nd-$u_|2~?_Hy-*+kF{E(`2jC%ah&v*eD4qq3hJK>C z|5#6LK9tn*?2Arf9YXVQ_u7@Sz*tJ$M`nK%Y4~uqH=;T1QA2(eT;hR z&y9E8{}Pm}B9 zJNOGLQBOPZ6n`fdTf;_y90=dA8?0!GpJAaLV2Zab2qIB;gE0e|kJStQ4b5Wg3$1l! zr73+Z-tkIR*#t)aH5T-?s7;PW$dFaglTqJ2D+=rZt)d`BXa2a)Rj+MP-6KQDU-bTt zO8uo<1^?Gff40f|A7`I$N`hH;Tj=D1#f|PWEf*d-+q|y-uz=%qhFl~+p~wmg#4zb5 z7r7y!$cyBL0)XKxFU8WK|P1!Q9%mV z66$Ft{O`G&kgKO3-U|P)=w1fM1t?W3;NnEdU}&;6a8Rk*raegH>mH@*VfffI2`^r` z>xHHPXCjUBhd8SKGb2wM@pdNR9lKs&UbzX0z}7~_VI#N#9}+M4;5Q=v%_O{HU$IB( zi5|M%AvckT*S|U*jfWkQd`{qZKEdJS6O2sS%g4e0&+~h_Sp~4+BvZYDl@zyt_`cGZ z5AEjTVktc1M_=pk^b}J1-oU)Y89yAiVqgTeBnkKsgCl^GAjW79hrVXy`2>gD(a{7V zI(94?kNm?t-aJ8T%uLFV7PB$W)at=ujL{UsY+#JtjV;&Mo|l3uFT-YBax;@KT@}Zo zI=xq!}h1b{$i&R@@Wv2*PV!x%nm`F5}g2joSg*4 z*^i-GwkOYwte06M;f%dU4LHU31_{nO_MOg3*;0seeI|sI+T92_{gevuM_G02J;D^` z4?Q7lz@(l^Rq7wu%Zf>i3PsaLa3N=KfW#cFA7xXR!FMwN@Vgz&F)k_v6`;_9BTTn` z*aJTAF~BOd9o{%eiC0YOZDbN9&G?Q6I5v3({tO(<*@kne?Zh-g zc?tK^5gcDUd@46{2$k9V;1G+nx1iN3w=I0f84I|-(~g;k+a5QNo;F9n92 zQ0M-nN3a;o9JF&fXiLt3Fub+$F}y#?F|>4$6@>gf?OOdi2G!dW6Gu_;Jqf$;dWR=n z9LJ?G;vzExn z&P@VnD?SjFB1-WIycE5#F_S3YAHTvr;|f{-8Jy&hmosrc_F_PUFPHYCJmvB(+}|#C z;cOHAMDHfY&HR~uKm4=n`yt52p@rIMgH}n`**}wP&70bd8$x_9HYQe^0N>}EzuzK# zAKI>8<{X8l=zN~Xwe(C->lT6+6()^Cl94UPKPi3GscPJ{=;XM2<5t!pXRuD@G{Am- z^%GZt`8>#&fmOeqs(;F=FRYKekN5;dOX{(>CsUyAdoPN{M{9}?GHLj~Qv5YZrs6qi zDAybzulH8E(kQ^ssPFmxz8(nv$P@bd=j@K$zaE+Dd+9rJfkr;y;7o_yQH9YF-TyzZ z{qdg655%pWG01Fzf!caN!{JLM`aq1zb0LiiL}%d^ga1InC7c;I#{+WQuJV1d#K05_ zeu(~r{wPVMJXWc*{;1oAU#UMz(!+<}M|J&Cw!_dL?Od;lok0{)m?wC3SG;;pl%s zf0P6Op+D*iK*;(dUUsSk#Mj>$6p#3Rv-JHf_Wi%AKS~0x&>zkDE^5{v@v=)LcrKLS z72h9`z7P5?`XB3$lI*djL(%_8fAsMB1pN{3;}r??|2q`@75by3^O>uiga9Y#k9gTe zdHuhQ{ulK}yn|1q4np5Xe@cI}`ajekt^P&&qogOcQ2Xp)w6p#w$p+kbF#6xuAMt)N zml}5y=#MTxXl!;-W~5O@%Q+bRkM&0aCm79g{n4&(qW^RK5%2t{F~8XL)vW6-^he3? z|2NUj`lHS(hty#F>*&wbAMqA$S}M07>yKXfI{M4?M@g>RTfdI}TKy4kZJ8NHu0J}F zwfjHNA0-*Vb6-V&t^SC&_P8_xv;Jr*cqF#VWviEVQVnH6Ax$pycIQGV*wTMhe{`lp z(jW1jHR*s>ei{7<{SmK}R%YI(SA7}%Z|aYdtl9Sw1Gk9pGM;-c68(R#KT-|-kugC( zsy`YOiT*#1&(j~R9FatS#2dXiVYKtKsH{KYrS3{7HC~JU zJpEDY@c*g)D9IiC>=)5a`XgR!O_^DLRQg5qr}am??gnE9v_e)dx&CPNFVP?Ecrls& zNDv}Yf4e@9{tW$563qJ7&!b)Fk9gss<>qz0g;fyxBVHswp~$4qqq_cx7r7y!h#QOi zV*ODP^aJ{%_dko8^+!oi&%ZwV)%qj2IJ?vz!ADtt#JgT-8ZhaPhJW_+^hatZ0$V%0 z|Ci~Hy1?se_y2_cDER~u5o?bT>a6Pk(GlJMdw!+5q;*%lFAs2Byf_lSF@HqE8PcsnxNY=+mcV`jo3lMEMh*GMxgoF8=U8$P*WyQo4Atn)ZCmVIO-|g<4dT8iVLP?X5-%Qqz?N2hi z%-zZKW1m0y>-1x-NqVUH(9nA=d7&Qz&*Y|jazOl*`mwU-I)i({he`EgX{aCTkwicCk5!5KG12S|(xScEnp{8D zNuTmi5||dXCex=t3Zf+X6i9WGpih~!+N@6zeFP)`Pi*~J`V@hWO9>xmc7_%iqSsqc znRbIfJfhrVQje=z5_JPEfkSPc2}?!^wE+C#Y60%zZ9!?;E{o16WypyjbGHvA@ z2U|dQP>s5SmO#UicN3dVd)jFF@ehzA%MD~0bB`zuH6ECHiXKrJ@Eb!JAR4QdkP0B! zBGzEI`nc@xE1l2(OR`*$_OO)Ec6~p-Ce6{}#4S zr`2;}>(@DTkmpjmuLHojOauYc2v%Vv{}%r2m>eHG@}}9ILAMW?k_5cjZnrk^9o!E3 z^*bfWmO1U6M0w;5#`QaK$@yZtd?am`25GyzW^5Oy6dw@w%kzA{?8ViYX%M@R(4SuMKAF_2D(T7p!AKq=@dYJVXN&ZH$XXp{q+OaD_@wI?;!t&d&$yCMX zhsR|F_}ESH{RVr;SNt8vMGv~#fG2FymYpnO1xHGyc)lbbozlgA486_vV~MmM%Q}|R zR4dDJu=hH}|Cm*dYfPPr{ULfU)O)80#&W0cCt$FQw~+|RHkS$~lsfd5gy;1B*tMeg zzdt5sL06W9?;1! zSap}wUSjz@$2)I{OFES|+Ir!5XLuj!R9?@g6+V6pHc-9d|KzBsXnefhXiT4w9mh=Z z@Pz%%Y@5k`am8fy_W*{D-{AaM=EkZ*PVgPgaj}lQ+dA;s<-TOrAfg z86wg~tPG_s+!1M&^KS_JdrcSkxA6@UL)~XFWG~kw8RipjB;w#wr>@K!^F zF1{}}W)DT^&0CG-DzxeQ`1~bj^4)hQ7jiD;yK)hyAM#D~gQo~~{C?I$&vZ^9K#!aF zgZ*#P4!L$K$->f-(9Gl5x5(8^k^uE0GCsMlNzxZ!(~cxf+kT|!&zlVKvG~4Ts@vFP z%vM?#v$eWOC>%oerKq9rZ&CbtTzTU+K}EdY7fW?Pc&&B_BIL4 z0~jy-9P!gqwJ%#!`2>jH5;E>}O=sFkAazi++s(qFge1ri7=rx5wig zbM^*l|5P<@^JMtro-@q2QplI`bklxz1y4PI?5LhnoV~i>fZ5(ZPfte9J`Q9bxyp1w z5_Af5?3oPM@U3yqUnS_57A8fO#P5CEkj(yIVUp!a(w zKR7$A+aD}UaztRf7c`jd570j8UA8Bn(wRx5&1nrpqn%1xS6ziK%F2kYZL>j#iSKtw zBi+cplXSOiNdZG|kj+q6;lE@76@HUY;op|7HaP+l(?Nxg%8(4M!f)dG`#`q4lL|j` z9O+H@cP($cNrewEaTWeb11ysY|CG%_g+KA+c*Vq%1PVh!I*;w&fT6;lTPgJOh5SCI z^Y*b}Pa{o)jDKFO7xMpCO!476*^6D6O#WX_EAp{Lw->umS`67B{?ZrghEz&}z z*C*PG_2>3tO<*r}64{IOvosc@Ti9jPmA%;G6$$oYf`}J=+MhN0e6mi=$(srKh7Ae$ zE1M@6cH|{JpU4X_99E=Fts@$9r9>*{B{`u(>x>gBzK@kaORY2XzvBCJ>HBA!67|35 z8N!oMONMcRX8|X8?%@QFmlHfD{{YVvpm#n~<4(mFLP-XYs^xJ^D&)Hx-#lo;H;_ii z*Pni~C0!Q;^J?E$ta#+_Mm{t_?o7iRIo?Wa8ALY=M~YUFCSLxH)oAr8tKKT07{v!> z^B6}Nw6i`tg7FSo#@b09lCw>XGny`(CCkIH@X1*Cuqa%DKOF1ISV2z#hG#Y8=cF$d zb9}oo$9TWrQ_GO`-z9z~m8%Is(553z(=m&hNpfnsTr=$mzDso0_0ucL7m1tg~Dd!fc|96 zy)jaKr{~0lSF>h3J!$(X{tu4E1@rD)ngJ(dIC4;fS*`Ve*}|tB=OrATbbiEoa=D~G z%KBRm2@J!B0hn*B44#EAg_j-W@#l5<3atNzE@UenhEGZvJ~_6Y2)@@P^tmAkK6!7w zA+Okw1fTqSy@78wB*7;SvhTq^%krD?a64rpK{%cW!u$7=ESXWvnT#mB%Zd3evd#Kh z)=5zSpda5!cJp#frw_MwAy4j|ggg}fhKFhhwSs+WNL9cbaS)m#K58+D;oeE~yz6R= z^CrHpmB#*P4fwqIcZ=`JgLO@24Q!wZjmdAX!Gp;y5jUfIgr~OiMJXBcb$-Mm0~ zL%BeIOQ5M%8gaYUd_?F2oqB#D81Er+Bt7*9eY|Z_d~Ti}*s|4t;EZ)dG=WZ5m}3lC zisl$s1pC#U{?43GN#D@q-nH-(%`tih`z<`<9d3>R7DZ@|0ZtCW90L-HHRe04UFH(* zobTAZ)gWkEZ?#0Pi&toH833-n3zr+HN}&+&ojmhCrE8b)3UJ`CiPfp z{;Kt1pH^MPMu|p#v)B(t*9`x0yXuRV36B5l-KVKpnf5`c2lE9xWf!9{`6Yy_f1y&vD1b@e`g#Ya1@Sol# z{KVe_Z_i0c`!oYONNIeITvrxyFhF~*CBg;==!vlQKf9(g?tt`dBJH`ko^R%N@G)H z$b8CJ36l9he%hbNx5y*3>b4iRty8CWSQ#3|;hfDHQDQ2Bf z{BYlt@2mdJ??xzoO#Q-m(=mZ=t=-smbOuinnCR5)2KK`Ervwizf+_!1G40xOiDYNb zw$NQ^%F6oRZL_lfLNf_W2DgBS#8KKicO^i|H&66#g48z$NLmg~%65HfP$abFU!+sy zGC+O5uPbB!@Sg8V>$>yeE;=uz&b=!jZO)jvkYpp!{4wjOWt0!j#h~!Jrg#dl-d4*x z@GkOHgwF$=!E)G>i#h+k4m>s)B;l`levR+gbL49sUZv_12V278a6NsO?Fa4o+l~9@ z-Iv7$7D`_jN}pDCS8oeL2%D88CWDI>lb1gj4MIEfjkVN*FAJvlV_{#V=bv~?>hJ$v z#)F8HUnkX{@^X|CzS|&!&r(bjjrb$8n(}uEI(0Y4@Q(secdtAV4|G;B& zzlGAP%vL)bwczCIeRpmpW<)!reGfbwPf6G&^}gdJV`OBH*Z~ZuCyUNiEl}^C^^tq^ z`K`s&F3%ay$WJ|LJcB4O5|Hw}SZhHPsQB&xM&d&DPb~;H!v9BN<65NrXXt3778pXb zqchPTIGyd%5rU*R&X-{7Kw<9czf;{jKvR(C zQ>}NhpMiFOd7w56twKu{09$;gQnegxAw&0V!>xR|6~h~_A2#tL1=41+2V}nA(C5S2 z9I}^L>q65M#`{j*T;FbIr!Q+a$e!6vg0k>WU!;f!D3Hde2Y9oE?rX)qmcyS&&_u62 zBF)uPtU7X{JY6>tZrWp%;G*aU6+q7SUiO2!6*2b=u%T)!aM<*0(Ax;t^khG`@{4Qz z8)lO3!WWJ0$n~3r!V)X8f#>IhR;{GPi>%T4Avfm{?0Y1jzh2AZySPYJM*7;&#CYPFIiHJaZYCJD~8N;a^`}343t`tw$)cjPnb2%bUg$><$$ujQ5<}Qr}_6{dxOZ zobfD*F+n_lQgx?;%M-mp1HW@n3i^As;&>?4bX-tNcCsc(dL##(VsQUo_s2 zkN#K3TlT{LY`l!g!}Il~e7;;-?-zdZe06kCQkADo$g*mAGyZwvZFs%6EYPS_HK_Z# z)g&%*rkDP zz#hFjoOrl@np@YVJWm&|VcEf%MKNE?_Y$NZ3rNG4%l;MzA;S&yHq>%B9!~|V9k4}0 zW_uUIC}%;ulK~WJ@TB%Q^y=OvYMm|64RN+1uQ2+vT8^{+*y#?~D6@=_|J`K~wmMdz zp|{4vL*quglXT9ryWnn}#ph*j!n~aK4^F^4NMh@`88GCnIXk%`25I-9;zrHiVH|?! zbJ2JW(eCMiW`;?C&4ohUb{H$S3ko3%b5LtJf@O1dVrivnCJ@Bl2U#^6R69+o_Bd37 zUy&wL{--)d%ZUCLKNsa0pTM4gzVDX4Uv2)Lr`9<_#qQxibf6^I4%EM08-E8n0h|Nb z(BY$9$$H1k|FU+48k z#~-J9@cz%v(#NHxvoY~JRN1mVGPL|4{QD53CP!H-C|9g}CPMcBZI}*fBp~f?7}6L#Nv;3^2jp zE{BB;J>(PtWB?{%{*4(G4f;2<{3yb2w-W-=@8Jlv;Gl}w?2j(Y}=jigO`BLQ-&(IkLK!totosaSlZ zGWnf3>mZWWcYp6v+NAqG1sX6NUPiEtX!B`h7g#*QLIn%?iJI zl<*6Hv0MV}%fDk0+$ysg=2kNPswdz`$Vcbxj#}zSkdn;l`PuaRVT^3@E`b)GmRkJF z-_d+;21JS)hnj34K(zwEk`2heBjl+^`Cj7-*?KFxa=#s~BmIjm%@T zKB!8MtTpIo276*Y=+5vpN$|y118E#Ur&#lBO9qdmRdNDsH=D+N4 zY=mtB{EymbRgYU2Z40iz?Nk9LG0@YkrJqAyln1!&ppTn%Li2|u{XNMV1V4n?COyw% z#yj2q2~%8p9ts0{U5WWBCH{v3uq@QeWBi!#T;myUWrP1o%$LZJkkfmM8gqF@L9#ll z#nVfTIX#rZnvLJT&6Az8GyM8de*dy(C+3F_|LZ8^d-ZSgW+KHNUX9OaLm7VPsOS&V z#)p^d&q?zs>Kl%yjr5Kdt7sW!tYZ0UWXC*H@3;W&&!H6c5%{@T*M;3j#r&r0x!b$W zw|Ej&`lf>}@q-wwkG=S)LnkB+|G-A@*m3%IdQS-E+ZirIV^zqxDr02(sWuDb4rJhG zo^{e$*V%u!U4!%}Ej8~>o#Q-mpuS^peXQHC53SqPSPn?vmJEgJ#nSjzq2r(%?TmH) z1PYCk3YAhJ6etUPG+6pR+uR7s$L(x>)A{^5iLdfr6;k0M(=y|fb+v3g+-R1PvmjQW zFkw`;*jXDjr&`FK5)~{Z2YAuN?@>`YrFMh}{D_4O3e4>p`jb5K;(lygDy2c*-xl2 z9PkKJ_bMQDEwp?IITW+-J~Gm$>-?hL77k!HMP6CN+JONumZJ~FcU*v(c(E1Mun5@L z#^{&ZZ?b{hb5KjKKTdgP4h3#3)&n=Tq*k)GiQya7x{Cug-W=s*gnJ$3FC%bg=Oe80lH#n_QHfuJD zb5CVFOM{-xdS7BT>k=^I%Oy#G;jdORgjVxLgl6%Y$fvMd`D!w>(2}~6jXttP+}EA) z1HpGOpZ?hdUzSq!XPo|>C1Zg_s5_9VergRk1+%Z?OR<~we~4U zbJMdqWaI`QjiooSDQwYZ9u`|{AfFmYF9|>`xE*GU>sRTA&?K31-1v?2{c4PZ7r<2 z*dxj02P4>o6!I0BtoYXg@&sWlsuka6(*cH)d`bcz!Qr6MgF;FB$6t}2nhRPKHn416 z_f<-3b4w;lzR%I$gA+G=V;ktwOkB5owr+!AsJD@TsW-gCn^)`ky{=;t_#hweYwgfs z{R{geh?1n^b4dt-Vc5qB3S8_jrCqo8FK7@sA2wJ{yc4`^EKdx;u?$K!mSqFJGNK0L#9IDgJqVUzF9ct4Jf|67A&Bjdjps+#EA`ADU$5AsKfYcyr*yquPn=?2 zui6f2y#^va`>w0?8vosYW4(r)X{^_XM}KO)zV6@kdhP6QUavzjX}wN?H)Qu67P<#oD!`Meg*|~%S=T7T=-6mFDV7gs zu#p$JGi#i57o^kZ`m&YJq_B+#wU@r7)Z1<(c7%Kjy$7|G;48%GH0g%p{@;b}k!^*f zK?f8G!mCX{thl^Ok!56!PyZH;I}~bOpT9PP?sNr4x^YL&L)Zcho^);(t(`=@Lnu37 z$qJtx#FCLe;2Mic+mwpg^%@Q7XHDf{2Q^ zp&}*}v_fkdXpF&%yW;j-9?#{eptTglQlJH%3)HO@P(aihqf$U1Ep7A7IcMhHxyfxo z-}`^R?|Z*z$(=c~otZgv=FC~Tb9@xlD8(x+lAPUQ)X%AovtvcwgI|;XI4~Q>@6G%> zi+_K}zmxg*>-b$TAU5xLrSz1r~AjcAO~tX1%LdXY-)%z}g6os_XB_(NqC{oM>2YiD*tW zKZHF#zR~%}N^Jtel$}e#O4N_W z^|d@QzJ0}LeGfnTgo%7p%3t`zNy#^Fx;|3AnQN49rajS`d~>u>zG;8r|4zP{KP_6m zxpMmdk$f{(mv5#&{@=?t3%ax_-+cW#bNS|H(@sjhS$fL0G%CR_ac4PHnM#FV3Op&Ft}YiU(Dr`6;dazD?$Fu5Nm_P zSQ|DjCC8LXE$>{qfk@ioK@>ETlyCnD(x2Hh)Dd~p?@7eyZz- zpu9D3*?%iPy(Lq-dla|Yfn~i^=}&wTjWOP>1PLVWaTH~`u9B-m z!Pl$2y3?sTl07QL5S)R;jdozgcCvqKFa7GC9XHkW~{7Kc@p70j2fw(SMjn%7O%oMwKDR3Fjd?Odg{W>36lIWndFy3zF7fA zBo`acOJ~D;hM=~|}svFt)O836S1&!?fHxbue4ZC+eakX^+)8xBczRGp24Dq<+ z@#*eQcnh$IdsvMNL(-qu^-VZ@@N?Zoi%424*^6UlmX!ITu0kS`d^&u=TI2zhrOq%! zDsi8RiZ`AuY>ZO-F?!*^XaoOA`2|vbUz2>Bl;6oD-y-D)TO#v)77;z;?k_^zt4~@* z;4#S`j!iHBR#bWNej@5`aNM}m;VpFCkz^6DxZeYqcre3ciZym z(`>EFr(4>c=sjV@!Pex{4;}np$fu|3ldYCKbRzlmn0Bqpr!Q`IqW6UD^=-+gSJnS- z-V^RU!F;`0c!Kwzm^R*jVovm)@Y{jb=Bwtw|6;x#mF8gx4%5eox5yqxJU$#~kD^~;p$wy@8cJn_&4Y9 zhw`G~&jedVMz~NOn&jTn1oX}5@3r&&(ZzmUr2F$ukJANM`*MUo?}DdyhqbNV;=HPImO}{4bjAwdl>4AuZ=Grrho-mihDzR@pxPD zuo(DCEgoj|kAT%bmDf3mb$lFma}xMAr$KxFkUBm~?}fS_ZT_PD_rUT2cYj%R+?`V1 zf+#$JbxR$%$$KfEaP&`$Zc#1Z{ZeCj46ZH*Rra;~SM_{~{|+5GZgb55K<$)fkfZo8 za*%zy7#N7o70+NLS&+n!ac?~yGvOTyq4_@)?yz?YCsbjD>iWnjwH_&A?!5y^n z2vEf@O|a@uZe$-G<*z$kct7YFy@tW_fg1M!c|ABl1UE;9{Zv|t;9h9w{kpZgfcZ%p z*4q2Qgk)&vb{1vnOGMz1t!yFU*$>Dp$Ury|JtPy+p$#E&&12~7y>bTl*tqsCTx#C_E`zlL}L@0$>qoeTeBJnj33MaByd z)n@7=Q;Qb17B9fyuj)yY1qc2%LByNy$W#X}q#Xt}kAk|0GSW<{r!LfeG>H6Lr0yJ9 zp!=^7`433>UoRl*3O4M1Xi$;m>h2C(z4g6nxRsl`G9~aXa?(b9+X$f8z{7_7WkfvU z(dN`dy=DQ%8_3lh9-E9YZ9!zb0Yw;cvlB>I2=_)0#y?p!=f=XBkwy>WV>n$DjeH;> z;?q1>drM#!mJ2v}5Az)if!sn6$ZbUfh#j7qU^P~`*|5ly+?7@|^1VBcUM4}>hSs+; z>=EyID9;u%ZPvlQtO|@{a2CALmZCg7__@wsQFsAS@(HOQ=>KzmLpZQi^2cMOf3r*o z%5)xIVAXu2fs4cx&59-{>azLzG86efN}a!ZzR~THa{{=UOAzkU$llJCjLzl4R##Vy zU5@fNaFEfzDJ+ceW%|ealX^rOB71_^Ioi%A%GrssF(NO!Z<)eRgVg~~}*&iI5M8a0Hb^8Jh)J}a6-F&jRN z+&@@DS`8L|nHA^$pTrm@%`>cf@_*{oj1XCp;<+L$`;VGyD4#EtcS8IJRyJ^o{Jx9g z=3MQ4C&GVmvMGH*|HbOT`)KY;q`4FDuS>Y!dY?WwB7dEf|F8SBxp|l7CIEAAy;#T$ zd+jO0_QmcNHd_rWcmCxJ1L&mSIL#gCJKyYX$tv&9zMW|}3*6qoi0>8~@u2P&yK{oO z#p?R1ydMl8q@GElug|D9*JkhaTFhzbJOpa^k%j!ZKU)se0>eKA@KI;JrJO{w9znp` zqIK^v+z0*KBfr4R7xRo1#y1bV<0LDd4yaF4evySogyQnQ^Wl4l{tfS+{t->?J;#+I zkl~`9j^2OtokKyYpu!T(e*}eEFq!UrjKnZijhRPG&`zsGb8pnoWV*k*SD$W?|GSi5 zeyw5M(Ky!xrvq0+?rTGtA05kcr;Oe(bt*3*(tNuUvc1 z_GeIKJ#{DJZn>Y46t7jp7ZM%mu6IOTJr}fi0_U?y;LFzzEn6+F2eDPC7!>8E|G@sO zz4R++Afc7Ykm0|HDuh^IoMiViSyDKD1}RXRO0PbiSKw6$-qgq`?D7`PA1LYjcsD8^ z9pFwft4-Lx{r9k0ua|Q#xDT#%+eO2Z(7j|&b?rSmB^RJs5?-FahnCsn@CJel1m1Lz z_|<2g>s-wGya3-;T(kWnzR&EcEWI6t^%Y@Ve>{#Gu2Hff#2=Sjl zG@HZYKV`5!RC;O_oDJQQdoo$-$tkQSC2$wcl)Mt))m7fj?B)SqTB2#;=Qj7%K7sheS;-J-j#&MdF*}gSaFy<+g*qphGFUHg6d`PM;BHq0G9GDDGEIO}Y zS6;IJaApV@r-)MWr^dc0o>~h4Uy3U#BAh!qwzE5-BcCqd#%EwMGk01A%FF-HDGA$s(o=RJfZkVe79~s(!%W>SAjd zRRid{tv>|v9Cfj~o}tH!-F11Vv28!f$3xrb^4s0D!T8;^^8K{G;XYqj?S!iaUmq4C&H?^5)e z3}yXOu!AAC6cDxzzxMH-A}EolZ@h%8rFRGgOotxPP+E^#JnmFeb~{}iaR;rpE>@jY zOEp=Sz3+&OztCifT8|hnsoHH=j~`n2di=COtjA=-dVEb!>gqUdgWF*aG362BUP?;y;NE7{n;f(|CJS{*A<64;#RtxhJlCuft6H%>42?CPNXk1zQI9Pw-*Gl+0(H($_CI zb=UPN(kg=f*(F?_QPGM#;|$hrAU+(mo;iMBYX!eQ-x7`A*G%xc{+9n1zjKag__dxS zenm%ql<<4$E&sRpeXSMzemu(@znoqyF~KkRUR^Q^51n!1UM1jUk>pLYWIC}H>BNvf z5nE@_&BA#W-EExL@f*j*(ecWZ(x=DK(Ue;8Ydg^SI3+S4SWdPeQn^k@57T@s-#)s$ zaXnqz%6fY0W?D}z(t5hqWIf$|bL4uG&a0~zUoJ;KRXpHd-~ZynV*U!Ne8feC)b40? z;v8UD5K7Ub+M(sj69-nv|KfGPkX3;mq`Di`UR>3j8x? zjp5ZUSz!oeUE1GJ?Fy zKne!6&+EeA*i~jK%Qkzj@V|J!-v0-He;;JjpQ815Z7b_<@J$itRlyKcX;O-xheHDu zoA9!ty}#xdv45W4ZMFVJWWybc-65N@6jT;j$DJ;`gE68Fj=aknP3jmT)$#U?649sl zXsjr>N-u*y!Htx#J&q;7pWrIe02@qhDR;o!hS<%03;qCKb*c1DQ*D{qft7(jvVSZ9 z2>xiMk4CJh4s4LOTlUCQ83U>!>% zowPFe6S$4OwUB93@q2C$_6>ic_*vm^&OSJLyQzI=5^MO41(`A=AHw-u_y7q9K%e)h z8|cC~#q%8Qa`#xS4H;9=Xa!GTG2V%GG0~!(Vril`-T;dQE0IB7jo1b&Zh+gLT?Sbn z0kZH0WaJz^)}W@4roBgG&|arlUKL_R3LpT0dX4wF=-W^ zqt)(sD;}nn!*6*nVJpgckAFl@KBpV@*!=mi-O6BG-b$!S`RH?X+V8YRQNwJgMJcwD zY=m8DrwFf(Q`(WAJ>(166@cAVlXg!_C|DfVJ}-;G#xc6Jf^`?{CmI>sc6mEi#j;b_ zU$AKaF(IrS{GIIo7?^`HI17{_msnnsy@^r2@5}DFJ3GNUF@5*6WN&tgFFVPboywZD zt+YB%WB)SNWlDRQZOI-5xnd^?WKPtPsVE08+Ar#}y&N!OgDS_Px zeES)URW}|3Jn==TUi2H`Y6|N1qKw)<*Xpk5#Zl|M1d$tfQKwJJ`jPexp+4u-<62Gd zX7>bq$zAIkG0)#kgOxneF2f9ofGOoL{ODNIf=5RgKxHR25?RdR)JR{Gb+Oa|v}u=d(o zxHlg{VQfIln9*4Q@M9xoyZ64~-Y^R?x@huAhA%ur--20*T+1npo|2?dET-Ec7E|YI zqZji-5io(NhQ<8baa_zQ&V4E@=A(!LMpwY2?Xm21E0UB=*t>L`oggd2fRW?b!G0j8 zv&EO4f(rtq1ceXuq-FAw#cXw?2A^Za;4}DGHKPqs>6u}uGzFK#sq|ZW_hG+r88o-x zZ(ITgTXYmj)1QJ*3WA;;&9+;eU0J_@E(R`P{YJX;M>P(MHA*8voZDDK5&9X!%mq{! zPwbT`#EBGJbf$lpiI8gH6#Y?LqWH9P9GPn8$;1e~E^!&}& z=&wE^|1v56^=l#@1s~^+f{Eh2BxW}q1Hh8FTi6ELz<$gh%GfVB@QXIW-zA-`_<#rI zA4QK@#mg`%$SR&a9ND#q?2C88d#byIt$-<5cCUp$4;Nz#b~NfE|MNP1V~kzHchnIG zdgyLux76j(Q1hSIjePcZ(H(`&u!EJN8F0ZoTG$L5(={s+LE|L^yfz6Ti*IU49{Kvb=9JdR*8H6lOiV`Z{0I?P0ZNYj;aBDi13~;Ey4=2VT4(vJ3^q zVrcEVA_U=;ie9xy!LnHTm(N2wDvB#bRg3}zU&Hf?o)*OrBDFzwPh{(FhD0yWR5DPd z(POgxEY-i!zVi+J8{(n|p3=Y3U-=UKyO(x)kw0^!I{(nWk;E-W{}6#cq1%!A+}^5* zpuCE2sh^u%h)$bGWM~s1B)%*CtHE}X`Tq$zDH8d!rCI%af{1Ba@W6v?ErGo1mEWJ{ z(LdZ9;~@qGL{~Y;(yFrCg&~eyh!Nnl>f&s8kfAt#4QxVMj{$Q2ju5&~;6wlk+&QN; zgpJz5lK!gbsjR>1m>~4)wnW6^Gti4wt?1W*KFHqjL@U5ov)JpaOlZZL@j9&#`HLl_ zJSf9P{ABYLLZh)3hK3Lw{M02nIvO8&Lr<4PC?#-Fz>`0tZHRHd^Qdilj}|L z(%=;F5#MZ$9`9=dzlGzX@w?9izt@h_@w?9izXQhob^Ln1HN)=@KgjsC>iGTUYZ;2<)y^mj0o?0Q10!kHWz>6%IbWmpgnz z=S?QR_!OGFO5QRCkB|6n79)&ItcFRQE^MXKXN=JZ)>^nxTgYA;ioJ3eY!^1h*Iv5k z86Fer*wYvjs#*)hv;UbLe>?m#*UgyrDN-}dEb@WRLUQS}-VjCo!Vzh6!|j!qb=AYc(y%^3f5vZX^y(9Q*wp#; zPhfioAJM;&zgej1`=x~gb7c7wL(V8p>1-v2Nf?CIqwGf}d<}*_L*UO)t9ss55f-JF zW_$#;q?sRy?Y!A?vXQm?(;b6kT`S*~P*^L+8?n#gycP6Vt}D|4RjHSkTX7@xlE8#p ztFu|2cLS=(p%T-V`(Pdf!rgo7JAi0#T=68wAij=zodQT7MgAWCQoOB=-daWh&{wSZ zANoB(uU8nUtl<8c7FVak27A2t-B(NnGwqGS-#L%3WB+Ci(S@v!G{TLSww0rBUpuV2 z_ZwG6Rn|;PT1~;A{?7L7r*)N8=r)L2ChE1Qvq#Z$rf#*R>ARA>+b_J(OsP$7G8;2Z|XooIm1HFZ+w81Acx8aN`qUkXFQbhEv##gMaaiS7h!%2@TEBVkj*v+xMhWGg%z0bfYFvzhT)dM566O|6YirP!xI|4iBgCpDu`{t87 z1pWDr(NM3pb21(3_{|}#-JfmWJ!2|dgSDZu3CZpPBOUjbPqb=p$h$50sHwiwJ*E>B zIipsXv;_6gaAHTn8n!SWZ>~1Q15c*zjds725k0p1uiqfuO`Jp#yq!_;aX1CsBcF8; z0_uGjQON4u=o~1--=afq>JWNvyC2&{zhug&jc)RVpxw_Q4BF{zxS8Grw`4BLO_*kv z!1)0ld2)RVQt0UcNn-?AWXMkNWnuT8;azyyfRmvKc=G>|gYVSKKm_3*-hr*jw4Fdx zf-Zyp3ae%`jFO)MTROu)M|(FbMGq1UNJQo(ABkhaXwK@0mbXZQe=rB^ag}#Bx;I*H zugJPW!L=}QlhrcdxHB70qu?hYW1u+RXt($VbnkK}$_H|F|53SyD3SbP5!H!=GQAU_ zY*y9pdH&rRZ9=O&+3>vN&bY(bo828QM_*wO zBX_}2c>a^@p{qxBpnt|8(=fJ!ySg)@Tfa1&-{9UbdP5-Q@LNk0L( zOmKBy3G~_FxjC7I(be@$$=M35)^MELZ4R0CqrD0 zzDW~J2D)b`F4AYowEuJzt*)>LGb?AJyM>?W_lwwg^ED4R?&>aZ=J^@*igJRJ%uYoI zI>AX^aDxv*?6H#)!|Wx@wGx7RJW%+P*M#6oTCI=23T&+7VF zATRs^9E@UPgG|P)4xvTxGSqWCR$2NqPV@^+(4jb4_Yv<43zvk@F9DH(1Y>+s^6!g! zB*D+2e{q^_NN_!VYq~1If1|&@cI5Kcl}fx2E(rCSCFmF_861uYz z%L2m&u!SSZk1p?J`8|T)%jf$wNx{zz_gQd@WX5>9LkZ4t?ohI85aV(w;#z^bqNDH| z)XJ?hXydm|Nq<86)~d>KS6l^E1y@Jjf72@1>}HtUJ{yA_O57Ff@_2zWV?d&(qFc>P zt^?&mEV{$o^DCie=ponGt7~|#N+SEi7IB2X!8OamT*^kAT?SNRil5_F@|P=GSBCFk z&4H(0KlFfKxV~!#jDsu2+ne)RhW6UPKMdImYQux(bp%(wz%=){vJKSFZAXLD$2cD= z=@8te>sS1iT3!rV7j~MA3{4nf)&*sFrR*k3YRkskLi>NlzJgZ-TWe>+G1pYo3~)O7 z`lq5J7f)$4U;BOx^0ntgrq>|?7o7vFDY(bWC9S1&?(fcMUoSY{bC1$Ct2m-@PPonT z2a*5<`~O`;|JMzO>i;KE@m?{K4c;l)Zi|>#cgUu#uJh=8nSTM><<5nJ3t$bS zPOv*iuabDa6Z8ApVKH8>DwIQ-swvIvb?X#TOT+2-e|S(y=36{?`YyPqsOO0 zF-de|ZBY%2Iw75$s>22ox2!R&O;3fl$~lTIRAjk;;b=K9{Fd$Npov*vVrm<# zjH*y{4Z4KwG4NxP%msm{KWTSfzi2dRRXV$+Rgg}lYY6f-Fka|;OdC8x?(q;YLb^Vh zvy;X!%r1fQvBCA){Qb@I{q=uGpNu;iL#F3@!|~8xKi_AaT7%PBz?QdsKCZa9?em?# zudJYAZN0A~tK+DybkSi?1t3;=5?r(yv3j&2#PP@L-*DpkyQuYPZNA^U!YeiK$GCsm zU>M`!EL-}s1-;JhVZ8u`JFFC0NHIEdE%-0+)R6ymxE4t5v(q|qU}rRFn@Q*2!_IRc z+}&El$yV1ofUg#+FRW1Q0+`Unui;r8e1VSer}+IC%l88bBOdecFuQ~@rPBe2TXxkFj#nAW*1@;(U*8+ESmqH3N0ugJ}@))fj5U_iz2?g2rM5mh%Ih;@ytFmL9_rDNyN32uU$IDw^qwz=h8s+`{ z8%xzM^Go<1h;L`Rv+VfzhcAD!eG$b;Kp5Ys1aC**III&+iH%Zu-#D1Acubb;+kZ=y zCpKbTh&k5QM*$z^Ie+qF@}$ncUt9|!&%b|~oPUS${2L)Z+Ti*3C!T-9fj8^RHf=7L z1r7C{g3d1J8O`?H-P$pyuIWpUmFeievz7BP;T}34EABR)kNJHg&qrR7!QbM^-hbaP zx&I!*QKm$WvKx)E4>+&x3%&_7C-dpDKWx$e!*`qaf87O9=ljR<`7Y$=(LOqFs<*c8 zqf=Th7)Yq6#PnTT4@{pk!5BLyiL-7;jPe}uJ~rLmXrrJ8Z1>J(7taL@aU%eGBjL{| z_;V%vxhk&8b>-e5hKh{pe!Ey6SVEFn_aSdqFrlN%th^`1*~UgodD$nkl>Bk@M}+Y zrj3U9NeS!+BQb2wMsN7lE+`;Nyc%{%>H#2p(=~m4tuaC0jSavE*+~6Mk-k?4#)69* zkS_+_Xht?Gts=0ZS>o4r*CLJ!R!aljU3=>YaGER{eeyk%}BIT6|3 zUeW~bFZm3QflHdTpX-|ca$6F<7&${ufh|&BPhS~&2KE6}@J&f5+-U2?c$YZ$2K#_I z=Q)GYTt__Po1FFDJezN9B3sKncaO9Ks=yWEkBztQsF!H#8Zb)9*gf3NrXij+)}JfH2Ie*5ePOHTi7#dX73)s% zhc;N<4T;VzJk@!?x8e(^-+R3+xSI73Mr((OB;xHGo#>mG;G1RxSL@)BeOlnOM*04r z%OBZ>>dwe^cc9%p;7?EZ(+mEbX7S%=*WdocT@RTNwwg@%)HLcT0mbeR(fh5eI^YA%!TcuiGr`xPHpQw?Pj9qOK+t$1I* z&`Msd{OGpGfBg-ST4cYdp)iqTyFVShf2xVU!t=U+(qP!9sfq_omvKLCv?`_9VfU}r z0f&pPu(}SoH|2V_a1&sb{|Qt|J{o8|lPw}94u9XA(5|5IRAq?=XczEDaKBfU{K80B zLE}v41Im&wFlVmwgM!8a=ewY01JC0^9q^Lnw2JmWqI1|&k{iNnP_O`@9Km&$4B5@E zL-tFCSBzW)p61;G-TnlP0llpKPv9g7EN;Q0Lo422D*i_w(NHWjlw)jYoCLW^gWQQD z8>bYV2}fH$4HKOI#o#YcOD?aa%zr{rltsOTRgaIBwd%voVM%_f*LU_w)n}#pPSxuh zXs8eL0sL8Zcv>wJlH3K)vE@>)4nvN9!C>}t3H`iDDIM7X+Mdqa4(M&8{@A~J^Jr|^ z`@F#6JYHh6KjQw=TXO}5@`FhDZzJGyBjCCGtv?+PYCq~|FSdreWS*}qt%*Uw+tg(> zHyQg=%3g~OzJ|UZ65svtJ8%yP<^UiT6J}@$=TgGeT0#RA$=oHdNUzq?BH&ti0>r&UXI@p>*wPJ3b(uztHMRok4=XY zFt*TSI{ZCpI#NWuFg71U7|ubx$2r8G(+!RnvXx>7(Mxa;@t|?6(L}g}vtf<)Vcr1!v#T;41$hs1b?oyEk?ODckO6O-C>QN5JL_UV>{ouXvB7=(OVWDtZLh>K|vIejM-bC(-`- z{UhvTngE#la5)~~i;hvG_XR2JV}tm(vw8^}_3dy^M))Tb*z5OL)OoFL@7@sB^oyq< zk7LwFp3F6j6X-QSmVb)+;5^5H80?=i!Jv_GD)?S{9{fpxKj*`r3pxt_O|6MPJE)i8 z&=y?Cm*9mf?c{VFT3%+d4BL07Wk{ZoS0<3c>qUb~L&A7(-fmfKg|R#6JDL z#CmBh>xLto351({$CP!&?{Ro)NR02Y$D)`p^*@P#x?tpb5uoE9HIl~_i9{apYzKRO zc-#s6tm#8WmVYmz{B%)%ER~OhkK`v)1$-ZK_@apVo4RrM19WT)c{{p8Hd}D+Pzn||G&^$e1)CO)j^!P1w&v)+2<;X9yx>kJnv81 znF}|I?oKwr{CL*Y;H!}kkqGF^2jtxta7t4t!1qUvzpDm59M3Tc(x^Xb+X9j!?ut-P5K+sMyRrTti zb~$J`CoYC_;$d!vKFj2s_+FuNB3F~YGkzr>N=+gwa>>LL4)MC!m){do^Vh8>t-P1- zxJ)*bOIe0i}nvi4ZXXBjAFVoK5T3KAhIOf9Gco%vu`xp)1ZOR^lJzc(8Z{(qUoG zasqt<))X{ph==PIILT-QC&lrE6W&TBc;pmc+cx;O5w%~y!I5Z}2>LPIF_R&D4!b8w zGz95~ZVIx?D8S~XkpqyZSk#(MSnn(uvQtTf{Hv4hszkszbQpD6C*8k}$j_4U?`HY_ z$^1&)XjPVi7ZY!-I++|D7XN|Qtl=F%NS?4VStkvgBo^$Z;svqp zlNH`7f41FSWrefiIVtnMLcUeZr)L>*DlyyvgnK$F~WeS$RC(tgmWBJYM)I;_+6n-xQA*9MNMu-p4F@ zJl=QW|4uw!L%hrlrP1AetNmY$mwDCap@?{yqS{a2(<$Sm_U7?24gR3NjqVSIXYJ7* zLlb6;%^~29NDUm0MK6mCAFk8EM!Ftlgwtk3=%=zQv-q&w|NAPF4mdGjaH_gI7DHH0 z)?9^g*v{`u^gmXQvm^4)lk&&Ja{tU(t}YD8-NCUVT#(?-sryw&1xk>@gg|b0RZG`uq{}MgCMN|3w=vhSQ**cxH5s^#7h#gAp2` zqpvjMdF}lg*Vq?)r#@n`#zs=L_jy&K{7UI|pucEL?(D3G$OHeDRY2;&5E;UfbKSQd zpP^3NH-dzSHtv(U{v#UHC2?j{w?D?kx5DUuBUxBb{KFKV8R}E*$OIeCZ-Gw%yF{M< zcHC`b79W@gp4-sL^oPqbC6X%|ctvWUb33}w zBn$j!j+&q8R!6Zii96YUyDr_%sD{S$fm*r5_U&YMF0QNE(`yYr1@QqvpXU5ZkZ)4? zEl_?>a9u0$Xd>ciE;8M*IqEGj6fgngWnzIXGFgCwVJF>E*agg=QeWPOfcFd#qpzk@sM1MF zX;E)tHlFAWR&MBMd2r7ri)B%#@^Bb&xBb|5e^P;5ZRb^5wbq^JQ)iMDPqR_po-lo> z+I^JmEZ6C%*uMq{!N=hHFK}^Kif1i(e`52swzCm54xR(a8c;O8P8v5fU1w zoLVeRz7gfxu8?|J4I}k#cK=f0{wYKCv$`o-ynwx)!7>h0M$2sgq{=|fXrOGYDYJmw zDQ8wVZ}qB~2~K-vvf}xO<9-d$Ty$4R?lY=KpyPQ)MV@RVAAE2};sYpN(z~5bJVeWn z=tEJrw}isMQ*cu8b&pjS!&~wh#{bSL<2*l&#(7D)2lsS(5o8shEy~CG`9x2bFKhgx zcpsRKQ9CiHr)t6^UCLSzdsF1gbmCN&4=xQ3S~T~B+?TS&st4==jSb~d6#RpmGz`W8 zfmYUvJ%g?_KS6bsdUZU7___+U zT?~%?~L*jsfAzGY<=Y0xw+{Z`-xTt16}J|3w!fH?b$qyBTL3AIwWX7$OLO7}8G>8{jE0 zJv=5ugjNBguI=cMxMa=&NHx=z*PS&8)rTGLWUQ{aN!Le7GSG8r_^`Jz+;^Z!ipR3Z zE;lRBBbx@bxslD|3zC0h_s>~UI2h*x!c6L`D^RgE(+l3!GJJ;7c3N#5?aD?pSIIO& z^^Smgs8J>gnm-duvW5E#5l#2H0yjaXHzw#Vkz(7R8x1Me4EYy9%H$0dRiHNg!t%gC z1OLwW%WB47eg-;xs8DyR$qDdFLkPK#8r;Q)Ww2Z}3gqDVf?d~uCKo*|v;q?OzbI4? z4238=Q^$Z>#LD?zLiJtSd}~EPe!EjFt}B$%g5ivRs><$SaaY@`vO8O+9Cjw5fd_*s&m@QY@P6z0UGbEgpyG9DC=a74Uy`?u zrl=fF*}yH0e7&MguKug3 zLpxRnnml9lc}<^zkLtBSG%C1CVZaccj~g+Nq_rRIkGsxv$&f$pWru0GOa|Mg_3}2U zGg&k<4~H}d*CKz^hgv>51(e z{OfQhEt(YqSPT5T1_fsG+@V<4gR+AUR$jffl&nBpH;ZKG?1RVHY_qEG#Htru4mPZO zbAefy`Z!hDXAnzgAnY1CyjF9VCfT2E)Dv<4hfpXj`)5o6BPE}yQ?NcA{nv$k#b``& zyi49$?q99$4T~5K!K%A>lA|~1#H+O}LV=aX8wnoN>d%bJJDZ&cVTULE>zbR0KBj!F zZ=ZE&pO=Y<_l-p1ny$Cayh>A%{j*9w-D*7;YKVc#Lnal;Duz&O-SO)&uA2u#+#X?^`eFW=1w&*dF(m@ozd zbRsncfudtvLBRI{f9{M@6DU5$)dX%kftrAmRE9wy4u<6@90z)LC&Pw@o8&z94g%jupfLbzZi(4`t@_ys34n8c~$4L60ptC^S4R=o#_Z`u_-@Z1m z%Ic`!^gCDD@4=3P?oRO!w?24@ce6}@761WaC&90)C3?qWFLnPAd}749Hb+q`mbr!% zV7SNEhbQPbK{~hhgHX8O!G#uQ576ZHZg*E$2Te|SumflvpspS2(J{OgzYqR|GKC&X zls!5hFVx>u7d1rn_8=W)D=hkB-!1PWjjhJ30_Olh%C`n8O{-uCJNy>lPoPETpH7IM zZL6a3b98kZ_<44fIes>*Cj7Ws!;h|{N>7Ui!Qba^NktXTq)e*|WMsDE66v||S0t?) zA^n(?ekD&Q`%zxLfXcV~Mu$67Dj$~0caY1IJOC)tGyGy}gTPl2G|9gj2C9)IE9{jk z?n5ijE=GAgCnSiMI&VnL579*s={}vP>dM=!7LC3K(5$o^^5dk=&jNeE?CaD=8bLst zJwxq=lG^MW)H@o;^tq=5eHlVeQfCnKRP`r}Et!3-n#rNhm!RzkJx1+M&=b^;2zsL0 zg+mXNpubZAdXySN(7CFYps!ZF$iuM+e{YU442eno<=LTHD|jy3>FQC$RmzWOPLUM)dCgV4Rz3W7dM z9ZAqWpoy(!Wm7p^bx~n>ipu4L<3{sihL%o7S2PEh& z2pz9pM$ifB#{_+fn#iG#OVE3M2I%&xouE6aj}mkz_2;7m-T7M`dezUUVYBlX!r0WC z2sl<&W+oiltKNEGmQ%XDb6TsiC_A!Cq`4hoED5X^+{5 zd;R(mzNjRqdkJcRsy0SfJBe4jT1v~J0t?lTObVP$nfK%J($n3lf?S!6vLAr#@APcU zQ}<(DKI9#Y$orJ?9>lv=tugOC%)4(9^<6g*E!82w`W19*Y*06|2W*aNzWkOzc zi{buyg_NHJ`CeoGZBl;I4=jJ9G5;#5Q@bGlmE(qdd9$p8{6CHPlcf9=knc9;FO%}~ zAwRCkkY6O_Plx-iD(q-UUgn2TM~ABQdK%XRd0S6V?Y!ai+dggyiY z$<23UdTU7~THS+YNzQmVUa(U74(uVJ#MX^p(N@&y_m_Wtk58C!%F-qayq~FI$2+^~ z;0Y7nBih3S8V!Vme>A*tq@T+Q#rfLHmAYapCv!n?15a z_?7rBV@oY8`QtPHj*LeD;Z5wdEnIqhOh!7`duJf>-`^Dy#^91aTl8OplH+P#e%CSM zq%G9TC2i#Te_w!`i&XHI>9e4QNfv32(j6+3M2K5nv7)SZ%ajO-Cdh+dMSqx85N|7$ zUK(&cXky4Dsw4jOP#8pz&db3)=8b6;1w-qVC*exxt@1nPADiZ_H^?JdJ6UK7lkeyg zm_-JZSytC`1rOR1oEIylacM`{ebko;l_;eZerMLP!2Qzu!g`DpbekscDR{7*)wP9{ z%dF1ZhHJ`1KRC-%0WPe`|GD=If3BmS_Zx;n)LFRej4y9eHHaN6e-!#* ziCpIu-;`hGv;K!Z>*~_)LSQD5%wKoYwx-ntx)FV6^J4?gQE4?|wgU|<#(035zv|me zs!sh5o~z5z5VJ2s)am8_Vtp3NtyW!u53}A%R~K-6cm`;Uf#XA~dsB*c`?QTEa{X7C z)cC55?`ub)>uZC4;$sP2oPaZ0ZZa&shS{U+ynqBKPLf z*QBkPb>!~cKgn@g+E$hd2vC2e78VxdJ5GyLmUag<$I=|fX<>)wPgdAB$w3isJT=a1 zuyjNx)o1Bh52qRke};FP=%jnEym+zDYOs2{^{Qb2nT7jaYj3d>R)S>2+s)vA zn0!-M=~rg8Wo{4jT(Z-cZ`bmlK|dG4wZ?o~Wd8HU{FsRRz=AM;FO1Cp6YXCDQ&~Py zUwGV;>j<`q<#d`V%KGv{`Ek$}OzC z#d&&RrIjiIjHYc>&ugH=jmOgs@nI+H!&aSN3;mpL@ElyJM={_EV?arS;3tT(DLv~lD zXQ%52cCw^L(Ytyzm*ktg?*RM_n|OKT<_*Jz631d-dpGS>2=on8rJEI&yhP zT>I&K(AP+VW@j$C=7fO{{0h}h=3^9GU~=d8bstYqik4eYK?2BQ(Ki+hhN~34WHE*W zqjnB!eYB^~9?F1{(*bmqkDX?{3TshD%@PFT*%qrS({{mbQ%XxYT;_!N_ z6i+^`Fa}l*x(opOZL@Z)V+$S4T6i55b%QTb(O6z|MYE`^15bI_;9m&q>ts@&vUGfy z$4v^1)Y%GcJ=Jlpu9Ty9u5nG(O?MTy0-3*I(Xn=_2-SOQ{ka$cU|5v zv`p9?TgIAZ8NGMMRkZLalro?ZXP|aV#{A>-d6yG?jQkoUZc$dD#IgX3!Vz(e_ zb_VX7esU(XU^A!pqVB4*DO5QV;V|rFtpQ9EMnDsBMzGgVZ*>wdL?A#L}|BRd`^fq+cM{ z*XacHZQridXOrujD%Hp6;XOzXQ#E?%8l;pik7d7#a~-`kK1MvzC(&Drh|;AVKWy;d z4*lvJrhaXbu#>Z0V5i1FFEx8Q2iQ0nb!-Ol@%=8<)AR+`pRqefE=uQ0QKyNxy{_}P zNt_hlO%Vo5jA`uxTm85duE@Gs6Xut<IeC{{rZW-FfT$ z%OSRRvio>eIk=E?jnM3-7B)!yF*V+cH$DRnp5r!GFR9yTh!vQ`?KvXtv5e!puqE<7 z0^PTvrzsInVRV?TvIPy*dBZ6FiL)1vh|;IHH!uS>oy_}6fT^Nv*WR=mrSw1Q7UF2X zE$*!u_nE{u1`J&jj%G^+ehwVDa~?aK21oEw?;b=xN-0{>9#*Dn44mVGGpm)QuJ$OP zggSG0oyiSRHWoj8#?Dl#R=aAkYNw(X31^~v)3~x(j8T&PC$V#IaPlYdtgiKT_J?de zL=*W9TDO(qRoFy6YXZt-86n?}hMd448P7l1BEx+p!CiR_q%!ISpMj_{$1y~PYtrGc zvRDo@6z(ZmGGy;Y4H9jY0ALvY0y_sdW%xA^4u|!hQZ+f{3Tq%UHZRVX==qeP1QbJr zDT$~#L$6u&@PZ>{fa#6KPR`^&qo5C0%8-jpI(b!Vo$SS{x%y-}`Ha-bJ^#_BAGPf7 zqv^kvd}DZ;@m-G1om_rh#28lmhtCFdai|RWgUJ}OS{uVPyqfHj8AFpah9q8agkh;4 zH+J&aHa;8Bhfy+Q_VMUWUfEhF-{aNfo=hia>NTr*+cZSWcj< zhmJ?>7RNT)SII`mr=uYoxAJ{ugj_8_jv~nITd~d|RwLx6(RIGTA!Ce?_0f>|9MWcl zOlXSU{~Xe8giMcyOyQ6TM#!nrkS$vXG6G8rqanW{$f3!G%_70&5cPRmz?Ju4(^PhP z143#g<}^zsDzWDKw;=w9T9jgoWE~_*lmg2hZP<;)}r}a>rvbdZV5_hjkjCyT}eKC49@2l4e@oo-+;6h zZxfv_`4Wd_>HVelMDc7@NOOuJ@;mj`F52qCDzY#c2ujiIJYWZvq7;p#@DC|Ib_HDw z{)EnK8S^@lH}>fe_J z0G2&ZvL<|;3L7kFXZla}&!S85D?urOH|<3u@hjPR5B@vTHI%J@Au;e0QDODA)8pH_ z8?5Yb=O|JZPl=tdw@e!LKBqX7rju z(!}2l?TB;(I5&msi$>~ICS#8(4^Bw6{XE)u|u`d73Aw|fJv{Y^Q z8pc|DWQi5x`(+H6gP5(->xQ9mFSTU{q4Cva4e-y~hImJ?&RFw9D2x{S1@XQe zR%Zw8k<5okf}!taL+5KW1)6=3HOs}X*uV~IU|Xbo_jp<~>JC=0EAmbqY-? zNMIF|@9&LVU=HJBiYlB5XiyHJrstgs&axAD1Db!7vi{JiDma}I23d6f2*32E`hn{J z?=tBQbpyy@*uPsJvQm__9E!tyy9X78-(=mG`D1sBdi!82KI^|C;P_MYFpnO5TIaXY zECzcwj-MM$hL`qn>-cQB&}99$0sn^y{El_4!`GR>ztRT$CKLF3+kk)11b$c>@GDH< zPiX_*X9B->ZR_y&o4~){2K;R%@P%!_Pc?xb-v)fL3H+ID!2i+Dg#MSCz+W>Zt%fWX zavUIr8%M%E|DASxUiB}s`LD7vW&`4Tj~g&PMR}w*9CD#UPKX($dLRhLp9sUp+pn3Mfk@_Mi2EvB3(!cQ;1F^Su*lY|MP10^&0wxL;W!am2S9*Cg zynpebHA&5Ohi2JUybzkLRMr=@M}HmFZ&p;2^TS#^56O(fxr165O}3%H29Llmwf*u$0RlPPx9FaTq#uN4#hb8f(P#e zas>my=+K)cMeW^`$!!lc{i!P~sQlAU90UjYP+vga4=a1^VTQ6s)`5NX)PZeK;BNf@ z;Rrh1M?XMd2e_f!oah}h?IT*c_cf8CnBuvW?oCq*tCrIKu!UgA+^+Jzd@BwNq!s|R z+knv~9b+i6Yc35*g9Q7>VQ}8)@!=tJqhx={zSqKH5@?w++4}{?B+4SfP&Q^5&EeAM zIfRV{069R$zfWR=t8yGe8T~88kXM5lu1XIOuF(EeOjfG;5;+aO+1JjO;D2Z_Oi0K& ze|ljf>|Q*Xont{L<0m0(;vm9@{fuM@x9}J~!iM&2tU5qt3O$9#7pw;-RcXo-mBl@T zP7~Xm?9Lkl{vRv)2meumJ14kT+t0E;SuKFvvnK2H)eqTPbR^?i{PqtT-Y~Xl{Hyu! zW_jz?^#^G+c0$pIG)QF$-0Gx(Dn*B2A>R|lh@6*fTt|ZrhBZ$DqF)y#>+7l0hqRu~ z=C=6MmVO}Taqnq%bxx~+SmtczD&3V3{BM9i55lJ!#dW}s_06g zOgxKW4K4+ujQ-UZSb1E(RJES{24A@TqBxkBsv-scL9kmOtDCQDVPgSK*0YZR zei#D8HYYos%F;3T)20+%3Wfno``F;q>b%a~9HSJS$-YYX9WPhxM_iAy_<9U9HIu(s zjhvUzeDH&kJU6hhoO_&R1B8LW_X$SVa~&nU*HWIY^O{N#kZvPCJnZzE;m9tT_=&i?~Q-=Cc9d?zzejuR?{$Mmro|eF1mg#NdS!3bB z<>dI}0BeWx?2m|##L@uqW$-6(TXW?2VDM$|Cy=YbYkJ6m3<;i;#vahlCv|6oG_adN zYo$3^DT0Wc%F^dza5|levg9bvtX=VBz?_B>m8GCx&vs4;TXL+yIn|aDs~mKSC2XDS^O<;YB5nyrpeg^BYrSDj^ z>AN$APv2|sBh*V-3g<1GzWv(t)po(QXKI~EpoFnn!l=%eFholzh{uF}T0#>IC`n7; z>WrPVgqIaeXgtpK8(F8Eo!rd{if7+(cn@%g6i{(imYoV?2_>*ys1!l)N%bGc^gSOa zXTXFSXIEv(TpcZ*04(89XJzT~<2b$QaUXijsr zgk+l2L0Up8E&2d)tU;MiGTt>$+`@OlLzeK0`0=`i1t|Y5%s_k zB`8ZP8gWEL+K4Kt>USDNTQewOg_h7rz42)YPf^1CTEfMYaC;;1x2o@mgyxB$sM*Xo z#wYPdjN-|JzOHD2zS2NSTJ(YRfy~7%yv&WFj2)7}O&QK}BRhuz*GV-bOQ_flnTi1Y z0=~FmjHWN)t)2)Dnt6n-vMWc>(U%*2`of{xj~&$)S=1wMD8bCmwQ;7A2%r`yjTxbfBDWckrx~N6AkaMMX*!x zkOM`(Khwxcfq!?wN~M^vQWb9zD^-h(iR&81Mgd2j+2474W}537G9B?lIP6+=77_U* zylObF^|kksc5#le`u!4CZhVWdk}A6q0DrEbu`j8tYVvx-c<>eNJVPOOx$eIh z@%g5tUsK-UtS@g8LNsqJ;Zt?&Cp3W*0>(&5iy$80qZR|mzu3YN?|dCi(Dm4xgsy*~ z{)FocrSxfZ3(?r$*(*P#pz)H$XTt+#wUu5RD9kdYSo9QdC>#*8Q?fWAQ{7d;NlA|X6j8~C)#;eG^@>OIOzl!ubiL1zy zKM~XU!XJo>)0NVviV+uS&Z`R=FLq`CR?g6DmK&@!hIlf=)Fl`ywk_9)A{Yyqdj)*z2rO zD=NN~6?M;kTv1VX;*l$9CEdUkM8I$h;K$x&W%re$IFzXLCvD%%G{y5zVgz%E(S@re z^oLR1LU`X~`vo$67V;M(wxk%3a+cok=l?_@L@r>}2c>cbR63^B!()drB+qA7BUK896J=c;1AeX%QB6-E=U1C23ZqUlJ z{XNpSzsZYn&K{bL1Js8M{~{aKMlL%|rt-@-Q2Sq-vyowtQ-`sdd`l9o+{H0l2sxGhqV_QPO6j=Rs;pSp zPp+3?ziqw)uWlJ$Yp?|67eQ~^_;LI|_}OKKpJOJk8LMAEIs81oSI3X2N5;>cuM>XU zzqW>-XCitr!+@7~^?X)C!Fqs7t3qU2TuZ-75=L`H-^d$fM4jvgeC z33c0RXlRfkY+dNJ99|%EP>TB9A9PLs5egtO%SKG39EnCSX-&8algqkQ1)Jwb#c=TmNT8jzf*ZhBP{miL$U^MV6u;oze> zKjy#68vGX+b-M;asjCd<|KswR9Ju#1pwl_jOK)U$q|dBh!Hlud!>A%kq{4ZbHCLuDq5 zGl*OmWA*g+G*>TS03C0Yvm->A=SG^E=%tWdYe3o$q8Hb#t%_cLoeg?6X?eqa-F(aE zvipZG@gcb3dlRHewfQj0Q$~@n#aqSAJi)#rcRfm1D4|4;&%#(v2b%#hWi@$zTlEUM z_ylzpc%eup&GEprmI(dtvT+kp%>WNwR$-1AlQPHb{qq%KQmW%{=(TFWcld@m{e)aP z?T|Bf6V}g1R>swX@f?ExIv)sSVs#wx4gDp5hhQvoMA8qZ#`XAMjNckIrcHipoXJp@ zysYtCYwKwB{b=O3UfYHI)?8mVTw;X-;X2~H_b;$m7w@9s4n&5_``6z_c$o#$G-_faHkqImDb ze?3dDH_K<2NdCasT9`_{b752$nxJj$OAKvGw6~0cowP%z!lG~Qv-nGJhc>bu8q0cw zif?OagB~F->RIr6Q3sGc0>0hhWToiWj_|o3eX84(qE4OQ^Bfz+6Dztmj{90aYzH65 zXQRb0w4GjSAe&WN0zTf8S*x=^RIv1W?o2+0rA$CHJQ9N`1<HVrWGY7sl8g6ui4GgbWlrDaAwqL!pLrFS(;re?dl~(QxFBQEc23#h?mMd~ouo_4a$d|MPv%_p>MFoPG9Qd+oK?UVH7m*IIj0F?Y7)n12z=`lcb&P^)OD zwWdRFAciO2_isad|5(ZKJN5T9+`GW{lJfzWR|QFZ0FH<$ITM;0`*a+%%6pS`UW@TZ zGj!))04GA7`V28Fb!G4c6!aa3eNM0!h*7BkioF0EOz_$s^V*x&H zyOo}0_^$}~4oEA0(9j|0uhVr%oE5YSt9;82=EV+sxeM?%OUc<5#l(*qKOQ^&g=+_K z!K>{UQ~URRK-Qyi4L&POLxYF01z0dBwmcHZD;dNq z-kbID1o*NE$!S5%A7IRr1m=lm9Ei-#3ZW&(&&)BFr;t{ieK%c5wWZIDbR@9Ut$l z17;r1OewY5rW$iyQk;ydBSbl$q^46c3y2(2g>RQjJ4Ev*>CjpgV zkA)qe1rJ4-R-n2I1Cr&;uxLEv0n%+neklEk(ffUq*grw({a`2_*n%13tSX{7T}|A~ zSWfZir>hqm{=szBOq%+fYQFFxYHHj+w{rhv3;Z(hAlE1@QpN1#eHbWIn$G#-ME;nj zAaZvN!OTm4;)Z-zqmX-P{XZdhtARl7VH&xC%p>ac=RL}tW&45g8*yHf0Sb~fx_)Xf za^DN}bP!r|lD#1w#I(mbLY!qNz6`9V6%J_7ysGh@KkfHVd$^hR;zs@*aE5<7pXA?J zBK=axhZqkU5IF5-^R&AJgJtqg=clK&N>I3aXF`H}?EqygX6~o4I9ZpCE^2sQmw>w@ z-XXdK{O9eXOQ5Te?%)ueYG;kaM)o?XE5)eu!l-Vs1$iaTKt zRAx0x@pjbg*P384(2J-8S{~lNSz5zzdsOS}^NiG~z1~Qj1K%@TB#v(z6Gw7hi(2$Q zA`tFM5`nyRc+T5I%Luan#LHbHO!;@0?qek9Y@ivUZ2*G52OxMCAn5ImW<8}eA5BsB z|0%kScdYh)oB?Mu;LV0L3XToD=&>}08K@0sS{P8f6u>+ifX}=Y9F~NYVOjpYO2{MZ z31ji<0OVa8@s1voqPJjt0wnb0tqP&h_vgPSv{TQCUfX%zhAZ7H+Ar|?p(zNztpWIX zfl<7_pA+Q;_n1ZbSAxq2a?hvL8uxs@MQPM;=l&`8+^%xZ`>6hU8KE(ij1VsJ0}whC zfKWU(2<^GBzsk6Hnkc?1xOhcCanA;Qe>pccBEy{%@`Hw7H*Ni_+doxz1iOSVR=2&< z;4h7{(n;Zh^~82IJaf_EafP1kGOTjn4cbYH0#bjHa_uX8lG6ESo`dt_*kTsjur!z4 zvyxnq80~^jS7?0jdB{Qid2;u=FSx%M8KN~GyVd>8+I7^J0e^FowxEi4EghR_*Yc9o zEqsuX0<4fNy-8P^>d%9DKhYP$J|Yt@(&Ydnv<3=c@$Y{bh@N021)@FUndEL(Tq1)g zj$ROr@s8XroYl5V-7UM`(@+rI^`3JRud%O9=)5-nfH?d}4%lDEs$zw6S{s0jCKk&1 z=gSEbexft#c#Qqw z#87aaBdKL|gJKnQrDap;W{^}^-vX`~%81HJmzI5r!Jvw#qTNF! znKZK>!rX7pSH~c$EDyo@=4miOCy?*Nq5!#arb3e|%R_Kk^;G7veV}cmZh=91d!^k? zgs%{eE0(XUyoA7_c#aK4O~PMPrQQTT!&tw8{Z}nL}nJdq!B3_Y_zY;rCWIdR<2-Mi~eJap`@d*67aY z3A8R9y=sS-*c*pSj3M@W)7a2-BwH&2^Il2&4JW_lAWQ0?jd zCQN0xF9?8naMItQZ*c!BBm7)o|NjGcZgH1rN6}~N3^2)-TJE92{d+)_VVn{$8qQ2q z0iiuYX&!vnTz(7S{{^U-xJ|{6T6od7995>`m&~Bgrfxz1U#OKV8esKmRULr`;jt$9 z+nufVhjIokoXF0=GqZHgz>q)vE_Mb!h4ayOsG&!IrW;9tNs|JApn0g=X(F#IqBwyZ z(oXcG0PrBx_=5N1r5E%nPOxG@xz#5AR~8O`PvQ$E`yfRU^^2#+<{{=_|S_OVt;Tl_H| zVM0dV&(bod;y-*XNikf$WZZ9iBBPJw9HDdcogKoD*k7Rd5zkidzqJ{&+n8C%+jnz; z;_a)&uMY%&zYhG|f&k}ZXb<`y<9)n=H8=FV0nk>&hrE6)%zzOouK$9PgD2HxV_`mcip{yI{)Py;LIU)=vD@xuL}-KL*Y|j zo1l0nAC=cH;q8{sd5Rh4zDBeBQOXB;H}{>O-NLKnnHMmYZ^1lvlVpTc8aV$^E=xeJ z9Ra!ay@$wygPIm!ki5Wwy0Ts=ezZ$?+YZi~@bq+)iW| zzMnV8dI#dXhHlVcE6W6BriKzvfx`9BV|`%=#b$q^mELnIK6nEZyes|i_+=f zQsP#W0x=1ZMv}E^t8v;lFR(Ny6^^yPLSm{Pv2=FubEvs4U7QrO%wa{Bp7lZ?#oVZa z>KZ{c86Xc7kcXTVhe?j#dHfSjZ84tG9z9mqw$*q#;RU>HN8|s}?t*?P-j%ptTvy|} z82)de&=+Gd=dAIQ1!Myf9=o7QJj3{1L;K6a)bXHT(I$X0Ivj9zklz^Jz`?$%$ht<0 zpJY5sJDH@d#i!+2yYhKjn*8_@K2Ll0J0d}qjDcnLUniN9oM@#y&%)eB|+Ld(_n+IGPL~Ga|6YjJ8_y&{VO~jN4gh zR(n|rnaba|IJ6^0(^%djZPuU~GLsv1vT&pJ&EWmT-vag*2fGJbM}f>6uNfI{4dHk7 z{#eZie(RUq;I3#;vQRYG=91;oZ&)IrMOASx12^>4H4Ep`MMe&J|b1I}%_G;eIcUw^tJD4t} zoZTYnjD}3;`bMe8SHU2KThs!jbH8RvXCN|B-?0OIamhra z<*(=STMA3pwZ%`T2t&EWkdxyqI!;6?Hgk@dQGA@{_?iwOJDch35#4C-h+slGtMR@N zXgYc{OODnT@f*4`OODqp{Dw}&lJj4PpUrv?w(o7x-_3-sG!h00ng1I1mzxPqdoyIW zSD7_RWXQMJ@a`%2nAnw-g#>A}?B-DSG+scy#w%OMvYx%rCLaXDxi9@8b=7TSc%giU5k`nH&}_#4bvdL>Gdf^A39lDk26An_XENJItLwNq^Y|j)y|2C7M*j2=p1zO zmK-l21HXD>G^gbdvv0Z>({_lCq7V^|XbIKJW34z1eYGXW6%xOpE4So)fMURKSI!OS z$`64ZIhIuy!+tHaJ=I&K`E$d2miJr3dnfNFhW8HMw+-)U-l>N7+r8rq@9Ewr&T+3e zziJ{mNEBPUqTb&bC?*vzh@eOZ+3dkp1M3x#@>ev8{s6_~BjR&sr0A8m;9=~SNY#so zp5&~n((~#|k#;p^Jw3Z#f@zN#=s5=SP49fEo}PzW>**QU6rP@WpDXk{cur4G>iR2D z-XzRgt>pIQF!{ZrssKPl0Zf79~dYBb3%YR>!B#f<_Im zKmq;ZX9^L93IBKvw;oX%ZfOEH=KM3QvCeNr>%XG@{}V^Z^or)3hLHzAnWKC+2)5fy z6nwk2j)Km;XEofu3Bc|4&lH+%(8XUS`FaKoAz>st=i*5Bpjo^S%bVz#yUvauSCKdc zjUXT2ZWrxXNB#E+a?kWZq8%8CLvp;1Q{1a71dWp@?fVw|hM_qmXR;3GF9UF%_^E<( z+!?NkDe)|}{na@JiX9Mjpmn(9{N+seA(x~=UEQEHb+fLiGcl0B8l|Z(<6DK0nT{XM z3Sy1Hq@?R2=72jE(;K*9Br2Cj+P z=lC4?dHVNJdR`cV(54@5t{+pcx6sw=#2dH6(fSg#rUms{u1x{C4t=8JnykyUF(6l^ znrm=c-!6tW zhA)vEcZs2mVMZj!CE^VunMlspbx2hOAhrKv1*r+Axn342FOryfF-jGnKa1+#qR(?$ z@rT=C4XlH{Isp3Aj}a2s{ z4uIfRAzXV(FC=d@Ob+#@GzilIAl$7&*mF|fvbT_G(+6AhElV=!-t$g{Z`p|t6{xP0 z`d*kwLq5Buz86Zw8;M2dy*j8%1E9`Pp|%%Ld2*g?(TleGE&8@Mo(wPA?o;9Yc7pEW zL>|2FB0UdYd6CM4U!M%mgHazUJUHtFW5z037aU8k=9%>q>5>@z1UX0tb!7n5&*v*p zvrgy*X8}RA8hCknD?JsXPll)BfcZ+R4ZkEs@phJUnWZN*cyj{aHCM5m zb6hV~=0@p-=@=b^j{_jA|3JZLkbppa=lHmVUIiO1-bh7pUVkDy_vL?}VAS$>_*{L| zTK69duROI?VXe{SnjhHzYOYzjT+V=8b@P-O#~cf<7JaMcy6;$cs=qc*sqrRVuIT}} zo>5^%9AnCo8sXU4Os94@cjzE23T(d$Va-v7K$^aD{sm}uYOaEt`>0OdJ4YT1KZ45D zG6O^zS}8cYUVxs(a~0gKKN_9}PpG-h|EW`pocoT3m-p?}GSz>E?}Jt<&h!5aFQX5< zufTfg&+uct{C&0ke}?C?chp>|qAj%8bHrJ63r1)2qv3IWNQLm{5iQrJf$djuu09f8 zlC)BD%|8;JpAWpJ)cBGvSD@lj{+)B?)jKMz)Fa{LdcF#)h4mX=eGgr~n}j?#jWhr^Gc#cHm*4~M5&@f?-^59{adADioD zZReT8;rr%ZwVr*4!mn0uP;;$36doJ@y9zdM9tvNh=Uuh^hxGEK-vy}gky@tfq42yh zNv;1fU9Lc>|BwpnPha>Msl5uT+8183v{G};_l1{I2i{S~zc2h)Dpzw2@P!|j@2I&_ zec`1<{yXaY=L^q?ebik059$_6PJN35W!cqg{a+spU;nAus{B6~UgG_v=6d{K_+I@~ z&2{I&@FU(nTfyr}U9P}I+rw(E6JGtiv_n@Wa9(Pw*1yIZzAaH|u2}*yFI^W!>6fk} zb@c=;UCU>w{qGG=|98|}sb2jodD+46{P%=f=DZx9m%FREcIa{i&Wl&8xxSV!(El^l z{+BP%|7xzsRScP@sKzM1_NrkoPKzORQR$+Z|AUt3C z-d1209SG0k>(yL?4uqG2@2j~w90=c!FTAbbC0(G6{Zv@qKf+6!TU1yTe}o?)%~e=) zbh!ezLiW9-z#6B^6}T0$Qq9%(kMR8U=37dQH~$fStc+A)MeA~{3ta!Ix%TW2KObDL z=31f46*vQ)e^bfz`u^}-xI@kL?Edh*{q>tl8++{!&pB>2*R}h@%e}|d8XJEPKQrE` z=Gy*yc>cOl&GqH);YY`bH`Mk2@4Ef%{{8T_t27Z@wEum4BG>7H!9`~d6y7jLpt?EVNkf6KoYkiOhrX;y3sz6x-ID}P;!e|cr7 z_?H9t2ys@8dc(}{5`YI_ul9Xr@aNeZCY~iyQ6sF1?zj>@>&5%9bupBNyiUdh9gQ(7 zU(&~{9Az)C_KvVk7<~mkM3y2W+G2HaC&}nQT8$PZyPuM}8cY=NtzpRK!SDF9})9_9ce%--9z^PT#g3_~d^(6dPT@>dwkTXf|y zysSRn8PKakIC`0ijr3ae59#%w9=8dv8gLu2?Vr&rT@UjnBh2`1e@(9*`tk>+8_L&g zy%4=zmHk{hkX$pB0lPg!{6WV9Fj${#N5+uL-6U;?(IvF%eDDl>B}n0Iy0F>(8qRL zb+$aQ@-uzaz>?V@HoN9n2flO<-PsP5dXGH0@_$F$Up=shFu<E%RB0BfaUx0z zjl-%SjN%EaJiyBPI8RoZK~QR~_iz&;d zQ2cQJ<7L(#p8ZKROce8-KKeEKuaoxho@ReR7qHj{^5rYG+|u?)0qy=g@jYF9Pbp2q z?}Gxr$BXZ=r5*5lSM@t72;Qf(cbab>GUzMHeO5N>V2bIuPz}Ty?AQtXktmP5PZwf4 zPhQ~S@$wGY=^4x&@x-Z{ZnzXinADJTeQ{58$|{o<;_yp6Nt!YuLJcM7XoY(XQ#v){ zltf5zo3#*mle7?dzqeFFp7Kj8G#ajHMd3~q$FhK7 zWllCQvCi4776ceNo5>E~Htz=}jw9z7PH1A|C^{hqwU?$G(_$1l-sJFjv~yC8q1%3C zz3*8kGwpu5D5R+AX2?D9rlO{+AkXmSSD8!OIDLJkK1Yj=oF$1`-qfc4VENhTw#SRj zm*}uobo_^JHefE-O=Z5^{(~kA^dewX6NQh;L>wPOrE$tL(OQ7XFC(=8lb4#60FyQH zw+_bowu`XCIdqJO|7epq;3M?~Mtuz56VJEAp4eR-t{19r{>xryngYF$pw|~M_NSv0 z(LW+ega{@1>$gbGK9IuU*J?oIB+7rE&f-=4JlrgqDN%&_bfs~kjZwvIAh%J>6@B7wb&4FCJ=H|fQlX9FBO{obhC6I>| znlSCYX5Iw7eLKf<;r7Ie_DpMrL#OnK;lqd1_#r6eXCvDl$GB=Oh>45RS&n4jfz4SI zTg&ORyw7F>f+7NTEC>kizj2!4_-Qrrheaa(U^9+BJrBo(5YDZ{&00NaWGF;+g&Y(= zT9BIfJ^aA<^REZSemh=4gCtdGY8X zv?ZJJ2#RoVE!qR{T>K4dW(cXY0rcxmbupz3>TUBA@tPCXj285td& zv-PMvphE>=(^91;IUu$xQbxK}8R=cnlCSkSyibbb%GStf0+&T1keK7*i`zF7ro<1Rxgcw{uLShSx4@&`?F|G!Qe)lCFL52cBXvUs{XuxB?4qF}InDrL zI9&QP(}v4|NM*R}62ry2h4DYg_}c{RLlLG>GJALchL<6R?EyoMR?GOM2pDJ&{ue_F z@9+CN)7O%}9$L5*dzyu<62_EzcKr9KL-@|Kr^rulAI5jL0O{e@L0 zF)F(l(u9=DTKDaCZLc1gmt6072>Y0_v<{~g$+9WsLr#y z+WRtQ5&n}N77E^*PEj%1x$#=m{!+hJ@_l#is1?Y9YP9#5Gq_7XNpkdxP_VC3!eQ@EZa?-r@&2Jfc?M4*v)hF?(I z^cF+L<%ICEQ=Cjaal>(S6ig1F(54rGLO$*L_<--9@XFUIc+;k)}%Sgv(p z8qC-7zZ8)FVaz|_I3nkL?7V_)Y7-?KJFi2!7ql|3HaAV(GI8%K7t(sV1doJ9(LDMg-zLb7#Q-jUd?cYy!bmU zJe;y=Q~YF#x0zpyc==_767f=U;%yBa^|D6(B%e`uKQa^w|JLm$5GwX6I+Mdqx^Cl9 ziu(2b9Btk?-#rq#PI%pL|`w|Fx11_VuaTP;k~HB+sydo33xdn@w@i|_#Fg( z@U~Oo@p@1;3wRirCAf<+FTf?U$LgoOpV6bb>byD(IX)@0e~jiI9o+tB5Wd3gbWg3} zzC*8F^|$2sme78JXUh$Sm2QC52iG-Xq$P5h1YqBs2&KrCW%Zlwdn3JXu-hH$AD622 z>Eh27SgjyNC|tv?5W-_}=LR~xpvWg_R(Z5cd;4Z*ZGH<8y$$_4`72JF5sG?*rSs5* zN#xSUUqbm+bclL+i4_AXxZkzncDxo|;_eXfDo>{?(KnCE?M73pM`0kyy%-1*BS2{P zFW-Z=XT^5DYEpF9f14)`;b@RvkbfzuWh*c|p=-y9g|Mzitnti9e)@AihONk~G4+EpX-CAwrdo?ZhWm6PFuFFjlN(sPC1dE`8%IGeO4H6G?(si$Fs3Y zya8Sdk~-ve%|KwA4*!=rsyDuWGm=OAi~941Jo%l`)Il8(DE7`P2T9A1oY+ou(N4rl zcS?`%e7P!Ko|=gx1g9RnL%zyYW3Nh)Yo?LmT?Un>^9@&n;heq!uaB=1hw~!#hv9hQ zm*+#D(|^%{&*_(OloMwG-WQceCxywb*XhDnvEwx)#D%Y;I`C;7-{q*BuVyYkr#oM@ zuS6)39Qm`D9oumT$MSW27TLXktHx`A@kCOjtLK%qjr@IIllVRbNr#`kl}*ZeYMplf zbu5Gh-h^E5o8wrtAZ z4rEUQu3AMGlH}t(U1^;Gsx4Nz2)M_y$Zz@g10;;-Q=zU;G9r1-!CUWN;^MEV#eYVe zu#2N``=jBMtqh6z93Cn!6ZhMvDVXntj`Q~O`;GU%>F$$D($vf35K?(admWjq@@pem zy_|>WMS)(3Hdv%l7_ zrvvRr5ZyQ&9$4F*!I8A&djXoW)>h!oiqobSC1b~1^!5)iMU}X9CdWe&cUHVUW1cai zeCjrsM{#MQhKE3ZKp|UAw4Q15({0>wXk3San_m88<5MzB{A?BreEo|SEa&3p8MW-`@L8 zDTU0InVnGl$3cz=e(#Ku!#NwPSiG6@alUkvtd=N}~pDuMR35$>3`oz?kA-1nxF(E+s5)-rXA{fvl}1T%XIt}bvo z5?jy7@N6Z6L0AC8_ayk9iA$?I5dWwaxdJ zP|{_X^f|t#Bgkd~J{fnMIZr!5*{Zg3Kdu+WKNvjmG#f{`Gl_UD$20K?$LU8*jJ)+` zR_z*}B#pr8ex1hHWVG_R2njS91Mc8O)S8-PUl*?iCROC!p#;1!S+7uvLm~?W+=T`5 zMPFdagbLL@tLV@o9@}Ng+%0f?Tf2KO$*~fd-eFy*%UV3b+6J?KFwQ9SOi%=} zZU}(7G9a6$9cB9=AluIY*}lPSsy-t|ruh)$LcV+VPvzEk%h7R0yJ>Herc9sGfXa`x zV~W2(dXMe0qIF1y0Q)O|T~vjE^yCMihElASmdwf4wrgRKSmgG9GD1<~jkS&mQ>(8n z*BV8&=D&={*B>#NR_H;Oewd2dFn9Vv7&%YFg2%Epzck72EAuc3x^L%$KAKHjq<^!kc! ze;7d=5UsD(T2I@?Bdj^{yqkDLUc~FGY<>PeIKMi0@^5NTeFv00el3suAbuZV{C-($ z?R$rtl);BQEpjTHDEInG+_T*puVXr@U(XBuQBMk(VeAzad2$omJ)ZTc?2PO$&puMm zw+Sp(Vn2S3E9l*N)KXfjbecyjWgTHeVGlk^%#AH%0mc{YmJk0BF z`}v6c=gGpbc$8UL+1p!dqy##WKiYYYUisxgjg%N|xXs=dwUMsY zfh8(*B}%zOf}M6G#L__3&w;nG;G3yJN~UNnFM@)2G00Cp4V5qZq8^{ix@;W^^FKWo zp8k2LeExHKHl2Vx$N0Hy2c+-k=gd-g_K5TuTZYP;MEuQSm!D0u0cM?ePJ{HH`8jhW zJg*n|{qVekp9_xzoX^EGOoj41@eF+`zX{K{x=W}CxxS)!r_g^HWtXrbYT8G?*@ZXI zZ*S9EyvRV7htU*m?;2r?ORcuA8|>O(h+kZl6&puCG5AxAQ@XvxWTLwktFjVNVz0nT ziVLhAeZ7aH{%wgCx>N};5qgjSgJ0&Y_bZ=BDIuwnEO$Ey5@o$Ri$+7?ei%|0JF9K& zmSa>Rmm4>RX4Rjum)-8lN}%!l4$5-dY;Rw`VhvE0d9m&wj8lCwREm!6Hd z{W^6a>f6imtevH0HfxvV>j0+}!y(Nl@qN%`G49^ypw9lCWAl%99%aryjB*-PF>FF? zs-`960KP9J(%`Yda7#wppYM5Bay)z#ZL;|D__Oy*T#x91r7^H51y~9K!<>q#MSd10zw;!?qW$~UUlhku9OqCV7 z{XzlXSbrSUFD75I@JE5QXM{DjF4l8|<8HqgX={cUCRb2EbKfa-zvxgx>K1H~y})XX zV6Z3@^8hOWJw7B>Lca=0j|8O07RZjb^OA^V>fnAJ;hzqilwxm)bVZT?hcMGqssx&m5osGSaS%R4kw0Tb^l}_c`5)^6 zBmn^5cf;}ilMJWf{$Tl;HmJm+P3=be+Pj&a z@pwOjl05_RA-lRF;Dhe|3m|F!ZAvC9WP;(n1C;eb4BG44q?S)E&W(Vt_Os@(F#v%h z%mRGB_07!Nw++?K`%w9&%T`m%yyN*yA(^jZg@h+C0kFUeR6q^EtJXMx{{4zP;p~x| zJsnxmC|_}YjLtj;y}*?T&cb1esS1Z>mNN5NoMp?iAzjKQmK>}AO)_;&22 zqh^0U3lYGTWwynu`Y@&g#gL(pq&z-OD&s?4-`M%i3(S65P5bRb#R7o{YQaiAz$w7a z1CW+3biWSiTOeHUz*6qB4|n)5V0(T9-S&_Nr1f8BP1`<{5sQ)>LveM`!2(H$;Y6f8 zRQZc5%i@j#95HdamKdWZzOMj`Ky$w(#;S>nw8S_yafOx`uO_b55);(K@3q84HF2Ak zXjK#Iw8SJe@pmmTSxxk5i79I0DJ?NgP4sJt>1twJdo?jbO>Cn>BI1RLK&$`%<+cgdQ)Rnwi-Lwaa5JxQgU-|$41Nomm@_*%jp!_e( z{l6{$O~*sYe@qP}|INq$QvUD!zajr?|62an2FU+yxql)5n{q?Q|BL&EkpFG^hLHcs zeM89q&V573{~moq$p3r$hLHbxeM89qhx>+*|HJx*kpIv04I%&Y`-YJJllq2`|8MjS zA^$(^`%mOQ5+CLN;=U~Z_vY&4|D{6ydxGUZ=^`Vwb$j)tv~DkZ9@dQyzo)Dl_2&sH zKf1Gq0lQr9&Kg*iHH_AVWwwim1Bc-FrDdAGA5JF<|NQTK^8e}irQpY}d~YNN%== z5l1Pycq~{Sh?6H#v|O`YnJ{p7qAD|w&Xh7qbW~*yBm#EB=>rP90c7>>5EEQBdu~DU zd-~*D$+16DKfi1nsfyFV?yOuPPxp<~)BBuW~>)Sg_yCXjtVhjm5d58W6c^BV#fMlREQaC;iwQZ);FU<%vdW% zg_yA_MunKMHjN4~WBocR#Eez1C1$#_EJSC?@g?@>gczq^a(sx7_r`*ta^U6Q?tXF3 zEs|q8K4!&ZUK-n33BX?k?yN-k$#-X2;paJbRucR?;m%5ipCRrEDNeubA@{v$AYUGE z_e*zfvEA#=%7Aa#?yPKDJw31D(i@Tlh8fT6=hPhIoXWh5;}0iNd?VojAyikZmOm+&hfDHaF34E;N~IRtXvha?<*lMaegP) zVSUL(x{_B>$!t}T6IK8AvzY0<|Kh?y&AN4z24s6nWA)x!#d$5rni!I|B_;xHEm5_sCLEG@cG2Ywu|i*5uFEH6Y|%uFI7Twq zs|RY(Z~g?ZtNi_-V%xLsF?sf;CY#NbVNj_bG^*4%qc%0YbWK$j$th5H_((UF?n_kW z6Fm1)^q#>&+zia$qN+lqOMAe6xplD-5UNJ`6U^(b9Zq8@vNf>!`c4w`BC0gLplKcZ2dYiUrU_bDKfH4t*4 zg$>VT6W{lWSEQ~%GW)XB@qlH}TmbS#)XEdj)3JxSC8tQ=*2>R_B#}uT1n>4gBW!n` zt}4tg$1fJO_?;qe3$1vvND`Uk1TJnUDL02iinj}hV&CfH(eU}+Ao-g`~! z_^Hjf!$T+#djZ)3HE)BWUR1Wa$XU|QWJ4Pd=~5QsgI_fN}Si+ zB!BOu_$UPN{ZoqyfJT z4;u0N{H&63oH66xNtkhUnPMF3P&3|-idQcZynyrEDG?_53c{J@XGBkOJRM0khsg{O z^a}t9xR}ZJD+!bg=V^2;RH-E@X`@!+Ww*0LR6^RS-5@#s6=iJBWya?0KBEAjJJnP& z**BPt1UjYGG%4bO?S4gt*xv|oZ@m%Xd=(-(3`1(_VflUN2K%}UwrmvZ&ApcIkWGng zfzOsBuOk0S+3SJ7$c5+a*S0CnDk{6^*cay91bJN)vvBe`m4zb~SR_XVUO=jAPN|VV z-!&*$qFI8zIRPBBO|(0Is5=UJ8;1tD5>q!gkE3V7t!Ty=RPY_8U|W4Zoid`)Q9;8I z6U8FV)~F|ywtuohjA^Tzf0KkzPNr#aqqnY+mT)v)(T1xKre;{3<`d5_281#)pabs; z4&s^5>J^gM{5skJ&sdBtD_3cEuir@I0G=7BLcGohac?8J8j{$;V5YzWda*U-FT~d7 z2=4QAU^RCXNi7ymlJn680l{*nN>|t6n)Dx>acFYu|9Y5x!f6|6o9|aRR$L^!M*wVC;2QA+v#Xn&TrJy$xY(kxjk9d|_cXn(B^xHU9~6#Wv@d|X zbO@-zb&645)r&$yhHSy4lhlH${JSn7IcA>{nXbLSyx0LCxvCI>3H3PeW9gc0Sbr)0 z1WS1J@kpF|H3C63wmYKwmR4_*s8@J9U8j=Q!&B3hIA#haLZ9dgoi`Rbd{Qa&p;iba zch8Azke}bzJI7?W|5d=X2EYwK=1qc|-%(_@uaA(Azhp9Xy=_ciU8xNb#!`<`Dcd{z zo+LjCBLi*R$i2a}-6ex)Bzwx!^_sdd!ok07Y)H3Jc z{I@`tPJ_87-BqO&zU`$8HhS)fdeWo2;eu8aIahE&`adg*w9twG^{WaLTf9}hS>CV8 zqrrvod7K#j%}b%CaX&!R^F{%=Blc1N+fFjzubc3i?mTNRch0Kb5!J5Ea>Vn!rwy*3s!+f|&MHV~uN`YpCd$)z;-S~9NWFtQ|-a+<$<2NVnoJiBBQ6g=DFD2 z)w_@HF89O=0Cj_50cz4ypydpe0`M`0^jYt|bDF%=&eM?C?#x))hgs5L`%oN6UtoM4 z!+x{yS1Yil6x;Yl=9e){&ikuaUivRv)PZ+0&75Gbi1lCg6@nAiyovjk4;4OK{>zrb z2M_}-aOp*HfJ=~aDQm>F+cQ)>&zv|z+w74+h2nFgY9S8`-0xb^O0Rf?buhOC%H@dt z=p1)u98_|JqK&&=Flos)FFtxQ6Fhm=3{NIGp}i)Emkz&>+}l&FkTB1h>8XalN$?kF zO(gv{V1u-pjJIZD%-<1Ki^8Y(pC#9bdoZFyRd=3Lpn+GkXY0UEbPdd%p&Gr(&Cjr< zWDm(C*N(^gC{_DmSa%MDT81b)9UgSDH(McjFg&KohsIH!-q5NcAR33&-0;R5RLPUT zStB4zIzoW|(?yt`$*8tsiJEB4xyLI_rnP}sQ2Zy7z7F<8&wPXSJ2Gnac{bJ_tlK#{ zt_I#9za8U+`79!SPR(lEA@C5eI$+tFeS3W4uG|Gro{gzxdk#XCZ}=wkedy$UP(n z3TYY}rpQR>X<)Gbg2_s&|^FW8@N02zpuP}oc1Mj2uey3{I#W=-j_VdnK+l{PHrJiKQdOC(|79}g5m<3d z$D4*HStcDe#QPBYPj(?v#?R39pRPT{qx|)4L*@O#P8xbr_AJuvMLjs6_{q5b{Zjp| z?~4uz!In&}ic75MIqACu&*O>*M09;2O)7p9GweW@sJv12xQ@c32dlEXy?F%{=iTmP z9uFf{5eGktaXXx~N_R`yHO|w^3+d@7cA3p;kKMgn5Ye+=f0N0w?hQ@43mt?2dvZ)qS6s3NOUJML&dvl2BlV)`XPh&fhLTH2IZfGF<`^;{h@p@?;4vU z-c(`0=kcDhy1_Jy-&LLyJ@LT(4=T=v1Q$lj#$^OE|2Y+2nhPy6 zR22*fowU2Uj$;wFr4*Yh-M!Yn&V~*u4eX$z*>50> z9!6Fq`LXXP%M56T{Lz9i``7kEh*mc4b3;B4A1U;P-(NxyW zXU`0FZ2Wc!ac8Dpie3ekY91mM`R0`fZG109UsjOop+oM#k$NruObU7KRcP<2r#XfF zMY4@x5;QR6kn-*k5~9hjO5YO9&y(Y)T72RBzYoKfg?f);X){37!6;1LmtLL_^HD5Z4##A2PyU{xxnGW+%{6DEK6qv zaXBofo|G>^XG3usr{tNhYwqzw^%y|XQH;IP7%4fiP0*G^;1o8Nm`MUrzVaK4k<>g8 z)(S(<$I2f7JRn_)Yo{W&kIJ}jDI6ZJQ_8OzduNwAhmEjj{Q?AY=S}546DXF$B>n&a=iV3Ry1X=dHU|! z7u;R)6F#l0_J!!GUOw)sJ8?g~(IQRl7=hPr%t@L>+=s$0vHSfky3!UkH26trwJ8u@ zV0WE37~EaAQLHFeh2-3CqNNUbaegl#Tsq6R`|{knLuiM@L2za{(i{@D1vzu|jK(D%D@_1_OQ>A$nTeJ`~> zMV@^hf-5(Bv48U@8jB+D)%%0$b^SZ<-&U55dLrWS*Db#q;mE>}&ZBJU_(GWiW!|`{oAB z*8-m9eF1Nd2Cpwx-x3n^^R37~;l1Ge*UCgKn)=0TXuckcm&K8N$d^jhdi~2XJP0)z~b`1tA>2F*Z`n$cO_L z&NQ*_raW_Ty`TIPD+A%?=-@tpa8HlN$XFHu$~+pr;~v>Bi%8WPU8VCDogu!JE<&bo z9mRv8r%_v}ipJ!{3)zES*!`+i&eT=8=MO?GS2V;s3CkSyTK(Goo}xx5#q+h|Jpcc} z^S}2`9(FiiV*WG19p-+QCQ13JKS<+uFgIFYozxB^-2I+5g?lvYAjbl23QrPK zxK&=cpO#c?GvnbX6QoJcQ7nNC@vteJJil8gKKA#YQB!iMDRb4P*v{*lQnU_{#QDj7 zr~r}N5rW@S0h8sn76dMK1vOvp9A0by~AhFC7aO6y~&`6wi&3f`SG|7f-Td>_khuJkW*>lr;n^E_P2@-eaM6F zD?yYIH~?&7Z%*I;zt&@{&P)(zD=-qOs|FWpqTSh|-Mt^PJ>H@cJ>liAadW@HG;tE$ znMX3v-0?kbBHgIR_kiK5H>OzGJ6Q4wtr1f^{m?8b&C}09d&&J`Xz|+*-5uC}#Xtlr z{GXuiawGwwMeDFt6xfm1zu9X!NsaVqSWouXz{%cyJXgUKB!50DV16QfJJW;aRUjCV zT%+bP4`t4!{nvqtz22j70kR@Zesv$I`$;w9Fviy%%KnSGAM7BsDLiMh$B5DJ8}h9@MfdIC5cM0CdwK_- zFO2pOa%nZ=EFqBNy@+76k^|AI-L9gACV6s8UDYGCs%azb&tJ4}{j_gXZYwuWuB|~O zC6kRvhb#KQ!-D7!%+<-iy{uP2l6>mzF#8p{{Z0@)y3I};o4!j+^t+vS*9Gr(4j&Y} z+xhE+6Jl8 zw8RgL8>FUPw4S3$LeXcn&C)!IFRU<=0;9zT8Z(vEDr4;D!1Yi!BP)@7daaiCQ|ANu z9(gyq7*gunBANLQIU)RkImS3ws_}lX9-nmBkRW{!! zzbZcdTk@;&Lnc(ke53ptw)5}GFOPswH$Sxex@u>z{5mo}to-Ww{{LI#m(sA4^EH;c z&vOC!wM-Pa;zLb-C3r%}uj@X%fc%;wpxp4`-;!S|YyLuhb^7oh$*;w8{yX{gp04pA zOjP-Gb&XMe9V^ZHP$$1Iq@?S3IQg{_IWU9}L-}%3TliqJ-bDK)9bGkaUPs|a zFM+9x&kj}kz>M4(=!$T05b^GaSmB#7CpzvkSfrDA)VK#d)wppk>>tU+Nn>CI@~8zyX}sxY znt#QSD4u7Y#`6Q*5k<=)pBevhj8o*>;bh;C2Kq>*M?`?F4elhs6`A^a+)9Fm-ei)8 z|I7zG7{%EW9se2aEF@qk25IVNl$L;LY+*MQY2-PA-zGAimSVnl$o$>{mQ=&vLg5OE zNvrdGqJx{$X*{RoS+9o=C(rSR`~$@p%%L()8AXc4_;0hYM8$Fj?L2vI$d^eSJi6Pd}fMC&{z!B{_l4(@EqC0t4={H&tcW%K6Ol z*Ke~Cuvns`(Cs2ZAwKG?73NDde9w_Z?((M5d?^#?K=(VLw8*f^-%zZ@@#)GH2_`14 z9QhaJUZip_+=#&#(W0&MJ!#Ub?fj?)sWwlVeB?yhEumz+eCV=}iQMBeO=zC`kryJQ zyO!REb=SzBpn+3$X)fm@L~G<3Y;~R4D#|2(e7~xdLB4)m>Uj>jZd5f9hIfD#kCD$; zUxYI2@&0FkF2Hz zDNITtE;3YWub_?A=Rea9D-&MF>CP`XVmX>~h92{`b(rJg<&#bI{>q-FMBjoErKgp( z4RoTscLq;R<37{YJeBgs83Y*b2q2B}h0l1xMMJ~)W{6p*LKz(I&cLHzzz4Yyi>03S z;LwkiR`)dNaVrSGttH^*ZKXe7)#GQch?cvDMDJ#So{Ab1#ybQ+vA|o7fiv-Z9;?4j z$7}lSgjaqD+)hBAlRJ?3$LbJT9KM74Qrn#>#PeAo){_>)|}>&A^{UB>VDPgXFrod;X88v3O`x!H5rX zv-}Zl+~+U;ueLVCu7+8fg7*RGYHrRo--R{zl$^O7_T)*bJr*Y&!o{Sg+t;5NC!W0T zQ2=_cQi_^jQFb5TR~hP>eb>>?45E?k->P~3S%~~l6lVU> z%h#kY#3Z&z1M+V5h3(4>`e#H40E4Ox`sax0M*TD9wZG6mmv^OEHc5%WeMN8`sJ&ey zAKyR~#RAV>13dd58c#`qYNx)v&wU<@?xGF#YUq65WU^OPs~!@ZA6~ES-Y*r+GuoKs zks1nD0}6Ya0#H!-UAgZDp~@klcIu6 z5Df8}SfSOIpsr(S|z=Cy5(J&F?Luy*YV^3-|g! zuuLVlsr;6-_NkG_lNVYVtzYUqzIC*cYoYj;h<5nuN|gOZ1O9D7<1f#zAe8$mD8n%8 zAW-IE)`1pkyaQ$aRG|3XG=bvpXB3lDAVF>uE z)*AO022cC%_7}*0PT5)L5Tb%XYk5E6QUFl8bP=sIs>sR8){ITufQIS3g`lpXN*D1q zT63LHzkNEbzrIJ`jP&B%&A9#5n!FL^H1rab9AD}5VeE|DY*LhxlzplW!NXk)b*sFj zTsPFMLb~=R>Ds?8dck7$u0VIDarfx99gYNUJah;%!1Kz>T=az4${-Iv4hhoA#`(=t4`190yGuP>9gl+}YQh*GkNJs9&E4N^3IuU1pgFtN z02n;d>313jBt`y#AN2qR(Hep^B(Wm?t$_b zWw~Pa^CKcy5r@O`HM>z2jv$0lWO|}^5&W;tlcZf)(`qli2SifceN2Stj2E#~<9%>aX(exGw;-?930hK3KWwhaY~hAL{L4cW%q?OBs@Bsa|IoNaric zV(f|U*rpJ*20FJS<3i#a$X*jIFW)v4CdT#y;7_L%+INLNolT?`Es3eb3oR;f`-IF7 zY3~$unA>o!Pekj(Jq6Z83fYwdB4I=QujL1$i+iLzvt`&cw8z@ec60r2t_|e}qwH%_ zrsY{X)c*$0#pW3iWo^qry0o{K)5Y6p);ul8+EFk}kpt=9dr*KqZK|Jd%o<_M1Od$5X4`Uc)C8raLuJB{CAYnq2_ zqowE!HZp%+AhP!oamLTaX|2OEWy5fb6Q4Wcfn%|`FapEkBn`);PMEa2e7Fb?Fl-OK z!VJ{BD4j_6OwA3*S{G74qeRzrUTU15mXsP4P`&-Vf&TA8Q@uI3HBR%e0T)m7A*g-V z8P7(*3e;@cA0cMn<;6e+SfY!riCu%6n4xPTC3Hi;N-arb5 zGu8}9xOTvMHzYwj)lM0x(C#}FENsnTCSl@Hu0c`XHUnw%)E2yJRuwq=QQ$-?0*Bu~Ahq4> zTDu%YX#KDBqY9;t2uBf04EO-ZC6Gs*0^oOcH4yv;6@C}-b|Ls(>kp{#tBQN20H6%{ zy-9R_sk5SGHkOtZSi8}^%p#s9sP!;OT1D_2v0U6H*r&fvY!rM8Y}1U#U;gd(#t2(C zGzm#^_cANSIap-aQnq!PQ=kv2iTe%fVpUy){Pmmrs*LiNr7vo6gRR*h#d^EHP>>Q= z+gmCHVo&H0`)!#Hu@;C}TR_YvfoxSOd>HMcK$UuO0)XpjhA(2(kBR*#(WE6B{o%3N zrAvdSff37SJ#o9bUTNXJw5SV7r?{XM3&z(3qQnDHe82LHeISH?v3mdACm||qTw2ff z-{IKpo_bnTW>LKPAs^YQVmuc>=SKa)M!4)NSvCL0wX11$vr@HJ9dE3e^oOFQ;_fxj zA9_B^x&%m9x%0C+T|$(QJ>6Q~p^Y^6y&` zKEEqO{;xyj=k*;Z3htS!#B{JWMA>{O>xuGY#q#3##jEmf#K5LmaU%SDg58%8G9+LIPt;QzQAoIsmXZKD zSl-m8{A{zf$0Ii4mCSoaSmSa1N9HaSHNScG)kVjzZ@QC9o4aLy7!T*;HNLX#oiel46%C&Amq9JCO;2`vPNdwRyf^onLt*(Ot3 z79iYP=%(H%-WD_FsLsJin6w#5ApS>i^zNqg=WC9Tekw2|`-Zlz$M+g34|hpg0yvFi(%WY984 zXKj$aHh+T>+dwJPLsw?O7ZiA6lh|J>I#gl`KI*F-!)b3oLG4(3{TRku+waef?0#n} z&_?qB?iex&or|Q&v1Xvx9OT2M%8xe*^OZ-WW!cv5XjKGC2r7U0-UA-G;6oNXbd{Hn zX1_)9x1^T$6s?%4YsIgh*W;DU$!>NHWc%}?b>zcUqsBj=_$9gk0CB6d)7MoRG$jCl zw#rYIi#`uNa$P@Kql$Lq`sHYGp2L!D%Sy7Uv&gTGHXgZ79UU@UKyL~cU?X{}_@C2S zHbOMJPS-T0QMDrhe3p~DJ=@od z@h9srcuL&M3dqT~3=0^4{u^pKY#&-uGF<#8?y~_H@g}Z3&SYjJ%1%)0V#GVE1h|c4 zw)!tInf#Y+quT%ymSaW=&Lhrq=b0L|4TXW4g{Bz)hrM?JjHn8 zOag=;((qD-XT(Qm7#;x>LK2y8t+n@=2ai_U-uvJCe|KPKpR>ymX9%Vy)e!FZu?Fp>$UoLNe%#v@=-~DhNfnYN^pDZ_{u&k)BQz-I8D~SB)fx<6X{cfs za~M)Tq~<5&j&4GKM9zoUD0oWhypKYX3s{V?0>qGR5jPxisE@q7xye+&1@ptH-mFHG zcaLE2p~4Jclfa-@y1fdI<=)&HgJsfREFZ~ejQMZVkou(;+{Oe*vDcZQ(ClK9Uy0Hi1IjXf#*nY>4bn>V6Hp@=O z^f>z-%U0{sc)_yScF6IFbi>6~oF*IZhC#Eu4NGw8#z)}sVwxJ)d&@5!&uBJ|g8=L0 z=vt>Ejf`C?_X*(@T?>_+^!^-1FdWA180EOA$odZWYoQ7q?-qDDb#jwDn?8 zoAt6vTwV@!D6yXs?b$ejmsPjAhAjq?B<6W2*>^MPgSK)L+QtjU0P05=UB*+b+?+OL zXgeg@C#o1D!z(fuE3#M3?<-(!-^bCh6k#S97s@~i7%(B1x9c4I zjDu3UVN`A$Ex`u5%(+d%i@nMnaVT)Qn`jY;_k15}h1>!x_fL5Lm(wkK-fCQ>PO1rV z1h!WAj-lez1*LyP`!TeEX1%1k^}@wZtlOeW=w2^lTZwhC;ch{E&3&gEFLWkNG{rta zm$gG>?ZTme_AVt{{WZtc(2c%zxDB+yMd4j6+f-&g}J((;n9Z1uT*-UMY7fP%TMbUh+oW#0f%QCqdBtDO2 zkd#fc&w9L%wY!hhf*h9pf`nIhX96&kgP$#K$cVCjrV;IExaI;dD%$s|K14foT|le> z_QSO`FsL)se;Jr_5<+eYGwSaxFB60mV3x!eA463dmrB_ILIx5$uBD7I{CIQ0heD{5 zYXw$h6yDVW5G>mNo#FkUrZcT_g21kP{DLYGiz!<$mpI(ZYT|jQq+2lZD1k(}-mX&O zcA~ej*S1os;yCfe^_N){X9uf@?tJaaKD5CJJ21$!svLAO<@TG_d6I`iFH%6Yas=>*_nHrG>1 zaSpS~qmYnT&zLm-sfhhCK%I=EM2+5qHkWkkxKZM(E^D(&T<=o3#r07(m*u4OQnb{M z@s70{|L#+^`AE3Q{1PW;$Js+Df z%jlY!*K`>~U@2{96dzNC4x77-&^xu7<5|-T@^r;2T=D*$fY3O6N+-4A(_} zUu!@s70RDDm~9Fjp4FuF#%3thaF*3(DCRjSnZk&RD!vL>#yVyQu&|_CTUB)r36f6P z{@H4#UOynw(ExEm1AlLRLT+avj+YHp8m2fcHv=NsrC4}1@$~|* z9MR`#I-uOh=JG~tznIz1@(Sh@LGKvQd;tj+*@k=oJ=|N$W|E3+%v>K+ zLb*@56c(skb_rblLcmLEfzDvXI~K+|`T|%^6*pY)4+_aITGh^ic>0p;5U9@Ogl&*I zz)R1(-MzfRax~IwBY2gmOG*&`#49l3P$-{VOn0J)YL~mM4!;S(T~$cNaEP;^&wj|d zJDMSnjAs84YbU+bxF=eShx}1;i!(#z(AhB-OyW*|TS&gX zI+pRqeb4jz0Apem7Vy(mm^E| z)^tHz*W|z_N0w&INqC`l%2}PO+sXerFer!B3eqk75HEY4%ie)58^a9OV<}Ys0>(&t zC(RW?{1Y30JexGg+7&HnH!{7s_~uy7ALSF_ttKGh$6XKf<@d(2coFC2ar~|0--g$lpY2#K3oT`2G;RhtmTne_6?HE7jc2sWQym2{;=%)%GDOD5cU- z7VTVi#Vehbf@qWuKO*1uB-)pOKi9DTByU3wb>x8_cJmWn0|ZRl^3R}{)rTPvCX>;{ zr=_ER%C72xj>px}lQk*3#204c66aD`n`2YFmgBgj-KL=>tyQ$)t+meC^99F9%*FkA zl`5WY4LKFnhJwwx;X|nq#PqllM#=^(QShJiT;H3EuNW? zNAl6yr3N~vD^;|Ajw2X@ZBQx6F)QTv_jAH^VpyUWNMspGIE!u35KV~-+RvUuz{%nJ zxrm>f*!{c&+z3k4&tMZ!gq*7w4^cEKTdm0~>TH|16y(4l_ zN>=1$*gdQpe8U2aK2D0hgLhQCQmbGtxQUH(shH-HmUox^bD&~@pBqCL<$nDk9i&ow zSHaS4Jms4RAF1o9qp@BSQ6}h8qAh}GT%NfK!n|edok;6=h7vHY_ffomYxTY!h7Xnf zCHYIP!5*`ZqY!U4FuhK7s#9(M0S;P6r}us&^JwreP2v{7X+t1<4c2O7=h1zpk@&~j z)mL2p2F=s~;&L;BCk89q1FOI0FLgLh7d7;9I%aI~mZLofN>;sZ zHFk*cklnRZ=l_F3PqnBXx&y1Y-o-DfE{E2>M>^`5vL$>1;4+91QJNfN z;QoSem9-sl1{-&EBMp1j0fHl_Y#0dnovh!+0M}_Bj@zk|)p#rKI{-Dl+fk`&!!NKA z@~0*8j4kzl76cSYJikQ{vp=mrfnO4L&^bfZC(ao=Wy?;8<$V$F-BNmAd;wWI-$2Z3 zy;lAd^1z*$u@O0_uE-&?2es`TTIxF%YxvFK5$?hWZ#Zti2C6RMjqupSG>s!Q0=QRp z2aq1Z!HkE&^uF93$?viCJ03oJdvN*MjyGT5(E-o6G>@E(_-Q;&ETAM3fGluCb5y04 zw*@{0(jyj_ehu>2fQZ^1PiTO|J`~JN&lW>irxZ1@)nCy3vGfho55b8R8^(~8KF(RS zbi^h+GdY?NK!%#taW$`^Om$V_WN28KK)jw*hijiloX@8^kPOs?@<`gC43po7b;KZE z3c%ehj;NFamj3>!4o!+jN|2i!=_nIFdv#kQ@^fTs0H1D#I78F<)@(5-h{Tq`>~|Ji2rbUx`xv<1ZF|gE^G?dgYj2oZ=q7^7s9A8}D zOX|l?d7OXu@48Z-*nt}?K=VaUA17|8?jvqU*V!*PGo#|9+l_4vj@;OkgSCC5b2TY@ zt7ENhmDQDya@OKyDh&(ReaRQFmlng~GS1+gJPYxqrglI{{dk-uQ1Sq17(epYuo1(& z6Nt2y{<3-;BBchxd>iU?O!Zk$+n3Vkj!eE&)@T|@NCu~@ zhqm}Nato$2x~5BykNU&$dL8_QCLiQG(-b9xMcG#0LbW((8Q^~p z=j&c$amU*(x*?$8u@<&RN)sCib^g2Z9Viv9GNoxm z7ADLlr-PZ54hjU;4o1O@^>|-vcc0pO0*2QX!vcbPBlT^9(76-^(eO4F&+do##WyvQ zrap&+-F2u(1@vBvvIoM1;9X1o2P5=_Bd!?rZ&LCEKiT=yF>1CS<36sd|11zV6X=Jk zS|j|wQ1ELg_Bh%Lc#heX3Cpx|sjnoUta?x`P&)O;0~g52#%Vn8e*~{&L2ZDa z=COm>m`!m0p)pbK9QcBrfBoE8PMFJN9@keveT3~jf_G83dAgtpzkassh$p;(_}$~m zg)YG!#JwIh^@%#7?+WZLk4x&~X*&|P~k+5Z`c%S=()GqWu;KssEfuQ=#A+ zFEXm{Vb3yq#^koTD2fw<&$wX(;rMJH6b*SQ#b4MG1>9(XXv4dU$uw3Hz8}#U z<#?`QQIzpSXo`Rh3r|5;@LYMm#^d!TDC@xy&k;|gekHv3KjI1MmtqE!U;dBZr>tBmEl7K5{_G55Dc7OWR)T#nhp;+g??n zHWk%17F_WDH_vIZE~BKU?nm^6gdGe44Z!_L5HlWz!#f)l5Kr@?MKl^o;xC)Uto9%T zL1EZ4k}eoh;`a8lcBsZSSJy`l$4{fKXyEOUX*yMytX+I*yAaV9`_CbvZI5VM9~n+3 z4%vAlPs}>#QrZ(z;O~W~Yrvd+lj?enPPFVR!N@E5Q82a$w2#P8@^SI zB%GHGA?T8Ldps^a%%bgwcmbVPHAO`R)(ia)(g)Cgu_r>6ZjP&_=QMiuCpXO()-l9^MRw zj{-T^>^CFUt5sL8S65-BV>xWa^8LOiq6YTYSurc97+6>);KDM2o!iTVH6@dq&!2#U zhUTJu#XW3AhxG!-9XDGFC`XSMcWs43KJg8h_PeofP!kWgb5WH~S(8QE&yco1Xg#ii z*HqDlmfvw{5^cBQjC0!$c|H@D{h3fCo`y)c(4rFUzoNCq( zhMnBR)d{hG2vfy*IuKCnlqBwJCGm7%qQ6BiCL~^iUR*i}0psh4`Pcb3>BYiH*P|Ej zopdFAab<2Hdhzy25%i+X{7a3=jXDi9{Nz7yCP|#VC&h{T17lQ(xX%ahtC*+=jwlx z!}n?bvGDoniP1m||3?fyNc|EOza8rgUkG%MLI;A?1!=gGi@68IB`cZ=q77{_qppCp zD~bt877$emr?$X<`Q?E z1rU$EGN$tNP56q(CNtFaTiOL~9ZtEQicFWbP9W_8pA?#?Vfy)KG8)f(lklEb(;H19 z6xnSVi5me>*?2lbBS*`f?#n~asB)jgb8;R~{|0$G%4%4)O@T=L`|IYv=JG$1e`r7H z{lNk$C7`B8efJ~jqOf29vrb3ynWRI20nW(nO~IpysMtFwKRHaDw8kJZd7B=cB ztkb!eRK+xERcI%2G3rS5j^Wa6X^F#TD2O6OoH$a{;06s0o0)ERU{#`19emT^(aC94-g{JI(&fTFk5 z3;?0|Xb%pn?|TFh!u$Bqr-w&xVFon<$HV&#d#2l{n=+wRE7>j+ZL++*d7rY4cOQK7 zCP3tdp#4CmPmyCt1(=}oJ8~>-sCggFKz%MD3e)Y+VBp{4eJCt+a|Q_r;^nPIn0hw? z<$Gg^tjn;vRN{J_%C^UHRt4dMjcp}zY_!n@-)}0B^RomNp$|mpRJn|MAS?#QfvH*m zV(-hZPhOEh+P|sFft#fnVLQ9Q^~AyCD?xRFMWPFdhq9aE;5g>^QB9) z&Y3!A{Coa^)@F5UdM|cQ%H9QcIQm;J1th=Kt&%(C{!ITWDDQh{iRSs+ofB2^1Z`{P zCT^8Q8?tBWn4m_DHK^9l@Z{V~t=!^F#XUA>>}x3fbk2-buEp{eq_a*w>b*Z1;y$PK z{~q99{uHZ-r!x|8XBD+ZolK8ja|DTNZ`(LRfeDTW*c~^C=Tz->y#Ew8wnvD|+emr# zKGF6$J}fpA0CD!O0(*>-?vmTBUZA|z;1nx2zp zgI&r*g2Is_n2z4NIAZ7I7VGgLqJ1o8m7x_s%(QB)okLQZMcdXW(oXKsji;y*Zw?RXL||5qY3dZW zxcsM>dvueh^NNB>Vn!*kA(VXH0~Qd5@Ap4;z5>L z?Hzp|*Gd}Udn2U(91f~Jl%ZpfZs=j{m@5R6{872@9kOz!>m1Xy&e#UO*kE<3TT^>+ zQB83#xQTXLPg+l?WG$y3&R@em4C&Y5R-LnEi2HKPLsjafkI5eB2kYlUq|we?9YRtz z6!4Rj9W^&GeKOXYWd$<4CO z;6mtFA2n{I_|o$zMqIx=065aM&%`6~?2x=N?rEjtosg2HbG%IVi`m;Gw5vxUD=CCF zH8brlOE&cL4@oyLpXs(hJd{>qYnvXVQ(jm@e0^^ey<%Zu*M9}&buZHwjsK4vKea1$ z!3!^5<;_S{A+VvWVjSLDoK2^K@C#F+UP)afZrbjAv>njAwY#7EfuRnAUh2W`%z6|% z*AQ^lsEmjFMg=T%o5f8o=i=OUc^xZk(?DyBN8psF5>h@E zZ7MZ!I((=Q?Z;8yi1jKdmbsYP_oT6iFM*g;5nyz&5k&I9!J5iJldOBCB6KC- zA{K2tRQF(lXluR&at-1a#|M-W7MfQH;!tif9#1{2BLF}piQD=H0nqWd*4Sq4=z>_k zajV+;ZGSUKw3n#}@bSAZiXE6p>gOGRW;1Ln+(s=7|`jxS6aKZ3m|9<9xS<(WVw^)2HCLtsrgLZq`}R~OG(mc=c9kd8&Wmm zOKAR+M+d-mX5&IW8-{$Y{4!6Jtz!AtX5gX#>+D=0?~1LisF3}7-OqRt@>VFpng3`z zBnvp7X}4bPx8O4eOEMRaJV6$7hvPchr4d&Y-h>+sL#9G0D`wopG;J>)Ft$g7@B0dM zj4w?RZCN)3yCDpp@S))4`tXv$kUsGCRNmL#vJ_=y<_UZ@h?&@lCo*_$Tx+jf0h3hJ z(;92-h?ch{?gADST3jW?IiFDh6F|?gq>zeiYo?*fLFbby!Awb~^ErxE-q7y_bfQ4&E*!MWIRPt`oe(z1e=`C+{rmKQ*|05NoL0gCW5C;+Bs_hBg-%33P zNC=4VW@|U}?4=uUk+61%(jeYhhhw*5C-JVZ9`6Kng|;}@SK|ffgpC4|o8#>_HUmEv zukjvB5`^e=^bTEzklKny)I)|CI$0e{&-Yymcb_ilG%m=KFbhMwWc#7KAq@ZInMWfH>0ls z5ZHJImk6KnlyBc9PCvW5)z)rNT)q%s`ACeu1&!MqPle%Un*k|Q>uIg*9tNvj9SmRR zBlVxrjy(J3_UWvbMLt~4w{K7Z^>m<(59iWNFyD@g@@byY)ww`&o)HkCdz|YAVtSsN zXu}PG3(YF2FG5KR^6jeK-Ih~)+WR`bB}y|_6~gC;J+DOYQNCof!FmZ+i;Jk;kgf`@ z&q4exZ%y3Karg;m+Mf}NzT}M!E+0;d%Id>TOyWo_TW)r$H$z{IOY`}A(HPrEn4PM# z_BNTpqPTpDHV6b4k1Al${|C5ET_(D_+(-)?1NNyrelo7hALEloe)hu zi48HLl4r4KTQq=g`oy5HnGeUEguq&v`35~3#<`gJ5uodi%r@jY7;XdliI6}(j6n-@ zd#Qbor9aI4RB^?KzI5mvcXDyhk)y!3g9uUM^#ERxTOBMA4RMTxB+@|TnvrMkq0dk- zl(L1brFaY|-XPk305IkCByhDBj+FAWzzf=~&<^L10uNW247`^64^f)qzo zsfh8AGUg}mKXIcDJ@#f1o72=cHr>s||L z>*2kAZ`~W5>r6%1yH<}KkATd>owH&c*;-7lqoHxeIw=dF1H9!dIrfEeijXZxi3nfW zs-xbY4GltZIo>|)1=@JoW=6};b^>4J#UrpVCW}?OhD(Oj#2qP;ppLqnKe!$*V9 zyP?Bzw`8sxck#s+)X_M$ctrUp%-lvX4iJ!N*{Y>TO^rpE{iYwzz2Jn?@(HI3n{d9L zV5RUBpJ9)F*DKggGGzd5FihmqTzk&?*$^p~Ntw3G?!8a-8u$2W&jsZ>-naTg z7P(rE91tT+);@pxH8Fzd9N0@ND;nqXrAs*OhLmps=LR>*LmyC8)>yYvMHDe}IjctBike;3W6FMmW0GWjM&iHqq@~~7&u|TCO9-UTFW6+{F%$+hFs?&tRIOf#o2R0d=XE# zdpJIE$7hIY>Z`0$Um2`g#y#1WvAiDps3y;BPA40r*!m|VBQm$w_ zM28=NvpA<>Y6TZ?s)_bfD%uNGF!YN@=(D2TW8J3O2voZ;oK;%M7FBBGpp_$<+rEx2 zfCt3+3DEQdBWLsVfNS!+sOzSF#U%YW_kS-N>r}ZXu|hCf zO;?1x^MJB$nt+n_ZS7(guVKN)3s_4sVi&ew?7eb*FBYz`&iiieV)D;0_%>efUIw1c zYU6OtU_|9>gQ&1zv08F?MUi-GDp7jgvxz~zJII{C4D+o$P2ieII<~xx>{NBH5Ij}g z#U9a?jEhg0OZ{*l`*60NPXy7v!B73$$yyUGUi7VmPfVTap39`%l4!;_^>$(U0kXIPz}e1%)N? zY31fHX5x4_OL9VIy%c0g)(yUzCHYc>h7v>4K8&~!uge5GWV27s5%t)n7vfth2*THioGBGiL&U_lDsd z0lpcT1bI8)))nhJ1A&bq2BU&S1nZpW=7I)aD-jQ!Bp?t}=8W5LrWl&5gxR?pyp$5jzt~|vo z2}QGTK;JGx-%<44qOmfdQgPtq0FOJjFbNoBe~O^^G7ZJXLGT9^!nG)RX-nMhvjf-@ zJ|t{-qaq2st1BYdeu#e%?fviz5)R^u%NK(bfc+dkucSGcLfW^VK>)1g${2Z#@qD*0 zNTN);gPOQJ8oAKW!lH~cV)#Uxf^#+sL3;+uQg!cNLMXomN<;o(nTiO|vB+jT6crL| ztYfKmI49`b-LRN9q_o%EWnH2RI48tOgMD~UHtAQn)YgT)0Vdgn_5BR4?>AX@1oj>u zpoMAY0u22H+xSZ*5yAv!+iwDG)wZ%~szT#{9E>wFF2Es$WJwOxj0K+miW8}#4ezOe)jteQK&H|_(xeP4$~Q4UXH)Mw69MFw%E)B~n}-}Rzz85I>p~rl zU$&UVgi|u}eA~aK3ebKLKcE|0SiIc>gW~we_31`$uu4?LBfZpg2~P~_4Bi)xL9W?a zXmFT>42aBS0JawoSUZLQnVI62`m-IHjggi1C4bHIGnxLzII@L-e92^O3UIJ}2=s6# zGS?X3?Ac8>6Dxy~1cPIeR?gP)a~-+PGM#fW9@~z0X6qaoXq#k&Q(X_9p6ppTW(Zcd z+PYP3g%>qiplWuX(25(*yZu^Kr)saNOKvWa(|U19QVH@W?$cVQZVVpieDretUogyl zMw^mj(ATbYFjZ2$BUL*bONqCpe6(OxumEwxImlUcS?(;6pXnV&NxfQCJLG;@ZpBMqAfNgmhVI1oYx{X0G0qi)Z)M?5Y6hMVn@nvQ-nAVn+S z>b|1+n}pdb_B?VV=GD3;6D#FdhsX8n>N^e`_qaTt9lm2Fd^pxo_eGWz1C_aiSL2** zdG<3r#lY)-`LEaia!bgTB(oBk7zLmIl9`O)S9lAz^&QnClLr5F(!yzO-(lEL)!rm;+7q1Q?)Q#`d>^BLH z1ktvYiNj_a_XMr$sj);(FBn z(b0JY|1fcVU#u3?H>h61jeCmg8>uj~vvOAM!s6bI;kzbDb(^SN@>$E7u^!R3E}9ks z=n@So)@@Z2-5ZzK;!OS(=7s8Vb(erma;R`uu}ZYPpdz`44pIRsvhR`mi1sn4Sa-m< zC$S4w2E2E+|L!iR7(6Y#fH<*YAR$$~)upR@UWJba(N@q0DN<#>+NG*n9HSB}7jQDC z922b*`mmWEU2cds?m^8Qqsu=sxWC<{XNDxi^&Z&`)PlJF4Q!b8b8+wI{SM0KQ;yXP zhH(x!YXT2W5iEZmEJf!$?0Rts8Odj`8u0~vOs}hi^PC?5#PPB?9w?J-jDM!T>KUNa~l<$}o zYweB_Z8LG_wL4n0-9rzsl0M2>NOnNtp@+Q3;uVev(A!2_>x1`iDr1Xdt)emJyS>rT ze76_RsGz+uZnGT*PA{&Pu}_@O1myE|J#peo+oEWA^~iG^71uwZ0ydUKe1~A|JiGuu zXZ5QfdTllkDGBmo1Kvqvz`nZZhK##NuH=lB#jNuLwL_daQ#!@8kkJ#3;NPOkF`(6Tz5i*{2IV?d4jkV$SxY1NM1Y2S&qmxT@C`+M0&fp= zmd_YGk0E!}^#D|UiP!V>08}1EErb@Ocfxurp78?qJ(g(aMBJ;;q0r9WCP!K75aP4G zB~cFw==1G+9I3IQyf3dsEatVR|nE^CmX3J5=JwU!M)GoOh?OQhB4T6YnQVv?q$_G=9EfL?>W6L~= zXZQBVvm10&&|;t(VTJ3vk;tE&mlb_6fHEYrlcNz9G`@+w#GS;`*i=OUc;KeA-gk-X zD^YvUS^~Dm{xc>Kq8lM!{5GK6Z0+6FpUu-qB8&q$inmaqQhop{CHM6v-KK!+Mm$09 zyZ3U$ekrqW1C96gy)7KB*C=o;t_QgACF96-CLWMmg7$hK-OFMSVMe2$_~_2As5g z?{Rlmj6L5jNW<)H;_{hMycIc&^E^11@qrIR_~vM(iJUF{76MgJPv1c(jwT4FW}xF@ zsqfzxI4o@zI4qIQ%15{(H5(_FJQm4)(pDS`-9)ytv5#QR_@;LU$IJc+@+D~B(jIU= z4SdS)RH%5j80-iyzPt{4r&|$e0>Nc{4)Xj91&l7Sk|C`v^?+kU^Vm+ZsIValZqweE*nild|z;Anx-=%vUmaAJ2UEFJJ8S0zz zt-^J7GA+|M-$%eC&)^EzxKbedF+(eFcm7xhGb*KBbmEyYr`ifUymQ>QAva2HrZ$0rnWY#_kJ#} zk2Ul=AW!IZr1xTq+T+84q(&nSSRLoA9`}hTXZ|a=Sr{diIMdaM2i#pz{;bw4##(0) z^~4mwmHT&6S{HP{TI9&>wYI2JTIIan+D@$6#dcMf+Z*Ln+i`7zY|uEiR(fAa9mG%V ztdI`*p#LSjf7F3(%hoz`b7fgY!qXg@1o3^gZob z-|P7I^HyaQg13Cd#);aDM$W$U#?VP1{2x8`^sGshv?&W&+{{A8Q zPF$a>l6M1`S-XcUI0K|EEU;0ydgZE&Z9qp#bjN@~$UVCh7sgzUmYX4KP3>oN$_RO8$N_RM5MTNsiVeI? z#9l6-RzPi0M=?J@6E{}=hUgbaX}~#*R0WVnSiO{TgLXjy8JLt$;AxJ;?PQ?~NK$u4 zl-$Z@M3?M#WC`-eY`uRRtJkcSk5ctI<@8?p0Ms!mCEuWh>Om$1@Q?-MULaa48KqJX zv=60rts(UxuEGlD&1^`r23yB=Ef8>$>hF(f)f{%yXlx$B)%@7l`(sBe}OQ`c7wVl$g=% zdnvU3&91a(JA5)9Hvz}uFgjyv%172k~y?B!8Ts^O#L z!>E&(`Zz7|FU8L1p#P-4o^HC2z##jX_Lt-y$y|_G*N`(7dX{hF@cPS zzP69yrkyZ*G^2Q{Qa>Pn%ydXc$1Sps!Yo-zzCj~XV`!a|J$t`$>fS{g zi|!NA?&Hx&)BkE9GiE5w<@v~S)N-vxdLLG3YR*Kad()*HD{_qAj%H&#lw~kO`BJ^F zu6LgaGrkn9+FgGM&o0;g(y9AY9)t<}tAOc!KkWW$`ynaO`kcDo(oseiou>l4r8Grn z$A-x9%)42-on8LM?dQZj;k#vEP~Y;(#s?}*8S}e#GM%C zEYK;NbnY$;)j8A-L_gwxbY3hrXjSJ_T{oVP)ehq+zzr$L`F*2M)ISKb_am@XRGrdXd)_$_qbE7ZKA+y1rE?~~jvP`-Ctk!OTA#Enf~`jj%c8#j3i;=igNK6OM2zqa&t5+ zF*gI_tm?keXFQdHEa0D=lhyL0y|vrrF8P=|5hch8NO2ipwH#4vMFkVPYsqj_XmLE& zYd>VsLvxblc39pL-ST$7#*x#|3lvWbkOP+UP-ZeD8HZgVX9sOvLf&WOt#tJO43_Vz z^D1b~Y&N7UhqfHBb^u?Cd;KWK@xnC8b&OB#WmX<{K=6eYmF4zOf9~#)Mmin{YDsQGXG#^uCCE8RjyL&q2#tj*;Yx zAw2RMr0>-B4}ivE`*37;oIvxnUMg*?XwM4p`@>k%u{Prj-q#qgY?J#+#~BFtUt>iN zz@m8zrJ=ld(LN|Z-28#?x$P5JAf@}fn{sTGZU^rEnW*4~%Nopz7qPZA2H)5sN~UXq z`w=KV1%?4g6SSnPbq8WpUCt^MZSkaOQnoD-*)XZlGJVRnr56!fR(5lc2TE?gfV?qa zk0o~)U19L8wsJBtrOR^88E++;GFJy>I7hsIlqZmzhicyC`GWnmhv_&arUInd45Yi5bq;wcT3UfkswFn|r?`>RrI0p3 zd5#)#L0(|LoYA|WE%Lp#!@mJQ^rKLF@&J|@MV6*@CMF&|+QZxncq*}k^j3qyz! z20>gl9dSw)p_+?byx$Yh?Cu1_Oa-xyEUk5`&iSOyIZbE8EBkbWL^ACpmUT?f8ZRIz z4(u9scSDGNv~E>9vU(jgy~coXPh#h--7p5)+W}oz-D-t!mp_%$dgW%|VgV7vBav6T zm5>nR=)j@?_oR3iOvVF}h-E_OF(`AEFXRUm+sktLT!qxKe6;omo^9v*LnAJJqUuC8 zEXS(0@3GuT@{=xxT)LQj4zJ3QU*8Kv&^OpTB5?5%Z^SNaU=^9yo{NO;hlgZdLKtNm zsaARuTBdzX+7K^SNFocTRL$yZXyhgr(z~ z24KGXc|8){dr#GWOv)PN1~s7B%QZ2Mr@Qu^a%KFdb* zT6RM;-`>CU`xKB)STSMiqj!M3Rk~gF@r;aty~o3|^1F-y{yvV*S%&8lyf0c=W6=mD z3}>=;#svny&Da&^>%RhUURwV-(ARkE!Q(!mV=5BBR%LnY0n5Xvk;VsVuiw7M`HWsJ z(2=}NLe_Mw^VPv0qb}Yp@G|Z_I?r-WzD2>Rkouy0cJCQP*fd=7k;Jomzm(7RJG0j> zFVtCkRB}Pwt%s~FQNWKDXf1DxALhS~fIGJSG@2lDe;z~9&vDjsLlXDOLzIk58Xz@v zfy@7D$i5zlGMtYBOViKRwoD^w>FC^#@TL=dw{)Iw35TEeQkH){mXTbuf!vaa?8{r%FoxNi2Yd@uRx{w+Sc5n4HOaJdtbu+Z0%pl#=hS|x z%Vbmg;|A+iU@m5mLJM8x1fz8#i4=gNU`SHFu^h$y9f0C^XZ`~hRr^zVmW)d5QTc=T z;JWFXzk&2e(B9{WFnJ2HR?hN=`)%$=3yiVNmlvUb#_qp`BGJks?t07Y0y6KKUee4$ zdIYZ)(Xlhldc229&Nndqm8C2WGU#Z(B3@?Kn2#OKB8`xn0j&+s(7HQfRDg(=40U(t zqM0pj1MXsSgD2X2qHKKZf@M-zggTAjda4&NXUbl=thcr^vB#O`N4ZyKgF0o~f`Q@ue(kxifeG1{&7=$b zv`E;eVo53O&SdN2!Ap{%Otsa(^86$8tZJ z`$^m%!Tkj88@R9MemwW%xUb{Bmiw{X*Kl9WeS!PE$;|KK{@2{^@xc@TuZQNf>KF~I+g+BXD+#X%7-G$cg zq(sjSesRKHe&6pn#U5>4 za`=6lbYDiCcTn{Oq`X(@8cp6wZv+Bu!TUMkm-O2vqOtK=_}|}u>tE@%CeyUmCQ}VK z6xksXd-G3CCdEgVZaetPz$Jhy#V~N$;Jj;_OmBkg3vsUZefwIL7k-Q4c`a;gGNp#q zVeUg~DbBvT-Xpldc&i`|#?|vU_`Pl%i+7C2i{|-tLEQF626Ni5_^a+?@r%OpRpM*H z;x(qMrMhi~cx_k2O<2qFRfpBLA(`d-_!V)NL0qLybJw!>sIYQ!$Fg*Px<)!x_@F$% z;#Ko_{FkcaqaDe<+kbfVclwQB-#@wY+TZKOu_#6|$`Y(KPs(AwKcYOaF zzm32ww*vw_49FLa%AqMYymAyJe#QK|@=Xs8Z)NG`-$rA7r$Rj+1{`+3Aasm^Vu9*S z9RhRo7I+^7I8YRXFJc8DAM$w_IGVY@rzAuDG*D)0pHTm$uK(xuUj)MZFM_|n=XV45 zQ#bs5?bi#D;PGGmQ|d2l{QK*lDzG+O6Oa5S|CIW>{(<`ccj*7RrvKUXPkrxycKwC- z|A)i>KT!Yw4*g&E!QWqh{QLh^8*u#?_7A4VU)_iQzs|G%JLd7d=%;`3 z?;lPU1Ii0w3Ej7<}a8egHnUYbf~08{Z8++TZ#i_{j4ngO6>07)Zu_i1~1nQ30pQzMOIMirNr3v+(7V9s>& zys{d}T%A!~SW{!J`5Wo0%jP`@ZcbT6nWQf&EH5_~>-!6{XOEhlF>Q*G9t<-xr{v`3 z8-X&9;U*gr_B|`ET59XGRWsn?919)8%?gbM$--8 z*IvVo%ON(YJ@3{`T;Cm|qW5dX%gmo1 z5f9&4JRXUvgddB|3(AVj*Z7D%6!B3wJgm`#&Uz1X=k8|jN$|W1{3`Gh?`H1Yu#k&R zXf)kiMYOt#W zVd{*W9R2i36A8x4&HBn}eVNkFm1Wog*XVC38{3vvJp+M+){AA0JjR)=wxaFRv`_f6aJFWAqbXpq|#}l~v3G zXsxX1pI=&5qlf<`)n>E4rm{prDf<+I};F}k~+{biNvZiNbr%laIOP`c8DgQAXtqGIzr)K5l=_gE^ zu20kFrcKYElrbYGZMr^p#`N52d0C_WpJ^wbrDH~oUNWyty7HC%awg{H1jm0^&4Vz7 zLhBFU52$^Wxu~q9%v}5+EkjqvsWDfV6_(E_E|d!An98J@?-;*Es;v4x@nO!DNsF$G ze2qGnlvmcyf$o*60V7=_Z>b2Do9cLvG9-y8oS4f|Xh+b2od z!S+w?10U(`2Y0YNsdVs>?w+uN?KMr_!SL-2NSBwBkq;$LnaSfw+p#B`QN$x zI&jr(Z2v{6hl`hwTUjr)w}E?R_}7~vE9#rj~OgNKMD`+fe#rhLmx6&jy`1Y%15DgrsYn9s%K2j zq57t0W#tO_lcr=rSiUeh>oFGmJ$}UhDC57A)jxSBtM|h@S-mrMvU+FlWcAM38CIYC zd|~Fa0wHaJFnxlM_h^nVX@ZcJJ3*K_UC2$(pEGGHdDCX(3mLO=C*@~kL%iH+v$CcO zQzm6hOoQ)G?Y!JfVd^yaI6(lm1?DPD+w{qkre@|q!w}T-AwCpC@nKDvghl4%Ov}xh zlQV4=f69ioQ>r`?oQ6u9H< z-?EeMyYhbci1))T-Vb|tKkVPh#?P~pjo;y&Z2Ugo$;QvWla1eb^dW;D^dW=jkHLow z`lAmS+(>?uFqnL`a2xp=;ZE|k!Z7mn!f^6ag)!vU2@jDksIr(JmCJnf6U^6`n6G_` z`T7dxr&fO)8o#OO0PhI&ICOc~d%^_zn>H23aZ;`@W!h9>3cOCACge=Zm@G`0k)I{Z z%*zm_XU!DS(x(XN8Nw8B(VGXOgC(`QW2W7BK8P%tSB zLb3m!_P=!(>;GlDSpPeBvHpK$7wi9j*~R+b!~6eNyIBA4=l#EW z7wi9j-NpJJ#}oVi&0Vbj-`>Ugf9)>T|Lb?L{(o;5>;GLlS^sa^#rnT_7wiA6yIB9X zF+b{K=BsxzU*loE_89Z^Uok)R6!YuO?+T3rps933o*6=srMjAMSAj6SK$rs5w2)`H zE`5vr_ZaU#O*`wq8`@cUH!)v}c$Gdgd^z_v{{0T-tM$x}8rB}FPsS`^Mqav*18#bL z{$s*~DZ(sp88C_P9i|e@u-wV{7y-N)%!3$N8F_j5hCY6rkOngq*5f>w$9ZYlLMDV= zQU95|{;%`;ztPUd|2OSy{MWRz@qe?OjsIKiZ2bSDosIuH?QHy;+S&Mj*v`g(OFJ9? zkJ{Pz?`~(~?`db_|5-a5|1aCw`1{(~_@8QL<9{}+KcKttfa9Emrz>`Wn<^NjHgJ;! z;n^+VzL(4={5PS}f{bI?yb=2OmBr?ABHD2AujXPPATNp&SrDTKxTGeM1muB`nrP=x zR>hY2^A`z=3W2#4AVzIvWwB5O%r*R(5A-F_D^*3+LLu;oPgNHQz#|p|omE_2__SF7 zs?sb}7Zw$k3$;%PHBSSLUMAF*Ra6%imsJW9GSEc=@PZXZmBQ0Nq?A<@3Q}QJwNO%S zUdSRG?$ zl*4;N-8z%@`E^8}Ncdg-j;TR-$MgeuUj*;^QSSuxL|%aR+(qxwJJK&N!n^D1we*g3 z%unFG{ZSSl;cPj)3-#+w!qW95M|=(5S84xb>Hvpy@*7zGly^<3Iq#BOaTUC${+i{F z^2Og{`sM5C9c6+4hUKqg-%-xki1lkFTLvVTZG!itA{HO5FSszj`K*37fop~Lj(k=> zyshic@ZQMty9L}nOkc+O3yl#Rh4;GOuRVbBK6wWsX3I8gTd;nEV= zGYx1|;6MP00s1PeM%iDvkTJ!WG!`(^bRh$RGjKBBV`((4s%$iMNsXp9aK8liw8X-~ z-MtWYzNXQ%0o7vMZ%P=np%LSJL&ba96 zy#Ci+-`x!THQ+n+*};X-|KJ}6*9|W2xkl4KaGmh{)wAr|c5s`(tpm5`*--ou5N{}t ztA38fNBn|v1r!epd4yl|48QOfTtH#@v@p?+kR$}fI!X)-(1!<5l2GVaAt>1imH+`) zCkcfbg$Nl>FjnLnrr|+6dT&Gr8qph>*q(2{#t&5paXjNhW$;Z`JN`zv)~#$iq7WG zGk`*y2xRgj*IG9QLAswo+?C+|54e_Kx>c$0C+&LaU_DLU3UU7ot^?c!Pe?};KBZnS z9jv>lT@bg=!6uUq+^GFbW`X_~a1VeR2QF=Yq%0cN=hS;3{#bC6u1Gf#+_Wp=D?eDr zQ|CbZGH?>O0-g^2C&3k7CmpQ!segp{8^LY)9_jwx-}JJ1dR)Ktw15k+rt)VLAEG3f zZ&j6)l@mxP+amWu_`Ud03-E281LSJqB4HLj>)A8>GVwuQR-vC?qc@qQTC=%AZw5kB zZ(4*xTE6QbR8`hUbHcO9g#dl+cg(AZZ_Wg>QzUKqkv>Z+RGX#hMZ$FYJEd@;zQQu! z1VlQtjD0DSEJV6jRtS^wXXyE(5cUFHP*#I|0Miuf0u_M@SV{_uaHEIO?+GQ<=4VC$ zTEbnU^1_NlVL?gd9NZH_9+5W3%oR0ktLw@DtY}r$eCU?)@;S77vj8agT-@)en5Pd0 z;8!~JEbzwzKk-2PvS#O?iDQ89Amy{$_NzxqLs1=m0T*%K-Q#vxg za%6sC`O_>@Xq1_4=TYbz^5<gzq zGBJ13H2TKIN*FB^7ZtO*E4$4AABfH~3ZafLnwe%`Z6tjHw7=#Vi@Ch0H1WFa!MuX) z!Ti2od;V6re{25rM}Y*)Y1d((@xgT+{%-Rd_?A@FktWj(;Np*j<6ZnAKYMLFcmt%% zfcW{~O20?Cfrzgm{x8A(_R4gr@e{6>4)~|kMu@*2+y_^cr@t8mGR8w8oHYzG0 zO)PW}M5H(ANEMKx^xg@*cceoCBA|5XJ<_Fy9(q6oq(*v&0MdI2B@lAreLv56zwaI6 zjB$Rj*lVwqJ+iasn)8}-UVE-8Q~D!Fsp=yr^@5taZ5(7Yt&{sclqx$|+E_gKgWU5) z!_OdUlf9ZlsRKF2MZeEr5?7X{Oskds-6mJq7GnP0C{DtKprro!(^`axJTKscj*EnNbCb5+GpU9#_wJlkRBy~Ef= z+OU&KEk8(0J3HHQ*+*aWGgX-@J?^$mJcFPGi1FRS925FaCsmY)_A2S<_!A!dHu$sN zrN?+Q2-Bvo?FDVS z^WCt5o85aA@b4HizZKZdMf)eCqjHpgK`9zQqe_Bk?aaYXJ0qf?IEZ@gOwt7JT11K+ z{e%FXZGsl156axRI)y$CUcXL~oWwj?TDBLgyt_^>D!(@!vWDZz6Ni5}mr{N3aW`ahM8v-GrpnVk28F3sVn2yI$(p{YmI}G1TG+fj zoDOnqkV$c>;D`lw*mQIp8Di^V zF;aDARR(pML=T^q4R6p`6nZ!(zJj?k7V(<+$p_FM>5pl9ve9oz6bU|mK4c0uRyD7jJNFwtuFE$&9O>3Aj=x$ z__*j1^a(aTBDBnBN?v$;cgkF~}JWVZ=d)H-?-x)F!KGWo@>+4MERTnY(nJ`^JtCv2O-xVP;IU%ol zXmStJu>+Oh{e$@IqF|;r%Fx4qLiFms<`a(clj?6{>(#58-H)2TeXCUf7<}Agx=)sJ z_aZ`qI2v$oyj1DElC|TJ{#)${bN_|JRi|DpY=JKxu80^v({4^N$+r9zne>k82mE2~ zDpL6AN(;zucG~{T)kVbZwRU?dy@%R4)pi?oR>Yl9eb2?&BK~D6>bDwN0 zGd4!jvKfO1?l!+1bTWAQ2ceX&UBK(84jY9X}W83 z-3`896xeyoLrQ8Lw~W6(E#fT2@~Opsfr>&7L3j_or@U@EC1h4s-O8b)AnYs~r3KU- zrDPhL8D0sV-+NE!2Ow5{Z+7|omRiV>tY>9S49@kAYEsKeD?jyKbo{p$pPs~;UyWc( z8Qqd_h$hwBDVT|=Q-6Y(x4ob^q>iS>6H?g%sOq-z7tzmjSv~;y84Nf5Ihxvu+qj&_{=u1%g5Rt5FK0b0m7`wv zMHI`2-*Fg}4ROUd_m5Qo@z5TR1TuC8!x@+AHFe`NFU-s-Hy>lv)6vR;pB zyw>}c`ZUgU0zfhKWDctHIeadW0b1gt-*c3Xzh?9@8aSxIn~T(`%#YOGc$u>$u|oDq zQ1TA>^Et^+n+rDvo6+(oVPoB;ftH%meYYbHxv#w%VCSx`DB(zG7*~k5zVT^+_tP)D zh3A>n;x0nolmSfnL0WW;(kJYPcLSwdrV0#163-KB`MlJBl-876YNIELJROY-B_)Jr ztOVjoMU%s(rAk7NR1FI2)1aEqF@k)OB~0&094# z3P_T4Na%dFOKA8;{})Y~&}5FA*p3+)%soy^S(CVt8x>C~AUXeoduJ=E67b2X`dc~q z{Ly|@jyZ?3Zfm0w{v>6nJklwR_if|81*k1-u3}w23h(#{wz}QOPU#~B$8u@1L#11- zF=6lPxphvX>wFhd2joNf$%kr`8{+{vy-k})-&l#Jg#GgO4<})nEw(!d-LUXX+oIOi zKtfzQwPOh7c(DpN9A1FDHllkNv6V}#z{>6&T_VJ7AR%uU0aaj&xNxaF516OZ`JQGW zDyR{^u2Vsy7+eCX08-!JHJ!>CVv2m6cMY^wmj?yo9&azsI+&Z%Bt^~*a1Jo{nd-hK z;-VzRV*nY6Qm5}g_POt1MDq;oA&|Q6EyaJt0Bqv^&=G`WB?I%%` z(}b_%@5~mpkZhgrwgk&U1$l91p#w!luL*t~(6FzaIEc^sdMg9hykW-_(wXoOu3?!s zK48~FDkkn>%{QqVoX@Yr2qu7m$-(c17xoH1L9=g>Bpx1$gS5Nly0qa zb?-dMvGNh6iF>H*6P{R<5|eOl32s7;w7y|ee)F+_b~5Tw&z43)-^-|+@j~#>bw#CH zZhpmH)ckqPUV_hkuX3$c&#RM6a&Ir2C$+EeIx8XCJep-YcEb+}UFK%uq|<&Gkjxj$ zb0$alkgYW37Cx%OsEBH}=l0fiaL79ae%;aIL@Pnk54ZLe=_4~H%&Tr= z*o|Y-Yr$|>rll~&hlU;cq~teVcGjALOMt=YK*s0xzdVO67$4U1qi!h6d7EKs;J z@7sok4khBK=!!=zY0tiuM7>3!1OY^`VVUyPVT1ni;#SVBV8YmU(Y46EYo*eXo zWb}MEX|w3{dZ5JhCh}@KM^rv?a#-&nNKQ00h2f;Y_vj9gv5A`~Vs3Spe0$TK!M?9T zZ!F&5$7Q(o>gm{s%!$b)N=(e&obJ@Q=+Xuml51+b{KtoQHqa^j$|n37g@d^0HLp>f z7*)~Zl}d50yl2_yG|?;Gkv*87Zu=VJj>&)ypag^{ym;>?eq9w~9~PZ8GN`XL^|U^` zIiEvsz4W0@&(GOt8Yg}*RKrDIkcPNt*iCIe`ZS7JAEbsk|9LxJzgIt`2dT)UNKZ2< zE6eX$AC49MA#v;=c5c+v%P&pDS+AxRKx`gyp&CnkOw8Gp`whlPKT&QN5FFv!ezqCw z%E!Ic&iV45mI(AZc`D(F3{rlXsRzbRMfl5N4hb}_O|`bp4X6q_bCi*1^O4s@c%kN9 z5WX&zK!pbFoS?4tquk#<6M*jVjI1`O+4FB802s%vPc?=-Jo$PNN{Lo zxt_6)Hu??A{Z5j|sQ-QXqY2@CaibSayVkx>xY^0}8d)6*US3(hY8t8(_&rARUh-am zQI?$1z*Ti&2Dr1<%gA!au+~qEC1QO)J9SCT)bXwiTBOKZ*;qeN*~xd%_Ub@wzD??s zC9VDJ`LTxJe!(Tuj^8EijAZm17|-$tJArTGFCLoy-Dl$)Wxp4{JLWIve^}qLR2)xg zAb61dU?Mn``48Y)T= z1f!`XL1I%9|^xFxW|xZub)gb<|N4ZQ*Db1PT-o8Jw%c+_py84bMXyyReIV_p>QJ>)@6=0 z6DGQOZ>B(bGq5hs%*N1lZp!oyuUh;F!;EH&Po)cDNU^X#B4Pi1CVUr!o^ zRzHqgdiG-YuoIo;2;^+6avz58Z00VnXD-viS}a3uRHUId2c<|Spdx7MFcUlpZx5ms zgr!w2h`zb{JH}$x_U^Q`)FH_UsE6$?Npe(ONm9nQZrCBc1`n@WTZLe2pwa!mpG4o7 zR$e`GUf}P%5f*rp#j^y2sy-@R5Ep*UWxXO_2^-kN~jv4E{zbF-fk{Bj$ zCOvnaNi*jS3C2xD@wVY9-%IJhQGP1lh8xJf*IFH0jc>s_eLBZsJ%7`V@JB#8)k#32&}RxZHp`7O^A1$BSUo-b5xpjZ_2EdW=>V=Jp_HNJT|7rV zM>y_>4@&1_Xut4>ly`C?BoSsu!AIGeO85|b(1TkXi8VIH4eV6cBZ_LupeI33=_HLl z6LrZW6x?b3crVE=ANuWK3(4U@@WJ<%aZ+kz-*)wNiS%t?t~h@V6y@8_o-zCV{$tX@ z4WtfbQ3MpNEN^fuj=FzWJr1{A6pXWUP8@qo?67t=$(7aEDF^@F0ijn)6f-33sofqC z(!C}4(A1L}JQowpPmfDI@xUcwXPqbwqB76BZ@?#(YA2IoN6~{)f28}Y@hapa%BH-6V7c2=xO1{;+zRX9eu>}h zdkGl+_aN@X`O<~wQvLa5AwEmHE}N1R+xGFT*;gsi_79Ewf-6`dr51+4bskGjiJQ;x zE4mjgW<_=a1j#;RNUR%_sq=8BghR}<%Xzt;V+$#3N9*noUXAx6od@gla729Uel{VL z|I}1G6gqCIX=rrJGz*Ea&Y0p-UuLF$RD3AfZaa5>zIj}@Bo}9`o0h3vm`97^dQJ`{ zB+rwkrgW{ep;_;6YN_yUdg6Bm-2ooLX!feg?$m zdw4@lu6sBTInjgAI;u@6J;qhIQIl3pZx9p$_R%~w|9SX`EH7D|Y@LZ!Oab+ZDke0+ zX~_6KvWW<}&L509Mxl0@tmotjE7|9?o2%~FSQ9@HZrkix{)ykE@ATt^JfMtjHIeTh zypA{?86A~-5FTqX_|>imuYly{-NdGP=pv+V|AyX2c#pw+*L*pG zS@k&BV8Jyrb&|#U29B3E4CWCFZ{vL-+t>gi&wl+K%mTXkzLuBlm-36VeMjx+&diY! zr0k|ce;*@sSw=mbe{+0fWg>wI_Vai4Ws|$>&teAWUA~1L`7i(MsJ>3{T?J{MI{3Bf z$I`u-Yvnh+N;>s;ab1G}A3p}2z- zY6Aw%|3sR|ffmn33L8yHWquq1e-}f4qbJMb%58y6__Zvx=63 zh$OFZUrE!kF_SX(fWuFZGZ#D5jn-YgiYE(@Ycv6sX^n>#>y}NOO^JfHcVn$gqt;%M z-IWAbpr;+)5ZtgB5pCr}m~G>>&KVgKDE$`=Um4MMz5FUJP$H?AN=o0pL%Y z)wt$b2EL-CqBTDYU$j$(Z7kAT-~Fd$O&8UjEk4QI$RDl+j6_Fj(_;bQ!0ctJf@kArM-32u0r}L z;Uvf)3K9Tb?(Piq+ibg#EQQgdawh;pzcFb@eY~|-ohVKwf?268$)a^wQ*gq+Qc>^- zfg=A`LKM2NGpyLUQ04b`Ay2}`0P;lF$zaI#Pc_+_2{#|_ULcYXJB|~+-hN$Mzb*p=tB-jMtYunAt8y{t$@p+lwWG^XVujmZ z-nRg81&TtlnEa4z@W}PrWa;U63Q0BXf5e*U-v9CF4Eo}wT0&0GDF_Rht7r$;6iM|H zSag{SfhtKqe@k?dtRBrzN8XdDF>8=sD%bPDn#!u~>8PA)fvC2%@Zsw_1B=zKVG^_& z^pCmU`d3vwwd}vkm}~HSByM`GQZq@NXL;shZ4l1%9i2C%Te!5Hfz_489*uS_e9}iT zXIG(^D2CF3Lk2B4F7N#kwAl`HN`wj>w6aJ@zdvCI&%$xT2{?iub;Set5HM8>RQDV_8 z%(@iAYq*0^PDNq<@9xU~+s(wJaSdb2_wBMUX{f72U5&V7*>hc{b?jc6rMp@fKr|WBe)c#67SWq?D1r%@CF;Lm=_@^w7ht~mGI19{AojRb> zK0t3U7qndjZ%(*LU6lfcDJ@5|+W4x2iEf@4EN^=c^vq$P1(Pmf=8VAWbu*+oLTa() zSY~l)t$N>Q(ah;7bV&?Q^|$cz|Iph>a3K9C!DlVn>r7xS^pzw-2^5u%YVTq8`XCy-Msk_SD|*g zDdYR-yi(KT4;~x@$S~pFQN2$S!_-A2a-sRR@KgEY7&}Qa`=&~LwZsF}7-@Ug(SL9#&E+v9qlLi&(FUG-_j>tD9B<5@TjZ5=@aGsC83Wk3E zrYV5>h=QCBKcsWKB4Nv8fFQ+$Uhv9yl`@AyZ`0p7>s(vF&%TqTPZ{*!cd-(f&4x6- zzUe!2t=om__4@>7@Bth0J@OwhvF>zKtnyPeGfp21+22~N`PWOqKKTypoiY$jxhX&R zf`!#HR7=`MX5WtqTmjbq-m$2OJ38t=8pHkD?T-m?1{czfMH!vZuLZKL{hw|uuvdqn z;C9HmRN5;~vp7xh@y6xkS112JSu1y^+?WG4q=!x!qJIp7_L|%E7lHFDaFEHks9kF5 zXmPx{ zc;t1M6dy{P0YJfTTY#^K$ z5_Wt`e=ax!wSY$kGx%gC%uRA71o7Zu^8y6^(thF2#wE|;8RpNFjE-chfk#pU78WC$ z1~6u__psQ#zFW*>xg!oN5(kjHK^doV98F%H%B?-p_I7rGMvX^te!kwdZ9mkUtx83& z%#ys{wxGjxxNl*ca?GTl(xv14Q6u}NF78NL z>$Q=waHP1kQF-o^>#@L?WtN!rZEF2z8f9f|<8B8BMht4|`+l{{t-(u#NwS`DrY4!w z|M4fFdVDP=_HjykoQ9A06NIUmF8X@awC0avCxa4CpH=OnWAi_We~OMEq&=&TPuHkM zj9`vdMSl%^d|-&r@6`TfN*4#0!_W8)r%Y*?!8_!-p>T(c-3w*q!0(c|Cda<_gY&AC zJSFJ}BDiR~Ys@`|`M*IkLgLLU8jGsNrs5DA=892rj!~&L)dD@;9ZU2-Ou0A5^k~G~ zS!_CGM^*?Os5E)r_O(P#(z_F-8(g>#+{`Q7e4M|TKYMme9vu0&YfZ@PCgns-<9D~T z=0)B4m*EQdm;o{)tu8aV1+)taA=>ZXJudQAjN{hQDe;sIw{o;pcg!FPGud3G{{^lB ztky1AUTL9;Fx1kn?j0a4sNK_U^94AQ`C+4rxDgbZTolJpmF#sR`%Y$rl>PQFf_G|Y z^NR65VCo^m|5gxBKNweHwFLM#ckH|*0309KA;oYJ6fAXcg$i0YMP4;+?w)$Ur#IJf zA@IJx6U2?NvB{iPC z5G{3)KcC-A=4cuun8{x(bAN{?q45`i%1}(%JZOAh-F({L6)Ulwq0Xp7u;A=B@rVSQU`z+-0f-= z5BoC4)Peqs4*QZHY`D^t5oW`;ME|fz95NxPr;tcwn2oDy+`9?9 zvj<-}O@a>|VMs3VgJI4=fcvVj{lE{92uSM$#7+6+nKQ0Pv2d4jW~5=GHLv&PGOW0%A8?cM zUi`r(fZkW29R(UBKb5?Ca&R>I3%xBaA69ezhVrENMS9jB58COeDw8~r@WPK!5>viS zlT04ZdB;zADnx8VQ*62dNmuv9!B5)m>sYB_z@{3oL(@N-1{qk>OY5)K#6 z%@wq|1M>TUDY;n&ugJc;RZPCHoVyveFeGf|isxiAVQH4B+A^L3EYi6e{C@euk=Q}s zY1i9ZHJ_UbP?*z(>tx?NHC>|;XgEqTF|kB((%*y9FsU1-L)pC5yCPtqh!z>au(8)V$ri1K;OwD=7|B-oC;Gy|DIU%3Z$A3_VGI zu4h=B{(TJM_MCZ=GM*J$AJyCN^u8*ejD<{=akrpiPp?Lk_}fso_bCh_hU-ga4Uf;l zJdOg~SugK2k)DMJ{p>kIU?XP3x~7-L#_Q_bB+rP6El8WKfz>HY05cp~1oa<}El z=jmgQ4|9UAKMF+tx!{sJzb{{OS#_i{H9W5r}m0EIO-|?jgaRd_~xwLJ_25(Iq zNbWj*bb7oG#=d!3^W?`Az(-rM5VWw4$>Hx1Cd&Q~biMi~pYsoT3df?@fe*C5xqH5R zEfVFcB@>ZPUH$n>E1SwN>M4`5hov>US`62J1|tRF1pW$YiRW?6T1-M*MS&I<%fOdR z#8iq;BIs_?&2pCUm5=FoyMTn}HofKl^+W~B zqS>z(M$vYScZqkNcCv;~oUt8M7;GqKc)`0Jjy1%=X=}@VpwV&;I97-8o|mEFWSC2l z6!?q%{=8?H-jHnApG+g0ivnfHf_^*y^oi1!7T{D&NcwXY^;{JPBkR82bEQJb3E_9N zl`Ld?&#%O1sJ{Sgwk8IrX*vqmAl{?LX(HIYoOpnRUw46VV$HgYZjNdwVWHM5JnK#w z;bT0asn40Z#csnKl*=@ymqM<6Zf3b>PG$$IQ1|`&-27JFv4PnkkDFyy+iDJXaQQ_$ z8STyenZoH+e!Wn8?xmzOK{&A8PnKNg ze04um8D!Xf-vf2uqxZhY&V3J>szn==clQ@p0!1xpRnZsH4o{;Z7xlZV%p_G6&VSx? zXq1T*DPej!Kq)0+uVjpWEH`+XK5km{FlvY|s}!=T^!J~v-=S)A`~@YBv@c9g>NRJ@ zy_lR{InlpjWsjaK$XV>L*O;Y?>7DB)8(68X4=W`h?QB%;1{^S`Rdx47O;9v zT0R{Hz;#0dcPCg3KeP^n;z`SjbI+XhjJnVh}{9voxRbWHo{qhnfP4)kOo?Wz)iDB7t@a>simmnj~y zy^!n|);ENU5o9n~bRRpghtvAzeOSUVC)rc^V@?lA2;_mkI!O7~WeS*(8g_yq!ZzZX zLC2h*24H7pOR)4~s@>`~29>tuat?;`GI31Q`o%+O+oFUSpb9wPPT~4b#r7Q>_vsla zA-)dvMUfWuMWJHe%@cajiE@RvV4Bw)!OQ#P!DU)gB>|jugHVr?Y~148% z%kCXEcRD{}d*VKe5Ntf5pqferJxL`U(n0jA_SVSqcc0?)9R9S&_49xIrT^{3a$uK# zWihOZlOOG!Qw6KCLVJsbBK4nEz}}N-fhr$GV_9`24opv0DDZ zk;FIrZa*Kz-LB#N+vf*@3-(CwIX}{*WF^Jlltdh(&!6diiHs#My8B_v{Uueb>gf7( z`R>oz;{fO;j3bq6G|D|lGM0aIb{zo8rrg@uYugF(x;Aln{(wd&G{WLrYm0dPaGA#! zt;yWlP%}DD%S>kdk^>pIOlBZIrAsEw;AnkPlV`X=v;AX|HO)!K<(QMt4x0$H(PW9< z4>SB$hPLYkDeq_LcSxVN;|MpG-|}e*j6K<%(rU5!K(xlh>4=RqK7~Kad2;PN@ucBp z@MwJb)19a-rzX0*KN0R+-+5U#rxVIuO3V9ag@-CrbEUPmGtB9I@}qs{}+C8(aA(D$`u`ym+?n0OsNzJ*y8MsDC>yfP6YXUeDiH5)|X( zbQP%8h%9uDHkQ^|KsnsKHHemO_|*9FW1uWSSBolQ#$H0$d!|-EduTzcea~Tz zNqezb0kChPU0Gysh+`Dr6U^@Wk(-+Z_J)go!^l(cDR%qo02L6m@gcxVmlH?T$?kPi z^Lyhk$?dE8abjs>wZ@m3Z_1b-9Xd}=7sz02cUv0U1?W`$&vXFx1xQ08BU1CK{!o2l zMHsL3EGs>U;W^*5<;L_kBw=w;eWd&8)M(jnySf3++gRY!ptFtconKHalnw1`WA0<% zYqXJmlJk@CDF_!*5H2Y%9BETkBTwAB@k5_3ckt zHa}F^*QQOD(#@VKIS?lwOhQfkdOO1&?8sct_OoVh20mw z1ee`Ckd|>>CTNXI zG3@S{j+JzFd~lz|^4cFh3A^X$56Ro27ne{qkW-eyfs@k(=dJs9T|mrbe#eNp1XWJq zrDYUv;r+m%oUael2w1ix$HR6{aouSzCo%89o8J=*I-0t;oJt-E3Z&cJxO(^c`3Ifw z34wp!9C=I+bMGCeZTF>VwcE@BM^bss3f-n;?+x|%1&Ssgv}s)!P`~4`_8{N7Is9P< zy0gasMsKo$(^fFFN2Dm=Y!GJxJe{C*@)+^u=^vonYw`IS#5)A5Or|<9z+=vLaTXDd z&|$RlXBYNk5hW_@P3%EDN%+`p53FIMy2q|?>B!i(*7R_JaOuv{-6f7cbXL9}#XCWF zVI;SA+9-qYf*#+HTpAw<9X&fTJ%S?uour+l;W6Cw;n5;AbVPa~eIb3JlL+S{OLxX5 zG84Qi9A13m&O0+WJ|Fpx)ZFne;}O1H*PW&aCPV?k3IXrz>uN_x9lbvCKY}1+++Vsz zc_2m+1cS|B3+YGr zSd**yYuD=W&gjlbb4ovPEIjx9v={j5p-48q39c*7A39C$c}EkXqX6s|d!`|?$U!Leu;aBJ<`s#wY4+s?FVEuZ zz)dZii#D53X7WM&77+Jwq|vLGCnSBr$L@m6Z{6N|m!Fr&juh!m(~~&zK8~UxR?*6Q z(PjR|*e7;WZe&VS(nvLSvVcsvE%(DKt8;tPUcH{V?XA>5!kd2#B%Ft7-S%QrC+#0K z8%~LLXN5IN8rv35L7TR~pqjmCBh7?;-Y<~ZHs9F$>?G0H)${;D%D=jD>=FoW6 zIcR!B7^V#cd^$9!2sFoSJOty4Q+j_g9NR=titNQLF9}FT?!roCbw2k-^xDeTQ?G!D z8el~AFtCtZbA9I!oJ9^+KMAK&OH~pPV5gR~W7)3pHIl77hpJt-%9iegG@E297nNd* zF+jDdgq-4{t>=p7R+#t=>QiKOX=4(`c=iuDTpHSCxdg_<>tU*MZ*2_>D$%CpF8d+N zCx5gmDeRWnP7myhFp|1BH@l@fk1xj`Kbmtq0YAW98$A~WwaG0FY?QU73?r={lx0k$ z<|Y%%t0HTesToU4)k@hF>>bP00|>*v7a!PsQBw8xUPz#++NloXUZiNuYzbS#GrlYv zr+>KFM{MXl$A~u3yi;Czwto(vP1+bw+IR{De`-RHvsxMLQ@-Gyr8vmkIc(~pInT@u zc64;SEZ5%HzO~gT-|z5L61i)pEvcs?>^JncQuYA*avN4cH`PVC>vO}JYQwJ%8~VRLoN|8da5|9khobHs z0gsl|mU1XSnX1Gz!(Bs_{QuFN|Lb2bqC3zZOmp=CT*kGl-R^WffiAzE_{mWra#5OJ zs=nAzuU=UpXXFB&!%!E7nH3Tk!Rpmbp?E)~#IuI|5_4wM9rmjcOHP*o(0fWUd-kiidZ|slNE_1S_Ut!F`Kr9pLeZR@SyKAU$sulzFSLFI z0H3Su!090A5Ez_@_ZpAQSxX~!cI$4q$eR8+9_93a{sDsKBU;8pK!f0qFn!57O4He} zzMWgRy{Lg{<|z_)u6uSb-pNSXN#RZ0my$@yuX%6fk>Ph0-kX{xJ&DHu8yngArZvfe z8Eh@!q?x?1k9D2f+kJIX80^kzs<~cza7Cx*FpnvppQ5Bq%LL%)CsgU^0}O+Vg!oXL0j;Ho-7bKnyU7uTj|I4v-f$%Ud06W zmp5OJA03|aYv{csyaC$0qUwo=Xyut&(*9C;DtH~SjDmkcUfIUb~&c<77vjky*u?@L|%k>C?lf`wj&6#aBC&t5aCO zVb=rc*>|f;t7>ener$xtk_Zhe|D1T^emXIO8Yxvej}#XV&U>SxQl2Z>69yXJP;33Q zmQlQ~1$Ec7QazP*Y0fM5Xl{hMXtmk9Yp>0%%NUjszNSxp-1?@5AkTN9qQ(#;XrsjA9h@RLUyxH#racY>Ok)hhXL=RBE`y)`^m;7&g{^| zS=B8wKq}vaDRsy1oEFc@-DB%_o>N2%amRI>{u zghy{G+yhWms=6E#+`&7yIC0uv_QjbLi@CIND&4+I4h21oeQY^m z>x&jj^O!XR*}RH)SOI$|?fzeHPQjw@y$Z67lIjeXow``>>r*CtWu z5qx~=tswT1TXUy$v5=c{u682a$~J0@9&2Eq)s)tJ0}Q3hh4~ogp?iDKeDo63*+?O; z8}HGh@t(_HlHcy#y&-$uNQatkNDk5l&1HeqI~4;f!~5s2X^-+c;2j?{02sTh)4!*-Jp-5D|lpgLMJy$Z1`! z-TRW}Z*AhAcKv-W1mJa9V59_=36N`to#pTIcl@6NUa)`e;!VX`TdOH)IoKFD&(mal z+S;&xU=1XZ_P!7}(bg-xVy0L|TMZvhM$^CF5J>>k2H6!dTv*}%)gv)aLiuhlg&rcy zReN|IqKgR_7ddzb0oa_>O+&a`724S!gQVJlDgAIW*b@fr zY#!@*rpdIwp#yFQJnQYCM9D)g2Tpj(xqN*6hpK)coRxc#)_`mYw~wqaNDGrXU8Vxi z|1{A>F1biV+bo=x8xmvLS%a`X;+q&R>69W6C-PyapgdAocb%_WjIe$MRVm{s7 zf!j)OZaM?+rvKD#1`ljaxDYgxF$zRW6ZuO^vK5XjktS~33SMr@T-A?kK>}6w59cfC zFMY5PT=8Q1Hip503)DnJ;I)pr8@L61t5ex@LU1X~I6fsw04_mI+)AI9rnp&v?*;Ev zNoU+%S95#5GIcrt6(6Cz*2CEP4x}cpx%P-MPM47kY~%1T=po82qY(o-GL)(wD!tV_ zurYNqH9Sd=5xBH;lqyyzFRdG|n73UCKW&vNg>@{lBJ~6CgMX|hMc)o!Igko@NPSMJ zDHn(Tf{@-fzqGJRnkps_Zx>Pln?oCbgjNb+Vp~OVsNFtOUT#4HkPR`j0Vw6@V9*rA zOob}P5kXIGHz~@3Bu%i<8B+^Wk4Zqz1^5f4nmNNRgt*rnyZrxE2gG<*pRv4=ur9X8 z)wctv^2PXnf;tqW|GnlGC<&>5FMI-!R#+jr3vq2Kr@J7!41<&I93z2 zJqx&=>oYuTvL6aYXOVdnx5N!d4hI9VUGrb0^m$`OzuXB@po=njw-R=pcye zy;urIyl`h~BEdQ{ghBWcJ~59dv9sZ!harSZUp0?Bj)uFbIA9%(*hp3eef(>`)A~Jp zH$1&@qU-&|9fKqLqfgLv(TQHAN}CtHXcU)dJIjFL?aG7LivTt`>IhE1n~ivet-!Ax zPu1bo=yb0lES1BE24<)}mK%GVx<0L_B)<7MIoac9&59)NEzo^>SiP_wGKb|->2qPr zPSLlXVt^Pg5g6ujIxzPWVAUc_4!V|^k!G^(aXuEff24AM`7 z655?9B4T5?P-?vVZBsr#Xnm5? znl>1ga4||GyE6rQdSV7rCT@3C{dS!7bd90k>1Lx_>RbS84BRY)oOdsWU4dbIz|*3s z6r1?&xhHbTrtm3qSrdjYOf!bc&5);#TmOL_ z+9$gM(A+Jo@L1+N{;`*jb7=-g6Nnfq24)7E;YG_zXW~KMu6!5KL;e<6^@CPlI2E`~ zX}U7Jj{e(({%w4l(%^g0l?^*EDD9>;10+%h*tu!VxYRxkPV99>q_0JRvs+MCV8wDRaFFfJKh&l7 z_a%UW@eD2(gL*LT-s1x5Zpz-v(GOsqE#Ys*W5hAnkzB}DA>d&`5fEx!y3B33+x*h+`NwPv%g9kt-X(REsG!V5ZiFBZ@Fn@+fcl7c2G>R2p+1k5kRn+n86QeK>S+ zG|98d-{!CQ%`hBjd>pkGEz8#To=V=yJ!NHo*7ciNHfUVC3V{I#lZj>)x;vO9g}E-^1;YlBaVGbL?ouUQhMx~8!_6tbrkEgJ>c z6N%OBkcyV#R&c3P%a!3gDb^Ux<6`A)KiCyGM6-fMjhcfcXPD_!}xEuiOj${)ZIi)iflE zK?lq+j^z>-lJAXzS!)Yvlb9FNxwd<)--)m&w;X@{QEH>b+d(mSXnDoM(Kk9aM%AWs z{_9T^-ncRDT_3ImE0lckzUy0W+MR=%D^gdy%Ni z;fdgr!%xmhFy&v3*Vmoe;dHPo=Oh1wlfvUHyATk0j{vX^DpUu|Zi1-0YzZLO&@CG~ zg21}q+m!)nEO-R%YdhSo{F1@P5U+^@0`|4rVei!4X5!mGyA^93ZfB+RG+wj(Krajt zLKy)vI=^}%HAt!1AwvawZEdK=z0SZa=LXhP~2Fvw${400O#WKd2l zFcq}J*s0e6tJTHe1g7U8trQTw$g2%XIXiiMAy;!fi=0*g#=Q8~C;AeCoL-#*;FkfI zozdWNboRB-JX*>X$=P~4fGl5))CGBun?@2Ag1=V1clmahN>Tyke@}$XK%jM-8Ku$Q ztm&8j;Fg1asmW6vuu%-kDRb@l7NjP<3}wkTI#K_|;XpI9JMWw4(%r&rUd!F?#hfm+ z(fj4*G6Yv*Vf_v6XB-)i<|kI-6~*7K<(H~viIIUs$>Jl#-*Qpu*B4fqM}mU+n~OQ= zDUQOf!>z?2Cs@ACTkhMRbMvy6SGt7EY;*4g>0xCJO!VZj!^2=r3X6A!gEAH%WuhqD-d_SwQ`1tc;GYw@-j5KJ9De8$W8|Dg z%F~ZnyFd0zuM6|O8vmwO?{x>#v>H~^p=XX;!7iyF^0uq!k0 zdltAsa$*=hN55kxRrmL(44dn(xrL*oyK(=s*2%S-{3$^P>- zrT~T@=AeZg{R&tr{rh*IhTUo%Db{DHW7I`BQvl>K1eADv)34}xvm2y=m76dde^?dl z9FP?(<%@-B&#`a^&mhkC&;LR@a(yedXa7InrieWp{r`NMg1qf%0b&i2WfiNQWZ#dx znVeRu%9RvYI~%(9BaHIH>N10-+kLmYZr8qEx3>4r9xjJ_C4IL43rCtH#TR^ zYj&p3T`I*CMV+mPdBm*58mFsh~(H`6s#^Y^W z05Bdu9feeqSN+t&a}uDpiKZWpr{iSZ$SPmu z24o&=e$&f;zp20`2V?gB&bqDB#G}ilNnJ7y2RPb3KR*@W_Rk9qK`g3I5esm=1skV2 zZBh2mg6@GzmL&0-K=M=`mTH^B%K(5;3O(@Z; ztmGC)=dGI`t)N*S>Z?svS?l@;&1=Mze*wEeH*bt!PP7M--mJcc!OC;}Z%`ZTIKumq@6ADvT2-)B}rmuNUJNZ^c`qTuxsVE5eC`y;+BV zD=k$DT)ER%|7_MgAi)#3IVYY_ZH1j4edvMJKcixuLj|a|1NS8?QJz^wJ%lr^&D7~5 zze+wbAU>X?7AZ$f)0s0`*%}WPkXp~ynwd+ciPCtqP&!AJLFfZ0w=;9P4;(YJc-NT4 zVCP`rj^8|MS5Eam^YHG{#4|Oc%q}nHBs&!U7L4)VSuvS{EBqVt{NHjd@d~#~O z%Gs?u=x_OlxnD@yWJqf&BJx(l&$_Y;StoL#=J(>wBaLpNi{W|Vgq_A$q(Vn6BwQXm z+dj@luKIJT*Ytyc;YBOPj|HE%lnmQdxXa3TG=GDxPv#QS$q-gcQU%6N3M|3Q__<@p)hc$J)2=IMo=O9XZTU>K|+?DS1Hn<^{JC>gR z{rq14la>F=aSqY8a{w%H2Z*m^n)=#7O{zhhs-ZJ76iiYXuzSIiH^Bysk8bHx6@$L= zTS8P5VF~VGhl3@9fyjTvj=WbJ~V~JAiuPw_U1NP~gyiq$A zI_F@w>seb)`oi6%Z?(yb!rAg^XVy!ToLm%wBrvm*`;Z9)${0tjjv2B>$r)IS%H;DG z)1oX^-0!>-`$FH-q!^7sfptnKfSGJhjS7(8IJICkPG8tuaTf(xtjAB7ch@2Sl2SPO z%$pw%*-j+gAI>^ir&Otkqvjm<&fC2EgEEH zV_ShXSwQAA5D|%e^p2Wp^X3`6OZ_yxBNum{`o4&Yt+=89T#~sI-nNw4>b@U8lz^qJ zv<_l@Ik{o{Rj~vb29&f5_clkn741h8ts@wpHHfYou1A$-iCqm?dl=Vrwu& z5yt?anghV(zl0IP=I{v^~}J44S!XPKsi-VtHYs#j?4gWmii9 z-rt)qsH$fGf@-N^!`_6bGpEHJ#GnEV|D~qxoD!JYvAl)1gRM;$Tya>DUAerXgNL+W znuD5yT0qe-0nirE-rMm&JG$vd-lwbu6a^JU?nPI$#J9xYZ+pwu2sg-k2nafgjP7V} zHfT}6gQ9RkWWk`wyDJO=SSH<(Uz?K8sfzw!LbhlE_*v9EmR7PlvVhb+akl!Sy2EM>K*?frB*g_AiFQAm8ZKkft} z@FIYMib^-?KQL9Pf_*HPP0E(zHNokI>Hy#tsQpp6=+3kVIE)4hiQ z)Vq_ZI+;8Kw%b!g(0C?Yxr*u_pLh->jlkHZuR&nZE4)?8sV>F>a?q8C&-OKT=(&dm}>n%=lgT+#s{H`=Zdj@2>7I(XI9$u9cnWoQ8b=DOzR4)&LW zYox(#Ss$_VR{#q+hGB zP!xHY<1~kKIfP_n&YP&O{x1A(nsRH)3cIIOLa;4YObb?_ptXTowF8U`K=oG`)r_pB zEn#IYZyRe0cHBr(J&QX<;2s1TmIOZ-mYR>ajOv+X05Xn6_!pH>vi!~9_`x$0B%N`&~cLS4SpnQf<#k|tX+VFYG zE?-_s^1;6}(LMV!nE>MuH#USYwVGzWriAoq zb^TPYJt~ipIk@KA4>>HNz}D=>h3l50aao;^)9Y9j)vl`%%gm*priK&Kw3vrC;03B8 z22tE#E&0c^j;F3a*9C?r0)h|n8AP$Bt;^t3RNIT-k6y_2-hp*2!WGBc2R+;|&3qt} zd2eQnovJo^e5i)_JmD;USQV2PD-C!Du0!3@ClmMZZyw-EF!3yoAi&YBRpM-Tmy#rD z`O`u8?<~qs7$$$&ikAH{1jkXvAr$G;oUeCLiCNQ&WW6P*31_2u$JlGt2ewM^o*Vn* zcjat@-u@AyR-lx#HAl?h_;j$~@LzwTlo;P~)X^yTgp81rqkO}D_SRs98mR_>2B8M2 z2Ehi&2?4Go-E&0*-v~qs@pwoxE(!sV+2kmgFmEe#3-oyIF}x9aZ6+TpN6xOuybV10|?%EJ{BUIDMTvSUSP#brfmL zeX~f5Yl}|v+MWwp!VcR?gzKBJEh5d0hjZ^4dmULe@|LO*YH-b!Cxrf??mYzmKU)Lr zr-{~VpV;mtNEU)`#R()UM7wWwkT4c$x=3kCZfg_-a&+FB*uC5XJMA=E)bLv(yvA#a z8aCvDcWntE>2cqWu9UI9$tU#@B$$wiPjPa(+$X6K( z10ya)mznDB-F1>*V}&>!?(__SM%}V0laWKeyFKa0Ju*&u`So0k^$s1EfX0EoeksYG zmcHrP_u$~qcMRG!`WpS&8MH4ugB5k>yJqRMD+W7la!^?<#}&haZ!FZE^+I#Q_Y-hv zz4FU{s|$gEYU}G6-zOp3dxf3 zriQVxz%&+G)8C`M$G|+vk3Ea>@TIbPKD?Qwz4Zi;A-Xu-M*$UHg&ii(DE;tBLNSX~ zOW=GJ(m26q4ADB(zER9m((bc}m7$@J1Y7SGaxUDbTt(s9cHH#8Y8(sIJ4REQ+^@ z**;$*#(T7*ke`W~T+R=6eEtWu(LJ;iRO-GD+W9BCPYAzP!fX)net7kB1EERfbQz{< zDiBP5qT@f~Zb9`%Aop16H6z-2@U2s_K7sJ1}-nQ(gx!0p=rHmu7G zmA7&09sIw&Bw48|g1dIR18@m0--c}eG53R`8cwFy9`=gJz71rJoUuMQ&XK+=QrX+I z^kJkF;3UFt1!RAr#Tvx8{#>+k#vS>>qj^opfrQ{&;LvLesFCH!aU!ek$78mS#msZx z-!ZTMJ@SRxfv&PJJ}jkFFQEDC3=@Vlk>Z_Qp%ZFH-rf*GR~8Lg?`yBP>Ld4#8&)1} ztUd&rSwF;iddoLqAFEn26}onuaSe++BP>mNn0*6f6{Z$8D~s_tiGEvik!2s&{fRb| z<+fTO22ZWwycVepjI1|V1o$vO+si6jimIRIto3j3$(g(7erRilp%86ByfXl0 z-;c~X)%G~We(hQ1)D8yC@Dqn-k?NU$M^W8l`u=jKww>cpt=ojpz%65=S241O9x=)8 z^Gve0$uW+O++xFtdQK5)k0c^*LH~w+fx^1ik-qv=_WYzN?Nnp@oa!a=m4(CC$nCc- zG|3e})EebXb}_t;WOoc6-6p1VooqUgG^e0<<44dDs#tE&^tM<6g-*;f;)Z-^H&(Cm zL5mFmI=@lGJ?@#^4huXk%V>dsAH+A|T$g#hgbYoYwjE3_12DMS7+%Si{WZbk_@;(< z_&rwHvC~NVV_%HR^waP6iX$Al$9_$L+)3(?AvQmQX1N0Zna{R~1$A<5UMw34ZW1~;a;Huv~i0y&JIj{_(JeL?~`Q*ULG?|*J`;C*{%*hbF7MI(01{( zOsmj+cI$I))H;mJbAsPz?Ay@m%U@=u&7;UCh!HHfY+Z1?2NPulb@W2#^Xf6>Sr)vY z>!|EB6tsSeddaqur9}L7d|(QH3swT$%!&|F9RTRJ1xU!~!KNQ|i}*@8jb}Q4(1{Qb zI^W>L1=s+KN?d}!S1;}wfV90W!W|pj^#wO#lMa9|*K3q%Rs6Hn-)q0e)dVu4GqT+l zkS_afd<5CdA!9!$59spxhGgH5xI*ugD8;32RfL7hJba3lTO_{_D6FTh-%b?E3pmr!29 zZ8<;tLNr-<3k|@3q84^D@FU)GU7M=j8p6!tf#{#%}ld3n?xD041% zb}O^})tTKm_tJM;M(=J4m8UNm&hnOz2tE23E# zg5)-XtaulYe`$wdL%MnVtpl2aZ`#zUH#_gB?smL)k??ckg1{rg4dy#&)egH|(0#f3 zrc+Fw$YGTi(n|Y{{u$Ehm877IWTF7U;|X_P0W1CzYJu}FN5p23g~F=SxI@P zd4U=8bYpcVZ^t>F7EiaTmM6b2Nh8VT-rv6S4p zF&EN5@$(fX+_AXBz2^pbh;A@1ztUqJ*5Twjhq5>2fYyRW zUF&NtW>igC`ad)BxhV3;B4NvY)vmYeJnL(BBg)=9dVK%A7VUV?ubVgZAOg30rOU1> zaDyu^YN@>&uPnH@8hdf|QO(8gQ9hT=7j_2HG0JJ~b-y17fNH>|$Mz?KhsXCM$F5SC$#IT99}ie6HWlxo%*5YLCQ~*IsKR=2CK%j3Q4+CLt) z+e!oxo~fK+$P=J*GgLF!_8G@7=GCy-4Y)>+TbQbNlVA1_8dZN|fw;~P<4n-)7z@Nh z(V)X&rBLI9lpiHL_Bm#471^-G45X9JiDIEMv}z&%HsIBEYmh6)j#&onWrpl{ve}~Z zQZrMJL>x$_`i-FD<=RT%xVy(XKsrpc%7u+IkY#DFk$f|=)|ktXu2AB!y_x8I1%rz` zMmYX6+<+l*g~u39p9yE8mH463KkU7x7yXXofm((Oy|i<*fxpyS@&8b7DVHdPF%2dN zL1dK96XX+QRM3;4DEd1|-ZrQlTL5S-CQ3g&N-SGzadOSQvKIpgL%Eg0cJ8uPp zlY~2>r0{3(K8|N~)6VE9{%0^i8j^R3DjON{%sDAO@e-v4=(^K zh$V@rppFm@8h?POOX{^N$*VH}4h6l%@5Ii-g1THs`g>l`$=W({K3tc0`wDif} z65}y`>=t3~Pbol!%=2FZ#>@WpK+^%IFOI`yiGj+GZOc)JBK>M03&IJ=8^qf1vmk8v zhNFm2MBD>72!ld?76dRWOj-gAhspuaJ4)YDXbmf`UCMc_0vYDot6nu}03_V}=itY< zjco+{9$}}(e>%3LY`$Y#TWSNeJM z^%z|?U9f!bpyi{RYym1NKdV6AIdPSl2xZB~-mE(ik?~vfIM*>Qg+NbxRxdFElsyXU zc!+4$Zfz0{JGv-WN_v2cn%u@xTO>Y^_~w8hHroFP%dE6}jNrK*B79KS0SAxl>19KGmu(t-_xgxO2zGm}omiWJ_TbM* z1JkbSyiR{U2^cUBIQzgs002~HJ_PQOjJyew)B-&TNR+oVN_&0%?yUC6w34`RF zk|Ys8(wHUy4|Bm`N}Ud6Ik|}H@wK2UsR#Q* zsyCXh8m{okOF$_WBh~c$ne7Y(N!3H$mmuAaqB@TVaFm@4r}|Y&BGmml+5~m?R9DCX zvck2e8;mMem;44ukTQ0{+6`H?JXI1>^omau6Sseo4t#<$&`Nt$RWG<_+-r|hYnX$^ z5XiY{v-8WXhEg;*`#R4y2sOkg1SqxNIY5G0+}OGVK*pjGZ?5xp)7J8O5dbYZh^9Dh zNIVer+iY|5YI_3o14g$SoZXq+gf5~`?sEbazhHh_<=8h2oCWdIXwCOmgQhTR~>F`^Sk7RQsy9jvdnP=(%_1g`w zo3yYFnS)7^zTC&lv0Z#wy_#pV4CKhEJMyq*fMum(^&axDCkB1*c)NK$T7{xE`A(WK zAoBw1?N~Rji|P3yYEwyn(QJk?x(UvC4J9pRl;HFkdhMrir;Y z{S0+`RKS|w00d`%wO0Em7G%x&&n_g8gu^J4=_YRU_fdNpCr>T9XJ5Pr|RJnajKY0%mJg zwj7LmP!R{Pje9i{Xs?5*A7g{V0VU#A_a6pZDz_0JqdgnP-Jhpa>PmPv0P{OQ*8LvVA8@yU|^ZdFw_XKLo z`2LGj%R#Rfyl9N+k9n2x(nWS1J0rhgFj2GSEcG=MS@F?V! z`mI={jWH8iWTP=l#zerD6-}r8XjnqtvAq3Uqe(a7%20FHaeJuGJ`frP% zE6Te3d>Q_Yk4# zsQh$JS_yDek=Yv7oanfJ{ws^LX+7=8@A)3)ViLcmzOudj?$=q5Z3=vS;0vF=RHS7kREo{LylcOL{h*<}| zzsBze+Gz*^>h2NxFB8gDZeY7)!QkR|U3mIFSS_Hbr1#6f;SqDe2W z&%$%R7Vo{r&2SF+%2%EO&%_Tz*9tzZMpV)bSz2HVmNmR*;v{!M&xl&Aum!Ii#D|JG z?J7`pwVd0-_9n#--%5Rp`~D|AyydujU^sQL5p4KA9+5zj%Q=Ah!D9_e>Z2kdMk_}; z{wf?vwl~?5`{!>wI!8qXU6cH6*AhZ-+GEITF5xw*(%6DDpVm|mwDKH9!k0mxNoIX` z!w|W?kS5hOlWZk+9<`Lq#05h@B2(gC*mma9BS9c(>H^*YHP)#V6x~$u>hN+^vhR0r zb_$o{lpue*u)RMR|H5J-=uL;<-xd8#0Qi{e0m#QxY&8NpF#ri`qQ1O`k}_ecayAmW zegmG9d2LZz9`mQuri{~ZAx_}hkpi6JyH4hkHSmUk9CEBRswd{(b*v)QES0&`@bfnn z>;8qSGldQH78<4Be8_=ZctFwtGNGKrs-}>(sHNR+sVLc_!nIBB@50tjrrHGgIvem) zNP&%Y>m#22w^Nj+~GWc@M z+YtvSL8(U~$~Br8nac^CM?t9>^R=IN1I)JXmj~O2qyAN_?onC)xHoa=E*w`!-O2vA zDCq8Eg1DzN=sv0e^+zkOee=eEKhsD}FJct@NN0$FkiIg0MJg-v%fug|fpzNL`p`ZyMp9OER`)l5;z*T;nPH zTrGo5x_pKn#hw=b1P5ARx@MR$AuD>L(k+|TG$g(chV;a_DApP9jKTTFtHUtM_0-4I z@r#d_>O$IxWEh{${-`Y zVIAANzDjtWaYI`2oV&w?54BGdt^pMdfhqUb-ss(=jF#f08`mJ&9SYxA28FY@y8ay{ z(hbKpj-Pwn(xWb#B(gt>BnS|~x8jRf!wl8ugl4{G}7b+vp?IcMoyxj{)Ay zLkziOMmM}$)1)`VwpFj8K!Dt)%N&=xRy+26AoVq-I(9%t8dHrc{2@n{VwPXL+K#QU z+J5q_IjvptX@ky*IY<>Cx`fj>tBXmXj!fYw(fBUzy{V!@9 z)0$5>>ggsvHjBQCH}u|9v&~MtWD6z=6Itx|d_nbzT+6m#i5dm=NxIm|1EAm7#g$v$ zN&vs06uuA0(UEA{!j-10=?Xw5Uf?_NZa`;u`4!>Qm#Fg1+eSsagi+g}Zx{5Rgf$BS ziZHr4qs6Kj(}H{SS!yyq0w(|$lt@miLZG)wKXGq%STVPD4r109OoW_*n{!(2w&uL@|E#6~zln$EoaULTpN1pM?2F z_ew$Y3q;e}IsK-Ot3JOJzsHq&CAFZ_fa(wRJwphEJ#c-IS zu{be=4isEYc#oKX!g3A1$%J@J${o>!u~dh{e*Uac1ae3DKCb;{3x8{EPD>+y7xdeK za5lUKQJxUm3<2qtk@L=NRT`&A)LkjpJiN`FLs5;vpp}ZfXO*VcRQ$Q;&jb%U*4wgBy>tTqXuxNmGEO18+M0C4mL_Fk7kDA=jTYbGsu6O;LlKDOd%!iOCTkb_3t z6i;G(5~DPQF;6hu=qKYD7fNIaQyse1rk;A({g99BV{s-~KIGK~hrRDUBi|#$J68RiDHjA{CLrOkg78Bqz_Wq`iH<6j4e)S>@v5usZw; z?i-%REWqf&>2W1~#;a2HuE4795Iml9QVGCw-Ws}L2-43TFklsz&4Zg~egy<*L! zNK|^d%__+kbES8o7$OF|o*dUza)>ESR3dYyi$A_b0lOo&LZX z2M8ySxQ(xo_s9LaZhOV;Ne4ffzM#1ncRS~tF|!y2{tP7%iHhKLh`L{RKN@Y+G`D$3 z@k>@`(*B$)#=Qi4hk0>EaO##Q>gFTJ488w+BBQoLn#0;W*CB)5L}RaZPB1-7=s)`* zer;As(5}_H8v(t_O}^_`yVcj9aK7PfG9*VJ6qm8FrlKUupawM&GF02UmM89^vMu$# z;ChQr-E1jtOLX5tUV^T;tq7&8+YCUman?vEiHaqCz>Vx<-j|ueGjR!ax@IAZBM`9` zrl%R99VgP+NB@2I!WYu6H9C;7E_2try-}OLHfELY6SOTmcF{Ojsg@l<6HxQaY5J%o zwXkxj09vQoO#cWzzG_Jj1@iOBz*5%Gw37Q|thEwb8HzW(pKem_2WF1Cz6m@1A_7 zeRDq_-{T$Lw)z^IOi*cmw5`qZ6OhEwH&cljX6c`a_oJ8ETffwEw4r_6u&` zDeDeOPmO?L=Fu)k@Uy&kctp!>)tS~(cSl@QUO)#fGOz9@`5U)ja#s8xXb>l2@ku+T z$jOZQ5&${yl(U&8=8Zl87Uu1{#|xVd%~X0;4z2i#`-+Y4hk!mBssUHtU>hg!gx8%D z4M?~kM1;I`o>J0<>ahe^B$Lt0%q6_Pu<=8J zdT5o-tJTYhjb|E7bHh_N+oc=F<$lsXT7_Md1+PC&1{UAG&1m@O)+B^(lP}8$SOtkP zOH9>yFHg$>rYfmAp-dQ%kWDtk&AFZ@ep$~UT~(6fhas^yjcx4WFry%VxW1G} z>YZl~)%odzs+O~QEs72D$>2I*hPDU2WoNCPK>^mFs|dbGB$kkgIERN3AP^|%KL;My zWrRkdI3@T1cbk9Z9^2!>f2({YWm<$^4v5feT5IZMe7Cy6nFe--CFm`%7_5P&wm&`P z%2nNjoZXC^%cbG!s`D&on0(5J^$FGDx7X5}KDCNHP6Y@sxW8TdXjH`r(Rk-v+uV;> zqmj}Pl>N;br~#*WZpbem27p%vvW4gfUMD-LaYi1yKc}W?id)~$h01NumGmy$Ip}@S zU(mJ&lO=jX2vmBy7?=Ly8x>1)yUefaD4bodV(C7%}VKq8KW@ak>8A-4X3Y=aKrhU5hl`|L&XlY)_1qtzon*GvVz{`;+D5q0X4J2(eF6}r%h`GI+x%Ong(Qq_UVya4HN$NrT)$ArcTtLB)qFXOv+UFzLKyC7xjMCd5_!5<36sC%rrPy1i>7 z_`W(|SO_7^jR8W4J}AJ@f|#E~1T4&|VFYjU)Lq~So&YHBBKMZCL^zKolG(3n-3yp3 zlq;jL9M6h|CVTX(bq%zh*vPMYUPrScXB5P;fMxH_!FI_b_zoJw-v#dcT~Nj4{5ePZ z1%)oK%(3$kpUP0-Q@Cuu3LK6gzKK%)iTs)|D+x|@cn4Ud&=Vb2ZeK#(fUwp|Q6`7} zvpAL*hmbciv`_>KFgtiUJm#1e z=Uw&8CvX~d08vZ;V_m8_8jT1U&Unks1=kJ-6IARiRMLrLOKJ=WQ*+lEULX;vWz-Ik zr1KSK@M0Uh{BF?UD5%{+OCDZh{>Dn|0nW2!K_wAdGTrlf zI!qaj<3^uCb-E#kqB6k;P)$EGXD_6oYcCKU*8*wTBO!DvKvM+*1gojBFxl526slk(sXJmsI^YoEhxE6K47#7g2!{#%{j zvWNo86;qG=2Ir!zzvm8h?S!SG63#fYb%^o$GITaNdW7QGHN})#M=NA9!vHwMpc==)^$9p<1Znsy`qypuk(AHx6U(W6tWqot; zCWq~>xHd#Mje3Wl{O5{En1#g~Md63BSr`A&Ju;PT_vnb^fa=Yvw_ldYi;4bU@=J5l z!VTTG&rmL_JKz<=t2d%8qSc?|3f5Bz0`KszF-)=xT-kvN#dzH8Zm%9=1jYUm7)kCB zzD-^{8;yERLJbC)=3{5;$ied+JQKa@YatWA1{D!JheP<)>i{u*$dU7g>O^Dt7$!i< zp>}_GYJPgnL(V7%DlY*zua3M}mIp^S!{J)`+EC~19R0CRwafK_z`JO-W78LigY1~r zk^p@4;ekS@UFIO}Qdxhp1b0|Xvs#eVq~=*hLgjN^GeWi}aNMhtKPf?2`!{g#UNER! zqJsq_v8`|l6|Vh* zN{AIGLM0!}I!5-{yKBz3a-L;UhA%K?HLlZC7CRPbX^ItGhu--#+rymv? z!(REAe<*M-p_!8!`Cjlg&LPzBHsA_P01&up3gAD*0y22>)B^AXb&gS=ieYbNF)EDZ zLLxgr9SE&cOD@S0VT_Q({~T!QVd0})Xmc2C&FO#EyPgTA)(m-K3^yCsRXcJ z_-hVyj(vx7pVm~stm?HGMg%~=LW?PuRCj?40Oj!mrdsjz2 zbaHaf6r z19qJ-r(vPGK4K0${$k{U(%B1>+1a{hs;}tm|J76GZSwMDgG3JQ*_SX87xt$gG63$!r86&@2Nsw zBd{epk&Qpy6OLBF3tK9zp*fHTt4xURm?cPaKac<}b%M3MZhoZ;l}*Wa;T z74}3$7~Oyy!@eBuA5SGhuK6@o=|;4V4Z>?5DM16%mfn#)n2K-m5rCFB^@h@P75XsD z`63hqG9}#jdsV%)>dGbDpx_54UhJH}{>Z*POt9wl~41LUVN1Ng{+)2%eKCJLHE32q~@I?hT02W7s@s+MNR!O zCSCNfdvM3!b+Pp0EsrIw^r@_nZ4RkRYOSY9l^;$=lnFbSl6 z)%(cM;|L};vDYg+HX(_+v>N!`$OrLIaw$T0-v5{rgaJ;$&E#>{8;>qCjjhnPT$ z?PdSN1~Vyzb)4woJxkX%st9MtVCr~bP{kpw*1077<$&rS=Oq~rEml@zs#xkH@b~R8 zIst^{rse5S#-WVifis#3))qBJd$fN)SZGR3*l&*2+3?TwKUbr?zxBmKeM~>o{NYMs zS#M0o>T=2VQ>3i5e?0AMT_Sc*Ymy!ew^#iv7Dsu$6^LdLk}{)Mwwg6B8op&N^=U25 zj8C&W`>rC8XNPh;(CoBU_psx8+?N*3PSS$IT6g!|I`%zuRIk+h0r6YO(`=D?@r^YN zy^(##(`vWBcJaO8EOlx|srzIa<+y8Wj(~v@&@C{=MI*y;kH?k`r&7uT#1s4NKn8sl zEm-Ol*JEFchK>2@otaU^k@kXN3LeU*#B>MW^#410ANZHttXAf!;BnZ)XtCn~0!az@ zR(j`7(!$ezJ6fKL2Ihh6qUdPh0}_zUtn+Q71-d6tZ!xA+#ZkIdyLq5!`E|9u2_e1o zjP=h#Yas*44GrKYPh7v{?7(ivZo}@t3WkX-#yV#HoTfk2Tns4HX&FfFtt!=e-hcZT zF%+SeMuHVbHtr8pT|8R4XH<8wqsv*WPN-C;xq1wPK9%P5nY3ylsx4msdKv5D+oSz1 z=!R0(^-{!FcisSDqD1bXY+k5Q@J>u%XPg|`(WMMkb$8h=uE z4J*gSJ!;jVK0B-c^XM~q=hbW9N!3g+)s-(NKj?ZqXU(K!DfaA1eMFi~qT2uKGQyJ(`Q93^PGm(^yk6c;50tqz0Va&xBb8iN9oBQD^4NoC^{p$=>=SgAn?uW* zgA^Y~@oM2gQ)2?&Ry@Z>CAmwPmKa_V12K?M!PoqIzRK!E&=cQp$3cswBxjduRix6O z>q`gQAImC?L0Ven)}M!KRT*8;oOP#LOZ$R73N|uFEAG^P$&E(VG3n=p7rRH_oV}&JEIg zl1b>h*O@US6NW=e+h9@1Tq~8yE>X&c#6>h+*yky;Op%WJr4K9FD6lu7$h#s9ro4hK zM0RA1b!43A7$m9BQixpcK!A+$0OK6%b1)1x&rVyU43hFm7clUWU5z|{`x|Af%P87< zE&a(XHF1cgR9?*De4r#E(K;>0xJ#^X91v1Q!edRSXHPoa2(!|*FX`9bw94x*I&6|&^zF+_wE zs;78OM_+hmTtAncS?a3lh!8_$zn>LPK zkhf0AghU9aPhQxVYv5pBNIlKv-RoWd;Bg*H2q#&bDYgIyZHGyY=vIoELO84lLj>q}Rv8exxvG;&#stMPH1t}_0{1oX$QBkVWJ1R{? znj)bH0qGs2w}c`fN>@R;Qk51#AoPGp7mykyKv1Lx2oMM)q}&}p&$;LP|Gj731uJ`J zl9jcxGc$YUX)hZ5ZD+d|V9;jHBwtz_6O8qZ+aGkd=3TdPIONN_sMg&s^4#^tJm0|g z^qWf46SW`7P8fdV#DCyY+%9KsPK4e8X zem(r_WyeP_#Zf;3 z$@l9g{@d3lo80&m_WfM>1$jF@?&A;M(s=_?rjExs#GLr|ADkW`_%}lc&Pm-a0neGP zRGncb>IQ0Os25$HnVLGQV6{E#x`i9@z1 z_mn!UfKyKaLg+qIjdBTsdWaqNPO3Gn?Qu-s0`=8!L~1ejua#{o2zXVI!J@XWE@y~$ znUOx(urlwTV{x3v4h6~S@UX(ri%J4&UJV!5s@Vz6QcH!O8 zQJP=Guc0m08ukIxj)Utd7w%h+lp!RU#o*}sh7VHmNpi5G>j3babk#f0X9@n5?CyJbwvq!thcz9cH+v;LY<(Hi3AbEkz2ES|sp%k=Qj zm>$kpQ~I|dVy`AVe&0k>53USh$s^4ob9}wN-KKBx7YfQR>@HrzLOIy6vWk5N*|q+} zVXe2HLRUh`&I=@nzn%`_M~HpcQKwEwgdd`L^VgmNv)%$a-La?H~oHzZ?lVDWcwWci3Spg-Z{894c4PY zxBg~;-szPHi2%w3zdHSBF;=ee_2}W-!ou)~Z;1Awd(7%-5X#f{oN&%2W0-Whtb!j z!F>uAP|i#W@krGIIy|GvK%QzYPp7D8nmnwh5F-bnbB&`kdcyceFA?K<+`uC#Z-IT_ z4Pz=hphd}`OJ!#}I((Z2fUVpr|Lz=))A*&w*Y6&yLdfX;Q-wH{O(jZBgFoTfZ$Sfp zXFj*}yR}%C^KeR5jQ(LeUi0LwHU{HqLrJcsl!W(hl;IERt18bL+UXdVzqb@OSCl?4 z-nq`?7dZ8}@_b8+`RsxW6Kkb=mPz4`hQK?_X@k^q)b!7rI?Miw&^WRr<{RA@y#n}C zk!6+pqq_T(RTfii+ErH9%%`RjGpEF}F+zJTx^h^zY zpica{G@rK_>+$}FI9EV|_RIZF3v-OspqNHedtLuQ^cD&n=~_rY0$5$toXfIcngRED`F1eu?Yp~6`zKg}|RgMY1v5Irx_1m}~>Uk

    f-qC5vF*-j)-Er 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

    <(?rnnjU<2Ri>L)GSU+-bJM` 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
    cD=Dg6qTjEfrSWNlv*Gl!7@&8)2)L&RS>KXBt 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
    4l7`=G9&oYcXgP`rhuWgWx7e{5qDO&NQ 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 literal 0 HcmV?d00001 diff --git a/HamLibSharp/HamLibSharp.csproj b/HamLibSharp/HamLibSharp.csproj new file mode 100644 index 0000000..f155a8c --- /dev/null +++ b/HamLibSharp/HamLibSharp.csproj @@ -0,0 +1,123 @@ + + + + Debug + AnyCPU + {878402CD-1AF7-443F-980F-861FF9E840CD} + Library + HamLibSharp + HamLibSharp + v4.5.1 + + + true + full + false + build\Debug + DEBUG; + prompt + 4 + false + + + full + true + build\Release + prompt + 4 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Always + + + Always + + + Always + + + Always + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HamLibSharp/HamLibSharp.sln b/HamLibSharp/HamLibSharp.sln new file mode 100644 index 0000000..0fab2dc --- /dev/null +++ b/HamLibSharp/HamLibSharp.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HamLibSharp", "HamLibSharp.csproj", "{878402CD-1AF7-443F-980F-861FF9E840CD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HamLibSharpTest", "HamLibSharpTest\HamLibSharpTest.csproj", "{C75006E1-1D7A-4880-95F8-A968B4A71741}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RigCaps", "RigCaps\RigCaps.csproj", "{04C50C92-9170-4BF9-AC4C-3A8264BF7762}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {04C50C92-9170-4BF9-AC4C-3A8264BF7762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04C50C92-9170-4BF9-AC4C-3A8264BF7762}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04C50C92-9170-4BF9-AC4C-3A8264BF7762}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04C50C92-9170-4BF9-AC4C-3A8264BF7762}.Release|Any CPU.Build.0 = Release|Any CPU + {878402CD-1AF7-443F-980F-861FF9E840CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {878402CD-1AF7-443F-980F-861FF9E840CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {878402CD-1AF7-443F-980F-861FF9E840CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {878402CD-1AF7-443F-980F-861FF9E840CD}.Release|Any CPU.Build.0 = Release|Any CPU + {C75006E1-1D7A-4880-95F8-A968B4A71741}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C75006E1-1D7A-4880-95F8-A968B4A71741}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C75006E1-1D7A-4880-95F8-A968B4A71741}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C75006E1-1D7A-4880-95F8-A968B4A71741}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + Policies = $0 + $0.StandardHeader = $1 + $1.Text = @\n ${FileName}\n \n Author:\n ${AuthorName} <${AuthorEmail}>\n\n Copyright (c) ${Year} ${CopyrightHolder}\n\n This library is free software; you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of the\n License, or (at your option) any later version.\n\n This library is distributed in the hope that it will be useful, but\n WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this library; if not, write to the Free Software\n Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + $1.IncludeInNewFiles = True + EndGlobalSection +EndGlobal diff --git a/HamLibSharp/HamLibSharpTest/HamLibSharpTest.csproj b/HamLibSharp/HamLibSharpTest/HamLibSharpTest.csproj new file mode 100644 index 0000000..c384339 --- /dev/null +++ b/HamLibSharp/HamLibSharpTest/HamLibSharpTest.csproj @@ -0,0 +1,44 @@ + + + + Debug + AnyCPU + {C75006E1-1D7A-4880-95F8-A968B4A71741} + Exe + HamLibSharpTest + HamLibSharpTest + v4.5.1 + + + true + full + false + ..\build\Debug + DEBUG; + prompt + 4 + true + + + full + true + ..\build\Release + prompt + 4 + true + + + + + + + + + + + + {878402CD-1AF7-443F-980F-861FF9E840CD} + HamLibSharp + + + \ No newline at end of file diff --git a/HamLibSharp/HamLibSharpTest/Program.cs b/HamLibSharp/HamLibSharpTest/Program.cs new file mode 100644 index 0000000..1e6d8f2 --- /dev/null +++ b/HamLibSharp/HamLibSharpTest/Program.cs @@ -0,0 +1,120 @@ +// +// Program.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using HamLibSharp; + +namespace HamLibSharpTest +{ + class MainClass + { + public static void Main (string[] args) + { + //var rigName = "Dummy"; + //var port = string.Empty; + + //var rigName = "FT-857"; + //var port = "/dev/ttyUSB0"; + + // var rigName = "PiHPSDR"; + // var port = "127.0.0.1:19090"; + + var rigName = "IC-9700"; + var port = "COM4"; + + Console.WriteLine("HamLib Native Library Version: {0}", HamLib.NativeVersion); + Console.WriteLine("HamLib Managed Library Version: {0}", HamLib.ManagedVersion); + + Console.WriteLine (); + Console.WriteLine ("WARNING: This will PTT your RIG!! Ensure proper dummy load"); + Console.WriteLine ("Press Enter to continue or CTRL+C to exit"); + Console.ReadLine (); + + Console.WriteLine ("Attempting to open: {0} at port: {1}", rigName, port); + + //This will output to console hamlib traces + //HamLib.SetDebugLevel (RigDebugLevel.Trace); + + Rig rig = null; + try { + rig = new Rig (rigName); + rig.Open (port); + } catch (RigException e) { + Console.WriteLine ("Unable to Open Rig: {0}", e.Message); + return; + } + + + var freqHz = 144300000; + Console.WriteLine ("Set Frequency to: {0}", Rig.FrequencyToString (freqHz)); + rig.SetFrequency (freqHz); + + Console.WriteLine ("Read Frequency is: {0}", Rig.FrequencyToString (rig.GetFrequency ())); + + Console.WriteLine ("Attempting to PTT Rig for 1 Sec"); + //rig.SetPtt (PttMode.On); + + System.Threading.Thread.Sleep (1000); + Console.WriteLine(rig.GetPtt ()); + + Console.WriteLine ("PTT OFF"); + rig.SetPtt (PttMode.Off); + + rig.SetLevel (RigLevel.Agc, (int)RigAgcLevel.Off); + + System.Threading.Thread.Sleep (1000); + + int level; + rig.GetLevel (RigLevel.Agc, out level); + Console.WriteLine ("AGC Level: {0}", level); + + rig.SetLevel (RigLevel.Agc, (int)RigAgcLevel.Superfast); + System.Threading.Thread.Sleep (1000); + rig.GetLevel (RigLevel.Agc, out level); + Console.WriteLine ("AGC Level: {0}", level); + + rig.SetLevel (RigLevel.Agc, (int)RigAgcLevel.Fast); + System.Threading.Thread.Sleep (1000); + rig.GetLevel (RigLevel.Agc, out level); + Console.WriteLine ("AGC Level: {0}", level); + + + rig.SetLevel (RigLevel.Agc, (int)RigAgcLevel.Medium); + System.Threading.Thread.Sleep (1000); + rig.GetLevel (RigLevel.Agc, out level); + Console.WriteLine ("AGC Level: {0}", level); + + rig.SetLevel (RigLevel.Agc, (int)RigAgcLevel.Slow); + System.Threading.Thread.Sleep (1000); + rig.GetLevel (RigLevel.Agc, out level); + Console.WriteLine ("AGC Level: {0}", level); + + + while (true) { + Console.WriteLine ("Frequency is: {0}", Rig.FrequencyToString (rig.GetFrequency ())); + System.Threading.Thread.Sleep (1000); + } + } + } +} diff --git a/HamLibSharp/HamLibSharpTest/Properties/AssemblyInfo.cs b/HamLibSharp/HamLibSharpTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..262ed27 --- /dev/null +++ b/HamLibSharp/HamLibSharpTest/Properties/AssemblyInfo.cs @@ -0,0 +1,50 @@ +// +// AssemblyInfo.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("HamLibSharpTest")] +[assembly: AssemblyDescription ("Test of HamLibSharp")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Jae Stutzman")] +[assembly: AssemblyProduct ("HamLibSharpTest")] +[assembly: AssemblyCopyright ("Copyright © 2016 Jae Stutzman")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] +[assembly: AssemblyMetadata ("License", "This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. LGPL v2.1")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff --git a/HamLibSharp/IChannelCapability.cs b/HamLibSharp/IChannelCapability.cs new file mode 100644 index 0000000..fd74883 --- /dev/null +++ b/HamLibSharp/IChannelCapability.cs @@ -0,0 +1,89 @@ +// +// IChannelCapability.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; + +namespace HamLibSharp +{ + // Channel capability definition + // + // Definition of the attributes that can be stored/retrieved in/from memory + public interface IChannelCapability + { + // Bank number + bool BankNumber { get; } + // VFO + bool Vfo { get; } + // Selected antenna + bool Antenna { get; } + // Receive frequency + bool RXFrequency { get; } + // Receive mode + bool RXMode { get; } + // Receive passband width associated with mode + bool RXWidth { get; } + // Transmit frequency + bool TXFrequency { get; } + // Transmit mode + bool TXMode { get; } + // Transmit passband width associated with mode + + bool TXWidth { get; } + // Split mode + bool Split { get; } + // Split transmit VFO + bool TXVfo { get; } + // Repeater shift + bool RepeaterShift { get; } + // Repeater offset + bool RepeaterOffset { get; } + // Tuning step + bool TuningStep { get; } + // RIT + bool Rit { get; } + // XIT + bool Xit { get; } + + uint Functions { get; } + + uint Levels { get; } + + // CTCSS tone + bool CtcssTone { get; } + // CTCSS squelch tone + bool CtcssSquelch { get; } + // DCS code + bool DcsCode { get; } + // DCS squelch code + bool DcsSquelch { get; } + // Scan group + bool ScanGroup { get; } + // Channel flags + bool ChannelFlags { get; } + // Name + bool ChannelName { get; } + // Extension level value list + bool ExtensionLevels { get; } + } + +} + diff --git a/HamLibSharp/IChannelList.cs b/HamLibSharp/IChannelList.cs new file mode 100644 index 0000000..3615e96 --- /dev/null +++ b/HamLibSharp/IChannelList.cs @@ -0,0 +1,38 @@ +// +// IChannelList.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; + +namespace HamLibSharp +{ + public interface IChannelList + { + int Start { get; } + + int End { get; } + + RigMemoryChannel Type { get; } + + IChannelCapability MemCaps { get; } + }; +} + diff --git a/HamLibSharp/IConfigurationParameter.cs b/HamLibSharp/IConfigurationParameter.cs new file mode 100644 index 0000000..b1b4750 --- /dev/null +++ b/HamLibSharp/IConfigurationParameter.cs @@ -0,0 +1,47 @@ +// +// IConfigurationParameter.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; + +namespace HamLibSharp +{ + /// Configuration parameter. + public interface IConfigurationParameter + { + int Token { get; } + + string Name { get; } + + string Label { get; } + + string Tooltip { get; } + + string Default { get; } + + float Min { get; } + + float Max { get; } + + float Step { get; } + } +} + diff --git a/HamLibSharp/IModeValue.cs b/HamLibSharp/IModeValue.cs new file mode 100644 index 0000000..3d2551a --- /dev/null +++ b/HamLibSharp/IModeValue.cs @@ -0,0 +1,34 @@ +// +// IModeValue.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; + +namespace HamLibSharp +{ + public interface IModeValue + { + RigMode Modes { get; } + + int Value { get; } + } +} + diff --git a/HamLibSharp/IRigCapsNative.cs b/HamLibSharp/IRigCapsNative.cs new file mode 100644 index 0000000..438a0db --- /dev/null +++ b/HamLibSharp/IRigCapsNative.cs @@ -0,0 +1,316 @@ +// +// RigCapsNative.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Collections.Generic; + +namespace HamLibSharp +{ + ///

    + /// Rig caps native interface. + /// There is an ABI issue with HamLib where shortfreq_t and pbwidth_t are defined as "long" + /// and setting_t is defined as "unsigned long". + /// On Linux and Posix: + /// long is defined as 32-bits on 32-bit systems + /// long is defined as 64-bits on 64-bit systems + /// On Windows: + /// long is always defined as 32-bits for both 32 and 64-bit systems. + /// + /// This interface is used to abstract the native struct from the implementation so + /// each architecture specific struct can be used to Marshal the data using PtrToStructure + /// and all variables line up with native memory. + /// + internal interface IRigCapsNative + { + int Rig_model { get; } + + string Model_name { get; } + + string Mfg_name { get; } + + string Version { get; } + + string Copyright { get; } + + RigBackendStatus Status { get; } + + RigType Rig_type { get; } + + PttType Ptt_type { get; } + + RigDcd Dcd_type { get; } + + RigPort Port_type { get; } + + int Serial_rate_min { get; } + + int Serial_rate_max { get; } + + int Serial_data_bits { get; } + + int Serial_stop_bits { get; } + + RigSerialParity Serial_parity { get; } + + RigSerialHandshake Serial_handshake { get; } + + int Write_delay { get; } + + int Post_write_delay { get; } + + int Timeout { get; } + + int Retry { get; } + + uint Has_get_func { get; } + + uint Has_set_func { get; } + + uint Has_get_level { get; } + + uint Has_set_level { get; } + + uint Has_get_parm { get; } + + uint Has_set_parm { get; } + + Granularity[] Level_gran { get; } + + Granularity[] Parm_gran { get; } + + IntPtr Extparms { get; } + + IntPtr Extlevels { get; } + + IntPtr Ctcss_list { get; } + + IntPtr Dcs_list { get; } + + int[] Preamp { get; } + + int[] Attenuator { get; } + + int Max_rit { get; } + + int Max_xit { get; } + + int Max_ifshift { get; } + + RigAnnounce Announces { get; } + + RigVfoOperation Vfo_ops { get; } + + RigScanOperation Scan_ops { get; } + + int Targetable_vfo { get; } + + RigTransceive Transceive { get; } + + int Bank_qty { get; } + + int Chan_desc_sz { get; } + + IList Chan_list { get; } + + FrequencyRange[] Rx_range_list1 { get; } + + FrequencyRange[] Tx_range_list1 { get; } + + FrequencyRange[] Rx_range_list2 { get; } + + FrequencyRange[] Tx_range_list2 { get; } + + IList Tuning_steps { get; } + + IList Filters_list { get; } + + CalibrationTable Str_cal { get; } + + IntPtr Cfgparams { get; } + + IntPtr Priv { get; } + + IntPtr Rig_init { get; } + + IntPtr Rig_cleanup { get; } + + IntPtr Rig_open { get; } + + IntPtr Rig_close { get; } + + IntPtr Set_freq { get; } + + IntPtr Get_freq { get; } + + IntPtr Set_mode { get; } + + IntPtr Get_mode { get; } + + IntPtr Set_vfo { get; } + + IntPtr Get_vfo { get; } + + IntPtr Set_ptt { get; } + + IntPtr Get_ptt { get; } + + IntPtr Get_dcd { get; } + + IntPtr Set_rptr_shift { get; } + + IntPtr Get_rptr_shift { get; } + + IntPtr Set_rptr_offs { get; } + + IntPtr Get_rptr_offs { get; } + + IntPtr Set_split_freq { get; } + + IntPtr Get_split_freq { get; } + + IntPtr Set_split_mode { get; } + + IntPtr Get_split_mode { get; } + + IntPtr Set_split_freq_mode { get; } + + IntPtr Get_split_freq_mode { get; } + + IntPtr Set_split_vfo { get; } + + IntPtr Get_split_vfo { get; } + + IntPtr Set_rit { get; } + + IntPtr Get_rit { get; } + + IntPtr Set_xit { get; } + + IntPtr Get_xit { get; } + + IntPtr Set_ts { get; } + + IntPtr Get_ts { get; } + + IntPtr Set_dcs_code { get; } + + IntPtr Get_dcs_code { get; } + + IntPtr Set_tone { get; } + + IntPtr Get_tone { get; } + + IntPtr Set_ctcss_tone { get; } + + IntPtr Get_ctcss_tone { get; } + + IntPtr Set_dcs_sql { get; } + + IntPtr Get_dcs_sql { get; } + + IntPtr Set_tone_sql { get; } + + IntPtr Get_tone_sql { get; } + + IntPtr Set_ctcss_sql { get; } + + IntPtr Get_ctcss_sql { get; } + + IntPtr Power2mW { get; } + + IntPtr MW2power { get; } + + IntPtr Set_powerstat { get; } + + IntPtr Get_powerstat { get; } + + IntPtr Reset { get; } + + IntPtr Set_ant { get; } + + IntPtr Get_ant { get; } + + IntPtr Set_level { get; } + + IntPtr Get_level { get; } + + IntPtr Set_func { get; } + + IntPtr Get_func { get; } + + IntPtr Set_parm { get; } + + IntPtr Get_parm { get; } + + IntPtr Set_ext_level { get; } + + IntPtr Get_ext_level { get; } + + IntPtr Set_ext_parm { get; } + + IntPtr Get_ext_parm { get; } + + IntPtr Set_conf { get; } + + IntPtr Get_conf { get; } + + IntPtr Send_dtmf { get; } + + IntPtr Recv_dtmf { get; } + + IntPtr Send_morse { get; } + + IntPtr Set_bank { get; } + + IntPtr Set_mem { get; } + + IntPtr Get_mem { get; } + + IntPtr Vfo_op { get; } + + IntPtr Scan { get; } + + IntPtr Set_trn { get; } + + IntPtr Get_trn { get; } + + IntPtr Decode_event { get; } + + IntPtr Set_channel { get; } + + IntPtr Get_channel { get; } + + IntPtr Get_info { get; } + + IntPtr Set_chan_all_cb { get; } + + IntPtr Get_chan_all_cb { get; } + + IntPtr Set_mem_all_cb { get; } + + IntPtr Get_mem_all_cb { get; } + + IntPtr Clone_combo_set { get; } + + IntPtr Clone_combo_get { get; } + } +} diff --git a/HamLibSharp/IRigStateNative.cs b/HamLibSharp/IRigStateNative.cs new file mode 100644 index 0000000..edae944 --- /dev/null +++ b/HamLibSharp/IRigStateNative.cs @@ -0,0 +1,105 @@ +// +// RigStateNative.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; + +namespace HamLibSharp +{ + // TODO: Primary interest is to get the vfo_list and mode_list. Everything else untested. + + internal interface IRigStateNative + { + HamLibPortNative[] Ptt_dcd_ports { get; } + + double Vfo_comp { get; } + + int Itu_region { get; } + + FrequencyRange[] Rx_range_list { get; } + + FrequencyRange[] Tx_range_list { get; } + + IList Tuning_steps { get; } + + IList Filters { get; } + + CalibrationTable Str_cal { get; } + + IList Chan_list { get; } + + int Max_rit { get; } + + int Max_xit { get; } + + int Max_ifshift { get; } + + RigAnnounce Announces { get; } + + int[] Preamp { get; } + + int[] Attenuator { get; } + + uint Has_get_func { get; } + + uint Has_set_func { get; } + + uint Has_get_level { get; } + + uint Has_set_level { get; } + + uint Has_get_parm { get; } + + uint Has_set_parm { get; } + + Granularity[] Level_gran { get; } + + Granularity[] Parm_gran { get; } + + int Hold_decode { get; } + + int Current_vfo { get; } + + int Vfo_list { get; } + + int Comm_state { get; } + + IntPtr Priv { get; } + + IntPtr Obj { get; } + + int Transceive { get; } + + int Poll_interval { get; } + + double Current_freq { get; } + + RigMode Current_mode { get; } + + int Current_width { get; } + + int Tx_vfo { get; } + + RigMode Mode_list { get; } + } +} diff --git a/HamLibSharp/LICENSE b/HamLibSharp/LICENSE new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/HamLibSharp/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/HamLibSharp/Properties/AssemblyInfo.cs b/HamLibSharp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a0cca7f --- /dev/null +++ b/HamLibSharp/Properties/AssemblyInfo.cs @@ -0,0 +1,50 @@ +// +// AssemblyInfo.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("HamLibSharp")] +[assembly: AssemblyDescription ("Binding for the HamLib Amateur Radio control library")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Jae Stutzman")] +[assembly: AssemblyProduct ("HamLibSharp")] +[assembly: AssemblyCopyright ("Copyright © 2016 Jae Stutzman")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] +[assembly: AssemblyMetadata ("License", "This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. LGPL v2.1")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("3.1.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff --git a/HamLibSharp/README.md b/HamLibSharp/README.md new file mode 100644 index 0000000..3da3347 --- /dev/null +++ b/HamLibSharp/README.md @@ -0,0 +1,31 @@ + +# HamLibSharp +Mono/.NET Binding for the Ham Radio Control Libraries (https://github.com/N0NB/hamlib) + +The goal of this binding is to support desktop platforms HamLib supports. Currently tested with Linux (Ubuntu 16.04) on both 64 and 32 bit architectures and Windows as a 32-bit process. + +This binding is a work-in-progress. It targets HamLib 1.2, 3.0.1 and 3.1(git). Native structs are abstracted by interfaces, which allows client code to "just work" + +###What has been tested + - Rig VFO Frequency adjustments (both read and write) + - PTT keying + - Rig Mode adjustments (both read and write) + +###How it works +This binding uses .NET P/Invoke functionality to make calls into C libraries. Data structures from the C library have been recreated in the binding and data is marshaled from native memory into managed memory. The native library is not hard linked and the .so or .dll must be in the path for this binding to locate it at runtime. The project file will copy files from bin_libs into the output directory. + +###What's unique + 1. Similar to the C++ binding, generally any reported errors from HamLib will be thrown as RigException to client code. + 2. The binding has its own polling loop. To use this feature, the client code must call Rig.Start() after a successful Rig.Open(...). + - This binding will automatically poll for common values from Rig. Currently it polls for Frequency, Mode, and PTT. The polling interval is defined when the Rig class is constructed. The client application can use the Rig public properties to get current values. + - For "set" type functions, the binding will add the call to the TaskQueue and return immediately. For GUI apps, this means that blocking is kept to a minimum. If Rig.Start() is not called, the functions will block until HamLib returns. (WORK IN PROGRESS: Not all set functions take advantage of the TaskQueue) + +###Getting Started: +1. Start by cloning the git repository to a directory of your choice +2. Use your OS distribution of hamlib, or place the libhamlib.so.2 into the ./bin_libs or the Windows libhamlib-2.dll (and all dependancies) into the ./bin_libs/x86 directory (32-bit library) +3. Use MonoDevelop or xbuild to build the .sln file +4. Run the test programs which should be located in the ./build/(CONF)/ directory. + +Note: You may need to rename the HamLib .so file if you copy it from HamLib build. + +More description and HOWTO to follow. diff --git a/HamLibSharp/Rig.cs b/HamLibSharp/Rig.cs new file mode 100644 index 0000000..d0fb7af --- /dev/null +++ b/HamLibSharp/Rig.cs @@ -0,0 +1,2022 @@ +// +// Rig.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Collections.Generic; +using System.Collections.Concurrent; +using System.Threading; +using System.Runtime.InteropServices; +using HamLibSharp.Utils; +using HamLibSharp.x86; +using HamLibSharp.x64; + +namespace HamLibSharp +{ + internal interface INativeRig + { + IntPtr Caps { get; } + + IRigStateNative State { get; } + + IntPtr Callbacks { get; } + }; + + public partial class Rig : IDisposable + { + const int CommErrors = 10; + // milliseconds + const int UpdateRate = 250; + const string ConfTokenDevice = "rig_pathname"; + const string ConfTokenSerialSpeed = "serial_speed"; + const string ConfTokenDatabits = "data_bits"; + const string ConfTokenStopbits = "stop_bits"; + const string ConfTokenSerialParity = "serial_parity"; + const string ConfTokenSerialHandshake = "serial_handshake"; + const string ConfTokenDataBits = "data_bits"; + + + IntPtr theRig; + INativeRig nativeRig; + RigCaps rigCaps; + + public RigCaps Caps { get { return rigCaps; } } + + bool disposed; + int errorCount; + + BlockingCollection taskQueue; + System.Timers.Timer timer; + Thread thread; + int updateRate; + volatile bool commErrorClose = false; + + public event EventHandler CommErrorClose; + + /// + /// Gets the unique model identifier + /// + /// The model id. + public int Model { + get { + return rigCaps.RigModel; + } + } + + /// + /// Gets the name of the manufacturer. + /// + /// The name of the manufacturer. + public string MfgName { + get { + return rigCaps.MfgName; + } + } + + /// + /// Gets the name of the model. + /// + /// The name of the model. + public string ModelName { + get { + return rigCaps.ModelName; + } + } + + /// + /// Gets the version of the backend. + /// + /// The version. + public string Version { + get { + return rigCaps.Version; + } + } + + /// + /// Gets the max serial baud rate. + /// + /// The serial rate. + public int SerialRateMax { + get { + return rigCaps.SerialRateMax; + } + } + + /// + /// Gets the min serial baud rate. + /// + /// The serial rate. + public int SerialRateMin { + get { + return rigCaps.SerialRateMin; + } + } + + /// + /// Gets the current serial baud rate. + /// + /// The serial rate. + public int SerialRate { + get { + if (rigOpen) { + return int.Parse (GetConf (ConfTokenSerialSpeed)); + } else { + return 0; + } + } + } + + /// + /// Gets the rig path (i.e. serial port). + /// + /// The rig path. + public string RigPath { + get { + if (rigOpen) { + return GetConf (ConfTokenDevice); + } else { + return string.Empty; + } + } + } + + double freq; + + /// + /// Gets the current frequency of the rig. + /// Last updated by call to UpdateFrequency(). + /// + /// The frequency in Hz. + public double Freq { + get { + if (updateRate > 0) { + lock (this) { + return freq; + } + } else { + return GetFrequency (); + } + } + private set { + lock (this) { + freq = value; + } + } + } + + long width; + RigMode mode; + public RigMode Mode { + get { + if (updateRate > 0) { + lock (this) { + return mode; + } + } else { + return GetMode (ref width); + } + } + private set { + lock (this) { + mode = value; + } + } + } + + public string ModeText { + get { + return TextNameAttribute.GetTextName (Mode); + } + } + + volatile PttMode ptt; + + /// + /// Gets the Push-To-Talk status. + /// Last updated by call to UpdatePtt(). + /// + /// The PTT status. + public PttMode Ptt { + get { + if (updateRate > 0) { + lock (this) { + return ptt; + } + } else { + return GetPtt (); + } + } + private set { + lock (this) { + ptt = value; + } + } + } + + volatile string lastStatus; + + /// + /// Gets the last status. + /// + /// The last status. + public string LastStatus { + get { + lock (this) { + return lastStatus; + } + } + private set { + lock (this) { + lastStatus = value; + } + } + } + + volatile bool rigOpen; + + /// + /// Gets a value indicating whether this rig open. + /// + /// true if rig open; otherwise, false. + public bool RigOpen { + get { + lock (this) { + return rigOpen; + } + } + private set { + lock (this) { + rigOpen = value; + } + } + } + + public RigMode ModeList { + get { + return nativeRig.State.Mode_list; + } + } + + public int VfoList { + get { + return nativeRig.State.Vfo_list; + } + } + + /// + /// Initializes a new instance of the class. + /// This constructor attempts to find the correct backend based on input name. + /// + /// Rig model name. + public Rig (string rigModel, int updateRate = UpdateRate) + { + this.updateRate = updateRate < UpdateRate ? UpdateRate : updateRate; + + if (!HamLib.Initialized) { + HamLib.Initialize (); + } + + // Look up model from name + RigCaps rig; + if (!HamLib.Rigs.TryGetValue (rigModel, out rig)) { + throw new RigException ("Rig model not found"); + } + + // init the underlying rig and library + InitRig (rig.RigModel); + } + + /// + /// Initializes a new instance of the class. + /// This constructor initializing the rig backend based on input model id. + /// + /// Rig model id. + public Rig (int rigModel, int updateRate = UpdateRate) + { + this.updateRate = updateRate < UpdateRate ? UpdateRate : updateRate; + + if (!HamLib.Initialized) { + HamLib.Initialize (); + } + + InitRig (rigModel); + } + + private void InitRig (int rigModel) + { + theRig = rig_init (rigModel); + if (theRig == IntPtr.Zero) + throw new RigException ("Rig initialization error"); + + nativeRig = MarshalNativeRig (theRig); + var caps = HamLib.MarshalRigCaps (nativeRig.Caps); + rigCaps = new RigCaps (caps, this); + + // test... + //Console.WriteLine("TEST>>>>>>"); + //Console.WriteLine (nativeRig.State.Itu_region); + //Console.WriteLine ("HamLibPortNative: {0}", Marshal.SizeOf ()); + + // end test.... + + } + + internal static INativeRig MarshalNativeRig (IntPtr rig_ptr) + { + INativeRig rig = null; + + switch (HamLib.hamLibVersion) { + case HamLibVersion.Current: + case HamLibVersion.V301: + // if the platform is 64-bit, but not windows + if (!HamLib.isWindows && HamLib.bitsize64) { + rig = Marshal.PtrToStructure (rig_ptr); + } else { + rig = Marshal.PtrToStructure (rig_ptr); + } + break; + case HamLibVersion.V2: + // if the platform is 64-bit, but not windows + if (!HamLib.isWindows && HamLib.bitsize64) { + rig = Marshal.PtrToStructure (rig_ptr); + } else { + rig = Marshal.PtrToStructure (rig_ptr); + } + break; + default: + throw new RigException ("Unknown or Incompatible HamLib library found"); + } + + return rig; + } + + private static int OnFrequency (IntPtr theRig, int vfo, double freq, IntPtr rig_ptr) + { + // Console.WriteLine (freq); + + return 1; + } + + private void Dispose (bool disposing) + { + if (!this.disposed) { + if (disposing) { + // Dispose here any managed resources + } + + if (theRig != IntPtr.Zero) { + Stop (); + Close (); + + var ret = rig_cleanup (theRig); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + theRig = IntPtr.Zero; + rigCaps = null; + nativeRig = null; + } + } + disposed = true; + } + + /// + /// Releases all resource used by the object. + /// + /// Call when you are finished using the . The + /// method leaves the in an unusable state. After calling + /// , you must release all references to the so the garbage + /// collector can reclaim the memory that the was occupying. + public void Dispose () + { + Dispose (true); + GC.SuppressFinalize (this); + } + + ~Rig () + { + Dispose (false); + } + + /// + /// Opens communication to a radio. If it is a serial connected rig, + /// searches for the correct baud rate. + /// + /// Device path (i.e. serial port). + public void Open (string devicePath) + { + if (rigCaps.PortType == RigPort.Serial) { + // find the baud... + var foundBaud = false; + foreach (int baud in Enum.GetValues(typeof(RigSerialBaudRate))) { + if (baud >= SerialRateMin && baud <= SerialRateMax) { + try { + SetConf (ConfTokenSerialSpeed, baud); + OpenInternal (devicePath); + // throws exception if IO error + GetPtt (); + foundBaud = true; + break; + } catch (RigException) { + Close (); + } + } + } + if (!foundBaud) { + throw new RigException ("Unable to communicate with rig"); + } + } else { + OpenInternal (devicePath); + } + } + + /// + /// Opens communication to a radio. + /// + /// Device path (i.e. serial port). + /// baud rate of serial port. + public void Open (string device, RigSerialBaudRate baud, RigSerialHandshake handshake, int databits, int stopbits) + { + if (rigCaps.PortType == RigPort.Serial) { + SetConf (ConfTokenSerialSpeed, (int)baud); + SetConf (ConfTokenSerialHandshake, TextNameAttribute.GetTextName(handshake)); + SetConf (ConfTokenDatabits, databits); + SetConf (ConfTokenStopbits, stopbits); + + OpenInternal (device); + } else { + throw new RigException (string.Format ("Device is not serial, but {0}", rigCaps.PortType)); + } + } + + /// + /// Open communication to a radio + /// + public void Open () + { + OpenInternal (null); + } + + private void OpenInternal (string device) + { + if (device != null && device != string.Empty) { + SetConf (ConfTokenDevice, device); + } + + var ret = rig_open (theRig); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + rigOpen = true; + + // untested since I don't have a rig that supports this + ret = rig_set_freq_callback (theRig, OnFrequency, IntPtr.Zero); + if (ret != RigError.OK) { + LastStatus = ErrorString (ret); + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Closes communication to a radio that was previously open with Open(). + /// + public void Close () + { + if (rigOpen) { + var ret = rig_close (theRig); + if (ret != RigError.OK) { + LastStatus = ErrorString (ret); + throw new RigException (ErrorString (ret)); + } + Freq = 0; + rigOpen = false; + } + } + + /// + /// Start will create a timer and a thread to manage the invocation + /// of calls to the rig. This is useful when an application cannot + /// block on rig calls. If Start is not called, each call is + /// called syncronously. + /// The timer will begin calling UpdateFrequency() and UpdatePtt() + /// to update the state properties on a periodic basis. + /// + public void Start () + { + commErrorClose = false; + errorCount = 0; + taskQueue = new BlockingCollection (); + + lock (this) { + try { + Freq = GetFrequency (RigVfo.Current); + } catch (RigException ex) { + LastStatus = ex.Message; + Freq = 0; + } + } + + if (updateRate > 0) { + timer = new System.Timers.Timer (updateRate); + timer.AutoReset = false; + timer.Elapsed += Timer_Elapsed; + timer.Enabled = true; + timer.Start (); + } + + thread = new Thread (TaskThread); + thread.Start (); + } + + void Timer_Elapsed (object sender, System.Timers.ElapsedEventArgs e) + { + //logger.Debug ("Timer elapsed, Id: {0}", System.Threading.Thread.CurrentThread.ManagedThreadId); + + if (commErrorClose) { + Stop (); + Close (); + if (CommErrorClose != null) { + CommErrorClose (this, new EventArgs ()); + } + } else { + UpdateFrequency (RigVfo.Current); + UpdateMode (RigVfo.Current); + UpdatePtt (RigVfo.Current); + timer.Enabled = true; + } + } + + /// + /// Stop the thread and timer that was started by the + /// call to Start(). + /// + public void Stop () + { + if (timer != null) { + timer.Dispose (); + timer = null; + } + + if (taskQueue != null) { + // this will cause thread to exit by throwing InvalidOperationException + taskQueue.CompleteAdding (); + + // wait for taskQueue thread to exit + thread.Join (); + thread = null; + } + } + + private void TaskThread () + { + var running = true; + while (running) { + try { + taskQueue.Take ().Invoke (); + errorCount = 0; + LastStatus = string.Empty; + } catch (InvalidOperationException) { + running = false; + taskQueue = null; + } catch (RigException e) { + LastStatus = e.Message; + errorCount++; + } + + if (errorCount > CommErrors) { + commErrorClose = true; + } + } + } + + /// + /// Sets a radio configuration parameter. + /// + /// Parameter Token. + /// Value to set. + public void SetConf (int token, string val) + { + var ret = rig_set_conf (theRig, token, val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Sets a radio configuration parameter. + /// + /// Parameter Token. + /// Value to set. + public void SetConf (int token, int val) + { + var ret = rig_set_conf (theRig, token, val.ToString ()); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Sets a radio configuration parameter. + /// + /// Name of parameter. + /// Value to set. + public void SetConf (string name, string val) + { + var ret = rig_set_conf (theRig, TokenLookup (name), val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Sets a radio configuration parameter. + /// + /// Name of parameter. + /// Value to set. + public void SetConf (string name, int val) + { + var ret = rig_set_conf (theRig, TokenLookup (name), val.ToString ()); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the value of a configuration parameter associated with token. + /// + /// The configuration parameter. + /// Parameter Token. + public string GetConf (int token) + { + string val; + + var ret = rig_get_conf (theRig, token, out val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return val; + } + + /// + /// Retrieves the value of a configuration parameter associated with token. + /// + /// The configuration parameter. + /// Name of parameter. + public string GetConf (string name) + { + string val; + + var ret = rig_get_conf (theRig, TokenLookup (name), out val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return val; + } + + /// + /// Simple lookup returning token id assicated with name. + /// + /// The token ID + /// The name of the configuration parameter. + public int TokenLookup (string name) + { + return rig_token_lookup (theRig, name); + } + + /// + /// Sets the frequency of the target VFO + /// + /// Frequency in Hz. + /// The target VFO. + public void SetFrequency (double freq, int vfo = RigVfo.Current) + { + if (thread != null) { + taskQueue.Add (() => setfreq (vfo, freq)); + } else { + setfreq (vfo, freq); + } + } + + private void setfreq (int vfo, double freq) + { + var ret = rig_set_freq (theRig, vfo, freq); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the updated frequency from the targeted VFO. + /// Will use Task Queue if Start() has been called. + /// + /// The target VFO. + public void UpdateFrequency (int vfo = RigVfo.Current) + { + if (thread != null) { + taskQueue.Add (() => Freq = GetFrequency (vfo)); + } else { + Freq = GetFrequency (vfo); + } + } + + /// + /// Retrieves the updated frequency from the targeted VFO. + /// Blocks until data received. + /// + /// The frequency in Hz. + /// The target VFO. + public double GetFrequency (int vfo = RigVfo.Current) + { + double freq; + + var ret = rig_get_freq (theRig, vfo, out freq); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return freq; + } + + /// + /// Sets the mode and associated passband of the target VFO. + /// The passband width must be supported by the backend of the rig. + /// + /// The mode to set to. + /// The passband width to set to. + /// The target VFO. + public void SetMode (RigMode mode, long width, int vfo = RigVfo.Current) + { + if (thread != null) { + taskQueue.Add (() => setmode (mode, width, vfo)); + } else { + setmode (mode, width, vfo); + } + } + + private void setmode (RigMode mode, long width, int vfo = RigVfo.Current) + { + var ret = rig_set_mode (theRig, vfo, mode, width); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the updated mode and passband of the target VFO. + /// Will use Task Queue if Start() has been called. + /// + /// The target VFO. + public void UpdateMode (int vfo = RigVfo.Current) + { + if (thread != null) { + taskQueue.Add (() => Mode = GetMode(ref width, vfo)); + } else { + Mode = GetMode(ref width, vfo); + } + } + + /// + /// Retrieves the mode and passband of the target VFO. If the backend is + /// unable to determine the width, the width will be set to RIG_PASSBAND_NORMAL + /// as a default. The value stored at mode location equals RIG_MODE_NONE when + /// the current mode of the VFO is not defined (e.g. blank memory). + /// + /// The current mode. + /// The target VFO. + /// Retrieves the current passband width. + public RigMode GetMode (ref long width, int vfo = RigVfo.Current) + { + RigMode mode; + + var ret = rig_get_mode (theRig, vfo, out mode, out width); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return mode; + } + + /// + /// Sets the current VFO. The VFO can be RIG_VFO_A, RIG_VFO_B, RIG_VFO_C + /// for VFOA, VFOB, VFOC respectively or RIG_VFO_MEM for Memory mode. + /// Supported VFOs depends on rig capabilities. + /// + /// The target VFO. + public void SetVFO (int vfo = RigVfo.Current) + { + var ret = rig_set_vfo (theRig, vfo); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current VFO. The VFO can be RIG_VFO_A, RIG_VFO_B, + /// RIG_VFO_C for VFOA, VFOB, VFOC respectively or RIG_VFO_MEM for + /// Memory mode. Supported VFOs depends on rig capabilities. + /// + /// The current VFO. + public int GetVFO () + { + int vfo; + + var ret = rig_get_vfo (theRig, out vfo); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return vfo; + } + + /// + /// Sets "Push-To-Talk" on/off. + /// + /// The PTT status to set to. + /// The target VFO. + public void SetPtt (PttMode ptt, int vfo = RigVfo.Current) + { + if (thread != null) { + taskQueue.Add (() => SetPttInternal (ptt, vfo)); + } else { + SetPttInternal (ptt, vfo); + } + } + + private void SetPttInternal (PttMode ptt, int vfo) + { + var ret = rig_set_ptt (theRig, vfo, ptt); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Updates the Ptt property + /// + /// The target VFO. + public void UpdatePtt (int vfo = RigVfo.Current) + { + if (thread != null) { + taskQueue.Add (() => Ptt = GetPtt (vfo)); + } else { + Ptt = GetPtt (vfo); + } + } + + /// + /// Returns PttMode + /// + /// The ptt. + /// The target VFO. + public PttMode GetPtt (int vfo = RigVfo.Current) + { + PttMode ptt; + + var ret = rig_get_ptt (theRig, vfo, out ptt); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return ptt; + } + + /// + /// Retrieves the status of DCD (is squelch open?). + /// + /// The status of the DCD. + /// The target VFO. + public DcdState GetDCD (int vfo = RigVfo.Current) + { + DcdState dcd; + + var ret = rig_get_dcd (theRig, vfo, out dcd); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return dcd; + } + + /// + /// Sets the level of a setting. The level value val can be a float or an integer. + /// + /// The level setting. + /// The value to set the level setting to. + /// The target VFO. + public void SetLevel (RigLevel level, int val, int vfo = RigVfo.Current) + { + var ret = rig_set_level (theRig, vfo, (uint)level, val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Sets the level of a setting. The level value val can be a float or an integer. + /// + /// The level setting. + /// The value to set the level setting to. + /// The target VFO. + public void SetLevel (RigLevel level, float val, int vfo = RigVfo.Current) + { + var ret = rig_set_level (theRig, vfo, (uint)level, val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + private bool LevelIsFloat (RigLevel level) + { + return level == (level & (RigLevel.Volume | RigLevel.RF | RigLevel.Squelch | RigLevel.AudioPeakFilter | + RigLevel.NoiseReduction | RigLevel.TwinPbtIn | RigLevel.TwinPbtOut | RigLevel.RFPower | + RigLevel.MicGain | RigLevel.Compressor | RigLevel.Balance | RigLevel.Swr | + RigLevel.Alc | RigLevel.VoxGain | RigLevel.AntiVox)); + } + + /// + /// Retrieves the value of a level. The level value val can be a float or an integer. + /// + /// The level setting. + /// Get the value of the level setting. + /// The target VFO. + public void GetLevel (RigLevel level, out int val, int vfo = RigVfo.Current) + { + if (LevelIsFloat (level)) + throw new RigException (ErrorString (-(int)RigError.InvalidParameter)); + + var ret = rig_get_level (theRig, vfo, (uint)level, out val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the value of a level. The level value val can be a float or an integer. + /// + /// The level setting. + /// Get the value of the level setting. + /// The target VFO. + public void GetLevel (RigLevel level, out float val, int vfo = RigVfo.Current) + { + if (!LevelIsFloat (level)) + throw new RigException (ErrorString (-(int)RigError.InvalidParameter)); + + var ret = rig_get_level (theRig, vfo, (uint)level, out val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + private bool ParmIsFloat (RigParm parm) + { + return parm == (parm & (RigParm.Backlight | RigParm.BatteryLevel)); + } + + /// + /// Sets a parameter. The parameter value val can be a float or an integer. + /// + /// The parameter. + /// The value to set the parameter. + public void SetParm (RigParm parm, int val) + { + var ret = rig_set_parm (theRig, (uint)parm, val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Sets a parameter. The parameter value val can be a float or an integer. + /// + /// The parameter. + /// The value to set the parameter. + public void SetParm (RigParm parm, float val) + { + var ret = rig_set_parm (theRig, (uint)parm, val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the value of a parm. The parameter value val can be a float or an integer. + /// + /// The parameter. + /// The retrieved value. + public void GetParm (RigParm parm, out int val) + { + if (ParmIsFloat (parm)) + throw new RigException (ErrorString (-(int)RigError.InvalidParameter)); + + var ret = rig_get_parm (theRig, (uint)parm, out val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the value of a parm. The parameter value val can be a float or an integer. + /// + /// The parameter. + /// The retrieved value. + public void GetParm (RigParm parm, out float val) + { + if (!ParmIsFloat (parm)) + throw new RigException (ErrorString (-(int)RigError.InvalidParameter)); + + var ret = rig_get_parm (theRig, (uint)parm, out val); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Sets the split(TX) frequency. + /// + /// Tx frequency. + /// The target VFO. + public void SetSplitFreq (double tx_freq, int vfo = RigVfo.Current) + { + var ret = rig_set_split_freq (theRig, vfo, tx_freq); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current split(TX) frequency. + /// + /// The split freq. + /// The target VFO. + public double GetSplitFreq (int vfo = RigVfo.Current) + { + double tx_freq; + + var ret = rig_get_split_freq (theRig, vfo, out tx_freq); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return tx_freq; + } + + /// + /// Sets the split(TX) mode. + /// + /// The transmit split mode to set to. + /// The transmit split width to set to. + /// The target VFO. + public void SetSplitMode (RigMode mode, int width, int vfo = RigVfo.Current) + { + var ret = rig_set_split_mode (theRig, vfo, mode, width); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current split(TX) mode and passband. If the backend is + /// unable to determine the width, the tx_width will be set to RIG_PASSBAND_NORMAL + /// as a default. The value stored at tx_mode location equals RIG_MODE_NONE when + /// the current mode of the VFO is not defined (e.g. blank memory). + /// + /// Retrieve the current split mode. + /// Retrieve the current split width. + /// The target VFO. + public RigMode GetSplitMode (out int width, int vfo = RigVfo.Current) + { + RigMode mode; + + var ret = rig_get_split_mode (theRig, vfo, out mode, out width); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return mode; + } + + /// + /// Sets the current split mode. + /// + /// The split mode to set to. + /// The target Tx VFO. + /// The target Rx VFO. + public void SetSplitVFO (RigSplit split, int tx_vfo, int rx_vfo = RigVfo.Current) + { + var ret = rig_set_split_vfo (theRig, rx_vfo, split, tx_vfo); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current split mode. + /// + /// The split mode. + /// Retrieves the transmit VFO. + /// Rx vfo. + public RigSplit GetSplitVFO (out int tx_vfo, int rx_vfo = RigVfo.Current) + { + RigSplit split; + + var ret = rig_get_split_vfo (theRig, rx_vfo, out split, out tx_vfo); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return split; + } + + /// + /// Checks if a rig is capable of *getting* a level setting. Since the level + /// is an OR'ed bitwise argument, more than one level can be checked at the same time. + /// + /// true if this instance has get level the specified level; otherwise, false. + /// Level. + public bool HasGetLevel (uint level) + { + return rig_has_get_level (theRig, level) == level; + } + + /// + /// Checks if a rig can *set* a level setting. Since the level + /// is an OR'ed bitwise argument, more than one level can be check at the same time. + /// + /// true if this instance has set level the + /// specified level; otherwise, false. + /// Level. + public bool HasSetLevel (uint level) + { + return rig_has_set_level (theRig, level) == level; + } + + /// + /// Checks if a rig is capable of *getting* a parm setting. Since the + /// parm is an OR'ed bitwise argument, more than one parameter can + /// be checked at the same time. + /// + /// true if this instance has get parm the + /// specified parm; otherwise, false. + /// Parm. + public bool HasGetParm (uint parm) + { + return rig_has_get_parm (theRig, parm) == parm; + } + + /// + /// Checks if a rig can *set* a parameter setting. Since the parm + /// is an OR'ed bitwise argument, more than one parameter can be + /// check at the same time. + /// + /// true if this instance has set parm the + /// specified parm; otherwise, false. + /// Parm. + public bool HasSetParm (uint parm) + { + return rig_has_set_parm (theRig, parm) == parm; + } + + /// + /// Retrieves some general information from the radio. This can + /// include firmware revision, exact model name, or just nothing. + /// + /// The info. + public string GetInfo () + { + return RigGetInfo (theRig); + } + + /// + /// Returns the normal (default) passband for the given mode. + /// + /// The passband in Hz if the operation has been sucessful, or a 0 + /// if an error occured + /// The mode to get the passband. + public int PassbandNormal (RigMode mode) + { + return rig_passband_normal (theRig, mode); + } + + /// + /// Returns the narrow (closest) passband for the given mode. + /// EXAMPLE: SetMode(RIG_MODE_LSB, PassbandNarrow(RIG_MODE_LSB)); + /// + /// The passband in Hz if the operation has been sucessful, or a 0 + /// if an error occured + /// The mode to get the passband. + public int PassbandNarrow (RigMode mode) + { + return rig_passband_narrow (theRig, mode); + } + + /// + /// Returns the wide (default) passband for the given mode. + /// EXAMPLE: SetMode(RIG_MODE_AM, PassbandWide(RIG_MODE_AM)); + /// + /// The passband in Hz if the operation has been sucessful, or a 0 + /// if an error occured + /// The mode to get the passband. + public int PassbandWide (RigMode mode) + { + return rig_passband_wide (theRig, mode); + } + + /// + /// Sets the current repeater shift. + /// + /// The repeater shift to set to. + /// The target VFO. + public void SetRepeaterShift (RepeaterShift rptr_shift, int vfo = RigVfo.Current) + { + if (thread != null) { + taskQueue.Add (() => SetRepeaterShiftInternal (rptr_shift, vfo)); + } else { + SetRepeaterShiftInternal (rptr_shift, vfo); + + } + } + + private void SetRepeaterShiftInternal (RepeaterShift rptr_shift, int vfo = RigVfo.Current) + { + var ret = rig_set_rptr_shift (theRig, vfo, rptr_shift); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current repeater shift. + /// + /// The repeater shift. + /// The target VFO. + public RepeaterShift GetRepeaterShift (int vfo = RigVfo.Current) + { + RepeaterShift rptr_shift; + + var ret = rig_get_rptr_shift (theRig, vfo, out rptr_shift); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return rptr_shift; + } + + /// + /// Sets the current repeater offset. + /// + /// Repeater offset. + /// The target VFO. + public void SetRepeaterOffset (int rptr_offs, int vfo = RigVfo.Current) + { + var ret = rig_set_rptr_offs (theRig, vfo, rptr_offs); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current repeater offset. + /// + /// The repeater offset. + /// The target VFO. + public int GetRepeaterOffset (int vfo = RigVfo.Current) + { + int rptr_offs; + + var ret = rig_get_rptr_offs (theRig, vfo, out rptr_offs); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return rptr_offs; + } + + /// + /// Sets the Tuning Step. + /// + /// Tuning step to set to. + /// The target VFO. + public void SetTuningStep (int ts, int vfo = RigVfo.Current) + { + var ret = rig_set_ts (theRig, vfo, ts); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current tuning step. + /// + /// The tuning step. + /// The target VFO. + public int GetTuningStep (int vfo = RigVfo.Current) + { + int ts; + + var ret = rig_get_ts (theRig, vfo, out ts); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return ts; + } + + /// + /// Sets the current Continuous Tone Controlled Squelch + /// System (CTCSS) sub-audible tone frequency. + /// + /// Tone to set to. + /// The target VFO. + public void SetCTCSS (uint tone, int vfo = RigVfo.Current) + { + var ret = rig_set_ctcss_tone (theRig, vfo, tone); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current Continuous Tone Controlled Squelch + /// System (CTCSS) sub-audible tone frequency. + /// + /// The current tone. + /// The target VFO. + public uint GetCTCSS (int vfo = RigVfo.Current) + { + uint tone; + + var ret = rig_get_ctcss_tone (theRig, vfo, out tone); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return tone; + } + + /// + /// Sets the current encoding Digitally-Coded Squelch code. + /// + /// The code to set to. + /// The target VFO. + public void SetDCS (uint code, int vfo = RigVfo.Current) + { + var ret = rig_set_dcs_code (theRig, vfo, code); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current encoding Digitally-Coded Squelch code. + /// + /// The current code. + /// The target VFO. + public uint GetDCS (int vfo = RigVfo.Current) + { + uint code; + + var ret = rig_get_dcs_code (theRig, vfo, out code); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return code; + } + + /// + /// Sets the current Continuous Tone Controlled Squelch + /// System (CTCSS) sub-audible *squelch* tone. + /// Note: tone is NOT in Hz, but in tenth of Hz! This way, + /// if you want to set subaudible squelch tone of 88.5 Hz for + /// example, then pass 885 to this function. + /// NB: the tone squelch has to be explicitly enabled or disabled + /// through a call to SetFunc() with arg RIG_FUNC_TSQL, + /// unless it is unavailable and the tone arg has to be set to 0. + /// + /// The PL tone to set the squelch to. + /// The target VFO. + public void SetCTCSSsql (uint tone, int vfo = RigVfo.Current) + { + var ret = rig_set_ctcss_sql (theRig, vfo, tone); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current Continuous Tone Controlled Squelch + /// System (CTCSS) sub-audible *squelch* tone. + /// Note: tone is NOT in Hz, but in tenth of Hz! This way, + /// the function returns a subaudible tone of 885 for example, + /// then the real tone is 88.5 Hz. Also a value of 0 for tone + /// means that the Tone Squelch is disabled. + /// + /// The PL squelch tone. + /// The target VFO. + public uint GetCTCSSsql (int vfo = RigVfo.Current) + { + uint tone; + + var ret = rig_get_ctcss_sql (theRig, vfo, out tone); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return tone; + } + + /// + /// Sets the current Digitally-Coded *Squelch* code. + /// + /// The squelch code to set to. + /// The target VFO. + public void SetDCSsql (uint code, int vfo = RigVfo.Current) + { + var ret = rig_set_dcs_sql (theRig, vfo, code); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current Digitally-Coded *Squelch* code. + /// + /// The the squelch code. + /// The target VFO. + public uint GetDCSsql (int vfo = RigVfo.Current) + { + uint code; + + var ret = rig_get_dcs_sql (theRig, vfo, out code); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return code; + } + + /// + /// Activate/de-activate a function of the radio. + /// The status argument is true for "activate", false for "de-activate" + /// + /// The functions to activate/de-activate. + /// true or false + /// The target VFO. + public void SetFunc (uint func, bool status, int vfo = RigVfo.Current) + { + var ret = rig_set_func (theRig, vfo, func, status ? 1 : 0); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the status (on/off) of a function of the radio. + /// + /// true if function is "on", false if function is "off" + /// The functions to get the status. + /// The target VFO. + public bool GetFunc (uint func, int vfo = RigVfo.Current) + { + int status; + + var ret = rig_get_func (theRig, vfo, func, out status); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return status != 0; + } + + /// + /// Performs Memory/VFO operation. + /// + /// VfoOperation to perform. + /// The target VFO. + public void VfoOP (RigVfoOperation op, int vfo = RigVfo.Current) + { + var ret = rig_vfo_op (theRig, vfo, op); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Checks if a rig is capable of executing a VFO operation. + /// Since the op is an OR'ed bitmap argument, more than one + /// op can be checked at the same time. + /// + /// true if the rig supports the specified op; otherwise, false. + /// VfoOperation to check. + public bool HasVfoOP (RigVfoOperation op) + { + return rig_has_vfo_op (theRig, op) == op; + } + + /// + /// Performs scanning operation. + /// + /// The scanning operation to perform. + /// Optional channel argument used for the scan. + /// The target VFO. + public void Scan (RigScanOperation scan, int ch, int vfo = RigVfo.Current) + { + var ret = rig_scan (theRig, vfo, scan, ch); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Checks if a rig is capable of performing a scan operation. + /// Since the scan parameter is an OR'ed bitmap argument, + /// more than one op can be checked at the same time. + /// + /// true if the rig supports the specified op; otherwise, false. + /// Scan. + public bool HasScan (RigScanOperation scan) + { + return rig_has_scan (theRig, scan) == scan; + } + + /// + /// Sets the current RIT offset. A value of 0 for rit disables RIT. + /// + /// The RIT offset to adjust to. + /// The target VFO. + public void SetRit (int rit, int vfo = RigVfo.Current) + { + var ret = rig_set_rit (theRig, vfo, rit); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current RIT offset. + /// + /// The current RIT offset. + /// The target VFO. + public int GetRit (int vfo = RigVfo.Current) + { + int rit; + + var ret = rig_get_rit (theRig, vfo, out rit); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return rit; + } + + /// + /// Sets the current XIT offset. A value of 0 for xit disables XIT. + /// + /// The XIT offset to adjust to. + /// The target VFO. + public void SetXit (int xit, int vfo = RigVfo.Current) + { + var ret = rig_set_xit (theRig, vfo, xit); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current XIT offset. + /// + /// The current XIT offset. + /// The target VFO. + public int GetXit (int vfo = RigVfo.Current) + { + int xit; + + var ret = rig_get_xit (theRig, vfo, out xit); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return xit; + } + + /// + /// Select the antenna connector. + /// Example: SetAntenna(RIG_ANT_1); // apply to both TX&RX + /// SetAntenna(RIG_ANT_2, RIG_VFO_RX); + /// + /// The anntena to select. + /// The target VFO. + public void SetAntenna (int ant, int vfo = RigVfo.Current) + { + var ret = rig_set_ant (theRig, vfo, ant); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + } + + /// + /// Retrieves the current antenna. + /// + /// The current antenna selected. + /// The target VFO. + public int GetAntenna (int vfo = RigVfo.Current) + { + int ant; + + var ret = rig_get_ant (theRig, vfo, out ant); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return ant; + } + + /// + /// Sends DTMF digits. See DTMF change speed, etc. + /// + /// String of digits to send. + /// The target VFO. + public void SendDtmf (string digits, int vfo = RigVfo.Current) + { + var ret = rig_send_dtmf (theRig, vfo, digits); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Receives DTMF digits (not blocking). See DTMF change speed, etc. + /// + /// The string of digits received. + /// The target VFO. + public string RecvDtmf (int vfo = RigVfo.Current) + { + string digits; + + var ret = rig_recv_dtmf (theRig, vfo, out digits); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return digits; + } + + /// + /// Sends morse message. See keyer change speed, etc. + /// + /// Message to send. + /// The target VFO. + public void SendMorse (string msg, int vfo = RigVfo.Current) + { + var ret = rig_send_morse (theRig, vfo, msg); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Returns the best frequency resolution of the rig, for a given mode. + /// + /// The frequency resolution in Hertz if the operation has been sucessful. + /// The mode to get the frequency resolution for. + public int GetResolution (RigMode mode) + { + int res; + + res = rig_get_resolution (theRig, mode); + if (res < 0) + throw new RigException (ErrorString (res)); + + return res; + } + + /// + /// Resets the radio. See RIG_RESET_NONE, RIG_RESET_SOFT and + /// RIG_RESET_MCALL defines for the reset. + /// + /// The reset operation to perform. + void Reset (RigReset reset) + { + if (thread != null) { + taskQueue.Add (() => rig_reset (theRig, reset)); + } else { + var ret = rig_reset (theRig, reset); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + } + } + + /// + /// Checks if a rig supports a set of functions. + /// Since the func is an OR'ed bitwise argument, more than one function + /// can be checked at the same time. + /// + /// true if this rig as the ability of radio functions ; otherwise, false. + /// The Functions. + public bool HasGetFunc (uint func) + { + return rig_has_get_func (theRig, func) == func; + } + + /// + /// Checks if a rig supports a set of functions. + /// Since the func is an OR'ed bitwise argument, more than one + /// function can be checked at the same time. + /// + /// true if this instance has set func the specified func; otherwise, false. + /// Func. + public bool HasSetFunc (uint func) + { + return rig_has_set_func (theRig, func) == func; + } + + /// + /// Converts a power value expressed in a range on a [0.0 .. 1.0] relative + /// scale to the real transmit power in milli Watts the radio would emit. + /// The freq and mode where the conversion should take place must be also + /// provided since the relative power is peculiar to a specific freq and + /// mode range of the radio. + /// + /// The converted power in mW. + /// The relative power. + /// The frequency where the conversion should take place. + /// The mode where the conversion should take place. + public uint Power2Milliwatt (float power, double freq, RigMode mode) + { + uint mwpower; + + var ret = rig_power2mW (theRig, out mwpower, power, freq, mode); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return mwpower; + } + + /// + /// Converts a power value expressed in the real transmit power in milli Watts + /// the radio would emit to a range on a [0.0 .. 1.0] relative scale. The freq + /// and mode where the conversion should take place must be also provided since + /// the relative power is peculiar to a specific freq and mode range of the radio. + /// + /// The converted relative power. + /// The power in mW. + /// The frequency where the conversion should take place. + /// The mode where the conversion should take place. + public float Milliwatt2power (uint mwpower, double freq, RigMode mode) + { + float power; + + var ret = rig_mW2power (theRig, out power, mwpower, freq, mode); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return power; + } + + /// + /// Enable/disable the transceive handling of a rig and kick off async mode. + /// + /// The transceive status to set to. + public void SetTransceive (int trn) + { + var ret = rig_set_trn (theRig, trn); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current status of the transceive mode, i.e. if radio + /// sends new status automatically when some changes happened on the radio. + /// + /// The current transceive mode + public int GetTransceive () + { + int trn; + + var ret = rig_get_trn (theRig, out trn); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return trn; + } + + /// + /// Sets the current memory bank number. It is not mandatory + /// for the radio to be in memory mode. Actually it depends on rigs. + /// + /// The memory bank. + /// The target VFO. + public void SetBank (int bank, int vfo = RigVfo.Current) + { + var ret = rig_set_bank (theRig, vfo, bank); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Sets the current memory channel number. It is not mandatory for + /// the radio to be in memory mode. Actually it depends on rigs. + /// + /// The memory channel number. + /// The target VFO. + public void SetMem (int ch, int vfo = RigVfo.Current) + { + var ret = rig_set_mem (theRig, vfo, ch); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieves the current memory channel number. It is not mandatory + /// for the radio to be in memory mode. Actually it depends on rigs. + /// + /// The current memory channel number + /// The target VFO. + public int GetMem (int vfo = RigVfo.Current) + { + int ch; + + var ret = rig_get_mem (theRig, vfo, out ch); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return ch; + } + + // TODO: channel struct is not yet defined in wrapper + // void SetChannel (const channel_t *chan) + // { + // CHECK_RIG( rig_set_channel(theRig, chan) ); + // } + // + // void GetChannel (channel_t *chan) + // { + // CHECK_RIG( rig_get_channel(theRig, chan) ); + // } + + /// + /// turns on/off the radio. See RIG_POWER_ON, RIG_POWER_OFF + /// and RIG_POWER_STANDBY defines for the status. + /// + /// The status to set to. + public void SetPowerState (PowerState status) + { + var ret = rig_set_powerstat (theRig, status); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + } + + /// + /// Retrieve the status of the radio. See RIG_POWER_ON, + /// RIG_POWER_OFF and RIG_POWER_STANDBY defines for the status. + /// + /// The power state. + public PowerState GetPowerState () + { + PowerState status; + + var ret = rig_get_powerstat (theRig, out status); + if (ret != RigError.OK) { + throw new RigException (ErrorString (ret)); + } + + return status; + } + + // RadioMode RngRxModes (freq_t freq) + // { + // unsigned modes = RIG_MODE_NONE; + // freq_range_t *rng; + // int i; + // + // for (i=0; istate.rx_range_list[i]; + // if (RIG_IS_FRNG_END(*rng)) { + // return (RadioMode)modes; + // } + // if (freq >= rng->start && freq <= rng->end) + // modes |= (unsigned)rng->modes; + // } + // + // return (RadioMode)modes; + // } + // + // RadioMode RngTxModes (freq_t freq) + // { + // unsigned modes = RIG_MODE_NONE; + // freq_range_t *rng; + // int i; + // + // for (i=0; istate.tx_range_list[i]; + // if (RIG_IS_FRNG_END(*rng)) { + // return (RadioMode)modes; + // } + // if (freq >= rng->start && freq <= rng->end) + // modes |= (unsigned)rng->modes; + // } + // + // return (RadioMode)modes; + // } + // + + static public int Hz (int f) + { + return f; + } + + static public int kHz (int f) + { + return f * 1000; + } + + static public int MHz (int f) + { + return f * 1000000; + } + + static public int GHz (int f) + { + return f * 1000000000; + } + + public static string FrequencyToString (double frequencyHz) + { + double f; + string hz; + + if (frequencyHz >= GHz (1)) { + hz = "GHz"; + f = (double)frequencyHz / GHz (1); + } else if (frequencyHz >= MHz (1)) { + hz = "MHz"; + f = (double)frequencyHz / MHz (1); + } else if (frequencyHz >= kHz (1)) { + hz = "kHz"; + f = (double)frequencyHz / kHz (1); + } else { + hz = "Hz"; + f = (double)frequencyHz; + } + + return string.Format ("{0} {1}", f, hz); + } + + internal IConfigurationParameter[] GetExtParm (IntPtr ptr) + { + List cparams = new List (); + Rig.rig_ext_parm_foreach (theRig, (rig, confPtr, rig_ptr) => { + var conf = confparam_marshal (confPtr); + cparams.Add (conf); + return 1; + }, IntPtr.Zero); + + return cparams.ToArray (); + } + + internal IConfigurationParameter[] GetExtLevels (IntPtr ptr) + { + List cparams = new List (); + Rig.rig_ext_level_foreach (theRig, (rig, confPtr, rig_ptr) => { + var conf = confparam_marshal (confPtr); + cparams.Add (conf); + return 1; + }, IntPtr.Zero); + + return cparams.ToArray (); + } + + } +} diff --git a/HamLibSharp/RigCaps.cs b/HamLibSharp/RigCaps.cs new file mode 100644 index 0000000..94646c1 --- /dev/null +++ b/HamLibSharp/RigCaps.cs @@ -0,0 +1,658 @@ +// +// RigCaps.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; + +namespace HamLibSharp +{ + // NOTE: Only Properties and Methods allowed here. RigCapsNative.cs maintains the struct fields to maintain + // native struct layout. + public class RigCaps + { + readonly IRigCapsNative rigCapsNative; + readonly int[] ctcss_list; + readonly int[] dcs_list; + readonly IList extparms; + readonly IList extlevels; + readonly IList channelList; + readonly IList tuningStep; + readonly IList filterList; + + internal RigCaps (IRigCapsNative rigCapsNative, Rig rig = null) + { + this.rigCapsNative = rigCapsNative; + + if (rig != null) { + if (rigCapsNative.Extparms != IntPtr.Zero) { + extparms = rig.GetExtParm (rigCapsNative.Extparms); //DecodeExtParms (rig, rigCapsNative.Extparms); + } + + if (rigCapsNative.Extlevels != IntPtr.Zero) { + extlevels = rig.GetExtLevels (rigCapsNative.Extlevels); //DecodeExtLevels (rig, rigCapsNative.Extlevels); + } + } + + if (rigCapsNative.Ctcss_list != IntPtr.Zero) + ctcss_list = DecodeList (rigCapsNative.Ctcss_list); + + if (rigCapsNative.Dcs_list != IntPtr.Zero) + dcs_list = DecodeList (rigCapsNative.Dcs_list); + + channelList = CreateChannelList (rigCapsNative.Chan_list); + tuningStep = CreateModeValueList (rigCapsNative.Tuning_steps); + filterList = CreateModeValueList (rigCapsNative.Filters_list); + } + + private int[] DecodeList (IntPtr listPtr) + { + List list = new List (); + int val = -1; + + while (val != 0) { + val = Marshal.ReadInt32 (listPtr); + if (val != 0) { + list.Add (val); + listPtr = listPtr.Increment (); + } + } + + return list.ToArray (); + } + + private IList CreateChannelList (IList lists) + { + var newList = new List (); + foreach (var chan in lists) { + if (chan.Type != RigMemoryChannel.None) { + newList.Add (chan); + } else { + break; + } + } + return newList.AsReadOnly (); + } + + private IList CreateModeValueList (IList values) + { + var newList = new List (); + + foreach (var val in values) { + if (val.Modes != RigMode.None || val.Value != 0) { + newList.Add (val); + } else { + break; + } + } + return newList.AsReadOnly (); + } + + public int RigModel { + get { + return rigCapsNative.Rig_model; + } + } + + public string ModelName { + get { + return rigCapsNative.Model_name; + } + } + + public string MfgName { + get { + return rigCapsNative.Mfg_name; + } + } + + public string Version { + get { + return rigCapsNative.Version; + } + } + + public string Copyright { + get { + return rigCapsNative.Copyright; + } + } + + public RigBackendStatus Status { + get { + return rigCapsNative.Status; + } + } + + public RigType RigType { + get { + return rigCapsNative.Rig_type; + } + } + + public PttType PttType { + get { + return rigCapsNative.Ptt_type; + } + } + + public RigDcd DcdType { + get { + return rigCapsNative.Dcd_type; + } + } + + public RigPort PortType { + get { + return rigCapsNative.Port_type; + } + } + + public int SerialRateMin { + get { + return rigCapsNative.Serial_rate_min; + } + } + + public int SerialRateMax { + get { + return rigCapsNative.Serial_rate_max; + } + } + + public int SerialDataBits { + get { + return rigCapsNative.Serial_data_bits; + } + } + + public int SerialStopBits { + get { + return rigCapsNative.Serial_stop_bits; + } + } + + public RigSerialParity SerialParity { + get { + return rigCapsNative.Serial_parity; + } + } + + public RigSerialHandshake SerialHandshake { + get { + return rigCapsNative.Serial_handshake; + } + } + + public int WriteDelay { + get { + return rigCapsNative.Write_delay; + } + } + + public int PostWriteDelay { + get { + return rigCapsNative.Post_write_delay; + } + } + + public int Timeout { + get { + return rigCapsNative.Timeout; + } + } + + public int Retry { + get { + return rigCapsNative.Retry; + } + } + + public string GetFunctions { + get { + StringBuilder sb = new StringBuilder (255); + for (int i = 0; i < Rig.RIG_SETTING_MAX; i++) { + sb.Append (Rig.FuncToString (rigCapsNative.Has_get_func & Rig.rig_idx2setting (i)) + " "); + } + + return sb.ToString (); + } + } + + public string SetFunctions { + get { + StringBuilder sb = new StringBuilder (255); + for (int i = 0; i < Rig.RIG_SETTING_MAX; i++) { + sb.Append (Rig.FuncToString (rigCapsNative.Has_set_func & Rig.rig_idx2setting (i)) + " "); + } + + return sb.ToString (); + } + } + + public string GetLevels { + get { + StringBuilder sb = new StringBuilder (255); + for (int i = 0; i < Rig.RIG_SETTING_MAX; i++) { + sb.Append (Rig.LevelToString (rigCapsNative.Has_get_level & Rig.rig_idx2setting (i)) + " "); + } + + return sb.ToString (); + } + } + + public string SetLevels { + get { + StringBuilder sb = new StringBuilder (255); + for (int i = 0; i < Rig.RIG_SETTING_MAX; i++) { + sb.Append (Rig.LevelToString (rigCapsNative.Has_set_level & Rig.rig_idx2setting (i)) + " "); + } + + return sb.ToString (); + } + } + + public string GetParms { + get { + StringBuilder sb = new StringBuilder (255); + for (int i = 0; i < Rig.RIG_SETTING_MAX; i++) { + sb.Append (Rig.ParmToString (rigCapsNative.Has_get_parm & Rig.rig_idx2setting (i)) + " "); + } + + return sb.ToString (); + } + } + + public string SetParms { + get { + StringBuilder sb = new StringBuilder (255); + for (int i = 0; i < Rig.RIG_SETTING_MAX; i++) { + sb.Append (Rig.ParmToString (rigCapsNative.Has_set_parm & Rig.rig_idx2setting (i)) + " "); + } + + return sb.ToString (); + } + } + + public Granularity[] LevelGran { + get { + return rigCapsNative.Level_gran; + } + } + + public Granularity[] ParmGran { + get { + return rigCapsNative.Parm_gran; + } + } + + public IList CtcssTones { + get { + return Array.AsReadOnly (ctcss_list); + } + } + + public IList DcsCodes { + get { + return Array.AsReadOnly (dcs_list); + } + } + + public IList ExtLevels { + get { + return extlevels; + } + } + + public IList ExtParms { + get { + return extparms; + } + } + + public int[] Preamp { + get { + return rigCapsNative.Preamp; + } + } + + public int[] Attenuator { + get { + return rigCapsNative.Attenuator; + } + } + + public int MaxRit { + get { + return rigCapsNative.Max_rit; + } + } + + public int MaxXit { + get { + return rigCapsNative.Max_xit; + } + } + + public int MaxIfshift { + get { + return rigCapsNative.Max_ifshift; + } + } + + public RigAnnounce Announces { + get { + return rigCapsNative.Announces; + } + } + + public RigVfoOperation VfoOps { + get { + return rigCapsNative.Vfo_ops; + } + } + + public RigScanOperation ScanOps { + get { + return rigCapsNative.Scan_ops; + } + } + + public int TargetableVfo { + get { + return rigCapsNative.Targetable_vfo; + } + } + + public RigTransceive Transceive { + get { + return rigCapsNative.Transceive; + } + } + + public int BankQty { + get { + return rigCapsNative.Bank_qty; + } + } + + public int ChanDescSz { + get { + return rigCapsNative.Chan_desc_sz; + } + } + + public IList ChanList { + get { + return channelList; + } + } + + public FrequencyRange[] RxRangeList1 { + get { + return rigCapsNative.Rx_range_list1; + } + } + + public FrequencyRange[] TxRangeList1 { + get { + return rigCapsNative.Tx_range_list1; + } + } + + public FrequencyRange[] RxRangeList2 { + get { + return rigCapsNative.Rx_range_list2; + } + } + + public FrequencyRange[] TxRangeList2 { + get { + return rigCapsNative.Tx_range_list2; + } + } + + /// + /// Gets the tuning steps available for each mode. + /// + /// If a ts field in the list has RIG_TS_ANY value, + /// this means the rig allows its tuning step to be + /// set to any value ranging from the lowest to the + /// highest (if any) value in the list for that mode. + /// The tuning step must be sorted in the ascending + /// order, and the RIG_TS_ANY value, if present, must + /// be the last one in the list. + /// + /// Note also that the minimum frequency resolution + /// of the rig is determined by the lowest value + /// in the Tuning step list. + /// + /// The tuning steps. + public IList TuningSteps { + get { + return tuningStep; + } + } + + /// + /// Gets the filters available for each mode. + /// + /// If more than one filter is available for a given mode, + /// the first entry in the array will be the default + /// filter to use for the normal passband of this mode. + /// The first entry in the array below the default normal passband + /// is the default narrow passband and the first entry in the array + /// above the default normal passband is the default wide passband. + /// Note: if there's no lower width or upper width, then narrow or + /// respectively wide passband is equal to the default normal passband. + /// + /// If a width field in the list has RIG_FLT_ANY value, + /// this means the rig allows its passband width to be + /// set to any value ranging from the lowest to the + /// highest value (if any) in the list for that mode. + /// The RIG_FLT_ANY value, if present, must + /// be the last one in the list. + /// + /// The width field is the narrowest passband in a transmit/receive chain + /// with regard to different IF. + /// + /// The filters. + public IList Filters { + get { + return filterList; + } + } + + public bool HasPrivateData { get { return rigCapsNative.Priv != IntPtr.Zero; } } + + public bool HasRigInit { get { return rigCapsNative.Rig_init != IntPtr.Zero; } } + + public bool HasRigCleanup { get { return rigCapsNative.Rig_cleanup != IntPtr.Zero; } } + + public bool HasRigOpen { get { return rigCapsNative.Rig_open != IntPtr.Zero; } } + + public bool HasRigClose { get { return rigCapsNative.Rig_close != IntPtr.Zero; } } + + public bool HasSetFreq { get { return rigCapsNative.Set_freq != IntPtr.Zero; } } + + public bool HasGetFreq { get { return rigCapsNative.Get_freq != IntPtr.Zero; } } + + public bool HasSetMode { get { return rigCapsNative.Set_mode != IntPtr.Zero; } } + + public bool HasGetMode { get { return rigCapsNative.Get_mode != IntPtr.Zero; } } + + public bool HasSetVfo { get { return rigCapsNative.Set_vfo != IntPtr.Zero; } } + + public bool HasGetVfo { get { return rigCapsNative.Get_vfo != IntPtr.Zero; } } + + public bool HasSetPtt{ get { return rigCapsNative.Set_ptt != IntPtr.Zero; } } + + public bool HasGetPtt { get { return rigCapsNative.Get_ptt != IntPtr.Zero; } } + + public bool HasGetDcd { get { return rigCapsNative.Get_dcd != IntPtr.Zero; } } + + public bool HasSetRptrShift { get { return rigCapsNative.Set_rptr_shift != IntPtr.Zero; } } + + public bool HasGetRptrShift { get { return rigCapsNative.Get_rptr_shift != IntPtr.Zero; } } + + public bool HasSetRptrOffs { get { return rigCapsNative.Set_rptr_offs != IntPtr.Zero; } } + + public bool HasGetRptrOffs { get { return rigCapsNative.Get_rptr_offs != IntPtr.Zero; } } + + public bool HasSetSplitFreq { get { return rigCapsNative.Set_split_freq != IntPtr.Zero; } } + + public bool HasGetSplitFreq { get { return rigCapsNative.Get_split_freq != IntPtr.Zero; } } + + public bool HasSetSplitMode { get { return rigCapsNative.Set_split_mode != IntPtr.Zero; } } + + public bool HasGetSplitMode { get { return rigCapsNative.Get_split_mode != IntPtr.Zero; } } + + public bool HasSetSplitFreqMode { get { return rigCapsNative.Set_split_freq_mode != IntPtr.Zero; } } + + public bool HasGetSplitFreqMode { get { return rigCapsNative.Get_split_freq_mode != IntPtr.Zero; } } + + public bool HasSetSplitVfo { get { return rigCapsNative.Set_split_vfo != IntPtr.Zero; } } + + public bool HasGetSplitVfo { get { return rigCapsNative.Get_split_vfo != IntPtr.Zero; } } + + public bool HasSetRit { get { return rigCapsNative.Set_rit != IntPtr.Zero; } } + + public bool HasGetRit { get { return rigCapsNative.Get_rit != IntPtr.Zero; } } + + public bool HasSetXit { get { return rigCapsNative.Set_xit != IntPtr.Zero; } } + + public bool HasGetXit { get { return rigCapsNative.Get_xit != IntPtr.Zero; } } + + public bool HasSetTS { get { return rigCapsNative.Set_ts != IntPtr.Zero; } } + + public bool HasGetTS { get { return rigCapsNative.Get_ts != IntPtr.Zero; } } + + public bool HasSetDcsCode { get { return rigCapsNative.Set_dcs_code != IntPtr.Zero; } } + + public bool HasGetDcsCode { get { return rigCapsNative.Get_dcs_code != IntPtr.Zero; } } + + public bool HasSetTone { get { return rigCapsNative.Set_tone != IntPtr.Zero; } } + + public bool HasGetTone { get { return rigCapsNative.Get_tone != IntPtr.Zero; } } + + public bool HasSetCtcssTone { get { return rigCapsNative.Set_ctcss_tone != IntPtr.Zero; } } + + public bool HasGetCtcssTone { get { return rigCapsNative.Get_ctcss_tone != IntPtr.Zero; } } + + public bool HasSetDcsSquelch { get { return rigCapsNative.Set_dcs_sql != IntPtr.Zero; } } + + public bool HasGetDcsSquelch { get { return rigCapsNative.Get_dcs_sql != IntPtr.Zero; } } + + public bool HasSetToneSquelch { get { return rigCapsNative.Set_tone_sql != IntPtr.Zero; } } + + public bool HasGetToneSquelch { get { return rigCapsNative.Get_tone_sql != IntPtr.Zero; } } + + public bool HasSetCtcssSquelch { get { return rigCapsNative.Set_ctcss_sql != IntPtr.Zero; } } + + public bool HasGetCtcssSquelch { get { return rigCapsNative.Get_ctcss_sql != IntPtr.Zero; } } + + public bool HasPower2mW { get { return rigCapsNative.Power2mW != IntPtr.Zero; } } + + public bool HasmW2power { get { return rigCapsNative.MW2power != IntPtr.Zero; } } + + public bool HasSetPowerstat { get { return rigCapsNative.Set_powerstat != IntPtr.Zero; } } + + public bool HasGetPowerstat { get { return rigCapsNative.Get_powerstat != IntPtr.Zero; } } + + public bool HasReset { get { return rigCapsNative.Reset != IntPtr.Zero; } } + + public bool HasSetAnt { get { return rigCapsNative.Set_ant != IntPtr.Zero; } } + + public bool HasGetAnt { get { return rigCapsNative.Get_ant != IntPtr.Zero; } } + + public bool HasSetLevel { get { return rigCapsNative.Set_level != IntPtr.Zero; } } + + public bool HasGetLevel { get { return rigCapsNative.Get_level != IntPtr.Zero; } } + + public bool HasSetFunc { get { return rigCapsNative.Set_func != IntPtr.Zero; } } + + public bool HasGetFunc { get { return rigCapsNative.Get_func != IntPtr.Zero; } } + + public bool HasSetParm { get { return rigCapsNative.Set_parm != IntPtr.Zero; } } + + public bool HasGetParm { get { return rigCapsNative.Get_parm != IntPtr.Zero; } } + + public bool HasSetExtLevel { get { return rigCapsNative.Set_ext_level != IntPtr.Zero; } } + + public bool HasGetExtLevel { get { return rigCapsNative.Get_ext_level != IntPtr.Zero; } } + + public bool HasSetExtParm { get { return rigCapsNative.Set_ext_parm != IntPtr.Zero; } } + + public bool HasGetExtParm { get { return rigCapsNative.Get_ext_parm != IntPtr.Zero; } } + + public bool HasSetConf { get { return rigCapsNative.Set_conf != IntPtr.Zero; } } + + public bool HasGetConf { get { return rigCapsNative.Get_conf != IntPtr.Zero; } } + + public bool HasSendDTMF { get { return rigCapsNative.Send_dtmf != IntPtr.Zero; } } + + public bool HasRecvDTMF { get { return rigCapsNative.Recv_dtmf != IntPtr.Zero; } } + + public bool HasSendMorse { get { return rigCapsNative.Send_morse != IntPtr.Zero; } } + + public bool HasSetBank { get { return rigCapsNative.Set_bank != IntPtr.Zero; } } + + public bool HasSetMem { get { return rigCapsNative.Set_mem != IntPtr.Zero; } } + + public bool HasGetMem { get { return rigCapsNative.Get_mem != IntPtr.Zero; } } + + public bool HasVfoOp { get { return rigCapsNative.Vfo_op != IntPtr.Zero; } } + + public bool HasScan { get { return rigCapsNative.Scan != IntPtr.Zero; } } + + public bool HasSetTrn { get { return rigCapsNative.Set_trn != IntPtr.Zero; } } + + public bool HasGetTrn { get { return rigCapsNative.Get_trn != IntPtr.Zero; } } + + public bool HasDecodeEvent { get { return rigCapsNative.Decode_event != IntPtr.Zero; } } + + public bool HasSetChannel { get { return rigCapsNative.Set_channel != IntPtr.Zero; } } + + public bool HasGetChannel { get { return rigCapsNative.Get_channel != IntPtr.Zero; } } + + public bool HasGetInfo { get { return rigCapsNative.Get_info != IntPtr.Zero; } } + + public string CloneComboSet { get { return string.Empty; } } +// rigCapsNative.Clone_combo_set; } } + + public string CloneComboGet { get { return string.Empty; } } +//rigCapsNative.Clone_combo_get; } } + + // public override string ToString () + // { + // return string.Format ("{{\"RigModel\": \"{0}\",\"ModelName\": \"{1}\", \"ManufactureName\" \"{2}\" }}", + // rig_model, model_name, mfg_name); + // } + + public string ToJson () + { + return string.Format ("{{ \"RigModel\": \"{0}\", \"ModelName\": \"{1}\", \"MfgName\": \"{2}\" }}", + RigModel, ModelName, MfgName); + } + } +} diff --git a/HamLibSharp/RigCaps/Program.cs b/HamLibSharp/RigCaps/Program.cs new file mode 100644 index 0000000..8b78f3f --- /dev/null +++ b/HamLibSharp/RigCaps/Program.cs @@ -0,0 +1,559 @@ +// +// Program.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Collections.Generic; +using System.Text; +using HamLibSharp; + +namespace RigCaps +{ + class MainClass + { + public static void Main (string[] args) + { + Console.WriteLine("HamLib Native Library Version: {0}", HamLib.NativeVersion); + Console.WriteLine("HamLib Managed Library Version: {0}", HamLib.ManagedVersion); + + var rig = new Rig ("Dummy"); + //var rig = new Rig ("Si570 AVR-USB"); + //var rig = new Rig ("FT-857"); + //rig.Open (); + + var caps = rig.Caps; + + int i; + int backend_warnings = 0; + StringBuilder sb; + + Console.WriteLine("Caps dump for model:\t{0}", caps.RigModel); + Console.WriteLine("Model name:\t\t{0}", caps.ModelName); + Console.WriteLine("Mfg name:\t\t{0}", caps.MfgName); + Console.WriteLine("Backend version:\t{0}", caps.Version); + Console.WriteLine("Backend copyright:\t{0}", caps.Copyright); + Console.WriteLine("Backend status:\t\t{0}", caps.Status); + Console.Write("Rig type:\t"); + switch (caps.RigType) {// & RigFlags.Mask) { + case RigType.Transceiver: + Console.WriteLine("Transceiver"); + break; + case RigType.Handheld: + Console.WriteLine("Handheld"); + break; + case RigType.Mobile: + Console.WriteLine("Mobile"); + break; + case RigType.Receiver: + Console.WriteLine("Receiver"); + break; + case RigType.PCReceiver: + Console.WriteLine("PC Receiver"); + break; + case RigType.Scanner: + Console.WriteLine("Scanner"); + break; + case RigType.TrunkScanner: + Console.WriteLine("Trunking scanner"); + break; + case RigType.Computer: + Console.WriteLine("Computer"); + break; + case RigType.Tuner: + Console.WriteLine("Tuner"); + break; + case RigType.Other: + Console.WriteLine("Other"); + break; + default: + Console.WriteLine ("Unknown"); + backend_warnings++; + break; + } + + Console.Write("PTT type:\t"); + switch (caps.PttType) { + case PttType.Rig: + Console.WriteLine("Rig capable"); + break; + case PttType.RigMicData: + Console.WriteLine("Rig capable (Mic/Data)"); + break; + case PttType.Parallel: + Console.WriteLine("Parallel port (DATA0)"); + break; + case PttType.SerialRts: + Console.WriteLine("Serial port (CTS/RTS)"); + break; + case PttType.SerialDtr: + Console.WriteLine("Serial port (DTR/DSR)"); + break; + case PttType.None: + Console.WriteLine("None"); + break; + default: + Console.WriteLine ("Unknown"); + backend_warnings++; + break; + } + + Console.Write("DCD type:\t"); + switch (caps.DcdType) { + case RigDcd.Rig: + Console.WriteLine("Rig capable"); + break; + case RigDcd.Parallel: + Console.WriteLine("Parallel port (/STROBE)"); + break; + case RigDcd.SerialCts: + Console.WriteLine("Serial port (CTS/RTS)"); + break; + case RigDcd.SerialDsr: + Console.WriteLine("Serial port (DTR/DSR)"); + break; + case RigDcd.SerialCar: + Console.WriteLine("Serial port (CD)"); + break; + case RigDcd.None: + Console.WriteLine("None"); + break; + default: + Console.WriteLine ("Unknown"); + backend_warnings++; + break; + } + + Console.Write("Port type:\t"); + switch (caps.PortType) { + case RigPort.Serial: + Console.WriteLine("RS-232"); + Console.WriteLine("Serial speed: {0}..{1} bauds, Databits:{2}, Parity:{3}, Stopbits:{4}, HW Handshake:{5}", caps.SerialRateMin, + caps.SerialRateMax, caps.SerialDataBits, caps.SerialParity, caps.SerialStopBits, + caps.SerialHandshake); + break; + case RigPort.Parallel: + Console.WriteLine("Parallel"); + break; + case RigPort.Device: + Console.WriteLine("Device driver"); + break; + case RigPort.USB: + Console.WriteLine("USB"); + break; + case RigPort.Network: + Console.WriteLine("Network link"); + break; + case RigPort.UdpNetwork: + Console.WriteLine("UDP Network link"); + break; + case RigPort.None: + Console.WriteLine("None"); + break; + default: + Console.WriteLine ("Unknown"); + backend_warnings++; + break; + } + + Console.WriteLine("Write delay: {0}ms, timeout {1}ms, {2} retry", + caps.WriteDelay, caps.Timeout, caps.Retry); + Console.WriteLine("Post Write delay: {0}ms", + caps.PostWriteDelay); + + Console.WriteLine("Has targetable VFO: {0}", + caps.TargetableVfo != 0 ? "Y" : "N"); + + Console.WriteLine("Has transceive: {0}", + caps.Transceive != 0 ? "Y" : "N"); + + Console.WriteLine("Announce: 0x{0:X}", caps.Announces); + Console.WriteLine("Max RIT: -{0}.{1}kHz/+{0}.{1}kHz", + caps.MaxRit / 1000, caps.MaxRit % 1000); + + Console.WriteLine("Max XIT: -{0}.{1}kHz/+{0}.{1}kHz", + caps.MaxXit / 1000, caps.MaxXit % 1000); + + Console.WriteLine("Max IF-SHIFT: -{0}.{1}kHz/+{0}.{1}kHz", + caps.MaxIfshift / 1000, caps.MaxIfshift % 1000); + + Console.Write("Preamp:"); + for (i = 0; i < caps.Preamp.Length && caps.Preamp [i] != 0; i++) { + Console.Write (" {0}dB", caps.Preamp [i]); + } + if (i == 0) { + Console.WriteLine (" None"); + } else { + Console.WriteLine (); + } + + Console.Write("Attenuator:"); + for (i = 0; i < caps.Attenuator.Length && caps.Attenuator [i] != 0; i++) { + Console.Write (" {0}dB", caps.Attenuator [i]); + } + if (i == 0) { + Console.WriteLine (" None"); + } else { + Console.WriteLine (); + } + + Console.Write("CTCSS:"); + for(i = 0; i < caps.CtcssTones.Count; i++) { + Console.Write(" {0}.{1}", caps.CtcssTones[i] / 10, caps.CtcssTones[i] % 10); + } + if (i == 0) + Console.WriteLine(" None"); + else + Console.WriteLine(" Hz, {0} tones", i); + + Console.Write("DCS:"); + for(i = 0; i < caps.DcsCodes.Count; i++) { + Console.Write(" {0}", caps.DcsCodes[i]); + } + if (i == 0) + Console.WriteLine(" None"); + else + Console.WriteLine(", {0} codes", i); + + Console.WriteLine("Get functions: {0}", caps.GetFunctions); + + Console.WriteLine("Set functions: {0}", caps.SetFunctions); + + // TODO: integrate the LevelGran into report + Console.WriteLine("Get Levels: {0}", caps.GetLevels); + + Console.WriteLine("Set Levels: {0}", caps.SetLevels); + + Console.Write("Extra levels:"); + foreach (var level in caps.ExtLevels) { + Console.Write (" {0}", level.Name); + } + Console.WriteLine(); + + // TODO: integrate the LevelGran into report + Console.WriteLine("Get parameters: {0}", caps.GetParms); + + Console.WriteLine("Set parameters: {0}", caps.SetParms); + + Console.Write("Extra parameters:"); + foreach (var level in caps.ExtParms) { + Console.Write (" {0}", level.Name); + } + Console.WriteLine(); + + if (rig.ModeList != RigMode.None) { + Console.Write("Mode list: "); + sb = new StringBuilder (); + for (i = 0; i < 30; i++) { + var val = (uint)rig.ModeList & (1U << i); + if (val > 0) { + sb.Append (Rig.ModeToString ((RigMode)val) + " "); + } + } + Console.WriteLine ("\t{0}", sb); + } else { + Console.WriteLine ("None. This backend might be bogus!"); + backend_warnings++; + } + + if (rig.VfoList != 0) { + Console.Write("VFO list: "); + sb = new StringBuilder (); + for (i = 0; i < 30; i++) { + var val = (uint)rig.VfoList & (1U << i); + if (val > 0) { + sb.Append (Rig.VfoToString (val) + " "); + } + } + Console.WriteLine ("\t{0}", sb); + } else { + Console.WriteLine ("None. This backend might be bogus!"); + backend_warnings++; + } + + sb = new StringBuilder (); + foreach (RigVfoOperation op in Enum.GetValues(typeof(RigVfoOperation))) { + sb.Append(Rig.VfoOperationToString(caps.VfoOps & op) + " "); + } + + Console.WriteLine("VFO Ops: {0}", sb); + + sb = new StringBuilder (); + foreach (RigScanOperation op in Enum.GetValues(typeof(RigScanOperation))) { + sb.Append(Rig.ScanOperationToString(caps.ScanOps & op) + " "); + } + + Console.WriteLine("Scan Ops: {0}", sb); + + Console.WriteLine("Number of banks:\t{0}", caps.BankQty); + Console.WriteLine("Memory name desc size:\t{0}", caps.ChanDescSz); + + Console.WriteLine("Memories:"); + for (i = 0; i < caps.ChanList.Count; i++) { + Console.WriteLine("\t{0}..{1}: \t{2}", caps.ChanList[i].Start, caps.ChanList[i].End, + Rig.MemoryChannelToString(caps.ChanList[i].Type)); + Console.Write("\t Mem caps: "); + Console.WriteLine(DumpChannelCaps(caps.ChanList[i].MemCaps)); + } + if (i == 0) + Console.WriteLine(" None"); + Console.WriteLine(); + + int status = RangeSanityCheck(caps.TxRangeList1, 0); + Console.WriteLine("TX ranges status, region 1:\t{0} ({1})", status != 0 ? "Bad" : "OK", status); + if (status != 0) backend_warnings++; + status = RangeSanityCheck(caps.RxRangeList1, 1); + Console.WriteLine("RX ranges status, region 1:\t{0} ({1})", status != 0 ? "Bad" : "OK", status); + if (status != 0) backend_warnings++; + + status = RangeSanityCheck(caps.TxRangeList2, 0); + Console.WriteLine("TX ranges status, region 2:\t{0} ({1})", status != 0 ? "Bad" : "OK", status); + if (status != 0) backend_warnings++; + status = RangeSanityCheck(caps.RxRangeList2, 1); + Console.WriteLine("RX ranges status, region 2:\t{0} ({1})", status != 0 ? "Bad" : "OK", status); + if (status != 0) backend_warnings++; + + Console.WriteLine("Tuning steps:"); + for (i = 0; i < caps.TuningSteps.Count; i++) { + if (caps.TuningSteps[i].Value == ModeValue.Any) + Console.Write("\tANY"); + else + Console.Write("\t{0}", caps.TuningSteps[i].Value); + + sb = new StringBuilder (); + foreach (RigMode mode in Enum.GetValues(typeof(RigMode))) { + var rigMode = caps.TuningSteps[i].Modes & mode; + if (rigMode != RigMode.None) { + sb.Append(Rig.ModeToString(rigMode) + " "); + } + } + Console.WriteLine("\t{0}", sb); + } + if (i == 0) { + Console.WriteLine(" None! This backend might be bogus!"); + backend_warnings++; + } + Console.WriteLine(); + + status = TuneStepSanityCheck(caps.TuningSteps); + Console.WriteLine("Tuning steps status:\t{0} ({1})", status != 0 ? "Bad" : "OK", status); + if (status != 0) backend_warnings++; + + + Console.WriteLine("Filters:"); + for (i = 0; i < caps.Filters.Count; i++) { + if (caps.Filters[i].Value == ModeValue.Any) + Console.Write("\tANY"); + else + Console.Write("\t{0}", Rig.FrequencyToString(caps.Filters[i].Value)); + + sb = new StringBuilder (); + foreach (RigMode mode in Enum.GetValues(typeof(RigMode))) { + var rigMode = caps.Filters[i].Modes & mode; + if (rigMode != RigMode.None) { + sb.Append(Rig.ModeToString(rigMode) + " "); + } + } + Console.WriteLine("\t{0}", sb); + } + if (i == 0) { + Console.WriteLine(" None. This backend might be bogus!"); + backend_warnings++; + } + Console.WriteLine(); + + + Console.WriteLine("Bandwidths:"); + foreach (RigMode mode in Enum.GetValues(typeof(RigMode))) { + var passBandFreq = rig.PassbandNormal (mode); + if (passBandFreq == 0) + continue; + + Console.Write("\t{0}\tNormal: {1},\t", Rig.ModeToString(mode), Rig.FrequencyToString(passBandFreq)); + Console.Write("Narrow: {0},\t", Rig.FrequencyToString(rig.PassbandNarrow(mode))); + Console.WriteLine("Wide: {0}", Rig.FrequencyToString(rig.PassbandWide(mode))); + } + Console.WriteLine(); + + Console.WriteLine("Has priv data:\t{0}", caps.HasPrivateData ? 'Y' : 'N'); + + // Status is either 'Y'es, 'E'mulated, 'N'o + // TODO: keep me up-to-date with API call list! + + Console.WriteLine("Has Init:\t{0}", caps.HasRigInit ? 'Y' : 'N'); + Console.WriteLine("Has Cleanup:\t{0}", caps.HasRigCleanup ? 'Y' : 'N'); + Console.WriteLine("Has Open:\t{0}", caps.HasRigOpen ? 'Y' : 'N'); + Console.WriteLine("Has Close:\t{0}", caps.HasRigClose ? 'Y' : 'N'); + Console.WriteLine("Can set Conf:\t{0}", caps.HasSetConf ? 'Y' : 'N'); + Console.WriteLine("Can get Conf:\t{0}", caps.HasGetConf ? 'Y' : 'N'); + Console.WriteLine("Can set Frequency:\t{0}", caps.HasSetFreq ? 'Y' : 'N'); + Console.WriteLine("Can get Frequency:\t{0}", caps.HasGetFreq ? 'Y' : 'N'); + Console.WriteLine("Can set Mode:\t{0}", caps.HasSetMode ? 'Y' : 'N'); + Console.WriteLine("Can get Mode:\t{0}", caps.HasGetMode ? 'Y' : 'N'); + Console.WriteLine("Can set VFO:\t{0}", caps.HasSetVfo ? 'Y' : 'N'); + Console.WriteLine("Can get VFO:\t{0}", caps.HasGetVfo ? 'Y' : 'N'); + Console.WriteLine("Can set PTT:\t{0}", caps.HasSetPtt ? 'Y' : 'N'); + Console.WriteLine("Can get PTT:\t{0}", caps.HasGetPtt ? 'Y' : 'N'); + Console.WriteLine("Can get DCD:\t{0}", caps.HasGetDcd ? 'Y' : 'N'); + Console.WriteLine("Can set Repeater Duplex:\t{0}", caps.HasSetRptrShift ? 'Y' : 'N'); + Console.WriteLine("Can get Repeater Duplex:\t{0}", caps.HasGetRptrShift ? 'Y' : 'N'); + Console.WriteLine("Can set Repeater Offset:\t{0}", caps.HasSetRptrOffs ? 'Y' : 'N'); + Console.WriteLine("Can get Repeater Offset:\t{0}", caps.HasGetRptrOffs ? 'Y' : 'N'); + + var canSplitVfo = caps.HasSetSplitVfo && (caps.HasSetVfo || (rig.HasVfoOP(RigVfoOperation.Toggle) && caps.VfoOps != RigVfoOperation.None)); + Console.WriteLine("Can set Split Freq:\t{0}", caps.HasSetSplitFreq ? 'Y' : + (canSplitVfo && caps.HasSetFreq ? 'E' : 'N')); + Console.WriteLine("Can get Split Freq:\t{0}", caps.HasGetSplitFreq ? 'Y' : + (canSplitVfo && caps.HasGetFreq ? 'E' : 'N')); + Console.WriteLine("Can set Split Mode:\t{0}", caps.HasSetSplitMode ? 'Y' : + (canSplitVfo && caps.HasSetMode ? 'E' : 'N')); + Console.WriteLine("Can get Split Mode:\t{0}", caps.HasGetSplitMode ? 'Y' : + (canSplitVfo && caps.HasGetMode ? 'E' : 'N')); + + Console.WriteLine("Can set Split VFO:\t{0}", caps.HasSetSplitVfo ? 'Y' : 'N'); + Console.WriteLine("Can get Split VFO:\t{0}", caps.HasGetSplitVfo ? 'Y' : 'N'); + Console.WriteLine("Can set Tuning Step:\t{0}", caps.HasSetTS ? 'Y' : 'N'); + Console.WriteLine("Can get Tuning Step:\t{0}", caps.HasGetTS ? 'Y' : 'N'); + Console.WriteLine("Can set RIT:\t{0}", caps.HasSetRit ? 'Y' : 'N'); + Console.WriteLine("Can get RIT:\t{0}", caps.HasGetRit ? 'Y' : 'N'); + Console.WriteLine("Can set XIT:\t{0}", caps.HasSetXit ? 'Y' : 'N'); + Console.WriteLine("Can get XIT:\t{0}", caps.HasGetXit ? 'Y' : 'N'); + Console.WriteLine("Can set CTCSS:\t{0}", caps.HasSetCtcssTone ? 'Y' : 'N'); + Console.WriteLine("Can get CTCSS:\t{0}", caps.HasGetCtcssTone ? 'Y' : 'N'); + Console.WriteLine("Can set DCS:\t{0}", caps.HasSetDcsCode ? 'Y' : 'N'); + Console.WriteLine("Can get DCS:\t{0}", caps.HasGetDcsCode ? 'Y' : 'N'); + Console.WriteLine("Can set CTCSS Squelch:\t{0}", caps.HasSetCtcssSquelch ? 'Y' : 'N'); + Console.WriteLine("Can get CTCSS Squelch:\t{0}", caps.HasGetCtcssSquelch ? 'Y' : 'N'); + Console.WriteLine("Can set DCS Squelch:\t{0}", caps.HasSetDcsSquelch ? 'Y' : 'N'); + Console.WriteLine("Can get DCS Squelch:\t{0}", caps.HasGetDcsSquelch ? 'Y' : 'N'); + Console.WriteLine("Can set Power Stat:\t{0}", caps.HasSetPowerstat ? 'Y' : 'N'); + Console.WriteLine("Can get Power Stat:\t{0}", caps.HasGetPowerstat? 'Y' : 'N'); + Console.WriteLine("Can Reset:\t{0}", caps.HasReset ? 'Y' : 'N'); + Console.WriteLine("Can get Ant:\t{0}", caps.HasGetAnt ? 'Y' : 'N'); + Console.WriteLine("Can set Ant:\t{0}", caps.HasSetAnt ? 'Y' : 'N'); + Console.WriteLine("Can set Transceive:\t{0}", caps.HasSetTrn ? 'Y' : caps.Transceive == RigTransceive.Rig ? 'E' : 'N'); + Console.WriteLine("Can get Transceive:\t{0}", caps.HasGetTrn ? 'Y' : 'N'); + Console.WriteLine("Can set Func:\t{0}", caps.HasSetFunc ? 'Y' : 'N'); + Console.WriteLine("Can get Func:\t{0}", caps.HasGetFunc ? 'Y' : 'N'); + Console.WriteLine("Can set Level:\t{0}", caps.HasSetLevel ? 'Y' : 'N'); + Console.WriteLine("Can get Level:\t{0}", caps.HasGetLevel ? 'Y' : 'N'); + Console.WriteLine("Can set Param:\t{0}", caps.HasSetParm ? 'Y' : 'N'); + Console.WriteLine("Can get Param:\t{0}", caps.HasGetParm ? 'Y' : 'N'); + Console.WriteLine("Can send DTMF:\t{0}", caps.HasSendDTMF ? 'Y': 'N'); + Console.WriteLine("Can recv DTMF:\t{0}", caps.HasRecvDTMF ? 'Y' : 'N'); + Console.WriteLine("Can send Morse:\t{0}", caps.HasSendMorse ? 'Y' : 'N'); + Console.WriteLine("Can decode Events:\t{0}", caps.HasDecodeEvent ? 'Y' : 'N'); + Console.WriteLine("Can set Bank:\t{0}", caps.HasSetBank ? 'Y' : 'N'); + Console.WriteLine("Can set Mem:\t{0}", caps.HasSetMem ? 'Y' : 'N'); + Console.WriteLine("Can get Mem:\t{0}", caps.HasGetMem ? 'Y' : 'N'); + + var can_echannel = caps.HasSetMem && ( + (caps.HasSetVfo && ((rig.VfoList & RigVfo.Memory) == RigVfo.Memory)) || + (caps.VfoOps != RigVfoOperation.None && rig.HasVfoOP(RigVfoOperation.MemToVfo | RigVfoOperation.VfoToMem))); + + Console.WriteLine("Can set Channel:\t{0}", caps.HasSetChannel ? 'Y' : + (can_echannel ? 'E' : 'N')); + Console.WriteLine("Can get Channel:\t{0}", caps.HasGetChannel ? 'Y' : + (can_echannel ? 'E' : 'N')); + + Console.WriteLine("Can ctl Mem/VFO:\t{0}", caps.HasVfoOp ? 'Y' : 'N'); + Console.WriteLine("Can Scan:\t{0}", caps.HasScan ? 'Y' : 'N'); + Console.WriteLine("Can get Info:\t{0}", caps.HasGetInfo ? 'Y' : 'N'); + Console.WriteLine("Can get power2mW:\t{0}", caps.HasPower2mW ? 'Y' : 'N'); + Console.WriteLine("Can get mW2power:\t{0}", caps.HasmW2power ? 'Y' : 'N'); + Console.WriteLine("Overall backend warnings: {0}", backend_warnings); + } + + static string DumpChannelCaps(IChannelCapability chan) + { + StringBuilder sb = new StringBuilder (); + if (chan.BankNumber) sb.Append("BANK "); + if (chan.Antenna) sb.Append("ANT "); + if (chan.RXFrequency) sb.Append("FREQ "); + if (chan.RXMode) sb.Append("MODE "); + if (chan.RXWidth) sb.Append("WIDTH "); + if (chan.TXFrequency) sb.Append("TXFREQ "); + if (chan.TXMode) sb.Append("TXMODE "); + if (chan.TXWidth) sb.Append("TXWIDTH "); + if (chan.Split) sb.Append("SPLIT "); + if (chan.RepeaterShift) sb.Append("RPTRSHIFT "); + if (chan.RepeaterOffset) sb.Append("RPTROFS "); + if (chan.TuningStep) sb.Append("TS "); + if (chan.Rit) sb.Append("RIT "); + if (chan.Xit) sb.Append("XIT "); + if (chan.Functions > 0) sb.Append("FUNC "); /* TODO: iterate over the list */ + if (chan.Levels > 0) sb.Append("LEVEL "); /* TODO: iterate over the list */ + if (chan.CtcssTone) sb.Append("TONE "); + if (chan.CtcssSquelch) sb.Append("CTCSS "); + if (chan.DcsCode) sb.Append("DCSCODE "); + if (chan.DcsSquelch) sb.Append("DCSSQL "); + if (chan.ScanGroup) sb.Append("SCANGRP "); + if (chan.ChannelFlags) sb.Append("FLAG "); /* TODO: iterate over the RIG_CHFLAG's */ + if (chan.ChannelName) sb.Append("NAME "); + if (chan.ExtensionLevels) sb.Append("EXTLVL "); + + return sb.ToString (); + } + + static int RangeSanityCheck(FrequencyRange[] freqRangeList, int rx) + { + int i; + + for (i = 0; i < freqRangeList.Length; i++) { + if (freqRangeList[i].Start == 0 && freqRangeList[i].End == 0) + break; + if (freqRangeList[i].Start > freqRangeList[i].End) + return -1; + if (freqRangeList[i].Modes == RigMode.None) + return -2; + if (rx > 0) { + if (freqRangeList[i].LowPower > 0 && freqRangeList[i].HighPower > 0) + return -3; + } else { + if (!(freqRangeList[i].LowPower > 0 && freqRangeList[i].HighPower > 0)) + return -3; + if (freqRangeList[i].LowPower > freqRangeList[i].HighPower) + return -3; + } + } + return 0; + } + + static int TuneStepSanityCheck(IList tuningStepList) + { + int i; + int last_ts = 0; + RigMode last_modes = RigMode.None; + + for (i=0; i < tuningStepList.Count; i++) { + if (tuningStepList[i].Value != ModeValue.Any && + tuningStepList[i].Value < last_ts && + last_modes == tuningStepList[i].Modes) + return -1; + if (tuningStepList[i].Modes == RigMode.None) + return -2; + last_ts = tuningStepList[i].Value; + last_modes = tuningStepList[i].Modes; + } + + return 0; + } + } +} diff --git a/HamLibSharp/RigCaps/Properties/AssemblyInfo.cs b/HamLibSharp/RigCaps/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d100e5d --- /dev/null +++ b/HamLibSharp/RigCaps/Properties/AssemblyInfo.cs @@ -0,0 +1,50 @@ +// +// Program.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("RigCaps")] +[assembly: AssemblyDescription ("Test of HamLibSharp")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Jae Stutzman")] +[assembly: AssemblyProduct ("RigCaps")] +[assembly: AssemblyCopyright ("Copyright © 2016 Jae Stutzman")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] +[assembly: AssemblyMetadata ("License", "This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. GPL v2")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff --git a/HamLibSharp/RigCaps/RigCaps.csproj b/HamLibSharp/RigCaps/RigCaps.csproj new file mode 100644 index 0000000..dc88f3a --- /dev/null +++ b/HamLibSharp/RigCaps/RigCaps.csproj @@ -0,0 +1,53 @@ + + + + Debug + AnyCPU + {04C50C92-9170-4BF9-AC4C-3A8264BF7762} + Exe + RigCaps + RigCaps + v4.5.1 + + + true + full + false + ..\build\Debug + DEBUG; + prompt + 4 + true + + + full + true + ..\build\Release + prompt + 4 + true + + + + + + + + + + + + {878402CD-1AF7-443F-980F-861FF9E840CD} + HamLibSharp + + + + + + + + + + + + \ No newline at end of file diff --git a/HamLibSharp/RigException.cs b/HamLibSharp/RigException.cs new file mode 100644 index 0000000..38e0c8b --- /dev/null +++ b/HamLibSharp/RigException.cs @@ -0,0 +1,41 @@ +// +// RigException.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; + +namespace HamLibSharp +{ + public class RigException : Exception + { + public RigException () : base () + { + } + + public RigException (string message) : base (message) + { + } + + public RigException (string message, Exception innerException) : base (message, innerException) + { + } + } +} diff --git a/HamLibSharp/RigNative.cs b/HamLibSharp/RigNative.cs new file mode 100644 index 0000000..cf5ea9e --- /dev/null +++ b/HamLibSharp/RigNative.cs @@ -0,0 +1,507 @@ +// +// RigNative.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Runtime.InteropServices; +using HamLibSharp.x86; +using HamLibSharp.x64; + +namespace HamLibSharp +{ + [UnmanagedFunctionPointer (CallingConvention.Cdecl)] + internal delegate int FreqCallback (IntPtr theRig, int vfo, double freq, IntPtr rig_ptr); + + [UnmanagedFunctionPointer (CallingConvention.Cdecl)] + internal delegate int ConfParamsCallback (IntPtr rig, IntPtr confParams, IntPtr dataPtr); + + public partial class Rig : IDisposable + { + // From native HamLib rig.h file: + + // typedef double freq_t; + // typedef int32_t shortfreq_t; + // typedef shortfreq_t pbwidth_t; + // typedef int vfo_t; + // typedef uint32_t setting_t; + // typedef unsigned int tone_t; + // typedef int ant_t; + // typedef union { + // signed int i; /*!< Signed integer */ + // float f; /*!< Single precision float */ + // char *s; /*!< Pointer to char string */ + // const char *cs; /*!< Pointer to constant char string */ + // } value_t; + + internal const int RIGNAMSIZ = 30; + internal const int RIGVERSIZ = 8; + internal const int FILPATHLEN = 100; + internal const int FRQRANGESIZ = 30; + /* describe channel eg: "WWV 5Mhz" */ + internal const int MAXCHANDESC = 30; + /* max tuning step list size, zero ended */ + internal const int TSLSTSIZ = 20; + /* max preamp/att levels supported, zero ended */ + internal const int MAXDBLSTSIZ = 8; + /* max mem_list size, zero ended */ + internal const int CHANLSTSIZ = 16; + /* max calibration plots in cal_table_t */ + internal const int MAX_CAL_LENGTH = 32; + internal const int RIG_SETTING_MAX = 32; + internal const int RIG_COMBO_MAX = 8; + + + [DllImport (HamLib.dllName)] + internal static extern IntPtr rig_init (int rig_model); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_open (IntPtr rig); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_close (IntPtr rig); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_cleanup (IntPtr rig); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_ant (IntPtr rig, int vfo, int ant); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_ant (IntPtr rig, int vfo, out int ant); + + [DllImport (HamLib.dllName)] + private static extern uint rig_has_get_level (IntPtr rig, uint level); + + [DllImport (HamLib.dllName)] + private static extern uint rig_has_set_level (IntPtr rig, uint level); + + [DllImport (HamLib.dllName)] + private static extern uint rig_has_get_parm (IntPtr rig, uint parm); + + [DllImport (HamLib.dllName)] + private static extern uint rig_has_set_parm (IntPtr rig, uint parm); + + [DllImport (HamLib.dllName, EntryPoint = "rig_set_conf", CharSet = CharSet.Ansi)] + private static extern RigError rig_set_conf (IntPtr rig, int token, string confParam); + + [DllImport (HamLib.dllName, EntryPoint = "rig_get_conf")] + private static extern RigError rig_get_conf (IntPtr rig, int token, IntPtr str); + + private static RigError rig_get_conf (IntPtr rig, int token, out string conf) + { + IntPtr ptr = Marshal.AllocHGlobal (255); + var ret = rig_get_conf (rig, token, ptr); + conf = Marshal.PtrToStringAnsi (ptr); + Marshal.FreeHGlobal (ptr); + return ret; + } + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_powerstat (IntPtr rig, PowerState status); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_powerstat (IntPtr rig, out PowerState status); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_reset (IntPtr rig, RigReset reset); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_ext_level (IntPtr rig, int vfo, int token, Value val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_ext_level (IntPtr rig, int vfo, int token, out Value val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_ext_parm (IntPtr rig, int vfo, int token, Value val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_ext_parm (IntPtr rig, int vfo, int token, out Value val); + + [DllImport (HamLib.dllName)] + internal static extern RigError rig_ext_level_foreach (IntPtr rig, ConfParamsCallback cb, IntPtr data); + + [DllImport (HamLib.dllName)] + internal static extern RigError rig_ext_parm_foreach (IntPtr rig, ConfParamsCallback cb, IntPtr data); + + // extern HAMLIB_EXPORT(const struct confparams*) rig_ext_lookup HAMLIB_PARAMS((RIG *rig, const char *name)); + // extern HAMLIB_EXPORT(const struct confparams *) rig_ext_lookup_tok HAMLIB_PARAMS((RIG *rig, token_t token)); + // extern HAMLIB_EXPORT(token_t) rig_ext_token_lookup HAMLIB_PARAMS((RIG *rig, const char *name)); + // + // + // extern HAMLIB_EXPORT(int) rig_token_foreach HAMLIB_PARAMS((RIG *rig, int (*cfunc)(const struct confparams *, rig_ptr_t), rig_ptr_t data)); + + [DllImport (HamLib.dllName)] + private static extern IntPtr rig_confparam_lookup (IntPtr rig, string name); + + private static IConfigurationParameter confparam_marshal(IntPtr configParamPtr) + { + IConfigurationParameter confParam = null; + + // if the platform is 64-bit, but not windows + if (!HamLib.isWindows && HamLib.bitsize64) { + confParam = Marshal.PtrToStructure (configParamPtr); + } else { + confParam = Marshal.PtrToStructure (configParamPtr); + } + + return confParam; + } + + [DllImport (HamLib.dllName, EntryPoint = "rig_token_lookup", CharSet = CharSet.Ansi)] + private static extern int rig_token_lookup (IntPtr rig, string name); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_ptt (IntPtr rig, int vfo, PttMode ptt); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_ptt (IntPtr rig, int vfo, out PttMode ptt); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_dcd (IntPtr rig, int vfo, out DcdState dcd); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_freq (IntPtr rig, int vfo, double freq); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_freq (IntPtr rig, int vfo, out double freq); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_mode (IntPtr rig, int vfo, RigMode mode, long width); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_mode (IntPtr rig, int vfo, out RigMode mode, out long width); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_vfo (IntPtr rig, int vfo); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_vfo (IntPtr rig, out int vfo); + + [DllImport (HamLib.dllName, EntryPoint = "rigerror")] + private static extern IntPtr rigerror (int errnum); + + private static string ErrorString (int error) + { + return Marshal.PtrToStringAnsi (rigerror (error)); + } + + private static string ErrorString (RigError error) + { + return ErrorString ((int)error); + } + + [DllImport (HamLib.dllName)] + private static extern IntPtr rig_get_info (IntPtr rig); + + private static string RigGetInfo (IntPtr rig) + { + return Marshal.PtrToStringAnsi (rig_get_info (rig)); + } + + [DllImport (HamLib.dllName)] + private static extern int rig_passband_normal (IntPtr rig, RigMode mode); + + [DllImport (HamLib.dllName)] + private static extern int rig_passband_narrow (IntPtr rig, RigMode mode); + + [DllImport (HamLib.dllName)] + private static extern int rig_passband_wide (IntPtr rig, RigMode mode); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_rptr_shift (IntPtr rig, int vfo, RepeaterShift rptr_shift); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_rptr_shift (IntPtr rig, int vfo, out RepeaterShift rptr_shift); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_rptr_offs (IntPtr rig, int vfo, int rptr_offs); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_rptr_offs (IntPtr rig, int vfo, out int rptr_offs); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_ctcss_tone (IntPtr rig, int vfo, uint tone); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_ctcss_tone (IntPtr rig, int vfo, out uint tone); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_dcs_code (IntPtr rig, int vfo, uint code); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_dcs_code (IntPtr rig, int vfo, out uint code); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_ctcss_sql (IntPtr rig, int vfo, uint tone); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_ctcss_sql (IntPtr rig, int vfo, out uint tone); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_dcs_sql (IntPtr rig, int vfo, uint code); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_dcs_sql (IntPtr rig, int vfo, out uint code); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_split_freq (IntPtr rig, int vfo, double tx_freq); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_split_freq (IntPtr rig, int vfo, out double tx_freq); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_split_mode (IntPtr rig, int vfo, RigMode tx_mode, int tx_width); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_split_mode (IntPtr rig, int vfo, out RigMode tx_mode, out int tx_width); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_split_vfo (IntPtr rig, int rx_vfo, RigSplit split, int tx_vfo); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_split_vfo (IntPtr rig, int rx_vfo, out RigSplit split, out int tx_vfo); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_rit (IntPtr rig, int vfo, int rit); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_rit (IntPtr rig, int vfo, out int rit); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_xit (IntPtr rig, int vfo, int xit); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_xit (IntPtr rig, int vfo, out int xit); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_ts (IntPtr rig, int vfo, int ts); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_ts (IntPtr rig, int vfo, out int ts); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_power2mW (IntPtr rig, out uint mwpower, float power, double freq, RigMode mode); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_mW2power (IntPtr rig, out float power, uint mwpower, double freq, RigMode mode); + + [DllImport (HamLib.dllName)] + private static extern int rig_get_resolution (IntPtr rig, RigMode mode); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_level (IntPtr rig, int vfo, uint level, Value val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_level (IntPtr rig, int vfo, uint level, out Value val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_level (IntPtr rig, int vfo, uint level, int val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_level (IntPtr rig, int vfo, uint level, out int val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_level (IntPtr rig, int vfo, uint level, float val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_level (IntPtr rig, int vfo, uint level, out float val); + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + private static extern RigError rig_set_level (IntPtr rig, int vfo, uint level, string val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_level (IntPtr rig, int vfo, uint level, IntPtr val); + + private static RigError rig_get_level (IntPtr rig, int vfo, uint level, out string val) + { + IntPtr ptr = Marshal.AllocHGlobal (255); + var ret = rig_get_level (rig, vfo, level, ptr); + val = Marshal.PtrToStringAnsi (ptr); + Marshal.FreeHGlobal (ptr); + return ret; + } + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_parm (IntPtr rig, uint parm, int val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_parm (IntPtr rig, uint parm, out int val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_parm (IntPtr rig, uint parm, float val); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_parm (IntPtr rig, uint parm, out float val); + + [DllImport (HamLib.dllName)] + private static extern uint rig_has_get_func (IntPtr rig, uint func); + + [DllImport (HamLib.dllName)] + private static extern uint rig_has_set_func (IntPtr rig, uint func); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_func (IntPtr rig, int vfo, uint func, int status); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_func (IntPtr rig, int vfo, uint func, out int status); + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + private static extern RigError rig_send_dtmf (IntPtr rig, int vfo, string digits); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_recv_dtmf (IntPtr rig, int vfo, IntPtr digits, ref int length); + + private static RigError rig_recv_dtmf (IntPtr rig, int vfo, out string val) + { + int length = 255; + IntPtr ptr = Marshal.AllocHGlobal (255); + var ret = rig_recv_dtmf (rig, vfo, ptr, ref length); + val = Marshal.PtrToStringAnsi (ptr); + Marshal.FreeHGlobal (ptr); + return ret; + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + private static extern RigError rig_send_morse (IntPtr rig, int vfo, string msg); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_bank (IntPtr rig, int vfo, int bank); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_mem (IntPtr rig, int vfo, int ch); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_mem (IntPtr rig, int vfo, out int ch); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_vfo_op (IntPtr rig, int vfo, RigVfoOperation op); + + [DllImport (HamLib.dllName)] + private static extern RigVfoOperation rig_has_vfo_op (IntPtr rig, RigVfoOperation op); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_scan (IntPtr rig, int vfo, RigScanOperation scan, int ch); + + [DllImport (HamLib.dllName)] + private static extern RigScanOperation rig_has_scan (IntPtr rig, RigScanOperation scan); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_trn (IntPtr rig, int trn); + + [DllImport (HamLib.dllName)] + private static extern RigError rig_get_trn (IntPtr rig, out int trn); + + + [DllImport (HamLib.dllName)] + internal static extern int rig_setting2idx (uint s); + + internal static uint rig_idx2setting (int i) + { + return 1U << (i); + } + + // Misc calls + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + private static extern IntPtr rig_strrmode (RigMode mode); + + public static string ModeToString (RigMode mode) + { + return Marshal.PtrToStringAnsi (rig_strrmode (mode)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + private static extern IntPtr rig_strvfo (uint vfo); + + public static string VfoToString (uint vfo) + { + return Marshal.PtrToStringAnsi (rig_strvfo (vfo)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + private static extern IntPtr rig_strfunc (uint func); + + public static string FuncToString (uint func) + { + return Marshal.PtrToStringAnsi (rig_strfunc (func)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + private static extern IntPtr rig_strlevel (uint level); + + public static string LevelToString (uint level) + { + return Marshal.PtrToStringAnsi (rig_strlevel (level)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + internal static extern IntPtr rig_strparm (uint parmt); + + public static string ParmToString (uint parmt) + { + return Marshal.PtrToStringAnsi (rig_strparm (parmt)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + internal static extern IntPtr rig_strptrshift (RepeaterShift shift); + + public static string RepeaterShiftToString (RepeaterShift shift) + { + return Marshal.PtrToStringAnsi (rig_strptrshift (shift)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + internal static extern IntPtr rig_strvfop (RigVfoOperation op); + + public static string VfoOperationToString (RigVfoOperation op) + { + return Marshal.PtrToStringAnsi (rig_strvfop (op)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + internal static extern IntPtr rig_strscan (RigScanOperation scan); + + public static string ScanOperationToString (RigScanOperation scan) + { + return Marshal.PtrToStringAnsi (rig_strscan (scan)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + internal static extern IntPtr rig_strstatus (RigBackendStatus status); + + public static string BackendStatusToString (RigBackendStatus status) + { + return Marshal.PtrToStringAnsi (rig_strstatus (status)); + } + + [DllImport (HamLib.dllName, CharSet = CharSet.Ansi)] + internal static extern IntPtr rig_strmtype (RigMemoryChannel mtype); + + public static string MemoryChannelToString (RigMemoryChannel mtype) + { + return Marshal.PtrToStringAnsi (rig_strmtype (mtype)); + } + + // callbacks + [DllImport (HamLib.dllName)] + private static extern RigError rig_set_freq_callback (IntPtr rig, FreqCallback cb, IntPtr ptr); + + } +} diff --git a/HamLibSharp/RigVfo.cs b/HamLibSharp/RigVfo.cs new file mode 100644 index 0000000..f02d8d6 --- /dev/null +++ b/HamLibSharp/RigVfo.cs @@ -0,0 +1,72 @@ +// +// RigVfo.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; + +namespace HamLibSharp +{ + public static class RigVfo + { + public const int None = 0; + public const int TxFlag = (1 << 30); + + ///currVFO -- current "tunable channel"/VFO + public const int Current = (1 << 29); + + ///MEM -- means Memory mode, to be used with set_vfo + public const int Memory = (1 << 28); + + ///VFO -- means (last or any)VFO mode, with set_vfo + public const int AnyVfo = (1 << 27); + + ///TX -- alias for split tx or uplink, of VFO_CURR + public static int SplitTxUplink (int v) + { + return ((v) | TxFlag); + } + + public static int Tx { get { return SplitTxUplink (Current); } } + + ///RX -- alias for split rx or downlink + public const int SplitRxDownlink = Current; + + ///Main -- alias for MAIN + public const int Main = (1 << 26); + + ///Sub -- alias for SUB + public const int Sub = (1 << 25); + + public static int VfoNum (int n) + { + return (1 << (n)); + } + + ///VFOA -- VFO A + public static int VfoA { get { return VfoNum (0); } } + + ///VFOB -- VFO B + public static int VfoB { get { return VfoNum (1); } } + + ///VFOC -- VFO C + public static int VfoC { get { return VfoNum (2); } } + } +} diff --git a/HamLibSharp/Structs.cs b/HamLibSharp/Structs.cs new file mode 100644 index 0000000..bd92634 --- /dev/null +++ b/HamLibSharp/Structs.cs @@ -0,0 +1,149 @@ +// +// Structs.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Runtime.InteropServices; + +namespace HamLibSharp +{ + [StructLayout (LayoutKind.Explicit)] + public struct Value + { + // Signed integer + [FieldOffset (0)] + int i; + // Single precision float + [FieldOffset (0)] + float f; + // Pointer to char string + [MarshalAs (UnmanagedType.LPStr)] + [FieldOffset (0)] + string s; + // Pointer to constant char string + [MarshalAs (UnmanagedType.LPStr)] + [FieldOffset (0)] + string cs; + } + + /// Numeric type + [StructLayout (LayoutKind.Sequential)] + struct paramN + { + /// Minimum value + float min; + /// Maximum value + float max; + /// Step + float step; + } + + /// Combo type + [StructLayout (LayoutKind.Sequential)] + struct paramC + { + /// Combo list + [MarshalAs (UnmanagedType.LPStr)] + string combostr; + } + + [StructLayout (LayoutKind.Explicit)] + struct paramU + { + [FieldOffset (0)] + [MarshalAs (UnmanagedType.Struct)] + paramN n; + [FieldOffset (0)] + [MarshalAs (UnmanagedType.Struct)] + paramC c; + } + + // TODO: ConfigurationParameter still needs to attention due to C unions /// + + // TODO: the value_t union makes this difficult + [StructLayout (LayoutKind.Sequential)] + public struct Granularity + { + // Minimum value + IntPtr min; + // Maximum value + IntPtr max; + // Step + IntPtr step; + } + + // Frequency range + // Put together a group of this struct in an array to define + // what frequencies your rig has access to. + [StructLayout (LayoutKind.Sequential)] + public struct FrequencyRange + { + public double Start { get { return start; } } + + public double End { get { return end; } } + + public RigMode Modes { get { return modes; } } + + public int LowPower { get { return low_power; } } + + public int HighPower { get { return high_power; } } + + public int Vfo { get { return vfo; } } + + public int Antenna { get { return ant; } } + + // Start frequency + double start; + // End frequency + double end; + // Bit field of RIG_MODE's + RigMode modes; + // Lower RF power in mW, -1 for no power (ie. rx list) + int low_power; + // Higher RF power in mW, -1 for no power (ie. rx list) + int high_power; + // VFO list equipped with this range + int vfo; + // Antenna list equipped with this range, 0 means all + int ant; + } + + // Calibration table struct + [StructLayout (LayoutKind.Sequential)] + public class CalibrationTable + { + [StructLayout (LayoutKind.Sequential)] + public struct TableDef + { + // raw (A/D) value, as returned by \a RIG_LEVEL_RAWSTR + int raw; + // associated value, basically the measured dB value + int val; + } + + // number of plots in the table + int size; + + // table of plots + [MarshalAs (UnmanagedType.ByValArray, ArraySubType = UnmanagedType.Struct, SizeConst = Rig.MAX_CAL_LENGTH)] + TableDef[] table = new CalibrationTable.TableDef[Rig.MAX_CAL_LENGTH]; + }; +} diff --git a/HamLibSharp/Utils/CastedList.cs b/HamLibSharp/Utils/CastedList.cs new file mode 100644 index 0000000..d622f57 --- /dev/null +++ b/HamLibSharp/Utils/CastedList.cs @@ -0,0 +1,95 @@ +// +// CastedList.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace HamLibSharp +{ + // Note this class comes from: http://stackoverflow.com/a/30662440 + public class CastedList : IList + { + public IList BaseList; + + public CastedList(IList baseList) + { + BaseList = baseList; + } + + // IEnumerable + IEnumerator IEnumerable.GetEnumerator() { return BaseList.GetEnumerator(); } + + // IEnumerable<> + public IEnumerator GetEnumerator() { return new CastedEnumerator(BaseList.GetEnumerator()); } + + // ICollection + public int Count { get { return BaseList.Count; } } + public bool IsReadOnly { get { return BaseList.IsReadOnly; } } + public void Add(TTo item) { BaseList.Add((TFrom)(object)item); } + public void Clear() { BaseList.Clear(); } + public bool Contains(TTo item) { return BaseList.Contains((TFrom)(object)item); } + public void CopyTo(TTo[] array, int arrayIndex) { BaseList.CopyTo((TFrom[])(object)array, arrayIndex); } + public bool Remove(TTo item) { return BaseList.Remove((TFrom)(object)item); } + + // IList + public TTo this[int index] + { + get { return (TTo)(object)BaseList[index]; } + set { BaseList[index] = (TFrom)(object)value; } + } + + public int IndexOf(TTo item) { return BaseList.IndexOf((TFrom)(object)item); } + public void Insert(int index, TTo item) { BaseList.Insert(index, (TFrom)(object)item); } + public void RemoveAt(int index) { BaseList.RemoveAt(index); } + } + + public class CastedEnumerator : IEnumerator + { + public IEnumerator BaseEnumerator; + + public CastedEnumerator(IEnumerator baseEnumerator) + { + BaseEnumerator = baseEnumerator; + } + + // IDisposable + public void Dispose() { BaseEnumerator.Dispose(); } + + // IEnumerator + object IEnumerator.Current { get { return BaseEnumerator.Current; } } + public bool MoveNext() { return BaseEnumerator.MoveNext(); } + public void Reset() { BaseEnumerator.Reset(); } + + // IEnumerator<> + public TTo Current { get { return (TTo)(object)BaseEnumerator.Current; } } + } + + public static class ListExtensions + { + public static IList CastList(this IList list) + { + return new CastedList(list); + } + } +} + diff --git a/HamLibSharp/Utils/IntPtrExtensions.cs b/HamLibSharp/Utils/IntPtrExtensions.cs new file mode 100644 index 0000000..a017495 --- /dev/null +++ b/HamLibSharp/Utils/IntPtrExtensions.cs @@ -0,0 +1,46 @@ +// +// IntPtrExtensions.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program 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 Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this program. If not, see . +using System; +using System.Runtime.InteropServices; + +namespace HamLibSharp +{ + public static class IntPtrExtensions + { + public static IntPtr Increment (this IntPtr ptr, int cbSize) + { + return new IntPtr (ptr.ToInt64 () + cbSize); + } + + public static IntPtr Increment (this IntPtr ptr) + { + return ptr.Increment (Marshal.SizeOf (typeof(T))); + } + + public static T ElementAt (this IntPtr ptr, int index) + { + var offset = Marshal.SizeOf (typeof(T)) * index; + var offsetPtr = ptr.Increment (offset); + return (T)Marshal.PtrToStructure (offsetPtr, typeof(T)); + } + } +} + diff --git a/HamLibSharp/Utils/Library.cs b/HamLibSharp/Utils/Library.cs new file mode 100644 index 0000000..6ac095e --- /dev/null +++ b/HamLibSharp/Utils/Library.cs @@ -0,0 +1,147 @@ +// +// Library.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.IO; +using System.Xml; +using System.Reflection; +using System.Runtime.InteropServices; + +namespace HamLibSharp.Utils +{ + internal class Library + { + internal static string Copyright { get; private set; } + + internal static string License { get; private set; } + + internal static Version Version { get; private set; } + + private Library () + { + } + + static Library () + { + var assembly = Assembly.GetExecutingAssembly (); + var copyrightAttributes = assembly.GetCustomAttributes (typeof(AssemblyCopyrightAttribute), false); + + //var attribute = null; + if (copyrightAttributes.Length > 0) { + var attribute = copyrightAttributes [0] as AssemblyCopyrightAttribute; + Copyright = attribute.Copyright; + } + + var metadataAttributes = assembly.GetCustomAttributes (typeof(AssemblyMetadataAttribute), false); + + //var attribute = null; + if (metadataAttributes.Length > 0) { + var attribute = metadataAttributes [0] as AssemblyMetadataAttribute; + if (attribute.Key == "License") { + License = attribute.Value; + } + } + + Version = assembly.GetName ().Version; + } + + private static string GetDllConfig (bool x64) + { + string dllDirectory = string.Empty; + + string codeBase = Assembly.GetExecutingAssembly ().CodeBase; + UriBuilder uri = new UriBuilder (codeBase); + string path = Uri.UnescapeDataString (uri.Path); + XmlTextReader reader = new XmlTextReader (path + ".config"); + try { + while (reader.Read ()) { + // Do some work here on the data. + //Console.WriteLine(reader.Name); + + if (reader.Name == "dllwinpath") { + while (reader.MoveToNextAttribute ()) { // Read the attributes. + //Console.Write(" " + reader.Name + "='" + reader.Value + "'"); + switch (reader.Name) { + case "x64": + if (x64) { + dllDirectory = reader.Value; + } + break; + case "x86": + if (!x64) { + dllDirectory = reader.Value; + } + break; + } + } + //Console.WriteLine(); + } + } + } catch (Exception) {} + + return dllDirectory; + } + + internal static bool LoadLibrary (string dllName) + { + if (System.Environment.OSVersion.Platform != PlatformID.MacOSX && System.Environment.OSVersion.Platform != PlatformID.Unix) { + + var dllPath = dllName; + string dllDir = string.Empty; + + if (System.Environment.Is64BitProcess) { + // "x64" + dllDir = GetDllConfig (true); + dllPath = System.IO.Path.Combine (dllDir, dllName); + } else { + // "x86" + dllDir = GetDllConfig (false); + dllPath = System.IO.Path.Combine (dllDir, dllName); + } + + if (!File.Exists (dllPath)) { + throw new FileNotFoundException (string.Format ("Unable to Load Dll. File not found: {0}", Path.GetFullPath (dllPath)), dllPath); + } + + var path = Environment.GetEnvironmentVariable ("Path"); + var fullDllDir = Path.GetFullPath (dllDir); + Environment.SetEnvironmentVariable ("Path", fullDllDir + ";" + path); + path = Environment.GetEnvironmentVariable ("Path"); + //Console.WriteLine (path); + + //Console.WriteLine (dllPath); + return true; //LoadLibraryInterop (dllPath) != IntPtr.Zero ? true : false; + } + + return true; + } + + // This is only available on Windows...but only required for Windows to work around 32-bit vs 64-bit DllImport issues + [DllImport ("kernel32.dll", EntryPoint = "LoadLibrary")] + private static extern IntPtr LoadLibraryInterop (string dllToLoad); + } +} + diff --git a/HamLibSharp/Utils/TextNameAttribute.cs b/HamLibSharp/Utils/TextNameAttribute.cs new file mode 100644 index 0000000..57acdfd --- /dev/null +++ b/HamLibSharp/Utils/TextNameAttribute.cs @@ -0,0 +1,71 @@ +// +// FieldDescription.cs +// +// Author: +// Jae Stutzman +// +// Copyright (c) 2016 Jae Stutzman +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +using System; +using System.Reflection; + +namespace HamLibSharp.Utils +{ + /// + /// Allows us to add descriptions to interop members + /// + [AttributeUsage(AttributeTargets.Field)] + public class TextNameAttribute : Attribute + { + /// + /// The description + /// + public string Description { get; private set; } + + /// + /// Field description + /// + public TextNameAttribute(string description) + { + Description = description; + } + + /// + /// String representation + /// + /// + public override string ToString() + { + return Description; + } + + public static string GetTextName(Enum value) + { + FieldInfo fi = value.GetType().GetField(value.ToString()); + + TextNameAttribute[] attributes = + (TextNameAttribute[])fi.GetCustomAttributes(typeof(TextNameAttribute), false); + + if (attributes != null && attributes.Length > 0) + return attributes[0].Description; + else + return value.ToString(); + } + + } + +} + diff --git a/HamLibSharp/app.config b/HamLibSharp/app.config new file mode 100644 index 0000000..5641c8c --- /dev/null +++ b/HamLibSharp/app.config @@ -0,0 +1,6 @@ + + + --> + + + \ No newline at end of file diff --git a/HamLibSharp/bin_libs/.keep b/HamLibSharp/bin_libs/.keep new file mode 100644 index 0000000..e69de29 diff --git a/HamLibSharp/bin_libs/libhamlib.so.2.1.1 b/HamLibSharp/bin_libs/libhamlib.so.2.1.1 new file mode 100644 index 0000000000000000000000000000000000000000..f6f9ebec6ef17e2c1df6cccab68d4301123ef5cd GIT binary patch literal 8919560 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�lFx`^2>B7 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

    D{gd?NGl6_2lP! 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%0AD>LK241Ie$V6&YuGV50 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