Ben Barclay
f97a4102dd
fix(relay): accept a provision response that issues no secret (lockstep with gateway-gateway#223) ( #104767 )
...
* fix(relay): accept a provision response that issues no secret
Lockstep with gateway-gateway #223 (finding F-004). The connector used to return
the stored per-gateway secret from POST /relay/provision on EVERY replay, to
anyone reaching the endpoint with the right gatewayId. It now returns credential
material only to a caller that proves recorded ownership or possession, and
answers secretIssued:false otherwise with secret/deliveryKey ABSENT. This
gateway treats that as a hard failure, so #223 cannot merge until this ships.
1. A secret-less response is a VALUE, not an error.
_post_provision() raised on any response without a secret. Two legitimate
responses hit that raise once #223 lands:
- every platform after the first in a multi-platform boot. All platforms share
ONE gatewayId, so the first POST mints the secret and the rest are replays of
an unchanged binding. self_provision_relay() catches RuntimeError per
platform and continues, so a Telegram+Discord gateway would front Telegram
and leave Discord unfronted with a warning.
- a re-provision by a caller that legitimately no longer holds the secret.
Refusing to hand it back IS F-004; /relay/rotate is the way back.
Only a malformed body raises now. No secret AND no secretIssued key is still the
old unexpected-response case (a pre-F-004 connector), so that keeps failing
loudly -- which is what makes this deployable in either order.
2. Only a response that CARRIES credentials may write them.
A separate bug that change 1 exposes rather than causes. The guard tested the
same env var it wrote: once a withheld response reaches it, it writes an empty
secret -- which then reads as "still unset" on the next pass, masking itself,
while GATEWAY_RELAY_ID and _DELIVERY_KEY have ALREADY been stamped from a
response carrying no credentials. Guard on the secret being present.
Tests: 5 invariants in tests/gateway/relay/test_provision_secret_optional.py.
Proven red on base -- reverting gateway/relay/__init__.py to origin/main turns 2
of the 5 red, one per fix, then green with the fix restored. My first draft of
the multi-platform test passed on base because it had the FIRST platform issue
the secret, which satisfies the old guard so it never re-enters and the bug
never fires; it proved nothing until the ordering was fixed and a direct
write-rule test added.
tests/gateway/relay: 303 passed, 0 failed. The 6 failures in the wider
tests/gateway run (systemd_notify, wecom_callback, shutdown_forensics,
scale_to_zero) reproduce identically on clean origin/main -- pre-existing.
* fix(relay): fail closed on the F-004 discriminator; a fully-withheld boot is not a provision
Two review findings on the parent commit, each with a red-on-parent test.
1. `_post_provision()` accepted ANY present `secretIssued` value when `secret`
was absent (`true`, `"false"`, `0`, …) and settled them as a successful
provision. The only credential-less shape the connector emits is literal
JSON `false`, so match the discriminator by value: `is not False` raises.
2. `self_provision_relay()` returned True and logged the INFO "self-provisioned"
line when every platform answered `secretIssued:false` — no credential in
hand, WS upgrade about to be refused, nothing in the boot log to say why.
Now: WARNING naming `/relay/rotate` / pin `GATEWAY_RELAY_SECRET`, return False.
tests/gateway/relay/: 308 passed, 0 failed.
2026-09-10 12:10:39 +10:00
..
2026-09-03 13:12:50 -07:00
2026-09-10 12:10:39 +10:00
2026-08-03 17:24:11 +05:30
2026-09-03 02:17:01 +05:30
2026-08-31 11:47:16 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 16:26:11 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 16:26:11 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 17:06:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-02 00:04:13 -07:00
2026-07-26 17:15:38 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-02 00:11:50 -07:00
2026-08-14 11:22:14 -07:00
2026-09-07 22:47:33 +05:30
2026-08-08 01:12:16 +05:30
2026-08-13 00:10:30 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 10:00:44 -07:00
2026-08-07 23:00:28 +05:30
2026-09-07 06:10:54 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-09 10:55:32 -07:00
2026-09-03 19:33:28 -07:00
2026-07-29 13:39:40 -07:00
2026-08-21 21:53:11 +05:30
2026-09-01 02:14:35 -07:00
2026-08-27 20:53:02 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 22:48:24 -07:00
2026-07-29 13:39:40 -07:00
2026-08-23 03:57:47 -07:00
2026-08-19 22:56:14 -07:00
2026-08-31 01:04:11 -07:00
2026-08-31 01:04:11 -07:00
2026-09-03 13:12:50 -07:00
2026-08-31 01:04:11 -07:00
2026-09-09 10:55:32 -07:00
2026-08-29 18:23:07 -07:00
2026-09-09 10:55:32 -07:00
2026-09-07 06:00:05 -07:00
2026-08-27 07:33:36 -07:00
2026-09-02 16:11:50 -07:00
2026-08-20 19:56:01 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 01:58:56 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 14:16:57 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-03 01:58:56 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 22:33:45 +05:30
2026-08-21 22:54:04 +05:30
2026-09-02 13:30:50 -07:00
2026-08-21 22:33:45 +05:30
2026-09-03 14:21:52 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 14:16:57 -07:00
2026-09-10 12:08:51 +10:00
2026-08-31 07:28:30 -07:00
2026-08-31 09:05:41 -07:00
2026-08-31 09:05:41 -07:00
2026-08-31 07:30:44 -07:00
2026-08-31 20:57:30 +05:30
2026-08-31 09:49:30 -07:00
2026-08-09 15:02:00 -07:00
2026-08-02 16:16:36 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 06:10:54 -07:00
2026-07-29 13:39:40 -07:00
2026-08-11 20:37:06 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-22 07:00:47 -07:00
2026-08-20 19:56:01 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 06:10:54 -07:00
2026-07-29 13:10:23 -07:00
2026-09-02 15:32:49 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 11:27:55 +05:30
2026-07-29 18:55:10 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 16:26:11 -07:00
2026-07-29 13:39:40 -07:00
2026-08-31 09:57:13 -07:00
2026-09-07 22:47:33 +05:30
2026-08-27 12:42:38 +05:30
2026-09-02 16:26:11 -07:00
2026-08-07 18:41:57 -06:00
2026-08-12 18:25:33 -07:00
2026-08-31 12:21:01 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 22:47:33 +05:30
2026-08-26 09:59:17 -07:00
2026-08-22 16:45:00 -07:00
2026-08-22 18:05:26 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 19:33:28 -07:00
2026-09-03 13:38:36 -07:00
2026-08-27 20:39:11 +05:30
2026-08-14 20:46:50 -07:00
2026-09-03 14:18:25 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:12:50 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-08 17:51:35 +10:00
2026-07-29 13:39:40 -07:00
2026-07-31 22:32:55 -07:00
2026-09-07 04:46:20 -07:00
2026-09-02 13:30:50 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 13:30:50 -07:00
2026-09-02 00:56:52 -07:00
2026-09-07 06:00:05 -07:00
2026-08-08 12:29:35 -07:00
2026-07-31 22:35:03 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 07:06:29 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-13 00:10:30 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-02 21:14:36 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 21:48:06 -07:00
2026-09-03 02:17:01 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-22 14:55:04 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 14:06:32 -07:00
2026-09-07 22:47:33 +05:30
2026-08-12 20:10:51 -07:00
2026-08-13 00:10:30 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-02 21:14:36 +05:30
2026-07-29 13:39:40 -07:00
2026-08-04 18:23:04 +00:00
2026-09-03 17:45:53 -07:00
2026-09-03 17:00:26 -07:00
2026-08-16 01:55:51 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-31 06:28:25 -07:00
2026-09-02 14:06:32 -07:00
2026-07-29 13:39:40 -07:00
2026-08-13 20:30:12 -07:00
2026-08-27 07:33:36 -07:00
2026-09-09 12:16:56 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-20 15:31:21 +10:00
2026-09-07 22:47:33 +05:30
2026-08-08 12:30:19 -07:00
2026-09-06 21:38:34 +05:30
2026-09-02 05:32:31 -07:00
2026-08-02 10:01:16 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 15:38:08 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 13:12:50 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:10:23 -07:00
2026-09-07 14:11:18 -07:00
2026-09-02 16:11:50 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-31 10:54:58 -07:00
2026-09-02 06:47:30 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 17:24:11 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 06:47:30 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 09:32:38 -07:00
2026-09-07 22:47:33 +05:30
2026-08-15 14:20:27 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-29 20:57:55 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 04:13:02 -07:00
2026-07-24 15:47:12 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 10:55:57 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-08-18 15:04:45 -07:00
2026-07-31 23:18:38 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 13:12:50 -07:00
2026-08-03 00:32:17 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 05:55:36 -07:00
2026-09-02 05:55:36 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-07-29 18:00:18 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-31 01:04:11 -07:00
2026-08-31 01:04:11 -07:00
2026-09-03 13:49:57 -07:00
2026-09-01 10:52:42 -07:00
2026-08-31 01:04:11 -07:00
2026-09-02 13:30:50 -07:00
2026-08-30 20:39:58 -07:00
2026-08-30 22:19:06 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 14:18:25 -07:00
2026-08-31 09:57:13 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-20 15:31:21 +10:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 07:01:23 -07:00
2026-09-03 13:12:50 -07:00
2026-09-07 14:16:57 -07:00
2026-09-03 13:48:14 -07:00
2026-09-07 14:16:57 -07:00
2026-07-31 21:52:11 -07:00
2026-09-03 13:48:14 -07:00
2026-09-07 14:16:57 -07:00
2026-09-03 13:48:14 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-07-29 13:39:40 -07:00
2026-08-13 20:30:12 -07:00
2026-08-31 09:56:54 -07:00
2026-09-09 11:47:55 -07:00
2026-08-16 01:50:44 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-03 13:12:50 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 07:01:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-09 10:43:58 -07:00
2026-08-17 15:12:13 +05:30
2026-07-29 13:10:23 -07:00
2026-08-07 14:34:55 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-02 00:11:50 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-25 13:25:48 +05:30
2026-07-29 13:39:40 -07:00
2026-09-09 09:45:54 -07:00
2026-07-29 19:11:05 -07:00
2026-08-16 19:54:42 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-13 20:30:12 -07:00
2026-08-02 22:44:38 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:46:50 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:10:23 -07:00
2026-09-02 07:01:23 -07:00
2026-08-19 02:00:16 -07:00
2026-08-10 22:48:24 -07:00
2026-08-29 07:25:17 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 13:29:55 -07:00
2026-08-10 22:48:24 -07:00
2026-09-02 06:08:09 -07:00
2026-08-31 07:28:39 -07:00
2026-09-02 06:48:31 -07:00
2026-09-09 12:20:21 +05:30
2026-09-02 06:19:03 -07:00
2026-09-02 06:59:11 -07:00
2026-09-02 06:48:31 -07:00
2026-09-07 22:47:33 +05:30
2026-08-23 03:57:47 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-08 14:18:26 +05:30
2026-08-20 15:31:21 +10:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:34:28 +05:30
2026-09-02 07:01:23 -07:00
2026-09-03 13:46:50 -07:00
2026-09-07 06:15:43 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 11:50:05 +05:30
2026-08-24 03:20:46 -07:00
2026-09-09 09:21:46 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-09 14:08:51 -07:00
2026-08-27 07:33:36 -07:00
2026-09-02 06:36:16 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-24 03:20:06 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 13:31:44 -07:00
2026-08-14 21:41:26 -07:00
2026-09-03 13:12:50 -07:00
2026-08-14 21:56:33 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-14 21:38:54 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 06:59:11 -07:00
2026-09-08 17:51:35 +10:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 10:01:16 -07:00
2026-08-23 20:00:30 -07:00
2026-09-08 02:26:31 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-09 13:06:23 +05:30
2026-09-09 12:20:51 +05:30
2026-09-02 06:48:31 -07:00
2026-08-23 18:25:12 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-08-08 11:13:27 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 14:16:57 -07:00
2026-08-11 09:56:13 +10:00
2026-08-11 09:56:13 +10:00
2026-09-07 14:16:57 -07:00
2026-08-20 15:31:21 +10:00
2026-08-11 09:56:13 +10:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 17:00:26 -07:00
2026-09-05 16:09:46 +05:30
2026-08-24 15:37:22 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-14 11:22:05 -07:00
2026-09-02 16:11:50 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-08 04:38:47 -07:00
2026-08-31 14:54:18 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 00:17:54 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-02 18:21:58 -07:00
2026-08-03 17:16:57 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 14:36:11 +10:00
2026-09-04 15:41:27 -03:00
2026-09-10 12:08:51 +10:00
2026-07-29 13:39:40 -07:00
2026-09-03 14:18:25 -07:00
2026-08-21 16:25:24 +05:30
2026-09-06 20:49:30 +05:30
2026-09-07 22:47:33 +05:30
2026-08-18 01:38:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-03 13:12:50 -07:00
2026-09-02 16:57:21 +05:30
2026-08-31 11:23:48 -07:00
2026-09-03 13:46:50 -07:00
2026-08-31 14:02:55 -07:00
2026-08-31 12:32:33 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 00:25:20 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-03 14:00:59 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 06:10:54 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-30 05:16:10 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 06:10:54 -07:00
2026-09-07 22:47:33 +05:30
2026-08-31 12:21:01 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-03 13:12:50 -07:00
2026-09-07 22:47:33 +05:30
2026-08-13 10:46:13 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-14 21:47:16 -07:00
2026-09-02 20:43:06 +05:30
2026-09-03 13:46:50 -07:00
2026-09-10 12:08:51 +10:00
2026-07-29 13:39:40 -07:00
2026-09-02 00:03:36 -07:00
2026-09-09 11:05:15 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-01 10:51:37 -07:00
2026-09-02 14:06:48 -07:00
2026-08-15 03:05:23 +05:30
2026-09-02 05:34:11 -07:00
2026-09-07 06:10:54 -07:00
2026-08-27 15:33:32 +10:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-08 05:58:43 -07:00
2026-08-26 15:54:53 -07:00
2026-09-07 22:47:33 +05:30
2026-08-27 15:33:32 +10:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-27 15:33:32 +10:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-20 15:31:21 +10:00
2026-08-26 15:54:53 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 06:36:16 -07:00
2026-09-02 06:36:16 -07:00
2026-07-29 13:10:23 -07:00
2026-08-20 15:31:21 +10:00
2026-08-04 13:07:44 +05:30
2026-08-04 13:07:44 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 16:44:31 -07:00
2026-09-01 10:51:37 -07:00
2026-08-16 20:32:09 -07:00
2026-07-29 13:39:40 -07:00
2026-08-14 21:57:41 -07:00
2026-09-09 11:14:36 -07:00
2026-08-07 13:28:43 +05:30
2026-09-07 06:10:54 -07:00
2026-09-03 13:46:50 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-09 09:55:52 -07:00
2026-08-15 01:04:19 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-20 15:31:21 +10:00
2026-08-20 15:31:21 +10:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-27 07:33:36 -07:00
2026-08-27 07:33:36 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 16:24:25 -07:00
2026-08-20 15:31:21 +10:00
2026-09-09 10:59:52 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:12:50 -07:00
2026-09-07 22:47:33 +05:30
2026-08-11 09:56:13 +10:00
2026-09-10 12:08:51 +10:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:04:17 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 06:08:09 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-08-31 12:28:49 -07:00
2026-08-31 12:28:49 -07:00
2026-08-21 16:25:24 +05:30
2026-09-01 08:24:25 -07:00
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-08-17 16:07:05 +05:30
2026-09-01 12:08:34 -07:00
2026-08-21 16:25:24 +05:30
2026-09-03 17:00:26 -07:00
2026-09-09 10:37:37 -07:00
2026-08-24 17:04:55 +05:30
2026-08-29 20:57:55 -07:00
2026-08-29 20:57:55 -07:00
2026-07-29 17:22:52 -07:00
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-08-08 12:30:19 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-08-31 12:28:49 -07:00
2026-08-31 12:28:49 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-08-17 16:07:05 +05:30
2026-08-23 19:26:41 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 01:29:35 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-21 16:25:24 +05:30
2026-09-03 03:47:38 +05:30
2026-08-25 12:07:36 +05:30
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-08-29 20:57:55 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 05:59:24 -07:00
2026-09-02 05:59:24 -07:00
2026-08-21 16:25:24 +05:30
2026-09-02 14:06:32 -07:00
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 15:41:11 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 00:53:06 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-08-23 17:45:47 -05:00
2026-08-14 16:22:47 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-02 05:33:13 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-22 17:30:35 +02:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 16:25:35 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-08 13:28:19 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-08-29 05:57:13 -07:00
2026-09-01 10:11:07 -07:00
2026-09-03 13:46:50 -07:00
2026-07-29 13:39:40 -07:00
2026-09-06 05:35:48 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-28 07:50:51 -07:00
2026-08-13 01:51:19 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-10 12:08:51 +10:00
2026-08-27 07:33:36 -07:00
2026-09-03 13:04:17 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:04:17 -07:00
2026-09-07 22:47:33 +05:30
2026-08-24 03:20:06 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 11:50:05 +05:30
2026-07-29 13:10:23 -07:00
2026-08-31 10:41:54 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-13 01:51:13 -07:00
2026-08-13 01:51:13 -07:00
2026-09-07 22:47:33 +05:30
2026-07-31 22:35:20 -07:00
2026-07-29 13:39:40 -07:00
2026-08-24 03:20:06 -07:00