From abb13ec19ce0a99efd9ee1fc58847880357c9cf4 Mon Sep 17 00:00:00 2001 From: waterliu99 Date: Mon, 24 Aug 2020 16:13:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=85=88=E4=B8=80=E4=B8=8B=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9B=AE=E5=BD=95=EF=BC=8C=E6=B7=BB=E5=8A=A0=20?= =?UTF-8?q?=E7=BB=88=E7=AB=AF=E5=8F=B7=5F=E9=80=9A=E9=81=93=E5=8F=B7?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JT1078.Hls/M3U8FileManage.cs | 14 ++- src/JT1078.sln | 192 +++++++++++++++---------------- 2 files changed, 104 insertions(+), 102 deletions(-) diff --git a/src/JT1078.Hls/M3U8FileManage.cs b/src/JT1078.Hls/M3U8FileManage.cs index 260bb6c..e3947d6 100644 --- a/src/JT1078.Hls/M3U8FileManage.cs +++ b/src/JT1078.Hls/M3U8FileManage.cs @@ -36,7 +36,7 @@ namespace JT1078.Hls { string key = jt1078Package.GetKey(); string hlsFileDirectory = m3U8Option.HlsFileDirectory; - string m3u8FileName = Path.Combine(hlsFileDirectory, m3U8Option.M3U8FileName); + string m3u8FileName = Path.Combine(hlsFileDirectory, key, m3U8Option.M3U8FileName); if (!File.Exists(m3u8FileName)) File.Create(m3u8FileName);//创建m3u8文件 var buff = TSArrayPool.Rent(jt1078Package.Bodies.Length + 1024); TSMessagePackWriter tSMessagePackWriter = new TSMessagePackWriter(buff); @@ -47,7 +47,7 @@ namespace JT1078.Hls { var pes = tSEncoder.CreatePES(jt1078Package); tSMessagePackWriter.WriteArray(pes); - CreateTsFile(curTsFileInfo.FileName, tSMessagePackWriter.FlushAndGetArray()); + CreateTsFile(curTsFileInfo.FileName,key, tSMessagePackWriter.FlushAndGetArray()); curTsFileInfo.Duration = (jt1078Package.Timestamp - curTsFileInfo.TsFirst1078PackageTimeStamp) / 1000.0; //按设定的时间(默认为10秒)切分ts文件 if (curTsFileInfo.Duration > m3U8Option.TsFileMaxSecond) @@ -71,7 +71,7 @@ namespace JT1078.Hls tSMessagePackWriter.WriteArray(pmt); var pes = tSEncoder.CreatePES(jt1078Package); tSMessagePackWriter.WriteArray(pes); - CreateTsFile(curTsFileInfo.FileName, tSMessagePackWriter.FlushAndGetArray()); + CreateTsFile(curTsFileInfo.FileName,key, tSMessagePackWriter.FlushAndGetArray()); } } finally @@ -108,7 +108,8 @@ namespace JT1078.Hls /// /// 创建M3U8文件 /// - /// + /// 当前ts文件信息 + /// ts文件信息队列 private void CreateM3U8File(TsFileInfo curTsFileInfo, Queue tsFileInfoQueue) { //ecode_slice_header error 以非关键帧开始生成的ts,通过ffplay播放会出现报错信息 @@ -150,10 +151,11 @@ namespace JT1078.Hls /// 创建TS文件 /// /// ts文件路径 + /// 终端号_通道号(用作目录) /// 文件内容 - private void CreateTsFile(string fileName, byte[] data) + private void CreateTsFile(string fileName,string key, byte[] data) { - string tsFileName = Path.Combine(m3U8Option.HlsFileDirectory, fileName); + string tsFileName = Path.Combine(m3U8Option.HlsFileDirectory, key, fileName); using (var fileStream = new FileStream(tsFileName, FileMode.Append, FileAccess.Write)) { fileStream.Write(data,0,data.Length); diff --git a/src/JT1078.sln b/src/JT1078.sln index aa96edf..731bc9d 100644 --- a/src/JT1078.sln +++ b/src/JT1078.sln @@ -46,148 +46,148 @@ Global GlobalSection(ProjectConfigurationPlatforms) = postSolution {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x64.ActiveCfg = Debug|x64 - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x64.Build.0 = Debug|x64 - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x86.ActiveCfg = Debug|x86 - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x86.Build.0 = Debug|x86 + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x64.ActiveCfg = Debug|Any CPU + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x64.Build.0 = Debug|Any CPU + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x86.ActiveCfg = Debug|Any CPU + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Debug|x86.Build.0 = Debug|Any CPU {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|Any CPU.ActiveCfg = Release|Any CPU {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|Any CPU.Build.0 = Release|Any CPU - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x64.ActiveCfg = Release|x64 - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x64.Build.0 = Release|x64 - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x86.ActiveCfg = Release|x86 - {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x86.Build.0 = Release|x86 + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x64.ActiveCfg = Release|Any CPU + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x64.Build.0 = Release|Any CPU + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x86.ActiveCfg = Release|Any CPU + {F060F379-C8E4-4CA6-A54C-938A9780ACD2}.Release|x86.Build.0 = Release|Any CPU {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x64.ActiveCfg = Debug|x64 - {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x64.Build.0 = Debug|x64 - {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x86.ActiveCfg = Debug|x86 - {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x86.Build.0 = Debug|x86 + {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x64.ActiveCfg = Debug|Any CPU + {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x64.Build.0 = Debug|Any CPU + {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x86.ActiveCfg = Debug|Any CPU + {2F987285-EB7A-4934-909E-50E42A2D1140}.Debug|x86.Build.0 = Debug|Any CPU {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|Any CPU.ActiveCfg = Release|Any CPU {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|Any CPU.Build.0 = Release|Any CPU - {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x64.ActiveCfg = Release|x64 - {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x64.Build.0 = Release|x64 - {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x86.ActiveCfg = Release|x86 - {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x86.Build.0 = Release|x86 + {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x64.ActiveCfg = Release|Any CPU + {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x64.Build.0 = Release|Any CPU + {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x86.ActiveCfg = Release|Any CPU + {2F987285-EB7A-4934-909E-50E42A2D1140}.Release|x86.Build.0 = Release|Any CPU {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x64.ActiveCfg = Debug|x64 - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x64.Build.0 = Debug|x64 - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x86.ActiveCfg = Debug|x86 - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x86.Build.0 = Debug|x86 + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x64.ActiveCfg = Debug|Any CPU + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x64.Build.0 = Debug|Any CPU + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x86.ActiveCfg = Debug|Any CPU + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Debug|x86.Build.0 = Debug|Any CPU {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|Any CPU.ActiveCfg = Release|Any CPU {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|Any CPU.Build.0 = Release|Any CPU - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x64.ActiveCfg = Release|x64 - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x64.Build.0 = Release|x64 - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x86.ActiveCfg = Release|x86 - {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x86.Build.0 = Release|x86 + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x64.ActiveCfg = Release|Any CPU + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x64.Build.0 = Release|Any CPU + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x86.ActiveCfg = Release|Any CPU + {60CAC24B-7317-48BF-9DBF-7F3ECA3689A4}.Release|x86.Build.0 = Release|Any CPU {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x64.ActiveCfg = Debug|x64 - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x64.Build.0 = Debug|x64 - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x86.ActiveCfg = Debug|x86 - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x86.Build.0 = Debug|x86 + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x64.ActiveCfg = Debug|Any CPU + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x64.Build.0 = Debug|Any CPU + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x86.ActiveCfg = Debug|Any CPU + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Debug|x86.Build.0 = Debug|Any CPU {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|Any CPU.ActiveCfg = Release|Any CPU {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|Any CPU.Build.0 = Release|Any CPU - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x64.ActiveCfg = Release|x64 - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x64.Build.0 = Release|x64 - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x86.ActiveCfg = Release|x86 - {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x86.Build.0 = Release|x86 + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x64.ActiveCfg = Release|Any CPU + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x64.Build.0 = Release|Any CPU + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x86.ActiveCfg = Release|Any CPU + {C6A43FDF-C609-40BB-B598-87F0BF7B944B}.Release|x86.Build.0 = Release|Any CPU {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x64.ActiveCfg = Debug|x64 - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x64.Build.0 = Debug|x64 - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x86.ActiveCfg = Debug|x86 - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x86.Build.0 = Debug|x86 + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x64.ActiveCfg = Debug|Any CPU + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x64.Build.0 = Debug|Any CPU + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x86.ActiveCfg = Debug|Any CPU + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Debug|x86.Build.0 = Debug|Any CPU {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|Any CPU.ActiveCfg = Release|Any CPU {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|Any CPU.Build.0 = Release|Any CPU - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x64.ActiveCfg = Release|x64 - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x64.Build.0 = Release|x64 - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x86.ActiveCfg = Release|x86 - {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x86.Build.0 = Release|x86 + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x64.ActiveCfg = Release|Any CPU + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x64.Build.0 = Release|Any CPU + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x86.ActiveCfg = Release|Any CPU + {E9FF2716-EF30-4180-879B-E8AB979ACFF3}.Release|x86.Build.0 = Release|Any CPU {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x64.ActiveCfg = Debug|x64 - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x64.Build.0 = Debug|x64 - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x86.ActiveCfg = Debug|x86 - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x86.Build.0 = Debug|x86 + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x64.Build.0 = Debug|Any CPU + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Debug|x86.Build.0 = Debug|Any CPU {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|Any CPU.ActiveCfg = Release|Any CPU {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|Any CPU.Build.0 = Release|Any CPU - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x64.ActiveCfg = Release|x64 - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x64.Build.0 = Release|x64 - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x86.ActiveCfg = Release|x86 - {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x86.Build.0 = Release|x86 + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x64.ActiveCfg = Release|Any CPU + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x64.Build.0 = Release|Any CPU + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x86.ActiveCfg = Release|Any CPU + {9ADD82F9-E0B2-4263-8573-151F673BB33F}.Release|x86.Build.0 = Release|Any CPU {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x64.ActiveCfg = Debug|x64 - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x64.Build.0 = Debug|x64 - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x86.ActiveCfg = Debug|x86 - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x86.Build.0 = Debug|x86 + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x64.ActiveCfg = Debug|Any CPU + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x64.Build.0 = Debug|Any CPU + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x86.ActiveCfg = Debug|Any CPU + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Debug|x86.Build.0 = Debug|Any CPU {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|Any CPU.ActiveCfg = Release|Any CPU {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|Any CPU.Build.0 = Release|Any CPU - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x64.ActiveCfg = Release|x64 - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x64.Build.0 = Release|x64 - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x86.ActiveCfg = Release|x86 - {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x86.Build.0 = Release|x86 + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x64.ActiveCfg = Release|Any CPU + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x64.Build.0 = Release|Any CPU + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x86.ActiveCfg = Release|Any CPU + {77402142-54E5-4E64-8F9E-BCAAC2CD0E8D}.Release|x86.Build.0 = Release|Any CPU {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|Any CPU.Build.0 = Debug|Any CPU - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x64.ActiveCfg = Debug|x64 - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x64.Build.0 = Debug|x64 - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x86.ActiveCfg = Debug|x86 - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x86.Build.0 = Debug|x86 + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x64.ActiveCfg = Debug|Any CPU + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x64.Build.0 = Debug|Any CPU + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x86.ActiveCfg = Debug|Any CPU + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Debug|x86.Build.0 = Debug|Any CPU {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|Any CPU.ActiveCfg = Release|Any CPU {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|Any CPU.Build.0 = Release|Any CPU - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x64.ActiveCfg = Release|x64 - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x64.Build.0 = Release|x64 - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x86.ActiveCfg = Release|x86 - {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x86.Build.0 = Release|x86 + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x64.ActiveCfg = Release|Any CPU + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x64.Build.0 = Release|Any CPU + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x86.ActiveCfg = Release|Any CPU + {33E54FFC-7D91-42E5-9DC1-853738AB8980}.Release|x86.Build.0 = Release|Any CPU {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x64.ActiveCfg = Debug|x64 - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x64.Build.0 = Debug|x64 - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x86.ActiveCfg = Debug|x86 - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x86.Build.0 = Debug|x86 + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x64.ActiveCfg = Debug|Any CPU + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x64.Build.0 = Debug|Any CPU + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x86.ActiveCfg = Debug|Any CPU + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Debug|x86.Build.0 = Debug|Any CPU {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|Any CPU.ActiveCfg = Release|Any CPU {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|Any CPU.Build.0 = Release|Any CPU - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x64.ActiveCfg = Release|x64 - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x64.Build.0 = Release|x64 - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x86.ActiveCfg = Release|x86 - {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x86.Build.0 = Release|x86 + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x64.ActiveCfg = Release|Any CPU + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x64.Build.0 = Release|Any CPU + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x86.ActiveCfg = Release|Any CPU + {D13FE092-1D11-4545-A322-9F06BCDAC0FD}.Release|x86.Build.0 = Release|Any CPU {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x64.ActiveCfg = Debug|x64 - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x64.Build.0 = Debug|x64 - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x86.ActiveCfg = Debug|x86 - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x86.Build.0 = Debug|x86 + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x64.Build.0 = Debug|Any CPU + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Debug|x86.Build.0 = Debug|Any CPU {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|Any CPU.Build.0 = Release|Any CPU - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x64.ActiveCfg = Release|x64 - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x64.Build.0 = Release|x64 - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x86.ActiveCfg = Release|x86 - {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x86.Build.0 = Release|x86 + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x64.ActiveCfg = Release|Any CPU + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x64.Build.0 = Release|Any CPU + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x86.ActiveCfg = Release|Any CPU + {5BBA68D4-53C6-4356-AAAE-ECC21B0BB8FF}.Release|x86.Build.0 = Release|Any CPU {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x64.ActiveCfg = Debug|x64 - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x64.Build.0 = Debug|x64 - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x86.ActiveCfg = Debug|x86 - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x86.Build.0 = Debug|x86 + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x64.ActiveCfg = Debug|Any CPU + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x64.Build.0 = Debug|Any CPU + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x86.ActiveCfg = Debug|Any CPU + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Debug|x86.Build.0 = Debug|Any CPU {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|Any CPU.ActiveCfg = Release|Any CPU {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|Any CPU.Build.0 = Release|Any CPU - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x64.ActiveCfg = Release|x64 - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x64.Build.0 = Release|x64 - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x86.ActiveCfg = Release|x86 - {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x86.Build.0 = Release|x86 + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x64.ActiveCfg = Release|Any CPU + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x64.Build.0 = Release|Any CPU + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x86.ActiveCfg = Release|Any CPU + {C98AD4CE-D7F5-4F7F-BAB5-D1AD50DDF14F}.Release|x86.Build.0 = Release|Any CPU {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x64.ActiveCfg = Debug|x64 - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x64.Build.0 = Debug|x64 - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x86.ActiveCfg = Debug|x86 - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x86.Build.0 = Debug|x86 + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x64.ActiveCfg = Debug|Any CPU + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x64.Build.0 = Debug|Any CPU + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x86.ActiveCfg = Debug|Any CPU + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Debug|x86.Build.0 = Debug|Any CPU {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|Any CPU.ActiveCfg = Release|Any CPU {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|Any CPU.Build.0 = Release|Any CPU - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x64.ActiveCfg = Release|x64 - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x64.Build.0 = Release|x64 - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x86.ActiveCfg = Release|x86 - {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x86.Build.0 = Release|x86 + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x64.ActiveCfg = Release|Any CPU + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x64.Build.0 = Release|Any CPU + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x86.ActiveCfg = Release|Any CPU + {5564C20B-BFF4-4A2A-BDF2-C7427E93E993}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE