# RUN-LOG — 8편 CoinRithm (2026-09-22)

글: [`docs/tutorials/a/08-coinrithm.md`](../../../docs/tutorials/a/08-coinrithm.md)

관측 구간: **2026-09-22 KST 02:15 ~ 02:40** (UTC 2026-09-21 17:15~17:40)
환경: macOS 26.6.2 · arm64 · weltiq 웹 `http://localhost:8741` · CoinRithm `https://api.coinrithm.com`

---

## 0. 지킨 경계

| | |
|---|---|
| CoinRithm | **읽기 전용.** 주문·에이전트 생성·순위표 참가 등록·가입·결제 **없음** |
| | `POST /api/agent/spot/quote` 는 계약서가 `"Never mutates state"` 로 명시한 읽기 전용 견적 |
| weltiq | 슬롯 1개만 사용. 02:25:54 생성 → 02:38 정지 확인. 다른 슬롯·프로세스 미접촉 |
| 키 | 두 키 모두 값이 이 디렉터리 어디에도 없음 (검사 완료) |
| 캡처 | 운영자 이메일·계정·키가 찍힌 화면 없음. CoinRithm 캡처는 전부 **비로그인** 상태 |

캡처가 전부 비로그인인 이유: 브라우저에 운영자 세션이 없었고, 굳이 로그인시키지 않는 편이 개인정보가 안 찍힙니다. 대신 키 발급 화면·Studio·순위표·페이퍼 화면이 모두 비로그인으로 열려서 필요한 그림은 다 나왔습니다.

---

## 1. CoinRithm — 실호출 (`coinrithm/`)

| 파일 | 호출 | 결과 |
|---|---|---|
| `openapi-v1.7.0.yaml` | `GET https://www.coinrithm.com/openapi.yaml` | 200 · 233,087 B · `openapi 3.1.0` · `info.version 1.7.0` · **경로 54개** |
| `01-me.json` | `GET /api/agent/me` | 200 · 0.4187s · `userId 119` `keyId 104` · scopes `read,trade:spot,trade:pm,trade:futures` · `usage.requests 1` |
| `02-portfolio.json` | `GET /api/agent/portfolio` | 200 · equity 50,000 · `bookScope api_key` · `progression.league iron` · `rankInLeague 31` |
| `02-wallet.json` | `GET /api/agent/wallet` | 200 · USDT(coinId 825) 50,000 |
| `02-performance.json` | `GET /api/agent/performance` | 200 · 전부 0 · `auditStats.quoteBeforeTradeRate null` |
| `02-ledger.json` | `GET /api/agent/ledger` | 200 · 조회까지 기록됨 · `latencyMs 67` |
| `03-arena-p1..p4.json` | `GET /api/arena?page=N&pageSize=12` | 200 · 총 38명 (4쪽) |
| `04-decisions.json` | `GET /api/arena/decisions?limit=2` | 200 · 공개 결정 기록 (해시·`marketAsOf` 포함) |
| `05-scorecard-leo.json` | `GET /api/arena/agents/a5-leverage-leo/scorecard` | 200 · `deflated_sharpe 0.561616` · `brierSkillVsMarket -0.128316` |
| `20-cr-mcp-tools.json` | MCP `tools/list` (키 있음) | 38개 |
| `22-cr-mcp-tools-anon.json` | MCP `tools/list` (키 **없음**) | **38개 — 동일** |
| `30-pm-calibration.json` | `GET /api/prediction-markets/calibration` | 200 · 거래소 5곳 채점 · 2곳 `pending` (사유 명시) |
| `80-cr-resolve.json` | `GET /api/agent/resolve?q=BTC` | 200 · BTC = coinId `"1"` |
| `81-cr-spot-quote.json` | `POST /api/agent/spot/quote` (읽기) | 200 · 1.049s · `feeBps 5` `spreadBps 4` `slippageBps 2` · `freshness.ageSeconds 32` |

### 1.1 MCP 권한 경계 (키 없이 호출)

```
tools/call pm_data_overview  → httpStatus 200 ok:true
  totalMarkets 1587752 · totalOpenMarkets 48961 · totalVolume 7382344484.474279
tools/call whoami            → httpStatus 401 ok:false
  {"error":"missing_api_key","message":"No API key for this request. …"}
```

### 1.2 Agent Arena 38명 집계 (03-arena-p*.json 에서 산출)

```
positive 10 · negative 28
median -152.245 · min -19187.16 · max 1527.16 · sum -72018.64
avgWinRate 0.36167657113386875 · decidedTradesTotal 13573 · liveNow 3
facets.venues: spot 5 · futures 30 · pm 25
facets.models: Llama 3.1 8B 17 · Nemotron 3 Super 120B 7 · Nemotron 3 Nano 30B 4 ·
               nemotron-3-nano-omni-30b-a3b-reasoning 2 · Claude 3 · gpt 1 ·
               Llama 3.1 8B·Groq 1 · unknown 3
```

순위 계약 (`contract`):
```
version arena-ranking-v1
qualificationDecidedTrades 5 · smallSampleBelowDecidedTrades 20
positiveScore wilson_95_lower_bound_x_realized_pnl · nonPositiveScore realized_pnl
unrealizedPnlAffectsRank false
evidence.modelIdentity self_reported · evidence.hiddenModelReasoningVerified false
```

계약이 작동한 증거 두 개:
- 3위 `a60-etuateautahdfgre` (+342.70) 가 4위 `a99-x3-es` (+346.88) 보다 위 → 생짜 손익 순이 아님
- 29위 `a30-mycelium-pm` (+48.94, 거래 1건) 이 28위 `a6-oracle-olivia` (−19,187.16) 보다 아래 → 5거래 미만 자격 미달

1위 `a5-leverage-leo` 장소별:
```
spot    +77.10   (1건,   승률 100%)
futures -3971.32 (253건, 승률 37.15%)
pm      +5421.38 (104건, 승률 37.70%)
합계    +1527.16 (358건, 승률 37.46%) · biggestWin +8083.94
lastTradeAt 2026-09-09T00:03:31.323Z (관측일 기준 13일 전 · UI 표기 "17 days ago" — 둘이 안 맞음, 어느 쪽이 맞는지 미확인)
```

성적표 (`05-scorecard-leo.json`):
```
sharpe 0.008449 · deflated_sharpe 0.561616 · profit_factor 1.07386
max_drawdown_musd 8533.321563 · calibration_error 0.154098
forecastSkill: agentBrier 0.277579 · marketBrier 0.246012 · brierSkillVsMarket -0.128316
```

### 1.3 이름 기준 시작 캐릭터 파생 (38명 중 22명)

`mia` 계열 8 · `carl` 계열 5 · `olivia` 계열 5 · `leo` 계열 2 · `sam` 계열 2 = **22**.
나머지 16 중 7명은 거래 0건.
**이름으로만 센 것이며 전략이 실제로 같은지는 확인 못 함.**

### 1.4 예측시장 거래소 보정 (`30-pm-calibration.json`)

```
methodologyVersion t24h_retained_complete_book_v2 · leadHours 24 · minSample 30
Polymarket        n=952   calibErr 0.0216  meanWinnerConf 0.5242
Manifold Markets  n=281   calibErr 0.0422  meanWinnerConf 0.7160
Kalshi            n=3313  calibErr 0.0569  meanWinnerConf 0.4749
Limitless         n=110   calibErr 0.1030  meanWinnerConf 0.5059
Gemini            n=46    calibErr 0.1157  meanWinnerConf 0.6038
pending: ForecastEx(t24h 입력 기록 없음) · Futuur(채점 가능 3건, 30건 필요)
```

### 1.5 계약서에서 읽은 것 (호출 아님 — `openapi-v1.7.0.yaml`)

| | |
|---|---|
| `SpotOrderRequest.required` | `[coinId, side, orderType, quantity, idempotencyKey]` · **손절 필드 없음** |
| `FuturesOpenRequest.required` | `[coinId, side, leverage, marginMusd, idempotencyKey]` · `leverage` 1~20 · `marginMusd` 최소 10, **상한 없음** · `stopLossPrice` **선택** |
| `AgentTraceMetadata` | 전부 **선택** (`runId`·`decisionId`·`strategyLabel`·`confidence`·`rationaleSummary`) |
| 요율 한도 | 키당 **120 req/min** + **20 trade-writes/min** |
| 체결 모형 | `paper_execution_v1` · *"a flat round-trip is a small loss, not a free breakeven"* |

---

## 2. weltiq — 실호출 (`weltiq/`)

| 파일 | 호출 | 결과 |
|---|---|---|
| `10-weltiq-capabilities.json` | `GET /v1/capabilities` | 200 · plan `pro` · `paper_slots 24` · `quote_delay_s 0` |
| `21-wq-mcp-tools.json` | MCP `tools/list` | **42개** |
| `40-wq-envelopes.json` | `GET /v1/envelopes` | 200 · 활성 `ev_e2dd018d24579d0a` (BTCUSDT · 주문당 500 · 일일 2000) |
| `41-wq-envelope-post-denied.txt` | `POST /v1/envelopes` | **403 `session_required`** — "API 키 불가" |
| `50-wq-s5-buy.json` | `POST /v1/orders/oneoff` (buy 0.001) | 200 · 0.057957s · `cmd_224fb6867ae16a7b` / `dq_1f25f67bc17d0ab4` |
| `51-wq-s5-buy-status.json` | `GET /v1/orders/oneoff/dq_1f25…` | `filled` · `quote_source binance` · `quote_scope binance-spot` |
| `52-wq-s5-fills.json` | `GET /v1/fills?mode=paper` | px `85860.2751685` · fee `0.08586028` · taker · `fee_profile binance-spot v1 taker 0.001` |
| `53/54/55-wq-s5-sell*` | sell 0.001 왕복 청산 | `filled` · px `85843.0948315` · fee `0.08584309` · 응답에 `closing:true` `est_notional:0` |
| `62-wq-slot-nostop-denied.txt` | `POST /v1/slots` (중지 조건 없이) | **422** — `stop_max_loss` / `stop_after_hours` `Field required` |
| `60-wq-slot-create.json` | `POST /v1/slots` (0.30 USDT · 1h) | 200 · `dep_pa_d0d4b70d04115440` · `lineage_id` · `experiment_hash` |
| `61-wq-slots.json` | `GET /v1/slots` | `running` · `attached true` · `stage waiting_data → conditions` |
| `63-wq-slot-stop.json` | `DELETE /v1/slots/dep_pa_d0d4…` | 200 · `stopping` → 약 20초 뒤 `stopped` / `expired` |
| `70-wq-journal.json` | `GET /v1/journal` | 200 (계정 공유 중이라 **타 작업자 이벤트 혼재** — 글에서 인용 안 함) |
| `23-wq-mcp-anon.txt` · `24-wq-mcp-call-anon.txt` | MCP 키 없이 `tools/list` / `tools/call markets` | 목록 42개는 나옴 · 호출은 `Error executing tool markets` (코드·안내 없음) |
| `90-wq-fees-simulate.json` | `GET /v1/fees/simulate` | 거래소 6종 · `as_of 2026-09-16` · `verified` 플래그 |

### 2.1 S5 왕복 계산

```
매수 02:25:07.850550  px 85860.2751685  fee 0.08586028
매도 02:25:33.263264  px 85843.0948315  fee 0.08584309
경과 25.412714 s
가격 손익  (85843.0948315 - 85860.2751685) × 0.001 = -0.0171803370 USDT  (-2.0010 bp)
수수료 합                                          =  0.17170337  USDT  (19.9980 bp)
순손익                                             = -0.1888837070 USDT
```

### 2.2 S7 — 발동 못 봄

```
02:25:54 생성 (stop_max_loss 0.30 · stop_after_hours 1)
02:26:01 stage waiting_data / no_bar_received
02:27:00 stage conditions / pine_hold   last_bar 17:27
02:37:00 stage conditions / pine_hold   last_bar 17:37   position null   cumulative_pnl 0
02:38    DELETE → stopping → stopped(expired)
```
**12분간 진입 조건 미충족. 포지션이 없어 손실 한도가 발동할 조건 자체가 안 만들어졌다.**
중지 조건이 **필수 게이트**라는 것은 422 로 확인됨.

### 2.3 S8 — 절반만

02:26~02:37 사이 슬롯에 명령을 보내지 않았고 `last_bar` 가 11칸 전진(`17:26`→`17:37`), `attached true` 유지.
**포지션을 든 채로 끊는 시험은 못 함** (진입 없음 + 엔진 재시작 금지). 미확인.

---

## 2.5 `api/` 디렉터리에 대하여

`reports/a/08-coinrithm/api/` 는 **제가 만들지 않았습니다.** 02:26~02:27 에 다른 쪽에서 생성된 것으로 보이며(같은 CoinRithm 엔드포인트를 받아 둔 파일들), 이 글은 그 파일들을 인용하지 않았습니다. 글에 쓴 값은 전부 `coinrithm/` · `weltiq/` 에 있는 제 호출 결과입니다.

---

## 3. 캡처 (`shots/`)

| 파일 | 무엇 |
|---|---|
| `01-hero.png` | CoinRithm 첫 화면 — 제품 문장 · "illustrative session, not live data" 라벨 |
| `02-arena-top.png` | Arena 상단 — `AVG WIN RATE 36%` · LIVE FLOOR 9줄 중 7줄 `lost` |
| `03-arena-table.png` | **Arena 순위표 본체** (이 편의 대표 그림) · LIVE REASONING · RECENTLY ACTIVE 전원 마이너스 |
| `03b-arena-table2.png` | 순위표 하단 |
| `04-agent-leo.png` | **1위 상세 (비로그인)** — Verified Scorecard · SKILL VS MARKET −13% · 결정 로그 |
| `05-agent-leo-trades.png` | 1위 상세 스크롤 |
| `06-studio.png` | Studio — 시작 캐릭터 5종 · "Advanced / bring your own agent" |
| `07-mock-trade.png` | 페이퍼 트레이딩 데모 — Personalized Feedback · Golden Rules |
| `07b-mock-trade-scroll.png` | 〃 스크롤 |
| `08-prediction-markets.png` | **예측시장 허브** — 거래소 12곳 · 활성 48,899 · 거래대금 $7.377B |
| `09-api-keys.png` | **키 발급 화면 (비로그인)** — Staying in control · Permissions 4칸 |
| `10-methodology.png` | 방법론 페이지 |
| `11-venues-disagree.png` | 예측시장 허브 (탭 파라미터가 안 먹어 08 과 같은 화면) |
| `12-competitions.png` | Arena 대회 페이지 |
| `13-agentic-connect.png` | 연결 안내 구간 |
| `20-weltiq-slots.png` | **weltiq 상주 슬롯** — `dep_pa_d0` running · Auto-stop −0.30 |
| `21-weltiq-api-keys.png` · `21-weltiq-connections.png` · `22-weltiq-fills.png` | weltiq 참고 화면 |

글에서 참조한 것: `01` `02-arena-top` `03-arena-table` `04-agent-leo` `06-studio` `07-mock-trade` `08-prediction-markets` `09-api-keys` `20-weltiq-slots` — **CoinRithm 8 : weltiq 1.**

---

## 4. 못 잰 것 (글에도 적음)

| | 왜 |
|---|---|
| CoinRithm 쪽 주문·체결·거부·부분체결 | **읽기 전용 원칙.** 저쪽 계좌에 쓰기 안 함 |
| 양쪽 왕복 시간 비교 | 저쪽은 인터넷(0.42s), 우리는 localhost(0.058s) — 같은 자가 아님 |
| 우리 손실 한도 실제 발동 | 12분 안에 진입 조건 미충족 |
| 포지션 보유 중 S8 | 진입 없음 + 엔진 재시작 금지 |
| 순위표 에이전트들의 실제 전략 동일 여부 | 핸들 이름으로만 분류 |
| CoinRithm 수익 모델 | 가격 페이지 404 · 유료 벽을 못 찾음 |

---

## 5. 이번에 드러난 우리 과제

1. **`client_order_id` 가 선택이다.** 저쪽은 API 키 호출자에게 `idempotencyKey` 필수. 우리는 경고 문자열만 돌려주고 받아 준다 — LLM 이 읽고 무시할 수 있다
2. **주문 경로에 `latencyMs` 가 없다.** (`duration_ms` 는 `strategy.backtest_runs` 에만) — 2026-09-21 경쟁 조사가 지적한 항목 그대로
3. **체결 응답에 슬리피지·스프레드 내역이 안 실린다.** 모형(`alpha_spread`·`beta_bps`)은 있는데 응답에 없다. 저쪽은 견적마다 bp 로 공개
4. **읽기마다 `observedAt`/`sourceAsOf` 같은 관측 증거가 없다.** 확정 봉으로 구조적으로 막지만 결정 단위 증거화는 안 한다
5. **공개 표면이 없다.** "정직한 모의가 브랜드"인데 로그인 없이 볼 수 있는 기록이 하나도 없다. 리더보드 금지 조항이 결과적으로 "아무것도 공개 안 함"으로 굳어 있다
6. **키 없는 MCP 호출 오류 메시지에 고칠 방법이 없다.** `Error executing tool markets` 한 줄. 저쪽은 401 + `missing_api_key` + 무엇을 보내야 하는지까지 준다
7. **OpenAPI 스펙을 공개하지 않는다.** 저쪽은 스키마 원본이 곧 문서라 사람용/기계용이 갈라지지 않는다

---

## 6. 독자판(v2) 재편 때 본문에서 내린 것 (2026-09-24)

v2 포맷으로 재편하면서 본문에서 뺀 것 중 **이 기록에 아직 없던 것**만 옮겨 적는다.
**비교표·22개 목록·순위표 숫자는 하나도 안 건드렸다.** 내린 것은 아래가 전부다.

### 6.1 시나리오 표 (본문에서 제거 — 독자판은 내부 시나리오 번호를 쓰지 않는다)

| | 본문에서 어떻게 됐나 |
|---|---|
| **S5** 주문 한 번 왕복 | §5-4 「체결 비용 모형 — 그리고 weltiq 쪽 왕복 실측」 으로 살아 있음. 숫자 전부 유지 |
| **S7** 중지 조건 발동 | §5-5 「중지 조건과 기록」 으로 살아 있음. 422 · 12분 미발동 · `stopping` 전부 유지 |
| **S8** 끊고 다시 붙이기 | **본문에서 뺐다.** 서버 상주 확인(02:26→02:37 사이 명령 0건, `last_bar` 17:26→17:37, `attached: true`)과 "포지션을 든 채로는 못 해 봤다"만 §6-5 한 줄로 남겼다 |
| **S9** 수수료 갈아 끼우기 | §5-4 요율표로 살아 있음 |
| **시나리오 D** 예측시장 가로지르기 | §4 로 살아 있음 |
| **안 돌린 시나리오 표** (S1·S2·S3·S4·S6·S10 + 저쪽 S5·S7·S8) | **본문에서 제거.** 아래가 그 내용이다 |

안 돌린 것과 이유(본문 표를 그대로 내림):

| | 왜 |
|---|---|
| **S1·S2** 종목 하나 보기 | 양쪽 다 되지만 이 편의 축이 아니다. 봉 API 는 양쪽 다 있다 |
| **S3** 내 실행 기록 복기 | 이번 회차에 컨테이너에 체결이 안 나서 복기할 기록이 없다 |
| **S4** 여러 종목 훑어 후보 좁히기 | 저쪽 `get_crypto_movers` 로 되지만 이 편의 논점과 무관해 뺐다 |
| **S6** 고리 한 바퀴 | 저쪽에 쓰기를 안 하기로 했으므로 양쪽 고리를 나란히 돌릴 수 없었다. 한쪽만 도는 고리는 대조가 아니다 |
| **S10** N번 반복 대결 | 별도 트랙의 형식이다 |
| **저쪽 S5·S7·S8** | **읽기 전용 원칙.** 저쪽 페이퍼 계좌에 주문을 내지 않았다 |

### 6.2 본문에서 내린 실호출 원문·식별자

- **띄운 컨테이너의 생성 응답 전문** — 본문에는 "손실 0.30 USDT · 1시간" 과 422 만 남겼다. 원문:

```
$ POST /v1/slots {"doc_hash":"f182c570…","symbol":"BTCUSDT","tf":"1m",
                  "stop_max_loss":"0.30","stop_after_hours":1,"balance":"200"}

{"deployment_id":"dep_pa_d0d4b70d04115440","sleeve_id":"sl_pa_d0d4b70d04115440",
 "doc_hash":"f182c5703f8d9851dd3eae93bbb17cff49da98a7ad1b6b03469b32257bc0c496",
 "lineage_id":"ln_e80d8f71c6266aa3",
 "experiment_hash":"817a8dffb8bbe7a4d4ea97c55521e7fde37dfb8a2398ae5ef367f7249be6c529",
 "mode":"paper","stop":{"max_loss":"0.30","until":"2026-09-21T18:25:54.337013+00:00",
                        "on_worker_failure":"keep"}}
```

- **주문 접수 응답 전문** (본문에는 체결 두 건의 표만 남겼다):

```
$ POST /v1/orders/oneoff {"venue":"binance-spot","symbol":"BTCUSDT","side":"buy",
    "type":"market","qty":"0.001","client_order_id":"cr08-buy-1790011507", …}

{"command_id":"cmd_224fb6867ae16a7b","status":"accepted","queue_id":"dq_1f25f67bc17d0ab4",
 "target":"paper","est_notional":"85.86","closing":false,"exec_mode":"realtime","qty":"0.001",
 "executions":[{"execution_id":"dq_1f25f67bc17d0ab4","target":"paper","mode":"paper",
                "status":"queued"}]}
HTTP 200 total=0.057957s
```

- **정지 응답 전문**: `{"deployment_id":"dep_pa_d0d4b70d04115440","status":"stopping","detail":"엔진 동기화 후 다음 봉에서 보유분을 청산합니다. 청산이 확인될 때까지 보호를 유지합니다."}` → 약 20초 뒤 `status: stopped · stopped_reason: expired`
- **진단 응답 전문**: `{"status":"running","diagnostics":{"stage":"conditions","reason":"pine_hold","event_time":"2026-09-21T17:32:00+00:00"},"last_bar":"2026-09-21T17:32:00+00:00","cumulative_pnl":"0","position":null,"attached":true}`
- **멱등 경고 전문**: `"idempotency":{"client_order_id":null,"warning":"no_client_order_id","detail":"client_order_id 없이 보낸 주문입니다 — 같은 요청을 다시 보내면 주문이 하나 더 들어갑니다."}`
- **계좌·기록 응답의 축약되지 않은 필드** — `/api/agent/ledger` 의 `idempotencyKey`·`requestSummary`·`responseSummary`·`ledgerStatus`·`completedAt`, `/api/agent/performance` 의 `missingRunIdCount`·`missingDecisionIdCount`·`idempotentReplayCount`
- **예측시장 보정 `pending` 사유 중 ForecastEx** — "해당 코호트에 t24h 입력이 기록된 이벤트가 없음" (본문에는 Futuur 만 남겼다)
- **순위표 파생 핸들 22개 전체 목록** — 본문에는 Mia 8개만 나열하고 나머지는 계열별 개수로 줄였다. 전체는 다음과 같다: `a3-momentum-mia` · `a73-your-mia` · `a49-m-mia` · `a42-mon-mia` · `a48-mimi` · `a88-mia` · `a93-my-mia` · `a101-my-mia757899` · `a4-contrarian-carl` · `a43-mon-contrarian-carl` · `a39-my-contrarian-carlbgjbb` · `a70-my-contrarian-carlo` · `a35-my-contrarian-carl` · `a6-oracle-olivia` · `a41-mon-olivia` · `a71-my-olivia` · `a44-oli` · `a89-olivia` · `a5-leverage-leo` · `a69-my-leo` · `a7-steady-sam` · `a29-my-sam`
- **결정 기록의 `capturedAt`** (`2026-09-21T15:27:08.294Z`) — 본문 JSON 에서는 `marketAsOf` 만 남겼다
- **경쟁 조사 문서와의 대조 한 문단** — "2026-09-21 관측에서 `engine_unavailable` 이었는데 오늘은 `attached: true`" 는 필자 사정에 가까워 본문에서 뺐다. 관측 사실은 §2 에 그대로 있다

### 6.3 본문에 남기지 않은 판단

`06-agent-leo` 상세의 `Rejects 2126`, Studio 캐릭터 다섯의 원문 설명, `/en/methodology` 페이지 캡처(`10-methodology.png`)는 본문에 안 들어갔다. 캡처 9장 구성(CoinRithm 8 : weltiq 1)은 재편 전후가 같다.

**R6(「weltiq 캡처는 체결이 있는 것만」) 미충족이 하나 남아 있다** — 본문의 `20-weltiq-slots.png` 는 `Position —` 이라 체결이 없는 화면이다. 체결이 찍힌 `22-weltiq-fills.png` 가 이 폴더에 있으나 계정 식별자가 가려지지 않아 그대로는 못 쓴다. **마스킹한 판을 다시 찍으면 교체 대상이다.**
