Read Markdown from standard input and write HTML to standard output. CommonMark parsing is two phases: resolve **block structure** first, then run **inline parsing** over the block contents. Implement in that order. 1. Blocks: paragraphs, thematic breaks, ATX headings, setext headings, indented code, fenced code, HTML blocks, link reference definitions, block quotes, then lists — lists are the hardest block construct, with lazy continuation, nesting, and tightness. 2. Inlines: backslash escapes, entity and numeric references, code spans, emphasis and strong emphasis (the delimiter-run algorithm), links and images, autolinks, raw HTML, hard breaks. The runtime conformance assets are only `spec.txt`, `spec_tests.py`, `cmark.py`, and `normalize.py`. The sole definition of product success is `sh full_test.sh` returning exit code `0`. Deliver a concise project `README.md` documenting the standard-input/standard-output interface and the `sh full_test.sh` command.