├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── assets
├── Roboto-VariableFont_wdth,wght.ttf
├── bug.svg
├── crown.svg
├── css
│ ├── bootstrap-icons-1.11.3
│ │ ├── 0-circle-fill.svg
│ │ ├── 0-circle.svg
│ │ ├── 0-square-fill.svg
│ │ ├── 0-square.svg
│ │ ├── 1-circle-fill.svg
│ │ ├── 1-circle.svg
│ │ ├── 1-square-fill.svg
│ │ ├── 1-square.svg
│ │ ├── 123.svg
│ │ ├── 2-circle-fill.svg
│ │ ├── 2-circle.svg
│ │ ├── 2-square-fill.svg
│ │ ├── 2-square.svg
│ │ ├── 3-circle-fill.svg
│ │ ├── 3-circle.svg
│ │ ├── 3-square-fill.svg
│ │ ├── 3-square.svg
│ │ ├── 4-circle-fill.svg
│ │ ├── 4-circle.svg
│ │ ├── 4-square-fill.svg
│ │ ├── 4-square.svg
│ │ ├── 5-circle-fill.svg
│ │ ├── 5-circle.svg
│ │ ├── 5-square-fill.svg
│ │ ├── 5-square.svg
│ │ ├── 6-circle-fill.svg
│ │ ├── 6-circle.svg
│ │ ├── 6-square-fill.svg
│ │ ├── 6-square.svg
│ │ ├── 7-circle-fill.svg
│ │ ├── 7-circle.svg
│ │ ├── 7-square-fill.svg
│ │ ├── 7-square.svg
│ │ ├── 8-circle-fill.svg
│ │ ├── 8-circle.svg
│ │ ├── 8-square-fill.svg
│ │ ├── 8-square.svg
│ │ ├── 9-circle-fill.svg
│ │ ├── 9-circle.svg
│ │ ├── 9-square-fill.svg
│ │ ├── 9-square.svg
│ │ ├── activity.svg
│ │ ├── airplane-engines-fill.svg
│ │ ├── airplane-engines.svg
│ │ ├── airplane-fill.svg
│ │ ├── airplane.svg
│ │ ├── alarm-fill.svg
│ │ ├── alarm.svg
│ │ ├── alexa.svg
│ │ ├── align-bottom.svg
│ │ ├── align-center.svg
│ │ ├── align-end.svg
│ │ ├── align-middle.svg
│ │ ├── align-start.svg
│ │ ├── align-top.svg
│ │ ├── alipay.svg
│ │ ├── alphabet-uppercase.svg
│ │ ├── alphabet.svg
│ │ ├── alt.svg
│ │ ├── amazon.svg
│ │ ├── amd.svg
│ │ ├── android.svg
│ │ ├── android2.svg
│ │ ├── app-indicator.svg
│ │ ├── app.svg
│ │ ├── apple.svg
│ │ ├── archive-fill.svg
│ │ ├── archive.svg
│ │ ├── arrow-90deg-down.svg
│ │ ├── arrow-90deg-left.svg
│ │ ├── arrow-90deg-right.svg
│ │ ├── arrow-90deg-up.svg
│ │ ├── arrow-bar-down.svg
│ │ ├── arrow-bar-left.svg
│ │ ├── arrow-bar-right.svg
│ │ ├── arrow-bar-up.svg
│ │ ├── arrow-clockwise.svg
│ │ ├── arrow-counterclockwise.svg
│ │ ├── arrow-down-circle-fill.svg
│ │ ├── arrow-down-circle.svg
│ │ ├── arrow-down-left-circle-fill.svg
│ │ ├── arrow-down-left-circle.svg
│ │ ├── arrow-down-left-square-fill.svg
│ │ ├── arrow-down-left-square.svg
│ │ ├── arrow-down-left.svg
│ │ ├── arrow-down-right-circle-fill.svg
│ │ ├── arrow-down-right-circle.svg
│ │ ├── arrow-down-right-square-fill.svg
│ │ ├── arrow-down-right-square.svg
│ │ ├── arrow-down-right.svg
│ │ ├── arrow-down-short.svg
│ │ ├── arrow-down-square-fill.svg
│ │ ├── arrow-down-square.svg
│ │ ├── arrow-down-up.svg
│ │ ├── arrow-down.svg
│ │ ├── arrow-left-circle-fill.svg
│ │ ├── arrow-left-circle.svg
│ │ ├── arrow-left-right.svg
│ │ ├── arrow-left-short.svg
│ │ ├── arrow-left-square-fill.svg
│ │ ├── arrow-left-square.svg
│ │ ├── arrow-left.svg
│ │ ├── arrow-repeat.svg
│ │ ├── arrow-return-left.svg
│ │ ├── arrow-return-right.svg
│ │ ├── arrow-right-circle-fill.svg
│ │ ├── arrow-right-circle.svg
│ │ ├── arrow-right-short.svg
│ │ ├── arrow-right-square-fill.svg
│ │ ├── arrow-right-square.svg
│ │ ├── arrow-right.svg
│ │ ├── arrow-through-heart-fill.svg
│ │ ├── arrow-through-heart.svg
│ │ ├── arrow-up-circle-fill.svg
│ │ ├── arrow-up-circle.svg
│ │ ├── arrow-up-left-circle-fill.svg
│ │ ├── arrow-up-left-circle.svg
│ │ ├── arrow-up-left-square-fill.svg
│ │ ├── arrow-up-left-square.svg
│ │ ├── arrow-up-left.svg
│ │ ├── arrow-up-right-circle-fill.svg
│ │ ├── arrow-up-right-circle.svg
│ │ ├── arrow-up-right-square-fill.svg
│ │ ├── arrow-up-right-square.svg
│ │ ├── arrow-up-right.svg
│ │ ├── arrow-up-short.svg
│ │ ├── arrow-up-square-fill.svg
│ │ ├── arrow-up-square.svg
│ │ ├── arrow-up.svg
│ │ ├── arrows-angle-contract.svg
│ │ ├── arrows-angle-expand.svg
│ │ ├── arrows-collapse-vertical.svg
│ │ ├── arrows-collapse.svg
│ │ ├── arrows-expand-vertical.svg
│ │ ├── arrows-expand.svg
│ │ ├── arrows-fullscreen.svg
│ │ ├── arrows-move.svg
│ │ ├── arrows-vertical.svg
│ │ ├── arrows.svg
│ │ ├── aspect-ratio-fill.svg
│ │ ├── aspect-ratio.svg
│ │ ├── asterisk.svg
│ │ ├── at.svg
│ │ ├── award-fill.svg
│ │ ├── award.svg
│ │ ├── back.svg
│ │ ├── backpack-fill.svg
│ │ ├── backpack.svg
│ │ ├── backpack2-fill.svg
│ │ ├── backpack2.svg
│ │ ├── backpack3-fill.svg
│ │ ├── backpack3.svg
│ │ ├── backpack4-fill.svg
│ │ ├── backpack4.svg
│ │ ├── backspace-fill.svg
│ │ ├── backspace-reverse-fill.svg
│ │ ├── backspace-reverse.svg
│ │ ├── backspace.svg
│ │ ├── badge-3d-fill.svg
│ │ ├── badge-3d.svg
│ │ ├── badge-4k-fill.svg
│ │ ├── badge-4k.svg
│ │ ├── badge-8k-fill.svg
│ │ ├── badge-8k.svg
│ │ ├── badge-ad-fill.svg
│ │ ├── badge-ad.svg
│ │ ├── badge-ar-fill.svg
│ │ ├── badge-ar.svg
│ │ ├── badge-cc-fill.svg
│ │ ├── badge-cc.svg
│ │ ├── badge-hd-fill.svg
│ │ ├── badge-hd.svg
│ │ ├── badge-sd-fill.svg
│ │ ├── badge-sd.svg
│ │ ├── badge-tm-fill.svg
│ │ ├── badge-tm.svg
│ │ ├── badge-vo-fill.svg
│ │ ├── badge-vo.svg
│ │ ├── badge-vr-fill.svg
│ │ ├── badge-vr.svg
│ │ ├── badge-wc-fill.svg
│ │ ├── badge-wc.svg
│ │ ├── bag-check-fill.svg
│ │ ├── bag-check.svg
│ │ ├── bag-dash-fill.svg
│ │ ├── bag-dash.svg
│ │ ├── bag-fill.svg
│ │ ├── bag-heart-fill.svg
│ │ ├── bag-heart.svg
│ │ ├── bag-plus-fill.svg
│ │ ├── bag-plus.svg
│ │ ├── bag-x-fill.svg
│ │ ├── bag-x.svg
│ │ ├── bag.svg
│ │ ├── balloon-fill.svg
│ │ ├── balloon-heart-fill.svg
│ │ ├── balloon-heart.svg
│ │ ├── balloon.svg
│ │ ├── ban-fill.svg
│ │ ├── ban.svg
│ │ ├── bandaid-fill.svg
│ │ ├── bandaid.svg
│ │ ├── bank.svg
│ │ ├── bank2.svg
│ │ ├── bar-chart-fill.svg
│ │ ├── bar-chart-line-fill.svg
│ │ ├── bar-chart-line.svg
│ │ ├── bar-chart-steps.svg
│ │ ├── bar-chart.svg
│ │ ├── basket-fill.svg
│ │ ├── basket.svg
│ │ ├── basket2-fill.svg
│ │ ├── basket2.svg
│ │ ├── basket3-fill.svg
│ │ ├── basket3.svg
│ │ ├── battery-charging.svg
│ │ ├── battery-full.svg
│ │ ├── battery-half.svg
│ │ ├── battery.svg
│ │ ├── behance.svg
│ │ ├── bell-fill.svg
│ │ ├── bell-slash-fill.svg
│ │ ├── bell-slash.svg
│ │ ├── bell.svg
│ │ ├── bezier.svg
│ │ ├── bezier2.svg
│ │ ├── bicycle.svg
│ │ ├── bing.svg
│ │ ├── binoculars-fill.svg
│ │ ├── binoculars.svg
│ │ ├── blockquote-left.svg
│ │ ├── blockquote-right.svg
│ │ ├── bluetooth.svg
│ │ ├── body-text.svg
│ │ ├── book-fill.svg
│ │ ├── book-half.svg
│ │ ├── book.svg
│ │ ├── bookmark-check-fill.svg
│ │ ├── bookmark-check.svg
│ │ ├── bookmark-dash-fill.svg
│ │ ├── bookmark-dash.svg
│ │ ├── bookmark-fill.svg
│ │ ├── bookmark-heart-fill.svg
│ │ ├── bookmark-heart.svg
│ │ ├── bookmark-plus-fill.svg
│ │ ├── bookmark-plus.svg
│ │ ├── bookmark-star-fill.svg
│ │ ├── bookmark-star.svg
│ │ ├── bookmark-x-fill.svg
│ │ ├── bookmark-x.svg
│ │ ├── bookmark.svg
│ │ ├── bookmarks-fill.svg
│ │ ├── bookmarks.svg
│ │ ├── bookshelf.svg
│ │ ├── boombox-fill.svg
│ │ ├── boombox.svg
│ │ ├── bootstrap-fill.svg
│ │ ├── bootstrap-icons.svg
│ │ ├── bootstrap-reboot.svg
│ │ ├── bootstrap.svg
│ │ ├── border-all.svg
│ │ ├── border-bottom.svg
│ │ ├── border-center.svg
│ │ ├── border-inner.svg
│ │ ├── border-left.svg
│ │ ├── border-middle.svg
│ │ ├── border-outer.svg
│ │ ├── border-right.svg
│ │ ├── border-style.svg
│ │ ├── border-top.svg
│ │ ├── border-width.svg
│ │ ├── border.svg
│ │ ├── bounding-box-circles.svg
│ │ ├── bounding-box.svg
│ │ ├── box-arrow-down-left.svg
│ │ ├── box-arrow-down-right.svg
│ │ ├── box-arrow-down.svg
│ │ ├── box-arrow-in-down-left.svg
│ │ ├── box-arrow-in-down-right.svg
│ │ ├── box-arrow-in-down.svg
│ │ ├── box-arrow-in-left.svg
│ │ ├── box-arrow-in-right.svg
│ │ ├── box-arrow-in-up-left.svg
│ │ ├── box-arrow-in-up-right.svg
│ │ ├── box-arrow-in-up.svg
│ │ ├── box-arrow-left.svg
│ │ ├── box-arrow-right.svg
│ │ ├── box-arrow-up-left.svg
│ │ ├── box-arrow-up-right.svg
│ │ ├── box-arrow-up.svg
│ │ ├── box-fill.svg
│ │ ├── box-seam-fill.svg
│ │ ├── box-seam.svg
│ │ ├── box.svg
│ │ ├── box2-fill.svg
│ │ ├── box2-heart-fill.svg
│ │ ├── box2-heart.svg
│ │ ├── box2.svg
│ │ ├── boxes.svg
│ │ ├── braces-asterisk.svg
│ │ ├── braces.svg
│ │ ├── bricks.svg
│ │ ├── briefcase-fill.svg
│ │ ├── briefcase.svg
│ │ ├── brightness-alt-high-fill.svg
│ │ ├── brightness-alt-high.svg
│ │ ├── brightness-alt-low-fill.svg
│ │ ├── brightness-alt-low.svg
│ │ ├── brightness-high-fill.svg
│ │ ├── brightness-high.svg
│ │ ├── brightness-low-fill.svg
│ │ ├── brightness-low.svg
│ │ ├── brilliance.svg
│ │ ├── broadcast-pin.svg
│ │ ├── broadcast.svg
│ │ ├── browser-chrome.svg
│ │ ├── browser-edge.svg
│ │ ├── browser-firefox.svg
│ │ ├── browser-safari.svg
│ │ ├── brush-fill.svg
│ │ ├── brush.svg
│ │ ├── bucket-fill.svg
│ │ ├── bucket.svg
│ │ ├── bug-fill.svg
│ │ ├── bug.svg
│ │ ├── building-add.svg
│ │ ├── building-check.svg
│ │ ├── building-dash.svg
│ │ ├── building-down.svg
│ │ ├── building-exclamation.svg
│ │ ├── building-fill-add.svg
│ │ ├── building-fill-check.svg
│ │ ├── building-fill-dash.svg
│ │ ├── building-fill-down.svg
│ │ ├── building-fill-exclamation.svg
│ │ ├── building-fill-gear.svg
│ │ ├── building-fill-lock.svg
│ │ ├── building-fill-slash.svg
│ │ ├── building-fill-up.svg
│ │ ├── building-fill-x.svg
│ │ ├── building-fill.svg
│ │ ├── building-gear.svg
│ │ ├── building-lock.svg
│ │ ├── building-slash.svg
│ │ ├── building-up.svg
│ │ ├── building-x.svg
│ │ ├── building.svg
│ │ ├── buildings-fill.svg
│ │ ├── buildings.svg
│ │ ├── bullseye.svg
│ │ ├── bus-front-fill.svg
│ │ ├── bus-front.svg
│ │ ├── c-circle-fill.svg
│ │ ├── c-circle.svg
│ │ ├── c-square-fill.svg
│ │ ├── c-square.svg
│ │ ├── cake-fill.svg
│ │ ├── cake.svg
│ │ ├── cake2-fill.svg
│ │ ├── cake2.svg
│ │ ├── calculator-fill.svg
│ │ ├── calculator.svg
│ │ ├── calendar-check-fill.svg
│ │ ├── calendar-check.svg
│ │ ├── calendar-date-fill.svg
│ │ ├── calendar-date.svg
│ │ ├── calendar-day-fill.svg
│ │ ├── calendar-day.svg
│ │ ├── calendar-event-fill.svg
│ │ ├── calendar-event.svg
│ │ ├── calendar-fill.svg
│ │ ├── calendar-heart-fill.svg
│ │ ├── calendar-heart.svg
│ │ ├── calendar-minus-fill.svg
│ │ ├── calendar-minus.svg
│ │ ├── calendar-month-fill.svg
│ │ ├── calendar-month.svg
│ │ ├── calendar-plus-fill.svg
│ │ ├── calendar-plus.svg
│ │ ├── calendar-range-fill.svg
│ │ ├── calendar-range.svg
│ │ ├── calendar-week-fill.svg
│ │ ├── calendar-week.svg
│ │ ├── calendar-x-fill.svg
│ │ ├── calendar-x.svg
│ │ ├── calendar.svg
│ │ ├── calendar2-check-fill.svg
│ │ ├── calendar2-check.svg
│ │ ├── calendar2-date-fill.svg
│ │ ├── calendar2-date.svg
│ │ ├── calendar2-day-fill.svg
│ │ ├── calendar2-day.svg
│ │ ├── calendar2-event-fill.svg
│ │ ├── calendar2-event.svg
│ │ ├── calendar2-fill.svg
│ │ ├── calendar2-heart-fill.svg
│ │ ├── calendar2-heart.svg
│ │ ├── calendar2-minus-fill.svg
│ │ ├── calendar2-minus.svg
│ │ ├── calendar2-month-fill.svg
│ │ ├── calendar2-month.svg
│ │ ├── calendar2-plus-fill.svg
│ │ ├── calendar2-plus.svg
│ │ ├── calendar2-range-fill.svg
│ │ ├── calendar2-range.svg
│ │ ├── calendar2-week-fill.svg
│ │ ├── calendar2-week.svg
│ │ ├── calendar2-x-fill.svg
│ │ ├── calendar2-x.svg
│ │ ├── calendar2.svg
│ │ ├── calendar3-event-fill.svg
│ │ ├── calendar3-event.svg
│ │ ├── calendar3-fill.svg
│ │ ├── calendar3-range-fill.svg
│ │ ├── calendar3-range.svg
│ │ ├── calendar3-week-fill.svg
│ │ ├── calendar3-week.svg
│ │ ├── calendar3.svg
│ │ ├── calendar4-event.svg
│ │ ├── calendar4-range.svg
│ │ ├── calendar4-week.svg
│ │ ├── calendar4.svg
│ │ ├── camera-fill.svg
│ │ ├── camera-reels-fill.svg
│ │ ├── camera-reels.svg
│ │ ├── camera-video-fill.svg
│ │ ├── camera-video-off-fill.svg
│ │ ├── camera-video-off.svg
│ │ ├── camera-video.svg
│ │ ├── camera.svg
│ │ ├── camera2.svg
│ │ ├── capslock-fill.svg
│ │ ├── capslock.svg
│ │ ├── capsule-pill.svg
│ │ ├── capsule.svg
│ │ ├── car-front-fill.svg
│ │ ├── car-front.svg
│ │ ├── card-checklist.svg
│ │ ├── card-heading.svg
│ │ ├── card-image.svg
│ │ ├── card-list.svg
│ │ ├── card-text.svg
│ │ ├── caret-down-fill.svg
│ │ ├── caret-down-square-fill.svg
│ │ ├── caret-down-square.svg
│ │ ├── caret-down.svg
│ │ ├── caret-left-fill.svg
│ │ ├── caret-left-square-fill.svg
│ │ ├── caret-left-square.svg
│ │ ├── caret-left.svg
│ │ ├── caret-right-fill.svg
│ │ ├── caret-right-square-fill.svg
│ │ ├── caret-right-square.svg
│ │ ├── caret-right.svg
│ │ ├── caret-up-fill.svg
│ │ ├── caret-up-square-fill.svg
│ │ ├── caret-up-square.svg
│ │ ├── caret-up.svg
│ │ ├── cart-check-fill.svg
│ │ ├── cart-check.svg
│ │ ├── cart-dash-fill.svg
│ │ ├── cart-dash.svg
│ │ ├── cart-fill.svg
│ │ ├── cart-plus-fill.svg
│ │ ├── cart-plus.svg
│ │ ├── cart-x-fill.svg
│ │ ├── cart-x.svg
│ │ ├── cart.svg
│ │ ├── cart2.svg
│ │ ├── cart3.svg
│ │ ├── cart4.svg
│ │ ├── cash-coin.svg
│ │ ├── cash-stack.svg
│ │ ├── cash.svg
│ │ ├── cassette-fill.svg
│ │ ├── cassette.svg
│ │ ├── cast.svg
│ │ ├── cc-circle-fill.svg
│ │ ├── cc-circle.svg
│ │ ├── cc-square-fill.svg
│ │ ├── cc-square.svg
│ │ ├── chat-dots-fill.svg
│ │ ├── chat-dots.svg
│ │ ├── chat-fill.svg
│ │ ├── chat-heart-fill.svg
│ │ ├── chat-heart.svg
│ │ ├── chat-left-dots-fill.svg
│ │ ├── chat-left-dots.svg
│ │ ├── chat-left-fill.svg
│ │ ├── chat-left-heart-fill.svg
│ │ ├── chat-left-heart.svg
│ │ ├── chat-left-quote-fill.svg
│ │ ├── chat-left-quote.svg
│ │ ├── chat-left-text-fill.svg
│ │ ├── chat-left-text.svg
│ │ ├── chat-left.svg
│ │ ├── chat-quote-fill.svg
│ │ ├── chat-quote.svg
│ │ ├── chat-right-dots-fill.svg
│ │ ├── chat-right-dots.svg
│ │ ├── chat-right-fill.svg
│ │ ├── chat-right-heart-fill.svg
│ │ ├── chat-right-heart.svg
│ │ ├── chat-right-quote-fill.svg
│ │ ├── chat-right-quote.svg
│ │ ├── chat-right-text-fill.svg
│ │ ├── chat-right-text.svg
│ │ ├── chat-right.svg
│ │ ├── chat-square-dots-fill.svg
│ │ ├── chat-square-dots.svg
│ │ ├── chat-square-fill.svg
│ │ ├── chat-square-heart-fill.svg
│ │ ├── chat-square-heart.svg
│ │ ├── chat-square-quote-fill.svg
│ │ ├── chat-square-quote.svg
│ │ ├── chat-square-text-fill.svg
│ │ ├── chat-square-text.svg
│ │ ├── chat-square.svg
│ │ ├── chat-text-fill.svg
│ │ ├── chat-text.svg
│ │ ├── chat.svg
│ │ ├── check-all.svg
│ │ ├── check-circle-fill.svg
│ │ ├── check-circle.svg
│ │ ├── check-lg.svg
│ │ ├── check-square-fill.svg
│ │ ├── check-square.svg
│ │ ├── check.svg
│ │ ├── check2-all.svg
│ │ ├── check2-circle.svg
│ │ ├── check2-square.svg
│ │ ├── check2.svg
│ │ ├── chevron-bar-contract.svg
│ │ ├── chevron-bar-down.svg
│ │ ├── chevron-bar-expand.svg
│ │ ├── chevron-bar-left.svg
│ │ ├── chevron-bar-right.svg
│ │ ├── chevron-bar-up.svg
│ │ ├── chevron-compact-down.svg
│ │ ├── chevron-compact-left.svg
│ │ ├── chevron-compact-right.svg
│ │ ├── chevron-compact-up.svg
│ │ ├── chevron-contract.svg
│ │ ├── chevron-double-down.svg
│ │ ├── chevron-double-left.svg
│ │ ├── chevron-double-right.svg
│ │ ├── chevron-double-up.svg
│ │ ├── chevron-down.svg
│ │ ├── chevron-expand.svg
│ │ ├── chevron-left.svg
│ │ ├── chevron-right.svg
│ │ ├── chevron-up.svg
│ │ ├── circle-fill.svg
│ │ ├── circle-half.svg
│ │ ├── circle-square.svg
│ │ ├── circle.svg
│ │ ├── clipboard-check-fill.svg
│ │ ├── clipboard-check.svg
│ │ ├── clipboard-data-fill.svg
│ │ ├── clipboard-data.svg
│ │ ├── clipboard-fill.svg
│ │ ├── clipboard-heart-fill.svg
│ │ ├── clipboard-heart.svg
│ │ ├── clipboard-minus-fill.svg
│ │ ├── clipboard-minus.svg
│ │ ├── clipboard-plus-fill.svg
│ │ ├── clipboard-plus.svg
│ │ ├── clipboard-pulse.svg
│ │ ├── clipboard-x-fill.svg
│ │ ├── clipboard-x.svg
│ │ ├── clipboard.svg
│ │ ├── clipboard2-check-fill.svg
│ │ ├── clipboard2-check.svg
│ │ ├── clipboard2-data-fill.svg
│ │ ├── clipboard2-data.svg
│ │ ├── clipboard2-fill.svg
│ │ ├── clipboard2-heart-fill.svg
│ │ ├── clipboard2-heart.svg
│ │ ├── clipboard2-minus-fill.svg
│ │ ├── clipboard2-minus.svg
│ │ ├── clipboard2-plus-fill.svg
│ │ ├── clipboard2-plus.svg
│ │ ├── clipboard2-pulse-fill.svg
│ │ ├── clipboard2-pulse.svg
│ │ ├── clipboard2-x-fill.svg
│ │ ├── clipboard2-x.svg
│ │ ├── clipboard2.svg
│ │ ├── clock-fill.svg
│ │ ├── clock-history.svg
│ │ ├── clock.svg
│ │ ├── cloud-arrow-down-fill.svg
│ │ ├── cloud-arrow-down.svg
│ │ ├── cloud-arrow-up-fill.svg
│ │ ├── cloud-arrow-up.svg
│ │ ├── cloud-check-fill.svg
│ │ ├── cloud-check.svg
│ │ ├── cloud-download-fill.svg
│ │ ├── cloud-download.svg
│ │ ├── cloud-drizzle-fill.svg
│ │ ├── cloud-drizzle.svg
│ │ ├── cloud-fill.svg
│ │ ├── cloud-fog-fill.svg
│ │ ├── cloud-fog.svg
│ │ ├── cloud-fog2-fill.svg
│ │ ├── cloud-fog2.svg
│ │ ├── cloud-hail-fill.svg
│ │ ├── cloud-hail.svg
│ │ ├── cloud-haze-fill.svg
│ │ ├── cloud-haze.svg
│ │ ├── cloud-haze2-fill.svg
│ │ ├── cloud-haze2.svg
│ │ ├── cloud-lightning-fill.svg
│ │ ├── cloud-lightning-rain-fill.svg
│ │ ├── cloud-lightning-rain.svg
│ │ ├── cloud-lightning.svg
│ │ ├── cloud-minus-fill.svg
│ │ ├── cloud-minus.svg
│ │ ├── cloud-moon-fill.svg
│ │ ├── cloud-moon.svg
│ │ ├── cloud-plus-fill.svg
│ │ ├── cloud-plus.svg
│ │ ├── cloud-rain-fill.svg
│ │ ├── cloud-rain-heavy-fill.svg
│ │ ├── cloud-rain-heavy.svg
│ │ ├── cloud-rain.svg
│ │ ├── cloud-slash-fill.svg
│ │ ├── cloud-slash.svg
│ │ ├── cloud-sleet-fill.svg
│ │ ├── cloud-sleet.svg
│ │ ├── cloud-snow-fill.svg
│ │ ├── cloud-snow.svg
│ │ ├── cloud-sun-fill.svg
│ │ ├── cloud-sun.svg
│ │ ├── cloud-upload-fill.svg
│ │ ├── cloud-upload.svg
│ │ ├── cloud.svg
│ │ ├── clouds-fill.svg
│ │ ├── clouds.svg
│ │ ├── cloudy-fill.svg
│ │ ├── cloudy.svg
│ │ ├── code-slash.svg
│ │ ├── code-square.svg
│ │ ├── code.svg
│ │ ├── coin.svg
│ │ ├── collection-fill.svg
│ │ ├── collection-play-fill.svg
│ │ ├── collection-play.svg
│ │ ├── collection.svg
│ │ ├── columns-gap.svg
│ │ ├── columns.svg
│ │ ├── command.svg
│ │ ├── compass-fill.svg
│ │ ├── compass.svg
│ │ ├── cone-striped.svg
│ │ ├── cone.svg
│ │ ├── controller.svg
│ │ ├── cookie.svg
│ │ ├── copy.svg
│ │ ├── cpu-fill.svg
│ │ ├── cpu.svg
│ │ ├── credit-card-2-back-fill.svg
│ │ ├── credit-card-2-back.svg
│ │ ├── credit-card-2-front-fill.svg
│ │ ├── credit-card-2-front.svg
│ │ ├── credit-card-fill.svg
│ │ ├── credit-card.svg
│ │ ├── crop.svg
│ │ ├── crosshair.svg
│ │ ├── crosshair2.svg
│ │ ├── cup-fill.svg
│ │ ├── cup-hot-fill.svg
│ │ ├── cup-hot.svg
│ │ ├── cup-straw.svg
│ │ ├── cup.svg
│ │ ├── currency-bitcoin.svg
│ │ ├── currency-dollar.svg
│ │ ├── currency-euro.svg
│ │ ├── currency-exchange.svg
│ │ ├── currency-pound.svg
│ │ ├── currency-rupee.svg
│ │ ├── currency-yen.svg
│ │ ├── cursor-fill.svg
│ │ ├── cursor-text.svg
│ │ ├── cursor.svg
│ │ ├── dash-circle-dotted.svg
│ │ ├── dash-circle-fill.svg
│ │ ├── dash-circle.svg
│ │ ├── dash-lg.svg
│ │ ├── dash-square-dotted.svg
│ │ ├── dash-square-fill.svg
│ │ ├── dash-square.svg
│ │ ├── dash.svg
│ │ ├── database-add.svg
│ │ ├── database-check.svg
│ │ ├── database-dash.svg
│ │ ├── database-down.svg
│ │ ├── database-exclamation.svg
│ │ ├── database-fill-add.svg
│ │ ├── database-fill-check.svg
│ │ ├── database-fill-dash.svg
│ │ ├── database-fill-down.svg
│ │ ├── database-fill-exclamation.svg
│ │ ├── database-fill-gear.svg
│ │ ├── database-fill-lock.svg
│ │ ├── database-fill-slash.svg
│ │ ├── database-fill-up.svg
│ │ ├── database-fill-x.svg
│ │ ├── database-fill.svg
│ │ ├── database-gear.svg
│ │ ├── database-lock.svg
│ │ ├── database-slash.svg
│ │ ├── database-up.svg
│ │ ├── database-x.svg
│ │ ├── database.svg
│ │ ├── device-hdd-fill.svg
│ │ ├── device-hdd.svg
│ │ ├── device-ssd-fill.svg
│ │ ├── device-ssd.svg
│ │ ├── diagram-2-fill.svg
│ │ ├── diagram-2.svg
│ │ ├── diagram-3-fill.svg
│ │ ├── diagram-3.svg
│ │ ├── diamond-fill.svg
│ │ ├── diamond-half.svg
│ │ ├── diamond.svg
│ │ ├── dice-1-fill.svg
│ │ ├── dice-1.svg
│ │ ├── dice-2-fill.svg
│ │ ├── dice-2.svg
│ │ ├── dice-3-fill.svg
│ │ ├── dice-3.svg
│ │ ├── dice-4-fill.svg
│ │ ├── dice-4.svg
│ │ ├── dice-5-fill.svg
│ │ ├── dice-5.svg
│ │ ├── dice-6-fill.svg
│ │ ├── dice-6.svg
│ │ ├── disc-fill.svg
│ │ ├── disc.svg
│ │ ├── discord.svg
│ │ ├── display-fill.svg
│ │ ├── display.svg
│ │ ├── displayport-fill.svg
│ │ ├── displayport.svg
│ │ ├── distribute-horizontal.svg
│ │ ├── distribute-vertical.svg
│ │ ├── door-closed-fill.svg
│ │ ├── door-closed.svg
│ │ ├── door-open-fill.svg
│ │ ├── door-open.svg
│ │ ├── dot.svg
│ │ ├── download.svg
│ │ ├── dpad-fill.svg
│ │ ├── dpad.svg
│ │ ├── dribbble.svg
│ │ ├── dropbox.svg
│ │ ├── droplet-fill.svg
│ │ ├── droplet-half.svg
│ │ ├── droplet.svg
│ │ ├── duffle-fill.svg
│ │ ├── duffle.svg
│ │ ├── ear-fill.svg
│ │ ├── ear.svg
│ │ ├── earbuds.svg
│ │ ├── easel-fill.svg
│ │ ├── easel.svg
│ │ ├── easel2-fill.svg
│ │ ├── easel2.svg
│ │ ├── easel3-fill.svg
│ │ ├── easel3.svg
│ │ ├── egg-fill.svg
│ │ ├── egg-fried.svg
│ │ ├── egg.svg
│ │ ├── eject-fill.svg
│ │ ├── eject.svg
│ │ ├── emoji-angry-fill.svg
│ │ ├── emoji-angry.svg
│ │ ├── emoji-astonished-fill.svg
│ │ ├── emoji-astonished.svg
│ │ ├── emoji-dizzy-fill.svg
│ │ ├── emoji-dizzy.svg
│ │ ├── emoji-expressionless-fill.svg
│ │ ├── emoji-expressionless.svg
│ │ ├── emoji-frown-fill.svg
│ │ ├── emoji-frown.svg
│ │ ├── emoji-grimace-fill.svg
│ │ ├── emoji-grimace.svg
│ │ ├── emoji-grin-fill.svg
│ │ ├── emoji-grin.svg
│ │ ├── emoji-heart-eyes-fill.svg
│ │ ├── emoji-heart-eyes.svg
│ │ ├── emoji-kiss-fill.svg
│ │ ├── emoji-kiss.svg
│ │ ├── emoji-laughing-fill.svg
│ │ ├── emoji-laughing.svg
│ │ ├── emoji-neutral-fill.svg
│ │ ├── emoji-neutral.svg
│ │ ├── emoji-smile-fill.svg
│ │ ├── emoji-smile-upside-down-fill.svg
│ │ ├── emoji-smile-upside-down.svg
│ │ ├── emoji-smile.svg
│ │ ├── emoji-sunglasses-fill.svg
│ │ ├── emoji-sunglasses.svg
│ │ ├── emoji-surprise-fill.svg
│ │ ├── emoji-surprise.svg
│ │ ├── emoji-tear-fill.svg
│ │ ├── emoji-tear.svg
│ │ ├── emoji-wink-fill.svg
│ │ ├── emoji-wink.svg
│ │ ├── envelope-arrow-down-fill.svg
│ │ ├── envelope-arrow-down.svg
│ │ ├── envelope-arrow-up-fill.svg
│ │ ├── envelope-arrow-up.svg
│ │ ├── envelope-at-fill.svg
│ │ ├── envelope-at.svg
│ │ ├── envelope-check-fill.svg
│ │ ├── envelope-check.svg
│ │ ├── envelope-dash-fill.svg
│ │ ├── envelope-dash.svg
│ │ ├── envelope-exclamation-fill.svg
│ │ ├── envelope-exclamation.svg
│ │ ├── envelope-fill.svg
│ │ ├── envelope-heart-fill.svg
│ │ ├── envelope-heart.svg
│ │ ├── envelope-open-fill.svg
│ │ ├── envelope-open-heart-fill.svg
│ │ ├── envelope-open-heart.svg
│ │ ├── envelope-open.svg
│ │ ├── envelope-paper-fill.svg
│ │ ├── envelope-paper-heart-fill.svg
│ │ ├── envelope-paper-heart.svg
│ │ ├── envelope-paper.svg
│ │ ├── envelope-plus-fill.svg
│ │ ├── envelope-plus.svg
│ │ ├── envelope-slash-fill.svg
│ │ ├── envelope-slash.svg
│ │ ├── envelope-x-fill.svg
│ │ ├── envelope-x.svg
│ │ ├── envelope.svg
│ │ ├── eraser-fill.svg
│ │ ├── eraser.svg
│ │ ├── escape.svg
│ │ ├── ethernet.svg
│ │ ├── ev-front-fill.svg
│ │ ├── ev-front.svg
│ │ ├── ev-station-fill.svg
│ │ ├── ev-station.svg
│ │ ├── exclamation-circle-fill.svg
│ │ ├── exclamation-circle.svg
│ │ ├── exclamation-diamond-fill.svg
│ │ ├── exclamation-diamond.svg
│ │ ├── exclamation-lg.svg
│ │ ├── exclamation-octagon-fill.svg
│ │ ├── exclamation-octagon.svg
│ │ ├── exclamation-square-fill.svg
│ │ ├── exclamation-square.svg
│ │ ├── exclamation-triangle-fill.svg
│ │ ├── exclamation-triangle.svg
│ │ ├── exclamation.svg
│ │ ├── exclude.svg
│ │ ├── explicit-fill.svg
│ │ ├── explicit.svg
│ │ ├── exposure.svg
│ │ ├── eye-fill.svg
│ │ ├── eye-slash-fill.svg
│ │ ├── eye-slash.svg
│ │ ├── eye.svg
│ │ ├── eyedropper.svg
│ │ ├── eyeglasses.svg
│ │ ├── facebook.svg
│ │ ├── fan.svg
│ │ ├── fast-forward-btn-fill.svg
│ │ ├── fast-forward-btn.svg
│ │ ├── fast-forward-circle-fill.svg
│ │ ├── fast-forward-circle.svg
│ │ ├── fast-forward-fill.svg
│ │ ├── fast-forward.svg
│ │ ├── feather.svg
│ │ ├── feather2.svg
│ │ ├── file-arrow-down-fill.svg
│ │ ├── file-arrow-down.svg
│ │ ├── file-arrow-up-fill.svg
│ │ ├── file-arrow-up.svg
│ │ ├── file-bar-graph-fill.svg
│ │ ├── file-bar-graph.svg
│ │ ├── file-binary-fill.svg
│ │ ├── file-binary.svg
│ │ ├── file-break-fill.svg
│ │ ├── file-break.svg
│ │ ├── file-check-fill.svg
│ │ ├── file-check.svg
│ │ ├── file-code-fill.svg
│ │ ├── file-code.svg
│ │ ├── file-diff-fill.svg
│ │ ├── file-diff.svg
│ │ ├── file-earmark-arrow-down-fill.svg
│ │ ├── file-earmark-arrow-down.svg
│ │ ├── file-earmark-arrow-up-fill.svg
│ │ ├── file-earmark-arrow-up.svg
│ │ ├── file-earmark-bar-graph-fill.svg
│ │ ├── file-earmark-bar-graph.svg
│ │ ├── file-earmark-binary-fill.svg
│ │ ├── file-earmark-binary.svg
│ │ ├── file-earmark-break-fill.svg
│ │ ├── file-earmark-break.svg
│ │ ├── file-earmark-check-fill.svg
│ │ ├── file-earmark-check.svg
│ │ ├── file-earmark-code-fill.svg
│ │ ├── file-earmark-code.svg
│ │ ├── file-earmark-diff-fill.svg
│ │ ├── file-earmark-diff.svg
│ │ ├── file-earmark-easel-fill.svg
│ │ ├── file-earmark-easel.svg
│ │ ├── file-earmark-excel-fill.svg
│ │ ├── file-earmark-excel.svg
│ │ ├── file-earmark-fill.svg
│ │ ├── file-earmark-font-fill.svg
│ │ ├── file-earmark-font.svg
│ │ ├── file-earmark-image-fill.svg
│ │ ├── file-earmark-image.svg
│ │ ├── file-earmark-lock-fill.svg
│ │ ├── file-earmark-lock.svg
│ │ ├── file-earmark-lock2-fill.svg
│ │ ├── file-earmark-lock2.svg
│ │ ├── file-earmark-medical-fill.svg
│ │ ├── file-earmark-medical.svg
│ │ ├── file-earmark-minus-fill.svg
│ │ ├── file-earmark-minus.svg
│ │ ├── file-earmark-music-fill.svg
│ │ ├── file-earmark-music.svg
│ │ ├── file-earmark-pdf-fill.svg
│ │ ├── file-earmark-pdf.svg
│ │ ├── file-earmark-person-fill.svg
│ │ ├── file-earmark-person.svg
│ │ ├── file-earmark-play-fill.svg
│ │ ├── file-earmark-play.svg
│ │ ├── file-earmark-plus-fill.svg
│ │ ├── file-earmark-plus.svg
│ │ ├── file-earmark-post-fill.svg
│ │ ├── file-earmark-post.svg
│ │ ├── file-earmark-ppt-fill.svg
│ │ ├── file-earmark-ppt.svg
│ │ ├── file-earmark-richtext-fill.svg
│ │ ├── file-earmark-richtext.svg
│ │ ├── file-earmark-ruled-fill.svg
│ │ ├── file-earmark-ruled.svg
│ │ ├── file-earmark-slides-fill.svg
│ │ ├── file-earmark-slides.svg
│ │ ├── file-earmark-spreadsheet-fill.svg
│ │ ├── file-earmark-spreadsheet.svg
│ │ ├── file-earmark-text-fill.svg
│ │ ├── file-earmark-text.svg
│ │ ├── file-earmark-word-fill.svg
│ │ ├── file-earmark-word.svg
│ │ ├── file-earmark-x-fill.svg
│ │ ├── file-earmark-x.svg
│ │ ├── file-earmark-zip-fill.svg
│ │ ├── file-earmark-zip.svg
│ │ ├── file-earmark.svg
│ │ ├── file-easel-fill.svg
│ │ ├── file-easel.svg
│ │ ├── file-excel-fill.svg
│ │ ├── file-excel.svg
│ │ ├── file-fill.svg
│ │ ├── file-font-fill.svg
│ │ ├── file-font.svg
│ │ ├── file-image-fill.svg
│ │ ├── file-image.svg
│ │ ├── file-lock-fill.svg
│ │ ├── file-lock.svg
│ │ ├── file-lock2-fill.svg
│ │ ├── file-lock2.svg
│ │ ├── file-medical-fill.svg
│ │ ├── file-medical.svg
│ │ ├── file-minus-fill.svg
│ │ ├── file-minus.svg
│ │ ├── file-music-fill.svg
│ │ ├── file-music.svg
│ │ ├── file-pdf-fill.svg
│ │ ├── file-pdf.svg
│ │ ├── file-person-fill.svg
│ │ ├── file-person.svg
│ │ ├── file-play-fill.svg
│ │ ├── file-play.svg
│ │ ├── file-plus-fill.svg
│ │ ├── file-plus.svg
│ │ ├── file-post-fill.svg
│ │ ├── file-post.svg
│ │ ├── file-ppt-fill.svg
│ │ ├── file-ppt.svg
│ │ ├── file-richtext-fill.svg
│ │ ├── file-richtext.svg
│ │ ├── file-ruled-fill.svg
│ │ ├── file-ruled.svg
│ │ ├── file-slides-fill.svg
│ │ ├── file-slides.svg
│ │ ├── file-spreadsheet-fill.svg
│ │ ├── file-spreadsheet.svg
│ │ ├── file-text-fill.svg
│ │ ├── file-text.svg
│ │ ├── file-word-fill.svg
│ │ ├── file-word.svg
│ │ ├── file-x-fill.svg
│ │ ├── file-x.svg
│ │ ├── file-zip-fill.svg
│ │ ├── file-zip.svg
│ │ ├── file.svg
│ │ ├── files-alt.svg
│ │ ├── files.svg
│ │ ├── filetype-aac.svg
│ │ ├── filetype-ai.svg
│ │ ├── filetype-bmp.svg
│ │ ├── filetype-cs.svg
│ │ ├── filetype-css.svg
│ │ ├── filetype-csv.svg
│ │ ├── filetype-doc.svg
│ │ ├── filetype-docx.svg
│ │ ├── filetype-exe.svg
│ │ ├── filetype-gif.svg
│ │ ├── filetype-heic.svg
│ │ ├── filetype-html.svg
│ │ ├── filetype-java.svg
│ │ ├── filetype-jpg.svg
│ │ ├── filetype-js.svg
│ │ ├── filetype-json.svg
│ │ ├── filetype-jsx.svg
│ │ ├── filetype-key.svg
│ │ ├── filetype-m4p.svg
│ │ ├── filetype-md.svg
│ │ ├── filetype-mdx.svg
│ │ ├── filetype-mov.svg
│ │ ├── filetype-mp3.svg
│ │ ├── filetype-mp4.svg
│ │ ├── filetype-otf.svg
│ │ ├── filetype-pdf.svg
│ │ ├── filetype-php.svg
│ │ ├── filetype-png.svg
│ │ ├── filetype-ppt.svg
│ │ ├── filetype-pptx.svg
│ │ ├── filetype-psd.svg
│ │ ├── filetype-py.svg
│ │ ├── filetype-raw.svg
│ │ ├── filetype-rb.svg
│ │ ├── filetype-sass.svg
│ │ ├── filetype-scss.svg
│ │ ├── filetype-sh.svg
│ │ ├── filetype-sql.svg
│ │ ├── filetype-svg.svg
│ │ ├── filetype-tiff.svg
│ │ ├── filetype-tsx.svg
│ │ ├── filetype-ttf.svg
│ │ ├── filetype-txt.svg
│ │ ├── filetype-wav.svg
│ │ ├── filetype-woff.svg
│ │ ├── filetype-xls.svg
│ │ ├── filetype-xlsx.svg
│ │ ├── filetype-xml.svg
│ │ ├── filetype-yml.svg
│ │ ├── film.svg
│ │ ├── filter-circle-fill.svg
│ │ ├── filter-circle.svg
│ │ ├── filter-left.svg
│ │ ├── filter-right.svg
│ │ ├── filter-square-fill.svg
│ │ ├── filter-square.svg
│ │ ├── filter.svg
│ │ ├── fingerprint.svg
│ │ ├── fire.svg
│ │ ├── flag-fill.svg
│ │ ├── flag.svg
│ │ ├── floppy-fill.svg
│ │ ├── floppy.svg
│ │ ├── floppy2-fill.svg
│ │ ├── floppy2.svg
│ │ ├── flower1.svg
│ │ ├── flower2.svg
│ │ ├── flower3.svg
│ │ ├── folder-check.svg
│ │ ├── folder-fill.svg
│ │ ├── folder-minus.svg
│ │ ├── folder-plus.svg
│ │ ├── folder-symlink-fill.svg
│ │ ├── folder-symlink.svg
│ │ ├── folder-x.svg
│ │ ├── folder.svg
│ │ ├── folder2-open.svg
│ │ ├── folder2.svg
│ │ ├── font
│ │ │ ├── bootstrap-icons.css
│ │ │ ├── bootstrap-icons.json
│ │ │ ├── bootstrap-icons.min.css
│ │ │ ├── bootstrap-icons.scss
│ │ │ └── fonts
│ │ │ │ ├── bootstrap-icons.woff
│ │ │ │ └── bootstrap-icons.woff2
│ │ ├── fonts.svg
│ │ ├── forward-fill.svg
│ │ ├── forward.svg
│ │ ├── front.svg
│ │ ├── fuel-pump-diesel-fill.svg
│ │ ├── fuel-pump-diesel.svg
│ │ ├── fuel-pump-fill.svg
│ │ ├── fuel-pump.svg
│ │ ├── fullscreen-exit.svg
│ │ ├── fullscreen.svg
│ │ ├── funnel-fill.svg
│ │ ├── funnel.svg
│ │ ├── gear-fill.svg
│ │ ├── gear-wide-connected.svg
│ │ ├── gear-wide.svg
│ │ ├── gear.svg
│ │ ├── gem.svg
│ │ ├── gender-ambiguous.svg
│ │ ├── gender-female.svg
│ │ ├── gender-male.svg
│ │ ├── gender-neuter.svg
│ │ ├── gender-trans.svg
│ │ ├── geo-alt-fill.svg
│ │ ├── geo-alt.svg
│ │ ├── geo-fill.svg
│ │ ├── geo.svg
│ │ ├── gift-fill.svg
│ │ ├── gift.svg
│ │ ├── git.svg
│ │ ├── github.svg
│ │ ├── gitlab.svg
│ │ ├── globe-americas.svg
│ │ ├── globe-asia-australia.svg
│ │ ├── globe-central-south-asia.svg
│ │ ├── globe-europe-africa.svg
│ │ ├── globe.svg
│ │ ├── globe2.svg
│ │ ├── google-play.svg
│ │ ├── google.svg
│ │ ├── gpu-card.svg
│ │ ├── graph-down-arrow.svg
│ │ ├── graph-down.svg
│ │ ├── graph-up-arrow.svg
│ │ ├── graph-up.svg
│ │ ├── grid-1x2-fill.svg
│ │ ├── grid-1x2.svg
│ │ ├── grid-3x2-gap-fill.svg
│ │ ├── grid-3x2-gap.svg
│ │ ├── grid-3x2.svg
│ │ ├── grid-3x3-gap-fill.svg
│ │ ├── grid-3x3-gap.svg
│ │ ├── grid-3x3.svg
│ │ ├── grid-fill.svg
│ │ ├── grid.svg
│ │ ├── grip-horizontal.svg
│ │ ├── grip-vertical.svg
│ │ ├── h-circle-fill.svg
│ │ ├── h-circle.svg
│ │ ├── h-square-fill.svg
│ │ ├── h-square.svg
│ │ ├── hammer.svg
│ │ ├── hand-index-fill.svg
│ │ ├── hand-index-thumb-fill.svg
│ │ ├── hand-index-thumb.svg
│ │ ├── hand-index.svg
│ │ ├── hand-thumbs-down-fill.svg
│ │ ├── hand-thumbs-down.svg
│ │ ├── hand-thumbs-up-fill.svg
│ │ ├── hand-thumbs-up.svg
│ │ ├── handbag-fill.svg
│ │ ├── handbag.svg
│ │ ├── hash.svg
│ │ ├── hdd-fill.svg
│ │ ├── hdd-network-fill.svg
│ │ ├── hdd-network.svg
│ │ ├── hdd-rack-fill.svg
│ │ ├── hdd-rack.svg
│ │ ├── hdd-stack-fill.svg
│ │ ├── hdd-stack.svg
│ │ ├── hdd.svg
│ │ ├── hdmi-fill.svg
│ │ ├── hdmi.svg
│ │ ├── headphones.svg
│ │ ├── headset-vr.svg
│ │ ├── headset.svg
│ │ ├── heart-arrow.svg
│ │ ├── heart-fill.svg
│ │ ├── heart-half.svg
│ │ ├── heart-pulse-fill.svg
│ │ ├── heart-pulse.svg
│ │ ├── heart.svg
│ │ ├── heartbreak-fill.svg
│ │ ├── heartbreak.svg
│ │ ├── hearts.svg
│ │ ├── heptagon-fill.svg
│ │ ├── heptagon-half.svg
│ │ ├── heptagon.svg
│ │ ├── hexagon-fill.svg
│ │ ├── hexagon-half.svg
│ │ ├── hexagon.svg
│ │ ├── highlighter.svg
│ │ ├── highlights.svg
│ │ ├── hospital-fill.svg
│ │ ├── hospital.svg
│ │ ├── hourglass-bottom.svg
│ │ ├── hourglass-split.svg
│ │ ├── hourglass-top.svg
│ │ ├── hourglass.svg
│ │ ├── house-add-fill.svg
│ │ ├── house-add.svg
│ │ ├── house-check-fill.svg
│ │ ├── house-check.svg
│ │ ├── house-dash-fill.svg
│ │ ├── house-dash.svg
│ │ ├── house-door-fill.svg
│ │ ├── house-door.svg
│ │ ├── house-down-fill.svg
│ │ ├── house-down.svg
│ │ ├── house-exclamation-fill.svg
│ │ ├── house-exclamation.svg
│ │ ├── house-fill.svg
│ │ ├── house-gear-fill.svg
│ │ ├── house-gear.svg
│ │ ├── house-heart-fill.svg
│ │ ├── house-heart.svg
│ │ ├── house-lock-fill.svg
│ │ ├── house-lock.svg
│ │ ├── house-slash-fill.svg
│ │ ├── house-slash.svg
│ │ ├── house-up-fill.svg
│ │ ├── house-up.svg
│ │ ├── house-x-fill.svg
│ │ ├── house-x.svg
│ │ ├── house.svg
│ │ ├── houses-fill.svg
│ │ ├── houses.svg
│ │ ├── hr.svg
│ │ ├── hurricane.svg
│ │ ├── hypnotize.svg
│ │ ├── image-alt.svg
│ │ ├── image-fill.svg
│ │ ├── image.svg
│ │ ├── images.svg
│ │ ├── inbox-fill.svg
│ │ ├── inbox.svg
│ │ ├── inboxes-fill.svg
│ │ ├── inboxes.svg
│ │ ├── incognito.svg
│ │ ├── indent.svg
│ │ ├── infinity.svg
│ │ ├── info-circle-fill.svg
│ │ ├── info-circle.svg
│ │ ├── info-lg.svg
│ │ ├── info-square-fill.svg
│ │ ├── info-square.svg
│ │ ├── info.svg
│ │ ├── input-cursor-text.svg
│ │ ├── input-cursor.svg
│ │ ├── instagram.svg
│ │ ├── intersect.svg
│ │ ├── journal-album.svg
│ │ ├── journal-arrow-down.svg
│ │ ├── journal-arrow-up.svg
│ │ ├── journal-bookmark-fill.svg
│ │ ├── journal-bookmark.svg
│ │ ├── journal-check.svg
│ │ ├── journal-code.svg
│ │ ├── journal-medical.svg
│ │ ├── journal-minus.svg
│ │ ├── journal-plus.svg
│ │ ├── journal-richtext.svg
│ │ ├── journal-text.svg
│ │ ├── journal-x.svg
│ │ ├── journal.svg
│ │ ├── journals.svg
│ │ ├── joystick.svg
│ │ ├── justify-left.svg
│ │ ├── justify-right.svg
│ │ ├── justify.svg
│ │ ├── kanban-fill.svg
│ │ ├── kanban.svg
│ │ ├── key-fill.svg
│ │ ├── key.svg
│ │ ├── keyboard-fill.svg
│ │ ├── keyboard.svg
│ │ ├── ladder.svg
│ │ ├── lamp-fill.svg
│ │ ├── lamp.svg
│ │ ├── laptop-fill.svg
│ │ ├── laptop.svg
│ │ ├── layer-backward.svg
│ │ ├── layer-forward.svg
│ │ ├── layers-fill.svg
│ │ ├── layers-half.svg
│ │ ├── layers.svg
│ │ ├── layout-sidebar-inset-reverse.svg
│ │ ├── layout-sidebar-inset.svg
│ │ ├── layout-sidebar-reverse.svg
│ │ ├── layout-sidebar.svg
│ │ ├── layout-split.svg
│ │ ├── layout-text-sidebar-reverse.svg
│ │ ├── layout-text-sidebar.svg
│ │ ├── layout-text-window-reverse.svg
│ │ ├── layout-text-window.svg
│ │ ├── layout-three-columns.svg
│ │ ├── layout-wtf.svg
│ │ ├── life-preserver.svg
│ │ ├── lightbulb-fill.svg
│ │ ├── lightbulb-off-fill.svg
│ │ ├── lightbulb-off.svg
│ │ ├── lightbulb.svg
│ │ ├── lightning-charge-fill.svg
│ │ ├── lightning-charge.svg
│ │ ├── lightning-fill.svg
│ │ ├── lightning.svg
│ │ ├── line.svg
│ │ ├── link-45deg.svg
│ │ ├── link.svg
│ │ ├── linkedin.svg
│ │ ├── list-check.svg
│ │ ├── list-columns-reverse.svg
│ │ ├── list-columns.svg
│ │ ├── list-nested.svg
│ │ ├── list-ol.svg
│ │ ├── list-stars.svg
│ │ ├── list-task.svg
│ │ ├── list-ul.svg
│ │ ├── list.svg
│ │ ├── lock-fill.svg
│ │ ├── lock.svg
│ │ ├── luggage-fill.svg
│ │ ├── luggage.svg
│ │ ├── lungs-fill.svg
│ │ ├── lungs.svg
│ │ ├── magic.svg
│ │ ├── magnet-fill.svg
│ │ ├── magnet.svg
│ │ ├── mailbox-flag.svg
│ │ ├── mailbox.svg
│ │ ├── mailbox2-flag.svg
│ │ ├── mailbox2.svg
│ │ ├── map-fill.svg
│ │ ├── map.svg
│ │ ├── markdown-fill.svg
│ │ ├── markdown.svg
│ │ ├── marker-tip.svg
│ │ ├── mask.svg
│ │ ├── mastodon.svg
│ │ ├── medium.svg
│ │ ├── megaphone-fill.svg
│ │ ├── megaphone.svg
│ │ ├── memory.svg
│ │ ├── menu-app-fill.svg
│ │ ├── menu-app.svg
│ │ ├── menu-button-fill.svg
│ │ ├── menu-button-wide-fill.svg
│ │ ├── menu-button-wide.svg
│ │ ├── menu-button.svg
│ │ ├── menu-down.svg
│ │ ├── menu-up.svg
│ │ ├── messenger.svg
│ │ ├── meta.svg
│ │ ├── mic-fill.svg
│ │ ├── mic-mute-fill.svg
│ │ ├── mic-mute.svg
│ │ ├── mic.svg
│ │ ├── microsoft-teams.svg
│ │ ├── microsoft.svg
│ │ ├── minecart-loaded.svg
│ │ ├── minecart.svg
│ │ ├── modem-fill.svg
│ │ ├── modem.svg
│ │ ├── moisture.svg
│ │ ├── moon-fill.svg
│ │ ├── moon-stars-fill.svg
│ │ ├── moon-stars.svg
│ │ ├── moon.svg
│ │ ├── mortarboard-fill.svg
│ │ ├── mortarboard.svg
│ │ ├── motherboard-fill.svg
│ │ ├── motherboard.svg
│ │ ├── mouse-fill.svg
│ │ ├── mouse.svg
│ │ ├── mouse2-fill.svg
│ │ ├── mouse2.svg
│ │ ├── mouse3-fill.svg
│ │ ├── mouse3.svg
│ │ ├── music-note-beamed.svg
│ │ ├── music-note-list.svg
│ │ ├── music-note.svg
│ │ ├── music-player-fill.svg
│ │ ├── music-player.svg
│ │ ├── newspaper.svg
│ │ ├── nintendo-switch.svg
│ │ ├── node-minus-fill.svg
│ │ ├── node-minus.svg
│ │ ├── node-plus-fill.svg
│ │ ├── node-plus.svg
│ │ ├── noise-reduction.svg
│ │ ├── nut-fill.svg
│ │ ├── nut.svg
│ │ ├── nvidia.svg
│ │ ├── nvme-fill.svg
│ │ ├── nvme.svg
│ │ ├── octagon-fill.svg
│ │ ├── octagon-half.svg
│ │ ├── octagon.svg
│ │ ├── opencollective.svg
│ │ ├── optical-audio-fill.svg
│ │ ├── optical-audio.svg
│ │ ├── option.svg
│ │ ├── outlet.svg
│ │ ├── p-circle-fill.svg
│ │ ├── p-circle.svg
│ │ ├── p-square-fill.svg
│ │ ├── p-square.svg
│ │ ├── paint-bucket.svg
│ │ ├── palette-fill.svg
│ │ ├── palette.svg
│ │ ├── palette2.svg
│ │ ├── paperclip.svg
│ │ ├── paragraph.svg
│ │ ├── pass-fill.svg
│ │ ├── pass.svg
│ │ ├── passport-fill.svg
│ │ ├── passport.svg
│ │ ├── patch-check-fill.svg
│ │ ├── patch-check.svg
│ │ ├── patch-exclamation-fill.svg
│ │ ├── patch-exclamation.svg
│ │ ├── patch-minus-fill.svg
│ │ ├── patch-minus.svg
│ │ ├── patch-plus-fill.svg
│ │ ├── patch-plus.svg
│ │ ├── patch-question-fill.svg
│ │ ├── patch-question.svg
│ │ ├── pause-btn-fill.svg
│ │ ├── pause-btn.svg
│ │ ├── pause-circle-fill.svg
│ │ ├── pause-circle.svg
│ │ ├── pause-fill.svg
│ │ ├── pause.svg
│ │ ├── paypal.svg
│ │ ├── pc-display-horizontal.svg
│ │ ├── pc-display.svg
│ │ ├── pc-horizontal.svg
│ │ ├── pc.svg
│ │ ├── pci-card-network.svg
│ │ ├── pci-card-sound.svg
│ │ ├── pci-card.svg
│ │ ├── peace-fill.svg
│ │ ├── peace.svg
│ │ ├── pen-fill.svg
│ │ ├── pen.svg
│ │ ├── pencil-fill.svg
│ │ ├── pencil-square.svg
│ │ ├── pencil.svg
│ │ ├── pentagon-fill.svg
│ │ ├── pentagon-half.svg
│ │ ├── pentagon.svg
│ │ ├── people-fill.svg
│ │ ├── people.svg
│ │ ├── percent.svg
│ │ ├── person-add.svg
│ │ ├── person-arms-up.svg
│ │ ├── person-badge-fill.svg
│ │ ├── person-badge.svg
│ │ ├── person-bounding-box.svg
│ │ ├── person-check-fill.svg
│ │ ├── person-check.svg
│ │ ├── person-circle.svg
│ │ ├── person-dash-fill.svg
│ │ ├── person-dash.svg
│ │ ├── person-down.svg
│ │ ├── person-exclamation.svg
│ │ ├── person-fill-add.svg
│ │ ├── person-fill-check.svg
│ │ ├── person-fill-dash.svg
│ │ ├── person-fill-down.svg
│ │ ├── person-fill-exclamation.svg
│ │ ├── person-fill-gear.svg
│ │ ├── person-fill-lock.svg
│ │ ├── person-fill-slash.svg
│ │ ├── person-fill-up.svg
│ │ ├── person-fill-x.svg
│ │ ├── person-fill.svg
│ │ ├── person-gear.svg
│ │ ├── person-heart.svg
│ │ ├── person-hearts.svg
│ │ ├── person-lines-fill.svg
│ │ ├── person-lock.svg
│ │ ├── person-plus-fill.svg
│ │ ├── person-plus.svg
│ │ ├── person-raised-hand.svg
│ │ ├── person-rolodex.svg
│ │ ├── person-slash.svg
│ │ ├── person-square.svg
│ │ ├── person-standing-dress.svg
│ │ ├── person-standing.svg
│ │ ├── person-up.svg
│ │ ├── person-vcard-fill.svg
│ │ ├── person-vcard.svg
│ │ ├── person-video.svg
│ │ ├── person-video2.svg
│ │ ├── person-video3.svg
│ │ ├── person-walking.svg
│ │ ├── person-wheelchair.svg
│ │ ├── person-workspace.svg
│ │ ├── person-x-fill.svg
│ │ ├── person-x.svg
│ │ ├── person.svg
│ │ ├── phone-fill.svg
│ │ ├── phone-flip.svg
│ │ ├── phone-landscape-fill.svg
│ │ ├── phone-landscape.svg
│ │ ├── phone-vibrate-fill.svg
│ │ ├── phone-vibrate.svg
│ │ ├── phone.svg
│ │ ├── pie-chart-fill.svg
│ │ ├── pie-chart.svg
│ │ ├── piggy-bank-fill.svg
│ │ ├── piggy-bank.svg
│ │ ├── pin-angle-fill.svg
│ │ ├── pin-angle.svg
│ │ ├── pin-fill.svg
│ │ ├── pin-map-fill.svg
│ │ ├── pin-map.svg
│ │ ├── pin.svg
│ │ ├── pinterest.svg
│ │ ├── pip-fill.svg
│ │ ├── pip.svg
│ │ ├── play-btn-fill.svg
│ │ ├── play-btn.svg
│ │ ├── play-circle-fill.svg
│ │ ├── play-circle.svg
│ │ ├── play-fill.svg
│ │ ├── play.svg
│ │ ├── playstation.svg
│ │ ├── plug-fill.svg
│ │ ├── plug.svg
│ │ ├── plugin.svg
│ │ ├── plus-circle-dotted.svg
│ │ ├── plus-circle-fill.svg
│ │ ├── plus-circle.svg
│ │ ├── plus-lg.svg
│ │ ├── plus-slash-minus.svg
│ │ ├── plus-square-dotted.svg
│ │ ├── plus-square-fill.svg
│ │ ├── plus-square.svg
│ │ ├── plus.svg
│ │ ├── postage-fill.svg
│ │ ├── postage-heart-fill.svg
│ │ ├── postage-heart.svg
│ │ ├── postage.svg
│ │ ├── postcard-fill.svg
│ │ ├── postcard-heart-fill.svg
│ │ ├── postcard-heart.svg
│ │ ├── postcard.svg
│ │ ├── power.svg
│ │ ├── prescription.svg
│ │ ├── prescription2.svg
│ │ ├── printer-fill.svg
│ │ ├── printer.svg
│ │ ├── projector-fill.svg
│ │ ├── projector.svg
│ │ ├── puzzle-fill.svg
│ │ ├── puzzle.svg
│ │ ├── qr-code-scan.svg
│ │ ├── qr-code.svg
│ │ ├── question-circle-fill.svg
│ │ ├── question-circle.svg
│ │ ├── question-diamond-fill.svg
│ │ ├── question-diamond.svg
│ │ ├── question-lg.svg
│ │ ├── question-octagon-fill.svg
│ │ ├── question-octagon.svg
│ │ ├── question-square-fill.svg
│ │ ├── question-square.svg
│ │ ├── question.svg
│ │ ├── quora.svg
│ │ ├── quote.svg
│ │ ├── r-circle-fill.svg
│ │ ├── r-circle.svg
│ │ ├── r-square-fill.svg
│ │ ├── r-square.svg
│ │ ├── radar.svg
│ │ ├── radioactive.svg
│ │ ├── rainbow.svg
│ │ ├── receipt-cutoff.svg
│ │ ├── receipt.svg
│ │ ├── reception-0.svg
│ │ ├── reception-1.svg
│ │ ├── reception-2.svg
│ │ ├── reception-3.svg
│ │ ├── reception-4.svg
│ │ ├── record-btn-fill.svg
│ │ ├── record-btn.svg
│ │ ├── record-circle-fill.svg
│ │ ├── record-circle.svg
│ │ ├── record-fill.svg
│ │ ├── record.svg
│ │ ├── record2-fill.svg
│ │ ├── record2.svg
│ │ ├── recycle.svg
│ │ ├── reddit.svg
│ │ ├── regex.svg
│ │ ├── repeat-1.svg
│ │ ├── repeat.svg
│ │ ├── reply-all-fill.svg
│ │ ├── reply-all.svg
│ │ ├── reply-fill.svg
│ │ ├── reply.svg
│ │ ├── rewind-btn-fill.svg
│ │ ├── rewind-btn.svg
│ │ ├── rewind-circle-fill.svg
│ │ ├── rewind-circle.svg
│ │ ├── rewind-fill.svg
│ │ ├── rewind.svg
│ │ ├── robot.svg
│ │ ├── rocket-fill.svg
│ │ ├── rocket-takeoff-fill.svg
│ │ ├── rocket-takeoff.svg
│ │ ├── rocket.svg
│ │ ├── router-fill.svg
│ │ ├── router.svg
│ │ ├── rss-fill.svg
│ │ ├── rss.svg
│ │ ├── rulers.svg
│ │ ├── safe-fill.svg
│ │ ├── safe.svg
│ │ ├── safe2-fill.svg
│ │ ├── safe2.svg
│ │ ├── save-fill.svg
│ │ ├── save.svg
│ │ ├── save2-fill.svg
│ │ ├── save2.svg
│ │ ├── scissors.svg
│ │ ├── scooter.svg
│ │ ├── screwdriver.svg
│ │ ├── sd-card-fill.svg
│ │ ├── sd-card.svg
│ │ ├── search-heart-fill.svg
│ │ ├── search-heart.svg
│ │ ├── search.svg
│ │ ├── segmented-nav.svg
│ │ ├── send-arrow-down-fill.svg
│ │ ├── send-arrow-down.svg
│ │ ├── send-arrow-up-fill.svg
│ │ ├── send-arrow-up.svg
│ │ ├── send-check-fill.svg
│ │ ├── send-check.svg
│ │ ├── send-dash-fill.svg
│ │ ├── send-dash.svg
│ │ ├── send-exclamation-fill.svg
│ │ ├── send-exclamation.svg
│ │ ├── send-fill.svg
│ │ ├── send-plus-fill.svg
│ │ ├── send-plus.svg
│ │ ├── send-slash-fill.svg
│ │ ├── send-slash.svg
│ │ ├── send-x-fill.svg
│ │ ├── send-x.svg
│ │ ├── send.svg
│ │ ├── server.svg
│ │ ├── shadows.svg
│ │ ├── share-fill.svg
│ │ ├── share.svg
│ │ ├── shield-check.svg
│ │ ├── shield-exclamation.svg
│ │ ├── shield-fill-check.svg
│ │ ├── shield-fill-exclamation.svg
│ │ ├── shield-fill-minus.svg
│ │ ├── shield-fill-plus.svg
│ │ ├── shield-fill-x.svg
│ │ ├── shield-fill.svg
│ │ ├── shield-lock-fill.svg
│ │ ├── shield-lock.svg
│ │ ├── shield-minus.svg
│ │ ├── shield-plus.svg
│ │ ├── shield-shaded.svg
│ │ ├── shield-slash-fill.svg
│ │ ├── shield-slash.svg
│ │ ├── shield-x.svg
│ │ ├── shield.svg
│ │ ├── shift-fill.svg
│ │ ├── shift.svg
│ │ ├── shop-window.svg
│ │ ├── shop.svg
│ │ ├── shuffle.svg
│ │ ├── sign-dead-end-fill.svg
│ │ ├── sign-dead-end.svg
│ │ ├── sign-do-not-enter-fill.svg
│ │ ├── sign-do-not-enter.svg
│ │ ├── sign-intersection-fill.svg
│ │ ├── sign-intersection-side-fill.svg
│ │ ├── sign-intersection-side.svg
│ │ ├── sign-intersection-t-fill.svg
│ │ ├── sign-intersection-t.svg
│ │ ├── sign-intersection-y-fill.svg
│ │ ├── sign-intersection-y.svg
│ │ ├── sign-intersection.svg
│ │ ├── sign-merge-left-fill.svg
│ │ ├── sign-merge-left.svg
│ │ ├── sign-merge-right-fill.svg
│ │ ├── sign-merge-right.svg
│ │ ├── sign-no-left-turn-fill.svg
│ │ ├── sign-no-left-turn.svg
│ │ ├── sign-no-parking-fill.svg
│ │ ├── sign-no-parking.svg
│ │ ├── sign-no-right-turn-fill.svg
│ │ ├── sign-no-right-turn.svg
│ │ ├── sign-railroad-fill.svg
│ │ ├── sign-railroad.svg
│ │ ├── sign-stop-fill.svg
│ │ ├── sign-stop-lights-fill.svg
│ │ ├── sign-stop-lights.svg
│ │ ├── sign-stop.svg
│ │ ├── sign-turn-left-fill.svg
│ │ ├── sign-turn-left.svg
│ │ ├── sign-turn-right-fill.svg
│ │ ├── sign-turn-right.svg
│ │ ├── sign-turn-slight-left-fill.svg
│ │ ├── sign-turn-slight-left.svg
│ │ ├── sign-turn-slight-right-fill.svg
│ │ ├── sign-turn-slight-right.svg
│ │ ├── sign-yield-fill.svg
│ │ ├── sign-yield.svg
│ │ ├── signal.svg
│ │ ├── signpost-2-fill.svg
│ │ ├── signpost-2.svg
│ │ ├── signpost-fill.svg
│ │ ├── signpost-split-fill.svg
│ │ ├── signpost-split.svg
│ │ ├── signpost.svg
│ │ ├── sim-fill.svg
│ │ ├── sim-slash-fill.svg
│ │ ├── sim-slash.svg
│ │ ├── sim.svg
│ │ ├── sina-weibo.svg
│ │ ├── skip-backward-btn-fill.svg
│ │ ├── skip-backward-btn.svg
│ │ ├── skip-backward-circle-fill.svg
│ │ ├── skip-backward-circle.svg
│ │ ├── skip-backward-fill.svg
│ │ ├── skip-backward.svg
│ │ ├── skip-end-btn-fill.svg
│ │ ├── skip-end-btn.svg
│ │ ├── skip-end-circle-fill.svg
│ │ ├── skip-end-circle.svg
│ │ ├── skip-end-fill.svg
│ │ ├── skip-end.svg
│ │ ├── skip-forward-btn-fill.svg
│ │ ├── skip-forward-btn.svg
│ │ ├── skip-forward-circle-fill.svg
│ │ ├── skip-forward-circle.svg
│ │ ├── skip-forward-fill.svg
│ │ ├── skip-forward.svg
│ │ ├── skip-start-btn-fill.svg
│ │ ├── skip-start-btn.svg
│ │ ├── skip-start-circle-fill.svg
│ │ ├── skip-start-circle.svg
│ │ ├── skip-start-fill.svg
│ │ ├── skip-start.svg
│ │ ├── skype.svg
│ │ ├── slack.svg
│ │ ├── slash-circle-fill.svg
│ │ ├── slash-circle.svg
│ │ ├── slash-lg.svg
│ │ ├── slash-square-fill.svg
│ │ ├── slash-square.svg
│ │ ├── slash.svg
│ │ ├── sliders.svg
│ │ ├── sliders2-vertical.svg
│ │ ├── sliders2.svg
│ │ ├── smartwatch.svg
│ │ ├── snapchat.svg
│ │ ├── snow.svg
│ │ ├── snow2.svg
│ │ ├── snow3.svg
│ │ ├── sort-alpha-down-alt.svg
│ │ ├── sort-alpha-down.svg
│ │ ├── sort-alpha-up-alt.svg
│ │ ├── sort-alpha-up.svg
│ │ ├── sort-down-alt.svg
│ │ ├── sort-down.svg
│ │ ├── sort-numeric-down-alt.svg
│ │ ├── sort-numeric-down.svg
│ │ ├── sort-numeric-up-alt.svg
│ │ ├── sort-numeric-up.svg
│ │ ├── sort-up-alt.svg
│ │ ├── sort-up.svg
│ │ ├── soundwave.svg
│ │ ├── sourceforge.svg
│ │ ├── speaker-fill.svg
│ │ ├── speaker.svg
│ │ ├── speedometer.svg
│ │ ├── speedometer2.svg
│ │ ├── spellcheck.svg
│ │ ├── spotify.svg
│ │ ├── square-fill.svg
│ │ ├── square-half.svg
│ │ ├── square.svg
│ │ ├── stack-overflow.svg
│ │ ├── stack.svg
│ │ ├── star-fill.svg
│ │ ├── star-half.svg
│ │ ├── star.svg
│ │ ├── stars.svg
│ │ ├── steam.svg
│ │ ├── stickies-fill.svg
│ │ ├── stickies.svg
│ │ ├── sticky-fill.svg
│ │ ├── sticky.svg
│ │ ├── stop-btn-fill.svg
│ │ ├── stop-btn.svg
│ │ ├── stop-circle-fill.svg
│ │ ├── stop-circle.svg
│ │ ├── stop-fill.svg
│ │ ├── stop.svg
│ │ ├── stoplights-fill.svg
│ │ ├── stoplights.svg
│ │ ├── stopwatch-fill.svg
│ │ ├── stopwatch.svg
│ │ ├── strava.svg
│ │ ├── stripe.svg
│ │ ├── subscript.svg
│ │ ├── substack.svg
│ │ ├── subtract.svg
│ │ ├── suit-club-fill.svg
│ │ ├── suit-club.svg
│ │ ├── suit-diamond-fill.svg
│ │ ├── suit-diamond.svg
│ │ ├── suit-heart-fill.svg
│ │ ├── suit-heart.svg
│ │ ├── suit-spade-fill.svg
│ │ ├── suit-spade.svg
│ │ ├── suitcase-fill.svg
│ │ ├── suitcase-lg-fill.svg
│ │ ├── suitcase-lg.svg
│ │ ├── suitcase.svg
│ │ ├── suitcase2-fill.svg
│ │ ├── suitcase2.svg
│ │ ├── sun-fill.svg
│ │ ├── sun.svg
│ │ ├── sunglasses.svg
│ │ ├── sunrise-fill.svg
│ │ ├── sunrise.svg
│ │ ├── sunset-fill.svg
│ │ ├── sunset.svg
│ │ ├── superscript.svg
│ │ ├── symmetry-horizontal.svg
│ │ ├── symmetry-vertical.svg
│ │ ├── table.svg
│ │ ├── tablet-fill.svg
│ │ ├── tablet-landscape-fill.svg
│ │ ├── tablet-landscape.svg
│ │ ├── tablet.svg
│ │ ├── tag-fill.svg
│ │ ├── tag.svg
│ │ ├── tags-fill.svg
│ │ ├── tags.svg
│ │ ├── taxi-front-fill.svg
│ │ ├── taxi-front.svg
│ │ ├── telegram.svg
│ │ ├── telephone-fill.svg
│ │ ├── telephone-forward-fill.svg
│ │ ├── telephone-forward.svg
│ │ ├── telephone-inbound-fill.svg
│ │ ├── telephone-inbound.svg
│ │ ├── telephone-minus-fill.svg
│ │ ├── telephone-minus.svg
│ │ ├── telephone-outbound-fill.svg
│ │ ├── telephone-outbound.svg
│ │ ├── telephone-plus-fill.svg
│ │ ├── telephone-plus.svg
│ │ ├── telephone-x-fill.svg
│ │ ├── telephone-x.svg
│ │ ├── telephone.svg
│ │ ├── tencent-qq.svg
│ │ ├── terminal-dash.svg
│ │ ├── terminal-fill.svg
│ │ ├── terminal-plus.svg
│ │ ├── terminal-split.svg
│ │ ├── terminal-x.svg
│ │ ├── terminal.svg
│ │ ├── text-center.svg
│ │ ├── text-indent-left.svg
│ │ ├── text-indent-right.svg
│ │ ├── text-left.svg
│ │ ├── text-paragraph.svg
│ │ ├── text-right.svg
│ │ ├── text-wrap.svg
│ │ ├── textarea-resize.svg
│ │ ├── textarea-t.svg
│ │ ├── textarea.svg
│ │ ├── thermometer-half.svg
│ │ ├── thermometer-high.svg
│ │ ├── thermometer-low.svg
│ │ ├── thermometer-snow.svg
│ │ ├── thermometer-sun.svg
│ │ ├── thermometer.svg
│ │ ├── threads-fill.svg
│ │ ├── threads.svg
│ │ ├── three-dots-vertical.svg
│ │ ├── three-dots.svg
│ │ ├── thunderbolt-fill.svg
│ │ ├── thunderbolt.svg
│ │ ├── ticket-detailed-fill.svg
│ │ ├── ticket-detailed.svg
│ │ ├── ticket-fill.svg
│ │ ├── ticket-perforated-fill.svg
│ │ ├── ticket-perforated.svg
│ │ ├── ticket.svg
│ │ ├── tiktok.svg
│ │ ├── toggle-off.svg
│ │ ├── toggle-on.svg
│ │ ├── toggle2-off.svg
│ │ ├── toggle2-on.svg
│ │ ├── toggles.svg
│ │ ├── toggles2.svg
│ │ ├── tools.svg
│ │ ├── tornado.svg
│ │ ├── train-freight-front-fill.svg
│ │ ├── train-freight-front.svg
│ │ ├── train-front-fill.svg
│ │ ├── train-front.svg
│ │ ├── train-lightrail-front-fill.svg
│ │ ├── train-lightrail-front.svg
│ │ ├── translate.svg
│ │ ├── transparency.svg
│ │ ├── trash-fill.svg
│ │ ├── trash.svg
│ │ ├── trash2-fill.svg
│ │ ├── trash2.svg
│ │ ├── trash3-fill.svg
│ │ ├── trash3.svg
│ │ ├── tree-fill.svg
│ │ ├── tree.svg
│ │ ├── trello.svg
│ │ ├── triangle-fill.svg
│ │ ├── triangle-half.svg
│ │ ├── triangle.svg
│ │ ├── trophy-fill.svg
│ │ ├── trophy.svg
│ │ ├── tropical-storm.svg
│ │ ├── truck-flatbed.svg
│ │ ├── truck-front-fill.svg
│ │ ├── truck-front.svg
│ │ ├── truck.svg
│ │ ├── tsunami.svg
│ │ ├── tv-fill.svg
│ │ ├── tv.svg
│ │ ├── twitch.svg
│ │ ├── twitter-x.svg
│ │ ├── twitter.svg
│ │ ├── type-bold.svg
│ │ ├── type-h1.svg
│ │ ├── type-h2.svg
│ │ ├── type-h3.svg
│ │ ├── type-h4.svg
│ │ ├── type-h5.svg
│ │ ├── type-h6.svg
│ │ ├── type-italic.svg
│ │ ├── type-strikethrough.svg
│ │ ├── type-underline.svg
│ │ ├── type.svg
│ │ ├── ubuntu.svg
│ │ ├── ui-checks-grid.svg
│ │ ├── ui-checks.svg
│ │ ├── ui-radios-grid.svg
│ │ ├── ui-radios.svg
│ │ ├── umbrella-fill.svg
│ │ ├── umbrella.svg
│ │ ├── unindent.svg
│ │ ├── union.svg
│ │ ├── unity.svg
│ │ ├── universal-access-circle.svg
│ │ ├── universal-access.svg
│ │ ├── unlock-fill.svg
│ │ ├── unlock.svg
│ │ ├── upc-scan.svg
│ │ ├── upc.svg
│ │ ├── upload.svg
│ │ ├── usb-c-fill.svg
│ │ ├── usb-c.svg
│ │ ├── usb-drive-fill.svg
│ │ ├── usb-drive.svg
│ │ ├── usb-fill.svg
│ │ ├── usb-micro-fill.svg
│ │ ├── usb-micro.svg
│ │ ├── usb-mini-fill.svg
│ │ ├── usb-mini.svg
│ │ ├── usb-plug-fill.svg
│ │ ├── usb-plug.svg
│ │ ├── usb-symbol.svg
│ │ ├── usb.svg
│ │ ├── valentine.svg
│ │ ├── valentine2.svg
│ │ ├── vector-pen.svg
│ │ ├── view-list.svg
│ │ ├── view-stacked.svg
│ │ ├── vignette.svg
│ │ ├── vimeo.svg
│ │ ├── vinyl-fill.svg
│ │ ├── vinyl.svg
│ │ ├── virus.svg
│ │ ├── virus2.svg
│ │ ├── voicemail.svg
│ │ ├── volume-down-fill.svg
│ │ ├── volume-down.svg
│ │ ├── volume-mute-fill.svg
│ │ ├── volume-mute.svg
│ │ ├── volume-off-fill.svg
│ │ ├── volume-off.svg
│ │ ├── volume-up-fill.svg
│ │ ├── volume-up.svg
│ │ ├── vr.svg
│ │ ├── wallet-fill.svg
│ │ ├── wallet.svg
│ │ ├── wallet2.svg
│ │ ├── watch.svg
│ │ ├── water.svg
│ │ ├── webcam-fill.svg
│ │ ├── webcam.svg
│ │ ├── wechat.svg
│ │ ├── whatsapp.svg
│ │ ├── wifi-1.svg
│ │ ├── wifi-2.svg
│ │ ├── wifi-off.svg
│ │ ├── wifi.svg
│ │ ├── wikipedia.svg
│ │ ├── wind.svg
│ │ ├── window-dash.svg
│ │ ├── window-desktop.svg
│ │ ├── window-dock.svg
│ │ ├── window-fullscreen.svg
│ │ ├── window-plus.svg
│ │ ├── window-sidebar.svg
│ │ ├── window-split.svg
│ │ ├── window-stack.svg
│ │ ├── window-x.svg
│ │ ├── window.svg
│ │ ├── windows.svg
│ │ ├── wordpress.svg
│ │ ├── wrench-adjustable-circle-fill.svg
│ │ ├── wrench-adjustable-circle.svg
│ │ ├── wrench-adjustable.svg
│ │ ├── wrench.svg
│ │ ├── x-circle-fill.svg
│ │ ├── x-circle.svg
│ │ ├── x-diamond-fill.svg
│ │ ├── x-diamond.svg
│ │ ├── x-lg.svg
│ │ ├── x-octagon-fill.svg
│ │ ├── x-octagon.svg
│ │ ├── x-square-fill.svg
│ │ ├── x-square.svg
│ │ ├── x.svg
│ │ ├── xbox.svg
│ │ ├── yelp.svg
│ │ ├── yin-yang.svg
│ │ ├── youtube.svg
│ │ ├── zoom-in.svg
│ │ └── zoom-out.svg
│ ├── bootstrap.min.css
│ ├── clusterize.min.css
│ ├── codemirror.min.css
│ └── fonts_JetBrainsMono_SourceCodePro.css
├── danger-svgrepo-com.svg
├── delete-button-svgrepo-com.svg
├── drag-handle-svgrepo-com.svg
├── favicon
│ ├── apple-touch-icon.png
│ ├── favicon-96x96.png
│ ├── favicon.ico
│ ├── favicon.svg
│ ├── site.webmanifest
│ ├── web-app-manifest-192x192.png
│ └── web-app-manifest-512x512.png
├── gear-spinner.svg
├── glasses-svgrepo-com.png
├── glasses-svgrepo-com.svg
├── glassestall.png
├── glassestall2.png
├── glassestall3.png
├── hide-icon.svg
├── hide-icon2.svg
└── link-icon.svg
├── benchmark.html
├── doc
├── README.md
├── definitions-contexts-and-modules.md
├── diagrams
│ ├── eval-tree-constant1
│ │ ├── convert.sh
│ │ ├── eval-tree-constant1.pdf
│ │ ├── eval-tree-constant1.png
│ │ └── eval-tree-constant1.tex
│ └── eval-tree-states1
│ │ ├── convert.sh
│ │ ├── eval-tree-states1.pdf
│ │ ├── eval-tree-states1.png
│ │ └── eval-tree-states1.tex
├── embed.html
├── embedding.md
├── how-tlc-computes-states.md
├── notes
│ ├── 22nondeterminism.pdf
│ ├── A Simple Graph-Based Intermediate Representation.pdf
│ ├── Non-Deterministic Algorithms.pdf
│ ├── constraint-dynamic.pdf
│ ├── log.md
│ ├── renesse-tla-lecture.pdf
│ ├── spec-systems-ch17_the-meaning-of-a-module.pdf
│ ├── specifying-systems-how-tlc-computes-states.pdf
│ ├── specifying-systems-how-tlc-evaluates-expressions.pdf
│ ├── tla2-guide.pdf
│ ├── todo.md
│ └── toolbox-trace-view.png
├── testing.md
├── tla-evaluation.md
└── tla-modules.md
├── examples
└── node
│ ├── index.js
│ ├── package-lock.json
│ └── package.json
├── index.html
├── js
├── addon
│ └── mode
│ │ └── simple.js
├── app.js
├── benchmark.js
├── eval.js
├── hash-sum
│ ├── hash-sum.js
│ ├── license
│ └── readme.md
├── lib
│ ├── bootstrap.bundle.min.js
│ ├── clusterize.min.js
│ ├── codemirror.min.js
│ ├── cytoscape-dagre.min.js
│ ├── cytoscape.min.js
│ ├── dagre.js
│ ├── immutable.min.js
│ ├── jquery-3.3.1.min.js
│ ├── jquery-ui.min.js
│ ├── lodash.min.js
│ ├── mithril.min.js
│ ├── popper.min.js
│ └── viz-standalone.js
├── main.js
├── object_hash.js
├── old_tests.js
├── test.js
├── test_spec.js
├── tlamode.js
├── tree-sitter-tlaplus.wasm
├── tree-sitter.js
├── tree-sitter.wasm
└── worker.js
├── specs
├── AbstractDynamicRaft.tla
├── AbstractRaft.cfg
├── AbstractRaft.tla
├── AbstractRaft_anim.tla
├── AsyncRaft.tla
├── Bakery.cfg
├── Bakery.tla
├── BatteryRelay.tla
├── BlockingQueue.tla
├── CabbageGoatWolf.cfg
├── CabbageGoatWolf.tla
├── DiningPhilosophers.tla
├── EWD998.tla
├── Elevator_anim.tla
├── FlexiblePaxos.tla
├── GameOfLife.tla
├── LamportMutex.tla
├── LargeInit.tla
├── LogExample.tla
├── MongoLoglessDynamicRaft.tla
├── MongoRaftReconfig.cfg
├── MongoRaftReconfig.tla
├── MongoRaftReconfig_anim.tla
├── MultiPaxos.tla
├── Paxos.tla
├── QuorumProfiling.tla
├── RaftWithReconfigBroken.cfg
├── RaftWithReconfigBroken.tla
├── RaftWithReconfigJointConsensus.cfg
├── RaftWithReconfigJointConsensus.tla
├── RaftWithReconfigSingleServer.cfg
├── RaftWithReconfigSingleServer.tla
├── Simple.cfg
├── Simple.tla
├── SingleNode1.tla
├── SingleNode2.tla
├── SnapshotIsolation.tla
├── TwoPhase.cfg
├── TwoPhase.tla
├── TwoPhase_anim.tla
├── VectorClocks.tla
├── ambiguous_actions.tla
├── counter.c
├── counter.cfg
├── counter.tla
├── lockserver.tla
├── lockserver_anim.tla
├── lockserver_comments.tla
├── lockserver_nodefs.tla
├── lockserver_nodefs_anim.tla
├── quicksort.cfg
├── quicksort.tla
├── raft_reconfig_cex_trace.txt
├── repl.tla
├── simple0.tla
├── simple1.cfg
├── simple1.tla
├── simple2.tla
├── simple3.tla
├── simple4.tla
├── simple5.tla
├── simple_bad_op.tla
├── simple_election.tla
├── simple_len.tla
├── simple_lockserver.tla
├── simple_lockserver_with_constants.tla
├── simple_nondet1.tla
├── simple_nums.tla
├── simple_test.tla
├── simple_test_ambiguous.tla
├── states.json
├── test_missing_assigned_vars.tla
└── with_state_graphs
│ ├── A1.tla
│ ├── A1_var_y.tla
│ ├── A1_var_y_const_d.tla
│ ├── A2.tla
│ ├── AbstractRaft_BecomeLeader.cfg
│ ├── AbstractRaft_BecomeLeader.tla
│ ├── AbstractRaft_BecomeLeader.tla.dot
│ ├── AbstractRaft_BecomeLeader.tla.dot.json
│ ├── AsyncTerminationDetection.cfg
│ ├── AsyncTerminationDetection.tla
│ ├── AsyncTerminationDetection.tla.dot
│ ├── AsyncTerminationDetection.tla.dot.json
│ ├── AsyncTerminationDetection_init.cfg
│ ├── AsyncTerminationDetection_init.tla
│ ├── AsyncTerminationDetection_init.tla.dot
│ ├── AsyncTerminationDetection_init.tla.dot.json
│ ├── ClientCentric.tla
│ ├── ClientCentricExecutable.tla
│ ├── CommunityModules-deps.jar
│ ├── CommunityModules.jar
│ ├── Consistency.cfg
│ ├── Consistency.tla
│ ├── Consistency.tla.dot
│ ├── Consistency.tla.dot.json
│ ├── CosmosDB.tla
│ ├── CosmosDBClient.tla
│ ├── DieHard.cfg
│ ├── DieHard.tla
│ ├── DieHard.tla.dot
│ ├── DieHard.tla.dot.json
│ ├── DieHarder.cfg
│ ├── DieHarder.tla
│ ├── DieHarder.tla.dot
│ ├── DieHarder.tla.dot.json
│ ├── DieHarder.tla.json
│ ├── EWD998_bounded1.cfg
│ ├── EWD998_bounded1.tla
│ ├── EWD998_bounded1.tla.dot
│ ├── EWD998_bounded1.tla.dot.json
│ ├── EWD998_depth_bounded1.cfg
│ ├── EWD998_depth_bounded1.tla
│ ├── EWD998_depth_bounded1.tla.dot
│ ├── EWD998_depth_bounded1.tla.dot.json
│ ├── EWD998_regression1.cfg
│ ├── EWD998_regression1.tla
│ ├── EWD998_regression1.tla.dot
│ ├── EWD998_regression1.tla.dot.json
│ ├── EWD998_regression1.tla.json
│ ├── Elevator.cfg
│ ├── Elevator.tla
│ ├── Elevator.tla.dot
│ ├── Elevator.tla.dot.json
│ ├── LinQueue.tla
│ ├── Linearizability.tla
│ ├── LogExample_bounded.cfg
│ ├── LogExample_bounded.tla
│ ├── LogExample_bounded.tla.dot
│ ├── LogExample_bounded.tla.dot.json
│ ├── MDB.tla
│ ├── Microwave.cfg
│ ├── Microwave.tla
│ ├── Microwave.tla.dot
│ ├── Microwave.tla.dot.json
│ ├── NQueens_N3.cfg
│ ├── NQueens_N3.tla
│ ├── NQueens_N3.tla.dot
│ ├── NQueens_N3.tla.dot.json
│ ├── NaiadClock.cfg
│ ├── NaiadClock.tla
│ ├── Paxos_1a.cfg
│ ├── Paxos_1a.tla
│ ├── Paxos_1a.tla.dot
│ ├── Paxos_1a.tla.dot.json
│ ├── Paxos_1b_case1.cfg
│ ├── Paxos_1b_case1.tla
│ ├── Paxos_1b_case1.tla.dot
│ ├── Paxos_1b_case1.tla.dot.json
│ ├── Prisoners.cfg
│ ├── Prisoners.tla
│ ├── Prisoners.tla.dot
│ ├── Prisoners.tla.dot.json
│ ├── README.md
│ ├── RaftMongo.cfg
│ ├── RaftMongo.tla
│ ├── RaftMongo.tla.dot
│ ├── RaftMongo.tla.dot.json
│ ├── RaftWithReconfigBroken_Bounded.cfg
│ ├── RaftWithReconfigBroken_Bounded.tla
│ ├── RaftWithReconfigBroken_Bounded.tla.dot
│ ├── RaftWithReconfigBroken_Bounded.tla.dot.json
│ ├── S1.cfg
│ ├── S1.tla
│ ├── S1.tla.dot
│ ├── S1.tla.dot.json
│ ├── ShardTxn.cfg
│ ├── ShardTxn.tla
│ ├── ShardTxn.tla.dot
│ ├── ShardTxn.tla.dot.json
│ ├── TestLinQueue.cfg
│ ├── TestLinQueue.tla
│ ├── TestLinQueue.tla.dot
│ ├── TestLinQueue.tla.dot.json
│ ├── TwoPhase.cfg
│ ├── TwoPhase.tla
│ ├── TwoPhase.tla.dot
│ ├── TwoPhase.tla.dot.json
│ ├── TwoPhase.tla.json
│ ├── TwoPhase_RMPrepare.cfg
│ ├── TwoPhase_RMPrepare.tla
│ ├── TwoPhase_RMPrepare.tla.dot
│ ├── TwoPhase_RMPrepare.tla.dot.json
│ ├── TxnsCollectionIncarnation.cfg
│ ├── TxnsCollectionIncarnation.tla
│ ├── TxnsMoveRange.cfg
│ ├── TxnsMoveRange.tla
│ ├── TxnsMoveRange.tla.dot
│ ├── TxnsMoveRange.tla.dot.json
│ ├── Util.tla
│ ├── Utilities.tla
│ ├── conj_parsing.cfg
│ ├── conj_parsing.tla
│ ├── conj_parsing.tla.dot
│ ├── conj_parsing.tla.dot.json
│ ├── def_before_var_decl.cfg
│ ├── def_before_var_decl.tla
│ ├── def_before_var_decl.tla.dot
│ ├── def_before_var_decl.tla.dot.json
│ ├── empty_domain_and_seq.cfg
│ ├── empty_domain_and_seq.tla
│ ├── empty_domain_and_seq.tla.dot
│ ├── empty_domain_and_seq.tla.dot.json
│ ├── gen_state_graphs.sh
│ ├── lockserver_constant_comment.cfg
│ ├── lockserver_constant_comment.tla
│ ├── lockserver_constant_comment.tla.dot
│ ├── lockserver_constant_comment.tla.dot.json
│ ├── lockserver_constant_comment.tla.json
│ ├── lockserver_nodefs.cfg
│ ├── lockserver_nodefs.tla
│ ├── lockserver_nodefs.tla.dot
│ ├── lockserver_nodefs.tla.dot.json
│ ├── lockserver_nodefs1.cfg
│ ├── lockserver_nodefs1.tla
│ ├── lockserver_nodefs1.tla.dot
│ ├── lockserver_nodefs1.tla.dot.json
│ ├── lockserver_nodefs_unchanged.cfg
│ ├── lockserver_nodefs_unchanged.tla
│ ├── lockserver_nodefs_unchanged.tla.dot
│ ├── lockserver_nodefs_unchanged.tla.dot.json
│ ├── mldr_init_only.cfg
│ ├── mldr_init_only.tla
│ ├── mldr_init_only.tla.dot
│ ├── mldr_init_only.tla.dot.json
│ ├── mldr_init_only.tla.json
│ ├── operator_param_clash_before_const_def.cfg
│ ├── operator_param_clash_before_const_def.tla
│ ├── operator_param_clash_before_const_def.tla.dot
│ ├── operator_param_clash_before_const_def.tla.dot.json
│ ├── operator_param_clash_before_var_def.cfg
│ ├── operator_param_clash_before_var_def.tla
│ ├── operator_param_clash_before_var_def.tla.dot
│ ├── operator_param_clash_before_var_def.tla.dot.json
│ ├── operator_param_clash_before_var_def_inter.cfg
│ ├── operator_param_clash_before_var_def_inter.tla
│ ├── operator_param_clash_before_var_def_inter.tla.dot
│ ├── operator_param_clash_before_var_def_inter.tla.dot.json
│ ├── pre_module_comments.cfg
│ ├── pre_module_comments.tla
│ ├── pre_module_comments.tla.dot
│ ├── pre_module_comments.tla.dot.json
│ ├── primed_tuple.cfg
│ ├── primed_tuple.tla
│ ├── primed_tuple.tla.dot
│ ├── primed_tuple.tla.dot.json
│ ├── primed_tuple.tla.json
│ ├── qspinlock.cfg
│ ├── qspinlock.tla
│ ├── record_literal_eval.cfg
│ ├── record_literal_eval.tla
│ ├── record_literal_eval.tla.dot
│ ├── record_literal_eval.tla.dot.json
│ ├── record_literal_eval.tla.json
│ ├── seq_append.cfg
│ ├── seq_append.tla
│ ├── seq_append.tla.dot
│ ├── seq_append.tla.dot.json
│ ├── seq_append.tla.json
│ ├── set_dot_notation.cfg
│ ├── set_dot_notation.tla
│ ├── set_dot_notation.tla.dot
│ ├── set_dot_notation.tla.dot.json
│ ├── set_dot_notation.tla.json
│ ├── show521677.cfg
│ ├── show521677.tla
│ ├── show521677.tla.dot
│ ├── show521677.tla.dot.json
│ ├── simple1.cfg
│ ├── simple1.tla
│ ├── simple1.tla.dot
│ ├── simple1.tla.dot.json
│ ├── simple1.tla.json
│ ├── simple1_multiline_block_comment.cfg
│ ├── simple1_multiline_block_comment.tla
│ ├── simple1_multiline_block_comment.tla.dot
│ ├── simple1_multiline_block_comment.tla.dot.json
│ ├── simple1_multiline_block_comment.tla.json
│ ├── simple2.cfg
│ ├── simple2.tla
│ ├── simple2.tla.dot
│ ├── simple2.tla.dot.json
│ ├── simple2.tla.json
│ ├── simple3.cfg
│ ├── simple3.tla
│ ├── simple3.tla.dot
│ ├── simple3.tla.dot.json
│ ├── simple3.tla.json
│ ├── simple5.cfg
│ ├── simple5.tla
│ ├── simple5.tla.dot
│ ├── simple5.tla.dot.json
│ ├── simple5.tla.json
│ ├── simple6.cfg
│ ├── simple6.tla
│ ├── simple6.tla.dot
│ ├── simple6.tla.dot.json
│ ├── simple6.tla.json
│ ├── simple7.cfg
│ ├── simple7.dot
│ ├── simple7.dot.json
│ ├── simple7.tla
│ ├── simple7.tla.dot
│ ├── simple7.tla.dot.json
│ ├── simple7.tla.json
│ ├── simple8.cfg
│ ├── simple8.tla
│ ├── simple8.tla.dot
│ ├── simple8.tla.dot.json
│ ├── simple_arith.cfg
│ ├── simple_arith.tla
│ ├── simple_arith.tla.dot
│ ├── simple_arith.tla.dot.json
│ ├── simple_boolean.cfg
│ ├── simple_boolean.tla
│ ├── simple_boolean.tla.dot
│ ├── simple_boolean.tla.dot.json
│ ├── simple_choose.cfg
│ ├── simple_choose.tla
│ ├── simple_choose.tla.dot
│ ├── simple_choose.tla.dot.json
│ ├── simple_conjunction_constant.cfg
│ ├── simple_conjunction_constant.tla
│ ├── simple_conjunction_constant.tla.dot
│ ├── simple_conjunction_constant.tla.dot.json
│ ├── simple_constant_operator.cfg
│ ├── simple_constant_operator.tla
│ ├── simple_constant_operator.tla.dot
│ ├── simple_constant_operator.tla.dot.json
│ ├── simple_constant_operator_infix.cfg
│ ├── simple_constant_operator_infix.tla
│ ├── simple_constant_operator_infix.tla.dot
│ ├── simple_constant_operator_infix.tla.dot.json
│ ├── simple_defined_var_assignment.cfg
│ ├── simple_defined_var_assignment.tla
│ ├── simple_defined_var_assignment.tla.dot
│ ├── simple_defined_var_assignment.tla.dot.json
│ ├── simple_defined_var_assignment_transitive.cfg
│ ├── simple_defined_var_assignment_transitive.tla
│ ├── simple_defined_var_assignment_transitive.tla.dot
│ ├── simple_defined_var_assignment_transitive.tla.dot.json
│ ├── simple_definition.cfg
│ ├── simple_definition.tla
│ ├── simple_definition.tla.dot
│ ├── simple_definition.tla.dot.json
│ ├── simple_definition2.cfg
│ ├── simple_definition2.tla
│ ├── simple_definition2.tla.dot
│ ├── simple_definition2.tla.dot.json
│ ├── simple_disjunction_constant.cfg
│ ├── simple_disjunction_constant.tla
│ ├── simple_disjunction_constant.tla.dot
│ ├── simple_disjunction_constant.tla.dot.json
│ ├── simple_disjunction_init.cfg
│ ├── simple_disjunction_init.tla
│ ├── simple_disjunction_init.tla.dot
│ ├── simple_disjunction_init.tla.dot.json
│ ├── simple_domain.cfg
│ ├── simple_domain.tla
│ ├── simple_domain.tla.dot
│ ├── simple_domain.tla.dot.json
│ ├── simple_enabled.cfg
│ ├── simple_enabled.tla
│ ├── simple_enabled.tla.dot
│ ├── simple_enabled.tla.dot.json
│ ├── simple_extends.cfg
│ ├── simple_extends.tla
│ ├── simple_extends.tla.dot
│ ├── simple_extends.tla.dot.json
│ ├── simple_extends_M1.tla
│ ├── simple_extends_M2.tla
│ ├── simple_extends_M2b.tla
│ ├── simple_extends_M2c.tla
│ ├── simple_extends_M3.tla
│ ├── simple_extends_M4.tla
│ ├── simple_extends_M5.tla
│ ├── simple_extends_M5b.tla
│ ├── simple_extends_M5c.tla
│ ├── simple_extends_M6.tla
│ ├── simple_extends_M7.tla
│ ├── simple_extends_M7_LOCAL_def.tla
│ ├── simple_extends_M8.tla
│ ├── simple_extends_M9.tla
│ ├── simple_extends_instance.cfg
│ ├── simple_extends_instance.tla
│ ├── simple_extends_instance.tla.dot
│ ├── simple_extends_instance.tla.dot.json
│ ├── simple_extends_instance_def.cfg
│ ├── simple_extends_instance_def.tla
│ ├── simple_extends_instance_def.tla.dot
│ ├── simple_extends_instance_def.tla.dot.json
│ ├── simple_extends_instance_def_parameterized.cfg
│ ├── simple_extends_instance_def_parameterized.tla
│ ├── simple_extends_instance_def_parameterized.tla.dot
│ ├── simple_extends_instance_def_parameterized.tla.dot.json
│ ├── simple_extends_instance_def_parameterized_var_subst.tla.dot
│ ├── simple_extends_instance_def_parameterized_var_subst.tla.dot.json
│ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.cfg
│ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.tla
│ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.tla.dot
│ ├── simple_extends_instance_def_parameterized_var_subst_no_clash.tla.dot.json
│ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.cfg
│ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.tla
│ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.tla.dot
│ ├── simple_extends_instance_def_parameterized_var_subst_with_clash.tla.dot.json
│ ├── simple_extends_instance_def_transitive.cfg
│ ├── simple_extends_instance_def_transitive.tla
│ ├── simple_extends_instance_def_transitive.tla.dot
│ ├── simple_extends_instance_def_transitive.tla.dot.json
│ ├── simple_extends_instance_def_transitive_import.cfg
│ ├── simple_extends_instance_def_transitive_import.tla
│ ├── simple_extends_instance_def_transitive_import.tla.dot
│ ├── simple_extends_instance_def_transitive_import.tla.dot.json
│ ├── simple_extends_instance_def_user_infix_op.cfg
│ ├── simple_extends_instance_def_user_infix_op.tla
│ ├── simple_extends_instance_def_user_infix_op.tla.dot
│ ├── simple_extends_instance_def_user_infix_op.tla.dot.json
│ ├── simple_extends_instance_def_with_subst.cfg
│ ├── simple_extends_instance_def_with_subst.tla
│ ├── simple_extends_instance_def_with_subst.tla.dot
│ ├── simple_extends_instance_def_with_subst.tla.dot.json
│ ├── simple_extends_instance_def_with_var_subst.cfg
│ ├── simple_extends_instance_def_with_var_subst.tla
│ ├── simple_extends_instance_def_with_var_subst.tla.dot
│ ├── simple_extends_instance_def_with_var_subst.tla.dot.json
│ ├── simple_extends_instance_def_with_var_subst_and_primed_action.cfg
│ ├── simple_extends_instance_def_with_var_subst_and_primed_action.tla
│ ├── simple_extends_instance_def_with_var_subst_and_primed_action.tla.dot
│ ├── simple_extends_instance_def_with_var_subst_and_primed_action.tla.dot.json
│ ├── simple_extends_instance_def_with_var_subst_default_name.cfg
│ ├── simple_extends_instance_def_with_var_subst_default_name.tla
│ ├── simple_extends_instance_def_with_var_subst_default_name.tla.dot
│ ├── simple_extends_instance_def_with_var_subst_default_name.tla.dot.json
│ ├── simple_extends_instance_def_with_var_subst_one_implicit.cfg
│ ├── simple_extends_instance_def_with_var_subst_one_implicit.tla
│ ├── simple_extends_instance_def_with_var_subst_one_implicit.tla.dot
│ ├── simple_extends_instance_def_with_var_subst_one_implicit.tla.dot.json
│ ├── simple_extends_instance_def_with_var_subst_same_name.cfg
│ ├── simple_extends_instance_def_with_var_subst_same_name.tla
│ ├── simple_extends_instance_def_with_var_subst_same_name.tla.dot
│ ├── simple_extends_instance_def_with_var_subst_same_name.tla.dot.json
│ ├── simple_extends_instance_duplicate_def_names.cfg
│ ├── simple_extends_instance_duplicate_def_names.tla
│ ├── simple_extends_instance_duplicate_def_names.tla.dot
│ ├── simple_extends_instance_duplicate_def_names.tla.dot.json
│ ├── simple_extends_instance_transitive.cfg
│ ├── simple_extends_instance_transitive.tla
│ ├── simple_extends_instance_transitive.tla.dot
│ ├── simple_extends_instance_transitive.tla.dot.json
│ ├── simple_extends_instance_with_const_subst.cfg
│ ├── simple_extends_instance_with_const_subst.tla
│ ├── simple_extends_instance_with_const_subst.tla.dot
│ ├── simple_extends_instance_with_const_subst.tla.dot.json
│ ├── simple_extends_instance_with_var_and_const_subst.cfg
│ ├── simple_extends_instance_with_var_and_const_subst.tla
│ ├── simple_extends_instance_with_var_and_const_subst.tla.dot
│ ├── simple_extends_instance_with_var_and_const_subst.tla.dot.json
│ ├── simple_extends_instance_with_var_and_const_subst_transitive.cfg
│ ├── simple_extends_instance_with_var_and_const_subst_transitive.tla
│ ├── simple_extends_instance_with_var_and_const_subst_transitive.tla.dot
│ ├── simple_extends_instance_with_var_and_const_subst_transitive.tla.dot.json
│ ├── simple_extends_instance_with_var_subst.cfg
│ ├── simple_extends_instance_with_var_subst.tla
│ ├── simple_extends_instance_with_var_subst.tla.dot
│ ├── simple_extends_instance_with_var_subst.tla.dot.json
│ ├── simple_extends_instance_with_var_subst_identity.cfg
│ ├── simple_extends_instance_with_var_subst_identity.tla
│ ├── simple_extends_instance_with_var_subst_identity.tla.dot
│ ├── simple_extends_instance_with_var_subst_identity.tla.dot.json
│ ├── simple_extends_local_def.cfg
│ ├── simple_extends_local_def.tla
│ ├── simple_extends_local_def.tla.dot
│ ├── simple_extends_local_def.tla.dot.json
│ ├── simple_extends_with_var.cfg
│ ├── simple_extends_with_var.tla
│ ├── simple_extends_with_var.tla.dot
│ ├── simple_extends_with_var.tla.dot.json
│ ├── simple_extends_with_var_and_const.cfg
│ ├── simple_extends_with_var_and_const.tla
│ ├── simple_extends_with_var_and_const.tla.dot
│ ├── simple_extends_with_var_and_const.tla.dot.json
│ ├── simple_fcn_def.cfg
│ ├── simple_fcn_def.tla
│ ├── simple_fcn_def.tla.dot
│ ├── simple_fcn_def.tla.dot.json
│ ├── simple_fcn_literal.cfg
│ ├── simple_fcn_literal.tla
│ ├── simple_fcn_literal.tla.dot
│ ├── simple_fcn_literal.tla.dot.json
│ ├── simple_fcn_polymorphism.cfg
│ ├── simple_fcn_polymorphism.tla
│ ├── simple_fcn_polymorphism.tla.dot
│ ├── simple_fcn_polymorphism.tla.dot.json
│ ├── simple_folds.cfg
│ ├── simple_folds.tla
│ ├── simple_folds.tla.dot
│ ├── simple_folds.tla.dot.json
│ ├── simple_if_then.cfg
│ ├── simple_if_then.tla
│ ├── simple_if_then.tla.dot
│ ├── simple_if_then.tla.dot.json
│ ├── simple_implies.cfg
│ ├── simple_implies.tla
│ ├── simple_implies.tla.dot
│ ├── simple_implies.tla.dot.json
│ ├── simple_infix_def.cfg
│ ├── simple_infix_def.tla
│ ├── simple_infix_def.tla.dot
│ ├── simple_infix_def.tla.dot.json
│ ├── simple_lambda.cfg
│ ├── simple_lambda.tla
│ ├── simple_lambda.tla.dot
│ ├── simple_lambda.tla.dot.json
│ ├── simple_lambda_letin.cfg
│ ├── simple_lambda_letin.tla
│ ├── simple_lambda_letin.tla.dot
│ ├── simple_lambda_letin.tla.dot.json
│ ├── simple_lazy.cfg
│ ├── simple_lazy.tla
│ ├── simple_lazy.tla.dot
│ ├── simple_lazy.tla.dot.json
│ ├── simple_letin.cfg
│ ├── simple_letin.tla
│ ├── simple_letin.tla.dot
│ ├── simple_letin.tla.dot.json
│ ├── simple_letin_fn_def.cfg
│ ├── simple_letin_fn_def.tla
│ ├── simple_letin_fn_def.tla.dot
│ ├── simple_letin_fn_def.tla.dot.json
│ ├── simple_mod3_counter.cfg
│ ├── simple_mod3_counter.tla
│ ├── simple_mod3_counter.tla.dot
│ ├── simple_mod3_counter.tla.dot.json
│ ├── simple_multiline.cfg
│ ├── simple_multiline.tla
│ ├── simple_multiline.tla.dot
│ ├── simple_multiline.tla.dot.json
│ ├── simple_negation.cfg
│ ├── simple_negation.tla
│ ├── simple_negation.tla.dot
│ ├── simple_negation.tla.dot.json
│ ├── simple_negation.tla.json
│ ├── simple_nested_lambda.cfg
│ ├── simple_nested_lambda.tla
│ ├── simple_nested_lambda.tla.dot
│ ├── simple_nested_lambda.tla.dot.json
│ ├── simple_operator.cfg
│ ├── simple_operator.tla
│ ├── simple_operator.tla.dot
│ ├── simple_operator.tla.dot.json
│ ├── simple_primed.cfg
│ ├── simple_primed.tla
│ ├── simple_primed.tla.dot
│ ├── simple_primed.tla.dot.json
│ ├── simple_primed_defs.cfg
│ ├── simple_primed_defs.tla
│ ├── simple_primed_defs.tla.dot
│ ├── simple_primed_defs.tla.dot.json
│ ├── simple_quant.cfg
│ ├── simple_quant.tla
│ ├── simple_quant.tla.dot
│ ├── simple_quant.tla.dot.json
│ ├── simple_quant2.cfg
│ ├── simple_quant2.tla
│ ├── simple_quant2.tla.dot
│ ├── simple_quant2.tla.dot.json
│ ├── simple_quant_multi.cfg
│ ├── simple_quant_multi.tla
│ ├── simple_quant_multi.tla.dot
│ ├── simple_quant_multi.tla.dot.json
│ ├── simple_quant_tuple.cfg
│ ├── simple_quant_tuple.tla
│ ├── simple_quant_tuple.tla.dot
│ ├── simple_quant_tuple.tla.dot.json
│ ├── simple_record.cfg
│ ├── simple_record.tla
│ ├── simple_record.tla.dot
│ ├── simple_record.tla.dot.json
│ ├── simple_recursive.cfg
│ ├── simple_recursive.tla
│ ├── simple_recursive.tla.dot
│ ├── simple_recursive.tla.dot.json
│ ├── simple_seq.cfg
│ ├── simple_seq.tla
│ ├── simple_seq.tla.dot
│ ├── simple_seq.tla.dot.json
│ ├── simple_seq_ext.cfg
│ ├── simple_seq_ext.tla
│ ├── simple_seq_ext.tla.dot
│ ├── simple_seq_update.cfg
│ ├── simple_seq_update.tla
│ ├── simple_seq_update.tla.dot
│ ├── simple_seq_update.tla.dot.json
│ ├── simple_seq_update2.cfg
│ ├── simple_seq_update2.tla
│ ├── simple_seq_update2.tla.dot
│ ├── simple_seq_update2.tla.dot.json
│ ├── simple_seq_update3.cfg
│ ├── simple_seq_update3.tla
│ ├── simple_seq_update3.tla.dot
│ ├── simple_seq_update3.tla.dot.json
│ ├── simple_set_of_fns.cfg
│ ├── simple_set_of_fns.tla
│ ├── simple_set_of_fns.tla.dot
│ ├── simple_set_of_fns.tla.dot.json
│ ├── simple_setfiltermap.cfg
│ ├── simple_setfiltermap.tla
│ ├── simple_setfiltermap.tla.dot
│ ├── simple_setfiltermap.tla.dot.json
│ ├── simple_sets.cfg
│ ├── simple_sets.tla
│ ├── simple_sets.tla.dot
│ ├── simple_sets.tla.dot.json
│ ├── simple_strings.cfg
│ ├── simple_strings.tla
│ ├── simple_strings.tla.dot
│ ├── simple_strings.tla.dot.json
│ ├── simple_subset.cfg
│ ├── simple_subset.tla
│ ├── simple_subset.tla.dot
│ ├── simple_subset.tla.dot.json
│ ├── simple_tlc_fn.cfg
│ ├── simple_tlc_fn.tla
│ ├── simple_tlc_fn.tla.dot
│ ├── simple_tlc_fn.tla.dot.json
│ ├── simple_tlc_fn_compose.cfg
│ ├── simple_tlc_fn_compose.tla
│ ├── simple_tlc_fn_compose.tla.dot
│ ├── simple_tlc_fn_compose.tla.dot.json
│ ├── simple_tlc_ops.cfg
│ ├── simple_tlc_ops.tla
│ ├── simple_tlc_ops.tla.dot
│ ├── simple_tlc_ops.tla.dot.json
│ ├── simple_unchanged.cfg
│ ├── simple_unchanged.tla
│ ├── simple_unchanged.tla.dot
│ ├── simple_unchanged.tla.dot.json
│ ├── simple_unchanged_nested_def.cfg
│ ├── simple_unchanged_nested_def.tla
│ ├── simple_unchanged_nested_def.tla.dot
│ ├── simple_unchanged_nested_def.tla.dot.json
│ ├── simple_unchanged_nested_tuple.cfg
│ ├── simple_unchanged_nested_tuple.tla
│ ├── simple_unchanged_nested_tuple.tla.dot
│ ├── simple_unchanged_nested_tuple.tla.dot.json
│ ├── simple_unchanged_nested_tuple_def.cfg
│ ├── simple_unchanged_nested_tuple_def.tla
│ ├── simple_unchanged_nested_tuple_def.tla.dot
│ ├── simple_unchanged_nested_tuple_def.tla.dot.json
│ ├── simple_unchanged_no_tuple.cfg
│ ├── simple_unchanged_no_tuple.tla
│ ├── simple_unchanged_no_tuple.tla.dot
│ ├── simple_unchanged_no_tuple.tla.dot.json
│ ├── simple_unchanged_with_quant.cfg
│ ├── simple_unchanged_with_quant.tla
│ ├── simple_unchanged_with_quant.tla.dot
│ ├── simple_unchanged_with_quant.tla.dot.json
│ ├── simple_var_tuple.cfg
│ ├── simple_var_tuple.tla
│ ├── simple_var_tuple.tla.dot
│ ├── simple_var_tuple.tla.dot.json
│ ├── tla2tools.jar
│ ├── tla_case_with_state_assignment.cfg
│ ├── tla_case_with_state_assignment.tla
│ ├── tla_case_with_state_assignment.tla.dot
│ ├── tla_case_with_state_assignment.tla.dot.json
│ ├── tla_expr_eval.cfg
│ ├── tla_expr_eval.dot
│ ├── tla_expr_eval.dot.json
│ ├── tla_expr_eval.tla
│ ├── tla_expr_eval.tla.dot
│ ├── tla_expr_eval.tla.dot.json
│ └── tla_expr_eval.tla.json
├── spectacle.code-workspace
├── style.css
└── test.html
/.gitignore:
--------------------------------------------------------------------------------
1 | *.DS_Store
2 | states/
3 | .jekyll-cache
4 | *.aux
5 | *.log
6 | *.out
7 | *.bbl
8 | *.gz
9 | *.blg
10 | *.fdb_latexmk
11 | *.fls
12 | *.vtc
13 | *.DS_Store
14 | *.old
15 | *.dvi
16 | *.xcp
17 | *.nav
18 | *.snm
19 | *.toc
20 | node_modules/
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | serve:
2 | python3 -m http.server
3 |
4 | open:
5 | open http://localhost:8000
6 |
7 | test:
8 | cd specs/with_state_graphs && bash gen_state_graphs.sh
--------------------------------------------------------------------------------
/assets/Roboto-VariableFont_wdth,wght.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/Roboto-VariableFont_wdth,wght.ttf
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/1-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/1-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/1-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/7-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/7-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/7-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/align-bottom.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/align-center.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/align-end.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/align-middle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/align-start.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/align-top.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/alt.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/amd.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/app.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-down-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-down-left-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-down-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-down-right-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-down-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-down-short.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-left-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-left-short.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-right-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-right-short.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-up-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-up-left-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-up-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-up-right-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-up-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-up-short.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/arrow-up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/back.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bag-dash-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bag-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bag.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/ban-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/ban.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bar-chart-line-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/battery.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bell-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bookmark-dash-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bookmark-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bookmark-heart-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bookmark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bookshelf.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/border-all.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bounding-box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/box2-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/box2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/brilliance.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/bucket-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/calendar-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/calendar-minus-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/calendar-range-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/calendar.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/calendar3-event-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/calendar3-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/calendar3-range-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/camera-video-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/capsule.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-down-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-down-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-left-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-left-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-right-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-right-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-up-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-up-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/caret-up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/cash.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chat-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chat-left-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chat-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chat-right-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chat-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/check-lg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/check.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/check2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-compact-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-compact-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-compact-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-compact-up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/chevron-up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/circle-half.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/clock-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/clock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/cloudy-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/code.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/columns.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/compass-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/cone.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/credit-card-2-back-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/credit-card-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/currency-yen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/cursor-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dash-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dash-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dash-lg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dash-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dash.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/diamond-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dice-1-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dice-1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dice-2-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/disc-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/display-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/door-closed-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/door-closed.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/dot.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/easel3-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/easel3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/egg-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/eject-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/emoji-expressionless-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/exclamation-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/exclamation-lg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/exclamation.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/exclude.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/explicit-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/eye-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-break-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-check-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-earmark-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-earmark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-minus-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-play-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-plus-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file-ruled-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/file.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/filter-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/filter-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/filter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/css/bootstrap-icons-1.11.3/font/fonts/bootstrap-icons.woff2
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/forward-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/front.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/funnel-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/gender-female.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/gender-male.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/gender-neuter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/geo-alt-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/h-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/h-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/h-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/headphones.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/heart-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/heartbreak-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/hexagon-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/hexagon-half.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/hexagon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/image-alt.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/key-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/ladder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/laptop-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/laptop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/layout-sidebar-reverse.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/layout-sidebar.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/layout-split.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/lightning-charge-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/lightning-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/list.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/lock-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/lock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/magnet-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/magnet.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/mask.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/microsoft.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/mouse-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/mouse.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/mouse2-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/option.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/paperclip.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/paragraph.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/pause-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/pause.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/peace-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/pentagon-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/person-dash-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/person-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/person-heart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/phone-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/phone-landscape-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/phone.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/pie-chart-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/pie-chart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/pip-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/play-btn-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/play-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/play-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/play.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/plus-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/plus-lg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/plus-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/plus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/power.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/record-btn-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/record-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/record-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/record-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/record.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/record2-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/record2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/reply-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/rulers.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/search.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/segmented-nav.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/share-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/shift-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/signpost-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/signpost-split-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/signpost.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/skip-end-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/skip-end-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/skip-end.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/skip-start-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/skip-start-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/skip-start.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/slash-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/slash-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/slash-lg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/slash-square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/slash.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/square-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/square-half.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/square.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/stop-btn-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/stop-circle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/stop-circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/stop-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/stop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/strava.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/substack.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/subtract.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/suit-diamond-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/suit-heart-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/tablet-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/tablet-landscape-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/tablet.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/tag-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/three-dots-vertical.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/three-dots.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/tiktok.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/toggle-off.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/toggle-on.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/toggle2-off.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/toggle2-on.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/triangle-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/tv-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/twitch.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/twitter-x.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/type-h1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/type-h4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/type-underline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/union.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/unlock-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/usb-c-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/usb-c.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/usb-drive-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/usb-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/vinyl-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/voicemail.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/volume-off-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/windows.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/x-lg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-icons-1.11.3/x.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/clusterize.min.css:
--------------------------------------------------------------------------------
1 | .clusterize-scroll{max-height:200px;overflow:auto}.clusterize-extra-row{margin-top:0!important;margin-bottom:0!important}.clusterize-extra-row.clusterize-keep-parity{display:none}.clusterize-content{outline:0;counter-reset:clusterize-counter}.clusterize-no-data td{text-align:center}
2 | /*# sourceMappingURL=clusterize.min.css.map */
--------------------------------------------------------------------------------
/assets/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/assets/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/assets/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/favicon.ico
--------------------------------------------------------------------------------
/assets/favicon/web-app-manifest-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/web-app-manifest-192x192.png
--------------------------------------------------------------------------------
/assets/favicon/web-app-manifest-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/favicon/web-app-manifest-512x512.png
--------------------------------------------------------------------------------
/assets/glasses-svgrepo-com.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glasses-svgrepo-com.png
--------------------------------------------------------------------------------
/assets/glassestall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glassestall.png
--------------------------------------------------------------------------------
/assets/glassestall2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glassestall2.png
--------------------------------------------------------------------------------
/assets/glassestall3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/assets/glassestall3.png
--------------------------------------------------------------------------------
/doc/README.md:
--------------------------------------------------------------------------------
1 | # TLA+ Web Explorer
2 |
3 | - [How the TLA+ Interpreter Evaluates Expressions](tla-evaluation.md)
4 | - [How the TLA+ Interpreter is Tested](testing.md)
5 | - [Definitions, Contexts, and Module Instantiation](definitions-contexts-and-modules.md)
6 |
7 |
--------------------------------------------------------------------------------
/doc/diagrams/eval-tree-constant1/convert.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | convert -density 300 eval-tree-constant1.pdf -quality 90 eval-tree-constant1.png
3 |
--------------------------------------------------------------------------------
/doc/diagrams/eval-tree-constant1/eval-tree-constant1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-constant1/eval-tree-constant1.pdf
--------------------------------------------------------------------------------
/doc/diagrams/eval-tree-constant1/eval-tree-constant1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-constant1/eval-tree-constant1.png
--------------------------------------------------------------------------------
/doc/diagrams/eval-tree-states1/convert.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | convert -density 300 eval-tree-states1.pdf -quality 90 -colorspace RGB eval-tree-states1.png
3 |
--------------------------------------------------------------------------------
/doc/diagrams/eval-tree-states1/eval-tree-states1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-states1/eval-tree-states1.pdf
--------------------------------------------------------------------------------
/doc/diagrams/eval-tree-states1/eval-tree-states1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/diagrams/eval-tree-states1/eval-tree-states1.png
--------------------------------------------------------------------------------
/doc/notes/22nondeterminism.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/22nondeterminism.pdf
--------------------------------------------------------------------------------
/doc/notes/A Simple Graph-Based Intermediate Representation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/A Simple Graph-Based Intermediate Representation.pdf
--------------------------------------------------------------------------------
/doc/notes/Non-Deterministic Algorithms.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/Non-Deterministic Algorithms.pdf
--------------------------------------------------------------------------------
/doc/notes/constraint-dynamic.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/constraint-dynamic.pdf
--------------------------------------------------------------------------------
/doc/notes/renesse-tla-lecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/renesse-tla-lecture.pdf
--------------------------------------------------------------------------------
/doc/notes/spec-systems-ch17_the-meaning-of-a-module.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/spec-systems-ch17_the-meaning-of-a-module.pdf
--------------------------------------------------------------------------------
/doc/notes/specifying-systems-how-tlc-computes-states.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/specifying-systems-how-tlc-computes-states.pdf
--------------------------------------------------------------------------------
/doc/notes/specifying-systems-how-tlc-evaluates-expressions.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/specifying-systems-how-tlc-evaluates-expressions.pdf
--------------------------------------------------------------------------------
/doc/notes/tla2-guide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/tla2-guide.pdf
--------------------------------------------------------------------------------
/doc/notes/toolbox-trace-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/doc/notes/toolbox-trace-view.png
--------------------------------------------------------------------------------
/examples/node/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "@tlaplus/tree-sitter-tlaplus": "1.2.4",
4 | "tree-sitter": "^0.21.1",
5 | "lodash": "^4.17.21"
6 | }
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/js/tree-sitter-tlaplus.wasm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/js/tree-sitter-tlaplus.wasm
--------------------------------------------------------------------------------
/js/tree-sitter.wasm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/js/tree-sitter.wasm
--------------------------------------------------------------------------------
/specs/AbstractRaft.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT
4 | Nil=Nil
5 | Server = {n1,n2,n3}
6 | Secondary = Secondary
7 | Primary = Primary
8 | MaxLogLen = 2
9 | MaxTerm = 3
10 | MaxConfigVersion = 3
11 | InitTerm = 0
12 |
13 |
14 | INVARIANT StateMachineSafety
15 |
16 | \* INVARIANT OnePrimaryPerTerm
17 |
18 | \* TODO: Liveness
--------------------------------------------------------------------------------
/specs/Bakery.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT N = 2
--------------------------------------------------------------------------------
/specs/CabbageGoatWolf.cfg:
--------------------------------------------------------------------------------
1 |
2 | SPECIFICATION
3 | Spec
4 |
5 | INVARIANT
6 | TypeOK
7 | NotSolved
8 |
9 | PROPERTIES
10 | \* Termination
11 |
12 | CHECK_DEADLOCK
13 | FALSE
--------------------------------------------------------------------------------
/specs/LargeInit.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE LargeInit ----
2 |
3 | \* Spec with many initial states.
4 |
5 | VARIABLE x,y,z
6 |
7 | N == 11
8 |
9 | Init ==
10 | /\ x \in [a : 1..N, b : 1..N, c : 1..N]
11 | /\ y \in 1..N
12 | /\ z \in 1..N
13 |
14 | Next ==
15 | /\ x' = x
16 | /\ y' = y
17 | /\ z' = z
18 |
19 | ====
20 |
--------------------------------------------------------------------------------
/specs/Simple.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT N = 3
--------------------------------------------------------------------------------
/specs/TwoPhase.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/counter.c:
--------------------------------------------------------------------------------
1 | #include
2 | int main(int argc, char const *argv[])
3 | {
4 | int x = 0;
5 | int N = 50 * 10000000;
6 | for(int i=0;i {}]
8 |
9 | Next ==
10 | \/ \E b \in {0,1}, c \in {88,99} : x' = [x EXCEPT ![b] = x[b] \cup {c}]
11 |
12 | =============================================================================
--------------------------------------------------------------------------------
/specs/simple3.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple2 ------------------------
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | Init == x \in [{1,2} -> {3,4}]
7 | Next == x' = x
8 |
9 | =============================================================================
--------------------------------------------------------------------------------
/specs/simple4.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple4 ------------------------
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | Init ==
7 | /\ x = 5
8 |
9 | Next ==
10 | \E b \in {0,1}, c \in {8,9} : x' = c + b + x
11 |
12 | =============================================================================
--------------------------------------------------------------------------------
/specs/simple5.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple5 ------------------------
2 | EXTENDS Naturals
3 |
4 | VARIABLE x,y,z
5 |
6 | Init ==
7 | /\ x = 0
8 | /\ y = 0
9 | /\ z = 0
10 |
11 | Next ==
12 | /\ x' \in {1,2}
13 | /\ y' \in {4,5}
14 | /\ z' \in {7,8}
15 |
16 | =============================================================================
--------------------------------------------------------------------------------
/specs/simple_bad_op.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_bad_op ----
2 | EXTENDS TLC, Naturals, Integers, Sequences, FiniteSets
3 |
4 | VARIABLE x
5 |
6 | Init ==
7 | \/ x = \E a,
8 | b,
9 | c,
10 | d \in {1,2,3}:
11 | a = 2
12 | \/ x = 2 + UnknownOp(2)
13 | Next == UNCHANGED x
14 |
15 | ====
--------------------------------------------------------------------------------
/specs/simple_len.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_len ----
2 | EXTENDS TLC, Naturals, Sequences
3 |
4 | VARIABLES x
5 |
6 | Init == x = <<>>
7 |
8 | Next == x' = Len(x)
9 |
10 | ====
--------------------------------------------------------------------------------
/specs/simple_nums.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple_nums ------------------------
2 | EXTENDS Naturals, Integers
3 |
4 | VARIABLE x
5 | Init == x = 1
6 |
7 | A == x' = x + 1
8 | B == x' = (4)
9 |
10 | Next ==
11 | \/ A
12 | \* \/ A
13 | \/ B
14 | ====
--------------------------------------------------------------------------------
/specs/simple_test.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple_test ------------------------
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 | VARIABLE y
6 |
7 | Init ==
8 | /\ x = 0
9 | /\ y = 0
10 |
11 | Add == UNCHANGED <>
12 |
13 | Next == Add
14 |
15 |
16 |
17 | =============================================================================
--------------------------------------------------------------------------------
/specs/simple_test_ambiguous.tla:
--------------------------------------------------------------------------------
1 | ---------------------- MODULE simple_test_ambiguous -------------------------
2 | EXTENDS Naturals
3 | VARIABLES count
4 | Init == count = 0
5 | Incr(N) == count' = count + N
6 | Next == Incr(1) \/ Incr(2)
7 | Spec == Init /\ [][Next]_count
8 | ============================================================
--------------------------------------------------------------------------------
/specs/test_missing_assigned_vars.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE test_missing_assigned_vars ----
2 | EXTENDS TLC
3 |
4 | VARIABLES x, y
5 |
6 | Init == x = 1 /\ y = 2
7 |
8 | A == x' = 3 /\ y' = 4
9 | B == x' = 5
10 |
11 | Next == A \/ B
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/A1.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE A1 ----
2 | EXTENDS Naturals
3 | C == 66
4 | Val == C + 4
5 |
6 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/A1_var_y.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE A1_var_y ----
2 | EXTENDS Naturals
3 |
4 | VARIABLES y
5 |
6 | InitY == y = 66
7 |
8 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/A1_var_y_const_d.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE A1_var_y_const_d ----
2 | EXTENDS Naturals
3 |
4 | CONSTANT d
5 | VARIABLES y
6 |
7 | InitY == y = 66 + d
8 |
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/A2.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE A2 ----
2 | EXTENDS Naturals
3 | C == 33
4 | Val == C + 7
5 |
6 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/AbstractRaft_BecomeLeader.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT
4 | Nil=Nil
5 | Server = {"n1","n2","n3"}
6 | Secondary = Secondary
7 | Primary = Primary
8 | InitTerm = 0
--------------------------------------------------------------------------------
/specs/with_state_graphs/AsyncTerminationDetection.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/AsyncTerminationDetection_init.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/CommunityModules-deps.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/specs/with_state_graphs/CommunityModules-deps.jar
--------------------------------------------------------------------------------
/specs/with_state_graphs/CommunityModules.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/specs/with_state_graphs/CommunityModules.jar
--------------------------------------------------------------------------------
/specs/with_state_graphs/Consistency.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/DieHard.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/DieHarder.cfg:
--------------------------------------------------------------------------------
1 | CONSTANTS Goal = 4
2 | Jug <- MCJug
3 | Capacity <- MCCapacity
4 |
5 | INIT Init
6 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/EWD998_bounded1.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/EWD998_depth_bounded1.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/EWD998_regression1.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/Elevator.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/LogExample_bounded.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/Microwave.cfg:
--------------------------------------------------------------------------------
1 | CONSTANTS
2 | ImplementStartSafety = FALSE
3 | ImplementOpenDoorSafety = FALSE
4 |
5 | INIT Init
6 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/NQueens_N3.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT PlaceQueen
3 | CONSTANT N=3
--------------------------------------------------------------------------------
/specs/with_state_graphs/NaiadClock.cfg:
--------------------------------------------------------------------------------
1 | SPECIFICATION Spec
2 |
3 | CONSTANTS
4 | Point = {p1,p2}
5 | Proc = {a,b}
--------------------------------------------------------------------------------
/specs/with_state_graphs/Paxos_1a.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/Paxos_1b_case1.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/Prisoners.cfg:
--------------------------------------------------------------------------------
1 | CONSTANT Prisoner = {"p1", "p2", "p3"}
2 | Counter = "p1"
3 | INIT Init
4 | NEXT Next
5 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/README.md:
--------------------------------------------------------------------------------
1 | To re-generate the JSON state graphs for the TLA+ specs in this directory, run the `gen_state_graphs.sh` script. These JSON state graph dumps for each spec are used for the TLC <-> Javascript interpreter conformance tests located [here](https://github.com/will62794/tla-web/blob/65c7e9f1febb21eecce4cf86e5ffd57578c4f90e/js/test.js#L834-L854).
--------------------------------------------------------------------------------
/specs/with_state_graphs/RaftMongo.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT Follower = "Follower"
4 | CONSTANT Leader = "Leader"
5 | CONSTANT Nil = "Nil"
6 | CONSTANT Candidate = "Candidate"
7 | CONSTANT Server = {"n1"}
--------------------------------------------------------------------------------
/specs/with_state_graphs/RaftWithReconfigBroken_Bounded.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT
4 | Server = {"s1","s2","s3"}
5 | MaxTerm=2
6 | MaxLogLen=2
7 |
8 | \* INVARIANT NoTwoPrimariesInSameTerm
9 | \* INVARIANT NeverRollbackCommitted
10 |
11 | \* INVARIANT CommittedSafety
12 | CONSTRAINT StateConstraint
13 | \* SYMMETRY Symmetry
--------------------------------------------------------------------------------
/specs/with_state_graphs/S1.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/S1.tla:
--------------------------------------------------------------------------------
1 | \* See https://github.com/will62794/tla-web/issues/31.
2 | -------------------------------- MODULE S1 -------------------------------
3 | VARIABLES p
4 |
5 | Init == p = FALSE
6 |
7 | Next == p' \in BOOLEAN
8 | ============================================================================
--------------------------------------------------------------------------------
/specs/with_state_graphs/TestLinQueue.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/TestLinQueue.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 3500083964333073195 [label="check = TRUE",style = filled]
6 | 3500083964333073195 -> 3500083964333073195 [label="",color="black",fontcolor="black"];
7 | {rank = same; 3500083964333073195;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/TwoPhase.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/TwoPhase_RMPrepare.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/TxnsMoveRange.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
4 | CONSTANTS
5 | MIGRATIONS = 1
6 | TXN_STMTS = 1
7 |
8 | Txns = {"t1"}
9 | NameSpaces = {"ns1"}
10 | Shards = {"s1", "s2"}
11 | Keys = {"k1", "k2"}
--------------------------------------------------------------------------------
/specs/with_state_graphs/conj_parsing.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/conj_parsing.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE conj_parsing ----
2 | EXTENDS TLC, Naturals
3 |
4 |
5 | VARIABLE x,y,z
6 |
7 | Init == x = 1 /\ y = 2 /\ z = 30
8 |
9 | Next ==
10 | /\ x' = (x + 1) % 2
11 | /\ \E c \in {5,6} : y' = (y + c) % 2
12 | /\ z' = (z + 1) % 2
13 |
14 | vars == <>
15 |
16 | Spec == Init /\ [][Next]_vars
17 |
18 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/def_before_var_decl.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/empty_domain_and_seq.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/lockserver_constant_comment.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT
4 | Server = {"s1", "s2"}
5 | Client = {"c1","c2"}
--------------------------------------------------------------------------------
/specs/with_state_graphs/lockserver_nodefs.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/lockserver_nodefs1.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/lockserver_nodefs_unchanged.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/mldr_init_only.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/operator_param_clash_before_const_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT c = 12
4 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/operator_param_clash_before_var_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/operator_param_clash_before_var_def_inter.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/pre_module_comments.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/pre_module_comments.tla:
--------------------------------------------------------------------------------
1 | a
2 | ------------------------------- MODULE pre_module_comments -------------------------------
3 | EXTENDS Integers
4 |
5 | VARIABLE x
6 |
7 | Init ==
8 | x = 2
9 |
10 | Next ==
11 | x' = 2
12 |
13 | =====
--------------------------------------------------------------------------------
/specs/with_state_graphs/pre_module_comments.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -5039642576729477619 [label="x = 2",style = filled]
6 | -5039642576729477619 -> -5039642576729477619 [label="",color="black",fontcolor="black"];
7 | {rank = same; -5039642576729477619;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/primed_tuple.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/primed_tuple.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE primed_tuple ----
2 | EXTENDS TLC, Naturals
3 |
4 | VARIABLE x
5 | VARIABLE y
6 |
7 | Init == x = 0 /\ y = 0
8 | Next == UNCHANGED <>
9 |
10 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/primed_tuple.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 1317622219392791164 [label="/\\ x = 0\n/\\ y = 0",style = filled]
6 | 1317622219392791164 -> 1317622219392791164 [label="",color="black",fontcolor="black"];
7 | {rank = same; 1317622219392791164;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/qspinlock.cfg:
--------------------------------------------------------------------------------
1 | SPECIFICATION Spec
2 | CONSTANT defaultInitValue = defaultInitValue
3 | \* Add statements after this line.
4 |
5 | CONSTANTS
6 | CPUS = {p1, p2}
7 | NoCPU = null
8 | MAX_NODES = 1
9 | PENDING_LOOPS = 1
10 |
11 | \* INVARIANTS TypeInv
12 | \* ExclInv
13 |
14 | \*PROPERTIES LockAll
15 | \* LockAny
16 |
17 | \* SYMMETRY Perms
18 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/record_literal_eval.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/record_literal_eval.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE record_literal_eval ----
2 | EXTENDS TLC, Naturals
3 |
4 | VARIABLE x
5 |
6 | Init ==
7 | \/ x = [a |-> "v1", b |-> "v2"]
8 | \/ x = [a |-> "v1", b |-> "v2", c |-> "v3"]
9 | Next == x' = x
10 |
11 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/seq_append.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/seq_append.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE seq_append ----
2 | EXTENDS TLC, Sequences ,Naturals
3 |
4 | VARIABLE x
5 |
6 | Init == x = Append(<<1,2>>,3)
7 | Next == x' = x
8 |
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/seq_append.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -7756970548688679909 [label="x = <<1, 2, 3>>",style = filled]
6 | -7756970548688679909 -> -7756970548688679909 [label="",color="black",fontcolor="black"];
7 | {rank = same; -7756970548688679909;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/set_dot_notation.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/set_dot_notation.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE set_dot_notation ----
2 | EXTENDS TLC, Naturals
3 |
4 | VARIABLE x
5 |
6 | Init == x = 1..3
7 | Next == x' = x
8 |
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/set_dot_notation.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 7915713917714468985 [label="x = 1..3",style = filled]
6 | 7915713917714468985 -> 7915713917714468985 [label="",color="black",fontcolor="black"];
7 | {rank = same; 7915713917714468985;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/show521677.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT
4 | StrongConsistency = "StrongConsistency"
5 | BoundedStaleness = "BoundedStaleness"
6 | SessionConsistency = "SessionConsistency"
7 | ConsistentPrefix = "ConsistentPrefix"
8 | EventualConsistency = "EventualConsistency"
9 | StalenessBound = 1
10 | VersionBound = 3
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple1.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple1_multiline_block_comment.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple2.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple2.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple2 ------------------------
2 | VARIABLE x
3 | Init == x = 1 \/ x = 2
4 | Next == x' = 2
5 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple3.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple3.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple3 ------------------------
2 | VARIABLE x
3 | VARIABLE y
4 | Init ==
5 | /\ x = 1 \/ x = 2
6 | /\ y = 3 \/ y = 4
7 |
8 | Next == x' = 2 /\ y' = 2
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple5.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple5.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple5 ------------------------
2 | VARIABLE x
3 | VARIABLE y
4 | Init ==
5 | /\ x = 1 \/ x = 2
6 | /\ y = 3 \/ y = 6
7 |
8 | Next ==
9 | \/ x = 0 /\ x' = 99 /\ y' = 88
10 | \/ x = 2 /\ x' = 209 /\ y' = 288
11 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple6.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple6.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple6 ------------------------
2 | VARIABLE x
3 | Init == x \in [{1,2} -> {4,5}]
4 | Next == x' = x
5 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple7.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple7.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple7 ------------------------
2 | VARIABLE x
3 | Init == x = 0
4 | Next == x' \in {0,1,2,3} /\ x' # x
5 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple8.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple8.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple8 ------------------------
2 | VARIABLE x
3 | Init == x = 1
4 | Next == x' = 2
5 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_arith.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_boolean.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_choose.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_conjunction_constant.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_constant_operator.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT
4 | Op <- NewOp
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_constant_operator.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_constant_operator ----
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | CONSTANT Op(_)
7 |
8 | NewOp(a) == a + 5
9 |
10 | Init == x = Op(3) + 44
11 | Next == x' = x
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_constant_operator.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -2512621441504319288 [label="x = 52",style = filled]
6 | -2512621441504319288 -> -2512621441504319288 [label="",color="black",fontcolor="black"];
7 | {rank = same; -2512621441504319288;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_constant_operator_infix.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT
4 | | <- NewOp
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_constant_operator_infix.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_constant_operator_infix ----
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | CONSTANT _|_
7 |
8 | NewOp(a,b) == a + b
9 |
10 | Init == x = 5 | 44
11 | Next == x' = x
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_constant_operator_infix.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -1607829976393375149 [label="x = 49",style = filled]
6 | -1607829976393375149 -> -1607829976393375149 [label="",color="black",fontcolor="black"];
7 | {rank = same; -1607829976393375149;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_defined_var_assignment.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_defined_var_assignment.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_defined_var_assignment ----
2 |
3 | VARIABLE x
4 | VARIABLE y
5 |
6 | vars == <>
7 |
8 | c == x
9 | a == c
10 |
11 | Init == c = 0 /\ y = 1
12 |
13 | Next == UNCHANGED <>
14 |
15 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_defined_var_assignment.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled]
6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"];
7 | {rank = same; -3810599722284383802;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_defined_var_assignment_transitive.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_defined_var_assignment_transitive.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_defined_var_assignment_transitive ----
2 |
3 | VARIABLE x
4 | VARIABLE y
5 |
6 | vars == <>
7 |
8 | c == x
9 | a == c
10 |
11 | Init == a = 0 /\ y = 1
12 |
13 | Next == UNCHANGED <>
14 |
15 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_defined_var_assignment_transitive.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled]
6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"];
7 | {rank = same; -3810599722284383802;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_definition.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_definition.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 6731408165669176166 [label="x = 84",style = filled]
6 | 6731408165669176166 -> 6731408165669176166 [label="",color="black",fontcolor="black"];
7 | {rank = same; 6731408165669176166;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_definition2.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_disjunction_constant.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_disjunction_init.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_domain.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_domain.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_domain ----
2 | EXTENDS Sequences
3 |
4 | VARIABLES x
5 |
6 | Init == x = DOMAIN <<>>
7 |
8 | Next == x' = x
9 |
10 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_domain.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -6714151546026078956 [label="x = {}",style = filled]
6 | -6714151546026078956 -> -6714151546026078956 [label="",color="black",fontcolor="black"];
7 | {rank = same; -6714151546026078956;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_enabled.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_enabled.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_enabled ----
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | Action == x > 0 /\ x' = 2
7 |
8 | Action2 == x' = 3
9 |
10 | Init == x = 1
11 |
12 | Next ==
13 | /\ ENABLED Action
14 | /\ Action2
15 |
16 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends ----
2 | EXTENDS Sequences, simple_extends_M1, simple_extends_M2
3 |
4 | VARIABLES x
5 |
6 | Init ==
7 | \/ x = ExprM1
8 | \/ x = ExprM2
9 |
10 | Next == x' = x
11 |
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M1.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M1 ----
2 | EXTENDS Sequences, Naturals
3 |
4 | m1_val == 15
5 |
6 | ExprM1 == 10 + m1_val
7 |
8 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M2.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M2 ----
2 | EXTENDS Sequences, simple_extends_M3
3 |
4 | ExprM2 == 20
5 |
6 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M2b.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M2b ----
2 | EXTENDS Sequences, Naturals
3 |
4 | M3 == INSTANCE simple_extends_M3
5 |
6 | ExprM2b == 20 + M3!ExprM3
7 |
8 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M2c.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M2c ----
2 | EXTENDS Sequences, Naturals
3 |
4 | a ++ b == a + b
5 |
6 | ExprM2c == 20
7 |
8 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M3.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M3 ----
2 | EXTENDS Sequences
3 |
4 | ExprM3 == 43
5 |
6 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M4.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M4 ----
2 | EXTENDS Sequences
3 |
4 | CONSTANT Val, ValB
5 |
6 | ExprM4 == Val
7 | ExprM4_B == ValB
8 |
9 |
10 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M5.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M5 ----
2 | EXTENDS Sequences
3 |
4 | VARIABLE m
5 |
6 | E5 == 45
7 |
8 | MVarInitZero == m = E5
9 |
10 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M5b.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M5b ----
2 | EXTENDS Sequences
3 |
4 | VARIABLE mb
5 |
6 | INSTANCE simple_extends_M6 WITH V <- 113, m <- mb
7 |
8 | MbVarInitZero ==
9 | \/ mb = 0
10 | \/ MVarInitZero
11 |
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M5c.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M5c ----
2 | EXTENDS Sequences
3 | CONSTANT C
4 | VARIABLE m
5 |
6 | E5 == 45
7 |
8 | MVarInitZero == m = E5
9 |
10 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M6.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M6 ----
2 | EXTENDS Sequences, Naturals
3 |
4 | CONSTANT V
5 | VARIABLE m
6 |
7 | MVarInitZero == m = V + 2
8 |
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M7.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M7 ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLE m, n
5 |
6 | E5 == 45
7 |
8 | MInit ==
9 | /\ m = E5
10 | /\ n = 33
11 |
12 | A1 == (m' = (m + 1) % 3) /\ UNCHANGED n
13 |
14 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M7_LOCAL_def.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M7_LOCAL_def ----
2 | EXTENDS Sequences, Naturals
3 |
4 | LOCAL InternalExpr == 12
5 | ExternalExpr == 14 + InternalExpr
6 |
7 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M8.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M8 ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLE x
5 |
6 | XCond == x > 1
7 |
8 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_M9.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_M9 ----
2 | EXTENDS Sequences, Naturals
3 |
4 | F(a) == a + 365
5 |
6 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance ----
2 | EXTENDS Sequences, Naturals
3 |
4 | INSTANCE simple_extends_M3
5 |
6 | VARIABLES x
7 |
8 | Init ==
9 | \/ x = ExprM3 + 3
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_def ----
2 | EXTENDS Sequences, Naturals
3 |
4 | M == INSTANCE simple_extends_M2
5 |
6 | VARIABLES x
7 |
8 | Init ==
9 | \/ x = M!ExprM2 + 3
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -5664843355636500517 [label="x = 23",style = filled]
6 | -5664843355636500517 -> -5664843355636500517 [label="",color="black",fontcolor="black"];
7 | {rank = same; -5664843355636500517;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_parameterized.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_parameterized.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 1786228659164697378 [label="/\\ x = 244\n/\\ y = 12",style = filled]
6 | 1786228659164697378 -> 1786228659164697378 [label="",color="black",fontcolor="black"];
7 | {rank = same; 1786228659164697378;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_parameterized_var_subst_no_clash.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_parameterized_var_subst_with_clash.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_transitive.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_transitive.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 83357677548360023 [label="x = 28",style = filled]
6 | 83357677548360023 -> 83357677548360023 [label="",color="black",fontcolor="black"];
7 | {rank = same; 83357677548360023;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_transitive_import.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_transitive_import.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_def_transitive_import ----
2 | EXTENDS Sequences, Naturals
3 |
4 | M2b == INSTANCE simple_extends_M2b
5 |
6 | VARIABLES x
7 |
8 | Init ==
9 | \/ x = M2b!ExprM2b + M2b!M3!ExprM3 + 14
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_transitive_import.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 7834596103062504408 [label="x = 120",style = filled]
6 | 7834596103062504408 -> 7834596103062504408 [label="",color="black",fontcolor="black"];
7 | {rank = same; 7834596103062504408;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_user_infix_op.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_user_infix_op.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_def_user_infix_op ----
2 | EXTENDS Sequences, Naturals
3 |
4 | M == INSTANCE simple_extends_M2c
5 |
6 | VARIABLES x
7 |
8 | Init ==
9 | \/ x = M!++(33,12)
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_user_infix_op.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -7468425565063145670 [label="x = 45",style = filled]
6 | -7468425565063145670 -> -7468425565063145670 [label="",color="black",fontcolor="black"];
7 | {rank = same; -7468425565063145670;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_subst.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_subst.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_def_with_subst ----
2 | EXTENDS Sequences, Naturals
3 |
4 | M == INSTANCE simple_extends_M4 WITH Val <- 45, ValB <- 99
5 |
6 | VARIABLES x
7 |
8 | Init ==
9 | \/ x = M!ExprM4 + M!ExprM4_B + 3
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_subst.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -2603801094527747627 [label="x = 147",style = filled]
6 | -2603801094527747627 -> -2603801094527747627 [label="",color="black",fontcolor="black"];
7 | {rank = same; -2603801094527747627;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_var_subst.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_var_subst.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_def_with_var_subst ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLES x
5 |
6 | M == INSTANCE simple_extends_M5 WITH m <- x
7 |
8 | Init ==
9 | \/ x = 5
10 | \/ M!MVarInitZero
11 |
12 | Next == x' = x
13 |
14 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_var_subst_and_primed_action.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_var_subst_default_name.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_var_subst_one_implicit.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_var_subst_one_implicit.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_def_with_var_subst_one_implicit ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLES x
5 |
6 | C == 5
7 |
8 | M == INSTANCE simple_extends_M5c WITH m <- x
9 |
10 | Init ==
11 | \/ x = 5
12 | \/ M!MVarInitZero
13 |
14 | Next == x' = x
15 |
16 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_def_with_var_subst_same_name.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_duplicate_def_names.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_duplicate_def_names.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_duplicate_def_names ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLES x
5 |
6 | A1Inst == INSTANCE A1
7 | A2Inst == INSTANCE A2
8 |
9 | Init == x = A1Inst!Val + A2Inst!Val
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_duplicate_def_names.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 8381894279946756999 [label="x = 110",style = filled]
6 | 8381894279946756999 -> 8381894279946756999 [label="",color="black",fontcolor="black"];
7 | {rank = same; 8381894279946756999;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_transitive.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_transitive.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_transitive ----
2 | EXTENDS Sequences, Naturals
3 |
4 | INSTANCE simple_extends_M1
5 |
6 | VARIABLES x
7 |
8 | Init ==
9 | \/ x = ExprM1 + 3
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_transitive.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 83357677548360023 [label="x = 28",style = filled]
6 | 83357677548360023 -> 83357677548360023 [label="",color="black",fontcolor="black"];
7 | {rank = same; 83357677548360023;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_const_subst.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_const_subst.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_with_const_subst ----
2 | EXTENDS Sequences, Naturals
3 |
4 | INSTANCE simple_extends_M4 WITH Val <- 33, ValB <- 66
5 |
6 | VARIABLES x
7 |
8 | Init ==
9 | \/ x = ExprM4 + ExprM4_B + 3
10 |
11 | Next == x' = x
12 |
13 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_const_subst.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -2909992488678982526 [label="x = 102",style = filled]
6 | -2909992488678982526 -> -2909992488678982526 [label="",color="black",fontcolor="black"];
7 | {rank = same; -2909992488678982526;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_with_var_and_const_subst ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLES x
5 |
6 | INSTANCE simple_extends_M6 WITH V <- 34, m <- x
7 |
8 | Init ==
9 | \/ x = 3
10 | \/ MVarInitZero
11 |
12 | Next == x' = x
13 |
14 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst_transitive.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_and_const_subst_transitive.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_with_var_and_const_subst_transitive ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLES x
5 |
6 | INSTANCE simple_extends_M5b WITH mb <- x
7 |
8 | Init ==
9 | \/ x = 1
10 | \/ MbVarInitZero
11 |
12 | Next == x' = x
13 |
14 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_subst.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_subst.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_with_var_subst ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLES x
5 |
6 | INSTANCE simple_extends_M5 WITH m <- x
7 |
8 | Init ==
9 | \/ x = 3
10 | \/ MVarInitZero
11 |
12 | Next == x' = x
13 |
14 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_subst_identity.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_instance_with_var_subst_identity.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_instance_with_var_subst_identity ----
2 | EXTENDS Sequences, Naturals
3 |
4 | VARIABLES m
5 |
6 | INSTANCE simple_extends_M5 WITH m <- m
7 |
8 | Init ==
9 | \/ m = 3
10 | \/ MVarInitZero
11 |
12 | Next == m' = m
13 |
14 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_local_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_local_def.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 1345933850180380894 [label="x = 31",style = filled]
6 | 1345933850180380894 -> 1345933850180380894 [label="",color="black",fontcolor="black"];
7 | {rank = same; 1345933850180380894;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_with_var.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_with_var.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_with_var ----
2 | EXTENDS Sequences, A1_var_y
3 |
4 | VARIABLES x
5 |
6 | Init ==
7 | \/ x = 2 /\ InitY
8 | \/ x = 5 /\ InitY
9 |
10 | Next == x' = x /\ y' = y
11 |
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_with_var_and_const.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 | CONSTANT d = 22
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_extends_with_var_and_const.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_extends_with_var_and_const ----
2 | EXTENDS Sequences, A1_var_y_const_d
3 |
4 | VARIABLES x
5 |
6 | Init ==
7 | \/ x = 2 + d /\ InitY
8 | \/ x = 5 + d /\ InitY
9 |
10 | Next == x' = x /\ y' = y
11 |
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_fcn_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_fcn_def.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 8463493751410924190 [label="/\\ x = [e |-> 13, d |-> 6, f |-> 6, g |-> 10]\n/\\ y = 7",style = filled]
6 | 8463493751410924190 -> 8463493751410924190 [label="",color="black",fontcolor="black"];
7 | {rank = same; 8463493751410924190;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_fcn_literal.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_fcn_polymorphism.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_folds.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_if_then.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_if_then.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple_if_then ------------------------
2 | VARIABLE x
3 | Init == x = [
4 | if1 |-> IF TRUE THEN 1 ELSE 2,
5 | if2 |-> IF FALSE THEN 1 ELSE IF TRUE THEN 2 ELSE 3
6 | ]
7 | Next == x' = x
8 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_if_then.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 2562348092006268979 [label="x = [if1 |-> 1, if2 |-> 2]",style = filled]
6 | 2562348092006268979 -> 2562348092006268979 [label="",color="black",fontcolor="black"];
7 | {rank = same; 2562348092006268979;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_implies.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_infix_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_lambda.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_lambda_letin.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_lazy.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_letin.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_letin_fn_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_letin_fn_def.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple_letin_fn_def ------------------------
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | Init ==
7 | \/ x = LET myfn[a \in {1,2}] == a + 1 IN myfn[2]
8 | Next == x' = x
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_letin_fn_def.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 7158667421841284535 [label="x = 3",style = filled]
6 | 7158667421841284535 -> 7158667421841284535 [label="",color="black",fontcolor="black"];
7 | {rank = same; 7158667421841284535;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_mod3_counter.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_mod3_counter.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_mod3_counter ----
2 | EXTENDS TLC, Naturals
3 |
4 | VARIABLE x
5 |
6 | Init == x = 0
7 | Next == x' = (x + 1) % 3
8 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_multiline.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_negation.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_negation.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_negation ----
2 |
3 | \* See https://github.com/will62794/tla-web/issues/12.
4 |
5 | VARIABLE x
6 |
7 | Init == x = TRUE
8 |
9 | Next == x' = ~x
10 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_nested_lambda.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_nested_lambda.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 8354080806683174181 [label="x = <<\"1\", 112>>",style = filled]
6 | 8354080806683174181 -> 8354080806683174181 [label="",color="black",fontcolor="black"];
7 | {rank = same; 8354080806683174181;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_operator.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_operator.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_operator ----
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | \* One normal operator def.
7 | Op(u, v) == u + v
8 |
9 | Init ==
10 | \/ x = Op(16, 47)
11 |
12 | Next ==
13 | x' = x
14 |
15 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_operator.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 7884443652595207748 [label="x = 63",style = filled]
6 | 7884443652595207748 -> 7884443652595207748 [label="",color="black",fontcolor="black"];
7 | {rank = same; 7884443652595207748;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_primed.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_primed.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_primed ----
2 | EXTENDS TLC, Naturals
3 |
4 | VARIABLE x
5 | VARIABLE y
6 |
7 | expr == x + 2
8 |
9 | Init ==
10 | /\ x = 0
11 | /\ y = 0
12 | Next ==
13 | /\ x' = 5
14 | /\ y' = expr'
15 |
16 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_primed_defs.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_primed_defs.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_primed_defs ----
2 | VARIABLES var, var2
3 |
4 | D1 == var2
5 |
6 | vars == <>
7 | Init ==
8 | /\ var = 0
9 | /\ var2 = 6
10 |
11 | Action ==
12 | /\ LET vdef == var IN vdef' = 1
13 | /\ D1' = 15
14 |
15 | Next == Action
16 |
17 | Spec == /\ Init /\ [][Next]_vars
18 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_quant.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_quant2.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_quant2.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple_quant2 ------------------------
2 | EXTENDS Naturals
3 |
4 | VARIABLE x
5 |
6 | Init == \E c \in SUBSET {0,1} : c # {} /\ x = [i \in {"a"} |-> c]
7 |
8 | Next == x' = x
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_quant_multi.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_quant_tuple.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_quant_tuple.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_quant_tuple ----
2 | EXTENDS Naturals
3 | \* See https://github.com/will62794/tla-web/issues/17.
4 |
5 | VARIABLE x, y
6 |
7 | Init ==
8 | /\ x = 0
9 | /\ y = 0
10 |
11 | Next ==
12 | \E <> \in {<<1,2>>,<<3,4>>}:
13 | /\ x' = i
14 | /\ y' = j
15 |
16 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_record.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_recursive.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_seq.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_seq_ext.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_seq_ext.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_seq_update.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_seq_update.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_seq_update ----
2 | EXTENDS Naturals
3 |
4 | \* See https://github.com/will62794/tla-web/issues/25.
5 |
6 | VARIABLE seq
7 |
8 | Init ==
9 | /\ seq = <<1, 2, 3>>
10 |
11 | Next ==
12 | /\ seq' = [seq EXCEPT ![1] = IF @ = 5 THEN 1 ELSE @ + 1]
13 |
14 | Spec == Init /\ [][Next]_seq
15 |
16 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_seq_update2.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_seq_update3.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_set_of_fns.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_set_of_fns.tla:
--------------------------------------------------------------------------------
1 | ----------------------- MODULE simple_set_of_fns ------------------------
2 | EXTENDS Naturals
3 | VARIABLE x
4 | Init == x = 0
5 | Next == x' = [ a |-> [0..1 -> BOOLEAN],
6 | b |-> [0..2 -> {"a","b","c"}],
7 | c |-> [{3,1,2} -> {"q","x","a"}],
8 | d |-> [[{4,6} -> {2,3}] -> {"y","z"}]]
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_setfiltermap.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_sets.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_strings.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_subset.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_tlc_fn.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_tlc_fn.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_tlc_fn ----
2 | EXTENDS TLC
3 |
4 | VARIABLES
5 | x,
6 | y
7 |
8 | Init ==
9 | \/ /\ x = (0 :> 0)
10 | /\ y = (1 :> 1)
11 | \/ /\ x = 2 :> 3
12 | /\ y = 4 :> 5
13 |
14 | Next == UNCHANGED <>
15 |
16 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_tlc_fn_compose.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_tlc_ops.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_tlc_ops.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_tlc_ops ----
2 | EXTENDS TLC, Naturals
3 |
4 | VARIABLES x
5 |
6 | Init ==
7 | \/ x = TLCEval(5 + 5)
8 | \/ x = TLCEval("a")
9 |
10 | Next == UNCHANGED <>
11 |
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_unchanged ----
2 |
3 | VARIABLE x
4 | VARIABLE y
5 |
6 | vars == <>
7 |
8 | Init == x = 0 /\ y = 1
9 |
10 | Next == UNCHANGED vars
11 |
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled]
6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"];
7 | {rank = same; -3810599722284383802;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_nested_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_nested_def.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_unchanged_nested_def ----
2 |
3 | VARIABLE x
4 | VARIABLE y
5 |
6 | \* TODO: Make sure this works for the right reasons in UNCHANGED evaluation?
7 | vars == <>
8 | vars1 == vars
9 | vars2 == vars1
10 |
11 | Init == x = 0 /\ y = 1
12 |
13 | Next == UNCHANGED vars2
14 |
15 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_nested_def.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled]
6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"];
7 | {rank = same; -3810599722284383802;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_nested_tuple.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_nested_tuple_def.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_no_tuple.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_no_tuple.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_unchanged_no_tuple ----
2 |
3 | VARIABLE x
4 |
5 | Init == x = 0
6 |
7 | Next == UNCHANGED x
8 |
9 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_no_tuple.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | 8132692779957249086 [label="x = 0",style = filled]
6 | 8132692779957249086 -> 8132692779957249086 [label="",color="black",fontcolor="black"];
7 | {rank = same; 8132692779957249086;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_unchanged_with_quant.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
4 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_var_tuple.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_var_tuple.tla:
--------------------------------------------------------------------------------
1 | ---- MODULE simple_var_tuple ----
2 |
3 | VARIABLE x
4 | VARIABLE y
5 |
6 | vars == <>
7 |
8 | Init == x = 0 /\ y = 1
9 |
10 | Next == UNCHANGED <>
11 |
12 | ====
--------------------------------------------------------------------------------
/specs/with_state_graphs/simple_var_tuple.tla.dot:
--------------------------------------------------------------------------------
1 | strict digraph DiskGraph {
2 | nodesep=0.35;
3 | subgraph cluster_graph {
4 | color="white";
5 | -3810599722284383802 [label="/\\ x = 0\n/\\ y = 1",style = filled]
6 | -3810599722284383802 -> -3810599722284383802 [label="",color="black",fontcolor="black"];
7 | {rank = same; -3810599722284383802;}
8 | }
9 | }
--------------------------------------------------------------------------------
/specs/with_state_graphs/tla2tools.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/will62794/spectacle/9553c162413c9aecc34d3b6cb41ee71f8363ee3d/specs/with_state_graphs/tla2tools.jar
--------------------------------------------------------------------------------
/specs/with_state_graphs/tla_case_with_state_assignment.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
--------------------------------------------------------------------------------
/specs/with_state_graphs/tla_expr_eval.cfg:
--------------------------------------------------------------------------------
1 | INIT Init
2 | NEXT Next
3 |
--------------------------------------------------------------------------------
/spectacle.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "."
5 | }
6 | ],
7 | "settings": {}
8 | }
--------------------------------------------------------------------------------