Files
Administrator 14893e62a5 feat: Geutebruck GeViScope/GeViSoft Action Mapping System - MVP
This MVP release provides a complete full-stack solution for managing action mappings
in Geutebruck's GeViScope and GeViSoft video surveillance systems.

## Features

### Flutter Web Application (Port 8081)
- Modern, responsive UI for managing action mappings
- Action picker dialog with full parameter configuration
- Support for both GSC (GeViScope) and G-Core server actions
- Consistent UI for input and output actions with edit/delete capabilities
- Real-time action mapping creation, editing, and deletion
- Server categorization (GSC: prefix for GeViScope, G-Core: prefix for G-Core servers)

### FastAPI REST Backend (Port 8000)
- RESTful API for action mapping CRUD operations
- Action template service with comprehensive action catalog (247 actions)
- Server management (G-Core and GeViScope servers)
- Configuration tree reading and writing
- JWT authentication with role-based access control
- PostgreSQL database integration

### C# SDK Bridge (gRPC, Port 50051)
- Native integration with GeViSoft SDK (GeViProcAPINET_4_0.dll)
- Action mapping creation with correct binary format
- Support for GSC and G-Core action types
- Proper Camera parameter inclusion in action strings (fixes CrossSwitch bug)
- Action ID lookup table with server-specific action IDs
- Configuration reading/writing via SetupClient

## Bug Fixes
- **CrossSwitch Bug**: GSC and G-Core actions now correctly display camera/PTZ head parameters in GeViSet
- Action strings now include Camera parameter: `@ PanLeft (Comment: "", Camera: 101028)`
- Proper filter flags and VideoInput=0 for action mappings
- Correct action ID assignment (4198 for GSC, 9294 for G-Core PanLeft)

## Technical Stack
- **Frontend**: Flutter Web, Dart, Dio HTTP client
- **Backend**: Python FastAPI, PostgreSQL, Redis
- **SDK Bridge**: C# .NET 8.0, gRPC, GeViSoft SDK
- **Authentication**: JWT tokens
- **Configuration**: GeViSoft .set files (binary format)

## Credentials
- GeViSoft/GeViScope: username=sysadmin, password=masterkey
- Default admin: username=admin, password=admin123

## Deployment
All services run on localhost:
- Flutter Web: http://localhost:8081
- FastAPI: http://localhost:8000
- SDK Bridge gRPC: localhost:50051
- GeViServer: localhost (default port)

Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 18:10:54 +01:00

2 lines
26 KiB
XML

<?xml version="1.0" encoding="utf-8"?><index><!-- saved from url=(0014)about:internet -->
<stem n="us"><phr n="used"><ent r="3" t="1" w="36" /><ent r="3" t="1" w="66" /><ent r="3" t="1" w="98" /><ent r="3" t="1" w="119" /><ent r="3" t="2" w="43" /><ent r="3" t="3" w="63" /><ent r="3" t="3" w="658" /><ent r="3" t="3" w="677" /><ent r="4" t="4" w="339" /><ent r="3" t="5" w="44" /><ent r="3" t="5" w="425" /><ent r="3" t="5" w="632" /><ent r="3" t="5" w="947" /><ent r="3" t="5" w="1015" /><ent r="3" t="6" w="17" /><ent r="3" t="7" w="119" /><ent r="3" t="7" w="278" /><ent r="3" t="7" w="299" /><ent r="3" t="7" w="443" /><ent r="3" t="7" w="1209" /><ent r="3" t="7" w="2391" /><ent r="3" t="7" w="2533" /><ent r="3" t="7" w="2618" /><ent r="3" t="8" w="151" /><ent r="3" t="9" w="162" /><ent r="3" t="9" w="727" /><ent r="3" t="9" w="754" /><ent r="3" t="10" w="27" /><ent r="3" t="10" w="51" /><ent r="6" t="10" w="266" /><ent r="6" t="10" w="318" /><ent r="6" t="10" w="336" /><ent r="6" t="10" w="351" /><ent r="3" t="10" w="744" /><ent r="3" t="10" w="845" /><ent r="3" t="12" w="947" /><ent r="3" t="12" w="971" /><ent r="3" t="21" w="293" /><ent r="3" t="21" w="342" /><ent r="3" t="21" w="390" /><ent r="3" t="23" w="8" /><ent r="3" t="23" w="20" /><ent r="3" t="23" w="51" /><ent r="3" t="23" w="91" /><ent r="3" t="24" w="12" /><ent r="3" t="24" w="30" /><ent r="3" t="24" w="50" /><ent r="3" t="25" w="131" /><ent r="3" t="25" w="187" /><ent r="3" t="25" w="206" /><ent r="3" t="25" w="587" /><ent r="3" t="25" w="603" /><ent r="3" t="25" w="772" /><ent r="3" t="25" w="788" /><ent r="3" t="25" w="1656" /><ent r="5" t="25" w="1790" /><ent r="3" t="26" w="115" /><ent r="3" t="26" w="634" /><ent r="3" t="26" w="731" /><ent r="6" t="26" w="952" /><ent r="6" t="26" w="958" /><ent r="6" t="26" w="1121" /><ent r="3" t="28" w="36" /><ent r="5" t="28" w="591" /><ent r="5" t="28" w="1331" /><ent r="5" t="30" w="2382" /><ent r="5" t="30" w="2422" /><ent r="5" t="30" w="3031" /><ent r="5" t="30" w="3071" /><ent r="5" t="30" w="3580" /><ent r="5" t="30" w="3620" /><ent r="5" t="30" w="4135" /><ent r="5" t="30" w="4175" /><ent r="5" t="30" w="4753" /><ent r="5" t="30" w="4793" /><ent r="5" t="30" w="5209" /><ent r="5" t="30" w="5249" /><ent r="5" t="31" w="1397" /><ent r="5" t="31" w="1437" /><ent r="5" t="31" w="1865" /><ent r="5" t="31" w="1905" /><ent r="5" t="31" w="2357" /><ent r="5" t="31" w="2397" /><ent r="3" t="32" w="87" /><ent r="3" t="37" w="104" /><ent r="3" t="37" w="208" /><ent r="3" t="40" w="23" /><ent r="4" t="40" w="64" /><ent r="3" t="40" w="322" /><ent r="3" t="40" w="367" /><ent r="3" t="40" w="399" /><ent r="3" t="40" w="1499" /><ent r="3" t="40" w="1520" /><ent r="4" t="40" w="1637" /><ent r="4" t="40" w="1664" /><ent r="4" t="40" w="1767" /><ent r="4" t="41" w="136" /><ent r="6" t="41" w="502" /><ent r="4" t="41" w="937" /><ent r="3" t="43" w="136" /><ent r="3" t="49" w="296" /><ent r="3" t="49" w="346" /><ent r="3" t="49" w="395" /></phr><phr n="using"><ent r="3" t="3" w="395" /><ent r="3" t="3" w="697" /><ent r="3" t="5" w="72" /><ent r="3" t="7" w="75" /><ent r="3" t="7" w="365" /><ent r="3" t="7" w="491" /><ent r="3" t="7" w="1830" /><ent r="3" t="7" w="2315" /><ent r="82" t="7" w="2518" /><ent r="1000" t="8" w="1" /><ent r="92" t="8" w="7" /><ent r="3" t="8" w="302" /><ent r="3" t="8" w="323" /><ent r="82" t="9" w="7" /><ent r="3" t="9" w="16" /><ent r="3" t="9" w="190" /><ent r="3" t="9" w="245" /><ent r="3" t="9" w="260" /><ent r="4" t="9" w="266" /><ent r="3" t="9" w="320" /><ent r="3" t="12" w="687" /><ent r="3" t="12" w="849" /><ent r="4" t="13" w="175" /><ent r="3" t="13" w="748" /><ent r="3" t="13" w="769" /><ent r="3" t="13" w="814" /><ent r="3" t="13" w="835" /><ent r="3" t="13" w="1188" /><ent r="3" t="13" w="1207" /><ent r="3" t="13" w="1520" /><ent r="3" t="13" w="1539" /><ent r="3" t="19" w="90" /><ent r="3" t="21" w="77" /><ent r="3" t="25" w="88" /><ent r="5" t="30" w="4329" /><ent r="5" t="30" w="4335" /><ent r="3" t="35" w="54" /><ent r="3" t="37" w="134" /><ent r="3" t="40" w="330" /><ent r="3" t="41" w="790" /><ent r="4" t="41" w="906" /><ent r="3" t="49" w="77" /></phr><phr n="uses"><ent r="3" t="8" w="223" /><ent r="3" t="8" w="441" /><ent r="3" t="9" w="110" /><ent r="3" t="10" w="241" /><ent r="3" t="25" w="218" /><ent r="3" t="25" w="612" /><ent r="3" t="25" w="797" /></phr></stem><stem n="integr"><phr n="integrate"><ent r="3" t="1" w="38" /><ent r="3" t="10" w="18" /><ent r="6" t="10" w="274" /><ent r="3" t="12" w="938" /><ent r="3" t="25" w="150" /><ent r="3" t="32" w="89" /><ent r="4" t="41" w="138" /></phr><phr n="Integrated"><ent r="4" t="4" w="272" /><ent r="3" t="9" w="1275" /><ent r="3" t="10" w="109" /><ent r="3" t="19" w="131" /><ent r="3" t="19" w="562" /><ent r="3" t="19" w="972" /><ent r="3" t="19" w="1155" /><ent r="3" t="19" w="1438" /><ent r="3" t="19" w="1718" /><ent r="3" t="24" w="23" /></phr><phr n="integrating"><ent r="4" t="4" w="356" /><ent r="4" t="4" w="401" /></phr><phr n="Integral"><ent r="3" t="7" w="384" /></phr><phr n="integration"><ent r="3" t="25" w="108" /><ent r="3" t="25" w="228" /><ent r="3" t="25" w="608" /><ent r="3" t="25" w="793" /></phr></stem><stem n="devic"><phr n="devices"><ent r="3" t="1" w="40" /><ent r="3" t="20" w="62" /><ent r="3" t="20" w="513" /><ent r="3" t="25" w="389" /><ent r="5" t="25" w="444" /><ent r="3" t="25" w="654" /><ent r="5" t="25" w="711" /><ent r="3" t="25" w="839" /><ent r="5" t="25" w="896" /><ent r="3" t="25" w="1453" /><ent r="5" t="25" w="1508" /><ent r="3" t="25" w="1684" /><ent r="5" t="25" w="1739" /><ent r="3" t="26" w="91" /><ent r="3" t="26" w="213" /><ent r="3" t="26" w="233" /><ent r="3" t="33" w="25" /><ent r="3" t="33" w="42" /><ent r="3" t="34" w="91" /><ent r="3" t="34" w="93" /><ent r="4" t="34" w="155" /><ent r="4" t="34" w="165" /><ent r="4" t="34" w="175" /><ent r="3" t="35" w="32" /><ent r="3" t="35" w="52" /><ent r="3" t="35" w="74" /><ent r="3" t="35" w="106" /><ent r="4" t="35" w="120" /><ent r="4" t="40" w="60" /><ent r="3" t="40" w="164" /><ent r="4" t="40" w="1282" /><ent r="3" t="41" w="705" /><ent r="3" t="48" w="62" /><ent r="3" t="48" w="518" /></phr><phr n="device"><ent r="3" t="3" w="26" /><ent r="3" t="3" w="58" /><ent r="3" t="7" w="106" /><ent r="3" t="7" w="136" /><ent r="3" t="8" w="365" /><ent r="1000" t="20" w="1" /><ent r="102" t="20" w="4" /><ent r="3" t="20" w="15" /><ent r="92" t="20" w="22" /><ent r="3" t="20" w="46" /><ent r="5" t="20" w="68" /><ent r="5" t="20" w="76" /><ent r="5" t="20" w="78" /><ent r="5" t="20" w="83" /><ent r="5" t="20" w="101" /><ent r="3" t="20" w="129" /><ent r="5" t="20" w="140" /><ent r="5" t="20" w="148" /><ent r="5" t="20" w="150" /><ent r="5" t="20" w="155" /><ent r="5" t="20" w="173" /><ent r="92" t="20" w="186" /><ent r="3" t="20" w="209" /><ent r="5" t="20" w="223" /><ent r="5" t="20" w="231" /><ent r="5" t="20" w="233" /><ent r="5" t="20" w="243" /><ent r="5" t="20" w="245" /><ent r="5" t="20" w="250" /><ent r="5" t="20" w="262" /><ent r="92" t="20" w="294" /><ent r="3" t="20" w="317" /><ent r="5" t="20" w="331" /><ent r="5" t="20" w="339" /><ent r="5" t="20" w="341" /><ent r="5" t="20" w="351" /><ent r="5" t="20" w="353" /><ent r="5" t="20" w="358" /><ent r="5" t="20" w="370" /><ent r="5" t="20" w="379" /><ent r="5" t="20" w="388" /><ent r="92" t="20" w="399" /><ent r="3" t="20" w="423" /><ent r="5" t="20" w="434" /><ent r="5" t="20" w="442" /><ent r="5" t="20" w="444" /><ent r="5" t="20" w="449" /><ent r="5" t="20" w="467" /><ent r="92" t="20" w="469" /><ent r="3" t="20" w="493" /><ent r="5" t="20" w="519" /><ent r="5" t="20" w="527" /><ent r="5" t="20" w="529" /><ent r="5" t="20" w="534" /><ent r="5" t="20" w="552" /><ent r="4" t="22" w="19" /><ent r="6" t="22" w="82" /><ent r="7" t="22" w="84" /><ent r="6" t="22" w="90" /><ent r="6" t="22" w="97" /><ent r="6" t="22" w="106" /><ent r="4" t="22" w="395" /><ent r="6" t="22" w="448" /><ent r="7" t="22" w="450" /><ent r="6" t="22" w="456" /><ent r="6" t="22" w="463" /><ent r="6" t="22" w="472" /><ent r="4" t="22" w="597" /><ent r="6" t="22" w="651" /><ent r="7" t="22" w="653" /><ent r="6" t="22" w="659" /><ent r="6" t="22" w="666" /><ent r="6" t="22" w="675" /><ent r="4" t="22" w="872" /><ent r="6" t="22" w="924" /><ent r="7" t="22" w="926" /><ent r="6" t="22" w="932" /><ent r="6" t="22" w="939" /><ent r="6" t="22" w="948" /><ent r="4" t="22" w="1059" /><ent r="6" t="22" w="1116" /><ent r="7" t="22" w="1118" /><ent r="6" t="22" w="1124" /><ent r="6" t="22" w="1131" /><ent r="6" t="22" w="1140" /><ent r="3" t="25" w="371" /><ent r="5" t="25" w="429" /><ent r="5" t="25" w="502" /><ent r="5" t="25" w="512" /><ent r="5" t="25" w="524" /><ent r="3" t="25" w="630" /><ent r="3" t="25" w="634" /><ent r="5" t="25" w="696" /><ent r="3" t="25" w="815" /><ent r="3" t="25" w="819" /><ent r="5" t="25" w="881" /><ent r="3" t="25" w="1435" /><ent r="5" t="25" w="1493" /><ent r="3" t="25" w="1666" /><ent r="5" t="25" w="1724" /><ent r="3" t="26" w="35" /><ent r="3" t="26" w="83" /><ent r="4" t="26" w="624" /><ent r="3" t="26" w="653" /><ent r="6" t="26" w="687" /><ent r="7" t="26" w="690" /><ent r="6" t="26" w="697" /><ent r="4" t="26" w="859" /><ent r="6" t="26" w="937" /><ent r="7" t="26" w="940" /><ent r="6" t="26" w="946" /><ent r="92" t="27" w="46" /><ent r="3" t="27" w="62" /><ent r="6" t="27" w="76" /><ent r="6" t="27" w="80" /><ent r="6" t="27" w="145" /><ent r="6" t="27" w="149" /><ent r="6" t="27" w="206" /><ent r="6" t="27" w="210" /><ent r="6" t="27" w="267" /><ent r="6" t="27" w="271" /><ent r="64" t="32" w="108" /><ent r="3" t="33" w="34" /><ent r="3" t="33" w="56" /><ent r="3" t="33" w="91" /><ent r="3" t="33" w="101" /><ent r="3" t="34" w="104" /><ent r="1000" t="35" w="3" /><ent r="92" t="35" w="7" /><ent r="3" t="35" w="48" /><ent r="3" t="35" w="61" /><ent r="4" t="35" w="141" /><ent r="4" t="35" w="195" /><ent r="4" t="35" w="236" /><ent r="3" t="36" w="12" /><ent r="3" t="36" w="60" /><ent r="3" t="36" w="79" /><ent r="4" t="36" w="99" /><ent r="4" t="36" w="123" /><ent r="3" t="36" w="131" /><ent r="3" t="36" w="135" /><ent r="6" t="36" w="283" /><ent r="3" t="37" w="63" /><ent r="3" t="37" w="81" /><ent r="3" t="37" w="94" /><ent r="3" t="37" w="101" /><ent r="3" t="38" w="15" /><ent r="3" t="38" w="62" /><ent r="4" t="38" w="82" /><ent r="4" t="38" w="140" /><ent r="3" t="38" w="166" /><ent r="4" t="38" w="172" /><ent r="3" t="38" w="213" /><ent r="4" t="39" w="100" /><ent r="3" t="40" w="200" /><ent r="3" t="40" w="253" /><ent r="3" t="41" w="476" /><ent r="1000" t="48" w="1" /><ent r="102" t="48" w="4" /><ent r="3" t="48" w="15" /><ent r="92" t="48" w="21" /><ent r="3" t="48" w="46" /><ent r="5" t="48" w="68" /><ent r="5" t="48" w="76" /><ent r="5" t="48" w="78" /><ent r="5" t="48" w="83" /><ent r="5" t="48" w="101" /><ent r="3" t="48" w="130" /><ent r="5" t="48" w="141" /><ent r="5" t="48" w="149" /><ent r="5" t="48" w="151" /><ent r="5" t="48" w="156" /><ent r="5" t="48" w="174" /><ent r="92" t="48" w="187" /><ent r="3" t="48" w="211" /><ent r="5" t="48" w="225" /><ent r="5" t="48" w="233" /><ent r="5" t="48" w="235" /><ent r="5" t="48" w="245" /><ent r="5" t="48" w="247" /><ent r="5" t="48" w="252" /><ent r="5" t="48" w="264" /><ent r="92" t="48" w="296" /><ent r="3" t="48" w="320" /><ent r="5" t="48" w="334" /><ent r="5" t="48" w="342" /><ent r="5" t="48" w="344" /><ent r="5" t="48" w="354" /><ent r="5" t="48" w="356" /><ent r="5" t="48" w="361" /><ent r="5" t="48" w="373" /><ent r="5" t="48" w="382" /><ent r="5" t="48" w="391" /><ent r="92" t="48" w="402" /><ent r="3" t="48" w="427" /><ent r="5" t="48" w="438" /><ent r="5" t="48" w="446" /><ent r="5" t="48" w="448" /><ent r="5" t="48" w="453" /><ent r="5" t="48" w="471" /><ent r="92" t="48" w="473" /><ent r="3" t="48" w="498" /><ent r="5" t="48" w="524" /><ent r="5" t="48" w="532" /><ent r="5" t="48" w="534" /><ent r="5" t="48" w="539" /><ent r="5" t="48" w="557" /></phr></stem><stem n="custom"><phr n="custom"><ent r="3" t="1" w="42" /><ent r="3" t="1" w="121" /><ent r="3" t="3" w="37" /><ent r="3" t="3" w="622" /><ent r="3" t="4" w="76" /><ent r="4" t="4" w="357" /><ent r="4" t="4" w="402" /><ent r="3" t="5" w="38" /><ent r="3" t="5" w="81" /><ent r="3" t="5" w="444" /><ent r="3" t="5" w="1078" /><ent r="3" t="5" w="1184" /><ent r="3" t="7" w="37" /><ent r="3" t="7" w="434" /><ent r="3" t="7" w="1498" /><ent r="4" t="7" w="1555" /><ent r="3" t="7" w="2096" /><ent r="3" t="7" w="2644" /><ent r="3" t="8" w="170" /><ent r="82" t="8" w="208" /><ent r="3" t="8" w="220" /><ent r="3" t="8" w="410" /><ent r="3" t="8" w="433" /><ent r="3" t="10" w="73" /><ent r="3" t="10" w="407" /><ent r="3" t="10" w="451" /><ent r="3" t="10" w="480" /><ent r="3" t="10" w="837" /><ent r="3" t="10" w="1047" /><ent r="3" t="12" w="516" /><ent r="3" t="13" w="387" /><ent r="3" t="13" w="600" /><ent r="3" t="13" w="630" /><ent r="3" t="13" w="993" /><ent r="3" t="13" w="1072" /><ent r="3" t="13" w="1325" /><ent r="3" t="13" w="1404" /><ent r="92" t="28" w="14" /><ent r="4" t="40" w="958" /><ent r="4" t="40" w="963" /><ent r="3" t="40" w="1758" /></phr><phr n="customized"><ent r="4" t="4" w="430" /><ent r="3" t="10" w="19" /><ent r="3" t="10" w="41" /><ent r="3" t="10" w="65" /><ent r="82" t="10" w="115" /><ent r="3" t="10" w="137" /><ent r="3" t="12" w="924" /><ent r="3" t="12" w="939" /><ent r="3" t="12" w="961" /><ent r="3" t="12" w="994" /><ent r="4" t="13" w="398" /><ent r="4" t="13" w="719" /></phr><phr n="customer"><ent r="3" t="28" w="38" /></phr></stem><stem n="applic"><phr n="applications"><ent r="3" t="1" w="43" /><ent r="3" t="1" w="122" /><ent r="3" t="3" w="623" /><ent r="3" t="5" w="82" /><ent r="3" t="7" w="1499" /><ent r="3" t="8" w="171" /><ent r="3" t="8" w="301" /><ent r="3" t="9" w="1337" /><ent r="3" t="40" w="147" /><ent r="4" t="40" w="545" /><ent r="3" t="40" w="741" /><ent r="4" t="40" w="1772" /></phr><phr n="application"><ent r="3" t="3" w="347" /><ent r="3" t="5" w="206" /><ent r="3" t="5" w="691" /><ent r="3" t="5" w="701" /><ent r="3" t="5" w="1025" /><ent r="3" t="5" w="1185" /><ent r="3" t="7" w="85" /><ent r="3" t="7" w="96" /><ent r="3" t="7" w="435" /><ent r="3" t="7" w="1153" /><ent r="4" t="7" w="1556" /><ent r="3" t="7" w="2472" /><ent r="3" t="7" w="2487" /><ent r="3" t="7" w="2645" /><ent r="3" t="8" w="203" /><ent r="3" t="8" w="221" /><ent r="3" t="8" w="320" /><ent r="3" t="8" w="411" /><ent r="3" t="8" w="434" /><ent r="3" t="8" w="440" /><ent r="3" t="9" w="108" /><ent r="3" t="9" w="1233" /><ent r="4" t="9" w="1371" /><ent r="4" t="9" w="1390" /><ent r="4" t="9" w="1406" /><ent r="4" t="9" w="1422" /><ent r="3" t="12" w="715" /><ent r="3" t="13" w="780" /><ent r="3" t="13" w="846" /><ent r="3" t="13" w="934" /><ent r="3" t="13" w="950" /><ent r="3" t="13" w="1156" /><ent r="3" t="13" w="1488" /><ent r="3" t="26" w="323" /><ent r="3" t="26" w="326" /><ent r="3" t="40" w="42" /><ent r="3" t="40" w="277" /><ent r="3" t="40" w="726" /></phr></stem><stem n="although"><phr n="although"><ent r="3" t="1" w="45" /></phr></stem><stem n="link"><phr n="linking"><ent r="3" t="1" w="47" /></phr><phr n="link"><ent r="6" t="2" w="55" /><ent r="3" t="4" w="51" /><ent r="4" t="7" w="980" /><ent r="4" t="7" w="1030" /><ent r="3" t="7" w="1337" /><ent r="4" t="7" w="1390" /><ent r="3" t="7" w="2090" /><ent r="3" t="7" w="2543" /><ent r="3" t="10" w="83" /><ent r="3" t="25" w="211" /></phr><phr n="linked"><ent r="3" t="7" w="846" /><ent r="3" t="7" w="2198" /><ent r="3" t="10" w="535" /></phr></stem><stem n="yet"><phr n="yet"><ent r="3" t="1" w="49" /></phr></stem><stem n="support"><phr n="supported"><ent r="3" t="1" w="50" /><ent r="64" t="1" w="157" /><ent r="1000" t="6" w="1" /><ent r="92" t="6" w="5" /><ent r="3" t="10" w="405" /><ent r="3" t="18" w="21" /><ent r="5" t="18" w="677" /><ent r="3" t="36" w="232" /><ent r="3" t="41" w="716" /><ent r="3" t="41" w="878" /></phr><phr n="support"><ent r="3" t="1" w="78" /><ent r="3" t="7" w="67" /><ent r="3" t="10" w="56" /><ent r="4" t="35" w="122" /></phr><phr n="Supports"><ent r="4" t="4" w="121" /><ent r="3" t="7" w="1854" /><ent r="3" t="25" w="216" /><ent r="3" t="25" w="610" /><ent r="3" t="25" w="795" /></phr></stem><stem n="peripher"><phr n="peripherals"><ent r="3" t="1" w="51" /><ent r="4" t="4" w="358" /></phr></stem><stem n="base"><phr n="based"><ent r="3" t="1" w="57" /><ent r="3" t="1" w="88" /><ent r="3" t="3" w="624" /><ent r="4" t="4" w="219" /><ent r="3" t="5" w="557" /><ent r="3" t="5" w="604" /><ent r="82" t="8" w="210" /><ent r="3" t="9" w="70" /><ent r="3" t="13" w="1158" /><ent r="3" t="13" w="1490" /><ent r="3" t="26" w="89" /><ent r="6" t="26" w="410" /><ent r="6" t="26" w="529" /><ent r="4" t="40" w="544" /><ent r="3" t="40" w="731" /><ent r="3" t="41" w="435" /></phr><phr n="base"><ent r="3" t="3" w="296" /><ent r="3" t="3" w="700" /><ent r="3" t="25" w="74" /><ent r="3" t="41" w="874" /><ent r="3" t="44" w="115" /></phr></stem><stem n="nativ"><phr n="native"><ent r="3" t="1" w="59" /><ent r="3" t="8" w="19" /><ent r="3" t="8" w="155" /><ent r="3" t="8" w="196" /><ent r="3" t="8" w="401" /><ent r="3" t="8" w="418" /><ent r="3" t="9" w="159" /></phr></stem><stem n="win32"><phr n="Win32"><ent r="3" t="1" w="60" /><ent r="3" t="8" w="20" /><ent r="3" t="9" w="160" /></phr></stem><stem n="dll"><phr n="DLLs"><ent r="3" t="1" w="61" /><ent r="3" t="4" w="69" /><ent r="4" t="4" w="385" /><ent r="4" t="4" w="415" /><ent r="4" t="4" w="452" /><ent r="3" t="7" w="228" /><ent r="3" t="7" w="253" /><ent r="3" t="7" w="263" /><ent r="3" t="7" w="2452" /><ent r="3" t="7" w="2614" /><ent r="3" t="8" w="21" /><ent r="3" t="8" w="41" /><ent r="3" t="8" w="157" /><ent r="3" t="8" w="197" /><ent r="3" t="8" w="403" /><ent r="3" t="8" w="420" /><ent r="3" t="8" w="454" /><ent r="3" t="9" w="161" /><ent r="3" t="10" w="88" /><ent r="3" t="10" w="92" /><ent r="3" t="10" w="100" /><ent r="3" t="32" w="56" /><ent r="3" t="34" w="53" /><ent r="3" t="34" w="64" /></phr><phr n="DLL"><ent r="4" t="4" w="135" /><ent r="4" t="4" w="190" /><ent r="4" t="4" w="297" /><ent r="3" t="5" w="76" /><ent r="3" t="5" w="79" /><ent r="3" t="7" w="404" /><ent r="3" t="7" w="426" /><ent r="3" t="7" w="433" /><ent r="3" t="7" w="498" /><ent r="4" t="7" w="555" /><ent r="3" t="7" w="608" /><ent r="4" t="7" w="957" /><ent r="3" t="7" w="1268" /><ent r="3" t="7" w="1302" /><ent r="3" t="7" w="1680" /><ent r="3" t="7" w="1882" /><ent r="3" t="7" w="2074" /><ent r="3" t="7" w="2622" /><ent r="3" t="7" w="2624" /><ent r="3" t="7" w="2630" /><ent r="3" t="7" w="2632" /><ent r="3" t="8" w="102" /><ent r="3" t="8" w="107" /><ent r="3" t="8" w="112" /><ent r="3" t="8" w="117" /><ent r="3" t="8" w="128" /><ent r="3" t="8" w="133" /><ent r="3" t="8" w="138" /><ent r="3" t="8" w="143" /><ent r="3" t="8" w="159" /><ent r="3" t="8" w="161" /><ent r="3" t="8" w="163" /><ent r="3" t="8" w="165" /><ent r="3" t="8" w="167" /><ent r="3" t="9" w="135" /><ent r="3" t="9" w="140" /><ent r="3" t="9" w="152" /><ent r="3" t="9" w="157" /><ent r="3" t="9" w="169" /><ent r="3" t="9" w="172" /><ent r="3" t="9" w="175" /><ent r="3" t="9" w="178" /><ent r="3" t="9" w="181" /><ent r="82" t="10" w="118" /><ent r="3" t="10" w="122" /><ent r="3" t="13" w="763" /><ent r="3" t="13" w="829" /><ent r="6" t="26" w="1113" /><ent r="64" t="32" w="102" /><ent r="3" t="33" w="11" /><ent r="3" t="33" w="24" /><ent r="3" t="33" w="106" /><ent r="1000" t="34" w="2" /><ent r="92" t="34" w="6" /><ent r="3" t="34" w="12" /><ent r="3" t="34" w="19" /><ent r="3" t="35" w="26" /><ent r="4" t="40" w="1204" /><ent r="4" t="41" w="184" /></phr></stem><stem n="so"><phr n="So"><ent r="3" t="1" w="62" /><ent r="3" t="3" w="32" /><ent r="3" t="5" w="49" /><ent r="3" t="7" w="1184" /><ent r="3" t="7" w="2103" /><ent r="3" t="7" w="2278" /><ent r="3" t="8" w="260" /><ent r="3" t="26" w="770" /><ent r="3" t="35" w="65" /><ent r="3" t="38" w="217" /><ent r="4" t="41" w="218" /></phr></stem><stem n="variou"><phr n="various"><ent r="3" t="1" w="68" /></phr></stem><stem n="platform"><phr n="platforms"><ent r="3" t="1" w="70" /><ent r="64" t="1" w="159" /><ent r="1000" t="6" w="3" /><ent r="92" t="6" w="7" /><ent r="64" t="11" w="35" /><ent r="1000" t="13" w="5" /><ent r="82" t="13" w="11" /></phr><phr n="platform"><ent r="3" t="3" w="720" /><ent r="3" t="8" w="179" /></phr></stem><stem n="window"><phr n="Windows"><ent r="3" t="1" w="73" /><ent r="3" t="3" w="270" /><ent r="3" t="7" w="352" /><ent r="3" t="7" w="805" /><ent r="3" t="7" w="825" /><ent r="3" t="7" w="847" /><ent r="3" t="7" w="1470" /><ent r="3" t="8" w="178" /><ent r="3" t="8" w="375" /><ent r="3" t="9" w="49" /><ent r="3" t="9" w="1256" /><ent r="3" t="10" w="80" /><ent r="5" t="28" w="1463" /><ent r="5" t="28" w="1470" /><ent r="5" t="28" w="1774" /><ent r="5" t="28" w="1789" /><ent r="5" t="28" w="1836" /><ent r="5" t="28" w="1843" /><ent r="5" t="29" w="395" /><ent r="5" t="29" w="402" /><ent r="5" t="29" w="621" /><ent r="5" t="29" w="628" /><ent r="3" t="30" w="2587" /><ent r="5" t="31" w="326" /><ent r="5" t="31" w="462" /><ent r="5" t="31" w="786" /><ent r="5" t="31" w="1023" /><ent r="5" t="31" w="1486" /><ent r="5" t="31" w="1992" /><ent r="5" t="31" w="2446" /><ent r="3" t="34" w="16" /><ent r="3" t="38" w="32" /><ent r="3" t="40" w="779" /><ent r="3" t="40" w="784" /><ent r="5" t="51" w="400" /><ent r="5" t="51" w="407" /><ent r="5" t="51" w="629" /><ent r="5" t="51" w="636" /></phr><phr n="window"><ent r="3" t="5" w="692" /><ent r="3" t="7" w="1132" /><ent r="3" t="10" w="392" /><ent r="3" t="30" w="1392" /><ent r="5" t="30" w="1461" /><ent r="3" t="30" w="1676" /></phr></stem><stem n="os"><phr n="OS"><ent r="3" t="1" w="74" /></phr></stem><stem n=".net"><phr n=".NET"><ent r="3" t="1" w="80" /><ent r="4" t="6" w="77" /><ent r="1000" t="8" w="5" /><ent r="92" t="8" w="11" /><ent r="3" t="8" w="24" /><ent r="3" t="8" w="174" /><ent r="3" t="8" w="188" /><ent r="82" t="8" w="213" /><ent r="3" t="8" w="225" /><ent r="3" t="8" w="342" /><ent r="3" t="8" w="360" /><ent r="82" t="9" w="11" /><ent r="3" t="9" w="107" /><ent r="3" t="9" w="203" /><ent r="3" t="9" w="1335" /></phr></stem><stem n="net"><phr n="NET"><ent r="3" t="1" w="80" /><ent r="4" t="6" w="77" /><ent r="1000" t="8" w="5" /><ent r="92" t="8" w="11" /><ent r="3" t="8" w="24" /><ent r="3" t="8" w="30" /><ent r="3" t="8" w="79" /><ent r="3" t="8" w="94" /><ent r="3" t="8" w="120" /><ent r="3" t="8" w="174" /><ent r="3" t="8" w="188" /><ent r="82" t="8" w="213" /><ent r="3" t="8" w="225" /><ent r="3" t="8" w="304" /><ent r="3" t="8" w="325" /><ent r="3" t="8" w="342" /><ent r="3" t="8" w="360" /><ent r="3" t="8" w="443" /><ent r="82" t="9" w="11" /><ent r="3" t="9" w="107" /><ent r="3" t="9" w="116" /><ent r="3" t="9" w="124" /><ent r="3" t="9" w="142" /><ent r="3" t="9" w="165" /><ent r="3" t="9" w="203" /><ent r="3" t="9" w="1335" /><ent r="3" t="20" w="45" /><ent r="3" t="20" w="128" /><ent r="3" t="20" w="422" /><ent r="3" t="20" w="492" /><ent r="6" t="29" w="1810" /><ent r="3" t="48" w="45" /><ent r="3" t="48" w="129" /><ent r="3" t="48" w="426" /><ent r="3" t="48" w="497" /><ent r="5" t="51" w="1832" /></phr></stem><stem n="technolog"><phr n="technology"><ent r="3" t="1" w="81" /><ent r="3" t="40" w="136" /></phr></stem><stem n="exampl"><phr n="examples"><ent r="3" t="1" w="84" /><ent r="3" t="1" w="94" /><ent r="3" t="1" w="108" /><ent r="64" t="1" w="173" /><ent r="3" t="2" w="46" /><ent r="6" t="2" w="65" /><ent r="3" t="3" w="730" /><ent r="4" t="6" w="85" /><ent r="3" t="9" w="1317" /><ent r="3" t="9" w="1341" /><ent r="3" t="9" w="1348" /><ent r="4" t="9" w="1362" /><ent r="4" t="9" w="1381" /><ent r="4" t="9" w="1400" /><ent r="4" t="9" w="1416" /><ent r="1000" t="11" w="1" /><ent r="92" t="11" w="4" /><ent r="3" t="11" w="8" /><ent r="3" t="11" w="18" /><ent r="64" t="11" w="24" /><ent r="64" t="11" w="31" /><ent r="1000" t="12" w="1" /><ent r="82" t="12" w="7" /><ent r="3" t="12" w="989" /><ent r="1000" t="13" w="1" /><ent r="82" t="13" w="7" /><ent r="4" t="13" w="396" /></phr><phr n="example"><ent r="3" t="5" w="513" /><ent r="3" t="5" w="1040" /><ent r="3" t="5" w="1046" /><ent r="3" t="5" w="1077" /><ent r="3" t="7" w="524" /><ent r="3" t="7" w="775" /><ent r="3" t="7" w="920" /><ent r="3" t="7" w="1235" /><ent r="3" t="7" w="1475" /><ent r="3" t="7" w="1631" /><ent r="3" t="7" w="2030" /><ent r="3" t="7" w="2469" /><ent r="3" t="7" w="2590" /><ent r="3" t="9" w="947" /><ent r="3" t="9" w="1336" /><ent r="3" t="10" w="186" /><ent r="3" t="10" w="438" /><ent r="3" t="10" w="563" /><ent r="3" t="12" w="771" /><ent r="3" t="12" w="831" /><ent r="3" t="12" w="904" /><ent r="4" t="13" w="157" /><ent r="4" t="13" w="394" /><ent r="4" t="13" w="540" /><ent r="4" t="13" w="713" /><ent r="4" t="13" w="716" /><ent r="4" t="13" w="1147" /><ent r="3" t="13" w="1151" /><ent r="3" t="13" w="1480" /><ent r="3" t="13" w="1483" /><ent r="3" t="26" w="646" /><ent r="3" t="26" w="743" /><ent r="3" t="33" w="30" /><ent r="3" t="34" w="134" /><ent r="3" t="35" w="96" /><ent r="4" t="35" w="225" /><ent r="3" t="36" w="83" /><ent r="3" t="36" w="167" /><ent r="3" t="37" w="140" /><ent r="3" t="38" w="55" /><ent r="3" t="38" w="242" /><ent r="3" t="40" w="46" /><ent r="4" t="40" w="66" /><ent r="4" t="40" w="106" /><ent r="3" t="40" w="337" /><ent r="4" t="40" w="539" /><ent r="3" t="40" w="734" /><ent r="4" t="40" w="830" /><ent r="3" t="40" w="1517" /><ent r="3" t="40" w="1799" /><ent r="3" t="41" w="821" /></phr></stem><stem n="contain"><phr n="contain"><ent r="3" t="1" w="85" /><ent r="4" t="40" w="557" /></phr><phr n="Contains"><ent r="6" t="2" w="52" /><ent r="6" t="2" w="70" /><ent r="6" t="2" w="83" /><ent r="3" t="3" w="311" /><ent r="3" t="3" w="527" /><ent r="3" t="5" w="1093" /><ent r="3" t="8" w="33" /><ent r="3" t="9" w="446" /><ent r="3" t="9" w="466" /><ent r="3" t="9" w="692" /><ent r="3" t="9" w="1168" /><ent r="3" t="9" w="1195" /><ent r="3" t="10" w="518" /><ent r="3" t="10" w="544" /><ent r="3" t="14" w="10" /><ent r="6" t="26" w="1051" /><ent r="3" t="43" w="51" /></phr><phr n="contained"><ent r="4" t="6" w="82" /><ent r="3" t="8" w="227" /><ent r="3" t="9" w="326" /><ent r="3" t="43" w="134" /><ent r="3" t="43" w="153" /></phr><phr n="containing"><ent r="3" t="9" w="1157" /></phr></stem><stem n="wrapper"><phr n="wrapper"><ent r="3" t="1" w="86" /><ent r="3" t="1" w="93" /><ent r="4" t="6" w="79" /><ent r="3" t="8" w="35" /><ent r="3" t="8" w="44" /><ent r="3" t="8" w="75" /><ent r="3" t="8" w="147" /><ent r="82" t="8" w="214" /><ent r="3" t="8" w="226" /><ent r="3" t="8" w="253" /><ent r="3" t="8" w="398" /><ent r="3" t="8" w="414" /><ent r="3" t="8" w="453" /><ent r="3" t="8" w="464" /><ent r="3" t="9" w="129" /><ent r="3" t="9" w="146" /><ent r="3" t="9" w="166" /><ent r="3" t="9" w="270" /></phr><phr n="wrappers"><ent r="3" t="1" w="116" /></phr></stem></index>