thinqos 3.3.0__tar.gz → 3.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {thinqos-3.3.0 → thinqos-3.3.2}/CHANGELOG.md +14 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/PKG-INFO +5 -4
- {thinqos-3.3.0 → thinqos-3.3.2}/README.md +4 -3
- {thinqos-3.3.0 → thinqos-3.3.2}/pyproject.toml +1 -1
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/cli.py +12 -10
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_7686_self_repair.py +6 -2
- {thinqos-3.3.0 → thinqos-3.3.2}/.gitignore +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/scripts/sync_cognitive_contract.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/__init__.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/__main__.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/accountscope.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/__init__.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/claude_code.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/cline.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/cline_tasks.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/codex.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/grok_build.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/vscode_chat_store.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/adapters/vscode_copilot.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/attribution.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/capture_history_policy.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/client.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/cline_sweep.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/connections.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/denylist.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/discovery.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/filelock.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/hook.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/importer.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/incremental.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/install_marker.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/installs.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/logsetup.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/mcp_transport.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/primecache.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/process.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/questionrecall.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/recovery.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/scheduler.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/secretstore.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/selfupdate.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/server_revision.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/shim.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/state.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/taskstate.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/tls.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/tool_turns.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/vscode_chat_sweep.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/src/thinqos_capture/writeredirect.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/conftest.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/fixtures/claude_code_session.jsonl +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/fixtures/codex_session.jsonl +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/fixtures/grok_build_summary.json +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/fixtures/grok_build_updates.jsonl +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/fixtures/tos_6776_recovery_failures.json +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_attribution.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_capture_completeness.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_capture_incremental.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_claude_code_adapter.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cli_drain.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cli_install_hook.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cli_list_forget.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cli_run.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_client_limits.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_client_version_header.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cline_adapter.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cline_mcp_registration.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cline_sweep.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_cline_tasks.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_codex_adapter.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_codex_capture_staleness.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_codex_hook_runtime_contract.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_codex_hook_trust.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_codex_plugin_setup.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_codex_rollout_memory.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_doctor.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_doctor_queue.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_drain_partition_split.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_drain_poison.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_drain_timeout.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_env_key_remnant.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_grok_build_adapter.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_hook.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_hook_autodrain.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_hook_prime.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_hook_secret_resolution.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_hook_self_update.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_hook_stdin.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_hook_task_state.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_importer.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_incremental.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_install.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_installer_hardening.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_liveness.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_logsetup.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_mcp_transport.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_no_retired_tool_names.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_plugin_autoupdate.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_plugin_mode.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_prime_cache.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_process.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_queue_policy.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_scheduler.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_secretstore.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_selfupdate.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_shim.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_state.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_state_migration.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_taskstate.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tls_cloud_proxy.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_token_economy.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tool_turns.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_2840_completion.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_2840_repair_round1.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_2840_repair_round2.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_4483_account_scope.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_4485_capture_history_policy.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_4485_doctor_update_state.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_4485_prime_refresh_coalescing.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_4486_question_recall.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_4486_refresh_retry.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_4487_install_marker.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_5043_connections.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_5043_discovery.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_5043_install_precedence.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_5100_key_prompt_links.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_5102_selfheal.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_5226_installs_registry.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_5369_mcp_revision.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_6776_recovery.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_6807_plugin_install.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_tos_7410_prime_refusals.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_verify.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_vscode_chat_store.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_vscode_copilot_adapter.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/tests/test_writeredirect.py +0 -0
- {thinqos-3.3.0 → thinqos-3.3.2}/uv.lock +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.3.2](https://github.com/AI4Outcomes/thinqos/compare/tools/thinqos-v3.3.1...tools/thinqos-v3.3.2) (2026-10-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* release batch 7cf0e98c (TOS-7758) ([#8353](https://github.com/AI4Outcomes/thinqos/issues/8353)) ([e873088](https://github.com/AI4Outcomes/thinqos/commit/e873088f82cd1906f48ec80483d9bf181ca943e0))
|
|
9
|
+
|
|
10
|
+
## [3.3.1](https://github.com/AI4Outcomes/thinqos/compare/tools/thinqos-v3.3.0...tools/thinqos-v3.3.1) (2026-10-09)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* own Mind introspection and CLI self-repair (TOS-7520, TOS-7686) ([#8334](https://github.com/AI4Outcomes/thinqos/issues/8334)) ([d32842f](https://github.com/AI4Outcomes/thinqos/commit/d32842fe3ca83371f351ccb97b56c0a46e382b70))
|
|
16
|
+
|
|
3
17
|
## [3.3.0](https://github.com/AI4Outcomes/thinqos/compare/tools/thinqos-v3.2.1...tools/thinqos-v3.3.0) (2026-10-08)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: thinqos
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.2
|
|
4
4
|
Summary: Connect Claude Code, Codex, Grok Build, VS Code, and Cline to your thinqOS Mind.
|
|
5
5
|
Project-URL: Homepage, https://thinqos.com
|
|
6
6
|
Project-URL: Documentation, https://thinqos.com/mcp-memory-server
|
|
@@ -162,9 +162,10 @@ target; its app does not use this CLI registration path.
|
|
|
162
162
|
`remember`), replay queue, server captures, installed binary, and
|
|
163
163
|
auto-update status.
|
|
164
164
|
|
|
165
|
-
- **Mint a key** at `<your-thinqos-install>/api-keys`
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
- **Mint a key** at `<your-thinqos-install>/api-keys` - `https://app.thinqos.com/api-keys`
|
|
166
|
+
for the default hosted app, or your organization's own install if it uses a
|
|
167
|
+
different one. Sign in if asked and the key page opens with the key-name
|
|
168
|
+
field ready: type a name, press *Create Key*, copy the `tq_...`. Already
|
|
168
169
|
connected the thinqOS MCP server? Omit `--pat` and the key is read from that
|
|
169
170
|
registration.
|
|
170
171
|
- **Not on the default hosted app?** Pass `--base-url <your-install-url>` (or
|
|
@@ -142,9 +142,10 @@ target; its app does not use this CLI registration path.
|
|
|
142
142
|
`remember`), replay queue, server captures, installed binary, and
|
|
143
143
|
auto-update status.
|
|
144
144
|
|
|
145
|
-
- **Mint a key** at `<your-thinqos-install>/api-keys`
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
- **Mint a key** at `<your-thinqos-install>/api-keys` - `https://app.thinqos.com/api-keys`
|
|
146
|
+
for the default hosted app, or your organization's own install if it uses a
|
|
147
|
+
different one. Sign in if asked and the key page opens with the key-name
|
|
148
|
+
field ready: type a name, press *Create Key*, copy the `tq_...`. Already
|
|
148
149
|
connected the thinqOS MCP server? Omit `--pat` and the key is read from that
|
|
149
150
|
registration.
|
|
150
151
|
- **Not on the default hosted app?** Pass `--base-url <your-install-url>` (or
|
|
@@ -5533,11 +5533,12 @@ def _registration_missing(client: str) -> bool:
|
|
|
5533
5533
|
|
|
5534
5534
|
_REGISTRATION_RESTORES_NAME = "registration_restores.json"
|
|
5535
5535
|
|
|
5536
|
-
#: A
|
|
5537
|
-
#:
|
|
5538
|
-
#:
|
|
5539
|
-
#:
|
|
5540
|
-
|
|
5536
|
+
#: A throttle, not a verdict. Deliberate removal is already covered by the
|
|
5537
|
+
#: gates (``thinqos uninstall`` and ``clients disable`` take the client out of
|
|
5538
|
+
#: the managed set), so a registration that goes missing again is put back. The
|
|
5539
|
+
#: hour only stops a writer that keeps undoing the restore from being rewritten
|
|
5540
|
+
#: on every ten-minute sweep. Dan's call, 2026-10-09: a week was far too long.
|
|
5541
|
+
_REGISTRATION_RESTORE_COOLDOWN_S: float = 60 * 60
|
|
5541
5542
|
|
|
5542
5543
|
|
|
5543
5544
|
def _load_registration_restores(state_root: Path) -> dict[str, float] | None:
|
|
@@ -5600,10 +5601,11 @@ def reconcile_client_registrations(state_root: Path, *, now: float | None = None
|
|
|
5600
5601
|
whose settings file this tool does not create, the file itself), AND
|
|
5601
5602
|
* the client's config provably has no ``thinqos`` key
|
|
5602
5603
|
(``_registration_missing``), AND
|
|
5603
|
-
* this tool has not already restored that client
|
|
5604
|
-
|
|
5605
|
-
of a restore is written BEFORE the restore, so a machine that
|
|
5606
|
-
keep that record restores nothing rather than restoring every
|
|
5604
|
+
* this tool has not already restored that client in the last hour, so a
|
|
5605
|
+
writer that keeps undoing the restore is not rewritten every sweep. The
|
|
5606
|
+
record of a restore is written BEFORE the restore, so a machine that
|
|
5607
|
+
cannot keep that record restores nothing rather than restoring every
|
|
5608
|
+
sweep.
|
|
5607
5609
|
|
|
5608
5610
|
Returns ``{client: outcome}`` for the clients it restored or failed on - an
|
|
5609
5611
|
empty dict on a healthy machine, which writes nothing. Never raises: a
|
|
@@ -5641,7 +5643,7 @@ def reconcile_client_registrations(state_root: Path, *, now: float | None = None
|
|
|
5641
5643
|
if not _registration_missing(client):
|
|
5642
5644
|
continue
|
|
5643
5645
|
if moment - restores.get(client, 0.0) < _REGISTRATION_RESTORE_COOLDOWN_S:
|
|
5644
|
-
logger.info("clients.
|
|
5646
|
+
logger.info("clients.reconcile_throttled client=%s", client)
|
|
5645
5647
|
continue
|
|
5646
5648
|
if not _save_registration_restores(state_root, {**restores, client: moment}):
|
|
5647
5649
|
continue
|
|
@@ -311,8 +311,12 @@ def test_claude_without_the_plugin_gets_its_registration_back(
|
|
|
311
311
|
assert "thinqos" in json.loads(claude_json.read_text(encoding="utf-8"))["mcpServers"]
|
|
312
312
|
|
|
313
313
|
|
|
314
|
-
def
|
|
315
|
-
|
|
314
|
+
def test_a_registration_removed_again_is_restored_after_the_hourly_throttle(
|
|
315
|
+
state_root: Path, tmp_path: Path
|
|
316
|
+
) -> None:
|
|
317
|
+
"""Restored once; it vanishes again; the next sweep inside the hour waits,
|
|
318
|
+
the first one after it puts it back. Not a week."""
|
|
319
|
+
assert cli._REGISTRATION_RESTORE_COOLDOWN_S == 3600
|
|
316
320
|
_connect(state_root, clients={"vscode": True}, managed={"vscode"})
|
|
317
321
|
mcp = _vscode_mcp(tmp_path)
|
|
318
322
|
mcp.parent.mkdir(parents=True)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|