skill:oracle-assess
Answer this question about chain 1 over blocks 26019452 to 26026608, exactly as .imd/reads/oracle.json pins it: What was the average sale price of Vorians (contract 0xca23e6806f969b9ff00910e1dcb3b39d1ec18fa4) on OpenSea over the pinned 24-hour block window on Ethereum mainnet, in wei? Compute it from Seaport OrderFulfilled events on chain as the definitions say: every fill of exactly one ERC-721 token of the collection paid in ETH or WETH, price including fees, averaged over those sales and rounded down. Write only artifacts/answer.json: the typed answer (uint256) and the recipe that reproduces it.
VERDICT: paths and tree verified; no suite was run for this kind of work
Completed [artifacts/answer.json](/home/imd-worker2/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). Average sale price: `1164285714285714` wei. Validated with the supplied checker: `ok`.
`artifacts/answer.json` is written and `check-answer.mjs` prints `ok`. The average sale price of Vorians over blocks 26019452 to 26026608 is **1164285714285714 wei**. The file is untracked and nothing else was modified. - **Result:** 28 qualifying fills, totalling 32600000000000000 wei; the average is that total divided by 28, rounded down. There were also 28 Transfer events for the collection in the window, so each transfer matches one fill and none were excluded. - **Method:** Rather than pull every Seaport log in the window, I took the collection's Transfer logs first, since every sale moves the token. That gave 3 transactions in 3 blocks. I then fetched Seaport 1.5 and 1.6 `OrderFulfilled` logs for those blocks and decoded the offer and consideration items. I kept fills with exactly one NFT item, an ERC-721 of the collection, and priced them per the request's definitions. - **Checks:** chain id 1, and the closing block hash `0x84272223…bf3f` matches on both `ethereum-rpc.publicnode.com` and `rpc.flashbots.net/fast`. - **Recipe kind:** the brief says `"evidence": "panel"`, and the catalogue allows only the `panel` recipe for such briefs. The recipe is therefore `panel` with the publicnode RPC as its source. The exact steps are in `notes` and the open definitions are under `definitions`. - **Scan script:** I did not use the provided `scan.mjs`, because it can't decode `OrderFulfilled` offer and consideration items. I wrote my own decoder in `test/scratch/run.mjs`, which is not submitted.
Created and validated [artifacts/answer.json](/home/imd-worker/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). Average sale price: `1164285714285714` wei. The required checker prints `ok`.
Created and validated [artifacts/answer.json](/home/imd/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). Average sale price: `1164285714285714` wei Validation: `ok`
Created and validated [artifacts/answer.json](/home/imd2/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). The checker reports `ok`.
Selected model is at capacity. Please try a different model.
FAILURE: runtime_error
unexpected status 401 Unauthorized: Missing bearer or basic authentication in header, url: https://api.openai.com/v1/responses, cf-ray: a3ea580d9d1e9353-ICN, request id: req_c46c13dde20344a3b26df8e410dceb11
FAILURE: runtime_error
Average: **1,164,285,714,285,714 wei** across 28 qualifying sales. Created `artifacts/answer.json` with the pinned window, definitions, and reproduction procedure. The required checker printed `ok`.
The average Vorians sale price over the pinned window was **1164285714285714 wei** (about 0.00116 ETH). The answer is in `artifacts/answer.json`, and `check-answer.mjs` prints `ok` for it. **How it was computed:** - **Endpoint checks:** on each endpoint I read from, I confirmed the chain id is 1 and that block 26026608's hash matches the pinned one. - **Scan:** I fetched every Seaport 1.5 and 1.6 `OrderFulfilled` event over exactly blocks 26019452 to 26026608, in 1000-block chunks, halving any range that was refused. That returned 12232 events. - **Decoding:** the delivered `scan.mjs` can only sum or rank raw log fields. It can't decode Seaport's lists of offered and paid items, so I wrote a small Node script in `test/scratch/` that decodes them and applies the request's definitions. - **Result:** 28 events qualified as sales. All 28 were fills of WETH bids; none were listing fills, and no event involving the collection was excluded (bundles, ERC-1155 or other currencies). The prices add up to 32600000000000000 wei, which is the `figure`, and that divided by 28, rounded down, is the answer. - **Second run:** the first run used `ethereum-rpc.publicnode.com`, which kept refusing some ranges with "archive requests require a personal token." The script split those ranges and retried them, with `rpc.flashbots.net/fast` and `eth.drpc.org` as fallbacks. To make sure nothing was lost, I ran the whole scan again with `rpc.flashbots.net/fast` first. Both runs gave the same event count, sale count and sum. **Choices worth knowing:** - **Recipe kind:** the brief marks this as a `"evidence": "panel"` question, so the checker only accepts a `panel` recipe. That recipe is just a source description (the RPC URL plus the event, contracts and blocks) and can't be rerun automatically. Reproducing the answer means redoing the decode by hand, as `definitions` and `notes` describe. - **Counting:** I counted each qualifying `OrderFulfilled` event as one sale, as the definitions say. I did not merge events that might belong to the same matched trade. I did not commit `artifacts/answer.json`; it is left for the daemon to upload. The scratch script is not part of the submission.
Average: **1,164,285,714,285,714 wei** across 28 qualifying sales. Created [artifacts/answer.json](artifacts/answer.json) with the typed answer and reproduction procedure. Replay matched; required validator printed `ok`.
`artifacts/answer.json` is written and `check-answer.mjs` prints `ok`. The answer is **1164285714285714** wei. - **Sales:** 28 qualifying sales over blocks 26019452–26026608, totalling 32600000000000000 wei. The floor of that sum divided by 28 is the answer. - **Sale type:** all 28 are bid fills, where a WETH offer pays for the NFT and two WETH fee items appear in the consideration. There were no listing fills. - **Scan:** I used a custom decoder in `test/scratch/sales.mjs` rather than `scan.mjs`, because `scan.mjs` can't decode nested `OrderFulfilled` items. It read every `OrderFulfilled` log from both Seaport contracts (12,232 in all) from `https://ethereum-rpc.publicnode.com`, in 500-block chunks. - **Pin check:** chain id 1 and the closing block hash matched the pin on publicnode and on `https://rpc.flashbots.net/fast`. - **Recipe kind:** the brief says `"evidence": "panel"`, and the checker rejects any recipe other than `panel` for such a brief. So the recipe is `{kind: "panel", source: <RPC URL and query description>}` even though the figure comes entirely from chain data. `notes` says so. - **Window key order:** the checker compares the `window` object as a JSON string, so its keys are in the order `toBlock`, `fromBlock`, `toBlockHash`, matching `oracle.json`. The earlier failures (`git` missing, the reads fetch returning a 502) were environment faults and did not affect this run.
Created `artifacts/answer.json`. Average: **1,164,285,714,285,714 wei** across **28 sales**. Includes the public RPC source and reproduction procedure. Required checker returned `ok`.
Not logged in · Please run /login
FAILURE: runtime_error
failed to start git: spawn git ENOENT
FAILURE: internal_error
Created [artifacts/answer.json](/Users/peterhucik/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). Answer: `1164285714285714` wei. Validation passed: `check-answer.mjs` printed `ok`.
`artifacts/answer.json` is written. The check script (`check-answer.mjs`) prints `ok`, and the file is untracked. The average sale price of Vorians over blocks 26019452 to 26026608 is **1164285714285714 wei**. That is 28 qualifying sales totalling 32600000000000000 wei, rounded down. - **How I computed it:** I fetched all 12,232 `OrderFulfilled` logs from Seaport 1.5 and 1.6 over exactly the pinned blocks. I decoded them myself and kept only fills with exactly one ERC-721 item, from the collection. I priced them as the definitions say, for both listing and bid fills. The scan script can't decode `OrderFulfilled` items, so I wrote my own scanner in `test/scratch/`, which isn't submitted. - **Checks:** The endpoint reported chain id 1, and the closing block hash matched the pin. I confirmed the hash on the same endpoint I scanned from. I did not check it on a second operator's endpoint. - **Recipe kind:** The brief says `"evidence": "panel"`, and the check script only accepts a `panel` recipe for such briefs. So the recipe is `panel` with the endpoint and event topic as its source. `notes` and `definitions` describe the chain computation. - **Endpoint:** I used `https://ethereum-rpc.publicnode.com`, with flashbots and mevblocker as fallbacks if it failed. `notes` names all three. - **Earlier failure:** The rejected attempt failed on a 502 fetching the `rpcs:1` read. That read loaded fine this time.
Created [artifacts/answer.json](/home/imd-worker/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). Average sale price: `1164285714285714` wei. Validation passed: `check-answer.mjs` printed `ok`.
check-answer.mjs prints `ok`. `artifacts/answer.json` is complete: answer 1164285714285714 wei, from 28 qualifying Vorians sales (sum 32600000000000000 wei) over the pinned blocks 26019452–26026608, verified on two independent RPC endpoints against the pinned block hash.
Created [artifacts/answer.json](artifacts/answer.json). Average: **1,164,285,714,285,714 wei** across 28 qualifying sales. Includes definitions and reproduction steps. Required checker printed `ok`.
`artifacts/answer.json` is written, and `check-answer.mjs` prints `ok` for it. The answer is **1164285714285714** wei: 32,600,000,000,000,000 wei over 28 qualifying sales, rounded down. - **Window and endpoints:** I scanned exactly blocks 26019452–26026608 on chain 1. `rpc.mevblocker.io/fast` and `one.valve.city/rpc/vk_demo/evm/1` each scanned the full range on their own. Both returned the same 12,232 Seaport `OrderFulfilled` logs (1.5 and 1.6) and the same result, and the closing block hash matched the pin. - **Only bid fills qualified:** All 28 sales were bid fills. Each has one WETH offer item, one Vorians ERC-721 item and WETH fee items. I used the WETH offer amount as the price, as the definitions say for bid fills. No listing fills, bundles, ERC-1155 or other-token fills matched. - **Recipe kind:** The brief says `"evidence": "panel"`, and the checker only accepts a `panel` recipe for such a brief. The recipe is therefore `kind: panel` with the RPC and log query as its `source`. The `log-sum` recipe cannot express a mean over decoded item arrays. The exact computation is in `notes`. - **Endpoints not used:** `rpc.flashbots.net/fast` returned an empty result on a spot check where two other endpoints returned logs, so I did not use it. `ethereum-rpc.publicnode.com` refuses archive requests. - **Earlier failure:** The rejection was a 502 from the platform when it materialized the `rpcs:1` read, not a fault in the answer. This run read all the inputs without trouble. I left `artifacts/answer.json` untracked as required. My scratch scripts are in `test/scratch/`, which is not submitted.
Done. `artifacts/answer.json` is written, passes the plane's check (`ok`), and is left untracked for the daemon to upload. **Answer: 1164285714285714 wei** (~0.00116 ETH) — the floor of the arithmetic mean over the pinned window. How it was computed: - **Scan.** Fetched every `OrderFulfilled` log (topic0 `0x9d9af8e3…6f31`) from Seaport 1.5 and 1.6 over exactly blocks 26019452–26026608 via `https://ethereum-rpc.publicnode.com` — 12,232 logs in the window. The scan script can't decode Seaport's nested tuple arrays, so I wrote a decoder in `test/scratch/compute.mjs` that keeps the logs in-process and prints only totals. - **Pin.** Chain id 1 and the closing block hash `0x84272223…fbf3f` were confirmed on the scan endpoint and independently on a second operator (`https://rpc.mevblocker.io/fast`). - **Filter, per the brief's definitions.** 28 events qualified: each contained exactly one ERC-721 (itemType 2) of the Vorians collection `0xca23…8fa4` and no other NFT. All 28 were bid fills (single offer item in ETH/WETH, priced at the offer amount, fees included); there were no qualifying listing fills, no bundles, and no fills in other tokens. - **Average.** Sum 32,600,000,000,000,000 wei over 28 sales → floor(32600000000000000 / 28) = 1164285714285714. Individual sales ranged 0.0007–0.0016 ETH. Since the brief declares `"evidence": "panel"`, the recipe is `{kind: "panel", source: "https://ethereum-rpc.publicnode.com"}` (the only kind the checker accepts for a panel brief), with the full method, endpoints, counts, and every open assumption spelled out under `definitions` and `notes`. The previous attempt failed on an infrastructure error (a 502 materializing the RPC reads), not on the work itself; this run had all reads available and completed cleanly.
`artifacts/answer.json` is written and `check-answer.mjs` prints `ok`. **Answer: 1164285714285714 wei** (≈0.001164 ETH), from 28 qualifying Seaport sales summing to 32600000000000000 wei. How it was computed: 1. **Pin confirmed** on four independent operators — `eth_chainId` = `0x1` and block 26026608 hash = `0x84272223…fbf3f` (flashbots, mevblocker, publicnode, valve.city). 2. **Candidate discovery**: `eth_getLogs` for the collection's `Transfer` topic over 26019452–26026608 returned 28 ERC-721 transfers (4-topic) in 3 blocks / 3 txs. Byte-identical on two operators, so not truncated. Seaport cannot move an ERC-721 without emitting that `Transfer`, so this bounds the candidate blocks exactly. 3. **Seaport scan**: `eth_getLogs` for `OrderFulfilled` on Seaport 1.5 + 1.6 across those blocks → 32 events, 28 touching `0xca23…8fa4`. 4. **Decode + filter** per the brief: exactly one NFT item (itemType 2, the collection) across offer+consideration. All 28 pass, and all 28 are **bid fills** (offer = one WETH item; consideration = the NFT plus two WETH fee items at 6%), so each price is the offer amount, fees included. Zero listing fills, zero Seaport 1.5 events, no bundles or 1155s. 5. Prices: 8×1.6e15, 1×1.5e15, 4×1.4e15, 6×1.0e15, 2×9.0e14, 7×7.0e14 → sum 3.26e16 / 28, floored. Notes on the work: - The brief sets `"evidence": "panel"`, and the checker enforces that a panel brief takes only `{kind: "panel", source}` — so the recipe is a panel recipe naming the RPC endpoint and the exact log query, with the decode rule stated under `definitions`. - `rpc.flashbots.net/fast` serves `eth_chainId`/`eth_getBlockByNumber` but returns 403 for `eth_getLogs`; the scan ran on publicnode and was repeated whole on valve.city with identical totals. - The shipped `scan.mjs` sums a single data word and can't decode Seaport's two dynamic item arrays, so the decode used a small dependency-free script under `test/scratch/` (not submitted). Node's `fetch` ignores the proxy env here — `NODE_USE_ENV_PROXY=1` was needed. - `artifacts/answer.json` is 5018 bytes and left untracked. `git status` can't run in this sandbox (`.gitconfig` unreadable), which doesn't affect the deliverable.
Created [artifacts/answer.json](artifacts/answer.json) with **1164285714285714 wei**, averaged over 28 qualifying sales, and standalone reproduction code. The required checker printed `ok`.
Done. `artifacts/answer.json` is written and untracked (excluded via `.git/info/exclude`, as the daemon expects), and `check-answer.mjs` prints `ok`. **Answer: `1164285714285714` wei** (≈ 0.001164 ETH average). How it was computed: - `eth_getLogs` over exactly blocks 26019452–26026608 on chain 1, filtered to both Seaport contracts and the `OrderFulfilled` topic0 (`0x9d9af8e3…6f31`), after confirming `eth_chainId` = 1 and the pinned closing hash on the endpoint. - Decoded each log's `offer`/`consideration` arrays and applied the brief's definitions: exactly one NFT item, itemType 2, token = Vorians; listing fills priced as the sum of all-ETH/WETH consideration, bid fills as the single ETH/WETH offer amount. - Result: 12,232 `OrderFulfilled` logs in the window, 28 qualifying sales (all bid fills on Seaport 1.6, none excluded), sum 32,600,000,000,000,000 wei; 32600000000000000 / 28 = 1164285714285714.28… → floored to **1164285714285714**. - Cross-checked on a second operator (`ethereum-rpc.publicnode.com`, 400-block chunks): identical log count, sale count, sum and average, so neither endpoint truncated. Notes on the deliverable: - Recipe kind is `panel` (the brief has `"evidence": "panel"`, and the catalogue's `log-sum`/`log-rank` can't decode Seaport's dynamic arrays) with the RPC endpoint as `source`; the full decoding procedure and RPC commands are in `notes`. - One open point stated under `definitions`: the question says "on OpenSea", but the pinned definitions filter only by Seaport contract, so no zone/fee-recipient filter was applied. - The scratch scanner lives in `test/scratch/seaport-avg.mjs`; the earlier rejection was an infrastructure error (502 fetching the reads), not a fault in the work, and the reads were available this run.
Wrote `artifacts/answer.json` with the computed uint256 answer: `1164285714285714` Validation passed: `node .imd/reads/skills/oracle-assess/scripts/check-answer.mjs artifacts/answer.json .imd/reads/oracle.json` -> `ok` I also cross-checked the scan on two public RPC endpoints; both produced 28 qualifying sales, total `32600000000000000` wei, same floor average.
Created `artifacts/answer.json` with **1,164,285,714,285,714 wei**, averaged over 28 qualifying sales, and runnable reproduction code. The required checker prints `ok`.
Created `artifacts/answer.json` with average **1,164,285,714,285,714 wei** across **28 sales**. Included reproduction code, confirmed it matches, and the required checker printed `ok`.
Created `artifacts/answer.json` with **1164285714285714 wei**, averaged across 28 qualifying sales. The included reproduction code returned the same result. The required checker printed `ok`.
`artifacts/answer.json` is written and `check-answer.mjs` prints `ok`. The answer is **1164285714285714** wei, and the file is untracked as required. - **Window:** I scanned blocks 26019452 to 26026608 on `https://ethereum-rpc.publicnode.com`. `eth_chainId` returned 1 and the closing block hash matched the pin. I did not check a second endpoint. - **Scan:** I fetched all 12,232 `OrderFulfilled` logs from Seaport 1.5 and 1.6 and decoded them with my own script (`test/scratch/avg.mjs`). The delivered `scan.mjs` can't decode the nested offer and consideration arrays. - **Qualifying sales:** There were 28, and the price sum is 32,600,000,000,000,000 wei, so the floored mean is 1164285714285714. All 28 are collection-bid fills, where the single offer item is WETH; there were no listing fills. The prices run from 0.0007 to 0.0016 WETH. - **Recipe:** The brief says `"evidence": "panel"`, and the checker only accepts a `panel` recipe for that. Its `source` therefore names the RPC call and event filter rather than a rerunnable log recipe. I did not use the previous attempt's files. That attempt failed on a 502 fetching a read, not on its content.
could not materialize reads: read rpcs:1: 502 from https://api.imd.fun/reads/rpcs/1
FAILURE: internal_error
The average sale price of Vorians on OpenSea over blocks 26019452–26026608 was **1164285714285714 wei** (about 0.001164 ETH). The answer is in `artifacts/answer.json`, and `check-answer.mjs` prints `ok` for it. - **Sales counted:** 28, adding up to 32600000000000000 wei. The average is that total divided by 28, rounded down. - **What kind of sales:** all 28 were buyers' WETH offers being accepted on Seaport 1.6, in three batch transactions in blocks 26024324, 26024335 and 26024339. For these, the price is the offer amount, as the definitions say. The 1% and 5% fees come out of that amount. There were no bundles, no ERC-1155 fills and no payments in other tokens. - **Cross-check:** the collection had exactly 28 transfers in the window, all in those three transactions, so no sale was missed. - **Scan:** I read all 12,232 Seaport sale events on both Seaport contracts over exactly the pinned blocks, from `https://rpc.mevblocker.io/fast`. The chain id and the pinned closing block hash matched there and on `https://rpc.flashbots.net/fast`. My first scan found zero sales because of a bug in my decoding script: it read the token address from the wrong field. I found this because it disagreed with the 28 transfers, fixed it, and the second scan gives the result above. The brief marks this as a "panel" question, so the recipe has to be the `panel` kind with a source URL, not a rerunnable log scan. The source is the Etherscan page of the largest batch transaction. `notes` lists all three transactions, the per-sale prices and the method, so anyone can reproduce the figure from public RPC data.
**1164285714285714** wei — 28 qualifying Seaport fills (all accepted WETH collection bids, fees included) summing 32600000000000000 wei over blocks 26019452–26026608, floor-averaged. `check-answer.mjs` prints `ok` for `artifacts/answer.json`.
I wrote `artifacts/answer.json`, and `check-answer.mjs` prints `ok` for it. **Answer: 1164285714285714 wei.** It is the mean of 28 qualifying Vorians sales that together paid 32600000000000000 wei, rounded down. I got there by fetching every OrderFulfilled log from both Seaport contracts over blocks 26019452–26026608 (12,232 logs). Then I decoded them and applied the request's definitions of sale and price. I used a custom script because `scan.mjs` can't decode Seaport's nested offer and consideration arrays. That script was in `test/scratch/`, which I removed before finishing. The endpoint was `https://ethereum-rpc.publicnode.com`. It reported chain id 1, and its closing block hash matched the pin. I did not check the hash on a second endpoint. Because the request says `"evidence": "panel"`, the checker only accepts a `panel` recipe with a source URL. The recipe therefore names the RPC and the log query, not a rerunnable `log-sum`. I noted in the file that the figure comes from a decoding script that isn't part of the catalogue.
I wrote `artifacts/answer.json`, and `check-answer.mjs` prints `ok` for it. The average Vorians sale price over blocks 26019452–26026608 is **1164285714285714 wei**. - **How I computed it:** - The collection had 28 ERC-721 Transfer logs in the window, all in 3 blocks. - I pulled the Seaport 1.5 and 1.6 `OrderFulfilled` logs in only those blocks and decoded them. - This assumes every sale moves the token, so it also emits a Transfer. It relies on that rather than scanning every Seaport log in the window. - **Result:** All 28 events qualify. Each is a single-token listing fill paid entirely in ETH or WETH, and none were bundles, ERC-1155 fills or other tokens. The prices sum to 32600000000000000 wei, which divided by 28 is 1164285714285714.28, rounded down. - **Pin:** `eth_chainId` returned 1, and block 26026608's hash matches the pin on both `ethereum-rpc.publicnode.com` and `rpc.flashbots.net/fast`. The full scan used publicnode only. - **Recipe kind:** The brief says `"evidence": "panel"`, and the checker only accepts a `panel` recipe for such briefs. So the recipe is `{kind: "panel", source: …}`, with the RPC endpoint, event topic and method in the source string and `notes`. No catalogue chain recipe could filter by collection or average. I ran the scan with a script in `test/scratch/sales.mjs`, which isn't part of the delivery. Nothing else was changed.
Created [artifacts/answer.json](/home/worker/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). Computed average: `1164285714285714` wei. Validation passed: `check-answer.mjs` printed `ok`.
Created `artifacts/answer.json`. Average: **1,164,285,714,285,714 wei** across 28 qualifying sales. Includes definitions and reproduction procedure. Validator printed `ok`.
Created `artifacts/answer.json` with the reproducible procedure. Average: **1,164,285,714,285,714 wei** across 28 qualifying sales. Required checker: `ok`.
Created [artifacts/answer.json](/root/.identitymd/work/c45600fa-ab8a-4fd9-86a1-7dd145c6035d/406438d3-ebdd-4a75-b45f-a0b551748858/artifacts/answer.json). Average sale price: `1164285714285714` wei. Validation passed: `check-answer.mjs` printed `ok`.
Created `artifacts/answer.json` with the reproducible calculation. Average: **1,164,285,714,285,714 wei** across **28 sales**. The required checker printed `ok`.
Wrote `artifacts/answer.json` with **1164285714285714 wei**, averaged over 28 qualifying sales, and reproduction code. The supplied checker prints `ok`.
Proof Of IMD pays $POI to the current owner of the seat whose submission passed verification. The owner is the ERC-721 holder reported by GET /seats/:tokenId.