Tom Boucher
1fe85cd43e
chore( #4244 ): ESLint rules for the #4220 Windows dirname-walk / TMPDIR-triad bug class ( #4246 )
...
* fix(#4244 ): repoint TEMP/TMP alongside TMPDIR and fix the sweepProtectSet fixed-point walk
Repo-wide sweep (ahead of adding lint rules for these exact bug classes)
found both incident patterns still live and unfixed on `next`:
- scripts/run-tests.cjs's sweepProtectSet walk stopped on
`cur !== runTempRoot && cur.length > 1` — a POSIX-only sentinel.
win32 dirname('D:\') is a fixed point (length 3, never satisfies
`> 1`... wait, it does satisfy length>1), so a selected file living
outside runTempRoot (the common case) spins the walk forever on
Windows. Extracted a pure, exported computeSweepProtectSet helper
that terminates on dirname(cur) === cur instead, with in-process
RuleTester-style coverage for both win32 and posix paths.
- tests/run-tests-temp-root.test.cjs's own #4020 regression test set
only TMPDIR on its runNode(...) child env. Node's os.tmpdir() never
reads TMPDIR on Windows (only TEMP, then TMP), so the redirect
silently no-oped there — masked because Windows CI died in the
dirname-walk hang above before ever reaching this test.
- tests/config-schema.property.test.cjs's fallow config-set test had
the same TMPDIR-only pattern, direct process.env assignment this
time, restored in its own finally block.
Origin: #4220 and its shared root cause #4020 .
* feat(#4244 ): require-full-tmpdir-triad and no-unbounded-dirname-walk ESLint rules
Two custom local ESLint rules catch the #4220 / #4020 Windows CI hang bug
class at author time, joining the ADR-1703 DEFECT.WINDOWS-TEST-PORTABILITY
catalog. Neither eslint-plugin-unicorn nor eslint-plugin-n has a rule for
either shape.
- local/require-full-tmpdir-triad: flags a TMPDIR environment override
(direct process.env.TMPDIR assignment, or a TMPDIR property in a
spawn-like call's env: object literal) not accompanied by TEMP and TMP
in the same scope. Node's os.tmpdir() never reads TMPDIR on Windows.
Registered on tests/**/*.cjs, matching the require-userprofile-with-home
precedent.
- local/no-unbounded-dirname-walk: flags a while/do-while loop reassigning
from dirname() with no fixed-point termination guard
(dirname(cur) !== cur, or path.parse(cur).root). path.dirname() is a
no-op at the platform root, but the value differs by platform
(win32 'D:\' is length 3, posix '/' is length 1), so a POSIX-shaped
length/equality bound never fires on Windows. Registered on BOTH
tests/**/*.cjs and scripts/**/*.cjs — the real #4020 bug lived in
scripts/run-tests.cjs, not tests/.
Both rules join the zero-escape-hatch discipline already established for
this catalog (no bespoke comment marker; PROTECTED_RULES in
tests/portability-rule-disable-ban.test.cjs independently bans
eslint-disable of either). ADR-1703 and its two companion contributing
docs get an amendment documenting the mechanism, code examples, and the
repo-wide sweep (three live instances found and fixed in the prior
commit; no others found). CI test-scope selection updated so an edit to
either rule or to scripts/run-tests.cjs re-runs the right suites.
* fix(#4244 ): no-unbounded-dirname-walk must analyze a single-condition loop test too
checkWhile bailed out early unless node.test was a LogicalExpression,
so a single-condition loop -- while (cur !== root) { cur = dirname(cur); } --
was silently skipped and never reported. That is the EXACT minimal
shape of the original #4020/#4220 bug, and it is literally the shape
used by this rule's own shipped RuleTester fixtures (the "equality-only
bound" invalid cases), which were failing (0 errors reported, 1
expected) until this fix -- confirmed by running RuleTester directly
against both fixtures, not just via a passing test-runner exit code.
The conjunct-collection helper already handled a non-LogicalExpression
test correctly (it pushes a single node as the sole conjunct); only the
early-return gate needed to stop requiring a compound && / || test.
Verified: RuleTester run directly against both previously-broken
fixtures plus two new sanity cases (a guarded single-condition loop
stays valid; an unrelated single-condition loop stays silent), and a
fresh `npx eslint .` across the whole repo remains clean (no other
single-condition dirname-walk shape exists in the tree).
* fix(#4244 ): require-full-tmpdir-triad must recognize a destructured child_process call
isSpawnLikeCallee only recognized a MemberExpression callee
(child_process.spawnSync(...)) or a bare identifier in
ENV_LOCAL_HELPER_NAMES (runNode). A destructured import called bare --
const { spawnSync } = require('child_process'); spawnSync(...) -- has an
Identifier callee named "spawnSync", which matched neither branch, so
the whole env-literal check was skipped. gsd-test caught this: both
"invalid: child_process.spawnSync with TMPDIR-only env" cases in
tests/require-full-tmpdir-triad.rule.test.cjs were failing (0 errors
reported, 1 expected).
Widened the bare-identifier branch to also match any of the known
ENV_CHILD_PROCESS_METHODS names, matched by name only -- the same
lightweight convention this repo's other eslint-rules/*.cjs use (e.g.
no-hardcoded-tmp.cjs's isFsMethodCall), not full import data-flow
tracing.
Verified: RuleTester run directly against all 11 cases in
tests/require-full-tmpdir-triad.rule.test.cjs (not just the two that
were failing), all pass; a fresh npx eslint . and npm run lint:ci
across the whole repo remain clean.
* fix(#4244 ): correct a stale escape-hatch reference in a test comment
The comment on the "length comparison against another expression's
length" case referenced a "// allow-dirname-walk marker" that doesn't
exist -- the rule has zero comment-based escape hatches by design
(ADR-1703), and an earlier draft's marker mechanism was removed before
this branch's first commit. Spec-axis review caught the stale
reference. No behavior change; comment-only.
* chore(#4244 ): backfill changeset PR number (pr:0 -> pr:4246)
---------
Co-authored-by: sim <sim@local>
2026-09-03 14:14:09 -04:00
..
2026-06-25 18:24:39 -04:00
2026-09-02 22:38:31 -04:00
2026-08-24 02:45:28 -04:00
2026-09-02 12:19:41 -04:00
2026-06-25 18:24:39 -04:00
2026-08-29 17:00:45 -04:00
2026-07-09 23:43:18 -04:00
2026-06-15 23:21:20 -04:00
2026-06-02 18:35:29 -04:00
2026-08-18 11:37:44 -04:00
2026-07-06 08:31:51 -04:00
2026-07-17 06:50:06 -04:00
2026-08-11 22:23:55 -04:00
2026-06-13 21:07:55 -04:00
2026-08-27 00:12:13 -04:00
2026-06-13 21:07:55 -04:00
2026-08-07 21:03:50 -04:00
2026-08-09 14:23:35 -04:00
2026-08-27 23:10:49 -04:00
2026-08-05 17:20:56 -04:00
2026-08-31 14:03:48 -04:00
2026-08-19 21:55:18 -04:00
2026-08-31 14:03:48 -04:00
2026-08-31 14:03:48 -04:00
2026-08-31 14:03:48 -04:00
2026-08-31 14:03:48 -04:00
2026-07-13 09:02:44 -06:00
2026-08-27 23:10:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-23 21:21:21 -04:00
2026-08-23 21:21:21 -04:00
2026-09-01 15:03:20 -04:00
2026-06-13 23:35:08 -04:00
2026-08-14 10:02:28 -04:00
2026-08-23 18:27:02 -04:00
2026-08-07 15:18:18 -04:00
2026-08-29 14:11:39 -04:00
2026-08-13 23:10:52 -04:00
2026-08-27 15:19:01 -04:00
2026-08-27 15:19:01 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 16:03:48 -04:00
2026-08-14 13:10:49 -04:00
2026-04-25 10:50:54 -04:00
2026-07-01 20:09:01 -04:00
2026-08-08 05:50:49 -05:00
2026-08-27 17:28:39 -04:00
2026-06-12 19:51:54 -04:00
2026-06-11 23:59:56 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-07-30 12:48:06 -04:00
2026-09-02 09:46:21 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 15:50:12 -04:00
2026-08-27 11:37:31 -04:00
2026-08-24 17:56:02 -04:00
2026-07-03 09:17:32 -04:00
2026-08-27 15:50:12 -04:00
2026-08-27 11:37:31 -04:00
2026-08-14 10:02:28 -04:00
2026-08-27 23:27:43 -04:00
2026-08-31 13:44:47 -04:00
2026-06-02 18:35:29 -04:00
2026-08-28 14:44:01 -04:00
2026-08-29 08:53:21 -04:00
2026-08-29 02:51:54 -04:00
2026-08-29 01:14:58 -04:00
2026-08-18 09:23:44 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 20:31:55 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 23:01:30 -04:00
2026-06-10 16:10:07 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-03 19:59:58 -04:00
2026-06-15 18:11:20 -04:00
2026-07-24 22:49:29 -04:00
2026-08-03 12:39:16 -04:00
2026-08-24 17:43:25 -04:00
2026-09-01 21:40:38 -04:00
2026-09-02 06:39:15 -04:00
2026-08-10 12:55:52 -04:00
2026-08-23 21:21:21 -04:00
2026-06-18 23:37:43 -04:00
2026-08-18 22:35:54 -04:00
2026-06-09 22:35:42 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 21:34:29 -04:00
2026-08-12 08:25:14 -04:00
2026-08-28 14:40:02 -04:00
2026-06-26 12:44:09 -04:00
2026-07-03 19:37:14 -04:00
2026-09-02 11:01:54 -04:00
2026-08-27 15:50:12 -04:00
2026-09-02 11:01:54 -04:00
2026-08-14 21:34:29 -04:00
2026-09-02 11:01:54 -04:00
2026-08-14 21:34:29 -04:00
2026-08-28 13:17:04 -04:00
2026-08-07 15:18:18 -04:00
2026-07-03 09:17:32 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-08-10 12:55:52 -04:00
2026-06-14 15:02:54 -04:00
2026-07-21 19:32:51 -04:00
2026-05-01 18:12:20 -04:00
2026-08-09 12:27:04 -04:00
2026-08-16 12:59:08 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 01:10:48 -04:00
2026-08-27 03:31:02 -04:00
2026-07-05 14:04:29 -04:00
2026-08-08 05:50:17 -05:00
2026-08-14 09:27:48 -04:00
2026-08-27 11:37:31 -04:00
2026-08-18 14:11:23 -04:00
2026-08-23 21:21:21 -04:00
2026-08-30 00:43:02 -04:00
2026-08-29 16:13:15 -04:00
2026-08-24 21:13:55 -04:00
2026-08-07 15:18:18 -04:00
2026-09-03 05:43:16 -04:00
2026-08-23 21:21:21 -04:00
2026-08-29 16:13:15 -04:00
2026-09-01 21:40:38 -04:00
2026-08-14 19:02:14 -04:00
2026-06-12 16:03:51 -04:00
2026-07-26 01:06:35 -04:00
2026-07-26 20:49:38 -04:00
2026-09-02 07:33:42 -04:00
2026-08-14 13:10:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-28 14:40:02 -04:00
2026-07-09 19:38:27 -04:00
2026-07-09 19:38:27 -04:00
2026-08-05 17:20:56 -04:00
2026-08-23 21:21:21 -04:00
2026-07-09 19:38:27 -04:00
2026-05-29 11:39:52 -04:00
2026-08-10 10:18:29 -04:00
2026-08-11 22:23:55 -04:00
2026-08-23 21:21:21 -04:00
2026-07-20 08:22:23 -04:00
2026-06-13 23:35:08 -04:00
2026-08-13 16:19:57 -04:00
2026-06-06 11:24:48 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 00:26:07 -04:00
2026-08-03 19:59:58 -04:00
2026-09-02 06:03:17 -04:00
2026-07-29 19:49:53 -04:00
2026-09-02 11:01:54 -04:00
2026-08-14 13:10:49 -04:00
2026-08-18 09:23:44 -04:00
2026-08-23 21:21:21 -04:00
2026-08-10 01:31:15 -04:00
2026-09-02 08:11:23 -04:00
2026-08-18 09:23:44 -04:00
2026-08-10 02:11:57 -04:00
2026-08-27 00:12:13 -04:00
2026-08-15 23:29:30 -04:00
2026-08-14 10:02:28 -04:00
2026-09-01 17:31:01 -04:00
2026-08-28 03:15:39 -04:00
2026-08-07 15:18:18 -04:00
2026-09-01 13:59:11 -04:00
2026-08-07 21:03:50 -04:00
2026-08-14 19:02:14 -04:00
2026-08-18 07:26:28 -04:00
2026-08-08 16:05:17 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 00:12:13 -04:00
2026-08-14 13:10:49 -04:00
2026-09-01 21:40:38 -04:00
2026-08-29 17:00:52 -04:00
2026-08-27 19:55:34 -04:00
2026-08-29 13:51:42 -04:00
2026-09-03 14:14:09 -04:00
2026-09-02 13:45:14 -04:00
2026-08-27 17:57:05 -04:00
2026-08-29 17:00:52 -04:00
2026-07-05 17:15:48 -04:00
2026-08-01 01:34:05 -04:00
2026-07-31 23:03:13 -04:00
2026-07-31 23:03:13 -04:00
2026-09-01 21:39:37 -04:00
2026-08-14 16:03:48 -04:00
2026-07-31 15:44:19 -04:00
2026-07-31 13:17:01 -04:00
2026-07-31 13:17:01 -04:00
2026-08-08 16:05:17 -04:00
2026-06-14 08:25:41 -04:00
2026-06-02 18:35:29 -04:00
2026-08-31 14:03:48 -04:00
2026-07-27 19:55:37 -04:00
2026-07-29 17:06:04 -04:00
2026-07-29 17:06:04 -04:00
2026-08-20 15:07:21 -04:00
2026-08-14 10:02:28 -04:00
2026-09-02 08:12:57 -04:00
2026-06-22 23:43:22 -04:00
2026-08-14 13:10:49 -04:00
2026-06-13 23:35:08 -04:00
2026-08-18 09:23:44 -04:00
2026-07-09 00:21:28 -04:00
2026-08-18 09:23:44 -04:00
2026-08-27 22:21:10 -04:00
2026-08-18 09:23:44 -04:00
2026-08-23 21:21:21 -04:00
2026-07-30 12:48:06 -04:00
2026-08-18 14:11:23 -04:00
2026-08-27 23:10:49 -04:00
2026-08-05 17:20:56 -04:00
2026-07-18 14:42:29 -04:00
2026-07-18 00:39:28 -04:00
2026-07-21 18:38:51 -04:00
2026-07-18 13:42:58 -04:00
2026-07-18 15:46:42 -04:00
2026-07-18 07:55:28 -04:00
2026-07-18 19:01:04 -04:00
2026-08-14 21:34:29 -04:00
2026-08-23 21:21:21 -04:00
2026-09-01 21:40:38 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-09-02 12:19:41 -04:00
2026-08-27 03:31:02 -04:00
2026-07-19 22:44:08 -04:00
2026-07-13 07:03:47 -07:00
2026-07-29 17:06:04 -04:00
2026-08-14 13:10:49 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 15:57:25 -04:00
2026-08-12 00:51:19 -04:00
2026-08-26 17:01:09 -04:00
2026-08-26 19:29:32 -04:00
2026-09-02 08:11:23 -04:00
2026-08-13 16:19:57 -04:00
2026-08-26 01:57:47 -04:00
2026-07-31 21:20:46 -04:00
2026-08-27 23:10:49 -04:00
2026-08-27 23:10:49 -04:00
2026-08-14 16:03:48 -04:00
2026-09-01 21:39:53 -04:00
2026-09-01 21:39:53 -04:00
2026-08-31 14:03:48 -04:00
2026-08-27 23:10:49 -04:00
2026-08-22 20:51:55 -04:00
2026-08-25 19:54:30 -04:00
2026-08-28 09:18:57 -04:00
2026-08-27 17:28:39 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 16:00:14 -04:00
2026-08-16 01:14:26 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:18:18 -04:00
2026-08-31 14:03:48 -04:00
2026-08-08 14:22:10 -04:00
2026-08-09 19:35:34 -04:00
2026-08-27 23:10:49 -04:00
2026-09-02 08:11:23 -04:00
2026-08-28 03:15:39 -04:00
2026-07-26 16:28:56 -04:00
2026-06-24 17:16:13 -04:00
2026-06-24 17:16:13 -04:00
2026-09-02 04:24:52 -04:00
2026-08-27 23:10:49 -04:00
2026-08-01 14:24:05 -04:00
2026-07-03 09:17:32 -04:00
2026-08-24 10:58:04 -04:00
2026-08-14 10:02:28 -04:00
2026-08-23 21:21:21 -04:00
2026-08-28 13:50:37 -04:00
2026-09-02 11:01:54 -04:00
2026-08-27 02:24:03 -04:00
2026-08-19 20:50:12 -04:00
2026-09-02 04:24:52 -04:00
2026-08-28 14:40:02 -04:00
2026-08-09 23:05:41 -04:00
2026-06-28 12:00:43 -04:00
2026-06-28 12:25:02 -04:00
2026-06-14 12:23:07 -04:00
2026-08-05 16:00:52 -04:00
2026-06-02 18:35:29 -04:00
2026-07-08 12:57:49 +03:00
2026-08-24 19:05:11 -04:00
2026-08-18 16:40:17 -04:00
2026-08-05 16:44:07 -04:00
2026-07-20 14:59:30 -04:00
2026-08-11 17:42:41 -04:00
2026-08-01 21:27:33 -04:00
2026-08-26 19:29:32 -04:00
2026-08-25 08:36:33 -04:00
2026-06-13 21:07:55 -04:00
2026-06-20 01:59:03 -04:00
2026-06-12 23:43:07 -04:00
2026-06-02 18:35:29 -04:00
2026-09-02 07:33:42 -04:00
2026-09-02 07:33:42 -04:00
2026-08-07 21:03:50 -04:00
2026-06-02 18:35:29 -04:00
2026-07-29 17:06:04 -04:00
2026-08-09 23:41:44 -04:00
2026-08-27 00:12:13 -04:00
2026-08-26 19:29:32 -04:00
2026-08-26 19:29:32 -04:00
2026-07-27 16:50:12 -04:00
2026-08-27 23:10:49 -04:00
2026-08-27 16:36:34 -04:00
2026-09-02 08:12:57 -04:00
2026-08-03 12:16:56 -04:00
2026-08-03 12:16:56 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-23 21:21:21 -04:00
2026-08-17 15:56:46 -04:00
2026-08-23 21:21:21 -04:00
2026-08-03 19:59:58 -04:00
2026-08-27 23:10:49 -04:00
2026-07-11 23:24:42 -04:00
2026-08-29 17:00:52 -04:00
2026-08-07 21:03:50 -04:00
2026-07-22 00:27:35 -04:00
2026-08-27 02:24:03 -04:00
2026-08-27 02:24:03 -04:00
2026-08-27 12:15:21 -04:00
2026-07-03 08:59:23 -04:00
2026-07-05 14:50:01 -04:00
2026-08-01 21:36:48 -04:00
2026-08-27 23:10:49 -04:00
2026-08-06 02:56:07 -04:00
2026-08-14 13:10:49 -04:00
2026-08-28 01:53:23 -04:00
2026-09-02 08:11:23 -04:00
2026-06-28 14:27:43 -04:00
2026-08-10 11:59:51 -04:00
2026-09-03 09:47:22 -04:00
2026-09-03 01:32:41 -04:00
2026-09-03 09:47:22 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 10:02:28 -04:00
2026-07-13 11:33:32 -06:00
2026-08-20 00:35:01 -04:00
2026-09-01 22:32:54 -04:00
2026-07-03 08:59:23 -04:00
2026-08-27 22:21:10 -04:00
2026-07-03 12:18:25 -04:00
2026-08-07 10:58:34 -04:00
2026-08-14 10:02:28 -04:00
2026-07-02 18:08:42 -04:00
2026-06-25 18:24:39 -04:00
2026-08-27 17:57:05 -04:00
2026-08-28 14:40:02 -04:00
2026-08-05 21:39:53 -04:00
2026-08-23 18:27:02 -04:00
2026-08-27 23:27:43 -04:00
2026-08-23 21:21:21 -04:00
2026-08-05 17:20:56 -04:00
2026-08-18 09:23:44 -04:00
2026-06-28 11:44:36 -04:00
2026-04-04 14:29:03 -04:00
2026-08-10 19:02:34 -04:00
2026-08-27 22:21:10 -04:00
2026-08-23 21:21:21 -04:00
2026-08-10 19:02:34 -04:00
2026-09-01 21:39:12 -04:00
2026-09-01 21:39:12 -04:00
2026-08-10 09:48:26 -04:00
2026-06-02 18:35:29 -04:00
2026-08-29 09:41:00 -04:00
2026-08-14 10:02:28 -04:00
2026-08-27 00:12:13 -04:00
2026-08-10 15:24:39 -04:00
2026-09-02 08:12:57 -04:00
2026-06-24 17:07:23 -04:00
2026-08-14 21:19:35 -04:00
2026-08-28 23:48:42 -04:00
2026-08-14 10:02:28 -04:00
2026-08-16 02:48:24 -04:00
2026-09-02 01:26:37 -04:00
2026-07-08 21:42:11 -04:00
2026-07-03 10:22:11 -04:00
2026-08-28 18:02:44 -04:00
2026-08-27 23:27:43 -04:00
2026-08-27 02:24:03 -04:00
2026-08-10 15:50:55 -04:00
2026-06-02 18:35:29 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 23:10:49 -04:00
2026-08-10 15:50:55 -04:00
2026-08-27 02:24:03 -04:00
2026-08-07 13:41:21 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 23:27:43 -04:00
2026-08-23 21:21:21 -04:00
2026-08-07 13:41:21 -04:00
2026-06-09 12:51:15 -04:00
2026-06-06 11:24:48 -04:00
2026-08-14 13:10:49 -04:00
2026-08-14 23:48:39 -04:00
2026-08-27 02:24:03 -04:00
2026-08-11 17:42:41 -04:00
2026-06-16 00:12:54 -04:00
2026-08-27 04:12:47 -04:00
2026-08-05 18:28:04 -04:00
2026-08-22 18:24:25 -04:00
2026-08-13 02:56:12 -04:00
2026-09-02 11:01:54 -04:00
2026-06-02 18:35:29 -04:00
2026-08-18 14:11:23 -04:00
2026-06-07 20:35:43 -04:00
2026-06-13 16:13:00 -04:00
2026-07-18 12:20:32 -04:00
2026-08-20 15:07:21 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 21:19:49 -04:00
2026-07-28 18:31:40 -04:00
2026-07-11 00:53:34 -04:00
2026-09-01 21:40:38 -04:00
2026-09-01 22:32:54 -04:00
2026-06-06 22:16:20 +02:00
2026-06-07 01:27:12 +02:00
2026-08-23 21:21:21 -04:00
2026-08-14 13:10:49 -04:00
2026-08-24 09:23:01 -04:00
2026-09-01 21:40:38 -04:00
2026-08-14 13:10:49 -04:00
2026-08-29 18:20:24 -04:00
2026-08-10 19:02:34 -04:00
2026-08-23 21:21:21 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 03:31:02 -04:00
2026-08-24 21:33:48 -04:00
2026-08-18 14:11:23 -04:00
2026-08-07 15:45:51 -04:00
2026-08-13 11:31:16 -04:00
2026-09-01 17:31:01 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-06-18 08:50:22 -04:00
2026-08-28 08:06:41 -04:00
2026-08-07 15:45:51 -04:00
2026-08-23 21:21:21 -04:00
2026-08-26 01:57:47 -04:00
2026-08-24 17:56:02 -04:00
2026-08-26 19:29:32 -04:00
2026-08-31 22:31:23 -04:00
2026-08-31 18:08:06 -04:00
2026-06-22 00:59:41 -04:00
2026-06-22 00:59:41 -04:00
2026-08-08 05:50:49 -05:00
2026-08-20 15:07:21 -04:00
2026-08-04 22:41:01 -04:00
2026-08-14 13:10:49 -04:00
2026-06-11 14:11:50 -04:00
2026-06-12 21:24:09 -04:00
2026-07-07 15:11:12 -04:00
2026-08-17 22:28:05 -04:00
2026-06-16 00:12:54 -04:00
2026-09-01 21:16:57 -04:00
2026-09-02 11:01:54 -04:00
2026-08-28 13:10:20 -04:00
2026-08-25 20:38:12 -04:00
2026-06-21 14:37:18 -04:00
2026-09-02 08:04:37 -04:00
2026-08-23 21:21:21 -04:00
2026-07-31 13:17:01 -04:00
2026-09-03 01:32:41 -04:00
2026-08-09 17:08:46 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-09-02 22:38:31 -04:00
2026-07-28 18:02:01 -04:00
2026-08-14 23:01:15 -04:00
2026-07-20 16:52:34 -04:00
2026-06-02 18:35:29 -04:00
2026-08-29 17:00:45 -04:00
2026-06-15 18:11:20 -04:00
2026-08-27 23:10:49 -04:00
2026-08-05 18:22:14 -04:00
2026-06-25 18:24:39 -04:00
2026-08-08 19:06:13 -04:00
2026-08-29 17:00:45 -04:00
2026-08-29 17:00:45 -04:00
2026-06-28 11:27:44 -04:00
2026-06-30 22:21:18 -04:00
2026-06-11 13:36:23 -04:00
2026-07-17 06:48:04 -04:00
2026-08-26 22:43:14 -04:00
2026-09-02 22:38:31 -04:00
2026-07-03 08:59:23 -04:00
2026-08-23 21:21:21 -04:00
2026-07-07 21:22:48 -04:00
2026-07-22 00:27:35 -04:00
2026-08-26 22:43:14 -04:00
2026-06-25 21:49:22 -04:00
2026-08-26 22:43:14 -04:00
2026-08-26 22:43:14 -04:00
2026-08-26 19:29:32 -04:00
2026-07-30 08:52:56 -04:00
2026-05-06 21:51:38 -04:00
2026-05-06 21:51:38 -04:00
2026-06-02 18:35:29 -04:00
2026-08-29 17:00:45 -04:00
2026-08-23 21:21:21 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 02:47:24 -04:00
2026-09-03 05:43:16 -04:00
2026-06-25 18:24:39 -04:00
2026-08-13 20:27:48 -04:00
2026-08-24 11:47:37 -04:00
2026-08-28 08:49:03 -04:00
2026-07-03 09:17:32 -04:00
2026-06-25 18:24:39 -04:00
2026-07-30 15:26:43 -04:00
2026-08-14 10:02:28 -04:00
2026-08-12 20:08:35 -04:00
2026-06-25 15:26:23 -04:00
2026-08-18 16:40:17 -04:00
2026-08-28 14:40:02 -04:00
2026-09-03 14:14:09 -04:00
2026-08-14 10:02:28 -04:00
2026-08-13 16:19:57 -04:00
2026-08-07 15:18:18 -04:00
2026-06-25 16:25:48 -04:00
2026-07-11 23:24:42 -04:00
2026-06-25 21:49:22 -04:00
2026-08-08 16:05:17 -04:00
2026-09-02 22:38:37 -04:00
2026-09-02 22:38:37 -04:00
2026-08-23 21:21:21 -04:00
2026-08-23 21:21:21 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 15:57:25 -04:00
2026-08-08 05:56:22 -05:00
2026-07-30 15:27:52 -04:00
2026-08-14 13:10:49 -04:00
2026-09-02 08:11:23 -04:00
2026-08-29 17:24:40 -04:00
2026-08-11 23:55:11 -04:00
2026-08-28 08:07:24 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-04-06 15:13:23 -04:00
2026-06-25 18:24:39 -04:00
2026-08-29 18:17:24 -04:00
2026-08-22 17:52:23 -04:00
2026-08-26 22:13:57 -04:00
2026-04-16 17:15:29 -04:00
2026-08-14 14:34:36 -04:00
2026-09-01 13:03:33 -04:00
2026-08-27 23:10:49 -04:00
2026-06-15 18:11:20 -04:00
2026-08-25 20:38:12 -04:00
2026-09-01 22:32:54 -04:00
2026-06-22 12:33:13 -04:00
2026-06-12 19:51:54 -04:00
2026-09-02 08:11:23 -04:00
2026-06-13 21:07:55 -04:00
2026-09-02 11:01:54 -04:00
2026-07-28 18:02:17 -04:00
2026-08-14 13:10:49 -04:00
2026-08-27 15:19:01 -04:00
2026-07-26 21:42:50 -04:00
2026-08-31 14:03:48 -04:00
2026-08-15 07:02:33 -04:00
2026-07-13 20:36:14 -04:00
2026-09-01 21:39:37 -04:00
2026-08-29 17:00:45 -04:00
2026-09-02 02:33:54 -04:00
2026-07-03 01:55:48 -04:00
2026-08-07 13:41:21 -04:00
2026-08-14 12:08:21 -04:00
2026-07-11 21:07:38 -04:00
2026-07-22 16:05:41 -04:00
2026-08-27 00:12:13 -04:00
2026-06-02 18:35:29 -04:00
2026-08-31 19:08:11 -04:00
2026-08-27 14:44:26 -04:00
2026-08-28 13:17:04 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-08-19 12:04:24 -04:00
2026-08-27 23:10:49 -04:00
2026-09-01 21:39:37 -04:00
2026-09-01 20:25:27 -04:00
2026-08-14 10:02:28 -04:00
2026-07-26 14:29:02 -04:00
2026-08-27 23:10:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-28 14:40:02 -04:00
2026-08-22 13:17:51 -04:00
2026-08-14 11:04:55 -04:00
2026-08-20 16:15:22 -04:00
2026-08-12 22:54:30 -04:00
2026-08-26 15:03:12 -04:00
2026-09-02 08:12:57 -04:00
2026-06-25 14:37:10 -04:00
2026-08-03 19:59:58 -04:00
2026-09-03 06:59:30 -04:00
2026-08-05 17:20:56 -04:00
2026-08-10 12:56:38 -04:00
2026-06-09 23:50:41 -04:00
2026-06-25 18:24:39 -04:00
2026-06-11 13:36:47 -04:00
2026-09-03 14:14:09 -04:00
2026-09-01 21:40:38 -04:00
2026-08-24 00:07:06 -04:00
2026-08-15 07:02:33 -04:00
2026-08-27 23:10:49 -04:00
2026-08-09 21:38:53 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 23:01:30 -04:00
2026-08-09 23:41:44 -04:00
2026-06-21 10:44:48 -04:00
2026-07-02 11:55:53 -04:00
2026-08-09 23:41:44 -04:00
2026-08-13 16:19:57 -04:00
2026-08-08 05:50:17 -05:00
2026-07-03 01:55:48 -04:00
2026-08-28 11:40:34 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 10:02:28 -04:00
2026-06-15 22:48:48 -04:00
2026-08-07 21:03:50 -04:00
2026-08-27 23:10:49 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 13:10:49 -04:00
2026-08-05 17:20:56 -04:00
2026-08-13 21:22:03 -04:00
2026-08-14 13:10:49 -04:00
2026-08-07 21:03:50 -04:00
2026-07-31 02:30:50 -04:00
2026-08-05 17:20:56 -04:00
2026-07-31 23:03:13 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-08-19 08:59:37 -04:00
2026-06-02 18:35:29 -04:00
2026-08-07 15:18:18 -04:00
2026-09-03 09:47:22 -04:00
2026-09-02 22:38:31 -04:00
2026-09-03 09:47:22 -04:00
2026-09-02 22:38:31 -04:00
2026-09-03 09:47:22 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 16:03:48 -04:00
2026-09-01 21:16:57 -04:00
2026-08-28 12:31:02 -04:00
2026-09-01 19:40:34 -04:00
2026-08-14 13:10:49 -04:00
2026-07-10 15:44:19 -04:00
2026-06-25 21:16:47 -04:00
2026-08-20 15:07:21 -04:00
2026-04-04 14:29:03 -04:00
2026-09-01 22:32:54 -04:00
2026-08-05 01:06:39 -04:00
2026-09-02 20:47:34 -04:00
2026-08-14 10:02:28 -04:00
2026-08-27 23:10:49 -04:00
2026-08-07 10:58:34 -04:00
2026-08-20 13:42:43 -04:00
2026-08-28 08:12:27 -04:00
2026-07-29 07:00:35 -04:00
2026-07-31 08:11:57 -04:00
2026-07-31 08:11:57 -04:00
2026-07-21 23:23:45 -04:00
2026-06-25 18:24:39 -04:00
2026-07-19 14:33:19 -04:00
2026-08-07 15:18:18 -04:00
2026-05-26 22:46:09 -04:00
2026-05-29 10:54:49 -04:00
2026-08-07 21:03:50 -04:00
2026-08-27 17:28:39 -04:00
2026-08-23 21:21:21 -04:00
2026-09-01 21:40:38 -04:00
2026-08-08 05:50:17 -05:00
2026-06-25 23:55:58 -04:00
2026-09-03 14:14:09 -04:00
2026-08-09 21:38:53 -04:00
2026-09-02 15:56:43 -04:00
2026-06-25 18:24:39 -04:00
2026-08-20 14:35:14 -04:00
2026-06-13 23:35:08 -04:00
2026-06-13 23:35:08 -04:00
2026-06-05 17:58:48 -04:00
2026-06-13 23:35:08 -04:00
2026-06-05 17:58:48 -04:00
2026-06-18 07:44:52 -04:00
2026-08-05 17:20:56 -04:00
2026-08-11 22:23:55 -04:00
2026-08-03 19:59:58 -04:00
2026-08-23 22:38:12 -04:00
2026-08-03 12:05:45 -04:00
2026-08-27 23:10:49 -04:00
2026-09-01 22:40:23 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 13:10:49 -04:00
2026-08-12 08:25:14 -04:00
2026-09-01 21:40:20 -04:00
2026-08-19 08:59:37 -04:00
2026-08-14 02:34:29 -04:00
2026-07-30 08:52:56 -04:00
2026-08-27 23:10:49 -04:00
2026-08-31 18:08:06 -04:00
2026-06-26 23:35:04 -04:00
2026-06-26 23:35:04 -04:00
2026-07-29 07:31:32 -04:00
2026-08-10 20:51:40 -04:00
2026-09-01 21:40:20 -04:00
2026-08-07 15:45:51 -04:00
2026-08-09 22:25:42 -04:00
2026-08-30 14:26:02 -04:00
2026-07-29 11:21:49 -04:00
2026-08-14 01:44:54 -04:00
2026-05-06 21:51:38 -04:00
2026-09-02 02:33:54 -04:00
2026-06-30 20:43:25 -04:00
2026-08-07 15:18:18 -04:00
2026-09-02 08:12:57 -04:00
2026-08-28 15:55:55 -04:00
2026-08-05 17:20:56 -04:00
2026-08-30 00:43:02 -04:00
2026-09-03 13:42:14 -04:00
2026-08-08 16:05:17 -04:00
2026-06-21 20:40:13 -04:00
2026-08-17 17:25:53 -04:00
2026-07-17 06:50:06 -04:00
2026-08-27 02:24:03 -04:00
2026-08-09 22:25:42 -04:00
2026-08-17 17:25:53 -04:00
2026-08-01 16:00:14 -04:00
2026-08-14 19:02:14 -04:00
2026-08-27 23:10:49 -04:00
2026-07-22 00:27:35 -04:00
2026-08-14 15:57:25 -04:00
2026-09-01 21:40:38 -04:00
2026-07-03 08:59:23 -04:00
2026-08-25 11:36:59 -04:00
2026-07-06 08:31:51 -04:00
2026-08-25 01:05:53 -04:00
2026-08-27 23:10:49 -04:00
2026-09-02 08:11:23 -04:00
2026-09-02 13:45:14 -04:00
2026-06-02 18:35:29 -04:00
2026-06-24 17:03:01 -04:00
2026-05-26 18:56:00 -04:00
2026-07-02 21:45:35 -04:00
2026-06-25 18:24:39 -04:00
2026-08-10 13:45:20 -04:00
2026-08-27 00:12:13 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-07-13 00:47:15 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 10:02:28 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 13:11:13 -04:00
2026-08-15 17:00:52 -04:00
2026-07-03 09:17:32 -04:00
2026-07-03 08:59:23 -04:00
2026-09-01 21:40:20 -04:00
2026-09-02 08:11:23 -04:00
2026-08-18 09:23:44 -04:00
2026-08-15 00:02:37 -04:00
2026-08-15 00:02:37 -04:00
2026-08-27 22:21:10 -04:00
2026-08-24 19:39:51 -04:00
2026-08-29 14:37:21 -04:00
2026-07-13 15:36:17 -04:00
2026-08-11 22:23:55 -04:00
2026-08-27 23:10:49 -04:00
2026-08-23 21:21:21 -04:00
2026-09-02 22:38:31 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:45:51 -04:00
2026-09-02 08:12:57 -04:00
2026-09-02 20:47:34 -04:00
2026-08-12 20:46:12 -04:00
2026-09-01 13:58:20 -04:00
2026-08-03 19:59:58 -04:00
2026-07-31 10:20:17 -04:00
2026-09-02 20:47:34 -04:00
2026-08-14 13:10:49 -04:00
2026-08-18 09:23:44 -04:00
2026-08-05 16:00:52 -04:00
2026-07-17 18:29:28 -04:00
2026-08-29 17:00:45 -04:00
2026-08-24 17:56:02 -04:00
2026-08-27 00:12:13 -04:00
2026-08-09 22:49:39 -04:00
2026-06-28 11:44:36 -04:00
2026-07-03 01:55:48 -04:00
2026-08-14 10:02:28 -04:00
2026-08-06 23:57:05 -04:00
2026-09-01 15:03:20 -04:00
2026-08-25 20:38:12 -04:00
2026-09-01 21:40:07 -04:00
2026-07-03 01:55:48 -04:00
2026-08-17 11:39:01 -04:00
2026-08-03 19:59:58 -04:00
2026-09-03 05:43:16 -04:00
2026-08-14 10:24:05 -04:00
2026-07-05 18:01:28 -04:00
2026-07-12 01:32:12 -04:00
2026-06-12 13:29:45 -04:00
2026-08-13 16:17:10 -04:00
2026-07-14 14:25:44 -04:00
2026-08-28 13:17:04 -04:00
2026-08-28 13:17:04 -04:00
2026-08-28 13:17:04 -04:00
2026-06-13 21:07:55 -04:00
2026-06-17 08:52:23 -04:00
2026-06-15 18:11:20 -04:00
2026-08-14 11:22:51 -04:00
2026-05-29 11:39:52 -04:00
2026-08-23 21:21:21 -04:00
2026-08-13 21:22:03 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 20:27:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-20 13:36:57 -04:00
2026-08-14 13:10:49 -04:00
2026-07-24 21:36:33 -04:00
2026-08-13 23:08:34 -04:00
2026-08-27 23:10:49 -04:00
2026-08-14 10:02:28 -04:00
2026-07-10 21:31:10 -04:00
2026-06-24 13:19:10 -04:00
2026-08-01 16:00:14 -04:00
2026-08-07 15:45:51 -04:00
2026-08-26 20:17:35 -04:00
2026-08-31 13:44:47 -04:00
2026-07-08 12:57:49 +03:00
2026-08-05 17:20:56 -04:00
2026-07-28 18:31:47 -04:00
2026-08-27 23:10:49 -04:00
2026-08-14 09:27:48 -04:00
2026-08-27 23:10:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-27 00:12:13 -04:00
2026-08-23 21:21:21 -04:00
2026-06-24 17:07:23 -04:00
2026-08-22 18:57:19 -04:00
2026-08-12 00:51:19 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-17 17:25:53 -04:00
2026-05-15 19:32:02 -04:00
2026-08-07 15:45:51 -04:00
2026-06-02 18:35:29 -04:00
2026-08-27 23:10:49 -04:00
2026-08-27 23:10:49 -04:00
2026-08-27 23:10:49 -04:00
2026-08-13 21:22:03 -04:00
2026-08-30 16:51:52 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 00:46:27 -04:00
2026-08-29 07:44:22 -04:00
2026-08-19 15:21:15 -04:00
2026-08-17 15:56:46 -04:00
2026-08-13 21:22:03 -04:00
2026-06-02 19:25:25 -04:00
2026-08-13 21:22:03 -04:00
2026-08-03 19:59:58 -04:00
2026-08-29 07:44:22 -04:00
2026-07-11 23:24:42 -04:00
2026-08-10 11:59:51 -04:00
2026-07-11 23:24:42 -04:00
2026-08-10 11:59:51 -04:00
2026-08-10 11:59:51 -04:00
2026-08-13 21:22:03 -04:00
2026-08-18 09:23:44 -04:00
2026-08-07 15:18:18 -04:00
2026-06-07 12:24:04 -04:00
2026-09-02 00:01:55 -04:00
2026-09-02 22:38:31 -04:00
2026-08-01 12:12:20 -04:00
2026-08-14 10:02:28 -04:00
2026-08-18 09:23:44 -04:00
2026-09-01 22:32:54 -04:00
2026-08-27 23:10:49 -04:00
2026-08-09 21:38:53 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 11:42:22 -04:00
2026-06-11 23:59:56 -04:00
2026-07-05 14:38:24 -04:00
2026-08-14 10:02:28 -04:00
2026-08-15 07:02:33 -04:00
2026-08-26 16:03:11 -04:00
2026-08-18 11:37:44 -04:00
2026-08-21 04:58:33 -04:00
2026-08-07 15:18:18 -04:00
2026-08-27 23:10:49 -04:00
2026-08-07 15:18:18 -04:00
2026-09-01 21:40:38 -04:00
2026-08-23 21:21:21 -04:00
2026-07-13 20:39:58 -04:00
2026-08-14 11:49:01 -04:00