gitextract_nny146az/ ├── .appends/ │ └── .github/ │ └── labels.yml ├── .dependabot/ │ └── config.yml ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── dependabot.yml │ ├── labels.yml │ └── workflows/ │ ├── action-format.yml │ ├── action-sync.yml │ ├── ci.js.yml │ ├── codeql.yml │ ├── configlet.yml │ ├── no-important-files-changed.yml │ ├── pause-community-contributions.yml │ ├── ping-cross-track-maintainers-team.yml │ ├── pr.ci.js.yml │ ├── run-configlet-sync.yml │ ├── sync-labels.yml │ └── verify-code-formatting.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── .yarn/ │ └── sdks/ │ ├── eslint/ │ │ ├── bin/ │ │ │ └── eslint.js │ │ ├── lib/ │ │ │ ├── api.js │ │ │ └── unsupported-api.js │ │ └── package.json │ ├── integrations.yml │ ├── prettier/ │ │ ├── bin/ │ │ │ └── prettier.cjs │ │ ├── index.cjs │ │ └── package.json │ └── typescript/ │ ├── bin/ │ │ ├── tsc │ │ └── tsserver │ ├── lib/ │ │ ├── tsc.js │ │ ├── tsserver.js │ │ ├── tsserverlibrary.js │ │ └── typescript.js │ └── package.json ├── .yarnrc.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── TAGS.md ├── babel.config.cjs ├── bin/ │ ├── check-formatting.sh │ ├── fetch-configlet │ ├── fetch-configlet.ps1 │ ├── format.sh │ ├── generate-config-tree │ ├── md5-hash │ └── print-config-tree ├── common/ │ ├── .vscode/ │ │ ├── extensions.json │ │ └── settings.json │ ├── .yarnrc.yml │ ├── babel.config.cjs │ ├── eslint.config.mjs │ ├── jest.config.cjs │ ├── keep.ts │ ├── package.json │ ├── test-runner.mjs │ └── tsconfig.json ├── concepts/ │ ├── .keep │ └── basics/ │ ├── .meta/ │ │ └── config.json │ ├── about.md │ ├── introduction.md │ └── links.json ├── config.json ├── docs/ │ ├── ABOUT.md │ ├── INSTALLATION.md │ ├── LEARNING.md │ ├── RESOURCES.md │ ├── SNIPPET.txt │ ├── TESTS.md │ └── config.json ├── eslint.config.mjs ├── exercises/ │ ├── concept/ │ │ ├── .keep │ │ └── lasagna/ │ │ ├── .docs/ │ │ │ ├── hints.md │ │ │ ├── instructions.md │ │ │ └── introduction.md │ │ ├── .meta/ │ │ │ ├── config.json │ │ │ ├── design.md │ │ │ └── exemplar.ts │ │ ├── .vscode/ │ │ │ ├── extensions.json │ │ │ └── settings.json │ │ ├── .yarnrc.yml │ │ ├── __typetests__/ │ │ │ └── lasagna.tst.ts │ │ ├── babel.config.cjs │ │ ├── eslint.config.mjs │ │ ├── jest.config.cjs │ │ ├── lasagna.test.ts │ │ ├── lasagna.ts │ │ ├── package.json │ │ ├── test-runner.mjs │ │ └── tsconfig.json │ ├── practice/ │ │ ├── accumulate/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ └── proof.ci.ts │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── accumulate.test.ts │ │ │ ├── accumulate.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── acronym/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── acronym.test.ts │ │ │ ├── acronym.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── all-your-base/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── all-your-base.test.ts │ │ │ ├── all-your-base.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── allergies/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── allergies.test.ts │ │ │ ├── allergies.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── alphametics/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── alphametics.test.ts │ │ │ ├── alphametics.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── anagram/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.append.md │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── anagram.test.ts │ │ │ ├── anagram.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── armstrong-numbers/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── armstrong-numbers.test.ts │ │ │ ├── armstrong-numbers.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── atbash-cipher/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── atbash-cipher.test.ts │ │ │ ├── atbash-cipher.ts │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── bank-account/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ ├── solutions/ │ │ │ │ │ └── bank-account.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── bank-account.test.ts │ │ │ ├── bank-account.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── beer-song/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── beer-song.test.ts │ │ │ ├── beer-song.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── binary-search/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── binary-search.test.ts │ │ │ ├── binary-search.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── binary-search-tree/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── binary-search-tree.test.ts │ │ │ ├── binary-search-tree.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── bob/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── description.md │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── bob.test.ts │ │ │ ├── bob.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── bottle-song/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── bottle-song.test.ts │ │ │ ├── bottle-song.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── bowling/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── bowling.test.ts │ │ │ ├── bowling.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── camicia/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── camicia.test.ts │ │ │ ├── camicia.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── circular-buffer/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── circular-buffer.test.ts │ │ │ ├── circular-buffer.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── clock/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── clock.test.ts │ │ │ ├── clock.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── collatz-conjecture/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── collatz-conjecture.test.ts │ │ │ ├── collatz-conjecture.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── complex-numbers/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── complex-numbers.test.ts │ │ │ ├── complex-numbers.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── connect/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── connect.test.ts │ │ │ ├── connect.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── crypto-square/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── crypto-square.test.ts │ │ │ ├── crypto-square.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── custom-set/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── custom-set.test.ts │ │ │ ├── custom-set.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── darts/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── darts.test.ts │ │ │ ├── darts.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── diamond/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── diamond.test.ts │ │ │ ├── diamond.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── difference-of-squares/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── difference-of-squares.test.ts │ │ │ ├── difference-of-squares.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── diffie-hellman/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── diffie-hellman.test.ts │ │ │ ├── diffie-hellman.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── dnd-character/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── dnd-character.test.ts │ │ │ ├── dnd-character.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── eliuds-eggs/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eliuds-eggs.test.ts │ │ │ ├── eliuds-eggs.ts │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── etl/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── etl.test.ts │ │ │ ├── etl.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── flatten-array/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── flatten-array.test.ts │ │ │ ├── flatten-array.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── flower-field/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── flower-field.test.ts │ │ │ ├── flower-field.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── food-chain/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── food-chain.test.ts │ │ │ ├── food-chain.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── game-of-life/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── game-of-life.test.ts │ │ │ ├── game-of-life.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── gigasecond/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── gigasecond.test.ts │ │ │ ├── gigasecond.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── grade-school/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── grade-school.test.ts │ │ │ ├── grade-school.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── grains/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── grains.test.ts │ │ │ ├── grains.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── hamming/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── hamming.test.ts │ │ │ ├── hamming.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── hello-world/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.append.md │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── hello-world.test.ts │ │ │ ├── hello-world.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── house/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── house.test.ts │ │ │ ├── house.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── isbn-verifier/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── isbn-verifier.test.ts │ │ │ ├── isbn-verifier.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── isogram/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── isogram.test.ts │ │ │ ├── isogram.ts │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── kindergarten-garden/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── kindergarten-garden.test.ts │ │ │ ├── kindergarten-garden.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── knapsack/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── knapsack.test.ts │ │ │ ├── knapsack.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── largest-series-product/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── largest-series-product.test.ts │ │ │ ├── largest-series-product.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── leap/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── leap.test.ts │ │ │ ├── leap.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── line-up/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── line-up.test.ts │ │ │ ├── line-up.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── linked-list/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ └── proof.ci.ts │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── linked-list.test.ts │ │ │ ├── linked-list.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── list-ops/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.append.md │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── list-ops.test.ts │ │ │ ├── list-ops.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── luhn/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── luhn.test.ts │ │ │ ├── luhn.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── matching-brackets/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── matching-brackets.test.ts │ │ │ ├── matching-brackets.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── matrix/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── matrix.test.ts │ │ │ ├── matrix.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── minesweeper/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── minesweeper.test.ts │ │ │ ├── minesweeper.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── nth-prime/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── nth-prime.test.ts │ │ │ ├── nth-prime.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── nucleotide-count/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── nucleotide-count.test.ts │ │ │ ├── nucleotide-count.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── ocr-numbers/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── ocr-numbers.test.ts │ │ │ ├── ocr-numbers.ts │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── palindrome-products/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── palindrome-products.test.ts │ │ │ ├── palindrome-products.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── pangram/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── pangram.test.ts │ │ │ ├── pangram.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── pascals-triangle/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── pascals-triangle.test.ts │ │ │ ├── pascals-triangle.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── perfect-numbers/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── perfect-numbers.test.ts │ │ │ ├── perfect-numbers.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── phone-number/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── phone-number.test.ts │ │ │ ├── phone-number.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── pig-latin/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── pig-latin.test.ts │ │ │ ├── pig-latin.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── prime-factors/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── prime-factors.test.ts │ │ │ ├── prime-factors.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── prism/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── prism.test.ts │ │ │ ├── prism.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── protein-translation/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── protein-translation.test.ts │ │ │ ├── protein-translation.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── proverb/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── proverb.test.ts │ │ │ ├── proverb.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── pythagorean-triplet/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── pythagorean-triplet.test.ts │ │ │ ├── pythagorean-triplet.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── queen-attack/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.append.md │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── queen-attack.test.ts │ │ │ ├── queen-attack.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── raindrops/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── raindrops.test.ts │ │ │ ├── raindrops.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── rational-numbers/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── rational-numbers.test.ts │ │ │ ├── rational-numbers.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── react/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── react.test.ts │ │ │ ├── react.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── rectangles/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── rectangles.test.ts │ │ │ ├── rectangles.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── relative-distance/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── relative-distance.test.ts │ │ │ ├── relative-distance.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── resistor-color/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── resistor-color.test.ts │ │ │ ├── resistor-color.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── resistor-color-duo/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── resistor-color-duo.test.ts │ │ │ ├── resistor-color-duo.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── resistor-color-trio/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── resistor-color-trio.test.ts │ │ │ ├── resistor-color-trio.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── reverse-string/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── reverse-string.test.ts │ │ │ ├── reverse-string.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── rna-transcription/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── rna-transcription.test.ts │ │ │ ├── rna-transcription.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── robot-name/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ └── proof.ci.ts │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── robot-name.test.ts │ │ │ ├── robot-name.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── robot-simulator/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── robot-simulator.test.ts │ │ │ ├── robot-simulator.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── roman-numerals/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── roman-numerals.test.ts │ │ │ ├── roman-numerals.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── rotational-cipher/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── rotational-cipher.test.ts │ │ │ ├── rotational-cipher.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── run-length-encoding/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── run-length-encoding.test.ts │ │ │ ├── run-length-encoding.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── saddle-points/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── saddle-points.test.ts │ │ │ ├── saddle-points.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── say/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── say.test.ts │ │ │ ├── say.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── scrabble-score/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── scrabble-score.test.ts │ │ │ ├── scrabble-score.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── secret-handshake/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── secret-handshake.test.ts │ │ │ ├── secret-handshake.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── series/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── series.test.ts │ │ │ ├── series.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── sieve/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── sieve.test.ts │ │ │ ├── sieve.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── simple-cipher/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── simple-cipher.test.ts │ │ │ ├── simple-cipher.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── space-age/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── space-age.test.ts │ │ │ ├── space-age.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── spiral-matrix/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── spiral-matrix.test.ts │ │ │ ├── spiral-matrix.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── split-second-stopwatch/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── split-second-stopwatch.test.ts │ │ │ ├── split-second-stopwatch.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── square-root/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── square-root.test.ts │ │ │ ├── square-root.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── state-of-tic-tac-toe/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── state-of-tic-tac-toe.test.ts │ │ │ ├── state-of-tic-tac-toe.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── strain/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── strain.test.ts │ │ │ ├── strain.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── sublist/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── sublist.test.ts │ │ │ ├── sublist.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── sum-of-multiples/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── sum-of-multiples.test.ts │ │ │ ├── sum-of-multiples.ts │ │ │ ├── test-runner.mjs │ │ │ └── tsconfig.json │ │ ├── tournament/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tournament.test.ts │ │ │ ├── tournament.ts │ │ │ └── tsconfig.json │ │ ├── transpose/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── transpose.test.ts │ │ │ ├── transpose.ts │ │ │ └── tsconfig.json │ │ ├── triangle/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── triangle.test.ts │ │ │ ├── triangle.ts │ │ │ └── tsconfig.json │ │ ├── twelve-days/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tsconfig.json │ │ │ ├── twelve-days.test.ts │ │ │ └── twelve-days.ts │ │ ├── two-bucket/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tsconfig.json │ │ │ ├── two-bucket.test.ts │ │ │ └── two-bucket.ts │ │ ├── two-fer/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tsconfig.json │ │ │ ├── two-fer.test.ts │ │ │ └── two-fer.ts │ │ ├── variable-length-quantity/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tsconfig.json │ │ │ ├── variable-length-quantity.test.ts │ │ │ └── variable-length-quantity.ts │ │ ├── word-count/ │ │ │ ├── .docs/ │ │ │ │ ├── instructions.md │ │ │ │ └── introduction.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tsconfig.json │ │ │ ├── word-count.test.ts │ │ │ └── word-count.ts │ │ ├── word-search/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tsconfig.json │ │ │ ├── word-search.test.ts │ │ │ └── word-search.ts │ │ ├── wordy/ │ │ │ ├── .docs/ │ │ │ │ └── instructions.md │ │ │ ├── .meta/ │ │ │ │ ├── config.json │ │ │ │ ├── proof.ci.ts │ │ │ │ └── tests.toml │ │ │ ├── .vscode/ │ │ │ │ ├── extensions.json │ │ │ │ └── settings.json │ │ │ ├── .yarnrc.yml │ │ │ ├── babel.config.cjs │ │ │ ├── eslint.config.mjs │ │ │ ├── jest.config.cjs │ │ │ ├── package.json │ │ │ ├── test-runner.mjs │ │ │ ├── tsconfig.json │ │ │ ├── wordy.test.ts │ │ │ └── wordy.ts │ │ └── yacht/ │ │ ├── .docs/ │ │ │ ├── instructions.md │ │ │ └── introduction.md │ │ ├── .meta/ │ │ │ ├── config.json │ │ │ ├── proof.ci.ts │ │ │ └── tests.toml │ │ ├── .vscode/ │ │ │ ├── extensions.json │ │ │ └── settings.json │ │ ├── .yarn/ │ │ │ └── releases/ │ │ │ └── yarn-3.6.4.cjs │ │ ├── .yarnrc.yml │ │ ├── babel.config.cjs │ │ ├── eslint.config.mjs │ │ ├── jest.config.cjs │ │ ├── package.json │ │ ├── test-runner.mjs │ │ ├── tsconfig.json │ │ ├── yacht.test.ts │ │ └── yacht.ts │ └── shared/ │ └── .docs/ │ ├── help.md │ └── tests.md ├── package.json ├── reference/ │ └── implementing-a-concept-exercise.md ├── scripts/ │ ├── checksum.mjs │ ├── ci-check.mjs │ ├── ci.mjs │ ├── format.mjs │ ├── helpers.mjs │ ├── lint.mjs │ ├── name-check.mjs │ ├── name-uniq.mjs │ ├── pr-check.mjs │ ├── pr.mjs │ ├── stub-check.mjs │ ├── sync.mjs │ └── test.mjs ├── tsconfig.json └── yarn-error.log