Опубликованный пакет / CLIR
ru.afanasyev.koschei
v0.1.0«Кощей Бессмертный» в трёх записях
Пломба §208
sha256:ecd612e0edba524f9bffd8e85af975c22113cff6f8a2ecf7530565fd8753a0a3Подключить /
law.toml[dependencies] ru.afanasyev.koschei = "0.1.0"
Получить канонические байты
curl -O /blobs/ecd612e0edba524f9bffd8e85af975c22113cff6f8a2ecf7530565fd8753a0a3.lawir.json
Все адресуемые узлы пакета. Помеченные internal — не часть контракта: сослаться на них из другого пакета нельзя (§24). Свою страницу имеют только публичные символы.
symbol_decl — 97
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| Chulan | чулан, где Кощей висел на двенадцати цепях | internal | |
| DostatYaytso | Яйцо со дна подаёт исполнивший обет: «щука принесла ему яйцо» | 5 | internal |
| Dub | дуб | internal | |
| Golik | голик под порогом (№ 158, показание первое и отречённое) | internal | |
| Igla | игла: её кончик назван носителем смерти только в № 269 | internal | |
| Kokora | кокора, плавающая в море (№ 157) — вместо дуба | internal | |
| Koschei | Кощей (в записи № 156 — Кош) Бессмертный | internal | |
| Kozel | козёл (№ 158, показание второе и отречённое) | internal | |
| More | море-окиян — наружное вместилище в № 157 и № 158 | internal | |
| NositelUnichtozhen | Носитель условия уничтожен | 5 | internal |
| Ostrov | остров на море-окияне (№ 158) | internal | |
| OtlomitKonchik | Носитель уничтожен по показанию № 269: «достал иглу и отломил кончик» | 5 | internal |
| Otvorit | Вскрытие вместилища выпускает зайца: «отворил — заяц выскочил и побежал» | 5 | internal |
| Povalit | Наружное вместилище добыто: «ухватил дуб могучими руками и с корнем вырвал» | 5 | internal |
| PoymatUtku | Упущенная утка возвращается только чужой рукой: «Он пострелял, пострелял — мимо!» | 5 | internal |
| PoymatZaytsa | Упущенный заяц возвращается только чужой рукой: «а волк, которого не убил он, кинулся за зайцем, поймал и несёт» | 5 | internal |
| R156 | № 156 «Кощей Бессмертный» (Шадринский уезд, запись А. Н. Зырянова) | internal | |
| R157 | № 157 «Кощей Бессмертный» | internal | |
| R158 | № 158 «Кощей Бессмертный» | internal | |
| R159 | № 159 «Марья Моревна» | internal | |
| R269 | № 269 «Царевна-лягушка» | internal | |
| RasporotZaytsa | Заяц распорот, и утка упущена: «распорол его и как-то оробел: утка спорхнула и полетела» | 5 | internal |
| Razdavit | Носитель уничтожен по показанию № 156 и № 158: «раздавил яичко» | 5 | internal |
| RazorvatUtku | Утка разорвана, яйцо выпало в море | 5 | internal |
| Sokryto | Всё скрыто: цепь не тронута | 5 | internal |
| Sunduk | сундук: зарыт под дубом (№ 158) либо стоит на дубу (№ 269) | internal | |
| Tyn | дубовый тын (№ 157, показание второе и отречённое) | internal | |
| UronitYaytso | Откат: яйцо, бывшее в руках, уронено — «стал мыть яичко, да и ронил в воду» | 5 | internal |
| Utka | утка | internal | |
| UtkaUpuschena | Вскрытие зайца выпустило утку: «утка спорхнула и полетела» | 5 | internal |
| UtkaVRukah | Утка в руках — подана исполнившим обет | 5 | internal |
| Venik | веник (№ 157, показание первое и отречённое) | internal | |
| VmestilischeDostato | Наружное вместилище добыто: дуб вывернут либо кокора на берегу | 5 | internal |
| Yaschik | ящик под дубом (№ 156) | internal | |
| Yaytso | яйцо | internal | |
| YaytsoUpuscheno | Яйцо в воде: выпало при разрыве утки либо уронено при мытье | 5 | internal |
| YaytsoVRukah | Яйцо в руках | 5 | internal |
| Zayac | заяц | internal | |
| ZayacUpuschen | Вскрытие выпустило зайца: «заяц выскочил и побежал» | 5 | internal |
| ZayacVRukah | Заяц в руках — подан исполнившим обет | 5 | internal |
| aid_outstanding | встречное предоставление пощажённого ещё не состоялось | internal | |
| alive | субъект не прекращён | internal | |
| at_hand | наружное вместилище цепи доступно без вскрытия: дуб стоит в поле, море плещет, кокора плавает | internal | |
| attempted_transition | — | 5 | internal |
| bearer_corroborated | носителем эту вещь называют не менее трёх записей | internal | |
| bearer_named_by_single_record | носителем эту вещь называет ровно одна запись | internal | |
| bound_by_mercy | пощажённый связан обычаем пощады перед пощадившим | internal | |
| breached_closet_order | приказ нарушен: оставленный за хозяйством заглянул в запретное | internal | |
| chain_member | вещь входит в цепь вместилищ, названную этой записью | internal | |
| chain_size_claimed | заявленное число звеньев в цепи, названной записью | internal | |
| chain_size_confirmed | заявленное число сошлось с перечнем звеньев записи | internal | |
| chained_in | прикован в этом месте: «висит Кощей Бессмертный, на двенадцати цепях прикован» | internal | |
| chains_disagree | две записи называют цепи разного состава: показания о пути к носителю расходятся | internal | |
| contains | по этой записи одна вещь лежит внутри другой | internal | |
| death_borne_by | вещь несёт условие прекращения названного участника: её уничтожение прекращает его | internal | |
| death_condition_fulfilled | состав прекращения выполнен: носитель назван, достижим и уничтожен | internal | |
| destroyed | вещь уничтожена: яйцо раздавлено, кончик иглы отломлен | internal | |
| earlier_pursuit | погоня a была прежде погони b | internal | |
| entered_state | — | 5 | internal |
| gave_water | подал воды прикованному: три ведра, снявшие с него двенадцать цепей | internal | |
| household_place | место входит в хозяйство, оставленное на попечение | internal | |
| kept_watch_over | ходил и присматривал за местом хозяйства | internal | |
| konchik_igly_otlomlen | игла вынута из яйца и кончик её отломлен (№ 269) | internal | |
| koschei | тот, чьё прекращение обусловлено вещью, а не событием | internal | |
| left_in_charge | оставлен за всем хозяйством: «покидает она на Ивана-царевича всё хозяйство» | internal | |
| liable_to_be_cut | настигнутый подлежит расправе: «изрубил его в мелкие куски» | internal | |
| looked_into | заглянул: «тотчас бросился в чулан, отворил дверь, глянул» | internal | |
| mercy_custom_established | формула пощады есть обычай тридесятого царства, а не единичное обещание | internal | |
| mercy_promise_attested | запись содержит формулу пощады «не бей меня — я тебе пригожусь» | internal | |
| mercy_requited | обычай пощады исполнен: встречное предоставление состоялось | internal | |
| named_bearer_retracted | запись называет эту вещь носителем, но сказавший отрёкся немедленно: «то я пошутил» | internal | |
| named_bearer_standing | запись называет эту вещь носителем, и сказавший от показания не отрекался | internal | |
| naruzhnoe_dostato | наружное вместилище добыто: дуб вывернут с корнем либо кокора вынесена на берег | internal | |
| needs_aid | нужда наступила: звено упущено, и сам упущенного не берёт | internal | |
| obet_ispolnen | пощажённый зверь исполнил свой обет и подал упущенное | internal | |
| opened | вместилище вскрыто: дуб повален, сундук отворён, заяц распорот, утка разорвана | internal | |
| overtook | настиг: «Кощей поскакал, догнал Ивана-царевича» | internal | |
| pardon_declared | настигший объявил прощение с названным ресурсом: этот раз и ещё один | internal | |
| pardon_exhausted | ресурс прощения на эту погоню исчерпан: предшественниц две и более | internal | |
| pardon_within_resource | погоня укладывается в назначенный ресурс прощения: предшественниц не более одной | internal | |
| procedure_instance | — | 5 | internal |
| promised_aid | пощажённый обещал пригодиться: «не бей меня — я тебе пригожусь» | internal | |
| reachable | по цепи этой записи до вещи можно добраться | internal | |
| record_of_plot | запись сюжета о смерти Кощея, закреплённая пакетом | internal | |
| released_from_chains | прикованный освобождён: «тряхнул цепями и сразу все двенадцать порвал» | internal | |
| rendered_aid | пощажённый подал упущенное: волк — зайца, ворона — утку, щука — яйцо | internal | |
| spared | отпустил, имея возможность убить: «Иван-царевич подумал и отпустил ворону» | internal | |
| testimony_refuted | показание опровергнуто самим сказавшим: «то я пошутил» | internal | |
| utka_poymana | упущенная утка поймана | internal | |
| utka_vskryta | утка разорвана, и яйцо выпало | internal | |
| valid_transition | — | 5 | internal |
| vmestilische_vskryto | вместилище вскрыто, и заяц выскочил | internal | |
| yaytso_dostato | яйцо достано со дна | internal | |
| yaytso_razdavleno | яйцо раздавлено (№ 156, № 158) | internal | |
| yaytso_uroneno | яйцо, бывшее в руках, уронено в воду | internal | |
| zayac_poyman | упущенный заяц пойман | internal | |
| zayac_vskryt | заяц распорот, и утка взлетела | internal |
type_decl — 7
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| Being | участник: Кощей, царевич, зверь, Марья Моревна, баба-яга | internal | |
| DobychaSmertiState | — | 5 | internal |
| DobychaSmertiTransition | — | 5 | internal |
| Pohod | поход за носителем условия прекращения | internal | |
| Pursuit | погоня: настигший догнал беглеца | internal | |
| Record | запись сказки: показание о сюжете, сделанное собирателем | internal | |
| Thing | вещь: звено цепи, скрывающей условие прекращения, либо названное таковым | internal |
rule — 47
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| AidOwedUntilRendered/R1 | Пока упущенное не подано, обязательство пощажённого не исполнено | 2 | internal |
| AidOwedUntilRendered/R2 | Пока упущенное не подано, обязательство пощажённого не исполнено | 2 | internal |
| BearerCorroboratedByThreeRecords | Носитель, названный тремя записями и более, подкреплён | 4 | internal |
| BearerFromStandingTestimony | Вещь, названную носителем показанием, от которого не отреклись, считать носителем | 5 | internal |
| BearerNamedOnce | Носитель, названный ровно одной записью, стоит на единственном показании — как игла № 269 | 1 | internal |
| ChainSizeConfirmedByMembers | Заявленный размер цепи подтверждается перечнем звеньев записи | 4 | internal |
| ChainsDisagreeBySize | Записи, назвавшие цепи разной длины, о пути к носителю расходятся | 4 | internal |
| ClosetIsCarvedOutOfTheLiberty | «Только в этот чулан не моги заглядывать»: изъятие из общего дозволения | 2 | internal |
| DeathConditionFulfilled | Условие прекращения выполнено, когда носитель условия достигнут по цепи и уничтожен | 4 | internal |
| DobychaSmerti/DostatYaytso/enters | Яйцо со дна подаёт исполнивший обет: «щука принесла ему яйцо» | 5 | internal |
| DobychaSmerti/DostatYaytso/valid | Яйцо со дна подаёт исполнивший обет: «щука принесла ему яйцо» | 5 | internal |
| DobychaSmerti/OtlomitKonchik/enters | Носитель уничтожен по показанию № 269: «достал иглу и отломил кончик» | 5 | internal |
| DobychaSmerti/OtlomitKonchik/valid | Носитель уничтожен по показанию № 269: «достал иглу и отломил кончик» | 5 | internal |
| DobychaSmerti/Otvorit/enters | Вскрытие вместилища выпускает зайца: «отворил — заяц выскочил и побежал» | 5 | internal |
| DobychaSmerti/Otvorit/valid | Вскрытие вместилища выпускает зайца: «отворил — заяц выскочил и побежал» | 5 | internal |
| DobychaSmerti/Povalit/enters | Наружное вместилище добыто: «ухватил дуб могучими руками и с корнем вырвал» | 5 | internal |
| DobychaSmerti/Povalit/valid | Наружное вместилище добыто: «ухватил дуб могучими руками и с корнем вырвал» | 5 | internal |
| DobychaSmerti/PoymatUtku/enters | Упущенная утка возвращается только чужой рукой: «Он пострелял, пострелял — мимо!» | 5 | internal |
| DobychaSmerti/PoymatUtku/valid | Упущенная утка возвращается только чужой рукой: «Он пострелял, пострелял — мимо!» | 5 | internal |
| DobychaSmerti/PoymatZaytsa/enters | Упущенный заяц возвращается только чужой рукой: «а волк, которого не убил он, кинулся за зайцем, поймал и несёт» | 5 | internal |
| DobychaSmerti/PoymatZaytsa/valid | Упущенный заяц возвращается только чужой рукой: «а волк, которого не убил он, кинулся за зайцем, поймал и несёт» | 5 | internal |
| DobychaSmerti/RasporotZaytsa/enters | Заяц распорот, и утка упущена: «распорол его и как-то оробел: утка спорхнула и полетела» | 5 | internal |
| DobychaSmerti/RasporotZaytsa/valid | Заяц распорот, и утка упущена: «распорол его и как-то оробел: утка спорхнула и полетела» | 5 | internal |
| DobychaSmerti/Razdavit/enters | Носитель уничтожен по показанию № 156 и № 158: «раздавил яичко» | 5 | internal |
| DobychaSmerti/Razdavit/valid | Носитель уничтожен по показанию № 156 и № 158: «раздавил яичко» | 5 | internal |
| DobychaSmerti/RazorvatUtku/enters | Утка разорвана, яйцо выпало в море | 5 | internal |
| DobychaSmerti/RazorvatUtku/valid | Утка разорвана, яйцо выпало в море | 5 | internal |
| DobychaSmerti/UronitYaytso/enters | Откат: яйцо, бывшее в руках, уронено — «стал мыть яичко, да и ронил в воду» | 5 | internal |
| DobychaSmerti/UronitYaytso/valid | Откат: яйцо, бывшее в руках, уронено — «стал мыть яичко, да и ронил в воду» | 5 | internal |
| DobychaSmerti/initial | Всё скрыто: цепь не тронута | 5 | internal |
| DutyToRenderAid | «В нужное время я тебе пригожусь»: пощажённый обязан подать упущенное | 4 | internal |
| Immortality/R1 | «Он ведь бессмертный»: Кощей жив, пока не выполнен состав прекращения — носитель условия найден, достигнут по цепи и уничтожен | 6 | internal |
| Immortality/R2 | «Он ведь бессмертный»: Кощей жив, пока не выполнен состав прекращения — носитель условия найден, достигнут по цепи и уничтожен | 6 | internal |
| InnerReachableThroughOpened | Вложенное достижимо, когда достижимо и вскрыто вмещающее — и только тогда | 5 | internal |
| KeeperMayGoEverywhere | «Везде ходи, за всем присматривай»: оставленный за хозяйством волен ходить по нему всему | 2 | internal |
| LookingBreachesTheOrder | Заглянувший в чулан приказ нарушил | 2 | internal |
| MercyBindsTheSpared | Пощада связывает пощажённого: отпущенный под обещание пригодиться связан перед отпустившим, когда у того наступила нужда | 4 | internal |
| MercyFormulaIsCustomary | Формулу пощады, засвидетельствованную тремя независимыми записями, считать обычаем | 4 | internal |
| MercyRequited | Обязательство исполнено подачей упущенного | 4 | internal |
| OutermostIsReachable | Наружное вместилище цепи достижимо само по себе | 5 | internal |
| OvertakenIsLiable | Настигнутый похититель подлежит расправе настигшего | 2 | internal |
| PardonCoversPursuit | Погоня, покрытая ресурсом прощения, расправе не подлежит | 3 | internal |
| PardonExhaustedOnThird | «А в третий берегись»: на погоне, у которой две предшественницы и более, прощения не остаётся | 2 | internal |
| PardonIsAnImmunity | Прощение есть иммунитет от расправы, и ресурс его назван в самом предоставлении | 2 | internal |
| PardonWithinResource | «Первый раз тебя прощаю… и в другой раз прощу»: ресурс покрывает погоню, у которой предшественниц не более одной | 3 | internal |
| RetractedTestimonyIsRefuted | «То я пошутил»: показание, от которого сказавший отрёкся, опровергнуто — и украшенный лентами козёл Кощею ничего не делает | 4 | internal |
| WaterAfterBreachReleasesThePrisoner | «Посмотрел в чулан и выпустил Кощея Бессмертного»: нарушение приказа вместе с поданной водой освобождает прикованного | 1 | internal |
priority_rule — 3
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| AidOwedUntilRendered/priority | Пока упущенное не подано, обязательство пощажённого не исполнено | 2 | internal |
| Immortality/priority | «Он ведь бессмертный»: Кощей жив, пока не выполнен состав прекращения — носитель условия найден, достигнут по цепи и уничтожен | 6 | internal |
| PardonOverLiability | Прощение есть изъятие из расправы, а не равносильное ей утверждение: при равной силе ответом было бы BOTH, а сказка отвечает определённо | 2 | internal |
norm_template — 4
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| HoditVezde | «Везде ходи, за всем присматривай»: оставленный за хозяйством волен ходить по нему всему | 2 | internal |
| NeZaglyadyvatVChulan | «Только в этот чулан не моги заглядывать»: изъятие из общего дозволения | 2 | internal |
| PomochUpustivshemu | «В нужное время я тебе пригожусь»: пощажённый обязан подать упущенное | 4 | internal |
| ProschenieNaPogonyu | Прощение есть иммунитет от расправы, и ресурс его назван в самом предоставлении | 2 | internal |
assertion — 61
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| assert-1 | — | 1 | internal |
| assert-10 | — | 1 | internal |
| assert-11 | — | 1 | internal |
| assert-12 | — | 1 | internal |
| assert-13 | — | 1 | internal |
| assert-14 | — | 1 | internal |
| assert-15 | — | 1 | internal |
| assert-16 | — | 2 | internal |
| assert-17 | — | 2 | internal |
| assert-18 | — | 1 | internal |
| assert-19 | — | 1 | internal |
| assert-2 | — | 1 | internal |
| assert-20 | — | 1 | internal |
| assert-21 | — | 1 | internal |
| assert-22 | — | 1 | internal |
| assert-23 | — | 1 | internal |
| assert-24 | — | 1 | internal |
| assert-25 | — | 1 | internal |
| assert-26 | — | 2 | internal |
| assert-27 | — | 2 | internal |
| assert-28 | — | 1 | internal |
| assert-29 | — | 1 | internal |
| assert-3 | — | 1 | internal |
| assert-30 | — | 1 | internal |
| assert-31 | — | 1 | internal |
| assert-32 | — | 1 | internal |
| assert-33 | — | 1 | internal |
| assert-34 | — | 1 | internal |
| assert-35 | — | 1 | internal |
| assert-36 | — | 1 | internal |
| assert-37 | — | 1 | internal |
| assert-38 | — | 1 | internal |
| assert-39 | — | 1 | internal |
| assert-4 | — | 1 | internal |
| assert-40 | — | 1 | internal |
| assert-41 | — | 1 | internal |
| assert-42 | — | 1 | internal |
| assert-43 | — | 1 | internal |
| assert-44 | — | 1 | internal |
| assert-45 | — | 1 | internal |
| assert-46 | — | 1 | internal |
| assert-47 | — | 1 | internal |
| assert-48 | — | 1 | internal |
| assert-49 | — | 1 | internal |
| assert-5 | — | 1 | internal |
| assert-50 | — | 1 | internal |
| assert-51 | — | 1 | internal |
| assert-52 | — | 1 | internal |
| assert-53 | — | 1 | internal |
| assert-54 | — | 1 | internal |
| assert-55 | — | 1 | internal |
| assert-56 | — | 1 | internal |
| assert-57 | — | 1 | internal |
| assert-58 | — | 1 | internal |
| assert-59 | — | 1 | internal |
| assert-6 | — | 1 | internal |
| assert-60 | — | 1 | internal |
| assert-61 | — | 1 | internal |
| assert-7 | — | 1 | internal |
| assert-8 | — | 1 | internal |
| assert-9 | — | 1 | internal |
fragment — 29
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| K156_CHAIN | — | internal | |
| K156_DEATH | — | internal | |
| K156_HELP | — | internal | |
| K156_MERCY | — | internal | |
| K157_CHAIN | — | internal | |
| K157_HELP | — | internal | |
| K157_LIE1 | — | internal | |
| K157_LIE2 | — | internal | |
| K157_MERCY | — | internal | |
| K158_CHAIN | — | internal | |
| K158_HELP | — | internal | |
| K158_LIE1 | — | internal | |
| K158_LIE2 | — | internal | |
| K158_MERCY | — | internal | |
| L269_CHAIN | — | internal | |
| L269_HELP | — | internal | |
| M159_BREACH | — | internal | |
| M159_HOOF | — | internal | |
| M159_PARDON | — | internal | |
| M159_PROHIBITION | — | internal | |
| M159_SECOND | — | internal | |
| M159_THIRD | — | internal | |
| M159_YAGA | — | internal | |
| OBET_F_FORMULA | — | internal | |
| PROSCH_F_GRANT | — | internal | |
| PROSCH_F_THREAT | — | internal | |
| ZAK_F_BESSMERTIE | — | internal | |
| ZAK_F_SMERT_V_VESCHI | — | internal | |
| ZAPRET_F_CHULAN | — | internal |
publication — 5
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| AF_156_TEXT | — | internal | |
| AF_157_TEXT | — | internal | |
| AF_158_TEXT | — | internal | |
| AF_159_TEXT | — | internal | |
| AF_269_TEXT | — | internal |
source_edition — 12
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| AF_156 | Запись № 156. Сделана в Шадринском уезде Пермской губернии А. Н. Зыряновым; герой — Иван-царевич, похититель — Кош Бессмертный, помощники — волчиха, ворона и щука | internal | |
| AF_157 | Запись № 157. Герой — Иван-царевич, похищена Ненаглядная Красота; помощники — ястреб, медведь и щука; Кощей лжёт о своей смерти дважды | internal | |
| AF_158 | Запись № 158. Щадит зверей не царевич, а Булат-молодец; похищена Василиса Кирбитьевна; помощники — собака, орёл и рак; Кощей лжёт дважды | internal | |
| AF_159 | Запись № 159 | internal | |
| AF_269 | Запись № 269; похищена Василиса Премудрая, показание даёт баба-яга | internal | |
| KOSCHEI_ORAL | Устное бытование: собственного текста у сказки нет | internal | |
| LYAGUSHKA_ORAL | Устное бытование: собственного текста у сказки нет | internal | |
| MARYA_ORAL | Устное бытование: собственного текста у сказки нет | internal | |
| OBET_USTNY | Устный обычай; условная дата @1000-01-01 — не утверждение о времени | internal | |
| PROSCHENIE_USTNOE | Устное объявление, сделанное настигшим при первой погоне; условная дата @1000-01-01 | internal | |
| ZAKON_NEPISANY | Неписаный порядок; условная дата @1000-01-01 — не утверждение о времени | internal | |
| ZAPRET_USTNY | Устный приказ перед отъездом на войну; условная дата @1000-01-01. Конца текст не называет: Марья Моревна запрета не снимала, а чулан опустел сам | internal |
source_work — 7
| Узел | Подпись | Анкеры §194 | |
|---|---|---|---|
| KOSCHEI_BESSMERTNY | «Кощей Бессмертный» в трёх записях | internal | |
| MARYA_MOREVNA | «Марья Моревна» | internal | |
| OBET_POSCHADY | Обычай пощады: «не бей меня — я тебе пригожусь» | internal | |
| PROSCHENIE_KOSCHEYA | Объявление прощения: две погони прощены, третья — нет | internal | |
| TSAREVNA_LYAGUSHKA | «Царевна-лягушка» | internal | |
| ZAKON_TRIDESYATOGO | Неписаный закон тридесятого царства о прекращении субъекта | internal | |
| ZAPRET_CHULANA | Приказ Марьи Моревны оставленному за хозяйством: в чулан не заглядывать | internal |