vibesurf 0.1.9a1__tar.gz → 0.1.9a3__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.
Potentially problematic release.
This version of vibesurf might be problematic. Click here for more details.
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/.github/workflows/publish.yml +31 -42
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/PKG-INFO +1 -1
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/_version.py +3 -3
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibesurf.egg-info/PKG-INFO +1 -1
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibesurf.spec +60 -26
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/.env.example +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/.gitignore +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/.python-version +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/LICENSE +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/MANIFEST.in +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/README.md +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/build-local.bat +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/build-local.sh +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/docs/EXECUTABLE_BUILD.md +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/docs/PYPI_SETUP.md +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/pyproject.toml +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/setup.cfg +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/tests/test_agents.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/tests/test_backend_api.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/tests/test_browser.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/tests/test_controller.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/agents/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/agents/browser_use_agent.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/agents/prompts/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/agents/prompts/vibe_surf_prompt.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/agents/report_writer_agent.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/agents/vibe_surf_agent.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/api/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/api/activity.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/api/config.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/api/files.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/api/models.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/api/task.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/database/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/database/manager.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/database/models.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/database/queries.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/database/schemas.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/llm_config.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/main.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/migrations/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/migrations/init_db.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/migrations/seed_data.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/shared_state.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/utils/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/utils/encryption.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/backend/utils/llm_factory.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/agen_browser_profile.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/agent_browser_session.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/browser_manager.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/utils.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/watchdogs/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/watchdogs/action_watchdog.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/browser/watchdogs/dom_watchdog.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/background.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/config.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/content.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/dev-reload.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/icons/convert-svg.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/icons/logo-preview.html +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/icons/logo.icns +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/icons/logo.png +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/manifest.json +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/popup.html +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/scripts/api-client.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/scripts/main.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/scripts/markdown-it.min.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/scripts/session-manager.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/scripts/ui-manager.js +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/sidepanel.html +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/styles/animations.css +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/styles/components.css +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/styles/main.css +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/chrome_extension/styles/settings.css +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/cli.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/controller/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/controller/file_system.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/controller/mcp_client.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/controller/vibesurf_tools.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/controller/views.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/llm/__init__.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibe_surf/llm/openai_compatible.py +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibesurf.egg-info/SOURCES.txt +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibesurf.egg-info/dependency_links.txt +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibesurf.egg-info/entry_points.txt +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibesurf.egg-info/requires.txt +0 -0
- {vibesurf-0.1.9a1 → vibesurf-0.1.9a3}/vibesurf.egg-info/top_level.txt +0 -0
|
@@ -183,18 +183,34 @@ jobs:
|
|
|
183
183
|
echo "Verifying code signature..."
|
|
184
184
|
codesign --verify --deep dist/VibeSurf.app && echo "✅ Signature verified" || echo "⚠️ Signature verification failed"
|
|
185
185
|
|
|
186
|
-
#
|
|
187
|
-
echo "Creating
|
|
186
|
+
# Create professional DMG disk image (macOS standard)
|
|
187
|
+
echo "Creating DMG disk image with signed .app bundle..."
|
|
188
188
|
cd dist
|
|
189
|
-
tar -czf ${{ matrix.asset_name }}.tar.gz VibeSurf.app
|
|
190
189
|
|
|
191
|
-
#
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
190
|
+
# Create a temporary directory for DMG contents
|
|
191
|
+
mkdir -p dmg_temp
|
|
192
|
+
cp -R VibeSurf.app dmg_temp/
|
|
193
|
+
|
|
194
|
+
# Create a symbolic link to Applications folder for easy installation
|
|
195
|
+
ln -s /Applications dmg_temp/Applications
|
|
196
|
+
|
|
197
|
+
# Create the DMG with proper settings
|
|
198
|
+
hdiutil create -volname "VibeSurf" \
|
|
199
|
+
-srcfolder dmg_temp \
|
|
200
|
+
-ov -format UDZO \
|
|
201
|
+
-imagekey zlib-level=9 \
|
|
202
|
+
${{ matrix.asset_name }}.dmg
|
|
203
|
+
|
|
204
|
+
# Clean up temporary directory
|
|
205
|
+
rm -rf dmg_temp
|
|
206
|
+
|
|
207
|
+
# Verify DMG was created
|
|
208
|
+
if [ -f "${{ matrix.asset_name }}.dmg" ]; then
|
|
209
|
+
echo "✅ DMG created successfully: ${{ matrix.asset_name }}.dmg"
|
|
210
|
+
ls -lh ${{ matrix.asset_name }}.dmg
|
|
211
|
+
echo "Professional macOS disk image created"
|
|
196
212
|
else
|
|
197
|
-
echo "❌ Failed to create
|
|
213
|
+
echo "❌ Failed to create DMG"
|
|
198
214
|
exit 1
|
|
199
215
|
fi
|
|
200
216
|
cd ..
|
|
@@ -242,7 +258,9 @@ jobs:
|
|
|
242
258
|
uses: actions/upload-artifact@v4
|
|
243
259
|
with:
|
|
244
260
|
name: ${{ matrix.asset_name }}
|
|
245
|
-
|
|
261
|
+
# For macOS, upload the .dmg file; for others, upload the executable
|
|
262
|
+
path: |
|
|
263
|
+
${{ runner.os == 'macOS' && format('dist/{0}.dmg', matrix.asset_name) || format('dist/{0}', matrix.asset_name) }}
|
|
246
264
|
retention-days: 90
|
|
247
265
|
|
|
248
266
|
publish-pypi:
|
|
@@ -284,35 +302,6 @@ jobs:
|
|
|
284
302
|
with:
|
|
285
303
|
files: |
|
|
286
304
|
vibesurf-windows-x64.exe/vibesurf-windows-x64.exe
|
|
287
|
-
vibesurf-macos-intel-x64/vibesurf-macos-intel-x64
|
|
288
|
-
vibesurf-macos-apple-silicon/vibesurf-macos-apple-silicon
|
|
289
|
-
vibesurf-linux-x64/vibesurf-linux-x64
|
|
290
|
-
body: |
|
|
291
|
-
## 📦 Download Instructions
|
|
292
|
-
|
|
293
|
-
### 🪟 Windows
|
|
294
|
-
- Download `vibesurf-windows-x64.exe`
|
|
295
|
-
- Run directly or add to PATH
|
|
296
|
-
|
|
297
|
-
### 🍎 macOS (with proper .app bundle)
|
|
298
|
-
- **Intel Macs**: Download `vibesurf-macos-intel-x64`
|
|
299
|
-
- **Apple Silicon**: Download `vibesurf-macos-apple-silicon`
|
|
300
|
-
- Extract: `tar -xzf vibesurf-macos-*.tar.gz`
|
|
301
|
-
- Open: Double-click `VibeSurf.app` in Finder
|
|
302
|
-
- **If blocked**: Right-click → "Open" → "Open" in dialog
|
|
303
|
-
- **Alternative**: System Preferences → Security & Privacy → "Open Anyway"
|
|
304
|
-
|
|
305
|
-
✅ **Features**:
|
|
306
|
-
- Proper ICNS icon
|
|
307
|
-
- No terminal window (windowed mode)
|
|
308
|
-
- Ad-hoc signed (reduces warnings)
|
|
309
|
-
- Standard macOS .app bundle
|
|
310
|
-
|
|
311
|
-
### 🐧 Linux
|
|
312
|
-
- Download `vibesurf-linux-x64`
|
|
313
|
-
- Make executable: `chmod +x vibesurf-linux-x64`
|
|
314
|
-
- Run: `./vibesurf-linux-x64`
|
|
315
|
-
|
|
316
|
-
---
|
|
317
|
-
|
|
318
|
-
**Note**: All builds include automatic platform detection and appropriate configurations.
|
|
305
|
+
vibesurf-macos-intel-x64/vibesurf-macos-intel-x64.dmg
|
|
306
|
+
vibesurf-macos-apple-silicon/vibesurf-macos-apple-silicon.dmg
|
|
307
|
+
vibesurf-linux-x64/vibesurf-linux-x64
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 1, 9, '
|
|
31
|
+
__version__ = version = '0.1.9a3'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 9, 'a3')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gb604ae17f'
|
|
@@ -185,34 +185,68 @@ a = Analysis(
|
|
|
185
185
|
# Remove duplicate files to reduce size
|
|
186
186
|
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
187
187
|
|
|
188
|
-
# Create executable -
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
188
|
+
# Create executable - use onedir mode for macOS .app bundles, onefile for others
|
|
189
|
+
if current_platform == "Darwin":
|
|
190
|
+
# macOS: Use onedir mode for proper .app bundle support
|
|
191
|
+
exe = EXE(
|
|
192
|
+
pyz,
|
|
193
|
+
a.scripts,
|
|
194
|
+
[],
|
|
195
|
+
exclude_binaries=True, # This enables onedir mode
|
|
196
|
+
name='vibesurf',
|
|
197
|
+
debug=False,
|
|
198
|
+
bootloader_ignore_signals=False,
|
|
199
|
+
strip=False,
|
|
200
|
+
upx=True,
|
|
201
|
+
console=console_mode,
|
|
202
|
+
disable_windowed_traceback=False,
|
|
203
|
+
target_arch=None,
|
|
204
|
+
codesign_identity=None,
|
|
205
|
+
entitlements_file=None,
|
|
206
|
+
icon=None, # Icon set in BUNDLE for macOS
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
# Create COLLECT for onedir distribution
|
|
210
|
+
coll = COLLECT(
|
|
211
|
+
exe,
|
|
212
|
+
a.binaries,
|
|
213
|
+
a.zipfiles,
|
|
214
|
+
a.datas,
|
|
215
|
+
strip=False,
|
|
216
|
+
upx=True,
|
|
217
|
+
upx_exclude=[],
|
|
218
|
+
name='vibesurf'
|
|
219
|
+
)
|
|
220
|
+
print("Using onedir mode for macOS (recommended by PyInstaller)")
|
|
221
|
+
else:
|
|
222
|
+
# Windows/Linux: Use onefile mode
|
|
223
|
+
exe = EXE(
|
|
224
|
+
pyz,
|
|
225
|
+
a.scripts,
|
|
226
|
+
a.binaries,
|
|
227
|
+
a.zipfiles,
|
|
228
|
+
a.datas,
|
|
229
|
+
[],
|
|
230
|
+
name='vibesurf',
|
|
231
|
+
debug=False,
|
|
232
|
+
bootloader_ignore_signals=False,
|
|
233
|
+
strip=False,
|
|
234
|
+
upx=True, # Compress to reduce file size
|
|
235
|
+
upx_exclude=[],
|
|
236
|
+
runtime_tmpdir=None,
|
|
237
|
+
console=console_mode,
|
|
238
|
+
disable_windowed_traceback=False,
|
|
239
|
+
target_arch=None,
|
|
240
|
+
codesign_identity=None,
|
|
241
|
+
entitlements_file=None,
|
|
242
|
+
icon=str(icon_file) if icon_file else None,
|
|
243
|
+
)
|
|
244
|
+
print(f"Using onefile mode for {current_platform}")
|
|
211
245
|
|
|
212
|
-
# For macOS, create a proper .app bundle
|
|
246
|
+
# For macOS, create a proper .app bundle using onedir mode
|
|
213
247
|
if current_platform == "Darwin":
|
|
214
248
|
app = BUNDLE(
|
|
215
|
-
|
|
249
|
+
coll, # Use COLLECT object for onedir mode
|
|
216
250
|
name='VibeSurf.app',
|
|
217
251
|
icon=str(icon_file) if icon_file else None, # macOS icon set here
|
|
218
252
|
bundle_identifier='com.vibesurf.app',
|
|
@@ -236,7 +270,7 @@ if current_platform == "Darwin":
|
|
|
236
270
|
codesign_identity=None, # Set this to your Developer ID if you have one
|
|
237
271
|
entitlements_file=None,
|
|
238
272
|
)
|
|
239
|
-
print("Created macOS .app bundle: VibeSurf.app")
|
|
273
|
+
print("Created macOS .app bundle: VibeSurf.app (onedir mode)")
|
|
240
274
|
print(f"Bundle icon: {icon_file}")
|
|
241
275
|
else:
|
|
242
276
|
print(f"Executable icon: {icon_file}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|