azimut 0.2.2__tar.gz → 0.2.3__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.
- {azimut-0.2.2 → azimut-0.2.3}/.github/workflows/release.yml +30 -0
- {azimut-0.2.2 → azimut-0.2.3}/PKG-INFO +4 -2
- {azimut-0.2.2 → azimut-0.2.3}/README.md +3 -1
- {azimut-0.2.2 → azimut-0.2.3}/docs/RELEASE_NOTES.md +2 -1
- {azimut-0.2.2 → azimut-0.2.3}/extension/manifest.json +1 -1
- {azimut-0.2.2 → azimut-0.2.3}/pyproject.toml +8 -1
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/__init__.py +6 -1
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_release_gate.py +13 -2
- {azimut-0.2.2 → azimut-0.2.3}/uv.lock +1 -1
- {azimut-0.2.2 → azimut-0.2.3}/.github/workflows/ci.yml +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/.gitignore +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/LICENSE +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/bench/case_baseline.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/docs/IMAGERY_PROVIDERS.md +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/docs/ONTOLOGY.md +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/docs/SPEC.md +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/docs/STORAGE_AND_PERFORMANCE.md +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/docs/UI.md +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/README.md +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/background.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/bridge.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/icons/icon128.png +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/icons/icon16.png +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/icons/icon32.png +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/icons/icon48.png +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/options.html +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/options.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/overlay.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/popup.html +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/popup.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/extension/ui.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/e2e/app.fixture.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/e2e/proof-canvas.spec.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/e2e/satellite-canvas.spec.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/index.html +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/jsconfig.json +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/package-lock.json +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/package.json +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/playwright.config.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/public/favicon.svg +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/App.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/app.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/assets/logo-source.svg +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/CaseSidebar.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/CaseSwitcher.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/ConfirmDialog.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/EntityDetails.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/FolderSelect.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/FolderSelect.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/Icon.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/Logo.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/Modal.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/PostTemplateEditor.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/ProofPreview.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/ProofTemplateEditor.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/Toasts.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/Toasts.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/UpdateModal.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/components/Wordmark.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/api.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/appUpdate.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/appUpdate.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/bidi.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/bidi.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/bookmarks.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/bookmarks.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/captureSize.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/captureSize.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/catalog.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/catalog.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/chain.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/chain.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/composer.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/composer.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/coords.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/coords.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/events.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/events.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/extBridge.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/extBridge.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/extension.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/filing.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/filing.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/folderTree.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/folderTree.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/frameRotate.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/frameRotate.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/fullscreen.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/fullscreen.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/gmaps.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/gmaps.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/gridSearch.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/gridSearch.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/gridSelect.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/gridSelect.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/history.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/history.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/inspect.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/inspect.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/maplinks.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/maplinks.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/markdown.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/markdown.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/measure.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/measure.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/mediaFilter.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/mediaFilter.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/navigate.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/navigate.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebook.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebook.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebookContent.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebookContent.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebookPdf.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebookPdf.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebookTabs.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notebookTabs.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notes.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/notes.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/post.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/post.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/refViewers.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/refViewers.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/reverseSearch.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/reverseSearch.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/satRotate.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/satRotate.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/screenCrop.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/screenCrop.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/sentinel.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/sentinel.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/sidebar.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/sidebar.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/state.svelte.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/state.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/theme.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/theme.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/toast.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/toolLoader.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/toolLoader.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/usage.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/usage.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/workspaces.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/lib/workspaces.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/main.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/Coordinates.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/Files.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/Inspector.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/MediaLibrary.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/MediaLibrary.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/Notebook.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/Notebook.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/PostComposer.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/PostComposer.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/ProofComposer.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/ProofComposer.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/RefViewer.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/ReverseSearch.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/Satellite.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/Settings.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/AdjustSliders.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/CollageCanvas.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/CollageMenu.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/CollagePreview.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/CropBox.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/CropControls.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/FrameMenu.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/OrientationControls.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/PieceCropModal.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/SaveGallery.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/SaveMenu.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/SelectionMenu.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/VideoPlayer.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/inspect/VideoPlayer.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/proof/NewProofDialog.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/proof/ProofCanvas.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/proof/ProofLayersPanel.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/proof/ProofToolbar.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/proof/ProofToolbar.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/proof/canvasLifecycle.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/satellite/CaptureOptions.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/satellite/GridSearchPanel.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/satellite/MapToolCluster.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/satellite/SentinelPicker.svelte +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/src/tools/satellite/SentinelPicker.test.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/frontend/vite.config.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/packaging/azimut.ico +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/packaging/azimut.spec +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/packaging/entry.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/scripts/relaunch.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/scripts/smoke_binary.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/__main__.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/__init__.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/cases.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/drafts.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/events.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/files.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/ingest.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/inspect.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/limits.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/media.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/proofs.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/satellite.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/settings.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/api/templates.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/cli.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/config.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/__init__.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/coords.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/ffmpeg.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/geo.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/google_tiles.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/inspect.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/links.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/mapsites.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/media.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/satellite.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/scrapers.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/sentinel.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/stitch.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/thumbnails.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/tilecache.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/tiles.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/engine/updates.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/jobs.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/launcher.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/repository.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/server.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/sqlite_backend.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Coordinates-CkOCsDYx.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Coordinates-Zk6hc7rX.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Files-B_kDrMmA.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Files-DoSPZhF-.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Icon-BgA9a5tG.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Inspector-3v5iq-jW.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Inspector-CbDQE9mL.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/MediaLibrary-DxDbISiM.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/MediaLibrary-aa18XUg0.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Modal-CuJYoHU9.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Modal-DHCHN-zW.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Notebook-6bRvw0Ld.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Notebook-De7CIAen.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/PostComposer-BoRw8SZk.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/PostComposer-C1P4_rp3.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/ProofComposer-C5mWoc8h.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/ProofComposer-hy7ZrvOu.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/ReverseSearch-BP3C1CxL.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/ReverseSearch-DqIrU_Pa.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Satellite-BhhCtezr.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Satellite-DGCcPv9w.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Settings-CnfrsP9_.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/Settings-Nqf90D6_.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/bidi-wWDUT82v.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/composer-C17apZ5p.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/frameRotate-F1nGHpcH.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/gmaps-D52n5msu.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/history-D8hJuA9t.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/index-B8MBkQLT.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/index-BaaWj0p3.css +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/leaflet-rotate-hAaDqhcJ.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/lib-Ce199MB2.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/maplinks-LmyLzEQg.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/markdown-Db8boR5D.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-400-normal-BnNz-3Mf.woff +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-400-normal-DcSlRu53.woff2 +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-600-normal-DNQhW0y0.woff +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-600-normal-DW9ldEDP.woff2 +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-700-normal-b_KP-pae.woff +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-700-normal-l0hKEjh4.woff2 +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-ext-400-normal-B1qoybeA.woff2 +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-ext-400-normal-ngSbnDVv.woff +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-ext-600-normal-B2S5WIA4.woff2 +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-ext-600-normal-DywhiVWf.woff +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-ext-700-normal-BSlCClLu.woff2 +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/oxanium-latin-ext-700-normal-CPlnVieJ.woff +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/post-COJahl2R.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/assets/rolldown-runtime-Bh1tDfsg.js +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/favicon.svg +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/static/index.html +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/src/azimut/workspace.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/bigcase.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/conftest.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/graph_read.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/legacy_case.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_bigcase.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_binary_smoke.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_cases_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_config.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_coords.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_drafts_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_events_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_ffmpeg.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_focus.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_geo_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_geo_formats.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_google_tiles.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_hardening.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_ingest_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_inspect_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_jobs.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_launcher.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_links_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_mapsites.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_media_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_migrations.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_proofs_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_relaunch.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_repository.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_satellite_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_scrapers.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_sentinel.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_server_guard.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_settings_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_settings_backup.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_sqlite_backend.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_stitch.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_templates_api.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_thumbnails.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_tiles.py +0 -0
- {azimut-0.2.2 → azimut-0.2.3}/tests/test_updates.py +0 -0
|
@@ -11,8 +11,37 @@ permissions:
|
|
|
11
11
|
id-token: write # PyPI Trusted Publishing (OIDC) — no token secret needed
|
|
12
12
|
|
|
13
13
|
jobs:
|
|
14
|
+
guard:
|
|
15
|
+
name: Version + release gate
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
- uses: astral-sh/setup-uv@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.12"
|
|
22
|
+
# Install the app (editable) + dev tools, like the CI backend job, so the
|
|
23
|
+
# gate can import azimut and run its tests. No frontend build: these tests
|
|
24
|
+
# don't touch the built UI, and the app tolerates a missing static dir.
|
|
25
|
+
- run: uv sync --frozen --extra dev
|
|
26
|
+
# The pushed tag must equal the version baked into the code. When it
|
|
27
|
+
# didn't (0.2.2 shipped a stale __version__), the binary's self-update
|
|
28
|
+
# check nagged every user about the very release they were running. This
|
|
29
|
+
# is the check the release used to lack — it runs before anything builds.
|
|
30
|
+
- name: Tag matches the code version
|
|
31
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
32
|
+
run: |
|
|
33
|
+
tag="${GITHUB_REF_NAME#v}"
|
|
34
|
+
ver="$(uv run --no-sync python -c 'import azimut; print(azimut.__version__)')"
|
|
35
|
+
echo "tag=$tag __version__=$ver"
|
|
36
|
+
[ "$tag" = "$ver" ] || { echo "::error::tag v$tag != __version__ $ver — bump src/azimut/__init__.py"; exit 1; }
|
|
37
|
+
# The version-parity gate the release workflow used to skip: pyproject's
|
|
38
|
+
# single-sourced version and the extension manifest must line up.
|
|
39
|
+
- name: Release gate + version parity
|
|
40
|
+
run: uv run --no-sync pytest tests/test_release_gate.py tests/test_updates.py -q
|
|
41
|
+
|
|
14
42
|
dist:
|
|
15
43
|
name: Build wheel + sdist
|
|
44
|
+
needs: guard
|
|
16
45
|
runs-on: ubuntu-latest
|
|
17
46
|
steps:
|
|
18
47
|
- uses: actions/checkout@v4
|
|
@@ -45,6 +74,7 @@ jobs:
|
|
|
45
74
|
|
|
46
75
|
binaries:
|
|
47
76
|
name: Binary (${{ matrix.os }})
|
|
77
|
+
needs: guard
|
|
48
78
|
runs-on: ${{ matrix.os }}
|
|
49
79
|
strategy:
|
|
50
80
|
fail-fast: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: azimut
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: A local OSINT workspace for media, geolocation proofs and case management.
|
|
5
5
|
Project-URL: Homepage, https://github.com/OsintMeThat/azimut
|
|
6
6
|
Author: OsintMeThat
|
|
@@ -49,6 +49,8 @@ to fix a point on the map.*
|
|
|
49
49
|
|
|
50
50
|
## v0.2.2: Login-walled downloads
|
|
51
51
|
|
|
52
|
+
> v0.2.3 is a bug-fix release: it corrects the version the v0.2.2 binary reported, which made its startup update check falsely announce an update to everyone already on v0.2.2. No feature changes.
|
|
53
|
+
|
|
52
54
|
| Tool | What it does |
|
|
53
55
|
|------|--------------|
|
|
54
56
|
| **Media** | Import local files or download by URL (X, Telegram, TikTok, YouTube, Instagram and more via yt-dlp, with a gallery-dl fallback for image-only posts). Public media is fetched cookie-less; a login-walled post prompts once for a browser session or an exported `cookies.txt`. Each item gets a clean local file, metadata and a SHA-256. Multi-photo posts open a picker. |
|
|
@@ -235,7 +237,7 @@ wheel + Windows/Linux/macOS binaries, attaches them to a GitHub release, and
|
|
|
235
237
|
publishes to PyPI. **Don't publish by hand.**
|
|
236
238
|
|
|
237
239
|
```bash
|
|
238
|
-
git tag v0.2.
|
|
240
|
+
git tag v0.2.3 && git push origin v0.2.3
|
|
239
241
|
```
|
|
240
242
|
|
|
241
243
|
One-time setup: register the repo as a
|
|
@@ -11,6 +11,8 @@ to fix a point on the map.*
|
|
|
11
11
|
|
|
12
12
|
## v0.2.2: Login-walled downloads
|
|
13
13
|
|
|
14
|
+
> v0.2.3 is a bug-fix release: it corrects the version the v0.2.2 binary reported, which made its startup update check falsely announce an update to everyone already on v0.2.2. No feature changes.
|
|
15
|
+
|
|
14
16
|
| Tool | What it does |
|
|
15
17
|
|------|--------------|
|
|
16
18
|
| **Media** | Import local files or download by URL (X, Telegram, TikTok, YouTube, Instagram and more via yt-dlp, with a gallery-dl fallback for image-only posts). Public media is fetched cookie-less; a login-walled post prompts once for a browser session or an exported `cookies.txt`. Each item gets a clean local file, metadata and a SHA-256. Multi-photo posts open a picker. |
|
|
@@ -197,7 +199,7 @@ wheel + Windows/Linux/macOS binaries, attaches them to a GitHub release, and
|
|
|
197
199
|
publishes to PyPI. **Don't publish by hand.**
|
|
198
200
|
|
|
199
201
|
```bash
|
|
200
|
-
git tag v0.2.
|
|
202
|
+
git tag v0.2.3 && git push origin v0.2.3
|
|
201
203
|
```
|
|
202
204
|
|
|
203
205
|
One-time setup: register the repo as a
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Azimut v0.2.
|
|
1
|
+
# Azimut v0.2.3
|
|
2
2
|
|
|
3
3
|
## OSINT toolkit at a glance
|
|
4
4
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## What changed
|
|
11
11
|
|
|
12
|
+
- **Bug fix (from v0.2.2).** The v0.2.2 binary reported itself as an older version, so its startup update check wrongly announced that v0.2.2 was available to anyone already running it. Fixed here, with a release-time guard so the version can't drift again. Upgrade to stop the false prompt.
|
|
12
13
|
- **Gated downloads.** Downloads now get past a login wall. Public media is still fetched without any session; only when a post turns out to need an account does Media offer to borrow a signed-in browser's cookies or an exported `cookies.txt`. The session is used for that download, kept private in your workspace, and never leaves the machine. Chromium on Windows can't be read, so Azimut points you to the file route instead.
|
|
13
14
|
- **Responsive Geo Proof toolbar.** The proof toolbar reflows to fit narrow screens instead of overflowing, and remembers the colour and stroke width you last drew with.
|
|
14
15
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "Azimut Capture",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.3",
|
|
5
5
|
"description": "File into Azimut: screenshot the map you are looking at (coordinates from the URL), or save any other page as a bookmark.",
|
|
6
6
|
"permissions": ["activeTab", "scripting", "storage", "notifications"],
|
|
7
7
|
"host_permissions": ["http://127.0.0.1/*", "http://localhost/*"],
|
|
@@ -4,7 +4,9 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "azimut"
|
|
7
|
-
|
|
7
|
+
# Single-sourced from src/azimut/__init__.py so a release is bumped in one place
|
|
8
|
+
# (see [tool.hatch.version] below). Never add a literal version here.
|
|
9
|
+
dynamic = ["version"]
|
|
8
10
|
description = "A local OSINT workspace for media, geolocation proofs and case management."
|
|
9
11
|
readme = "README.md"
|
|
10
12
|
requires-python = ">=3.11"
|
|
@@ -86,6 +88,11 @@ Homepage = "https://github.com/OsintMeThat/azimut"
|
|
|
86
88
|
# the sdist and the wheel — `python -m build` builds the wheel from the sdist,
|
|
87
89
|
# so if the sdist omits static the shipped wheel has no UI. Run `npm run build`
|
|
88
90
|
# before building the package.
|
|
91
|
+
# The version hatchling stamps into the wheel/sdist is read from __version__,
|
|
92
|
+
# so pyproject never carries a second copy that can drift out of sync.
|
|
93
|
+
[tool.hatch.version]
|
|
94
|
+
path = "src/azimut/__init__.py"
|
|
95
|
+
|
|
89
96
|
[tool.hatch.build]
|
|
90
97
|
artifacts = ["src/azimut/static/**"]
|
|
91
98
|
|
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from PIL import Image as _Image
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# The single source of truth for the app version. pyproject.toml reads it back
|
|
6
|
+
# through hatchling's dynamic version (``[tool.hatch.version]``) and the
|
|
7
|
+
# extension manifest is kept in lock-step by a test, so a release is bumped in
|
|
8
|
+
# exactly one place. Getting this wrong nags every user with a false update
|
|
9
|
+
# (the binary's self-check compares this against the latest GitHub tag).
|
|
10
|
+
__version__ = "0.2.3"
|
|
6
11
|
|
|
7
12
|
# Cap the pixels Pillow will decode from a file, process-wide. A tiny,
|
|
8
13
|
# highly-compressed image can otherwise expand to gigabytes in memory and take
|
|
@@ -22,7 +22,7 @@ from pathlib import Path
|
|
|
22
22
|
from bigcase import build_big_case
|
|
23
23
|
from legacy_case import write_legacy_json_case
|
|
24
24
|
|
|
25
|
-
from azimut import
|
|
25
|
+
from azimut import workspace
|
|
26
26
|
from azimut.engine import links as link_engine
|
|
27
27
|
from azimut.engine import media as media_engine
|
|
28
28
|
from azimut.engine import thumbnails
|
|
@@ -192,7 +192,12 @@ def test_case_db_lives_under_the_workspace_root(tmp_workspace):
|
|
|
192
192
|
|
|
193
193
|
def test_release_tooling_is_bounded_and_built_from_the_lock():
|
|
194
194
|
cfg = _pyproject()
|
|
195
|
-
|
|
195
|
+
# Version is single-sourced from src/azimut/__init__.py through hatchling's
|
|
196
|
+
# dynamic version, so pyproject carries no literal copy to drift out of sync
|
|
197
|
+
# (the 0.2.2 release shipped a stale __version__ against a bumped pyproject).
|
|
198
|
+
assert "version" not in cfg["project"]
|
|
199
|
+
assert "version" in cfg["project"]["dynamic"]
|
|
200
|
+
assert cfg["tool"]["hatch"]["version"]["path"] == "src/azimut/__init__.py"
|
|
196
201
|
assert cfg["build-system"]["requires"] == ["hatchling>=1.27,<2"]
|
|
197
202
|
release = cfg["dependency-groups"]["release"]
|
|
198
203
|
assert any(dep.startswith("build>=") and "<2" in dep for dep in release)
|
|
@@ -210,6 +215,12 @@ def test_release_tooling_is_bounded_and_built_from_the_lock():
|
|
|
210
215
|
assert "--no-editable" in workflow
|
|
211
216
|
assert "uv run python" not in workflow
|
|
212
217
|
assert "body_path: docs/RELEASE_NOTES.md" in workflow
|
|
218
|
+
# A guard job runs before anything builds: it checks the pushed tag equals
|
|
219
|
+
# __version__ and runs the version-parity gate the release used to skip, so
|
|
220
|
+
# a stale version can never ship again (the 0.2.2 false-update-nag bug).
|
|
221
|
+
assert "tag=$tag __version__=$ver" in workflow
|
|
222
|
+
assert "pytest tests/test_release_gate.py tests/test_updates.py" in workflow
|
|
223
|
+
assert "\n dist:\n" in workflow and "needs: guard" in workflow
|
|
213
224
|
release_job = workflow.split(" release:\n", maxsplit=1)[1]
|
|
214
225
|
assert release_job.index("actions/checkout@v4") < release_job.index(
|
|
215
226
|
"softprops/action-gh-release@v2"
|
|
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
|
|
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
|