diff --git a/COUNTER_DEBUG.md b/COUNTER_DEBUG.md new file mode 100644 index 0000000..c094424 --- /dev/null +++ b/COUNTER_DEBUG.md @@ -0,0 +1,31 @@ +# Counter Debug Notes + +Date: 2026-04-14 + +## Summary + +- Scene: `1-2위_ani_광역단체장` +- Counter objects: `득표율01`, `득표율02` +- API: `IKACounter.SetCounterNumberKey(KeyIndex, Number)` +- Key index used for this test: `1` + +## Current test values + +- `득표율01` -> `30` +- `득표율02` -> `20` + +## Verification + +- `tools/KarismaTcpProbe` supports `--test-counter`. +- Verified against `127.0.0.1:30001`. +- `OnSetCounterNumberKey` returned `RESULT_SUCCESS` for both `득표율01` and `득표율02`. + +## Runtime Mapping Update + +- `KarismaTornado3Adapter` now maps scene variables from `ElectionDataSnapshot` at send time. +- Candidate text keys such as `후보명NN`, `정당명NN`, `득표수NN`, `득표율NN`, `순위NN`, `표차NN`, `득표차NN` are populated automatically. +- Common scene keys such as `선거구명01`, `시도명01`, `개표율01`, `투표율01`, `전국투표율01` are populated automatically. +- Animated templates with `ani` in the template id or name also send `IKACounter.SetCounterNumberKey(1, voteRate)` for each `득표율NN`. +- `유확당NN` resolves to `유력.vrv`, `확정.vrv` or `확실.vrv`, and `당선.vrv`. +- `후보사진NN` falls back to `Images/Photo/sampleNEW.png` when a candidate-specific photo is not found. +- Party image keys such as `정당바NN`, `정당판NN`, `정당심볼NN`, `그룹NN` resolve from the `Images/Dang` asset folders when a matching party file exists. diff --git a/LIVE_VALIDATE_1-2위_ani_광역단체장.md b/LIVE_VALIDATE_1-2위_ani_광역단체장.md new file mode 100644 index 0000000..211c07c --- /dev/null +++ b/LIVE_VALIDATE_1-2위_ani_광역단체장.md @@ -0,0 +1,31 @@ +# Scene Variable Validation + +- Generated: 2026-04-14 16:51:07 +- Scene: `E:\김의연\지역민방\T3_Cut\Elect2026_Normal_민방\1-2위_ani_광역단체장.tscn` +- Operations: `C:\Users\MD\source\repos\Tornado3_2026Election\tools\KarismaTcpProbe\scene-ops\1-2위_ani_광역단체장_live.json` +- Success Count: 21 +- Failure Count: 0 + +| Object | Method | Payload | Result | Detail | +| --- | --- | --- | --- | --- | +| 개표율01 | SetValue | 88.8 | RESULT_SUCCESS | | +| 시도명01 | SetValue | 서울특별시 | RESULT_SUCCESS | | +| 표차01 | SetValue | 25,000 | RESULT_SUCCESS | | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Tag\\당선.vrv | RESULT_SUCCESS | | +| 순위01 | SetValue | 1 | RESULT_SUCCESS | | +| 정당명01 | SetValue | 더불어민주당 | RESULT_SUCCESS | | +| 후보명01 | SetValue | 김후보 | RESULT_SUCCESS | | +| 득표수01 | SetValue | 2,123,456 | RESULT_SUCCESS | | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Dang\\Dang_Map\\더불어민주당.png | RESULT_SUCCESS | | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Dang\\Dang_Round\\더불어민주당.png | RESULT_SUCCESS | | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Photo\\sampleNEW.png | RESULT_SUCCESS | | +| 득표율01 | SetCounterNumberKey | keyIndex=1, number=34.8 | RESULT_SUCCESS | | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Tag\\유력.vrv | RESULT_SUCCESS | | +| 순위02 | SetValue | 2 | RESULT_SUCCESS | | +| 정당명02 | SetValue | 국민의힘 | RESULT_SUCCESS | | +| 후보명02 | SetValue | 이후보 | RESULT_SUCCESS | | +| 득표수02 | SetValue | 1,123,456 | RESULT_SUCCESS | | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Dang\\Dang_Map\\국민의힘.png | RESULT_SUCCESS | | +| 정당판02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Dang\\Dang_Round\\국민의힘.png | RESULT_SUCCESS | | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Normal_민방\\Images\\Photo\\sampleNEW.png | RESULT_SUCCESS | | +| 득표율02 | SetCounterNumberKey | keyIndex=1, number=32 | RESULT_SUCCESS | | diff --git a/SCENE_VARIABLE_VALIDATION_1-2위_ani_광역단체장.md b/SCENE_VARIABLE_VALIDATION_1-2위_ani_광역단체장.md new file mode 100644 index 0000000..03f9af7 --- /dev/null +++ b/SCENE_VARIABLE_VALIDATION_1-2위_ani_광역단체장.md @@ -0,0 +1,27 @@ +# Scene Variable Validation + +- Generated: 2026-04-14 15:14:18 +- Scene: `C:\Users\MD\Documents\Tornado3 Data\T3_Cut\T3_Cut\Elect2026_Normal_민방\1-2위_ani_광역단체장.tscn` +- Operations: `C:\Users\MD\source\repos\Tornado3_2026Election\tools\KarismaTcpProbe\scene-ops\1-2위_ani_광역단체장.json` +- Success Count: 14 +- Failure Count: 3 + +| Object | Method | Payload | Result | Detail | +| --- | --- | --- | --- | --- | +| Image | SetValue | C:\\Users\\MD\\Documents\\Tornado3 Data\\T3_Cut\\T3_Cut\\Elect2026_Normal_민방\\Images\\Etc\\가이드.png | RESULT_ERROR_NO_VARIABLE_OBJECT | | +| 시도명 | SetValue | 서울특별시 | RESULT_ERROR_NO_VARIABLE_OBJECT | | +| 표차 | SetValue | 100,000표차 | RESULT_ERROR_NO_VARIABLE_OBJECT | | +| 유확당01 | SetValue | C:\\Users\\MD\\Documents\\Tornado3 Data\\T3_Cut\\T3_Cut\\Elect2026_Normal_민방\\Images\\Tag\\당선.vrv | RESULT_SUCCESS | | +| 순위01 | SetValue | 1 | RESULT_SUCCESS | | +| 정당명01 | SetValue | 더불어민주당 | RESULT_SUCCESS | | +| 후보명01 | SetValue | 김후보 | RESULT_SUCCESS | | +| 득표수01 | SetValue | 2,123,456 | RESULT_SUCCESS | | +| 후보사진01 | SetValue | C:\\Users\\MD\\Documents\\Tornado3 Data\\T3_Cut\\T3_Cut\\Elect2026_Normal_민방\\Images\\Photo\\sampleNEW.png | RESULT_SUCCESS | | +| 득표율01 | SetCounterNumberKey | keyIndex=1, number=30 | RESULT_SUCCESS | | +| 유확당02 | SetValue | C:\\Users\\MD\\Documents\\Tornado3 Data\\T3_Cut\\T3_Cut\\Elect2026_Normal_민방\\Images\\Tag\\당선.vrv | RESULT_SUCCESS | | +| 순위02 | SetValue | 2 | RESULT_SUCCESS | | +| 정당명02 | SetValue | 국민의힘 | RESULT_SUCCESS | | +| 후보명02 | SetValue | 이후보 | RESULT_SUCCESS | | +| 득표수02 | SetValue | 1,123,456 | RESULT_SUCCESS | | +| 후보사진02 | SetValue | C:\\Users\\MD\\Documents\\Tornado3 Data\\T3_Cut\\T3_Cut\\Elect2026_Normal_민방\\Images\\Photo\\sampleNEW.png | RESULT_SUCCESS | | +| 득표율02 | SetCounterNumberKey | keyIndex=1, number=20 | RESULT_SUCCESS | | diff --git a/SYSTEM_SPEC.md b/SYSTEM_SPEC.md index f392283..b6f4484 100644 --- a/SYSTEM_SPEC.md +++ b/SYSTEM_SPEC.md @@ -239,11 +239,14 @@ IDLE → READY → SENDING → ON_AIR → NEXT ## 16. Karisma / Tornado3 연동 기준 - CG 연동 라이브러리는 `Interop.KAsyncEngineLib.dll`을 사용한다. +- `Interop.KAsyncEngineLib.dll`이 `AMD64` 기준이므로 앱 실행 대상도 `x64`를 기준으로 운영한다. - 기본 접속 대상은 `127.0.0.1:30001`이다. - `TORNADO_KARISMA_HOST`가 있으면 기본 호스트 대신 사용한다. - `TORNADO_KARISMA_PORT`가 있으면 기본 포트 대신 사용한다. +- 앱은 시작 시 공유 Karisma 어댑터 1개를 만들고 `127.0.0.1:30001` 연결을 즉시 시도한다. +- 노멀, 좌상단, 하단, 비디오월 채널은 같은 TCP 연결을 공유하고, 채널별 `output/layer` 바인딩만 다르게 사용한다. - 앱 시작 시 `T3_Cut 경로`가 유효하지 않으면 실CG 대신 Mock Adapter로 폴백한다. -- 현재 구현 기준으로는 시작 시 Mock으로 결정된 경우, 설정 변경 후 실CG 재연결을 위해 앱 재시작이 필요할 수 있다. +- 현재 구현 기준으로는 시작 시 Mock으로 결정된 경우, 설정 변경만으로 실CG 어댑터로 승격되지 않으므로 앱 재시작이 필요할 수 있다. - 채널 기본 바인딩은 `노멀=0:0`, `좌상단=0:1`, `하단=0:2`, `비디오월=1:0`이다. - 환경변수 `TORNADO_KARISMA_BIND_NORMAL`, `TORNADO_KARISMA_BIND_TOPLEFT`, `TORNADO_KARISMA_BIND_BOTTOM`, `TORNADO_KARISMA_BIND_VIDEOWALL`로 채널 바인딩을 덮어쓸 수 있다. @@ -252,6 +255,8 @@ IDLE → READY → SENDING → ON_AIR → NEXT - 사용자 설정 명칭은 `이미지 루트 경로`가 아니라 `T3_Cut 경로`로 표기한다. - 송출에 사용하는 컷 파일 확장자는 `.tscn`이다. - 컷 파일은 `T3_Cut` 루트 아래의 고정된 포맷 구조를 기준으로 사용한다. +- 기본 `T3_Cut` 탐색 순서는 `TORNADO_T3CUT_PATH` 환경변수, `문서\Tornado3 Data\T3_Cut\T3_Cut`, `문서\Tornado3 Data\T3_Cut`, `다운로드\T3_Cut` 순서다. +- 사용자가 상위 폴더를 선택했더라도 그 아래의 `T3_Cut` 하위 폴더에서 `.tscn` 파일이 확인되면 해당 하위 폴더를 실제 송출 루트로 정규화한다. - 포맷 목록은 폴더 스캔으로 동적 생성하지 않고 하드코딩된 목록으로 관리한다. - 같은 컷 이름에 `_loop.tscn` 파일이 있으면 반복 송출 컷으로 사용한다. - 최초 송출 시에는 기본 컷 파일을 사용한다. @@ -318,10 +323,18 @@ IDLE → READY → SENDING → ON_AIR → NEXT - 같은 이름의 `_loop.tscn` 파일이 있으면, 이미 송출 중인 상태에서 재호출할 때 loop 컷을 우선 사용한다. ### CG 연결 상태 표시 규칙 -- CG 상태는 Karisma 어댑터 존재 여부가 아니라 실제 TCP `30001` 연결 성공 여부를 기준으로 표시한다. +- CG 상태는 Karisma 어댑터 존재 여부가 아니라 공유 TCP `30001` 연결 성공 여부를 기준으로 표시한다. - `Connected / Disconnected` 표시는 `OnConnect` 및 `OnClose` 콜백 기준으로 갱신한다. +- 공유 연결 상태는 해당 연결을 사용하는 모든 채널 패널에 동일하게 반영한다. - TCP 연결이 끊기면 5초 간격으로 자동 재접속을 시도한다. +## 2026-04-14 TCP / SetValue 디버깅 업데이트 + +- 앱 실행 직후 `30001`과의 TCP 연결을 바로 시도하고, 이후 각 채널은 그 단일 연결을 공유한다. +- Karisma SDK 콜백 수신을 위해 전용 STA 스레드에서 메시지 펌프를 유지한다. +- `SetValue` 검증을 위해 후보 이름 키를 기존 `Candidate1Name`, `Candidate2Name` 외에 `후보명01`, `후보명02`로도 함께 전달한다. +- 현재 테스트 빌드 기준 `후보명01=김후보`, `후보명02=이후보`를 함께 송신해 실제 장면 변수 반영 여부를 확인한다. + ### 인코딩 확인 원칙 - 터미널 출력이 깨져 보이는 것과 파일 자체 인코딩 손상을 구분해서 판단한다. - 한글 문자열 상태 판단은 편집기 화면 또는 `UTF-8` 파일 직접 읽기 기준으로 확인한다. diff --git a/TSCN_VARIABLE_DISCOVERY_E_DRIVE.md b/TSCN_VARIABLE_DISCOVERY_E_DRIVE.md new file mode 100644 index 0000000..93fc778 --- /dev/null +++ b/TSCN_VARIABLE_DISCOVERY_E_DRIVE.md @@ -0,0 +1,4883 @@ +# TSCN Variable Discovery + +- Generated: 2026-04-14 15:30:39 +- Root: `E:\김의연\지역민방\T3_Cut` +- Scene Count: 170 +- Discovered Variable Count: 3514 +- Failure Count: 0 + +## Method + +- Candidate names are extracted from each `.tscn` as UTF-16LE strings. +- Each candidate is verified through Karisma TCP callbacks. +- `SetValue(__TCP_VALIDATE__)`, valid `.png`, valid `.vrv`, and `SetCounterNumberKey(1, 1)` are tried as applicable. +- Only callbacks that returned `RESULT_SUCCESS` are listed as discovered variables. + +## Scenes + +### `Elect2026_Bottom_민방\1-2위_광역단체장.tscn` + +- Candidate Count: 28 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1-2위_광역단체장_loop.tscn` + +- Candidate Count: 28 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1-2위_기초단체장.tscn` + +- Candidate Count: 30 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1-2위_기초단체장_loop.tscn` + +- Candidate Count: 30 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1-3위_광역단체장.tscn` + +- Candidate Count: 34 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1-3위_광역단체장_loop.tscn` + +- Candidate Count: 34 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1-3위_기초단체장.tscn` + +- Candidate Count: 36 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1-3위_기초단체장_loop.tscn` + +- Candidate Count: 36 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1위_광역단체장.tscn` + +- Candidate Count: 32 +- Discovered Variables: 27 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1위_광역단체장_loop.tscn` + +- Candidate Count: 32 +- Discovered Variables: 27 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1위_기초단체장.tscn` + +- Candidate Count: 33 +- Discovered Variables: 28 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\1위_기초단체장_loop.tscn` + +- Candidate Count: 33 +- Discovered Variables: 28 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_광역단체장.tscn` + +- Candidate Count: 29 +- Discovered Variables: 24 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_광역단체장_loop.tscn` + +- Candidate Count: 29 +- Discovered Variables: 24 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_광역의원.tscn` + +- Candidate Count: 30 +- Discovered Variables: 25 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_광역의원_loop.tscn` + +- Candidate Count: 30 +- Discovered Variables: 25 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_기초단체장.tscn` + +- Candidate Count: 30 +- Discovered Variables: 25 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_기초단체장_loop.tscn` + +- Candidate Count: 30 +- Discovered Variables: 25 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_기초의원.tscn` + +- Candidate Count: 30 +- Discovered Variables: 25 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\당선_기초의원_loop.tscn` + +- Candidate Count: 30 +- Discovered Variables: 25 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\사전투표율.tscn` + +- Candidate Count: 21 +- Discovered Variables: 18 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\사전투표율_loop.tscn` + +- Candidate Count: 23 +- Discovered Variables: 18 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\전후보_광역단체장.tscn` + +- Candidate Count: 34 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\전후보_광역단체장_loop.tscn` + +- Candidate Count: 34 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\전후보_교육감.tscn` + +- Candidate Count: 34 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\전후보_교육감_loop.tscn` + +- Candidate Count: 34 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\전후보_기초단체장.tscn` + +- Candidate Count: 35 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\전후보_기초단체장_loop.tscn` + +- Candidate Count: 35 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\투표율.tscn` + +- Candidate Count: 24 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 기준시 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Bottom_민방\투표율_loop.tscn` + +- Candidate Count: 23 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 기준시01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 기준시02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_ani_광역단체장.tscn` + +- Candidate Count: 28 +- Discovered Variables: 21 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당판02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_ani_광역단체장_loop.tscn` + +- Candidate Count: 28 +- Discovered Variables: 21 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당판02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_ani_기초단체장.tscn` + +- Candidate Count: 27 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_ani_기초단체장_5760.tscn` + +- Candidate Count: 27 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_ani_기초단체장_L.tscn` + +- Candidate Count: 27 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_광역단체장.tscn` + +- Candidate Count: 27 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_광역단체장_5760.tscn` + +- Candidate Count: 26 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_광역단체장_L.tscn` + +- Candidate Count: 27 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_광역단체장_시도별영상.tscn` + +- Candidate Count: 23 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_교육감.tscn` + +- Candidate Count: 26 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_기초단체장.tscn` + +- Candidate Count: 23 +- Discovered Variables: 18 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_기초단체장_시도별영상.tscn` + +- Candidate Count: 24 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-2위_보궐선거.tscn` + +- Candidate Count: 29 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_ani_광역단체장.tscn` + +- Candidate Count: 31 +- Discovered Variables: 28 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_ani_광역단체장_loop.tscn` + +- Candidate Count: 31 +- Discovered Variables: 28 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_ani_기초단체장.tscn` + +- Candidate Count: 42 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_ani_기초단체장_loop.tscn` + +- Candidate Count: 42 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_기초단체장_5760.tscn` + +- Candidate Count: 42 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_기초단체장_5760_loop.tscn` + +- Candidate Count: 42 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_기초단체장_L.tscn` + +- Candidate Count: 42 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_기초단체장_L_1.tscn` + +- Candidate Count: 42 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당원03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_보궐선거.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\1-3위_보궐선거_loop.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\경력_광역단체장_in.tscn` + +- Candidate Count: 18 +- Discovered Variables: 13 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 공약01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 기호01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 기호텍스트01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\경력_광역단체장_loop.tscn` + +- Candidate Count: 18 +- Discovered Variables: 13 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 공약01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 기호01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 기호텍스트01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\경력_기초단체장_in.tscn` + +- Candidate Count: 19 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 공약01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 기호01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 기호텍스트01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\경력_기초단체장_loop.tscn` + +- Candidate Count: 19 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 공약01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 공약그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 공약그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 기호01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 기호텍스트01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\광역의원표.tscn` + +- Candidate Count: 43 +- Discovered Variables: 39 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\광역의원표_HD.tscn` + +- Candidate Count: 43 +- Discovered Variables: 39 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\광역의원표_HD_loop.tscn` + +- Candidate Count: 81 +- Discovered Variables: 78 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바0101A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\광역의원표_L.tscn` + +- Candidate Count: 43 +- Discovered Variables: 39 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\광역의원표_loop.tscn` + +- Candidate Count: 81 +- Discovered Variables: 78 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바0101A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\광역의원표_L_1.tscn` + +- Candidate Count: 81 +- Discovered Variables: 78 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바0101A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\기초의원표.tscn` + +- Candidate Count: 43 +- Discovered Variables: 39 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\기초의원표_HD.tscn` + +- Candidate Count: 43 +- Discovered Variables: 39 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\기초의원표_HD_loop.tscn` + +- Candidate Count: 81 +- Discovered Variables: 78 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바0101A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\기초의원표_L.tscn` + +- Candidate Count: 43 +- Discovered Variables: 39 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수01C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\기초의원표_loop.tscn` + +- Candidate Count: 82 +- Discovered Variables: 78 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바0101A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\기초의원표_L_1.tscn` + +- Candidate Count: 81 +- Discovered Variables: 78 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0101C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0102C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0103C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0104C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0105C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0106C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0201C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0202C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0203C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0204C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0205C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206A | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206B | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수0206C | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바0101A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0101C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0102C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0103C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0104C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0105C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0106C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0201C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0202C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0203C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0204C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0205C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206A | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206B | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바0206C | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_광역단체장.tscn` + +- Candidate Count: 12 +- Discovered Variables: 8 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_광역단체장_HD.tscn` + +- Candidate Count: 13 +- Discovered Variables: 8 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_광역단체장_L.tscn` + +- Candidate Count: 12 +- Discovered Variables: 8 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_광역의원.tscn` + +- Candidate Count: 14 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_광역의원_HD.tscn` + +- Candidate Count: 13 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_광역의원_L.tscn` + +- Candidate Count: 13 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_교육감.tscn` + +- Candidate Count: 12 +- Discovered Variables: 8 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_교육감_HD.tscn` + +- Candidate Count: 13 +- Discovered Variables: 8 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_교육감_L.tscn` + +- Candidate Count: 12 +- Discovered Variables: 8 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_기초단체장.tscn` + +- Candidate Count: 13 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_기초단체장_HD.tscn` + +- Candidate Count: 13 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_기초단체장_L.tscn` + +- Candidate Count: 13 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_기초의원.tscn` + +- Candidate Count: 12 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_기초의원_HD.tscn` + +- Candidate Count: 13 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\당선_기초의원_L.tscn` + +- Candidate Count: 12 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_광역단체장.tscn` + +- Candidate Count: 15 +- Discovered Variables: 10 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_광역단체장_5760.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_광역단체장_5760_END.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_광역단체장_END.tscn` + +- Candidate Count: 16 +- Discovered Variables: 10 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_광역단체장_L.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_광역단체장_loop.tscn` + +- Candidate Count: 16 +- Discovered Variables: 10 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_광역단체장_L_END.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_교육감.tscn` + +- Candidate Count: 15 +- Discovered Variables: 10 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_교육감_5760.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_교육감_5760_END.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_교육감_END.tscn` + +- Candidate Count: 15 +- Discovered Variables: 10 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_교육감_L.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_교육감_loop.tscn` + +- Candidate Count: 16 +- Discovered Variables: 10 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_교육감_L_END.tscn` + +- Candidate Count: 33 +- Discovered Variables: 29 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_기초단체장.tscn` + +- Candidate Count: 16 +- Discovered Variables: 11 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_기초단체장_5760.tscn` + +- Candidate Count: 34 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_기초단체장_5760_END.tscn` + +- Candidate Count: 34 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_기초단체장_END.tscn` + +- Candidate Count: 16 +- Discovered Variables: 11 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_기초단체장_L.tscn` + +- Candidate Count: 34 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_기초단체장_loop.tscn` + +- Candidate Count: 17 +- Discovered Variables: 11 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\모든후보_기초단체장_L_END.tscn` + +- Candidate Count: 34 +- Discovered Variables: 30 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 순위03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\민방_타이틀.tscn` + +- Candidate Count: 3 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\민방_타이틀_1920.tscn` + +- Candidate Count: 2 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\민방_타이틀_1920_notext.tscn` + +- Candidate Count: 3 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\민방_타이틀_5760_nologo.tscn` + +- Candidate Count: 3 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\민방_타이틀_L.tscn` + +- Candidate Count: 2 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\민방_타이틀_L_nologo.tscn` + +- Candidate Count: 3 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\사전_역대당선자.tscn` + +- Candidate Count: 45 +- Discovered Variables: 41 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명08 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명08 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대당선자_교육감.tscn` + +- Candidate Count: 45 +- Discovered Variables: 41 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명08 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명08 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대당선자_기초단체장.tscn` + +- Candidate Count: 46 +- Discovered Variables: 42 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명08 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명08 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진08 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대투표율.tscn` + +- Candidate Count: 25 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 점선01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 차트01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대투표율_5760.tscn` + +- Candidate Count: 25 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 점선01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 차트01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대투표율_5760_loop.tscn` + +- Candidate Count: 25 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 점선01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 차트01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대투표율_L.tscn` + +- Candidate Count: 25 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 점선01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 차트01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대투표율_loop.tscn` + +- Candidate Count: 25 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 점선01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 차트01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\사전_역대투표율_L_1.tscn` + +- Candidate Count: 25 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 점선01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 점선06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 차트01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\역대시도판세_광역단체장.tscn` + +- Candidate Count: 5 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\역대시도판세_기초단체장.tscn` + +- Candidate Count: 5 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Normal_민방\이시각1위_광역단체장.tscn` + +- Candidate Count: 36 +- Discovered Variables: 33 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\이시각1위_광역단체장_HD.tscn` + +- Candidate Count: 10 +- Discovered Variables: 8 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\이시각1위_광역단체장_L.tscn` + +- Candidate Count: 36 +- Discovered Variables: 33 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\이시각1위_기초단체장.tscn` + +- Candidate Count: 40 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\이시각1위_기초단체장_HD.tscn` + +- Candidate Count: 28 +- Discovered Variables: 24 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\이시각1위_기초단체장_L.tscn` + +- Candidate Count: 40 +- Discovered Variables: 36 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 개표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당색03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\접전_광역단체장.tscn` + +- Candidate Count: 25 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\접전_기초단체장.tscn` + +- Candidate Count: 27 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\초접전_광역단체장.tscn` + +- Candidate Count: 25 +- Discovered Variables: 19 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\초접전_기초단체장.tscn` + +- Candidate Count: 27 +- Discovered Variables: 20 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_사진.tscn` + +- Candidate Count: 13 +- Discovered Variables: 7 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유권자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_선거구별 사전.tscn` + +- Candidate Count: 30 +- Discovered Variables: 22 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_선거구별 사전_loop.tscn` + +- Candidate Count: 31 +- Discovered Variables: 22 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 바07 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율07 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_시도별.tscn` + +- Candidate Count: 8 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 기준시 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유권자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_시도별_L.tscn` + +- Candidate Count: 8 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 기준시 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유권자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_시도별_loop.tscn` + +- Candidate Count: 9 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 기준시 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유권자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_시도별_L_loop.tscn` + +- Candidate Count: 9 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 기준시 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유권자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\투표율_영상.tscn` + +- Candidate Count: 6 +- Discovered Variables: 3 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 유권자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표자수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\판세_광역단체장.tscn` + +- Candidate Count: 52 +- Discovered Variables: 35 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 강원 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 경기 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 경남 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 경북 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 대구 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 대전 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 부산 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 서울 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 세종 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 울산 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 인천 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 전남 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 전북 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 제주 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 충남 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 충북 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\판세_기초단체장.tscn` + +- Candidate Count: 24 +- Discovered Variables: 15 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그래프01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 총01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\판세_기초단체장_5760.tscn` + +- Candidate Count: 24 +- Discovered Variables: 15 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그래프01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 총01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Normal_민방\판세_기초단체장_7680.tscn` + +- Candidate Count: 24 +- Discovered Variables: 15 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 그래프01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프04 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프05 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그래프06 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율04 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율05 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율06 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 총01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\광역단체장_2인.tscn` + +- Candidate Count: 20 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\광역단체장_2인_텍스트.tscn` + +- Candidate Count: 18 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\기초단체장_2인.tscn` + +- Candidate Count: 20 +- Discovered Variables: 15 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\기초단체장_2인_텍스트.tscn` + +- Candidate Count: 19 +- Discovered Variables: 13 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\투표율.tscn` + +- Candidate Count: 4 +- Discovered Variables: 3 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 전국투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\투표율_loop.tscn` + +- Candidate Count: 4 +- Discovered Variables: 3 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 전국투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\투표율_선거구별.tscn` + +- Candidate Count: 6 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\투표율_선거구별_loop.tscn` + +- Candidate Count: 6 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\판세_광역단체장.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\판세_광역의원.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\판세_교육감.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\판세_기초단체장.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\Elect2026_Top_민방\판세_기초의원.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\광역단체장_2인.tscn` + +- Candidate Count: 20 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\광역단체장_2인_텍스트.tscn` + +- Candidate Count: 18 +- Discovered Variables: 14 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\기초단체장_2인.tscn` + +- Candidate Count: 20 +- Discovered Variables: 15 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\기초단체장_2인_텍스트.tscn` + +- Candidate Count: 19 +- Discovered Variables: 13 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 선거구명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당심볼02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\투표율.tscn` + +- Candidate Count: 4 +- Discovered Variables: 3 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 전국투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\투표율_loop.tscn` + +- Candidate Count: 4 +- Discovered Variables: 3 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 전국투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\투표율_선거구별.tscn` + +- Candidate Count: 6 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\투표율_선거구별_loop.tscn` + +- Candidate Count: 6 +- Discovered Variables: 5 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 그룹01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 그룹03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 투표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | + +### `Elect2026_Top_민방\판세_광역단체장.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\판세_광역의원.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\판세_교육감.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\판세_기초단체장.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + +### `Elect2026_Top_민방\판세_기초의원.tscn` + +- Candidate Count: 11 +- Discovered Variables: 9 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 의석수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 의석수03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명03 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바03 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + diff --git a/TSCN_VARIABLE_DISCOVERY_ONE.md b/TSCN_VARIABLE_DISCOVERY_ONE.md new file mode 100644 index 0000000..02bcba4 --- /dev/null +++ b/TSCN_VARIABLE_DISCOVERY_ONE.md @@ -0,0 +1,46 @@ +# TSCN Variable Discovery + +- Generated: 2026-04-14 15:24:09 +- Root: `E:\김의연\지역민방\T3_Cut` +- Scene Count: 1 +- Discovered Variable Count: 21 +- Failure Count: 0 + +## Method + +- Candidate names are extracted from each `.tscn` as UTF-16LE strings. +- Each candidate is verified through Karisma TCP callbacks. +- `SetValue(__TCP_VALIDATE__)`, valid `.png`, valid `.vrv`, and `SetCounterNumberKey(1, 1)` are tried as applicable. +- Only callbacks that returned `RESULT_SUCCESS` are listed as discovered variables. + +## Scenes + +### `Elect2026_Normal_민방\1-2위_ani_광역단체장.tscn` + +- Candidate Count: 28 +- Discovered Variables: 21 + +| Variable | Method | Payload | Result | +| --- | --- | --- | --- | +| 개표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표수02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 득표율02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 순위02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 시도명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 유확당01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 유확당02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 정당바01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당바02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당판01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 정당판02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 표차01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명01 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보명02 | SetValue | __TCP_VALIDATE__ | RESULT_SUCCESS | +| 후보사진01 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | +| 후보사진02 | SetValue | E:\\김의연\\지역민방\\T3_Cut\\Elect2026_Bottom_민방\\Images\\Etc\\가이드.png | RESULT_SUCCESS | + diff --git a/TSCN_VARIABLE_DISCOVERY_SAMPLE.md b/TSCN_VARIABLE_DISCOVERY_SAMPLE.md new file mode 100644 index 0000000..033e057 --- /dev/null +++ b/TSCN_VARIABLE_DISCOVERY_SAMPLE.md @@ -0,0 +1,38 @@ +# TSCN Variable Discovery + +- Generated: 2026-04-14 15:21:19 +- Root: `E:\김의연\지역민방\T3_Cut` +- Scene Count: 3 +- Discovered Variable Count: 0 +- Failure Count: 0 + +## Method + +- Candidate names are extracted from each `.tscn` as UTF-16LE strings. +- Each candidate is verified through Karisma TCP callbacks. +- `SetValue(__TCP_VALIDATE__)`, valid `.png`, valid `.vrv`, and `SetCounterNumberKey(1, 1)` are tried as applicable. +- Only callbacks that returned `RESULT_SUCCESS` are listed as discovered variables. + +## Scenes + +### `Elect2026_Bottom_민방\1-2위_광역단체장.tscn` + +- Candidate Count: 54 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Bottom_민방\1-2위_광역단체장_loop.tscn` + +- Candidate Count: 53 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + +### `Elect2026_Bottom_민방\1-2위_기초단체장.tscn` + +- Candidate Count: 53 +- Discovered Variables: 0 + +- No variables discovered with the current TCP validation heuristics. + diff --git a/Tornado3_2026Election/Domain/CandidateEntry.cs b/Tornado3_2026Election/Domain/CandidateEntry.cs index a9d89b1..b7e1757 100644 --- a/Tornado3_2026Election/Domain/CandidateEntry.cs +++ b/Tornado3_2026Election/Domain/CandidateEntry.cs @@ -86,7 +86,7 @@ public sealed class CandidateEntry : ObservableObject public string EffectiveJudgementLabel => EffectiveJudgement switch { CandidateJudgement.Leading => "유력", - CandidateJudgement.Confirmed => "확실", + CandidateJudgement.Confirmed => "확정", CandidateJudgement.Elected => "당선", _ => "-" }; diff --git a/Tornado3_2026Election/Services/KarismaCounterNumberKeyUpdate.cs b/Tornado3_2026Election/Services/KarismaCounterNumberKeyUpdate.cs new file mode 100644 index 0000000..908c822 --- /dev/null +++ b/Tornado3_2026Election/Services/KarismaCounterNumberKeyUpdate.cs @@ -0,0 +1,3 @@ +namespace Tornado3_2026Election.Services; + +public readonly record struct KarismaCounterNumberKeyUpdate(string ObjectName, int KeyIndex, double Number); diff --git a/Tornado3_2026Election/Services/KarismaEventHandler.cs b/Tornado3_2026Election/Services/KarismaEventHandler.cs index a02baef..0c6b411 100644 --- a/Tornado3_2026Election/Services/KarismaEventHandler.cs +++ b/Tornado3_2026Election/Services/KarismaEventHandler.cs @@ -143,7 +143,7 @@ public class KarismaEventHandler : KAEventHandler virtual public void OnQueryChartDataTable(eKResult Result, string SceneName, string ObjectName, KAChartDataTable Table) { } virtual public void OnQuerySize(eKResult Result, string SceneName, string ObjectName, float Width, float Height) { } virtual public void OnSetSize(eKResult Result, string SceneName, string ObjectName) { } - virtual public void OnSetCounterNumberKey(eKResult Result, string SceneName, string ObjectName) { } + public void OnSetCounterNumberKey(eKResult Result, string SceneName, string ObjectName) => LogResult(nameof(OnSetCounterNumberKey), Result, $"scene={SceneName} object={ObjectName}"); virtual public void OnSetPositionKey(eKResult Result, string SceneName, string ObjectName) { } virtual public void OnSetRotationKey(eKResult Result, string SceneName, string ObjectName) { } virtual public void OnSetScaleKey(eKResult Result, string SceneName, string ObjectName) { } diff --git a/Tornado3_2026Election/Services/KarismaSceneVariableCatalog.cs b/Tornado3_2026Election/Services/KarismaSceneVariableCatalog.cs new file mode 100644 index 0000000..9206e55 --- /dev/null +++ b/Tornado3_2026Election/Services/KarismaSceneVariableCatalog.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace Tornado3_2026Election.Services; + +public sealed class KarismaSceneVariableCatalog +{ + private static readonly IReadOnlyDictionary EmptySceneVariables = + new Dictionary(StringComparer.OrdinalIgnoreCase); + + private readonly IReadOnlyDictionary> _scenes; + + private KarismaSceneVariableCatalog( + IReadOnlyDictionary> scenes) + { + _scenes = scenes; + } + + public static KarismaSceneVariableCatalog Load(LogService logService) + { + var reportPath = FindDiscoveryReportPath(); + if (string.IsNullOrWhiteSpace(reportPath) || !File.Exists(reportPath)) + { + logService.Warning("Karisma scene variable catalog report was not found. Falling back to runtime value heuristics."); + return new KarismaSceneVariableCatalog( + new Dictionary>(StringComparer.OrdinalIgnoreCase)); + } + + try + { + var scenes = ParseReport(reportPath); + logService.Info($"Karisma scene variable catalog loaded: scenes={scenes.Count} source='{reportPath}'."); + return new KarismaSceneVariableCatalog(scenes); + } + catch (Exception ex) + { + logService.Warning($"Failed to load Karisma scene variable catalog: {ex.Message}"); + return new KarismaSceneVariableCatalog( + new Dictionary>(StringComparer.OrdinalIgnoreCase)); + } + } + + public IReadOnlyDictionary GetSceneVariables(string t3CutPath, string scenePath) + { + if (_scenes.Count == 0 || + string.IsNullOrWhiteSpace(t3CutPath) || + string.IsNullOrWhiteSpace(scenePath)) + { + return EmptySceneVariables; + } + + var relativePath = NormalizeRelativePath(Path.GetRelativePath(t3CutPath, scenePath)); + return _scenes.TryGetValue(relativePath, out var variables) + ? variables + : EmptySceneVariables; + } + + private static IReadOnlyDictionary> ParseReport(string reportPath) + { + var scenes = new Dictionary>(StringComparer.OrdinalIgnoreCase); + string? currentScene = null; + + foreach (var rawLine in File.ReadLines(reportPath, Encoding.UTF8)) + { + var line = rawLine.Trim(); + if (TryParseSceneHeader(line, out var sceneRelativePath)) + { + currentScene = NormalizeRelativePath(sceneRelativePath); + if (!scenes.ContainsKey(currentScene)) + { + scenes[currentScene] = new Dictionary(StringComparer.OrdinalIgnoreCase); + } + + continue; + } + + if (string.IsNullOrWhiteSpace(currentScene) || !line.StartsWith('|')) + { + continue; + } + + var cells = SplitMarkdownRow(line); + if (cells.Count < 4 || + string.Equals(cells[0], "Variable", StringComparison.OrdinalIgnoreCase) || + string.Equals(cells[0], "---", StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + var variableName = cells[0]; + if (string.IsNullOrWhiteSpace(variableName)) + { + continue; + } + + var method = cells[1]; + var payload = cells[2]; + var result = cells[3]; + if (!string.Equals(result, "RESULT_SUCCESS", StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + scenes[currentScene][variableName] = new KarismaSceneVariableDefinition( + variableName, + ResolveKind(variableName, method, payload), + method, + payload); + } + + return scenes.ToDictionary( + pair => pair.Key, + pair => (IReadOnlyDictionary)pair.Value, + StringComparer.OrdinalIgnoreCase); + } + + private static bool TryParseSceneHeader(string line, out string sceneRelativePath) + { + sceneRelativePath = string.Empty; + if (!line.StartsWith("### `", StringComparison.Ordinal) || !line.EndsWith('`')) + { + return false; + } + + sceneRelativePath = line.Substring(5, line.Length - 6); + return !string.IsNullOrWhiteSpace(sceneRelativePath); + } + + private static List SplitMarkdownRow(string line) + { + var cells = line.Split('|'); + if (cells.Length <= 2) + { + return []; + } + + return cells + .Skip(1) + .Take(cells.Length - 2) + .Select(cell => cell.Trim()) + .ToList(); + } + + private static KarismaSceneVariableKind ResolveKind(string variableName, string method, string payload) + { + if (string.Equals(method, "SetCounterNumberKey", StringComparison.OrdinalIgnoreCase)) + { + return KarismaSceneVariableKind.Counter; + } + + if (variableName.StartsWith("\uC720\uD655\uB2F9", StringComparison.OrdinalIgnoreCase)) + { + return KarismaSceneVariableKind.VideoResource; + } + + if (payload.EndsWith(".vrv", StringComparison.OrdinalIgnoreCase)) + { + return KarismaSceneVariableKind.VideoResource; + } + + if (payload.EndsWith(".png", StringComparison.OrdinalIgnoreCase) || + payload.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) || + payload.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase) || + payload.EndsWith(".webp", StringComparison.OrdinalIgnoreCase)) + { + return KarismaSceneVariableKind.Image; + } + + return KarismaSceneVariableKind.Text; + } + + private static string? FindDiscoveryReportPath() + { + foreach (var startPath in EnumerateSearchRoots()) + { + var current = startPath; + for (var depth = 0; depth < 8 && !string.IsNullOrWhiteSpace(current); depth++) + { + var candidate = Path.Combine(current, "TSCN_VARIABLE_DISCOVERY_E_DRIVE.md"); + if (File.Exists(candidate)) + { + return candidate; + } + + current = Path.GetDirectoryName(current); + } + } + + return null; + } + + private static IEnumerable EnumerateSearchRoots() + { + var roots = new List { AppContext.BaseDirectory }; + try + { + roots.Add(Directory.GetCurrentDirectory()); + } + catch + { + } + + return roots; + } + + private static string NormalizeRelativePath(string relativePath) + { + return relativePath + .Replace('/', '\\') + .Trim(); + } +} + +public sealed record KarismaSceneVariableDefinition( + string Name, + KarismaSceneVariableKind Kind, + string Method, + string Payload); + +public enum KarismaSceneVariableKind +{ + Text, + Image, + VideoResource, + Counter +} diff --git a/Tornado3_2026Election/Services/KarismaTornado3Adapter.cs b/Tornado3_2026Election/Services/KarismaTornado3Adapter.cs index b8cf32a..08db51d 100644 --- a/Tornado3_2026Election/Services/KarismaTornado3Adapter.cs +++ b/Tornado3_2026Election/Services/KarismaTornado3Adapter.cs @@ -16,6 +16,7 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable private readonly TornadoManager _manager; private readonly LogService _logService; private readonly Func _t3CutPathProvider; + private readonly KarismaSceneVariableCatalog _sceneVariableCatalog; private readonly IReadOnlyDictionary _bindings; private readonly string _connectionTarget; private readonly Dictionary _pendingScenes = new(); @@ -27,12 +28,14 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable TornadoManager manager, LogService logService, Func t3CutPathProvider, + KarismaSceneVariableCatalog sceneVariableCatalog, string connectionTarget, IReadOnlyDictionary bindings) { _manager = manager; _logService = logService; _t3CutPathProvider = t3CutPathProvider; + _sceneVariableCatalog = sceneVariableCatalog; _connectionTarget = connectionTarget; _bindings = bindings; _manager.ConnectionChanged += (_, _) => ConnectionChanged?.Invoke(this, EventArgs.Empty); @@ -105,10 +108,12 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable } var manager = new TornadoManager(host, port, logService); + var sceneVariableCatalog = KarismaSceneVariableCatalog.Load(logService); adapter = new KarismaTornado3Adapter( manager, logService, t3CutPathProvider, + sceneVariableCatalog, $"{host}:{port}", BuildBindings()); return true; @@ -141,12 +146,14 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable var binding = ResolveBinding(channel); var t3CutPath = ResolveT3CutPath(); var resolvedScene = ResolveScene(template, t3CutPath, IsChannelOnAir(channel)); - var values = BuildObjectValues(template, cut, snapshot, station, t3CutPath); + var sceneVariables = _sceneVariableCatalog.GetSceneVariables(t3CutPath, resolvedScene.Path); + var values = BuildObjectValues(template, cut, snapshot, station, t3CutPath, sceneVariables); + var counterNumberKeys = BuildCounterNumberKeyUpdates(template, snapshot, sceneVariables); State = TornadoConnectionState.Sending; await _manager.EnsureConnectedAsync(cancellationToken).ConfigureAwait(false); await _manager.LoadSceneAsync(resolvedScene.Path, resolvedScene.Alias, cancellationToken).ConfigureAwait(false); - await _manager.ApplyValuesAsync(resolvedScene.Alias, values, cancellationToken).ConfigureAwait(false); + await _manager.ApplyValuesAsync(resolvedScene.Alias, values, counterNumberKeys, cancellationToken).ConfigureAwait(false); _pendingScenes[channel] = resolvedScene.Alias; _logService.Info($"[{channel}] Karisma scene prepared alias={resolvedScene.Alias} output={binding.OutputChannelIndex}:{binding.LayerNo}"); @@ -318,8 +325,12 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable FormatCutDefinition cut, ElectionDataSnapshot snapshot, BroadcastStationProfile station, - string t3CutPath) + string t3CutPath, + IReadOnlyDictionary sceneVariables) { + var templateFolderPath = ResolveTemplateFolderPath(t3CutPath, template); + var countedRateDisplay = FormatRate(CalculateCountedRate(snapshot)); + var turnoutRateDisplay = FormatRate(snapshot.TurnoutRate); var values = new Dictionary(StringComparer.OrdinalIgnoreCase) { ["TemplateId"] = template.Id, @@ -348,6 +359,10 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable ["Timestamp"] = snapshot.ReceivedAt.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture) }; + SetAliases(values, snapshot.DistrictName, "선거구명", "선거구명01", "시도명", "시도명01"); + SetAliases(values, countedRateDisplay, "개표율", "개표율01"); + SetAliases(values, turnoutRateDisplay, "투표율", "투표율01", "전국투표율", "전국투표율01"); + var orderedCandidates = snapshot.Candidates .OrderByDescending(candidate => candidate.VoteCount) .ThenBy(candidate => candidate.Name, StringComparer.Ordinal) @@ -357,19 +372,48 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable { var candidate = orderedCandidates[index]; var slot = index + 1; + var voteCountDisplay = FormatCount(candidate.VoteCount); + var voteRateDisplay = FormatRate(candidate.VoteRate); + var voteGapDisplay = FormatCount(CalculateVoteGap(orderedCandidates, index)); + var rankDisplay = slot.ToString(CultureInfo.InvariantCulture); + var rankImagePath = ResolveRankAssetPath(t3CutPath, templateFolderPath, slot); + var judgementPath = ResolveJudgementAssetPath(t3CutPath, templateFolderPath, candidate.EffectiveJudgement); + var candidateImagePath = ResolveCandidateImagePath(t3CutPath, templateFolderPath, candidate); + var partyBarPath = ResolvePartyAssetPath(t3CutPath, templateFolderPath, candidate.Party, PartyAssetKind.Bar); + var partyPlatePath = ResolvePartyAssetPath(t3CutPath, templateFolderPath, candidate.Party, PartyAssetKind.Plate); + var partySymbolPath = ResolvePartyAssetPath(t3CutPath, templateFolderPath, candidate.Party, PartyAssetKind.Symbol); + var groupPath = ResolvePartyAssetPath(t3CutPath, templateFolderPath, candidate.Party, PartyAssetKind.Group); + values[$"Candidate{slot}Code"] = candidate.CandidateCode; values[$"Candidate{slot}Name"] = candidate.Name; - values[$"후보명{slot:00}"] = candidate.Name; values[$"Candidate{slot}Party"] = candidate.Party; values[$"Candidate{slot}VoteCount"] = candidate.VoteCount.ToString(CultureInfo.InvariantCulture); - values[$"Candidate{slot}VoteCountDisplay"] = candidate.VoteCount.ToString("N0", CultureInfo.InvariantCulture); - values[$"Candidate{slot}VoteRate"] = candidate.VoteRate.ToString("0.0", CultureInfo.InvariantCulture); + values[$"Candidate{slot}VoteCountDisplay"] = voteCountDisplay; + values[$"Candidate{slot}VoteRate"] = voteRateDisplay; values[$"Candidate{slot}Judgement"] = candidate.EffectiveJudgementLabel; - values[$"Candidate{slot}ImagePath"] = ResolveCandidateImagePath(t3CutPath, candidate); - } + values[$"Candidate{slot}ImagePath"] = candidateImagePath; - values["후보명01"] = "김후보"; - values["후보명02"] = "이후보"; + SetRankAliases(values, sceneVariables, rankDisplay, rankImagePath, $"순위{slot:00}", $"순위{slot}"); + SetAliases(values, candidate.Name, $"후보명{slot:00}", $"후보명{slot}"); + SetAliases(values, candidate.Party, $"정당명{slot:00}", $"정당명{slot}"); + SetAliases(values, voteCountDisplay, $"득표수{slot:00}", $"득표수{slot}"); + SetAliases(values, voteRateDisplay, $"득표율{slot:00}", $"득표율{slot}"); + SetAliases(values, voteGapDisplay, $"표차{slot:00}", $"표차{slot}", $"득표차{slot:00}", $"득표차{slot}"); + SetAliases( + values, + snapshot.DistrictName, + $"선거구명{slot:00}", + $"선거구명{slot}", + $"시도명{slot:00}", + $"시도명{slot}"); + SetAliases(values, countedRateDisplay, $"개표율{slot:00}", $"개표율{slot}"); + SetOptionalAliases(values, judgementPath, $"유확당{slot:00}", $"유확당{slot}"); + SetOptionalAliases(values, candidateImagePath, $"후보사진{slot:00}", $"후보사진{slot}"); + SetOptionalAliases(values, partyBarPath, $"정당바{slot:00}", $"정당바{slot}"); + SetOptionalAliases(values, partyPlatePath, $"정당판{slot:00}", $"정당판{slot}"); + SetOptionalAliases(values, partySymbolPath, $"정당심볼{slot:00}", $"정당심볼{slot}"); + SetOptionalAliases(values, groupPath, $"그룹{slot:00}", $"그룹{slot}"); + } if (orderedCandidates.FirstOrDefault() is { } leader) { @@ -377,34 +421,366 @@ public sealed class KarismaTornado3Adapter : ITornado3Adapter, IDisposable values["LeaderName"] = leader.Name; values["LeaderParty"] = leader.Party; values["LeaderVoteCount"] = leader.VoteCount.ToString(CultureInfo.InvariantCulture); - values["LeaderVoteCountDisplay"] = leader.VoteCount.ToString("N0", CultureInfo.InvariantCulture); - values["LeaderVoteRate"] = leader.VoteRate.ToString("0.0", CultureInfo.InvariantCulture); + values["LeaderVoteCountDisplay"] = FormatCount(leader.VoteCount); + values["LeaderVoteRate"] = FormatRate(leader.VoteRate); values["LeaderJudgement"] = leader.EffectiveJudgementLabel; - values["LeaderImagePath"] = ResolveCandidateImagePath(t3CutPath, leader); + values["LeaderImagePath"] = ResolveCandidateImagePath(t3CutPath, templateFolderPath, leader); } - return values; + return FilterValuesForScene(values, sceneVariables); } - private static string ResolveCandidateImagePath(string t3CutPath, CandidateEntry candidate) + private static IReadOnlyList BuildCounterNumberKeyUpdates( + FormatTemplateDefinition template, + ElectionDataSnapshot snapshot, + IReadOnlyDictionary sceneVariables) { - if (!candidate.HasImage || string.IsNullOrWhiteSpace(t3CutPath) || string.IsNullOrWhiteSpace(candidate.CandidateCode)) + if (!IsAnimatedTemplate(template)) + { + return Array.Empty(); + } + + var orderedCandidates = snapshot.Candidates + .OrderByDescending(candidate => candidate.VoteCount) + .ThenBy(candidate => candidate.Name, StringComparer.Ordinal) + .ToArray(); + + if (orderedCandidates.Length == 0) + { + return Array.Empty(); + } + + var updates = new List(orderedCandidates.Length); + for (var index = 0; index < orderedCandidates.Length; index++) + { + var slot = index + 1; + var variableName = $"득표율{slot:00}"; + if (sceneVariables.Count > 0 && !sceneVariables.ContainsKey(variableName)) + { + continue; + } + + updates.Add(new KarismaCounterNumberKeyUpdate( + variableName, + 1, + Math.Round(orderedCandidates[index].VoteRate, 1, MidpointRounding.AwayFromZero))); + } + + return updates; + } + + private static string ResolveCandidateImagePath(string t3CutPath, string templateFolderPath, CandidateEntry candidate) + { + if (!candidate.HasImage || string.IsNullOrWhiteSpace(t3CutPath)) { return string.Empty; } - foreach (var extension in new[] { ".png", ".jpg", ".jpeg", ".webp" }) + var relativePaths = new List(); + if (!string.IsNullOrWhiteSpace(candidate.CandidateCode)) { - var path = Path.Combine(t3CutPath, candidate.CandidateCode + extension); - if (File.Exists(path)) + foreach (var extension in new[] { ".png", ".jpg", ".jpeg", ".webp" }) { - return path; + relativePaths.Add(Path.Combine("Images", "Photo", candidate.CandidateCode + extension)); + relativePaths.Add(candidate.CandidateCode + extension); + } + } + + foreach (var sampleFileName in new[] { "sampleNEW.png", "sampleNEW.jpg", "sampleNEW.jpeg", "sample.png" }) + { + relativePaths.Add(Path.Combine("Images", "Photo", sampleFileName)); + relativePaths.Add(sampleFileName); + } + + return ResolveAssetAcrossRoots(t3CutPath, templateFolderPath, relativePaths); + } + + private static string ResolveRankAssetPath(string t3CutPath, string templateFolderPath, int rank) + { + if (rank <= 0) + { + return string.Empty; + } + + return ResolveAssetAcrossRoots( + t3CutPath, + templateFolderPath, + new[] { Path.Combine("Images", "Rank", $"{rank}위.png") }); + } + + private static string ResolveJudgementAssetPath(string t3CutPath, string templateFolderPath, CandidateJudgement judgement) + { + string[] fileNames = judgement switch + { + CandidateJudgement.Leading => new[] { "유력.vrv" }, + CandidateJudgement.Confirmed => new[] { "확정.vrv", "확실.vrv" }, + CandidateJudgement.Elected => new[] { "당선.vrv" }, + _ => Array.Empty() + }; + + if (fileNames.Length == 0) + { + return string.Empty; + } + + return ResolveAssetAcrossRoots( + t3CutPath, + templateFolderPath, + fileNames.Select(fileName => Path.Combine("Images", "Tag", fileName))); + } + + private static string ResolvePartyAssetPath( + string t3CutPath, + string templateFolderPath, + string partyName, + PartyAssetKind assetKind) + { + if (string.IsNullOrWhiteSpace(partyName)) + { + return string.Empty; + } + + var relativePaths = new List(); + foreach (var candidateFileName in GetPartyFileNameCandidates(partyName)) + { + switch (assetKind) + { + case PartyAssetKind.Bar: + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Map", candidateFileName + ".png")); + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Round", candidateFileName + ".png")); + break; + case PartyAssetKind.Plate: + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Round", candidateFileName + ".png")); + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Map", candidateFileName + ".png")); + break; + case PartyAssetKind.Symbol: + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Symbol", candidateFileName + ".png")); + break; + case PartyAssetKind.Group: + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Map", candidateFileName + ".png")); + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Round", candidateFileName + ".png")); + relativePaths.Add(Path.Combine("Images", "Dang", "Dang_Symbol", candidateFileName + ".png")); + break; + } + } + + return ResolveAssetAcrossRoots(t3CutPath, templateFolderPath, relativePaths); + } + + private static string ResolveTemplateFolderPath(string t3CutPath, FormatTemplateDefinition template) + { + var normalizedTemplateId = template.Id + .Replace('\\', Path.DirectorySeparatorChar) + .Replace('/', Path.DirectorySeparatorChar); + var relativeDirectory = Path.GetDirectoryName(normalizedTemplateId); + return string.IsNullOrWhiteSpace(relativeDirectory) + ? t3CutPath + : Path.Combine(t3CutPath, relativeDirectory); + } + + private static double CalculateCountedRate(ElectionDataSnapshot snapshot) + { + var denominator = snapshot.TurnoutVotes > 0 + ? snapshot.TurnoutVotes + : snapshot.TotalExpectedVotes; + + return denominator <= 0 + ? 0d + : Math.Round(snapshot.CountedVotes * 100d / denominator, 1, MidpointRounding.AwayFromZero); + } + + private static int CalculateVoteGap(IReadOnlyList orderedCandidates, int index) + { + if (orderedCandidates.Count <= 1 || index < 0 || index >= orderedCandidates.Count) + { + return 0; + } + + var comparisonIndex = index < orderedCandidates.Count - 1 + ? index + 1 + : index - 1; + return Math.Abs(orderedCandidates[index].VoteCount - orderedCandidates[comparisonIndex].VoteCount); + } + + private static bool IsAnimatedTemplate(FormatTemplateDefinition template) + { + return template.Id.Contains("ani", StringComparison.OrdinalIgnoreCase) || + template.Name.Contains("ani", StringComparison.OrdinalIgnoreCase); + } + + private static string FormatCount(int value) + { + return value.ToString("N0", CultureInfo.InvariantCulture); + } + + private static string FormatRate(double value) + { + return Math.Round(value, 1, MidpointRounding.AwayFromZero).ToString("0.0", CultureInfo.InvariantCulture); + } + + private static void SetAliases(IDictionary values, string value, params string[] keys) + { + foreach (var key in keys) + { + if (!string.IsNullOrWhiteSpace(key)) + { + values[key] = value; + } + } + } + + private static void SetOptionalAliases(IDictionary values, string? value, params string[] keys) + { + if (!string.IsNullOrWhiteSpace(value)) + { + SetAliases(values, value, keys); + } + } + + private static void SetRankAliases( + IDictionary values, + IReadOnlyDictionary sceneVariables, + string rankDisplay, + string rankImagePath, + params string[] keys) + { + foreach (var key in keys) + { + if (string.IsNullOrWhiteSpace(key)) + { + continue; + } + + if (sceneVariables.Count > 0 && + sceneVariables.TryGetValue(key, out var variable) && + variable.Kind == KarismaSceneVariableKind.Image && + !string.IsNullOrWhiteSpace(rankImagePath)) + { + values[key] = rankImagePath; + continue; + } + + values[key] = rankDisplay; + } + } + + private static Dictionary FilterValuesForScene( + Dictionary values, + IReadOnlyDictionary sceneVariables) + { + if (sceneVariables.Count == 0) + { + return values; + } + + return values + .Where(pair => sceneVariables.ContainsKey(pair.Key)) + .ToDictionary(pair => pair.Key, pair => pair.Value, StringComparer.OrdinalIgnoreCase); + } + + private static string ResolveAssetAcrossRoots(string t3CutPath, string templateFolderPath, IEnumerable relativePaths) + { + var candidates = relativePaths + .Where(path => !string.IsNullOrWhiteSpace(path)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToArray(); + + if (candidates.Length == 0) + { + return string.Empty; + } + + foreach (var root in BuildAssetRoots(t3CutPath, templateFolderPath)) + { + foreach (var relativePath in candidates) + { + var fullPath = Path.Combine(root, relativePath); + if (File.Exists(fullPath)) + { + return fullPath; + } } } return string.Empty; } + private static IReadOnlyList BuildAssetRoots(string t3CutPath, string templateFolderPath) + { + var roots = new List(); + var seen = new HashSet(StringComparer.OrdinalIgnoreCase); + + AddRoot(templateFolderPath); + + var current = templateFolderPath; + while (!string.IsNullOrWhiteSpace(current)) + { + var parent = Path.GetDirectoryName(current); + if (string.IsNullOrWhiteSpace(parent) || + !parent.StartsWith(t3CutPath, StringComparison.OrdinalIgnoreCase)) + { + break; + } + + AddRoot(parent); + current = parent; + } + + if (Directory.Exists(t3CutPath)) + { + foreach (var directory in Directory.GetDirectories(t3CutPath)) + { + AddRoot(directory); + } + } + + return roots; + + void AddRoot(string? path) + { + if (string.IsNullOrWhiteSpace(path) || !Directory.Exists(path)) + { + return; + } + + var normalizedPath = Path.GetFullPath(path); + if (seen.Add(normalizedPath)) + { + roots.Add(normalizedPath); + } + } + } + + private static IEnumerable GetPartyFileNameCandidates(string partyName) + { + var trimmed = partyName.Trim(); + if (string.IsNullOrWhiteSpace(trimmed)) + { + yield break; + } + + yield return trimmed; + + var noSpaces = trimmed.Replace(" ", string.Empty); + if (!string.Equals(noSpaces, trimmed, StringComparison.Ordinal)) + { + yield return noSpaces; + } + + if (string.Equals(trimmed, "무소속", StringComparison.Ordinal)) + { + yield return "무소속기타"; + } + } + + private enum PartyAssetKind + { + Bar, + Plate, + Symbol, + Group + } + private readonly record struct KarismaChannelBinding(int OutputChannelIndex, int LayerNo); private readonly record struct ResolvedScene(string Path, string Alias); diff --git a/Tornado3_2026Election/Services/TornadoManager.cs b/Tornado3_2026Election/Services/TornadoManager.cs index b68a027..8a92925 100644 --- a/Tornado3_2026Election/Services/TornadoManager.cs +++ b/Tornado3_2026Election/Services/TornadoManager.cs @@ -89,7 +89,11 @@ public sealed class TornadoManager : IDisposable }, cancellationToken); } - public Task ApplyValuesAsync(string sceneAlias, IReadOnlyDictionary values, CancellationToken cancellationToken) + public Task ApplyValuesAsync( + string sceneAlias, + IReadOnlyDictionary values, + IReadOnlyList counterNumberKeys, + CancellationToken cancellationToken) { return _dispatcher.InvokeAsync(() => { @@ -122,6 +126,32 @@ public sealed class TornadoManager : IDisposable _logService.Warning($"Karisma object update skipped: scene={sceneAlias} object={pair.Key} reason={ex.Message}"); } } + + foreach (var counterNumberKey in counterNumberKeys) + { + if (string.IsNullOrWhiteSpace(counterNumberKey.ObjectName)) + { + continue; + } + + try + { + var sceneObject = scene.GetObject(counterNumberKey.ObjectName); + if (sceneObject is not IKACounter counter) + { + _logService.Warning( + $"Karisma counter update skipped: scene={sceneAlias} object={counterNumberKey.ObjectName} reason=object is not a counter"); + continue; + } + + counter.SetCounterNumberKey(counterNumberKey.KeyIndex, counterNumberKey.Number); + } + catch (Exception ex) + { + _logService.Warning( + $"Karisma counter update skipped: scene={sceneAlias} object={counterNumberKey.ObjectName} keyIndex={counterNumberKey.KeyIndex} reason={ex.Message}"); + } + } } finally { diff --git a/Tornado3_2026Election/ViewModels/DataViewModel.cs b/Tornado3_2026Election/ViewModels/DataViewModel.cs index 1afd893..667f939 100644 --- a/Tornado3_2026Election/ViewModels/DataViewModel.cs +++ b/Tornado3_2026Election/ViewModels/DataViewModel.cs @@ -92,9 +92,9 @@ public sealed class DataViewModel : ObservableObject, IDataRefreshGate, IDisposa Candidates = [ - new CandidateEntry { CandidateCode = "A01", Name = "김후보", Party = "미래연합", VoteCount = 312000, VoteRate = 34.8, HasImage = true }, - new CandidateEntry { CandidateCode = "A02", Name = "이후보", Party = "국민실행", VoteCount = 287000, VoteRate = 32.0, HasImage = true }, - new CandidateEntry { CandidateCode = "A03", Name = "이서윤", Party = "정의미래", VoteCount = 168000, VoteRate = 18.7, HasImage = false }, + new CandidateEntry { CandidateCode = "A01", Name = "김후보", Party = "더불어민주당", VoteCount = 312000, VoteRate = 34.8, HasImage = true }, + new CandidateEntry { CandidateCode = "A02", Name = "이후보", Party = "국민의힘", VoteCount = 287000, VoteRate = 32.0, HasImage = true }, + new CandidateEntry { CandidateCode = "A03", Name = "이서윤", Party = "개혁신당", VoteCount = 168000, VoteRate = 18.7, HasImage = false }, new CandidateEntry { CandidateCode = "A04", Name = "정민석", Party = "무소속", VoteCount = 129000, VoteRate = 14.5, HasImage = true } ]; diff --git a/tools/KarismaSceneCatalogNet48/KarismaSceneCatalogNet48.csproj b/tools/KarismaSceneCatalogNet48/KarismaSceneCatalogNet48.csproj new file mode 100644 index 0000000..f6200cd --- /dev/null +++ b/tools/KarismaSceneCatalogNet48/KarismaSceneCatalogNet48.csproj @@ -0,0 +1,22 @@ + + + Exe + net48 + x64 + disable + disable + latest + + + + C:\Karisma SDK + + + + + $(KarismaSdkDir)\Bin\C#\Interop.KAsyncEngineLib.dll + false + true + + + diff --git a/tools/KarismaSceneCatalogNet48/Program.cs b/tools/KarismaSceneCatalogNet48/Program.cs new file mode 100644 index 0000000..e5e6f81 --- /dev/null +++ b/tools/KarismaSceneCatalogNet48/Program.cs @@ -0,0 +1,597 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net.Sockets; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using KAsyncEngineLib; + +namespace KarismaSceneCatalogNet48; + +internal static class Program +{ + [STAThread] + private static int Main(string[] args) + { + try + { + var options = CatalogOptions.Parse(args); + var session = new CatalogSession(options); + return session.Run(); + } + catch (Exception ex) + { + Console.Error.WriteLine(ex); + return 1; + } + } +} + +internal sealed class CatalogSession +{ + private readonly CatalogOptions _options; + private readonly CatalogEventHandler _handler; + private readonly List _entries = new List(); + private readonly List _failures = new List(); + + private IKAEngine _engine; + private IKAScene _sceneToQueryOnLoad; + + private bool _connectReceived; + private int _connectErrorCode; + private bool _closeReceived; + + private bool _loadReceived; + private eKResult _loadResult; + + private bool _objectInfosReceived; + private ObjectInfosResult _objectInfosResult; + + private bool _unloadReceived; + + public CatalogSession(CatalogOptions options) + { + _options = options; + _handler = new CatalogEventHandler(this); + _engine = (IKAEngine)new KAEngineClass(); + } + + public int Run() + { + Console.WriteLine( + "Karisma scene catalog starting. target={0}:{1} root={2} output={3}", + _options.Host, + _options.Port, + _options.RootPath, + _options.OutputPath); + + if (!ProbeRawTcp()) + { + return 1; + } + + Console.WriteLine("[CATALOG48] Calling Connect()..."); + var connectRequested = _engine.Connect(_options.Host, _options.Port, _handler); + Console.WriteLine("[CATALOG48] Connect() returned {0} raw={1}", connectRequested != 0 ? "TRUE" : "FALSE", connectRequested); + if (connectRequested == 0) + { + return 1; + } + + if (!WaitWithMessagePump(() => _connectReceived, _options.Timeout)) + { + Console.WriteLine("[CATALOG48] OnConnect timed out."); + return 1; + } + + if (_connectErrorCode != 0) + { + Console.WriteLine("[CATALOG48] OnConnect errorCode={0}", _connectErrorCode); + return 1; + } + + var scenePaths = Directory + .EnumerateFiles(_options.RootPath, "*.tscn", SearchOption.AllDirectories) + .Where(path => string.IsNullOrWhiteSpace(_options.SceneFilter) || + path.IndexOf(_options.SceneFilter, StringComparison.OrdinalIgnoreCase) >= 0) + .OrderBy(path => path, StringComparer.OrdinalIgnoreCase) + .Take(_options.MaxScenes > 0 ? _options.MaxScenes : int.MaxValue) + .ToArray(); + + Console.WriteLine("[CATALOG48] Scene count={0}", scenePaths.Length); + + for (var index = 0; index < scenePaths.Length; index++) + { + var scenePath = scenePaths[index]; + var sceneAlias = string.Format("catalog48_{0:D4}", index); + Console.WriteLine("[CATALOG48] ({0}/{1}) {2}", index + 1, scenePaths.Length, scenePath); + + ResetSceneState(); + + IKAScene scene = null; + try + { + scene = _engine.LoadScene(scenePath, sceneAlias); + if (scene == null) + { + _failures.Add(new SceneCatalogFailure(scenePath, "LoadScene returned null.")); + continue; + } + + _sceneToQueryOnLoad = scene; + + if (!WaitWithMessagePump(() => _loadReceived, _options.Timeout)) + { + _failures.Add(new SceneCatalogFailure(scenePath, "OnLoadScene timed out.")); + continue; + } + + if (_loadResult != eKResult.RESULT_SUCCESS) + { + _failures.Add(new SceneCatalogFailure(scenePath, "OnLoadScene result=" + _loadResult)); + TryUnload(scene); + continue; + } + + if (!WaitWithMessagePump(() => _objectInfosReceived, _options.Timeout)) + { + _failures.Add(new SceneCatalogFailure(scenePath, "OnQueryObjectInfos timed out.")); + TryUnload(scene); + continue; + } + + if (_objectInfosResult.Result != eKResult.RESULT_SUCCESS) + { + _failures.Add(new SceneCatalogFailure( + scenePath, + string.IsNullOrWhiteSpace(_objectInfosResult.Detail) + ? "OnQueryObjectInfos result=" + _objectInfosResult.Result + : "OnQueryObjectInfos result=" + _objectInfosResult.Result + " detail=" + _objectInfosResult.Detail)); + TryUnload(scene); + continue; + } + + _entries.Add(new SceneCatalogEntry( + scenePath, + Path.GetRelativePath(_options.RootPath, scenePath), + _objectInfosResult.Objects)); + + TryUnload(scene); + } + catch (Exception ex) + { + _failures.Add(new SceneCatalogFailure(scenePath, ex.Message)); + if (scene != null) + { + TryUnload(scene); + } + } + } + + WriteMarkdown(); + + try + { + _engine.Disconnect(); + WaitWithMessagePump(() => _closeReceived, TimeSpan.FromSeconds(2)); + } + catch + { + } + + Console.WriteLine(); + Console.WriteLine("Summary"); + Console.WriteLine("- Scenes Found: {0}", scenePaths.Length); + Console.WriteLine("- Scenes Cataloged: {0}", _entries.Count); + Console.WriteLine("- Failures: {0}", _failures.Count); + Console.WriteLine("- Output: {0}", _options.OutputPath); + return _failures.Count == 0 ? 0 : 1; + } + + public void HandleConnect(int errorCode) + { + _connectReceived = true; + _connectErrorCode = errorCode; + Console.WriteLine("[SDK] OnConnect errorCode={0}", errorCode); + } + + public void HandleClose(int errorCode) + { + _closeReceived = true; + Console.WriteLine("[SDK] OnClose errorCode={0}", errorCode); + } + + public void HandleLoadScene(eKResult result, string sceneName) + { + _loadReceived = true; + _loadResult = result; + Console.WriteLine("[SDK] OnLoadScene result={0} scene={1}", result, sceneName); + + if (result != eKResult.RESULT_SUCCESS || _sceneToQueryOnLoad == null) + { + return; + } + + try + { + _sceneToQueryOnLoad.QueryObjectInfos(); + } + catch (Exception ex) + { + _objectInfosReceived = true; + _objectInfosResult = new ObjectInfosResult(eKResult.RESULT_FAILURE, sceneName, new List(), ex.Message); + } + finally + { + _sceneToQueryOnLoad = null; + } + } + + public void HandleQueryObjectInfos(eKResult result, string sceneName, KAObjectInfos objectInfos) + { + var objects = new List(); + try + { + if (result == eKResult.RESULT_SUCCESS) + { + var count = objectInfos.GetCount(); + for (var index = 0; index < count; index++) + { + var info = objectInfos.GetObjectInfo(index); + objects.Add(new SceneObjectInfo( + info.Name ?? string.Empty, + info.ObjectType, + info.Value ?? string.Empty, + info.bVisible != 0)); + } + } + + Console.WriteLine("[SDK] OnQueryObjectInfos result={0} scene={1} count={2}", result, sceneName, objects.Count); + _objectInfosResult = new ObjectInfosResult(result, sceneName, objects, string.Empty); + } + catch (Exception ex) + { + _objectInfosResult = new ObjectInfosResult(eKResult.RESULT_FAILURE, sceneName, objects, ex.Message); + } + finally + { + _objectInfosReceived = true; + } + } + + public void HandleUnloadScene(eKResult result, string sceneName) + { + _unloadReceived = true; + Console.WriteLine("[SDK] OnUnloadScene result={0} scene={1}", result, sceneName); + } + + private bool ProbeRawTcp() + { + try + { + using (var client = new TcpClient()) + { + var asyncResult = client.BeginConnect(_options.Host, _options.Port, null, null); + if (!asyncResult.AsyncWaitHandle.WaitOne(_options.Timeout)) + { + Console.WriteLine("[RAW] Failed: timeout"); + return false; + } + + client.EndConnect(asyncResult); + Console.WriteLine("[RAW] Connected local={0} remote={1}", client.Client.LocalEndPoint, client.Client.RemoteEndPoint); + return true; + } + } + catch (Exception ex) + { + Console.WriteLine("[RAW] Failed: {0}", ex.Message); + return false; + } + } + + private void ResetSceneState() + { + _sceneToQueryOnLoad = null; + _loadReceived = false; + _loadResult = eKResult.RESULT_FAILURE; + _objectInfosReceived = false; + _objectInfosResult = new ObjectInfosResult(eKResult.RESULT_FAILURE, string.Empty, new List(), string.Empty); + _unloadReceived = false; + } + + private void TryUnload(IKAScene scene) + { + try + { + _unloadReceived = false; + scene.UnloadScene(); + WaitWithMessagePump(() => _unloadReceived, TimeSpan.FromSeconds(2)); + } + catch + { + } + } + + private void WriteMarkdown() + { + var outputDirectory = Path.GetDirectoryName(_options.OutputPath); + if (!string.IsNullOrWhiteSpace(outputDirectory)) + { + Directory.CreateDirectory(outputDirectory); + } + + using (var writer = new StreamWriter(_options.OutputPath, false, new UTF8Encoding(false))) + { + writer.WriteLine("# Scene Object Catalog"); + writer.WriteLine(); + writer.WriteLine("- Generated: {0:yyyy-MM-dd HH:mm:ss}", DateTime.Now); + writer.WriteLine("- Root: `{0}`", _options.RootPath); + writer.WriteLine("- Scene Count: {0}", _entries.Count); + writer.WriteLine("- Failure Count: {0}", _failures.Count); + writer.WriteLine(); + + if (_failures.Count > 0) + { + writer.WriteLine("## Failures"); + writer.WriteLine(); + foreach (var failure in _failures) + { + writer.WriteLine("- `{0}`: {1}", failure.ScenePath, EscapeCell(failure.Reason)); + } + + writer.WriteLine(); + } + + writer.WriteLine("## Scenes"); + writer.WriteLine(); + foreach (var entry in _entries) + { + writer.WriteLine("### `{0}`", entry.RelativePath); + writer.WriteLine(); + writer.WriteLine("- Object Count: {0}", entry.Objects.Count); + writer.WriteLine(); + writer.WriteLine("| Name | Type | Value | Visible |"); + writer.WriteLine("| --- | --- | --- | --- |"); + foreach (var obj in entry.Objects) + { + writer.WriteLine( + "| {0} | {1} | {2} | {3} |", + EscapeCell(obj.Name), + obj.ObjectType, + EscapeCell(obj.Value), + obj.Visible ? "true" : "false"); + } + + writer.WriteLine(); + } + } + } + + private static bool WaitWithMessagePump(Func condition, TimeSpan timeout) + { + User32.PeekMessage(out _, IntPtr.Zero, 0, 0, 0); + + var deadline = DateTime.UtcNow + timeout; + while (!condition()) + { + while (User32.PeekMessage(out var message, IntPtr.Zero, 0, 0, 1)) + { + User32.TranslateMessage(ref message); + User32.DispatchMessage(ref message); + } + + if (DateTime.UtcNow >= deadline) + { + return false; + } + + Thread.Sleep(10); + } + + return true; + } + + private static string EscapeCell(string value) + { + if (string.IsNullOrEmpty(value)) + { + return string.Empty; + } + + return value.Replace("\\", "\\\\") + .Replace("|", "\\|") + .Replace("\r", " ") + .Replace("\n", "
"); + } +} + +internal sealed class CatalogEventHandler : KAEventHandler +{ + private readonly CatalogSession _owner; + + public CatalogEventHandler(CatalogSession owner) + { + _owner = owner; + } + + public void OnConnect(int errorCode) => _owner.HandleConnect(errorCode); + + public void OnClose(int errorCode) => _owner.HandleClose(errorCode); + + public void OnLoadScene(eKResult result, string sceneName) => _owner.HandleLoadScene(result, sceneName); + + public void OnUnloadScene(eKResult result, string sceneName) => _owner.HandleUnloadScene(result, sceneName); + + public void OnQueryObjectInfos(eKResult result, string sceneName, KAObjectInfos objectInfos) => + _owner.HandleQueryObjectInfos(result, sceneName, objectInfos); +} + +internal sealed class CatalogOptions +{ + public string Host { get; private set; } + public int Port { get; private set; } + public TimeSpan Timeout { get; private set; } + public string RootPath { get; private set; } + public string OutputPath { get; private set; } + public string SceneFilter { get; private set; } + public int MaxScenes { get; private set; } + + private CatalogOptions() + { + Host = "127.0.0.1"; + Port = 30001; + Timeout = TimeSpan.FromSeconds(5); + RootPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), + "Tornado3 Data", + "T3_Cut", + "T3_Cut"); + OutputPath = Path.Combine(Environment.CurrentDirectory, "SCENE_OBJECT_CATALOG.md"); + SceneFilter = string.Empty; + MaxScenes = 0; + } + + public static CatalogOptions Parse(string[] args) + { + var options = new CatalogOptions(); + + for (var index = 0; index < args.Length; index++) + { + switch (args[index]) + { + case "--host" when index + 1 < args.Length: + options.Host = args[++index]; + break; + case "--port" when index + 1 < args.Length && int.TryParse(args[index + 1], out var port): + options.Port = port; + index++; + break; + case "--timeout" when index + 1 < args.Length && double.TryParse(args[index + 1], out var timeoutSeconds): + options.Timeout = TimeSpan.FromSeconds(timeoutSeconds); + index++; + break; + case "--root" when index + 1 < args.Length: + options.RootPath = Path.GetFullPath(args[++index]); + break; + case "--output" when index + 1 < args.Length: + options.OutputPath = Path.GetFullPath(args[++index]); + break; + case "--filter" when index + 1 < args.Length: + options.SceneFilter = args[++index]; + break; + case "--max-scenes" when index + 1 < args.Length && int.TryParse(args[index + 1], out var maxScenes): + options.MaxScenes = maxScenes; + index++; + break; + } + } + + if (!Directory.Exists(options.RootPath)) + { + throw new DirectoryNotFoundException("Catalog root path does not exist: " + options.RootPath); + } + + return options; + } +} + +internal sealed class SceneCatalogEntry +{ + public SceneCatalogEntry(string scenePath, string relativePath, IReadOnlyList objects) + { + ScenePath = scenePath; + RelativePath = relativePath; + Objects = objects; + } + + public string ScenePath { get; } + + public string RelativePath { get; } + + public IReadOnlyList Objects { get; } +} + +internal sealed class SceneCatalogFailure +{ + public SceneCatalogFailure(string scenePath, string reason) + { + ScenePath = scenePath; + Reason = reason; + } + + public string ScenePath { get; } + + public string Reason { get; } +} + +internal sealed class SceneObjectInfo +{ + public SceneObjectInfo(string name, eKObjectType objectType, string value, bool visible) + { + Name = name; + ObjectType = objectType; + Value = value; + Visible = visible; + } + + public string Name { get; } + + public eKObjectType ObjectType { get; } + + public string Value { get; } + + public bool Visible { get; } +} + +internal sealed class ObjectInfosResult +{ + public ObjectInfosResult(eKResult result, string sceneName, IReadOnlyList objects, string detail) + { + Result = result; + SceneName = sceneName; + Objects = objects; + Detail = detail; + } + + public eKResult Result { get; } + + public string SceneName { get; } + + public IReadOnlyList Objects { get; } + + public string Detail { get; } +} + +[StructLayout(LayoutKind.Sequential)] +internal struct NativeMessage +{ + public IntPtr hwnd; + public uint message; + public UIntPtr wParam; + public IntPtr lParam; + public uint time; + public NativePoint pt; + public uint lPrivate; +} + +[StructLayout(LayoutKind.Sequential)] +internal struct NativePoint +{ + public int x; + public int y; +} + +internal static class User32 +{ + [DllImport("user32.dll")] + internal static extern bool PeekMessage(out NativeMessage lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax, uint wRemoveMsg); + + [DllImport("user32.dll")] + internal static extern bool TranslateMessage([In] ref NativeMessage lpMsg); + + [DllImport("user32.dll")] + internal static extern IntPtr DispatchMessage([In] ref NativeMessage lpmsg); +} diff --git a/tools/KarismaTcpProbe/Program.cs b/tools/KarismaTcpProbe/Program.cs index 79b5cd4..7c9a254 100644 --- a/tools/KarismaTcpProbe/Program.cs +++ b/tools/KarismaTcpProbe/Program.cs @@ -1,10 +1,124 @@ using System; using System.Net.Sockets; using System.Runtime.InteropServices; +using System.Text.Json; using System.Threading; using System.Threading.Tasks; using KAsyncEngineLib; +if (args.Length > 0 && string.Equals(args[0], "--reflect-api", StringComparison.OrdinalIgnoreCase)) +{ + PrintApiSurface(); + return; +} + +if (args.Length > 0 && string.Equals(args[0], "--test-counter", StringComparison.OrdinalIgnoreCase)) +{ + var counterOptions = CounterProbeOptions.Parse(args[1..]); + Console.WriteLine( + $"Karisma counter probe starting. target={counterOptions.Connection.Host}:{counterOptions.Connection.Port} " + + $"scene={counterOptions.ScenePath} object={counterOptions.ObjectName} keyIndex={counterOptions.KeyIndex} value={counterOptions.Number:0.###}"); + var counterResult = await ProbeCounterAsync(counterOptions).ConfigureAwait(false); + + Console.WriteLine(); + Console.WriteLine("Summary"); + Console.WriteLine($"- SDK Connect(): {(counterResult.ConnectRequestAccepted ? "ACCEPTED" : "REJECTED")}"); + Console.WriteLine($"- Scene Load: {counterResult.SceneLoadOutcome}"); + Console.WriteLine($"- Counter Update: {counterResult.CounterOutcome}"); + Console.WriteLine($"- Detail: {counterResult.Detail}"); + Environment.ExitCode = counterResult.ConnectRequestAccepted && + counterResult.SceneLoadOutcome == "SUCCESS" && + counterResult.CounterOutcome == "SUCCESS" + ? 0 + : 1; + return; +} + +if (args.Length > 0 && string.Equals(args[0], "--catalog-scenes", StringComparison.OrdinalIgnoreCase)) +{ + var catalogOptions = SceneCatalogOptions.Parse(args[1..]); + Console.WriteLine( + $"Karisma scene catalog starting. target={catalogOptions.Connection.Host}:{catalogOptions.Connection.Port} " + + $"root={catalogOptions.RootPath} output={catalogOptions.OutputPath}"); + var catalogResult = await CatalogScenesAsync(catalogOptions).ConfigureAwait(false); + + Console.WriteLine(); + Console.WriteLine("Summary"); + Console.WriteLine($"- SDK Connect(): {(catalogResult.ConnectRequestAccepted ? "ACCEPTED" : "REJECTED")}"); + Console.WriteLine($"- Scenes Found: {catalogResult.SceneCount}"); + Console.WriteLine($"- Scenes Cataloged: {catalogResult.CatalogedCount}"); + Console.WriteLine($"- Failures: {catalogResult.Failures.Count}"); + Console.WriteLine($"- Output: {catalogResult.OutputPath}"); + if (catalogResult.Failures.Count > 0) + { + Console.WriteLine("- Failure Details:"); + foreach (var failure in catalogResult.Failures.Take(20)) + { + Console.WriteLine($" - {failure.ScenePath}: {failure.Reason}"); + } + } + + Environment.ExitCode = catalogResult.ConnectRequestAccepted && catalogResult.Failures.Count == 0 + ? 0 + : 1; + return; +} + +if (args.Length > 0 && string.Equals(args[0], "--validate-scene-values", StringComparison.OrdinalIgnoreCase)) +{ + var validationOptions = SceneValidationOptions.Parse(args[1..]); + Console.WriteLine( + $"Karisma scene validation starting. target={validationOptions.Connection.Host}:{validationOptions.Connection.Port} " + + $"scene={validationOptions.ScenePath} ops={validationOptions.OperationsPath} output={validationOptions.OutputPath}"); + var validationResult = await ValidateSceneOperationsAsync(validationOptions).ConfigureAwait(false); + + Console.WriteLine(); + Console.WriteLine("Summary"); + Console.WriteLine($"- SDK Connect(): {(validationResult.ConnectRequestAccepted ? "ACCEPTED" : "REJECTED")}"); + Console.WriteLine($"- Scene Load: {validationResult.SceneLoadOutcome}"); + Console.WriteLine($"- Success Count: {validationResult.SuccessCount}"); + Console.WriteLine($"- Failure Count: {validationResult.FailureCount}"); + Console.WriteLine($"- Output: {validationResult.OutputPath}"); + if (!string.IsNullOrWhiteSpace(validationResult.Detail)) + { + Console.WriteLine($"- Detail: {validationResult.Detail}"); + } + + Environment.ExitCode = validationResult.ConnectRequestAccepted && + validationResult.SceneLoadOutcome == "SUCCESS" && + validationResult.FailureCount == 0 + ? 0 + : 1; + return; +} + +if (args.Length > 0 && string.Equals(args[0], "--inspect-tscn-folder", StringComparison.OrdinalIgnoreCase)) +{ + var inspectionOptions = FolderInspectionOptions.Parse(args[1..]); + Console.WriteLine( + $"Karisma tscn inspection starting. target={inspectionOptions.Connection.Host}:{inspectionOptions.Connection.Port} " + + $"root={inspectionOptions.RootPath} output={inspectionOptions.OutputPath}"); + var inspectionResult = await InspectTscnFolderAsync(inspectionOptions).ConfigureAwait(false); + + Console.WriteLine(); + Console.WriteLine("Summary"); + Console.WriteLine($"- SDK Connect(): {(inspectionResult.ConnectRequestAccepted ? "ACCEPTED" : "REJECTED")}"); + Console.WriteLine($"- Scenes Found: {inspectionResult.SceneCount}"); + Console.WriteLine($"- Scenes Processed: {inspectionResult.ProcessedSceneCount}"); + Console.WriteLine($"- Variables Found: {inspectionResult.DiscoveredVariableCount}"); + Console.WriteLine($"- Failures: {inspectionResult.FailureCount}"); + Console.WriteLine($"- Output: {inspectionResult.OutputPath}"); + if (!string.IsNullOrWhiteSpace(inspectionResult.Detail)) + { + Console.WriteLine($"- Detail: {inspectionResult.Detail}"); + } + + Environment.ExitCode = inspectionResult.ConnectRequestAccepted && inspectionResult.FailureCount == 0 + ? 0 + : 1; + return; +} + var options = ProbeOptions.Parse(args); Console.WriteLine($"Karisma TCP probe starting. target={options.Host}:{options.Port} timeout={options.Timeout.TotalSeconds:0}s"); @@ -23,6 +137,67 @@ Environment.ExitCode = rawTcpOk && sdkResult.ConnectRequestAccepted && sdkResult ? 0 : 1; +static void PrintApiSurface() +{ + PrintTypeMethods(typeof(IKAObject)); + PrintTypeMethods(typeof(KAObject)); + PrintTypeMethods(typeof(IKAScene)); + PrintTypeMethods(typeof(KAScene)); + PrintTypeMethods(typeof(IKAEngine)); + PrintTypeMethods(typeof(KAEngine)); + PrintTypeMethods(typeof(IKACounter)); + PrintTypeMethods(typeof(KACounter)); + PrintTypeMethods(typeof(IKAObjectInfos)); + PrintTypeMethods(typeof(KAObjectInfos)); + PrintStructFields(typeof(sKObjectInfo)); + PrintEnumValues(typeof(eKObjectType)); +} + +static void PrintTypeMethods(Type type) +{ + Console.WriteLine(type.FullName); + foreach (var method in type.GetMethods()) + { + if (!method.Name.Contains("Counter", StringComparison.OrdinalIgnoreCase) && + !string.Equals(method.Name, "SetValue", StringComparison.OrdinalIgnoreCase) && + !method.Name.Contains("GetObject", StringComparison.OrdinalIgnoreCase) && + !method.Name.Contains("QueryObjectInfos", StringComparison.OrdinalIgnoreCase) && + !method.Name.Contains("GetCount", StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + var parameters = string.Join( + ", ", + method.GetParameters().Select(parameter => $"{parameter.ParameterType.Name} {parameter.Name}")); + Console.WriteLine($"- {method.ReturnType.Name} {method.Name}({parameters})"); + } + + Console.WriteLine(); +} + +static void PrintStructFields(Type type) +{ + Console.WriteLine(type.FullName); + foreach (var field in type.GetFields()) + { + Console.WriteLine($"- {field.FieldType.Name} {field.Name}"); + } + + Console.WriteLine(); +} + +static void PrintEnumValues(Type type) +{ + Console.WriteLine(type.FullName); + foreach (var name in Enum.GetNames(type)) + { + Console.WriteLine($"- {name}"); + } + + Console.WriteLine(); +} + static async Task ProbeRawTcpAsync(ProbeOptions options) { try @@ -40,6 +215,917 @@ static async Task ProbeRawTcpAsync(ProbeOptions options) } } +static Task ProbeCounterAsync(CounterProbeOptions options) +{ + var completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var thread = new Thread(() => + { + try + { + var handler = new ProbeEventHandler(); + var engine = (IKAEngine)new KAEngineClass(); + + Console.WriteLine("[COUNTER] Calling Connect()..."); + var connectRequested = engine.Connect(options.Connection.Host, options.Connection.Port, handler); + Console.WriteLine($"[COUNTER] Connect() returned {(connectRequested != 0 ? "TRUE" : "FALSE")} raw={connectRequested}"); + if (connectRequested == 0) + { + completion.TrySetResult(new CounterProbeResult(false, "NOT_RUN", "NOT_RUN", "Connect() returned 0.")); + return; + } + + if (!WaitForTaskWithMessagePump(handler.ConnectTask, options.Connection.Timeout)) + { + completion.TrySetResult(new CounterProbeResult(true, "NOT_RUN", "TIMEOUT", "OnConnect timed out.")); + return; + } + + if (handler.ConnectTask.Result != 0) + { + completion.TrySetResult( + new CounterProbeResult(true, "NOT_RUN", "FAILED", $"OnConnect errorCode={handler.ConnectTask.Result}")); + return; + } + + Console.WriteLine("[COUNTER] Loading scene..."); + var scene = engine.LoadScene(options.ScenePath, options.SceneAlias); + if (scene is null) + { + completion.TrySetResult(new CounterProbeResult(true, "FAILED", "NOT_RUN", "LoadScene returned null.")); + return; + } + + if (!WaitForTaskWithMessagePump(handler.LoadSceneTask, options.Connection.Timeout)) + { + completion.TrySetResult(new CounterProbeResult(true, "TIMEOUT", "NOT_RUN", "OnLoadScene timed out.")); + return; + } + + var loadSceneResult = handler.LoadSceneTask.Result; + if (loadSceneResult != eKResult.RESULT_SUCCESS) + { + completion.TrySetResult( + new CounterProbeResult(true, loadSceneResult.ToString(), "NOT_RUN", $"OnLoadScene result={loadSceneResult}")); + return; + } + + Console.WriteLine("[COUNTER] Resolving object..."); + var sceneObject = scene.GetObject(options.ObjectName); + if (sceneObject is not IKACounter counter) + { + completion.TrySetResult( + new CounterProbeResult(true, "SUCCESS", "FAILED", $"Object '{options.ObjectName}' is not an IKACounter.")); + return; + } + + Console.WriteLine("[COUNTER] Calling SetCounterNumberKey()..."); + counter.SetCounterNumberKey(options.KeyIndex, options.Number); + + if (!WaitForTaskWithMessagePump(handler.CounterNumberKeyTask, options.Connection.Timeout)) + { + completion.TrySetResult( + new CounterProbeResult(true, "SUCCESS", "TIMEOUT", "OnSetCounterNumberKey timed out.")); + return; + } + + var counterResult = handler.CounterNumberKeyTask.Result; + completion.TrySetResult( + new CounterProbeResult( + true, + "SUCCESS", + counterResult == eKResult.RESULT_SUCCESS ? "SUCCESS" : counterResult.ToString(), + $"OnSetCounterNumberKey result={counterResult}")); + + try + { + engine.Disconnect(); + handler.CloseTask.Wait(TimeSpan.FromSeconds(2)); + } + catch + { + } + } + catch (Exception ex) + { + completion.TrySetResult(new CounterProbeResult(false, "EXCEPTION", "EXCEPTION", ex.ToString())); + } + }) + { + IsBackground = true, + Name = "KarismaCounterProbe" + }; + + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + return completion.Task; +} + +static Task CatalogScenesAsync(SceneCatalogOptions options) +{ + var completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var thread = new Thread(() => + { + var entries = new List(); + var failures = new List(); + + try + { + var handler = new ProbeEventHandler(); + var engine = (IKAEngine)new KAEngineClass(); + + Console.WriteLine("[CATALOG] Calling Connect()..."); + var connectRequested = engine.Connect(options.Connection.Host, options.Connection.Port, handler); + Console.WriteLine($"[CATALOG] Connect() returned {(connectRequested != 0 ? "TRUE" : "FALSE")} raw={connectRequested}"); + if (connectRequested == 0) + { + completion.TrySetResult(new SceneCatalogProbeResult(false, 0, 0, options.OutputPath, failures)); + return; + } + + if (!WaitForTaskWithMessagePump(handler.ConnectTask, options.Connection.Timeout)) + { + failures.Add(new SceneCatalogFailure("(connect)", "OnConnect timed out.")); + completion.TrySetResult(new SceneCatalogProbeResult(true, 0, 0, options.OutputPath, failures)); + return; + } + + if (handler.ConnectTask.Result != 0) + { + failures.Add(new SceneCatalogFailure("(connect)", $"OnConnect errorCode={handler.ConnectTask.Result}")); + completion.TrySetResult(new SceneCatalogProbeResult(true, 0, 0, options.OutputPath, failures)); + return; + } + + var scenePaths = Directory + .EnumerateFiles(options.RootPath, "*.tscn", SearchOption.AllDirectories) + .Where(path => string.IsNullOrWhiteSpace(options.SceneFilter) || + path.Contains(options.SceneFilter, StringComparison.OrdinalIgnoreCase)) + .OrderBy(path => path, StringComparer.OrdinalIgnoreCase) + .Take(options.MaxScenes ?? int.MaxValue) + .ToArray(); + + for (var index = 0; index < scenePaths.Length; index++) + { + var scenePath = scenePaths[index]; + var sceneAlias = $"catalog_{index:D4}"; + Console.WriteLine($"[CATALOG] ({index + 1}/{scenePaths.Length}) {scenePath}"); + + try + { + handler.ResetLoadSceneTask(); + handler.ResetObjectInfosTask(); + var scene = engine.LoadScene(scenePath, sceneAlias); + if (scene is null) + { + failures.Add(new SceneCatalogFailure(scenePath, "LoadScene returned null.")); + continue; + } + + handler.ConfigureQueryObjectInfosOnLoad(scene); + + if (!WaitForTaskWithMessagePump(handler.LoadSceneTask, options.Connection.Timeout)) + { + failures.Add(new SceneCatalogFailure(scenePath, "OnLoadScene timed out.")); + continue; + } + + if (handler.LoadSceneTask.Result != eKResult.RESULT_SUCCESS) + { + failures.Add(new SceneCatalogFailure(scenePath, $"OnLoadScene result={handler.LoadSceneTask.Result}")); + TryUnloadScene(handler, scene, options.Connection.Timeout); + continue; + } + + if (!WaitForTaskWithMessagePump(handler.ObjectInfosTask, options.Connection.Timeout)) + { + failures.Add(new SceneCatalogFailure(scenePath, "OnQueryObjectInfos timed out.")); + TryUnloadScene(handler, scene, options.Connection.Timeout); + continue; + } + + var objectInfosResult = handler.ObjectInfosTask.Result; + if (objectInfosResult.Result != eKResult.RESULT_SUCCESS) + { + var reason = string.IsNullOrWhiteSpace(objectInfosResult.Detail) + ? $"OnQueryObjectInfos result={objectInfosResult.Result}" + : $"OnQueryObjectInfos result={objectInfosResult.Result} detail={objectInfosResult.Detail}"; + failures.Add(new SceneCatalogFailure(scenePath, reason)); + TryUnloadScene(handler, scene, options.Connection.Timeout); + continue; + } + + entries.Add(new SceneCatalogEntry( + scenePath, + Path.GetRelativePath(options.RootPath, scenePath), + objectInfosResult.Objects)); + + TryUnloadScene(handler, scene, options.Connection.Timeout); + } + catch (Exception ex) + { + failures.Add(new SceneCatalogFailure(scenePath, ex.Message)); + } + } + + WriteCatalogMarkdown(options, entries, failures); + completion.TrySetResult(new SceneCatalogProbeResult(true, scenePaths.Length, entries.Count, options.OutputPath, failures)); + + try + { + engine.Disconnect(); + handler.CloseTask.Wait(TimeSpan.FromSeconds(2)); + } + catch + { + } + } + catch (Exception ex) + { + failures.Add(new SceneCatalogFailure("(exception)", ex.ToString())); + completion.TrySetResult(new SceneCatalogProbeResult(false, entries.Count + failures.Count, entries.Count, options.OutputPath, failures)); + } + }) + { + IsBackground = true, + Name = "KarismaSceneCatalog" + }; + + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + return completion.Task; +} + +static Task ValidateSceneOperationsAsync(SceneValidationOptions options) +{ + var completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var operations = LoadValidationOperations(options); + + var thread = new Thread(() => + { + try + { + var handler = new ProbeEventHandler(); + var engine = (IKAEngine)new KAEngineClass(); + var results = new List(); + + Console.WriteLine("[VALIDATE] Calling Connect()..."); + var connectRequested = engine.Connect(options.Connection.Host, options.Connection.Port, handler); + Console.WriteLine($"[VALIDATE] Connect() returned {(connectRequested != 0 ? "TRUE" : "FALSE")} raw={connectRequested}"); + if (connectRequested == 0) + { + completion.TrySetResult(new SceneValidationProbeResult(false, "NOT_RUN", 0, operations.Count, options.OutputPath, "Connect() returned 0.")); + return; + } + + if (!WaitForTaskWithMessagePump(handler.ConnectTask, options.Connection.Timeout)) + { + completion.TrySetResult(new SceneValidationProbeResult(true, "NOT_RUN", 0, operations.Count, options.OutputPath, "OnConnect timed out.")); + return; + } + + if (handler.ConnectTask.Result != 0) + { + completion.TrySetResult(new SceneValidationProbeResult(true, "NOT_RUN", 0, operations.Count, options.OutputPath, $"OnConnect errorCode={handler.ConnectTask.Result}")); + return; + } + + handler.ResetLoadSceneTask(); + var scene = engine.LoadScene(options.ScenePath, options.SceneAlias); + if (scene is null) + { + completion.TrySetResult(new SceneValidationProbeResult(true, "FAILED", 0, operations.Count, options.OutputPath, "LoadScene returned null.")); + return; + } + + if (!WaitForTaskWithMessagePump(handler.LoadSceneTask, options.Connection.Timeout)) + { + completion.TrySetResult(new SceneValidationProbeResult(true, "TIMEOUT", 0, operations.Count, options.OutputPath, "OnLoadScene timed out.")); + return; + } + + var loadSceneResult = handler.LoadSceneTask.Result; + if (loadSceneResult != eKResult.RESULT_SUCCESS) + { + completion.TrySetResult( + new SceneValidationProbeResult(true, loadSceneResult.ToString(), 0, operations.Count, options.OutputPath, $"OnLoadScene result={loadSceneResult}")); + return; + } + + foreach (var operation in operations) + { + Console.WriteLine($"[VALIDATE] {operation.Method} object={operation.ObjectName}"); + var sceneObject = scene.GetObject(operation.ObjectName); + if (sceneObject is null) + { + results.Add(new SceneOperationValidationResult( + operation.ObjectName, + operation.Method, + DescribeOperationPayload(operation), + "OBJECT_NOT_FOUND", + "scene.GetObject returned null.")); + continue; + } + + if (string.Equals(operation.Method, "SetCounterNumberKey", StringComparison.OrdinalIgnoreCase)) + { + if (sceneObject is not IKACounter counter) + { + results.Add(new SceneOperationValidationResult( + operation.ObjectName, + operation.Method, + DescribeOperationPayload(operation), + "NOT_A_COUNTER", + "Object does not implement IKACounter.")); + continue; + } + + handler.ResetCounterNumberKeyTask(); + counter.SetCounterNumberKey(operation.KeyIndex, operation.Number); + if (!WaitForTaskWithMessagePump(handler.CounterNumberKeyTask, options.Connection.Timeout)) + { + results.Add(new SceneOperationValidationResult( + operation.ObjectName, + operation.Method, + DescribeOperationPayload(operation), + "TIMEOUT", + "OnSetCounterNumberKey timed out.")); + continue; + } + + var callbackResult = handler.CounterNumberKeyTask.Result; + results.Add(new SceneOperationValidationResult( + operation.ObjectName, + operation.Method, + DescribeOperationPayload(operation), + callbackResult.ToString(), + string.Empty)); + continue; + } + + handler.ResetSetValueTask(); + sceneObject.SetValue(operation.Value ?? string.Empty); + if (!WaitForTaskWithMessagePump(handler.SetValueTask, options.Connection.Timeout)) + { + results.Add(new SceneOperationValidationResult( + operation.ObjectName, + operation.Method, + DescribeOperationPayload(operation), + "TIMEOUT", + "OnSetValue timed out.")); + continue; + } + + var setValueResult = handler.SetValueTask.Result; + results.Add(new SceneOperationValidationResult( + operation.ObjectName, + operation.Method, + DescribeOperationPayload(operation), + setValueResult.ToString(), + string.Empty)); + } + + WriteSceneValidationMarkdown(options, results); + + try + { + scene.UnloadScene(); + } + catch + { + } + + try + { + engine.Disconnect(); + handler.CloseTask.Wait(TimeSpan.FromSeconds(2)); + } + catch + { + } + + completion.TrySetResult(new SceneValidationProbeResult( + true, + "SUCCESS", + results.Count(result => string.Equals(result.Result, eKResult.RESULT_SUCCESS.ToString(), StringComparison.Ordinal)), + results.Count(result => !string.Equals(result.Result, eKResult.RESULT_SUCCESS.ToString(), StringComparison.Ordinal)), + options.OutputPath, + string.Empty)); + } + catch (Exception ex) + { + completion.TrySetResult(new SceneValidationProbeResult(false, "EXCEPTION", 0, operations.Count, options.OutputPath, ex.ToString())); + } + }) + { + IsBackground = true, + Name = "KarismaSceneValidator" + }; + + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + return completion.Task; +} + +static Task InspectTscnFolderAsync(FolderInspectionOptions options) +{ + var completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + var thread = new Thread(() => + { + try + { + var handler = new ProbeEventHandler(); + var engine = (IKAEngine)new KAEngineClass(); + var sceneResults = new List(); + var failures = new List(); + + var imagePngPath = FindFirstFile(options.RootPath, "*.png"); + var imageVrvPath = FindFirstFile(options.RootPath, "*.vrv"); + Console.WriteLine($"[INSPECT] Sample PNG={(imagePngPath ?? "(none)")}"); + Console.WriteLine($"[INSPECT] Sample VRV={(imageVrvPath ?? "(none)")}"); + + Console.WriteLine("[INSPECT] Calling Connect()..."); + var connectRequested = engine.Connect(options.Connection.Host, options.Connection.Port, handler); + Console.WriteLine($"[INSPECT] Connect() returned {(connectRequested != 0 ? "TRUE" : "FALSE")} raw={connectRequested}"); + if (connectRequested == 0) + { + completion.TrySetResult(new FolderInspectionProbeResult(false, 0, 0, 0, 1, options.OutputPath, "Connect() returned 0.")); + return; + } + + if (!WaitForTaskWithMessagePump(handler.ConnectTask, options.Connection.Timeout)) + { + completion.TrySetResult(new FolderInspectionProbeResult(true, 0, 0, 0, 1, options.OutputPath, "OnConnect timed out.")); + return; + } + + if (handler.ConnectTask.Result != 0) + { + completion.TrySetResult(new FolderInspectionProbeResult(true, 0, 0, 0, 1, options.OutputPath, $"OnConnect errorCode={handler.ConnectTask.Result}")); + return; + } + + var scenePaths = Directory + .EnumerateFiles(options.RootPath, "*.tscn", SearchOption.AllDirectories) + .Where(path => string.IsNullOrWhiteSpace(options.SceneFilter) || + path.Contains(options.SceneFilter, StringComparison.OrdinalIgnoreCase)) + .OrderBy(path => path, StringComparer.OrdinalIgnoreCase) + .Take(options.MaxScenes ?? int.MaxValue) + .ToArray(); + + for (var sceneIndex = 0; sceneIndex < scenePaths.Length; sceneIndex++) + { + var scenePath = scenePaths[sceneIndex]; + var sceneAlias = $"inspect_{sceneIndex:D4}"; + Console.WriteLine($"[INSPECT] ({sceneIndex + 1}/{scenePaths.Length}) {scenePath}"); + + try + { + handler.ResetLoadSceneTask(); + var scene = engine.LoadScene(scenePath, sceneAlias); + if (scene is null) + { + failures.Add(new SceneCatalogFailure(scenePath, "LoadScene returned null.")); + continue; + } + + if (!WaitForTaskWithMessagePump(handler.LoadSceneTask, options.Connection.Timeout)) + { + failures.Add(new SceneCatalogFailure(scenePath, "OnLoadScene timed out.")); + TryUnloadScene(handler, scene, options.Connection.Timeout); + continue; + } + + if (handler.LoadSceneTask.Result != eKResult.RESULT_SUCCESS) + { + failures.Add(new SceneCatalogFailure(scenePath, $"OnLoadScene result={handler.LoadSceneTask.Result}")); + TryUnloadScene(handler, scene, options.Connection.Timeout); + continue; + } + + var candidates = ExtractCandidateNames(scenePath); + var discoveries = new List(); + + foreach (var candidate in candidates) + { + KAObject? sceneObject; + try + { + sceneObject = scene.GetObject(candidate); + } + catch + { + continue; + } + + if (sceneObject is null) + { + continue; + } + + var textAttempt = TrySetValueOnObject(handler, sceneObject, "__TCP_VALIDATE__", options.Connection.Timeout); + if (textAttempt == eKResult.RESULT_SUCCESS) + { + discoveries.Add(new SceneVariableDiscovery(candidate, "SetValue", "__TCP_VALIDATE__", textAttempt.ToString())); + continue; + } + + if (textAttempt == eKResult.RESULT_ERROR_NO_VARIABLE_OBJECT) + { + continue; + } + + if (!string.IsNullOrWhiteSpace(imagePngPath)) + { + var pngAttempt = TrySetValueOnObject(handler, sceneObject, imagePngPath, options.Connection.Timeout); + if (pngAttempt == eKResult.RESULT_SUCCESS) + { + discoveries.Add(new SceneVariableDiscovery(candidate, "SetValue", imagePngPath, pngAttempt.ToString())); + continue; + } + } + + if (!string.IsNullOrWhiteSpace(imageVrvPath)) + { + var vrvAttempt = TrySetValueOnObject(handler, sceneObject, imageVrvPath, options.Connection.Timeout); + if (vrvAttempt == eKResult.RESULT_SUCCESS) + { + discoveries.Add(new SceneVariableDiscovery(candidate, "SetValue", imageVrvPath, vrvAttempt.ToString())); + continue; + } + } + + if (sceneObject is IKACounter counter) + { + handler.ResetCounterNumberKeyTask(); + counter.SetCounterNumberKey(1, 1d); + if (!WaitForTaskWithMessagePump(handler.CounterNumberKeyTask, options.Connection.Timeout)) + { + continue; + } + + var counterResult = handler.CounterNumberKeyTask.Result; + if (counterResult == eKResult.RESULT_SUCCESS) + { + discoveries.Add(new SceneVariableDiscovery( + candidate, + "SetCounterNumberKey", + "keyIndex=1, number=1", + counterResult.ToString())); + } + } + } + + sceneResults.Add(new SceneInspectionResult( + scenePath, + Path.GetRelativePath(options.RootPath, scenePath), + candidates.Count, + discoveries.OrderBy(discovery => discovery.VariableName, StringComparer.Ordinal).ToArray())); + + TryUnloadScene(handler, scene, options.Connection.Timeout); + } + catch (Exception ex) + { + failures.Add(new SceneCatalogFailure(scenePath, ex.Message)); + } + } + + WriteFolderInspectionMarkdown(options, sceneResults, failures); + + try + { + engine.Disconnect(); + handler.CloseTask.Wait(TimeSpan.FromSeconds(2)); + } + catch + { + } + + completion.TrySetResult(new FolderInspectionProbeResult( + true, + scenePaths.Length, + sceneResults.Count, + sceneResults.Sum(result => result.Discoveries.Count), + failures.Count, + options.OutputPath, + string.Empty)); + } + catch (Exception ex) + { + completion.TrySetResult(new FolderInspectionProbeResult(false, 0, 0, 0, 1, options.OutputPath, ex.ToString())); + } + }) + { + IsBackground = true, + Name = "KarismaTscnInspector" + }; + + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + return completion.Task; +} + +static eKResult TrySetValueOnObject(ProbeEventHandler handler, KAObject sceneObject, string payload, TimeSpan timeout) +{ + handler.ResetSetValueTask(); + sceneObject.SetValue(payload); + return WaitForTaskWithMessagePump(handler.SetValueTask, timeout) + ? handler.SetValueTask.Result + : eKResult.RESULT_FAILURE; +} + +static string? FindFirstFile(string rootPath, string pattern) +{ + try + { + return Directory.EnumerateFiles(rootPath, pattern, SearchOption.AllDirectories) + .OrderBy(path => path, StringComparer.OrdinalIgnoreCase) + .FirstOrDefault(); + } + catch + { + return null; + } +} + +static IReadOnlyList ExtractCandidateNames(string scenePath) +{ + var data = File.ReadAllBytes(scenePath); + var candidates = new HashSet(StringComparer.Ordinal); + for (var index = 0; index + 8 <= data.Length; index++) + { + var length = BitConverter.ToInt32(data, index); + if (length < 2 || length > 48) + { + continue; + } + + var byteLength = length * 2; + var start = index + 4; + var end = start + byteLength; + if (end > data.Length) + { + continue; + } + + string value; + try + { + value = System.Text.Encoding.Unicode.GetString(data, start, byteLength); + } + catch + { + continue; + } + + if (IsCandidateName(value)) + { + candidates.Add(value); + } + } + + return candidates.OrderBy(value => value, StringComparer.Ordinal).ToArray(); +} + +static bool IsCandidateName(string value) +{ + if (string.IsNullOrWhiteSpace(value)) + { + return false; + } + + var trimmed = value.Trim(); + if (trimmed.Length < 2 || trimmed.Length > 48) + { + return false; + } + + if (trimmed.Contains('\\') || + trimmed.Contains('/') || + trimmed.Contains(':') || + trimmed.Contains('.') || + trimmed.Contains(' ')) + { + return false; + } + + if (trimmed.All(char.IsDigit)) + { + return false; + } + + if (trimmed.StartsWith("OBJECT_TYPE_", StringComparison.Ordinal) || + trimmed.StartsWith("RESULT_", StringComparison.Ordinal) || + trimmed.StartsWith("EFFECT_", StringComparison.Ordinal)) + { + return false; + } + + if (trimmed is "Tornado3" or "Out" or "Default" or "Image" or "Text" or "Counter" or + "Rect" or "Paragraph" or "Char" or "Arial" or "Path" or "Group" or "Change") + { + return false; + } + + return trimmed.All(ch => + ch is >= '0' and <= '9' || + ch is >= 'A' and <= 'Z' || + ch is >= 'a' and <= 'z' || + ch is >= '\uAC00' and <= '\uD7A3' || + ch is '_' or '-'); +} + +static void WriteFolderInspectionMarkdown( + FolderInspectionOptions options, + IReadOnlyList sceneResults, + IReadOnlyList failures) +{ + Directory.CreateDirectory(Path.GetDirectoryName(options.OutputPath)!); + + using var writer = new StreamWriter(options.OutputPath, false, new System.Text.UTF8Encoding(false)); + writer.WriteLine("# TSCN Variable Discovery"); + writer.WriteLine(); + writer.WriteLine($"- Generated: {DateTime.Now:yyyy-MM-dd HH:mm:ss}"); + writer.WriteLine($"- Root: `{options.RootPath}`"); + writer.WriteLine($"- Scene Count: {sceneResults.Count}"); + writer.WriteLine($"- Discovered Variable Count: {sceneResults.Sum(result => result.Discoveries.Count)}"); + writer.WriteLine($"- Failure Count: {failures.Count}"); + writer.WriteLine(); + writer.WriteLine("## Method"); + writer.WriteLine(); + writer.WriteLine("- Candidate names are extracted from each `.tscn` as UTF-16LE strings."); + writer.WriteLine("- Each candidate is verified through Karisma TCP callbacks."); + writer.WriteLine("- `SetValue(__TCP_VALIDATE__)`, valid `.png`, valid `.vrv`, and `SetCounterNumberKey(1, 1)` are tried as applicable."); + writer.WriteLine("- Only callbacks that returned `RESULT_SUCCESS` are listed as discovered variables."); + writer.WriteLine(); + + if (failures.Count > 0) + { + writer.WriteLine("## Failures"); + writer.WriteLine(); + foreach (var failure in failures) + { + writer.WriteLine($"- `{failure.ScenePath}`: {EscapeInline(failure.Reason)}"); + } + + writer.WriteLine(); + } + + writer.WriteLine("## Scenes"); + writer.WriteLine(); + foreach (var sceneResult in sceneResults) + { + writer.WriteLine($"### `{sceneResult.RelativePath}`"); + writer.WriteLine(); + writer.WriteLine($"- Candidate Count: {sceneResult.CandidateCount}"); + writer.WriteLine($"- Discovered Variables: {sceneResult.Discoveries.Count}"); + writer.WriteLine(); + + if (sceneResult.Discoveries.Count == 0) + { + writer.WriteLine("- No variables discovered with the current TCP validation heuristics."); + writer.WriteLine(); + continue; + } + + writer.WriteLine("| Variable | Method | Payload | Result |"); + writer.WriteLine("| --- | --- | --- | --- |"); + foreach (var discovery in sceneResult.Discoveries) + { + writer.WriteLine( + $"| {EscapeCell(discovery.VariableName)} | {EscapeCell(discovery.Method)} | {EscapeCell(discovery.Payload)} | {EscapeCell(discovery.Result)} |"); + } + + writer.WriteLine(); + } +} + +static List LoadValidationOperations(SceneValidationOptions options) +{ + var json = File.ReadAllText(options.OperationsPath); + var operations = JsonSerializer.Deserialize>(json, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }) ?? new List(); + + foreach (var operation in operations) + { + if (!string.IsNullOrWhiteSpace(operation.Value)) + { + operation.Value = operation.Value.Replace("${SCENE_DIR}", Path.GetDirectoryName(options.ScenePath) ?? string.Empty, StringComparison.Ordinal); + } + } + + return operations; +} + +static string DescribeOperationPayload(SceneValidationOperation operation) +{ + return string.Equals(operation.Method, "SetCounterNumberKey", StringComparison.OrdinalIgnoreCase) + ? $"keyIndex={operation.KeyIndex}, number={operation.Number:0.###}" + : operation.Value ?? string.Empty; +} + +static void WriteSceneValidationMarkdown(SceneValidationOptions options, IReadOnlyList results) +{ + Directory.CreateDirectory(Path.GetDirectoryName(options.OutputPath)!); + + using var writer = new StreamWriter(options.OutputPath, false, new System.Text.UTF8Encoding(false)); + writer.WriteLine("# Scene Variable Validation"); + writer.WriteLine(); + writer.WriteLine($"- Generated: {DateTime.Now:yyyy-MM-dd HH:mm:ss}"); + writer.WriteLine($"- Scene: `{options.ScenePath}`"); + writer.WriteLine($"- Operations: `{options.OperationsPath}`"); + writer.WriteLine($"- Success Count: {results.Count(result => string.Equals(result.Result, eKResult.RESULT_SUCCESS.ToString(), StringComparison.Ordinal))}"); + writer.WriteLine($"- Failure Count: {results.Count(result => !string.Equals(result.Result, eKResult.RESULT_SUCCESS.ToString(), StringComparison.Ordinal))}"); + writer.WriteLine(); + writer.WriteLine("| Object | Method | Payload | Result | Detail |"); + writer.WriteLine("| --- | --- | --- | --- | --- |"); + foreach (var result in results) + { + writer.WriteLine( + $"| {EscapeCell(result.ObjectName)} | {EscapeCell(result.Method)} | {EscapeCell(result.Payload)} | {EscapeCell(result.Result)} | {EscapeCell(result.Detail)} |"); + } +} + +static void TryUnloadScene(ProbeEventHandler handler, IKAScene scene, TimeSpan timeout) +{ + try + { + handler.ResetUnloadSceneTask(); + scene.UnloadScene(); + WaitForTaskWithMessagePump(handler.UnloadSceneTask, timeout); + } + catch + { + } +} + +static void WriteCatalogMarkdown( + SceneCatalogOptions options, + IReadOnlyList entries, + IReadOnlyList failures) +{ + Directory.CreateDirectory(Path.GetDirectoryName(options.OutputPath)!); + + using var writer = new StreamWriter(options.OutputPath, false, new System.Text.UTF8Encoding(false)); + writer.WriteLine("# Scene Object Catalog"); + writer.WriteLine(); + writer.WriteLine($"- Generated: {DateTime.Now:yyyy-MM-dd HH:mm:ss}"); + writer.WriteLine($"- Root: `{options.RootPath}`"); + writer.WriteLine($"- Scene Count: {entries.Count}"); + writer.WriteLine($"- Failure Count: {failures.Count}"); + writer.WriteLine(); + + if (failures.Count > 0) + { + writer.WriteLine("## Failures"); + writer.WriteLine(); + foreach (var failure in failures) + { + writer.WriteLine($"- `{failure.ScenePath}`: {EscapeInline(failure.Reason)}"); + } + + writer.WriteLine(); + } + + writer.WriteLine("## Scenes"); + writer.WriteLine(); + foreach (var entry in entries) + { + writer.WriteLine($"### `{entry.RelativePath}`"); + writer.WriteLine(); + writer.WriteLine($"- Object Count: {entry.Objects.Count}"); + writer.WriteLine(); + writer.WriteLine("| Name | Type | Value | Visible |"); + writer.WriteLine("| --- | --- | --- | --- |"); + foreach (var obj in entry.Objects) + { + writer.WriteLine( + $"| {EscapeCell(obj.Name)} | {obj.ObjectType} | {EscapeCell(obj.Value)} | {(obj.Visible ? "true" : "false")} |"); + } + + writer.WriteLine(); + } +} + +static string EscapeCell(string? value) +{ + if (string.IsNullOrEmpty(value)) + { + return string.Empty; + } + + return value.Replace("\\", "\\\\", StringComparison.Ordinal) + .Replace("|", "\\|", StringComparison.Ordinal) + .Replace("\r", " ", StringComparison.Ordinal) + .Replace("\n", "
", StringComparison.Ordinal); +} + +static string EscapeInline(string? value) => EscapeCell(value); + static Task ProbeSdkAsync(ProbeOptions options) { var completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); @@ -149,17 +1235,291 @@ internal sealed record ProbeOptions(string Host, int Port, TimeSpan Timeout) } } +internal sealed record CounterProbeOptions( + ProbeOptions Connection, + string ScenePath, + string SceneAlias, + string ObjectName, + int KeyIndex, + double Number) +{ + public static CounterProbeOptions Parse(string[] args) + { + var connection = ProbeOptions.Parse(args); + string? scenePath = null; + string? sceneAlias = null; + string? objectName = null; + var keyIndex = 1; + var number = 0d; + + for (var index = 0; index < args.Length; index++) + { + switch (args[index]) + { + case "--scene" when index + 1 < args.Length: + scenePath = args[++index]; + break; + case "--alias" when index + 1 < args.Length: + sceneAlias = args[++index]; + break; + case "--object" when index + 1 < args.Length: + objectName = args[++index]; + break; + case "--key-index" when index + 1 < args.Length && int.TryParse(args[index + 1], out var parsedKeyIndex): + keyIndex = parsedKeyIndex; + index++; + break; + case "--number" when index + 1 < args.Length && double.TryParse(args[index + 1], out var parsedNumber): + number = parsedNumber; + index++; + break; + } + } + + if (string.IsNullOrWhiteSpace(scenePath)) + { + throw new ArgumentException("--scene is required."); + } + + if (string.IsNullOrWhiteSpace(objectName)) + { + throw new ArgumentException("--object is required."); + } + + sceneAlias ??= Path.GetFileNameWithoutExtension(scenePath); + return new CounterProbeOptions(connection, scenePath, sceneAlias, objectName, keyIndex, number); + } +} + +internal sealed record SceneCatalogOptions( + ProbeOptions Connection, + string RootPath, + string OutputPath, + string? SceneFilter, + int? MaxScenes) +{ + public static SceneCatalogOptions Parse(string[] args) + { + var connection = ProbeOptions.Parse(args); + string? rootPath = null; + string? outputPath = null; + string? sceneFilter = null; + int? maxScenes = null; + + for (var index = 0; index < args.Length; index++) + { + switch (args[index]) + { + case "--root" when index + 1 < args.Length: + rootPath = args[++index]; + break; + case "--output" when index + 1 < args.Length: + outputPath = args[++index]; + break; + case "--filter" when index + 1 < args.Length: + sceneFilter = args[++index]; + break; + case "--max-scenes" when index + 1 < args.Length && int.TryParse(args[index + 1], out var parsedMaxScenes): + maxScenes = parsedMaxScenes; + index++; + break; + } + } + + rootPath ??= Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), + "Tornado3 Data", + "T3_Cut", + "T3_Cut"); + + if (!Directory.Exists(rootPath)) + { + throw new DirectoryNotFoundException($"Catalog root path does not exist: {rootPath}"); + } + + outputPath ??= Path.Combine(Environment.CurrentDirectory, "SCENE_OBJECT_CATALOG.md"); + outputPath = Path.GetFullPath(outputPath); + return new SceneCatalogOptions(connection, Path.GetFullPath(rootPath), outputPath, sceneFilter, maxScenes); + } +} + +internal sealed record SceneValidationOptions( + ProbeOptions Connection, + string ScenePath, + string SceneAlias, + string OperationsPath, + string OutputPath) +{ + public static SceneValidationOptions Parse(string[] args) + { + var connection = ProbeOptions.Parse(args); + string? scenePath = null; + string? sceneAlias = null; + string? operationsPath = null; + string? outputPath = null; + + for (var index = 0; index < args.Length; index++) + { + switch (args[index]) + { + case "--scene" when index + 1 < args.Length: + scenePath = args[++index]; + break; + case "--alias" when index + 1 < args.Length: + sceneAlias = args[++index]; + break; + case "--operations" when index + 1 < args.Length: + operationsPath = args[++index]; + break; + case "--output" when index + 1 < args.Length: + outputPath = args[++index]; + break; + } + } + + if (string.IsNullOrWhiteSpace(scenePath)) + { + throw new ArgumentException("--scene is required."); + } + + if (string.IsNullOrWhiteSpace(operationsPath)) + { + throw new ArgumentException("--operations is required."); + } + + scenePath = Path.GetFullPath(scenePath); + operationsPath = Path.GetFullPath(operationsPath); + sceneAlias ??= Path.GetFileNameWithoutExtension(scenePath); + outputPath ??= Path.Combine(Environment.CurrentDirectory, "SCENE_VARIABLE_VALIDATION.md"); + outputPath = Path.GetFullPath(outputPath); + + return new SceneValidationOptions(connection, scenePath, sceneAlias, operationsPath, outputPath); + } +} + +internal sealed record FolderInspectionOptions(ProbeOptions Connection, string RootPath, string OutputPath, string? SceneFilter, int? MaxScenes) +{ + public static FolderInspectionOptions Parse(string[] args) + { + var connection = ProbeOptions.Parse(args); + string? rootPath = null; + string? outputPath = null; + string? sceneFilter = null; + int? maxScenes = null; + + for (var index = 0; index < args.Length; index++) + { + switch (args[index]) + { + case "--root" when index + 1 < args.Length: + rootPath = args[++index]; + break; + case "--output" when index + 1 < args.Length: + outputPath = args[++index]; + break; + case "--filter" when index + 1 < args.Length: + sceneFilter = args[++index]; + break; + case "--max-scenes" when index + 1 < args.Length && int.TryParse(args[index + 1], out var parsedMaxScenes): + maxScenes = parsedMaxScenes; + index++; + break; + } + } + + if (string.IsNullOrWhiteSpace(rootPath)) + { + throw new ArgumentException("--root is required."); + } + + rootPath = Path.GetFullPath(rootPath); + outputPath ??= Path.Combine(Environment.CurrentDirectory, "TSCN_VARIABLE_DISCOVERY.md"); + outputPath = Path.GetFullPath(outputPath); + return new FolderInspectionOptions(connection, rootPath, outputPath, sceneFilter, maxScenes); + } +} + internal sealed record SdkProbeResult(bool ConnectRequestAccepted, string ConnectOutcome, string Detail); +internal sealed record CounterProbeResult(bool ConnectRequestAccepted, string SceneLoadOutcome, string CounterOutcome, string Detail); +internal sealed record SceneCatalogProbeResult( + bool ConnectRequestAccepted, + int SceneCount, + int CatalogedCount, + string OutputPath, + IReadOnlyList Failures); +internal sealed record SceneCatalogFailure(string ScenePath, string Reason); +internal sealed record SceneCatalogEntry(string ScenePath, string RelativePath, IReadOnlyList Objects); +internal sealed record SceneObjectCatalogItem(string Name, eKObjectType ObjectType, string Value, bool Visible); +internal sealed record ObjectInfosProbeResult(eKResult Result, string SceneName, IReadOnlyList Objects, string Detail); +internal sealed record SceneValidationProbeResult( + bool ConnectRequestAccepted, + string SceneLoadOutcome, + int SuccessCount, + int FailureCount, + string OutputPath, + string Detail); +internal sealed record FolderInspectionProbeResult( + bool ConnectRequestAccepted, + int SceneCount, + int ProcessedSceneCount, + int DiscoveredVariableCount, + int FailureCount, + string OutputPath, + string Detail); +internal sealed class SceneValidationOperation +{ + public string ObjectName { get; set; } = string.Empty; + + public string Method { get; set; } = "SetValue"; + + public string? Value { get; set; } + + public int KeyIndex { get; set; } + + public double Number { get; set; } +} + +internal sealed record SceneOperationValidationResult(string ObjectName, string Method, string Payload, string Result, string Detail); +internal sealed record SceneInspectionResult(string ScenePath, string RelativePath, int CandidateCount, IReadOnlyList Discoveries); +internal sealed record SceneVariableDiscovery(string VariableName, string Method, string Payload, string Result); internal sealed class ProbeEventHandler : KAEventHandler { private readonly TaskCompletionSource _connectTask = new(TaskCreationOptions.RunContinuationsAsynchronously); private readonly TaskCompletionSource _closeTask = new(TaskCreationOptions.RunContinuationsAsynchronously); + private TaskCompletionSource _loadSceneTask = new(TaskCreationOptions.RunContinuationsAsynchronously); + private TaskCompletionSource _unloadSceneTask = new(TaskCreationOptions.RunContinuationsAsynchronously); + private TaskCompletionSource _counterNumberKeyTask = new(TaskCreationOptions.RunContinuationsAsynchronously); + private TaskCompletionSource _setValueTask = new(TaskCreationOptions.RunContinuationsAsynchronously); + private TaskCompletionSource _objectInfosTask = new(TaskCreationOptions.RunContinuationsAsynchronously); + private IKAScene? _sceneToQueryOnLoad; public Task ConnectTask => _connectTask.Task; public Task CloseTask => _closeTask.Task; + public Task LoadSceneTask => _loadSceneTask.Task; + + public Task UnloadSceneTask => _unloadSceneTask.Task; + + public Task CounterNumberKeyTask => _counterNumberKeyTask.Task; + + public Task SetValueTask => _setValueTask.Task; + + public Task ObjectInfosTask => _objectInfosTask.Task; + + public void ResetLoadSceneTask() => _loadSceneTask = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + public void ResetUnloadSceneTask() => _unloadSceneTask = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + public void ResetCounterNumberKeyTask() => _counterNumberKeyTask = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + public void ResetSetValueTask() => _setValueTask = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + public void ResetObjectInfosTask() => _objectInfosTask = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + public void ConfigureQueryObjectInfosOnLoad(IKAScene scene) => _sceneToQueryOnLoad = scene; + public void OnConnect(int ErrorCode) { Console.WriteLine($"[SDK] OnConnect errorCode={ErrorCode}"); @@ -172,7 +1532,31 @@ internal sealed class ProbeEventHandler : KAEventHandler _closeTask.TrySetResult(ErrorCode); } - public void OnLoadScene(eKResult Result, string SceneName) { } + public void OnLoadScene(eKResult Result, string SceneName) + { + Console.WriteLine($"[SDK] OnLoadScene result={Result} scene={SceneName}"); + _loadSceneTask.TrySetResult(Result); + + if (Result == eKResult.RESULT_SUCCESS && _sceneToQueryOnLoad is not null) + { + try + { + _sceneToQueryOnLoad.QueryObjectInfos(); + } + catch (Exception ex) + { + _objectInfosTask.TrySetResult(new ObjectInfosProbeResult( + eKResult.RESULT_FAILURE, + SceneName, + Array.Empty(), + ex.Message)); + } + finally + { + _sceneToQueryOnLoad = null; + } + } + } public void OnLoadSceneForce(eKResult Result, string SceneName) { } public void OnLogMessage(string LogMessage) { } public void OnMessageNo(uint MessageNo) { } @@ -221,7 +1605,10 @@ internal sealed class ProbeEventHandler : KAEventHandler public void OnSetSceneEffectType(eKResult Result, string SceneName) { } public void OnSaveSceneImage(eKResult Result, string SceneName) { } public void OnSaveScene(eKResult Result, string SceneName) { } - public void OnUnloadScene(eKResult Result, string SceneName) { } + public void OnUnloadScene(eKResult Result, string SceneName) + { + _unloadSceneTask.TrySetResult(Result); + } public void OnReloadScene(eKResult Result, string SceneName) { } public void OnUpdateTextures(eKResult Result, string SceneName) { } public void OnSetSceneAudioFile(eKResult Result, string SceneName) { } @@ -245,7 +1632,25 @@ internal sealed class ProbeEventHandler : KAEventHandler public void OnSetPauseWithIndex(eKResult Result, string SceneName) { } public void OnDeletePauseWithIndex(eKResult Result, string SceneName) { } public void OnQueryPauseCount(eKResult Result, string SceneName, int PauseCount) { } - public void OnQueryObjectInfos(eKResult Result, string SceneName, KAObjectInfos pObjectInfos) { } + public void OnQueryObjectInfos(eKResult Result, string SceneName, KAObjectInfos pObjectInfos) + { + var objects = new List(); + if (Result == eKResult.RESULT_SUCCESS) + { + var count = pObjectInfos.GetCount(); + for (var index = 0; index < count; index++) + { + var objectInfo = pObjectInfos.GetObjectInfo(index); + objects.Add(new SceneObjectCatalogItem( + objectInfo.Name ?? string.Empty, + objectInfo.ObjectType, + objectInfo.Value ?? string.Empty, + objectInfo.bVisible != 0)); + } + } + + _objectInfosTask.TrySetResult(new ObjectInfosProbeResult(Result, SceneName, objects, string.Empty)); + } public void OnQueryAnimationNames(eKResult Result, string SceneName, KAStrings pAnimationNames) { } public void OnQueryAnimationCount(eKResult Result, string SceneName, int AnimationCount) { } public void OnQueryObjectInfosByScreenPoint(eKResult Result, KAObjectInfos pObjectInfos) { } @@ -258,7 +1663,15 @@ internal sealed class ProbeEventHandler : KAEventHandler public void OnSetEdgeTextColor(eKResult Result, string SceneName, string ObjectName) { } public void OnSetShadowTextColor(eKResult Result, string SceneName, string ObjectName) { } public void OnSetVisible(eKResult Result, string SceneName, string ObjectName) { } - public void OnSetValue(eKResult Result, string SceneName, string ObjectName) { } + public void OnSetValue(eKResult Result, string SceneName, string ObjectName) + { + if (Result != eKResult.RESULT_ERROR_NO_VARIABLE_OBJECT) + { + Console.WriteLine($"[SDK] OnSetValue result={Result} scene={SceneName} object={ObjectName}"); + } + + _setValueTask.TrySetResult(Result); + } public void OnAddText(eKResult Result, string SceneName, string ObjectName) { } public void OnStoreTextStyle(eKResult Result, string SceneName, string ObjectName) { } public void OnSetTextStyle(eKResult Result, string SceneName, string ObjectName) { } @@ -272,7 +1685,15 @@ internal sealed class ProbeEventHandler : KAEventHandler public void OnQueryChartDataTable(eKResult Result, string SceneName, string ObjectName, KAChartDataTable Table) { } public void OnQuerySize(eKResult Result, string SceneName, string ObjectName, float Width, float Height) { } public void OnSetSize(eKResult Result, string SceneName, string ObjectName) { } - public void OnSetCounterNumberKey(eKResult Result, string SceneName, string ObjectName) { } + public void OnSetCounterNumberKey(eKResult Result, string SceneName, string ObjectName) + { + if (Result != eKResult.RESULT_ERROR_NO_VARIABLE_OBJECT) + { + Console.WriteLine($"[SDK] OnSetCounterNumberKey result={Result} scene={SceneName} object={ObjectName}"); + } + + _counterNumberKeyTask.TrySetResult(Result); + } public void OnSetPositionKey(eKResult Result, string SceneName, string ObjectName) { } public void OnSetRotationKey(eKResult Result, string SceneName, string ObjectName) { } public void OnSetScaleKey(eKResult Result, string SceneName, string ObjectName) { } diff --git a/tools/KarismaTcpProbe/scene-ops/1-2위_ani_광역단체장.json b/tools/KarismaTcpProbe/scene-ops/1-2위_ani_광역단체장.json new file mode 100644 index 0000000..999ab9f --- /dev/null +++ b/tools/KarismaTcpProbe/scene-ops/1-2위_ani_광역단체장.json @@ -0,0 +1,21 @@ +[ + { "objectName": "Image", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Etc\\가이드.png" }, + { "objectName": "시도명", "method": "SetValue", "value": "서울특별시" }, + { "objectName": "표차", "method": "SetValue", "value": "100,000표차" }, + + { "objectName": "유확당01", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Tag\\당선.vrv" }, + { "objectName": "순위01", "method": "SetValue", "value": "1" }, + { "objectName": "정당명01", "method": "SetValue", "value": "더불어민주당" }, + { "objectName": "후보명01", "method": "SetValue", "value": "김후보" }, + { "objectName": "득표수01", "method": "SetValue", "value": "2,123,456" }, + { "objectName": "후보사진01", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Photo\\sampleNEW.png" }, + { "objectName": "득표율01", "method": "SetCounterNumberKey", "keyIndex": 1, "number": 30 }, + + { "objectName": "유확당02", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Tag\\당선.vrv" }, + { "objectName": "순위02", "method": "SetValue", "value": "2" }, + { "objectName": "정당명02", "method": "SetValue", "value": "국민의힘" }, + { "objectName": "후보명02", "method": "SetValue", "value": "이후보" }, + { "objectName": "득표수02", "method": "SetValue", "value": "1,123,456" }, + { "objectName": "후보사진02", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Photo\\sampleNEW.png" }, + { "objectName": "득표율02", "method": "SetCounterNumberKey", "keyIndex": 1, "number": 20 } +] diff --git a/tools/KarismaTcpProbe/scene-ops/1-2위_ani_광역단체장_live.json b/tools/KarismaTcpProbe/scene-ops/1-2위_ani_광역단체장_live.json new file mode 100644 index 0000000..f9298c9 --- /dev/null +++ b/tools/KarismaTcpProbe/scene-ops/1-2위_ani_광역단체장_live.json @@ -0,0 +1,25 @@ +[ + { "objectName": "\uAC1C\uD45C\uC72801", "method": "SetValue", "value": "88.8" }, + { "objectName": "\uC2DC\uB3C4\uBA8501", "method": "SetValue", "value": "\uC11C\uC6B8\uD2B9\uBCC4\uC2DC" }, + { "objectName": "\uD45C\uCC2801", "method": "SetValue", "value": "25,000" }, + + { "objectName": "\uC720\uD655\uB2F901", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Tag\\\uB2F9\uC120.vrv" }, + { "objectName": "\uC21C\uC70401", "method": "SetValue", "value": "1" }, + { "objectName": "\uC815\uB2F9\uBA8501", "method": "SetValue", "value": "\uB354\uBD88\uC5B4\uBBFC\uC8FC\uB2F9" }, + { "objectName": "\uD6C4\uBCF4\uBA8501", "method": "SetValue", "value": "\uAE40\uD6C4\uBCF4" }, + { "objectName": "\uB4DD\uD45C\uC21801", "method": "SetValue", "value": "2,123,456" }, + { "objectName": "\uC815\uB2F9\uBC1401", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Dang\\Dang_Map\\\uB354\uBD88\uC5B4\uBBFC\uC8FC\uB2F9.png" }, + { "objectName": "\uC815\uB2F9\uD31001", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Dang\\Dang_Round\\\uB354\uBD88\uC5B4\uBBFC\uC8FC\uB2F9.png" }, + { "objectName": "\uD6C4\uBCF4\uC0AC\uC9C401", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Photo\\sampleNEW.png" }, + { "objectName": "\uB4DD\uD45C\uC72801", "method": "SetCounterNumberKey", "keyIndex": 1, "number": 34.8 }, + + { "objectName": "\uC720\uD655\uB2F902", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Tag\\\uC720\uB825.vrv" }, + { "objectName": "\uC21C\uC70402", "method": "SetValue", "value": "2" }, + { "objectName": "\uC815\uB2F9\uBA8502", "method": "SetValue", "value": "\uAD6D\uBBFC\uC758\uD798" }, + { "objectName": "\uD6C4\uBCF4\uBA8502", "method": "SetValue", "value": "\uC774\uD6C4\uBCF4" }, + { "objectName": "\uB4DD\uD45C\uC21802", "method": "SetValue", "value": "1,123,456" }, + { "objectName": "\uC815\uB2F9\uBC1402", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Dang\\Dang_Map\\\uAD6D\uBBFC\uC758\uD798.png" }, + { "objectName": "\uC815\uB2F9\uD31002", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Dang\\Dang_Round\\\uAD6D\uBBFC\uC758\uD798.png" }, + { "objectName": "\uD6C4\uBCF4\uC0AC\uC9C402", "method": "SetValue", "value": "${SCENE_DIR}\\Images\\Photo\\sampleNEW.png" }, + { "objectName": "\uB4DD\uD45C\uC72802", "method": "SetCounterNumberKey", "keyIndex": 1, "number": 32.0 } +]