{
  "schema": "judson-two-course-learner-routes/v1",
  "created_utc": "2026-08-31T13:18:05.075319+00:00",
  "result": "offline_routes_verified_live_accessible_not_frozen_byte_identical",
  "scope": "Student-usable chapter navigation for C30 and C40 derived from the existing native memberships and exact frozen WEB package; no copied chapter prose, no owner/source changes, no duplicate native graph.",
  "summary": {
    "courses": 2,
    "course_chapter_counts": {
      "C30": 15,
      "C40": 8
    },
    "canonical_chapter_routes": 23,
    "duplicated_chapters": 0,
    "offline_chapter_html_bytes": 1830695,
    "offline_package_and_member_identity": "pass",
    "live_HTTP_200": 23,
    "live_byte_identical_to_frozen": 0,
    "live_identity_mismatches": 23,
    "live_received_bytes": 2491629
  },
  "authority": {
    "owner_native_source_package": {
      "name": "ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2_SOURCE_BACKEND.zip",
      "bytes": 69370499,
      "sha256": "0aa85116679703b632333f4003b3373f42bb7b282c3719bea3731257c0fe55e0",
      "public_url": "https://zenodo.org/records/22062449/files/ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2_SOURCE_BACKEND.zip?download=1",
      "role": "Public input source for native backend manifests/memberships; native standalone build replay was not repeated by this route task."
    },
    "central_capsule_public_base_source": {
      "path": "04_mirrors/id/program-matematika-indonesia-v06213/releases/v0.62.13/course-capsules-v1.jsonl",
      "bytes": 226934,
      "sha256": "2c885781e9b69de6afdc2cbfe8e7d95d26ba97f0ffe571a12b4ec1ead575d6d1",
      "row_selectors": [
        {
          "course_id": "C30",
          "jsonl_line": 17,
          "json_pointer": "/layers/learner/primary/url"
        },
        {
          "course_id": "C40",
          "jsonl_line": 18,
          "json_pointer": "/layers/learner/primary/url"
        }
      ]
    },
    "authority_transfer": false
  },
  "offline": {
    "chapter_routes": 23,
    "copied_chapter_prose": false,
    "courses": [
      {
        "chapter_count": 15,
        "course_id": "C30",
        "localized_title": "Aljabar Abstrak I",
        "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
        "routes": [
          {
            "archive_member": "sets.html",
            "bytes": 78716,
            "chapter_number": 1,
            "html_chapter_id": "sets",
            "localized_title": "Pendahuluan",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:bcd4bc73-095c-5567-b397-e56f00a8383c",
            "native_source_path": "sets.xml",
            "native_unit_id": "urn:uuid:53aae041-87a4-55d0-9f3e-8ecf957b711f",
            "offline_href": "sets.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/sets.html",
            "sequence": 1,
            "sha256": "2ecf23e87f12b47fbf1116c02997834dc1ce58181da4103e85f13f3f8d7e78ff",
            "toc_href": "sets.html"
          },
          {
            "archive_member": "integers.html",
            "bytes": 78660,
            "chapter_number": 2,
            "html_chapter_id": "integers",
            "localized_title": "Bilangan Bulat",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:4e99a4b6-283d-5a26-94a3-d7ce06bba55a",
            "native_source_path": "integers.xml",
            "native_unit_id": "urn:uuid:997bf90d-593e-5984-ae8d-eb5d611dcf34",
            "offline_href": "integers.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/integers.html",
            "sequence": 2,
            "sha256": "f5976ef7dce8463bb8aba8a76f05c30104d938fb848faf6c5dd2d110fa8d2067",
            "toc_href": "integers.html"
          },
          {
            "archive_member": "groups.html",
            "bytes": 79915,
            "chapter_number": 3,
            "html_chapter_id": "groups",
            "localized_title": "Grup",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:c7b82345-95d0-517f-8515-d7ae559e80fc",
            "native_source_path": "groups.xml",
            "native_unit_id": "urn:uuid:223cbae1-eef3-560f-997b-6db76996dfa5",
            "offline_href": "groups.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/groups.html",
            "sequence": 3,
            "sha256": "8e93cc5778c81dbec11a7f00aa9ee3dd3ab2473ce370f95d3c545f2eb8f24b8c",
            "toc_href": "groups.html"
          },
          {
            "archive_member": "cyclic.html",
            "bytes": 78978,
            "chapter_number": 4,
            "html_chapter_id": "cyclic",
            "localized_title": "Grup Siklik",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:a1b4ac33-4415-5c03-ab31-8adbdc5c4519",
            "native_source_path": "cyclic.xml",
            "native_unit_id": "urn:uuid:a626fe3a-425d-51d0-ad22-a54068c591c7",
            "offline_href": "cyclic.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/cyclic.html",
            "sequence": 4,
            "sha256": "61993ef71e97e2bad92a270f64aeef7d467517c20fbe62d6ddc0a9f260da9205",
            "toc_href": "cyclic.html"
          },
          {
            "archive_member": "permute.html",
            "bytes": 80953,
            "chapter_number": 5,
            "html_chapter_id": "permute",
            "localized_title": "Grup Permutasi",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:c5d6e186-d111-58aa-8723-b5ad7f090e39",
            "native_source_path": "permute.xml",
            "native_unit_id": "urn:uuid:e9ca6995-3915-56c3-8298-e0d61c730dbf",
            "offline_href": "permute.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/permute.html",
            "sequence": 5,
            "sha256": "41684c937dc4e494dd84c476fe6d8ccdefa651e85ed3ed24e10dfa3c0e91460b",
            "toc_href": "permute.html"
          },
          {
            "archive_member": "cosets.html",
            "bytes": 78681,
            "chapter_number": 6,
            "html_chapter_id": "cosets",
            "localized_title": "Koset dan Teorema Lagrange",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:1928b05f-d208-5eed-aac4-5cb7013a3b95",
            "native_source_path": "cosets.xml",
            "native_unit_id": "urn:uuid:4085df75-de7f-58c6-9684-932fd5dc66cd",
            "offline_href": "cosets.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/cosets.html",
            "sequence": 6,
            "sha256": "ff9af6f72b9e60f21d88fde63d4780181dc16441d5570a96741885f29dc007a5",
            "toc_href": "cosets.html"
          },
          {
            "archive_member": "crypt.html",
            "bytes": 82562,
            "chapter_number": 7,
            "html_chapter_id": "crypt",
            "localized_title": "Pengantar Kriptografi",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:beb78620-3e58-5fdf-8cbb-959e2155263c",
            "native_source_path": "crypt.xml",
            "native_unit_id": "urn:uuid:aea4a190-5bdb-5f31-b288-8647c1155d22",
            "offline_href": "crypt.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/crypt.html",
            "sequence": 7,
            "sha256": "df904aea7b9dcdd1f4d18667a187761fd31ce3b5d5a45f822cc5e1e85f4a1bc3",
            "toc_href": "crypt.html"
          },
          {
            "archive_member": "algcodes.html",
            "bytes": 79618,
            "chapter_number": 8,
            "html_chapter_id": "algcodes",
            "localized_title": "Teori Pengodean Aljabar",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:94db9347-8787-5331-8bcd-b849fa6a6913",
            "native_source_path": "algcodes.xml",
            "native_unit_id": "urn:uuid:cff872d7-b714-5478-a892-c3f1015fd90b",
            "offline_href": "algcodes.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/algcodes.html",
            "sequence": 8,
            "sha256": "8fb396abefb83fc1038b7450e941ceb82a0e4c8e530526c21f3da80ed9e3509b",
            "toc_href": "algcodes.html"
          },
          {
            "archive_member": "isomorph.html",
            "bytes": 78691,
            "chapter_number": 9,
            "html_chapter_id": "isomorph",
            "localized_title": "Isomorfisma",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:27911f9c-81aa-5a47-bdc3-d0e3180ed51f",
            "native_source_path": "isomorph.xml",
            "native_unit_id": "urn:uuid:bb505a87-fb74-5965-8f03-754d83313cd6",
            "offline_href": "isomorph.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/isomorph.html",
            "sequence": 9,
            "sha256": "cae6d22801d61ab28a14c028bff04189ee0a37bc74eeafb4d873e6dcccc28430",
            "toc_href": "isomorph.html"
          },
          {
            "archive_member": "normal.html",
            "bytes": 78986,
            "chapter_number": 10,
            "html_chapter_id": "normal",
            "localized_title": "Subgrup Normal dan Grup Hasil Bagi",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:e1604af9-c242-596c-9020-0471c055b2df",
            "native_source_path": "normal.xml",
            "native_unit_id": "urn:uuid:17f2354d-b104-5791-9d25-d26273bd301c",
            "offline_href": "normal.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/normal.html",
            "sequence": 10,
            "sha256": "ccdaf96952241a5f2062b63db364a762a6eac44103589b1efd0a2a6dd3434cb0",
            "toc_href": "normal.html"
          },
          {
            "archive_member": "homomorph.html",
            "bytes": 78557,
            "chapter_number": 11,
            "html_chapter_id": "homomorph",
            "localized_title": "Homomorfisma",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:b1675bef-9837-5bd3-83c9-26181e421659",
            "native_source_path": "homomorph.xml",
            "native_unit_id": "urn:uuid:0e0d9c15-e1b2-5d20-b7d9-4679cefbfc40",
            "offline_href": "homomorph.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/homomorph.html",
            "sequence": 11,
            "sha256": "e40276cb223f0464390ab51c1c2bf0a9fb795a73c7853e735fcf0cce1fbe797d",
            "toc_href": "homomorph.html"
          },
          {
            "archive_member": "matrix.html",
            "bytes": 79057,
            "chapter_number": 12,
            "html_chapter_id": "matrix",
            "localized_title": "Grup Matriks dan Simetri",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:76e72610-8b22-5108-81dc-db35ee05d142",
            "native_source_path": "matrix.xml",
            "native_unit_id": "urn:uuid:d4affb4a-2696-5241-ae4d-c0c4732e26e4",
            "offline_href": "matrix.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/matrix.html",
            "sequence": 12,
            "sha256": "86fc6303a34bddd98920d2be33222009ebcfda4371bb34b87364365550db519a",
            "toc_href": "matrix.html"
          },
          {
            "archive_member": "struct.html",
            "bytes": 80264,
            "chapter_number": 13,
            "html_chapter_id": "struct",
            "localized_title": "Struktur Grup",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:dd1391d7-ead5-5aa9-9caa-42a892b79dc2",
            "native_source_path": "struct.xml",
            "native_unit_id": "urn:uuid:60033c47-b594-5089-b3b8-62ed60f76947",
            "offline_href": "struct.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/struct.html",
            "sequence": 13,
            "sha256": "993d20452a10c7fccee0c63ec87e50f613e2210e51d277f790e4bed2b6bba0dd",
            "toc_href": "struct.html"
          },
          {
            "archive_member": "actions.html",
            "bytes": 79269,
            "chapter_number": 14,
            "html_chapter_id": "actions",
            "localized_title": "Aksi Grup",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:0752304b-c0b7-5755-aa3d-40e3f717bc2a",
            "native_source_path": "actions.xml",
            "native_unit_id": "urn:uuid:b1a8d0e7-978f-5598-b8e0-94c196356aa1",
            "offline_href": "actions.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/actions.html",
            "sequence": 14,
            "sha256": "e7e8e0e78dc16cc67f03df2cfcf3e70a58258fbdb9ea18330609e492175aad16",
            "toc_href": "actions.html"
          },
          {
            "archive_member": "sylow.html",
            "bytes": 79298,
            "chapter_number": 15,
            "html_chapter_id": "sylow",
            "localized_title": "Teorema Sylow",
            "native_course_id": "urn:uuid:285dacba-7abe-5c28-8639-ccb950e18f97",
            "native_membership_id": "urn:uuid:b55eabc2-eeaa-5fee-af31-7a9c2129cd2c",
            "native_source_path": "sylow.xml",
            "native_unit_id": "urn:uuid:d1e115af-6ff3-59fc-a95d-13e8530f4aa9",
            "offline_href": "sylow.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/sylow.html",
            "sequence": 15,
            "sha256": "7e0217328be66c58bed1206f180c56a5f195bbc78bbfa4ad936dd8136652a242",
            "toc_href": "sylow.html"
          }
        ]
      },
      {
        "chapter_count": 8,
        "course_id": "C40",
        "localized_title": "Aljabar Abstrak II",
        "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
        "routes": [
          {
            "archive_member": "rings.html",
            "bytes": 79659,
            "chapter_number": 16,
            "html_chapter_id": "rings",
            "localized_title": "Gelanggang",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:665bec3e-a0fd-5178-a31a-eb9ece8adad4",
            "native_source_path": "rings.xml",
            "native_unit_id": "urn:uuid:905a1dfd-9570-5ffd-839f-29288e821787",
            "offline_href": "rings.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/rings.html",
            "sequence": 1,
            "sha256": "e9c316d747fc027350cfab6d6956bde4ef1e504c8da3aa237c5111f5c1ae7098",
            "toc_href": "rings.html"
          },
          {
            "archive_member": "poly.html",
            "bytes": 79912,
            "chapter_number": 17,
            "html_chapter_id": "poly",
            "localized_title": "Polinomial",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:c6e37950-ca6f-5d21-b49a-9e4203ac1885",
            "native_source_path": "poly.xml",
            "native_unit_id": "urn:uuid:fa9e0f66-bf67-5a34-bcd4-01a17466c928",
            "offline_href": "poly.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/poly.html",
            "sequence": 2,
            "sha256": "98636d3796634faa6b3a3f2625d337aa66385f5506a33495d8cff0cafcebd985",
            "toc_href": "poly.html"
          },
          {
            "archive_member": "domains.html",
            "bytes": 79109,
            "chapter_number": 18,
            "html_chapter_id": "domains",
            "localized_title": "Daerah Integral",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:feecee7f-9357-5d3e-a016-8500ebdc78d5",
            "native_source_path": "domains.xml",
            "native_unit_id": "urn:uuid:f486075b-7d82-55b6-99f9-9c865e6b8f66",
            "offline_href": "domains.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/domains.html",
            "sequence": 3,
            "sha256": "55b2428fcc6de03dd56aba35964268d772c27ff4044a1b29a30e8d61afa3d67f",
            "toc_href": "domains.html"
          },
          {
            "archive_member": "boolean.html",
            "bytes": 79510,
            "chapter_number": 19,
            "html_chapter_id": "boolean",
            "localized_title": "Latis dan Aljabar Boolean",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:876134f8-233f-5c2c-bdd2-446028069fcb",
            "native_source_path": "boolean.xml",
            "native_unit_id": "urn:uuid:cf375a97-4e79-5bb6-a670-cf251a91df9b",
            "offline_href": "boolean.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/boolean.html",
            "sequence": 4,
            "sha256": "74c6a23e0c3365e3b4a3f27013f72cbb15af39a6dffc5cd3a038c21f492ef00f",
            "toc_href": "boolean.html"
          },
          {
            "archive_member": "vect.html",
            "bytes": 79821,
            "chapter_number": 20,
            "html_chapter_id": "vect",
            "localized_title": "Ruang Vektor",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:5c373db2-51c3-5bf5-8eeb-745efd1e6fd4",
            "native_source_path": "vect.xml",
            "native_unit_id": "urn:uuid:8ba89931-9b1f-5f44-a2c7-a7f7d036509b",
            "offline_href": "vect.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/vect.html",
            "sequence": 5,
            "sha256": "a676999bf8d5d095b2b390e8fb509a1ccd3e2c9f09c45b27e0d63a66c5c75f22",
            "toc_href": "vect.html"
          },
          {
            "archive_member": "fields.html",
            "bytes": 81048,
            "chapter_number": 21,
            "html_chapter_id": "fields",
            "localized_title": "Lapangan",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:dbba1f34-9650-5ba1-a028-bec072e2ca0d",
            "native_source_path": "fields.xml",
            "native_unit_id": "urn:uuid:3c8443fd-c81e-51f1-95a1-7e3fe56d60e5",
            "offline_href": "fields.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/fields.html",
            "sequence": 6,
            "sha256": "5329c9c463f97d54c96f480623128251a7dadae322efa0fcc47e5bdb019db765",
            "toc_href": "fields.html"
          },
          {
            "archive_member": "finite.html",
            "bytes": 79136,
            "chapter_number": 22,
            "html_chapter_id": "finite",
            "localized_title": "Lapangan Hingga",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:6439730b-4e4e-50e3-ae60-95ed77ba4694",
            "native_source_path": "finite.xml",
            "native_unit_id": "urn:uuid:8f02c28e-2521-5a94-835a-1dd4eda3a5b4",
            "offline_href": "finite.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/finite.html",
            "sequence": 7,
            "sha256": "3e7188d6b78157cf1c576903bee497c1808372203cd27f1aa381a9c552860bb0",
            "toc_href": "finite.html"
          },
          {
            "archive_member": "galois.html",
            "bytes": 80295,
            "chapter_number": 23,
            "html_chapter_id": "galois",
            "localized_title": "Teori Galois",
            "native_course_id": "urn:uuid:4b3d9e7b-0842-554c-8de5-96cc342bbe2a",
            "native_membership_id": "urn:uuid:73baab67-e1d3-5d98-be7b-109031569d8a",
            "native_source_path": "galois.xml",
            "native_unit_id": "urn:uuid:cdf62eb2-5774-577c-92c2-8f4d229a23be",
            "offline_href": "galois.html",
            "page_mapping_member": ".mapping.json",
            "public_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/galois.html",
            "sequence": 8,
            "sha256": "f92ecdf141bf73e681590be80dc7999227adf8eb6abb86f638599ef3e6cd4a12",
            "toc_href": "galois.html"
          }
        ]
      }
    ],
    "derivation": "native course membership -> canonical chapter unit/XML ID -> existing WEB member and actual TOC href -> matching chapter section ID and localized h1 title; all member bytes match WEB package manifest",
    "duplicated_chapters": 0,
    "locale": "id-ID",
    "native_backend_manifest": {
      "bytes": 5669,
      "name": "backend/v1/manifest.json",
      "sha256": "4294d16f96ea7fa405d6841e308e7c90c08152a2c7eb6cefe45a44e5b705bcd1"
    },
    "native_edition": "2026.08.22.2",
    "native_inputs": [
      {
        "bytes": 1176,
        "name": "courses/courses.jsonl",
        "sha256": "9723e8020b4407c7b14a077ddfb475cfc47eae3666c8bfcd3d17d682ffef4982"
      },
      {
        "bytes": 9896,
        "name": "courses/course-units.jsonl",
        "sha256": "8cdffd21c7867cc91da9d6c00f68d9e8e585d74777ef8ca15f7bc108f424000d"
      },
      {
        "bytes": 3013695,
        "name": "topology/units.jsonl",
        "sha256": "c3ec8fd2f36566e3f4d02a1549b1b768170305737fff7985f7770760168f4140"
      }
    ],
    "page_mapping": {
      "bytes": 3657,
      "name": ".mapping.json",
      "sha256": "23d8fb7e2e2392f9e95d160b8172bb31ac8ece7b805b0a7303a71e1569c13d46"
    },
    "public_base_source": "v0.62.13 course capsules C30/C40 /layers/learner/primary/url",
    "public_base_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/",
    "record_id": 22062449,
    "schema": "judson-two-course-learner-routes-offline/v1",
    "source_release_manifest": {
      "bytes": 2445,
      "name": "RELEASE_MANIFEST.json",
      "sha256": "19edcfb1223be1a5b416598e0a3224bb99df91dbff8929ea853cb8b31e3365ee"
    },
    "toc": {
      "bytes": 79970,
      "name": "aata-toc.html",
      "sha256": "cb78669e1e7004eeec48fffd66983ed252712ff4191994d8bef7cc0374dfc1e1"
    },
    "web_archive": {
      "bytes": 27339920,
      "name": "ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2_WEB.zip",
      "public_url": "https://zenodo.org/records/22062449/files/ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2_WEB.zip?download=1",
      "sha256": "cb27ec5671b7e2378da0754a607125b43367ba6eca473d3dc11afd307313a7c1"
    },
    "web_package_manifest": {
      "bytes": 122763,
      "name": "PACKAGE_MANIFEST.csv",
      "sha256": "849b8fd4a69a3738403b7cd0ca1f59c06be9eadcf5718b0c89d765680e81ce8e"
    }
  },
  "live_verification": {
    "max_concurrency": 2,
    "observations": [
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/sets.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:53aae041-87a4-55d0-9f3e-8ecf957b711f",
        "observed_bytes": 107330,
        "observed_sha256": "e374fb89eaf0138ef31a334fe4c5ffd4b97366124b0bb92f7cc094ea2fc74c05",
        "observed_utc": "2026-08-31T13:18:02.543149+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/sets.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 1
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/integers.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:997bf90d-593e-5984-ae8d-eb5d611dcf34",
        "observed_bytes": 107598,
        "observed_sha256": "6fd55d1daa227fdb6c57623749b3bd8b1c3ab9dfb1215d01fcd31aeeae84bc01",
        "observed_utc": "2026-08-31T13:18:02.543668+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/integers.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 2
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/groups.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:223cbae1-eef3-560f-997b-6db76996dfa5",
        "observed_bytes": 108849,
        "observed_sha256": "de542bbfe5d56f5ee354de6909b158f1f4cd6e2ce05c246e2442038d75874362",
        "observed_utc": "2026-08-31T13:18:02.752585+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/groups.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 3
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/cyclic.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:a626fe3a-425d-51d0-ad22-a54068c591c7",
        "observed_bytes": 107868,
        "observed_sha256": "d6c51b1f9a7060fbd2f039f26f4b18f3162fcd02c53bc6f37b5b1e6c9c973f3f",
        "observed_utc": "2026-08-31T13:18:02.776060+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/cyclic.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 4
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/permute.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:e9ca6995-3915-56c3-8298-e0d61c730dbf",
        "observed_bytes": 110153,
        "observed_sha256": "fa2f7ac3695c7755a36706e0cec24752468268e3bc5d4bc631a59efe00e048d1",
        "observed_utc": "2026-08-31T13:18:02.951839+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/permute.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 5
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/cosets.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:4085df75-de7f-58c6-9684-932fd5dc66cd",
        "observed_bytes": 107617,
        "observed_sha256": "e543f0c660e3d283925613e71cb9dc07678bd67d2405e6db2365a97c4d8a502a",
        "observed_utc": "2026-08-31T13:18:02.975763+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/cosets.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 6
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/crypt.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:aea4a190-5bdb-5f31-b288-8647c1155d22",
        "observed_bytes": 111496,
        "observed_sha256": "5f0e3bc52f2b3b729d239f09bcb311e7974089c413928b91bd17de38a84581cb",
        "observed_utc": "2026-08-31T13:18:03.140824+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/crypt.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 7
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/algcodes.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:cff872d7-b714-5478-a892-c3f1015fd90b",
        "observed_bytes": 108249,
        "observed_sha256": "5409c21c9b8319adaa2c234022b05573596f4adfcf9fc640ca8e24f730c75b5f",
        "observed_utc": "2026-08-31T13:18:03.172115+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/algcodes.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 8
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/isomorph.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:bb505a87-fb74-5965-8f03-754d83313cd6",
        "observed_bytes": 107321,
        "observed_sha256": "5b40275fbeb1fe0a69587fdd41bc5921889b25606db03fe5b828b234a1ac0170",
        "observed_utc": "2026-08-31T13:18:03.335677+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/isomorph.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 9
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/normal.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:17f2354d-b104-5791-9d25-d26273bd301c",
        "observed_bytes": 107924,
        "observed_sha256": "8c5808d82cdff8fdc9656ff666aa2ace322404887148742ea6cb69112971b049",
        "observed_utc": "2026-08-31T13:18:03.365472+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/normal.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 10
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/homomorph.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:0e0d9c15-e1b2-5d20-b7d9-4679cefbfc40",
        "observed_bytes": 107193,
        "observed_sha256": "7761c20b3143145c384c88c16cf0674178db2c20a799aae68fa23427fb2432f1",
        "observed_utc": "2026-08-31T13:18:03.534417+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/homomorph.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 11
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/matrix.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:d4affb4a-2696-5241-ae4d-c0c4732e26e4",
        "observed_bytes": 107308,
        "observed_sha256": "b70e5fe97dfcf9e3a9773b2587e691d6e7cfb5c039fd380ac98d3d292d7fb90e",
        "observed_utc": "2026-08-31T13:18:03.559087+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/matrix.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 12
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/struct.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:60033c47-b594-5089-b3b8-62ed60f76947",
        "observed_bytes": 108892,
        "observed_sha256": "b7cc99201dcc98e5b2675e175301ac512a1c8274efeb3e2736d115459bf55db6",
        "observed_utc": "2026-08-31T13:18:03.722412+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/struct.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 13
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/actions.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:b1a8d0e7-978f-5598-b8e0-94c196356aa1",
        "observed_bytes": 107899,
        "observed_sha256": "1b5730764e9966d241d096a3477c469ea301c75cd85dffde9b6f21959ee3548f",
        "observed_utc": "2026-08-31T13:18:03.755017+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/actions.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 14
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C30",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/sylow.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:d1e115af-6ff3-59fc-a95d-13e8530f4aa9",
        "observed_bytes": 108188,
        "observed_sha256": "5ef4d43a9da7087f08d7df84f5219d1084512c060a4d3b98cb24ad09bc5d8ff2",
        "observed_utc": "2026-08-31T13:18:03.931104+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/sylow.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 15
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/rings.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:905a1dfd-9570-5ffd-839f-29288e821787",
        "observed_bytes": 108287,
        "observed_sha256": "47e2f52e780d1cfd062cf5c86a803999087e3683519eb5f5f3cd1b174dfe2389",
        "observed_utc": "2026-08-31T13:18:03.963040+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/rings.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 1
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/poly.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:fa9e0f66-bf67-5a34-bcd4-01a17466c928",
        "observed_bytes": 108536,
        "observed_sha256": "0daf60d8793adeb1eaee979455f9a810bab5d342127f3797377aa2f019afb547",
        "observed_utc": "2026-08-31T13:18:04.185772+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/poly.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 2
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/domains.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:f486075b-7d82-55b6-99f9-9c865e6b8f66",
        "observed_bytes": 107709,
        "observed_sha256": "ea71ef0240a6bda8844b9dd78204ef794dee581726af9a9c5fafe211e2159088",
        "observed_utc": "2026-08-31T13:18:04.218687+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/domains.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 3
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/boolean.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:cf375a97-4e79-5bb6-a670-cf251a91df9b",
        "observed_bytes": 108140,
        "observed_sha256": "20a634fda3baa356196685c90c5ff67856ee3696f267965d262ca9d1f13cd261",
        "observed_utc": "2026-08-31T13:18:04.621475+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/boolean.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 4
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/vect.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:8ba89931-9b1f-5f44-a2c7-a7f7d036509b",
        "observed_bytes": 108445,
        "observed_sha256": "27d0e6a147c2175df890fa6821d6c90b139955c4e97a8bffdc142408d584b10a",
        "observed_utc": "2026-08-31T13:18:04.680026+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/vect.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 5
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/fields.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:3c8443fd-c81e-51f1-95a1-7e3fe56d60e5",
        "observed_bytes": 109940,
        "observed_sha256": "377040cdbec9d286c3a904eab10164b52aa6496b0422ab12529b1735e9a17382",
        "observed_utc": "2026-08-31T13:18:04.857731+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/fields.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 6
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/finite.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:8f02c28e-2521-5a94-835a-1dd4eda3a5b4",
        "observed_bytes": 107764,
        "observed_sha256": "f94befb9bd18ce0aef947e2d6e781a69081dade9e21db69bfab8d39386c4444a",
        "observed_utc": "2026-08-31T13:18:04.889859+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/finite.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 7
      },
      {
        "attempt_count": 1,
        "authentication": "none",
        "body_limit_exceeded": false,
        "course_id": "C40",
        "final_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/galois.html",
        "http_status": 200,
        "matches_frozen_html": false,
        "method": "GET",
        "native_unit_id": "urn:uuid:cdf62eb2-5774-577c-92c2-8f4d229a23be",
        "observed_bytes": 108923,
        "observed_sha256": "70e69f7d250492cae6a5d0fea22f0c0a39a808018c4c70a3f1fc78d0c90bf658",
        "observed_utc": "2026-08-31T13:18:05.075319+00:00",
        "redirects_followed": 0,
        "requested_url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/galois.html",
        "result": "accessible_not_frozen_byte_identical",
        "sequence": 8
      }
    ],
    "redirects_followed": 0,
    "request_count": 23,
    "retry_count": 0,
    "body_limit_bytes": 2097152,
    "visible_browser_used": false,
    "interpretation": "All requested paths returned HTTP 200, but all response identities differ from the frozen WEB package. These observations establish reachability at the observation time, not equality with the frozen edition or semantic equivalence. No retry or extra fetch was made to diagnose differences.",
    "future_freshness": "A deterministic local replay verifies only the frozen offline bindings and does not reassert these dated live observations.",
    "live_title_and_section_id_comparison": "not_performed_response_bodies_were_not_retained; no additional GETs were made"
  },
  "student_use": {
    "online": {
      "url_field": "offline.courses[].routes[].public_url",
      "label_id": "Buka bab daring; versi situs dapat berbeda",
      "version_warning_id": "Tautan daring dapat dibuka, tetapi byte halaman situs tidak sama dengan paket WEB beku 2026.08.22.2."
    },
    "offline": {
      "archive_url_field": "offline.web_archive.public_url",
      "relative_chapter_path_field": "offline.courses[].routes[].offline_href",
      "instructions_id": "Unduh paket WEB, periksa SHA-256, ekstrak seluruh paket dalam satu folder, lalu buka berkas bab sesuai jalur relatif. Pertahankan semua aset pendamping.",
      "frozen_identity_status": "verified"
    },
    "navigation_order": "Sort courses as C30 then C40 and routes by each native membership sequence; preserve separate global chapter_number."
  },
  "replayer": {
    "name": "replay_judson_two_course_learner_routes.py",
    "bytes": 11666,
    "sha256": "9f8ae31296ef48f7126a1f4d27a8d202176f747add8df01d26ce08631224a049",
    "requirements": "Python 3.11+ standard library only",
    "network_requests": 0,
    "filesystem_writes": 0,
    "command": "python replay_judson_two_course_learner_routes.py --web-zip ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2_WEB.zip --native-backend extracted-source/backend/v1 --release-manifest RELEASE_MANIFEST.json --check JUDSON_TWO_COURSE_LEARNER_ROUTES.json",
    "check_contract": "Rehash release/WEB/native manifests and native input files; rederive all 23 routes from actual ZIP entries, TOC hrefs, page mapping and chapter section IDs; check localized titles and HTML hashes; compare the complete offline object exactly.",
    "offline_only": true
  },
  "security": {
    "credentials_used": false,
    "visible_browser_opened": false,
    "owner_sources_modified": false,
    "shared_site_modified": false,
    "publication_performed": false
  },
  "provenance": "OpenAI Codex, bounded two-course learner-route derivation and anonymous background HTTP observation."
}
