qrmode 에서 wms rcv 태그 인식되게 함

This commit is contained in:
ChiKyun Kim
2025-08-06 10:05:22 +09:00
parent 5c31a02084
commit a7bc964b5c
2 changed files with 443 additions and 0 deletions

109
Handler/CLAUDE.md Normal file
View File

@@ -0,0 +1,109 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is an industrial automation system for ATV (Automatic Test Vehicle) reel label attachment, modification, and transfer operations. The system is built in C# (.NET Framework 4.8) using Windows Forms and integrates with various hardware components including motion controllers, barcode readers, printers, and PLCs.
## Build Commands
```bash
# Build the main solution
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Debug /p:Platform="Any CPU"
# Build for release
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Release /p:Platform="Any CPU"
# Build specific project (example)
msbuild "Project\STDLabelAttach(ATV).csproj" /p:Configuration=Debug
# Build for x86 platform (common configuration)
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Debug /p:Platform=x86
```
## Architecture Overview
### Core Components
- **Project/**: Main application with UI and business logic
- Contains the primary Windows Forms application (`fMain.cs`)
- Implements state machine logic in `RunCode/StateMachine/` and `RunCode/Step/`
- Device interfaces in `Device/` folder (KeyenceBarcode, SATOPrinter, TowerLamp, etc.)
- Dialog forms for user interactions
- **Project_form2/**: Secondary receiver application for data handling
- Handles SID (Serial ID) conversion and processing
- Customer information management
- Import/export functionality
- **Sub/**: Shared libraries and utilities
- `arCtl/`: Custom UI controls and components
- `arAzinAxt/`: Motion controller interface (AzinAxt hardware)
- `arRS232/`: Serial communication library
- `AmkorRestfulService/`: RESTful API service for external integration
- `CommSM/`: State machine communication library
- `CommUtil/`: Common utilities and dialogs
### Key Technologies
- **Hardware Integration**: Motion controllers (AzinAxt), barcode readers (Keyence), SATO printers
- **Database**: Entity Framework 6.2.0 with SQL Server
- **Communication**: Serial (RS232), RESTful APIs, WebSocket
- **Vision**: EmguCV for image processing
- **Protocols**: Custom state machine implementation for equipment control
### State Machine Architecture
The application uses a comprehensive state machine pattern:
- `RunCode/Step/`: Main operational steps (INIT, IDLE, RUN, HOME, FINISH)
- `RunCode/StateMachine/`: Core state machine logic and event handling
- `RunCode/RunSequence/`: Specific operation sequences (barcode reading, printing, picking)
### Device Management
- Motion control through `arAzinAxt` library with position validation
- Barcode reading with Keyence scanner integration
- Label printing via SATO printer API
- PLC communication for safety and I/O control
## Development Patterns
### Configuration Management
- Settings stored in `Setting/` classes with UI forms for modification
- System parameters in `System_Setting.cs` and `System_MotParameter.cs`
- User-specific settings in `UserSetting.cs`
### Data Management
- Entity Framework models in `Model1.edmx`
- Database managers in `Manager/` folder for different data types
- Component classes for reel information, results, and SID conversion
### UI Patterns
- Custom controls in `UIControl/` folder
- Consistent dialog patterns in `Dialog/` folder
- Resource management with embedded images and icons
## Important Notes
- The system requires specific hardware drivers (AzinAxt motion controller, Keyence SDK, SATO printer drivers)
- Database connection strings are configured in `app.config`
- Motion parameters are stored in `.swpp` and `.usrs` files in `MotParam/`
- The application supports both Debug and Release configurations with different output paths
- Platform target is typically x64 for hardware compatibility
## Testing
No formal unit test projects are present. Testing is typically done through:
- Manual operation using the main application
- Hardware-in-the-loop testing with actual equipment
- Debug dialogs and monitoring forms in the application
## Dependencies
Key external dependencies include:
- Entity Framework 6.2.0
- Newtonsoft.Json 13.0.3
- EmguCV 4.5.1
- Microsoft OWIN stack for web services
- Various hardware-specific SDKs and drivers

View File

@@ -0,0 +1,334 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.6.33801.468
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "STDLabelAttach(Conv+swPLC)", "Project\STDLabelAttach(Conv+swPLC).csproj", "{65F3E762-800C-499E-862F-A535642EC59F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arControl", "Sub\arCtl\arControl.csproj", "{F31C242C-1B15-4518-9733-48558499FE4B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Import", "Import", "{C423C39A-44E7-4F09-B2F7-7943975FF948}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResultView", "ResultView\ResultView.csproj", "{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arFrameControl", "Sub\arFrameControl\arFrameControl.csproj", "{A16C9667-5241-4313-888E-548375F85D29}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UIControl", "CapCleaningControl\UIControl.csproj", "{9264CD2E-7CF8-4237-A69F-DCDA984E0613}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_IOPanel", "Test\Test_IOPanel\Test_IOPanel.csproj", "{0029978E-035A-42D4-8489-CC8600BCB2F6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{02CC42D0-2221-4855-9C3A-E2E35D651B17}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_AzinMotion", "Test\Test_AzinMotion\Test_AzinMotion.csproj", "{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arRS232", "Sub\arRS232\arRS232.csproj", "{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arImageViewer.Emgu", "Sub\arImageViewer_Emgu\arImageViewer.Emgu.csproj", "{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StdLabelPrint", "Sub\StdLabelPrint\StdLabelPrint.csproj", "{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AmkorRestfulService", "Sub\AmkorRestfulService\AmkorRestfulService.csproj", "{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arAzinAxt", "Sub\arAzinAxt\arAzinAxt.csproj", "{4F457E76-BF83-4B98-8565-AE87D7D16744}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Setting", "Sub\Setting\Setting.csproj", "{48654765-548D-42ED-9238-D65EB3BC99AD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arCommUtil", "Sub\CommUtil\arCommUtil.csproj", "{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arCommSM", "Sub\CommSM\arCommSM.csproj", "{D54444F7-1D85-4D5D-B1D1-10D040141A91}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommData", "Sub\CommData\CommData.csproj", "{14E8C9A5-013E-49BA-B435-EFEFC77DD623}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MemoryMapCore", "Sub\arMCFrame\MemoryMapCore\MemoryMapCore.csproj", "{140AF52A-5986-4413-BF02-8EA55A61891B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|Mixed Platforms.Build.0 = Debug|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|x64.ActiveCfg = Debug|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|x86.ActiveCfg = Debug|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|x86.Build.0 = Debug|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Release|Any CPU.Build.0 = Release|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Release|Mixed Platforms.ActiveCfg = Release|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Release|Mixed Platforms.Build.0 = Release|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Release|x64.ActiveCfg = Release|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Release|x86.ActiveCfg = Release|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Release|x86.Build.0 = Release|x86
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|x64.ActiveCfg = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|Any CPU.Build.0 = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|x64.ActiveCfg = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|x86.ActiveCfg = Release|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Debug|x64.ActiveCfg = Debug|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Debug|x86.ActiveCfg = Debug|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Release|Any CPU.Build.0 = Release|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Release|x64.ActiveCfg = Release|Any CPU
{4ED6F01A-0081-43E3-8EE5-7446BE0F2366}.Release|x86.ActiveCfg = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|x64.ActiveCfg = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|x86.ActiveCfg = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|Any CPU.Build.0 = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|x64.ActiveCfg = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|x86.ActiveCfg = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|x64.ActiveCfg = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|x64.Build.0 = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|x86.ActiveCfg = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Debug|x86.Build.0 = Debug|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|Any CPU.Build.0 = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|x64.ActiveCfg = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|x64.Build.0 = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|x86.ActiveCfg = Release|Any CPU
{9264CD2E-7CF8-4237-A69F-DCDA984E0613}.Release|x86.Build.0 = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|x64.ActiveCfg = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|x64.Build.0 = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|x86.ActiveCfg = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Debug|x86.Build.0 = Debug|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|Any CPU.Build.0 = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|x64.ActiveCfg = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|x64.Build.0 = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|x86.ActiveCfg = Release|Any CPU
{0029978E-035A-42D4-8489-CC8600BCB2F6}.Release|x86.Build.0 = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|x64.ActiveCfg = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|x64.Build.0 = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|x86.ActiveCfg = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Debug|x86.Build.0 = Debug|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|Any CPU.Build.0 = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|x64.ActiveCfg = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|x64.Build.0 = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|x86.ActiveCfg = Release|Any CPU
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F}.Release|x86.Build.0 = Release|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Debug|x64.ActiveCfg = Debug|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Debug|x86.ActiveCfg = Debug|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Release|Any CPU.Build.0 = Release|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Release|x64.ActiveCfg = Release|Any CPU
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A}.Release|x86.ActiveCfg = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|x64.ActiveCfg = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|x64.Build.0 = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|x86.ActiveCfg = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Debug|x86.Build.0 = Debug|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|Any CPU.Build.0 = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|x64.ActiveCfg = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|x64.Build.0 = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|x86.ActiveCfg = Release|Any CPU
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C}.Release|x86.Build.0 = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|x64.ActiveCfg = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|x64.Build.0 = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|x86.ActiveCfg = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Debug|x86.Build.0 = Debug|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|Any CPU.Build.0 = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|x64.ActiveCfg = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|x64.Build.0 = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|x86.ActiveCfg = Release|Any CPU
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D}.Release|x86.Build.0 = Release|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|Mixed Platforms.Build.0 = Debug|x86
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|x64.ActiveCfg = Debug|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|x64.Build.0 = Debug|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|x86.ActiveCfg = Debug|x86
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Debug|x86.Build.0 = Debug|x86
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|Any CPU.Build.0 = Release|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|Mixed Platforms.ActiveCfg = Release|x86
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|Mixed Platforms.Build.0 = Release|x86
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|x64.ActiveCfg = Release|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|x64.Build.0 = Release|Any CPU
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|x86.ActiveCfg = Release|x86
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990}.Release|x86.Build.0 = Release|x86
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|x64.ActiveCfg = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|x64.Build.0 = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|x86.ActiveCfg = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Debug|x86.Build.0 = Debug|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|Any CPU.Build.0 = Release|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|x64.ActiveCfg = Release|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|x64.Build.0 = Release|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|x86.ActiveCfg = Release|Any CPU
{4F457E76-BF83-4B98-8565-AE87D7D16744}.Release|x86.Build.0 = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|x64.ActiveCfg = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|x64.Build.0 = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|x86.ActiveCfg = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Debug|x86.Build.0 = Debug|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|Any CPU.Build.0 = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|x64.ActiveCfg = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|x64.Build.0 = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|x86.ActiveCfg = Release|Any CPU
{48654765-548D-42ED-9238-D65EB3BC99AD}.Release|x86.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Any CPU.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x64.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x64.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x86.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x86.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Any CPU.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Any CPU.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x64.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x64.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x86.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x86.Build.0 = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|x64.ActiveCfg = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|x64.Build.0 = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|x86.ActiveCfg = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Debug|x86.Build.0 = Debug|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|Any CPU.Build.0 = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|x64.ActiveCfg = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|x64.Build.0 = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|x86.ActiveCfg = Release|Any CPU
{D54444F7-1D85-4D5D-B1D1-10D040141A91}.Release|x86.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Any CPU.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x64.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x64.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x86.ActiveCfg = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x86.Build.0 = Debug|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Any CPU.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Any CPU.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x64.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x64.Build.0 = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.ActiveCfg = Release|Any CPU
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.Build.0 = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|x64.ActiveCfg = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|x64.Build.0 = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|x86.ActiveCfg = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Debug|x86.Build.0 = Debug|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|Any CPU.Build.0 = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|x64.ActiveCfg = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|x64.Build.0 = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|x86.ActiveCfg = Release|Any CPU
{140AF52A-5986-4413-BF02-8EA55A61891B}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{F31C242C-1B15-4518-9733-48558499FE4B} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{A16C9667-5241-4313-888E-548375F85D29} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{9264CD2E-7CF8-4237-A69F-DCDA984E0613} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{0029978E-035A-42D4-8489-CC8600BCB2F6} = {02CC42D0-2221-4855-9C3A-E2E35D651B17}
{5709C3EC-EB33-4FD7-A933-E0CE173DE61F} = {02CC42D0-2221-4855-9C3A-E2E35D651B17}
{802DF40D-660E-4D72-B982-2FE5E6A7DF1A} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{ED0D4179-FC0D-48D5-8BB3-CBF0F03D170C} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{58CFC90C-5068-46A2-A8DE-0E92EE9E0990} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{4F457E76-BF83-4B98-8565-AE87D7D16744} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{48654765-548D-42ED-9238-D65EB3BC99AD} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{D54444F7-1D85-4D5D-B1D1-10D040141A91} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{14E8C9A5-013E-49BA-B435-EFEFC77DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{140AF52A-5986-4413-BF02-8EA55A61891B} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B5B1FD72-356F-4840-83E8-B070AC21C8D9}
EndGlobalSection
EndGlobal