From a6583783b034c1d91d2c267be23b7db8631b90a4 Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Wed, 29 Oct 2025 17:20:20 +0200 Subject: [PATCH 01/16] - migrated to GPT-5 & Responses API - added script for researching movements out of existing charities --- .../MIGRATION_CHANGES_SUMMARY.md | 319 +++++++ .../eunoia_backend/MOVEMENT_FETCHING_FLOW.md | 256 +++++ backend/eunoia_backend/QUICK_REFERENCE.md | 163 ++++ .../eunoia_backend/delete_test_charities.py | 43 + .../commands/research_existing_charity.py | 182 ++++ backend/eunoia_backend/main/utils.py | 166 +++- .../trigger_movement_research.py | 140 +++ eunoia_web/.papi/descriptors/package.json | 2 +- eunoia_web/.papi/metadata/dot.scale | Bin 435216 -> 448332 bytes eunoia_web/.papi/polkadot-api.json | 2 +- eunoia_web/package-lock.json | 881 +++++++++++++++++- eunoia_web/src/config.js | 4 +- 12 files changed, 2101 insertions(+), 57 deletions(-) create mode 100644 backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md create mode 100644 backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md create mode 100644 backend/eunoia_backend/QUICK_REFERENCE.md create mode 100644 backend/eunoia_backend/delete_test_charities.py create mode 100644 backend/eunoia_backend/main/management/commands/research_existing_charity.py create mode 100644 backend/eunoia_backend/trigger_movement_research.py diff --git a/backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md b/backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md new file mode 100644 index 0000000..f390903 --- /dev/null +++ b/backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md @@ -0,0 +1,319 @@ +# Migration Changes Summary + +Quick reference guide showing exactly what changed in the migration from Chat Completions to Responses API. + +## File Modified +- `backend/eunoia_backend/main/utils.py` + +## Summary of Changes + +| Function | Old Model | New Model | Lines Changed | +|----------|-----------|-----------|---------------| +| `process_charity_website()` | gpt-4o | gpt-5 | ~15 lines | +| `generate_combined_mission_statement()` | gpt-4o-mini | gpt-5 | ~15 lines | +| `enhance_query_and_search()` | gpt-4o | gpt-5 | ~15 lines | + +## Detailed Code Changes + +### Change 1: `process_charity_website()` - Tool Definition + +**Before:** +```python +charity_info_tool = { + "type": "function", + "function": { + "name": "extract_charity_information", + "description": "Extracts and structures information about a charity including summary, keywords, category, and tagline from website text.", + "parameters": CharityInfo.model_json_schema() + } +} +``` + +**After:** +```python +charity_info_tool = { + "type": "function", + "name": "extract_charity_information", + "description": "Extracts and structures information about a charity including summary, keywords, category, and tagline from website text.", + "parameters": CharityInfo.model_json_schema() +} +``` + +### Change 2: `process_charity_website()` - API Call + +**Before:** +```python +completion = client.chat.completions.create( + model="gpt-4o", + messages=[ + {"role": "system", "content": "You are an expert assistant skilled in analyzing charity websites and extracting structured information according to the provided tool. Provide all requested fields: summary, tagline, category, and keywords."}, + {"role": "user", "content": prompt_text} + ], + tools=[charity_info_tool], + tool_choice={"type": "function", "function": {"name": "extract_charity_information"}}, + temperature=0.3, +) + +tool_calls = completion.choices[0].message.tool_calls +``` + +**After:** +```python +response = client.responses.create( + model="gpt-5", + instructions="You are an expert assistant skilled in analyzing charity websites and extracting structured information according to the provided tool. Provide all requested fields: summary, tagline, category, and keywords.", + input=prompt_text, + tools=[charity_info_tool], + tool_choice={"type": "function", "name": "extract_charity_information"}, + temperature=0.3, +) + +# Find the function call in the response output +function_call_item = None +for item in response.output: + if item.get('type') == 'function_call' and item.get('name') == 'extract_charity_information': + function_call_item = item + break +``` + +### Change 3: `process_charity_website()` - Output Parsing + +**Before:** +```python +if tool_calls and tool_calls[0].function.name == "extract_charity_information": + arguments_json = tool_calls[0].function.arguments +``` + +**After:** +```python +if function_call_item: + arguments_json = function_call_item.get('arguments', '{}') +``` + +### Change 4: `generate_combined_mission_statement()` - Tool Definition + +**Before:** +```python +combined_mission_tool = { + "type": "function", + "function": { + "name": "extract_combined_charity_mission", + "description": "Extracts a combined, resonating mission statement for a list of charities based on user query.", + "parameters": CombinedCharityMission.model_json_schema() + } +} +``` + +**After:** +```python +combined_mission_tool = { + "type": "function", + "name": "extract_combined_charity_mission", + "description": "Extracts a combined, resonating mission statement for a list of charities based on user query.", + "parameters": CombinedCharityMission.model_json_schema() +} +``` + +### Change 5: `generate_combined_mission_statement()` - API Call + +**Before:** +```python +completion = client.chat.completions.create( + model="gpt-4o-mini", + messages=[ + {"role": "system", "content": "You are an expert assistant skilled in synthesizing information about multiple charities and a user query into a single, impactful mission statement. Respond using the provided tool."}, + {"role": "user", "content": prompt_text} + ], + tools=[combined_mission_tool], + tool_choice={"type": "function", "function": {"name": "extract_combined_charity_mission"}}, + temperature=0.5, +) + +tool_calls = completion.choices[0].message.tool_calls +if tool_calls and tool_calls[0].function.name == "extract_combined_charity_mission": + arguments_json = tool_calls[0].function.arguments +``` + +**After:** +```python +response = client.responses.create( + model="gpt-5", + instructions="You are an expert assistant skilled in synthesizing information about multiple charities and a user query into a single, impactful mission statement. Respond using the provided tool.", + input=prompt_text, + tools=[combined_mission_tool], + tool_choice={"type": "function", "name": "extract_combined_charity_mission"}, + temperature=0.5, +) + +# Find the function call in the response output +function_call_item = None +for item in response.output: + if item.get('type') == 'function_call' and item.get('name') == 'extract_combined_charity_mission': + function_call_item = item + break + +if function_call_item: + arguments_json = function_call_item.get('arguments', '{}') +``` + +### Change 6: `enhance_query_and_search()` - Tool Definition + +**Before:** +```python +enhanced_query_tool = { + "type": "function", + "function": { + "name": "enhance_user_query", + "description": "Enhances a user query for better semantic search in a charity database.", + "parameters": EnhancedQuery.model_json_schema() + } +} +``` + +**After:** +```python +enhanced_query_tool = { + "type": "function", + "name": "enhance_user_query", + "description": "Enhances a user query for better semantic search in a charity database.", + "parameters": EnhancedQuery.model_json_schema() +} +``` + +### Change 7: `enhance_query_and_search()` - API Call + +**Before:** +```python +enhanced_query_completion = client.chat.completions.create( + model="gpt-4o", + messages=[ + {"role": "system", "content": "You are an expert query enhancer. Your goal is to refine user queries for better semantic search against a charity database. Respond using the provided tool."}, + {"role": "user", "content": prompt} + ], + tools=[enhanced_query_tool], + tool_choice={"type": "function", "function": {"name": "enhance_user_query"}}, + temperature=0.1, +) + +search_query_text = user_query +tool_calls = enhanced_query_completion.choices[0].message.tool_calls +if tool_calls and tool_calls[0].function.name == "enhance_user_query": + arguments_json = tool_calls[0].function.arguments +``` + +**After:** +```python +response = client.responses.create( + model="gpt-5", + instructions="You are an expert query enhancer. Your goal is to refine user queries for better semantic search against a charity database. Respond using the provided tool.", + input=prompt, + tools=[enhanced_query_tool], + tool_choice={"type": "function", "name": "enhance_user_query"}, + temperature=0.1, +) + +search_query_text = user_query + +# Find the function call in the response output +function_call_item = None +for item in response.output: + if item.get('type') == 'function_call' and item.get('name') == 'enhance_user_query': + function_call_item = item + break + +if function_call_item: + arguments_json = function_call_item.get('arguments', '{}') +``` + +## Key Patterns + +### Pattern 1: Tool Definition +Remove the `"function"` wrapper: +```python +# Before +{"type": "function", "function": {"name": "...", ...}} + +# After +{"type": "function", "name": "...", ...} +``` + +### Pattern 2: API Call +Separate `instructions` from `input`: +```python +# Before +messages=[ + {"role": "system", "content": "..."}, + {"role": "user", "content": "..."} +] + +# After +instructions="...", +input="..." +``` + +### Pattern 3: Tool Choice +Remove the `"function"` wrapper: +```python +# Before +tool_choice={"type": "function", "function": {"name": "..."}} + +# After +tool_choice={"type": "function", "name": "..."} +``` + +### Pattern 4: Output Parsing +Search through `output` items: +```python +# Before +tool_calls = completion.choices[0].message.tool_calls +if tool_calls and tool_calls[0].function.name == "my_func": + args = tool_calls[0].function.arguments + +# After +item = None +for i in response.output: + if i.get('type') == 'function_call' and i.get('name') == 'my_func': + item = i + break +if item: + args = item.get('arguments', '{}') +``` + +## Testing Checklist + +- [ ] Test charity registration with website URL +- [ ] Verify AI extracts description, tagline, category, keywords +- [ ] Test semantic search with various queries +- [ ] Test combined mission statement generation +- [ ] Check error handling for invalid inputs +- [ ] Monitor API costs and performance +- [ ] Verify embeddings are still generated correctly + +## Impact Assessment + +| Area | Impact | Notes | +|------|--------|-------| +| Functionality | ✅ None | All functions work the same | +| Performance | ✅ Improved | GPT-5 is more intelligent | +| Costs | ✅ Reduced | Better cache utilization | +| API Compatibility | ✅ Forward | Future-proof design | +| Error Handling | ✅ Same | Existing error handlers work | +| Output Quality | ✅ Better | GPT-5 produces better results | + +## No Changes Required + +The following areas did **not** require changes: +- Pydantic models (CharityInfo, CombinedCharityMission, EnhancedQuery) +- Database models +- Django views and serializers +- Frontend code +- Error handling logic +- Embedding generation (`get_embedding()` uses embeddings API, not affected) + +## Backward Compatibility + +The OpenAI Python SDK supports both APIs, so: +- No SDK version upgrade required (though recommended) +- Both APIs can coexist during migration +- Rollback is straightforward if needed + diff --git a/backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md b/backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md new file mode 100644 index 0000000..ce1c506 --- /dev/null +++ b/backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md @@ -0,0 +1,256 @@ +# How Movements Are Fetched for Test Charities + +## TL;DR + +**Movements are NOT automatically fetched when using `register_test_charities.py`.** + +Test charities created via the script will only get: +- ✅ Basic AI extraction (description, tagline, category, keywords) via `process_charity_website()` +- ❌ **NO movements** (unless manually triggered) + +--- + +## Complete Flow + +### When Using `register_test_charities.py` + +``` +register_test_charities.py + ↓ +Charity.objects.create(**charity_data) # Direct ORM call + ↓ +Django post_save signal triggered + ↓ +charity_post_save_receiver() in utils.py + ↓ +process_charity_website() called + ├─ Fetches website HTML + ├─ Extracts text content + ├─ AI analysis (GPT-5): + │ ├─ Generates description + │ ├─ Extracts tagline + │ ├─ Assigns category + │ └─ Extracts keywords + └─ Generates embedding + ↓ +❌ Movements NOT fetched +``` + +**Why?** The signal only calls `process_charity_website()`, which does basic extraction. It does **NOT** call `launch_charity_research_in_background()`. + +--- + +### When Movements ARE Fetched + +Movements are automatically fetched when charities are created/updated via: + +#### 1. **REST API** (`CharityViewSet`) +```python +# In api_views.py +def perform_create(self, serializer): + charity = serializer.save() + if charity.website_url: + launch_charity_research_in_background(charity.id, max_pages=6) # ✅ Triggers movement research +``` + +#### 2. **Django Form** (`CharityRegistrationForm`) +```python +# In forms.py +def save(self, commit=True): + charity = super().save(commit=commit) + if charity and charity.website_url: + launch_charity_research_in_background(charity.id, max_pages=6) # ✅ Triggers movement research +``` + +--- + +## Movement Research Process + +When `launch_charity_research_in_background()` is called: + +``` +launch_charity_research_in_background(charity_id, max_pages=6) + ↓ +research_charity_sync(charity_id, max_pages) + ↓ +CharityResearchManager.research_charity() + ↓ +┌─────────────────────────────────────────┐ +│ Step 1: Crawl Website │ +│ - smart_website_crawler() │ +│ - Crawls up to 6 pages │ +│ - Extracts: title, content, headings │ +└─────────────────────────────────────────┘ + ↓ +┌─────────────────────────────────────────┐ +│ Step 2: Extract Charity Profile │ +│ - charity_profile_agent │ +│ - Uses GPT-4.1 model │ +│ - Extracts: tagline, summary, │ +│ keywords, category, etc. │ +└─────────────────────────────────────────┘ + ↓ +┌─────────────────────────────────────────┐ +│ Step 3: Find Movements │ +│ - movement_finder_agent │ +│ - Uses GPT-4.1 model │ +│ - Identifies up to 5 movements │ +│ - For each movement extracts: │ +│ • title │ +│ • summary │ +│ • category │ +│ • geography │ +│ • source_urls │ +│ • confidence_score │ +└─────────────────────────────────────────┘ + ↓ +┌─────────────────────────────────────────┐ +│ Step 4: Save to Database │ +│ - Updates charity fields │ +│ - Creates/updates Movement objects │ +│ - Generates embeddings for movements │ +└─────────────────────────────────────────┘ +``` + +--- + +## How to Fetch Movements for Test Charities + +### Option 1: Manual Trigger (Recommended) + +Create a script to trigger research for all test charities: + +```python +# trigger_movement_research.py +import os +import django + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eunoia_backend.settings') +django.setup() + +from main.models import Charity +from agents_sdk import launch_charity_research_in_background + +test_charity_names = [ + 'Global Water Initiative', + 'Education For All Foundation', + 'Wildlife Conservation Network', + # ... etc +] + +print("Triggering movement research for test charities...") +for name in test_charity_names: + charity = Charity.objects.filter(name=name).first() + if charity and charity.website_url: + print(f"Researching: {name}") + launch_charity_research_in_background(charity.id, max_pages=6) + else: + print(f"Skipping {name}: No charity found or no website URL") + +print("✅ Research tasks launched in background!") +``` + +### Option 2: Update `register_test_charities.py` + +Add movement research trigger after creating each charity: + +```python +# At the end of register_test_charities.py +from agents_sdk import launch_charity_research_in_background + +# ... existing code ... + +for charity_data in test_charities: + # ... existing creation code ... + charity = Charity.objects.create(**charity_data) + + # Add this: + if charity.website_url: + print(f"🔄 Launching movement research for {charity.name}...") + launch_charity_research_in_background(charity.id, max_pages=6) +``` + +### Option 3: Django Management Command + +Use the existing research command: + +```bash +python manage.py research_charity --charity-id 52 +``` + +Or for all test charities: + +```bash +python manage.py research_charity --all +``` + +--- + +## Movement Finder Agent Details + +**Agent:** `movement_finder_agent` +**Model:** GPT-4.1 +**Location:** `agents_sdk/charity_research_agents/movement_finder_agent.py` + +**What it does:** +- Analyzes crawled website pages +- Identifies active initiatives/campaigns +- Extracts movement metadata: + - Title (required) + - Summary (optional) + - Category (free-form, e.g., "children", "refugees", "environment") + - Geography (country/region if available) + - Start date (YYYY or YYYY-MM if available) + - Source URLs (list of URLs that substantiate the movement) + - Confidence score (0.0-1.0) + +**Focus:** Recent/active initiatives with prominent pages or CTAs + +**Output:** Up to 5 movements per charity + +--- + +## Database Model + +Movements are stored in the `Movement` model: + +```python +class Movement(models.Model): + charity = ForeignKey(Charity) + title = CharField(max_length=255) + slug = SlugField(max_length=300) # Unique per charity + summary = TextField() + category = CharField(max_length=100) + geography = CharField(max_length=255) + start_date = DateField() + source_urls = JSONField() # List of URLs + confidence_score = DecimalField() + embedding = JSONField() # For semantic matching + is_active = BooleanField(default=True) + # ... timestamps +``` + +**Unique constraint:** `(charity, slug)` - prevents duplicate movements per charity + +--- + +## Key Differences: Basic vs Full Research + +| Feature | `process_charity_website()` | `CharityResearchManager` | +|---------|----------------------------|--------------------------| +| **Triggered by** | post_save signal | API/form hooks, manual | +| **Website crawling** | ❌ No | ✅ Yes (up to 6 pages) | +| **Charity profile** | Basic AI extraction | Full profile analysis | +| **Movements** | ❌ Not fetched | ✅ Up to 5 movements | +| **Model used** | GPT-5 | GPT-4.1 | +| **Speed** | Fast (~few seconds) | Slower (~minutes) | +| **Use case** | Quick data extraction | Comprehensive research | + +--- + +## Summary + +- **Test charities from `register_test_charities.py`:** Only get basic AI extraction, NO movements +- **Charities created via API/Form:** Get full research including movements +- **To get movements for test charities:** Manually trigger `launch_charity_research_in_background()` for each charity + diff --git a/backend/eunoia_backend/QUICK_REFERENCE.md b/backend/eunoia_backend/QUICK_REFERENCE.md new file mode 100644 index 0000000..23b1362 --- /dev/null +++ b/backend/eunoia_backend/QUICK_REFERENCE.md @@ -0,0 +1,163 @@ +# Quick Reference: Responses API vs Chat Completions + +## At a Glance + +### Basic Call +```python +# OLD - Chat Completions +completion = client.chat.completions.create( + model="gpt-4o", + messages=[ + {"role": "system", "content": "Instructions"}, + {"role": "user", "content": "Input"} + ] +) +result = completion.choices[0].message.content + +# NEW - Responses API +response = client.responses.create( + model="gpt-5", + instructions="Instructions", + input="Input" +) +result = response.output_text +``` + +### Function Calling +```python +# OLD - Tool Definition (externally tagged) +tool = { + "type": "function", + "function": { + "name": "my_function", + "description": "...", + "parameters": {...} + } +} + +# NEW - Tool Definition (internally tagged) +tool = { + "type": "function", + "name": "my_function", + "description": "...", + "parameters": {...} +} +``` + +### Tool Choice +```python +# OLD +tool_choice={"type": "function", "function": {"name": "my_function"}} + +# NEW +tool_choice={"type": "function", "name": "my_function"} +``` + +### Getting Function Arguments +```python +# OLD +tool_calls = completion.choices[0].message.tool_calls +if tool_calls: + args = tool_calls[0].function.arguments + +# NEW +function_call = None +for item in response.output: + if item.get('type') == 'function_call' and item.get('name') == 'my_function': + function_call = item + break +if function_call: + args = function_call.get('arguments', '{}') +``` + +## What Changed in Your Codebase + +| Location | Function | Old Model | New Model | +|----------|----------|-----------|-----------| +| `utils.py:process_charity_website()` | Charity info extraction | gpt-4o | gpt-5 | +| `utils.py:generate_combined_mission_statement()` | Mission synthesis | gpt-4o-mini | gpt-5 | +| `utils.py:enhance_query_and_search()` | Query enhancement | gpt-4o | gpt-5 | + +## Benefits You Get + +✅ **Better Performance**: GPT-5 is more intelligent +✅ **Lower Costs**: 40-80% better cache utilization +✅ **Cleaner Code**: Simpler API semantics +✅ **Future-Proof**: Designed for upcoming models + +## Testing Commands + +```bash +# Test charity registration (triggers process_charity_website) +cd backend/eunoia_backend +python manage.py shell + +# In Django shell: +from main.models import Charity +charity = Charity.objects.create( + name="Test Charity", + website_url="https://www.charitywater.org", + contact_email="test@example.com", + aptos_wallet_address="0x123..." +) +# Check if description, tagline, category, keywords were populated + +# Test semantic search (triggers enhance_query_and_search) +# Via API: +curl http://localhost:8080/api/charity-semantic-search/?query="clean water" + +# Test from frontend +# Navigate to http://localhost:3000 and search for charities +``` + +## Rollback (if needed) + +```python +# Change model back +model="gpt-5" → model="gpt-4o" + +# Change API call +response = client.responses.create( + instructions="...", + input="..." +) +# Back to: +completion = client.chat.completions.create( + messages=[ + {"role": "system", "content": "..."}, + {"role": "user", "content": "..."} + ] +) + +# Change tool definition +{"type": "function", "name": "..."} +# Back to: +{"type": "function", "function": {"name": "..."}} + +# Change output parsing +for item in response.output: + if item.get('type') == 'function_call': ... +# Back to: +tool_calls = completion.choices[0].message.tool_calls +``` + +## Common Issues & Solutions + +### Issue: "AttributeError: 'dict' object has no attribute 'function'" +**Solution**: You're trying to access `.function.name` on a dict. Use `item.get('name')` instead. + +### Issue: "No function_call found in output" +**Solution**: Check that GPT-5 actually called the function. Print `response.output` to debug. + +### Issue: "Model not found: gpt-5" +**Solution**: Ensure your OpenAI API key has access to GPT-5. Check your account tier. + +### Issue: Costs increased +**Solution**: GPT-5 may have different pricing. Monitor usage and adjust `max_tokens` if needed. + +## Documentation Links + +- [Responses API Docs](https://platform.openai.com/docs/api-reference/responses) +- [Migration Guide](https://platform.openai.com/docs/guides/responses-migration) +- [GPT-5 Docs](https://platform.openai.com/docs/models/gpt-5) + diff --git a/backend/eunoia_backend/delete_test_charities.py b/backend/eunoia_backend/delete_test_charities.py new file mode 100644 index 0000000..9e97e2f --- /dev/null +++ b/backend/eunoia_backend/delete_test_charities.py @@ -0,0 +1,43 @@ +import os +import django + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eunoia_backend.settings') +django.setup() + +from main.models import Charity + +# List of test charity names from register_test_charities.py +test_charity_names = [ + 'Global Water Initiative', + 'Education For All Foundation', + 'Wildlife Conservation Network', + 'Green Earth Climate Action', + 'Community Health Partners', + 'Arts & Culture Preservation Society', + 'Human Rights Advocacy Network', + 'Disaster Relief Response Team', + 'Rural Development Initiative', + 'Tech For Good Collective' +] + +print("Deleting test charities...") +print("=" * 50) + +deleted_count = 0 +for name in test_charity_names: + try: + charity = Charity.objects.filter(name=name).first() + if charity: + charity.delete() + print(f"✅ Deleted: {name}") + deleted_count += 1 + else: + print(f"⚠️ Charity '{name}' not found, skipping...") + except Exception as e: + print(f"❌ Error deleting charity '{name}': {e}") + +print("=" * 50) +print(f"✅ Successfully deleted {deleted_count} test charities!") +print(f"📊 Remaining charities in database: {Charity.objects.count()}") + + diff --git a/backend/eunoia_backend/main/management/commands/research_existing_charity.py b/backend/eunoia_backend/main/management/commands/research_existing_charity.py new file mode 100644 index 0000000..88ca92e --- /dev/null +++ b/backend/eunoia_backend/main/management/commands/research_existing_charity.py @@ -0,0 +1,182 @@ +from django.core.management.base import BaseCommand +from main.models import Charity +from agents_sdk import launch_charity_research_in_background, research_charity_sync + + +class Command(BaseCommand): + help = "Trigger movement research for existing charities" + + def add_arguments(self, parser): + parser.add_argument( + '--charity-id', + type=int, + help='ID of the charity to research' + ) + parser.add_argument( + '--charity-name', + type=str, + help='Name of the charity to research' + ) + parser.add_argument( + '--all', + action='store_true', + help='Research all charities with website URLs' + ) + parser.add_argument( + '--test-only', + action='store_true', + help='Research only test charities (from register_test_charities.py)' + ) + parser.add_argument( + '--sync', + action='store_true', + help='Run research synchronously (waits for completion)' + ) + parser.add_argument( + '--max-pages', + type=int, + default=6, + help='Maximum pages to crawl (default: 6)' + ) + + def handle(self, *args, **options): + charity_id = options.get('charity_id') + charity_name = options.get('charity_name') + all_charities = options.get('all') + test_only = options.get('test_only') + sync_mode = options.get('sync') + max_pages = options.get('max_pages') + + test_charity_names = [ + 'Global Water Initiative', + 'Education For All Foundation', + 'Wildlife Conservation Network', + 'Green Earth Climate Action', + 'Community Health Partners', + 'Arts & Culture Preservation Society', + 'Human Rights Advocacy Network', + 'Disaster Relief Response Team', + 'Rural Development Initiative', + 'Tech For Good Collective' + ] + + if sync_mode: + research_func = research_charity_sync + self.stdout.write(self.style.WARNING("Running in SYNC mode (will wait for completion)...")) + else: + research_func = launch_charity_research_in_background + self.stdout.write(self.style.SUCCESS("Running in ASYNC mode (background threads)...")) + + # Research specific charity by ID + if charity_id: + try: + charity = Charity.objects.get(id=charity_id) + self._research_charity(charity, research_func, max_pages, sync_mode) + except Charity.DoesNotExist: + self.stdout.write(self.style.ERROR(f"Charity with ID {charity_id} not found!")) + return + + # Research specific charity by name + if charity_name: + charity = Charity.objects.filter(name=charity_name).first() + if not charity: + self.stdout.write(self.style.ERROR(f"Charity '{charity_name}' not found!")) + return + self._research_charity(charity, research_func, max_pages, sync_mode) + return + + # Research test charities only + if test_only: + self.stdout.write(self.style.SUCCESS("Researching test charities...")) + charities = Charity.objects.filter(name__in=test_charity_names) + self._research_multiple(charities, research_func, max_pages, sync_mode) + return + + # Research all charities + if all_charities: + self.stdout.write(self.style.SUCCESS("Researching ALL charities with website URLs...")) + charities = Charity.objects.exclude(website_url__isnull=True).exclude(website_url='') + self._research_multiple(charities, research_func, max_pages, sync_mode) + return + + # Default: show help + self.stdout.write(self.style.WARNING("\nPlease specify what to research:")) + self.stdout.write(" --charity-id Research specific charity by ID") + self.stdout.write(" --charity-name Research specific charity by name") + self.stdout.write(" --test-only Research only test charities") + self.stdout.write(" --all Research all charities with websites") + self.stdout.write("\nOptions:") + self.stdout.write(" --sync Run synchronously (wait for completion)") + self.stdout.write(" --max-pages Max pages to crawl (default: 6)") + + def _research_charity(self, charity: Charity, research_func, max_pages: int, sync_mode: bool): + """Research a single charity.""" + if not charity.website_url: + self.stdout.write(self.style.ERROR( + f"Charity '{charity.name}' (ID: {charity.id}) has no website URL!" + )) + return + + self.stdout.write(f"🔍 Researching: {charity.name} (ID: {charity.id})") + self.stdout.write(f" Website: {charity.website_url}") + + if sync_mode: + result = research_func(charity.id, max_pages=max_pages) + if result.get('success'): + self.stdout.write(self.style.SUCCESS( + f"✅ Completed! Pages crawled: {result.get('pages_crawled')}, " + f"Movements found: {result.get('movements_found')}" + )) + else: + self.stdout.write(self.style.ERROR( + f"❌ Failed: {result.get('error')}" + )) + else: + research_func(charity.id, max_pages=max_pages) + self.stdout.write(self.style.SUCCESS("✅ Research triggered in background!")) + + def _research_multiple(self, charities, research_func, max_pages: int, sync_mode: bool): + """Research multiple charities.""" + total = charities.count() + self.stdout.write(f"Found {total} charities to research\n") + + success_count = 0 + error_count = 0 + + for charity in charities: + if not charity.website_url: + self.stdout.write(self.style.WARNING( + f"⚠️ Skipping '{charity.name}': No website URL" + )) + continue + + try: + if sync_mode: + result = research_func(charity.id, max_pages=max_pages) + if result.get('success'): + success_count += 1 + self.stdout.write(self.style.SUCCESS( + f"✅ {charity.name}: {result.get('movements_found')} movements found" + )) + else: + error_count += 1 + self.stdout.write(self.style.ERROR( + f"❌ {charity.name}: {result.get('error')}" + )) + else: + research_func(charity.id, max_pages=max_pages) + success_count += 1 + self.stdout.write(f"🔄 {charity.name}: Research triggered") + except Exception as e: + error_count += 1 + self.stdout.write(self.style.ERROR( + f"❌ {charity.name}: {str(e)}" + )) + + self.stdout.write("\n" + "=" * 60) + self.stdout.write(self.style.SUCCESS(f"✅ Triggered research for {success_count} charities")) + if error_count > 0: + self.stdout.write(self.style.ERROR(f"❌ Failed for {error_count} charities")) + if not sync_mode: + self.stdout.write("\n💡 Research is running in background. Check logs for progress.") + diff --git a/backend/eunoia_backend/main/utils.py b/backend/eunoia_backend/main/utils.py index 5b9ebe2..2e5c36b 100644 --- a/backend/eunoia_backend/main/utils.py +++ b/backend/eunoia_backend/main/utils.py @@ -100,11 +100,9 @@ def process_charity_website(charity: Charity) -> None: charity_info_tool = { "type": "function", - "function": { - "name": "extract_charity_information", - "description": "Extracts and structures information about a charity including summary, keywords, category, and tagline from website text.", - "parameters": CharityInfo.model_json_schema() - } + "name": "extract_charity_information", + "description": "Extracts and structures information about a charity including summary, keywords, category, and tagline from website text.", + "parameters": CharityInfo.model_json_schema() } prompt_text = ( @@ -118,20 +116,45 @@ def process_charity_website(charity: Charity) -> None: ) print(f"Sending text to OpenAI for structured extraction (length: {len(prompt_text)} chars)...") - completion = client.chat.completions.create( - model="gpt-4o", - messages=[ - {"role": "system", "content": "You are an expert assistant skilled in analyzing charity websites and extracting structured information according to the provided tool. Provide all requested fields: summary, tagline, category, and keywords."}, - {"role": "user", "content": prompt_text} - ], + response = client.responses.create( + model="gpt-5", + instructions="You are an expert assistant skilled in analyzing charity websites and extracting structured information according to the provided tool. Provide all requested fields: summary, tagline, category, and keywords.", + input=prompt_text, tools=[charity_info_tool], - tool_choice={"type": "function", "function": {"name": "extract_charity_information"}}, - temperature=0.3, # Slightly increased for more creative tagline/summary if needed + tool_choice={"type": "function", "name": "extract_charity_information"}, ) - tool_calls = completion.choices[0].message.tool_calls - if tool_calls and tool_calls[0].function.name == "extract_charity_information": - arguments_json = tool_calls[0].function.arguments + # Find the function call in the response output + # Items can be objects (with attributes) or dicts + function_call_item = None + for item in response.output: + # Handle both object attributes and dict keys + if isinstance(item, dict): + item_type = item.get('type') + item_name = item.get('name') + else: + item_type = getattr(item, 'type', None) + item_name = getattr(item, 'name', None) + + if item_type == 'function_call' and item_name == 'extract_charity_information': + function_call_item = item + break + + if function_call_item: + # Get arguments - handle both object and dict + if hasattr(function_call_item, 'arguments'): + arguments_raw = function_call_item.arguments + elif isinstance(function_call_item, dict): + arguments_raw = function_call_item.get('arguments', {}) + else: + arguments_raw = {} + + # Convert to JSON string if it's a dict/object + if isinstance(arguments_raw, (dict, str)): + arguments_json = json.dumps(arguments_raw) if isinstance(arguments_raw, dict) else arguments_raw + else: + arguments_json = json.dumps(arguments_raw) if arguments_raw else '{}' + print(f"Received arguments from OpenAI: {arguments_json}") try: charity_info = CharityInfo.model_validate_json(arguments_json) @@ -227,29 +250,52 @@ def generate_combined_mission_statement(user_query: str, charities_data: List[di combined_mission_tool = { "type": "function", - "function": { - "name": "extract_combined_charity_mission", - "description": "Extracts a combined, resonating mission statement for a list of charities based on user query.", - "parameters": CombinedCharityMission.model_json_schema() - } + "name": "extract_combined_charity_mission", + "description": "Extracts a combined, resonating mission statement for a list of charities based on user query.", + "parameters": CombinedCharityMission.model_json_schema() } try: print(f"Sending prompt to OpenAI for combined mission statement (query: '{user_query}', num_charities: {len(charities_data)})...") - completion = client.chat.completions.create( - model="gpt-4o-mini", # Or your preferred model, gpt-3.5-turbo might also work for this - messages=[ - {"role": "system", "content": "You are an expert assistant skilled in synthesizing information about multiple charities and a user query into a single, impactful mission statement. Respond using the provided tool."}, - {"role": "user", "content": prompt_text} - ], + response = client.responses.create( + model="gpt-5", + instructions="You are an expert assistant skilled in synthesizing information about multiple charities and a user query into a single, impactful mission statement. Respond using the provided tool.", + input=prompt_text, tools=[combined_mission_tool], - tool_choice={"type": "function", "function": {"name": "extract_combined_charity_mission"}}, - temperature=0.5, # Allow for some creativity + tool_choice={"type": "function", "name": "extract_combined_charity_mission"}, ) - tool_calls = completion.choices[0].message.tool_calls - if tool_calls and tool_calls[0].function.name == "extract_combined_charity_mission": - arguments_json = tool_calls[0].function.arguments + # Find the function call in the response output + # Items can be objects (with attributes) or dicts + function_call_item = None + for item in response.output: + # Handle both object attributes and dict keys + if isinstance(item, dict): + item_type = item.get('type') + item_name = item.get('name') + else: + item_type = getattr(item, 'type', None) + item_name = getattr(item, 'name', None) + + if item_type == 'function_call' and item_name == 'extract_combined_charity_mission': + function_call_item = item + break + + if function_call_item: + # Get arguments - handle both object and dict + if hasattr(function_call_item, 'arguments'): + arguments_raw = function_call_item.arguments + elif isinstance(function_call_item, dict): + arguments_raw = function_call_item.get('arguments', {}) + else: + arguments_raw = {} + + # Convert to JSON string if it's a dict/object + if isinstance(arguments_raw, (dict, str)): + arguments_json = json.dumps(arguments_raw) if isinstance(arguments_raw, dict) else arguments_raw + else: + arguments_json = json.dumps(arguments_raw) if arguments_raw else '{}' + print(f"Received combined mission arguments from OpenAI: {arguments_json}") try: combined_mission_info = CombinedCharityMission.model_validate_json(arguments_json) @@ -301,29 +347,53 @@ def fallback_charity_search(q: str, limit: int = 6) -> List[Charity]: try: enhanced_query_tool = { "type": "function", - "function": { - "name": "enhance_user_query", - "description": "Enhances a user query for better semantic search in a charity database.", - "parameters": EnhancedQuery.model_json_schema() # Pydantic v2 method - } + "name": "enhance_user_query", + "description": "Enhances a user query for better semantic search in a charity database.", + "parameters": EnhancedQuery.model_json_schema() # Pydantic v2 method } prompt = f"Enhance the following user query to make it more effective for semantic search in a database of charities. Focus on keywords and the underlying intent. Return the enhanced query.\n\nUser Query: '{user_query}'" - enhanced_query_completion = client.chat.completions.create( - model="gpt-4o", - messages=[ - {"role": "system", "content": "You are an expert query enhancer. Your goal is to refine user queries for better semantic search against a charity database. Respond using the provided tool."}, - {"role": "user", "content": prompt} - ], + response = client.responses.create( + model="gpt-5", + instructions="You are an expert query enhancer. Your goal is to refine user queries for better semantic search against a charity database. Respond using the provided tool.", + input=prompt, tools=[enhanced_query_tool], - tool_choice={"type": "function", "function": {"name": "enhance_user_query"}}, - temperature=0.1, + tool_choice={"type": "function", "name": "enhance_user_query"}, ) search_query_text = user_query # Default to original query - tool_calls = enhanced_query_completion.choices[0].message.tool_calls - if tool_calls and tool_calls[0].function.name == "enhance_user_query": - arguments_json = tool_calls[0].function.arguments + + # Find the function call in the response output + # Items can be objects (with attributes) or dicts + function_call_item = None + for item in response.output: + # Handle both object attributes and dict keys + if isinstance(item, dict): + item_type = item.get('type') + item_name = item.get('name') + else: + item_type = getattr(item, 'type', None) + item_name = getattr(item, 'name', None) + + if item_type == 'function_call' and item_name == 'enhance_user_query': + function_call_item = item + break + + if function_call_item: + # Get arguments - handle both object and dict + if hasattr(function_call_item, 'arguments'): + arguments_raw = function_call_item.arguments + elif isinstance(function_call_item, dict): + arguments_raw = function_call_item.get('arguments', {}) + else: + arguments_raw = {} + + # Convert to JSON string if it's a dict/object + if isinstance(arguments_raw, (dict, str)): + arguments_json = json.dumps(arguments_raw) if isinstance(arguments_raw, dict) else arguments_raw + else: + arguments_json = json.dumps(arguments_raw) if arguments_raw else '{}' + try: enhanced_query_data = EnhancedQuery.model_validate_json(arguments_json) # Pydantic v2 method search_query_text = enhanced_query_data.enhanced_query diff --git a/backend/eunoia_backend/trigger_movement_research.py b/backend/eunoia_backend/trigger_movement_research.py new file mode 100644 index 0000000..7a03f73 --- /dev/null +++ b/backend/eunoia_backend/trigger_movement_research.py @@ -0,0 +1,140 @@ +import os +import django + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eunoia_backend.settings') +django.setup() + +from main.models import Charity +from agents_sdk import launch_charity_research_in_background + +# List of test charity names from register_test_charities.py +test_charity_names = [ + 'Global Water Initiative', + 'Education For All Foundation', + 'Wildlife Conservation Network', + 'Green Earth Climate Action', + 'Community Health Partners', + 'Arts & Culture Preservation Society', + 'Human Rights Advocacy Network', + 'Disaster Relief Response Team', + 'Rural Development Initiative', + 'Tech For Good Collective' +] + +def trigger_research_for_test_charities(): + """Trigger movement research for all test charities.""" + print("=" * 60) + print("Triggering movement research for test charities...") + print("=" * 60) + + triggered = 0 + skipped = 0 + + for name in test_charity_names: + charity = Charity.objects.filter(name=name).first() + if not charity: + print(f"⚠️ '{name}' not found in database, skipping...") + skipped += 1 + continue + + if not charity.website_url: + print(f"⚠️ '{name}' has no website URL, skipping...") + skipped += 1 + continue + + print(f"🔄 Launching research for: {name} (ID: {charity.id})") + print(f" Website: {charity.website_url}") + launch_charity_research_in_background(charity.id, max_pages=6) + triggered += 1 + print("-" * 60) + + print("=" * 60) + print(f"✅ Successfully triggered research for {triggered} charities!") + if skipped > 0: + print(f"⚠️ Skipped {skipped} charities (not found or no website)") + print("\n💡 Note: Research runs in background threads. Check logs for progress.") + print(" Movements will appear in the database once research completes.") + +def trigger_research_for_all_charities(): + """Trigger movement research for ALL charities with website URLs.""" + print("=" * 60) + print("Triggering movement research for ALL charities with websites...") + print("=" * 60) + + charities = Charity.objects.exclude(website_url__isnull=True).exclude(website_url='') + total = charities.count() + + print(f"Found {total} charities with website URLs\n") + + triggered = 0 + for charity in charities: + print(f"🔄 Launching research for: {charity.name} (ID: {charity.id})") + print(f" Website: {charity.website_url}") + launch_charity_research_in_background(charity.id, max_pages=6) + triggered += 1 + + print("=" * 60) + print(f"✅ Successfully triggered research for {triggered} charities!") + print("\n💡 Note: Research runs in background threads. Check logs for progress.") + +def trigger_research_for_charity_by_id(charity_id: int): + """Trigger movement research for a specific charity by ID.""" + try: + charity = Charity.objects.get(id=charity_id) + + if not charity.website_url: + print(f"❌ Charity '{charity.name}' (ID: {charity_id}) has no website URL!") + return + + print(f"🔄 Launching research for: {charity.name} (ID: {charity_id})") + print(f" Website: {charity.website_url}") + launch_charity_research_in_background(charity_id, max_pages=6) + print(f"✅ Research triggered! Check logs for progress.") + + except Charity.DoesNotExist: + print(f"❌ Charity with ID {charity_id} not found!") + +def trigger_research_for_charity_by_name(name: str): + """Trigger movement research for a specific charity by name.""" + charity = Charity.objects.filter(name=name).first() + + if not charity: + print(f"❌ Charity '{name}' not found!") + return + + if not charity.website_url: + print(f"❌ Charity '{name}' has no website URL!") + return + + print(f"🔄 Launching research for: {charity.name} (ID: {charity.id})") + print(f" Website: {charity.website_url}") + launch_charity_research_in_background(charity.id, max_pages=6) + print(f"✅ Research triggered! Check logs for progress.") + +if __name__ == "__main__": + import sys + + if len(sys.argv) > 1: + arg = sys.argv[1].lower() + + if arg == "--all": + trigger_research_for_all_charities() + elif arg == "--test": + trigger_research_for_test_charities() + elif arg.isdigit(): + # Assume it's a charity ID + trigger_research_for_charity_by_id(int(arg)) + else: + # Assume it's a charity name + trigger_research_for_charity_by_name(sys.argv[1]) + else: + # Default: trigger for test charities + print("Usage:") + print(" python trigger_movement_research.py # Test charities only") + print(" python trigger_movement_research.py --test # Test charities only") + print(" python trigger_movement_research.py --all # All charities") + print(" python trigger_movement_research.py # Specific charity by ID") + print(" python trigger_movement_research.py '' # Specific charity by name") + print() + trigger_research_for_test_charities() + diff --git a/eunoia_web/.papi/descriptors/package.json b/eunoia_web/.papi/descriptors/package.json index 285c81c..99e5d2e 100644 --- a/eunoia_web/.papi/descriptors/package.json +++ b/eunoia_web/.papi/descriptors/package.json @@ -1,5 +1,5 @@ { - "version": "0.1.0-autogenerated.6554241485927049051", + "version": "0.1.0-autogenerated.12133326621938921434", "name": "@polkadot-api/descriptors", "files": [ "dist" diff --git a/eunoia_web/.papi/metadata/dot.scale b/eunoia_web/.papi/metadata/dot.scale index 89ec73bc24a8b73b8eda6adfc94add7e375fbc4c..f4cd73a8a672aab2708f07e931a1eb47de5156cc 100644 GIT binary patch delta 54021 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 GDE=39j?f?g delta 42517 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 diff --git a/eunoia_web/.papi/polkadot-api.json b/eunoia_web/.papi/polkadot-api.json index eb036fb..2fa0ecd 100644 --- a/eunoia_web/.papi/polkadot-api.json +++ b/eunoia_web/.papi/polkadot-api.json @@ -6,7 +6,7 @@ "chain": "polkadot", "metadata": ".papi\\metadata\\dot.scale", "genesis": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", - "codeHash": "0x0627ae9ae2a8d0de99a7dad056136f855f32f82391c48bf8a531506fe231a42b" + "codeHash": "0xa4d527cb0db4146686eeffb216b562fe68440185d5067e6177d1681ff7bb3043" } } } diff --git a/eunoia_web/package-lock.json b/eunoia_web/package-lock.json index dcd1e1e..a1d00ff 100644 --- a/eunoia_web/package-lock.json +++ b/eunoia_web/package-lock.json @@ -16,6 +16,8 @@ "@mui/icons-material": "^7.1.0", "@mui/material": "^7.1.0", "@polkadot-api/descriptors": "file:.papi\\descriptors", + "@polkadot/api": "^10.12.2", + "@polkadot/extension-dapp": "^0.46.6", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", @@ -27,11 +29,14 @@ "react-router-dom": "^7.6.0", "react-scripts": "^5.0.1", "web-vitals": "^2.1.4" + }, + "engines": { + "node": ">=20.0.0" } }, ".papi/descriptors": { "name": "@polkadot-api/descriptors", - "version": "0.1.0-autogenerated.6554241485927049051", + "version": "0.1.0-autogenerated.12133326621938921434", "peerDependencies": { "polkadot-api": ">=1.11.2" } @@ -4760,6 +4765,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@polkadot-api/client": { + "version": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/client/-/client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz", + "integrity": "sha512-0fqK6pUKcGHSG2pBvY+gfSS+1mMdjd/qRygAcKI5d05tKsnZLRnmhb9laDguKmGEIB0Bz9vQqNK3gIN/cfvVwg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/metadata-builders": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@polkadot-api/substrate-bindings": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@polkadot-api/substrate-client": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@polkadot-api/utils": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + }, + "peerDependencies": { + "rxjs": ">=7.8.0" + } + }, "node_modules/@polkadot-api/codegen": { "version": "0.18.3", "resolved": "https://registry.npmjs.org/@polkadot-api/codegen/-/codegen-0.18.3.tgz", @@ -4874,6 +4895,20 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@polkadot-api/json-rpc-provider": { + "version": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz", + "integrity": "sha512-EaUS9Fc3wsiUr6ZS43PQqaRScW7kM6DYbuM/ou0aYjm8N9MBqgDbGm2oL6RE1vAVmOfEuHcXZuZkhzWtyvQUtA==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot-api/json-rpc-provider-proxy": { + "version": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz", + "integrity": "sha512-0hZ8vtjcsyCX8AyqP2sqUHa1TFFfxGWmlXJkit0Nqp9b32MwZqn5eaUAiV2rNuEpoglKOdKnkGtUF8t5MoodKw==", + "license": "MIT", + "optional": true + }, "node_modules/@polkadot-api/known-chains": { "version": "0.9.8", "resolved": "https://registry.npmjs.org/@polkadot-api/known-chains/-/known-chains-0.9.8.tgz", @@ -5000,6 +5035,17 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@polkadot-api/metadata-builders": { + "version": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz", + "integrity": "sha512-BD7rruxChL1VXt0icC2gD45OtT9ofJlql0qIllHSRYgama1CR2Owt+ApInQxB+lWqM+xNOznZRpj8CXNDvKIMg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/substrate-bindings": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@polkadot-api/utils": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + } + }, "node_modules/@polkadot-api/metadata-compatibility": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-compatibility/-/metadata-compatibility-0.3.5.tgz", @@ -5302,6 +5348,33 @@ } } }, + "node_modules/@polkadot-api/substrate-bindings": { + "version": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz", + "integrity": "sha512-N4vdrZopbsw8k57uG58ofO7nLXM4Ai7835XqakN27MkjXMp5H830A1KJE0L9sGQR7ukOCDEIHHcwXVrzmJ/PBg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "@polkadot-api/utils": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@scure/base": "^1.1.1", + "scale-ts": "^1.6.0" + } + }, + "node_modules/@polkadot-api/substrate-client": { + "version": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz", + "integrity": "sha512-lcdvd2ssUmB1CPzF8s2dnNOqbrDa+nxaaGbuts+Vo8yjgSKwds2Lo7Oq+imZN4VKW7t9+uaVcKFLMF7PdH0RWw==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot-api/utils": { + "version": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz", + "integrity": "sha512-0CYaCjfLQJTCRCiYvZ81OncHXEKPzAexCMoVloR+v2nl/O2JRya/361MtPkeNLC6XBoaEgLAG9pWQpH3WePzsw==", + "license": "MIT", + "optional": true + }, "node_modules/@polkadot-api/wasm-executor": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@polkadot-api/wasm-executor/-/wasm-executor-0.2.1.tgz", @@ -5347,6 +5420,607 @@ } } }, + "node_modules/@polkadot/api": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-10.13.1.tgz", + "integrity": "sha512-YrKWR4TQR5CDyGkF0mloEUo7OsUA+bdtENpJGOtNavzOQUDEbxFE0PVzokzZfVfHhHX2CojPVmtzmmLxztyJkg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api-augment": "10.13.1", + "@polkadot/api-base": "10.13.1", + "@polkadot/api-derive": "10.13.1", + "@polkadot/keyring": "^12.6.2", + "@polkadot/rpc-augment": "10.13.1", + "@polkadot/rpc-core": "10.13.1", + "@polkadot/rpc-provider": "10.13.1", + "@polkadot/types": "10.13.1", + "@polkadot/types-augment": "10.13.1", + "@polkadot/types-codec": "10.13.1", + "@polkadot/types-create": "10.13.1", + "@polkadot/types-known": "10.13.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "eventemitter3": "^5.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-augment": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.13.1.tgz", + "integrity": "sha512-IAKaCp19QxgOG4HKk9RAgUgC/VNVqymZ2GXfMNOZWImZhxRIbrK+raH5vN2MbWwtVHpjxyXvGsd1RRhnohI33A==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api-base": "10.13.1", + "@polkadot/rpc-augment": "10.13.1", + "@polkadot/types": "10.13.1", + "@polkadot/types-augment": "10.13.1", + "@polkadot/types-codec": "10.13.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-base": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-10.13.1.tgz", + "integrity": "sha512-Okrw5hjtEjqSMOG08J6qqEwlUQujTVClvY1/eZkzKwNzPelWrtV6vqfyJklB7zVhenlxfxqhZKKcY7zWSW/q5Q==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-core": "10.13.1", + "@polkadot/types": "10.13.1", + "@polkadot/util": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-derive": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-10.13.1.tgz", + "integrity": "sha512-ef0H0GeCZ4q5Om+c61eLLLL29UxFC2/u/k8V1K2JOIU+2wD5LF7sjAoV09CBMKKHfkLenRckVk2ukm4rBqFRpg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api": "10.13.1", + "@polkadot/api-augment": "10.13.1", + "@polkadot/api-base": "10.13.1", + "@polkadot/rpc-core": "10.13.1", + "@polkadot/types": "10.13.1", + "@polkadot/types-codec": "10.13.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/@polkadot/extension-dapp": { + "version": "0.46.9", + "resolved": "https://registry.npmjs.org/@polkadot/extension-dapp/-/extension-dapp-0.46.9.tgz", + "integrity": "sha512-y5udSeQ/X9MEoyjlpTcCn0UAEjZ2jjy6U3V/jiVFQo5vBKhdqAhN1oN8X5c4yWurmhYM/7oibImxAjEoXuwH+Q==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/extension-inject": "0.46.9", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*", + "@polkadot/util-crypto": "*" + } + }, + "node_modules/@polkadot/extension-inject": { + "version": "0.46.9", + "resolved": "https://registry.npmjs.org/@polkadot/extension-inject/-/extension-inject-0.46.9.tgz", + "integrity": "sha512-m0jnrs9+jEOpMH6OUNl7nHpz9SFFWK9LzuqB8T3htEE3RUYPL//SLCPyEKxAAgHu7F8dgkUHssAWQfANofALCQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api": "^10.12.4", + "@polkadot/rpc-provider": "^10.12.4", + "@polkadot/types": "^10.12.4", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/keyring": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", + "integrity": "sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/util-crypto": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/util-crypto": "12.6.2" + } + }, + "node_modules/@polkadot/networks": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz", + "integrity": "sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "12.6.2", + "@substrate/ss58-registry": "^1.44.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-augment": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-10.13.1.tgz", + "integrity": "sha512-iLsWUW4Jcx3DOdVrSHtN0biwxlHuTs4QN2hjJV0gd0jo7W08SXhWabZIf9mDmvUJIbR7Vk+9amzvegjRyIf5+A==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-core": "10.13.1", + "@polkadot/types": "10.13.1", + "@polkadot/types-codec": "10.13.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-core": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-10.13.1.tgz", + "integrity": "sha512-eoejSHa+/tzHm0vwic62/aptTGbph8vaBpbvLIK7gd00+rT813ROz5ckB1CqQBFB23nHRLuzzX/toY8ID3xrKw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-augment": "10.13.1", + "@polkadot/rpc-provider": "10.13.1", + "@polkadot/types": "10.13.1", + "@polkadot/util": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-provider": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-10.13.1.tgz", + "integrity": "sha512-oJ7tatVXYJ0L7NpNiGd69D558HG5y5ZDmH2Bp9Dd4kFTQIiV8A39SlWwWUPCjSsen9lqSvvprNLnG/VHTpenbw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/keyring": "^12.6.2", + "@polkadot/types": "10.13.1", + "@polkadot/types-support": "10.13.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-fetch": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "@polkadot/x-ws": "^12.6.2", + "eventemitter3": "^5.0.1", + "mock-socket": "^9.3.1", + "nock": "^13.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@substrate/connect": "0.8.8" + } + }, + "node_modules/@polkadot/rpc-provider/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/@polkadot/types": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-10.13.1.tgz", + "integrity": "sha512-Hfvg1ZgJlYyzGSAVrDIpp3vullgxrjOlh/CSThd/PI4TTN1qHoPSFm2hs77k3mKkOzg+LrWsLE0P/LP2XddYcw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/keyring": "^12.6.2", + "@polkadot/types-augment": "10.13.1", + "@polkadot/types-codec": "10.13.1", + "@polkadot/types-create": "10.13.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-augment": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-10.13.1.tgz", + "integrity": "sha512-TcrLhf95FNFin61qmVgOgayzQB/RqVsSg9thAso1Fh6pX4HSbvI35aGPBAn3SkA6R+9/TmtECirpSNLtIGFn0g==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/types": "10.13.1", + "@polkadot/types-codec": "10.13.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-codec": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-10.13.1.tgz", + "integrity": "sha512-AiQ2Vv2lbZVxEdRCN8XSERiWlOWa2cTDLnpAId78EnCtx4HLKYQSd+Jk9Y4BgO35R79mchK4iG+w6gZ+ukG2bg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "^12.6.2", + "@polkadot/x-bigint": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-create": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-10.13.1.tgz", + "integrity": "sha512-Usn1jqrz35SXgCDAqSXy7mnD6j4RvB4wyzTAZipFA6DGmhwyxxIgOzlWQWDb+1PtPKo9vtMzen5IJ+7w5chIeA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/types-codec": "10.13.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-known": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-10.13.1.tgz", + "integrity": "sha512-uHjDW05EavOT5JeU8RbiFWTgPilZ+odsCcuEYIJGmK+es3lk/Qsdns9Zb7U7NJl7eJ6OWmRtyrWsLs+bU+jjIQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/networks": "^12.6.2", + "@polkadot/types": "10.13.1", + "@polkadot/types-codec": "10.13.1", + "@polkadot/types-create": "10.13.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-support": { + "version": "10.13.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-10.13.1.tgz", + "integrity": "sha512-4gEPfz36XRQIY7inKq0HXNVVhR6HvXtm7yrEmuBuhM86LE0lQQBkISUSgR358bdn2OFSLMxMoRNoh3kcDvdGDQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz", + "integrity": "sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-bigint": "12.6.2", + "@polkadot/x-global": "12.6.2", + "@polkadot/x-textdecoder": "12.6.2", + "@polkadot/x-textencoder": "12.6.2", + "@types/bn.js": "^5.1.5", + "bn.js": "^5.2.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util-crypto": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz", + "integrity": "sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==", + "license": "Apache-2.0", + "dependencies": { + "@noble/curves": "^1.3.0", + "@noble/hashes": "^1.3.3", + "@polkadot/networks": "12.6.2", + "@polkadot/util": "12.6.2", + "@polkadot/wasm-crypto": "^7.3.2", + "@polkadot/wasm-util": "^7.3.2", + "@polkadot/x-bigint": "12.6.2", + "@polkadot/x-randomvalues": "12.6.2", + "@scure/base": "^1.1.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2" + } + }, + "node_modules/@polkadot/wasm-bridge": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.5.1.tgz", + "integrity": "sha512-E+N3CSnX3YaXpAmfIQ+4bTyiAqJQKvVcMaXjkuL8Tp2zYffClWLG5e+RY15Uh+EWfUl9If4y6cLZi3D5NcpAGQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-util": "7.5.1", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.5.1.tgz", + "integrity": "sha512-acjt4VJ3w19v7b/SIPsV/5k9s6JsragHKPnwoZ0KTfBvAFXwzz80jUzVGxA06SKHacfCUe7vBRlz7M5oRby1Pw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-bridge": "7.5.1", + "@polkadot/wasm-crypto-asmjs": "7.5.1", + "@polkadot/wasm-crypto-init": "7.5.1", + "@polkadot/wasm-crypto-wasm": "7.5.1", + "@polkadot/wasm-util": "7.5.1", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-asmjs": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.5.1.tgz", + "integrity": "sha512-jAg7Uusk+xeHQ+QHEH4c/N3b1kEGBqZb51cWe+yM61kKpQwVGZhNdlWetW6U23t/BMyZArIWMsZqmK/Ij0PHog==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-init": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.5.1.tgz", + "integrity": "sha512-Obu4ZEo5jYO6sN31eqCNOXo88rPVkP9TrUOyynuFCnXnXr8V/HlmY/YkAd9F87chZnkTJRlzak17kIWr+i7w3A==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-bridge": "7.5.1", + "@polkadot/wasm-crypto-asmjs": "7.5.1", + "@polkadot/wasm-crypto-wasm": "7.5.1", + "@polkadot/wasm-util": "7.5.1", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-wasm": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.5.1.tgz", + "integrity": "sha512-S2yQSGbOGTcaV6UdipFVyEGanJvG6uD6Tg7XubxpiGbNAblsyYKeFcxyH1qCosk/4qf+GIUwlOL4ydhosZflqg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-util": "7.5.1", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-util": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.5.1.tgz", + "integrity": "sha512-sbvu71isFhPXpvMVX+EkRnUg/+54Tx7Sf9BEMqxxoPj7cG1I/MKeDEwbQz6MaU4gm7xJqvEWCAemLFcXfHQ/2A==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/x-bigint": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz", + "integrity": "sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-fetch": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz", + "integrity": "sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "node-fetch": "^3.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-fetch/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/@polkadot/x-global": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz", + "integrity": "sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-randomvalues": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz", + "integrity": "sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/wasm-util": "*" + } + }, + "node_modules/@polkadot/x-textdecoder": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz", + "integrity": "sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-textencoder": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz", + "integrity": "sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-ws": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz", + "integrity": "sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2", + "ws": "^8.15.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-ws/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -6036,6 +6710,59 @@ "node": ">=14.17" } }, + "node_modules/@substrate/connect": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.8.tgz", + "integrity": "sha512-zwaxuNEVI9bGt0rT8PEJiXOyebLIo6QN1SyiAHRPBOl6g3Sy0KKdSN8Jmyn++oXhVRD8aIe75/V8ZkS81T+BPQ==", + "deprecated": "versions below 1.x are no longer maintained", + "license": "GPL-3.0-only", + "optional": true, + "dependencies": { + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.1", + "@substrate/light-client-extension-helpers": "^0.0.4", + "smoldot": "2.0.22" + } + }, + "node_modules/@substrate/connect-extension-protocol": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.2.tgz", + "integrity": "sha512-t66jwrXA0s5Goq82ZtjagLNd7DPGCNjHeehRlE/gcJmJ+G56C0W+2plqOMRicJ8XGR1/YFnUSEqUFiSNbjGrAA==", + "license": "GPL-3.0-only", + "optional": true + }, + "node_modules/@substrate/connect-known-chains": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.10.3.tgz", + "integrity": "sha512-OJEZO1Pagtb6bNE3wCikc2wrmvEU5x7GxFFLqqbz1AJYYxSlrPCGu4N2og5YTExo4IcloNMQYFRkBGue0BKZ4w==", + "license": "GPL-3.0-only", + "optional": true + }, + "node_modules/@substrate/light-client-extension-helpers": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.4.tgz", + "integrity": "sha512-vfKcigzL0SpiK+u9sX6dq2lQSDtuFLOxIJx2CKPouPEHIs8C+fpsufn52r19GQn+qDhU8POMPHOVoqLktj8UEA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/client": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@polkadot-api/json-rpc-provider": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@polkadot-api/json-rpc-provider-proxy": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@polkadot-api/substrate-client": "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0", + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.1", + "rxjs": "^7.8.1" + }, + "peerDependencies": { + "smoldot": "2.x" + } + }, + "node_modules/@substrate/ss58-registry": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.51.0.tgz", + "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==", + "license": "Apache-2.0" + }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -6471,6 +7198,15 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -8293,8 +9029,7 @@ "node_modules/bn.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", - "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", - "peer": true + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==" }, "node_modules/body-parser": { "version": "1.20.3", @@ -9556,6 +10291,15 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -11351,6 +12095,29 @@ "bser": "2.1.1" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -11761,6 +12528,18 @@ "node": ">= 6" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -14462,8 +15241,7 @@ "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "peer": true + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { "version": "2.2.3", @@ -15030,6 +15808,15 @@ "ufo": "^1.6.1" } }, + "node_modules/mock-socket": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", + "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -15106,6 +15893,40 @@ "tslib": "^2.0.3" } }, + "node_modules/nock": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", + "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -17365,6 +18186,15 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -18910,6 +19740,38 @@ "node": ">=8" } }, + "node_modules/smoldot": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.22.tgz", + "integrity": "sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==", + "license": "GPL-3.0-or-later WITH Classpath-exception-2.0", + "optional": true, + "dependencies": { + "ws": "^8.8.1" + } + }, + "node_modules/smoldot/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -20837,6 +21699,15 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/web-vitals": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", diff --git a/eunoia_web/src/config.js b/eunoia_web/src/config.js index be1f976..986913c 100644 --- a/eunoia_web/src/config.js +++ b/eunoia_web/src/config.js @@ -1,4 +1,4 @@ -// export const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://127.0.0.1:8080/api'; -export const API_BASE_URL = 'https://eunoia-api-eya2hhfdfzcchyc2.canadacentral-01.azurewebsites.net/api'; +export const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://127.0.0.1:8080/api'; +// export const API_BASE_URL = 'https://eunoia-api-eya2hhfdfzcchyc2.canadacentral-01.azurewebsites.net/api'; // export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://testnet-passet-hub.polkadot.io'; export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://polkadot-rpc.publicnode.com'; From 02faaf63518354340eb42725ee8a7ef31ad1dffc Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Wed, 29 Oct 2025 17:35:59 +0200 Subject: [PATCH 02/16] updated movement research to synchronous --- AI_FEATURES_EUNOIA.md | 187 ++++++++++++++++++ .../trigger_movement_research.py | 105 ++++++++-- 2 files changed, 276 insertions(+), 16 deletions(-) create mode 100644 AI_FEATURES_EUNOIA.md diff --git a/AI_FEATURES_EUNOIA.md b/AI_FEATURES_EUNOIA.md new file mode 100644 index 0000000..d25bec8 --- /dev/null +++ b/AI_FEATURES_EUNOIA.md @@ -0,0 +1,187 @@ +# AI Features - Eunoia + +## Charity Registration + +We aim to make the charity registration process as seamless as possible. Our AI-powered system automatically extracts information from charity websites, categorizes charities, and discovers active movements/campaigns. + +### Automated AI Processing + +When a charity is registered **via the API or web form**, the following happens automatically: + +1. **Basic AI Extraction** (via `process_charity_website()` signal) + - Fetches and parses the charity's website + - Uses GPT-5 to extract: + - **Description**: 2-3 paragraph summary of mission and activities + - **Tagline**: Short, catchy phrase (max 15 words) + - **Category**: Automatically assigns from 9 categories (ENV, EDU, HEA, ANI, ART, HUM, COM, DIS, OTH) + - **Keywords**: 5-7 relevant keywords describing the charity's focus + - Generates semantic embedding for search/matching + - Runs synchronously (completes in seconds) + +2. **Comprehensive Research** (via `launch_charity_research_in_background()`) + - Crawls charity website (up to 6 pages) + - Uses GPT-4.1 to analyze: + - **Charity Profile**: Detailed profile extraction + - **Movements**: Discovers up to 5 active campaigns/initiatives per charity + - Creates `Movement` objects with: + - Title, summary, category, geography + - Source URLs, confidence scores + - Embeddings for semantic matching + - Runs asynchronously in background (takes minutes) + +### Test Charity Setup + +For development and testing, we provide scripts to quickly set up test charities: + +#### 1. Register Test Charities + +By running: + +```bash +cd backend/eunoia_backend +python register_test_charities.py +``` + +This script: +- Creates 10 test charities with diverse categories +- Pre-populates basic fields (name, description, wallet addresses, etc.) +- Triggers basic AI extraction (description, tagline, category, keywords) +- **Note**: Does NOT automatically fetch movements (see below) + +**Output:** +``` +Creating test charities... +================================================== +✅ Created: Global Water Initiative + Category: Health & Medicine + Location: Global + Status: ✅ VERIFIED + Contact: Sarah Chen +-------------------------------------------------- +... +✅ Successfully created 10 test charities! +📊 Total charities in database: 10 +``` + +#### 2. Fetch Movements for Test Charities + +Since test charities are created via direct ORM (bypassing API hooks), movements must be fetched manually. + +**Option A: Async Mode (Recommended)** +```bash +python trigger_movement_research.py +``` + +This will: +- Trigger research for all 10 test charities +- Wait for all background threads to complete +- Show progress as each charity finishes +- Display number of movements found per charity + +**Option B: Sync Mode (One at a time)** +```bash +python trigger_movement_research.py --wait +``` + +This runs synchronously, showing results immediately for each charity. + +**Option C: Django Management Command** +```bash +python manage.py research_existing_charity --test-only --sync +``` + +**Output:** +``` +🔄 Launching research for: Global Water Initiative (ID: 55) + Website: https://www.charitywater.org +------------------------------------------------------------ +⏳ Waiting for background research to complete... + [1/10] Thread completed + ✅ Global Water Initiative: 3 movements found + [2/10] Thread completed + ✅ Education For All Foundation: 2 movements found +... +``` + +### Complete Setup Workflow + +For a complete test environment setup: + +```bash +# 1. Register test charities +python register_test_charities.py + +# 2. Fetch movements for all test charities +python trigger_movement_research.py + +# 3. Verify movements were created +python manage.py shell +``` + +```python +# In Django shell +from main.models import Charity, Movement + +# Check movements for a charity +charity = Charity.objects.get(name="Global Water Initiative") +print(f"Movements for {charity.name}: {charity.movements.count()}") +for movement in charity.movements.all(): + print(f" - {movement.title}: {movement.summary[:50]}...") +``` + +### What Happens Automatically vs Manually + +| Action | When Created Via | What Runs Automatically | +|--------|-----------------|------------------------| +| **API** (`POST /api/charities/`) | REST API | ✅ Basic AI extraction
✅ Movement research | +| **Web Form** (`CharityRegistrationForm`) | Django form | ✅ Basic AI extraction
✅ Movement research | +| **Test Script** (`register_test_charities.py`) | Direct ORM | ✅ Basic AI extraction
❌ **NO** movement research* | + +*Movements must be fetched manually using `trigger_movement_research.py` + +### AI Models Used + +| Feature | Model | Purpose | +|---------|-------|---------| +| Basic extraction | GPT-5 | Description, tagline, category, keywords | +| Embeddings | text-embedding-3-small | Semantic search vectors | +| Charity profile | GPT-4.1 | Detailed profile analysis | +| Movement discovery | GPT-4.1 | Finding active campaigns/initiatives | + +### API Endpoints + +- **Register Charity**: `POST /api/charities/` + - Automatically triggers AI processing + - Returns charity object with AI-populated fields + +- **Get Charities**: `GET /api/charities/` + - Returns all charities with AI-extracted data + +- **Semantic Search**: `GET /api/charity-semantic-search/?query=` + - Uses embeddings for intelligent matching + - Returns charities ranked by relevance + +### Troubleshooting + +**Problem**: Movements not appearing after registration +- **Solution**: Use `trigger_movement_research.py` if charity was created via test script +- **Check**: Verify charity has `website_url` set + +**Problem**: AI extraction failed +- **Check**: Website URL is accessible and returns HTML +- **Check**: OpenAI API key is set in environment +- **Check**: Logs for specific error messages + +**Problem**: Research taking too long +- **Normal**: Each charity can take 2-5 minutes +- **Tip**: Use `--sync` mode to see progress in real-time +- **Check**: Network connectivity and API rate limits + +### Best Practices + +1. **Always provide website_url**: AI features require a website to extract information +2. **Verify extraction**: Check that `description`, `tagline`, `category`, and `keywords` are populated +3. **Wait for movements**: Allow background research to complete (use `--wait` flag for sync mode) +4. **Monitor logs**: Check Django logs for research progress and errors +5. **Test first**: Use test charities to verify AI features before production use + diff --git a/backend/eunoia_backend/trigger_movement_research.py b/backend/eunoia_backend/trigger_movement_research.py index 7a03f73..a44bd32 100644 --- a/backend/eunoia_backend/trigger_movement_research.py +++ b/backend/eunoia_backend/trigger_movement_research.py @@ -1,11 +1,12 @@ import os import django +import threading os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eunoia_backend.settings') django.setup() from main.models import Charity -from agents_sdk import launch_charity_research_in_background +from agents_sdk import launch_charity_research_in_background, research_charity_sync # List of test charity names from register_test_charities.py test_charity_names = [ @@ -21,14 +22,19 @@ 'Tech For Good Collective' ] -def trigger_research_for_test_charities(): +def trigger_research_for_test_charities(wait_for_completion=False): """Trigger movement research for all test charities.""" print("=" * 60) print("Triggering movement research for test charities...") + if wait_for_completion: + print("⏳ Running synchronously (will wait for completion)...") + else: + print("🔄 Running asynchronously (background threads)...") print("=" * 60) triggered = 0 skipped = 0 + threads = [] for name in test_charity_names: charity = Charity.objects.filter(name=name).first() @@ -42,18 +48,59 @@ def trigger_research_for_test_charities(): skipped += 1 continue - print(f"🔄 Launching research for: {name} (ID: {charity.id})") + print(f"🔄 {'Researching' if wait_for_completion else 'Launching research for'}: {name} (ID: {charity.id})") print(f" Website: {charity.website_url}") - launch_charity_research_in_background(charity.id, max_pages=6) + + if wait_for_completion: + # Run synchronously + try: + result = research_charity_sync(charity.id, max_pages=6) + if result.get('success'): + print(f" ✅ Completed: {result.get('movements_found', 0)} movements found") + else: + print(f" ❌ Failed: {result.get('error')}") + except Exception as e: + print(f" ❌ Error: {str(e)}") + else: + # Run asynchronously but track threads + def _research_with_tracking(charity_id, charity_name): + try: + result = research_charity_sync(charity_id, max_pages=6) + if result.get('success'): + print(f" ✅ {charity_name}: {result.get('movements_found', 0)} movements found") + else: + print(f" ❌ {charity_name}: {result.get('error')}") + except Exception as e: + print(f" ❌ {charity_name}: Error - {str(e)}") + + thread = threading.Thread( + target=_research_with_tracking, + args=(charity.id, name), + daemon=False # Non-daemon so it keeps running + ) + thread.start() + threads.append(thread) + triggered += 1 print("-" * 60) + # Wait for all threads to complete if running async + if not wait_for_completion and threads: + print("\n⏳ Waiting for background research to complete...") + print(" (This may take several minutes per charity)") + for i, thread in enumerate(threads, 1): + thread.join() + print(f" [{i}/{len(threads)}] Thread completed") + print("=" * 60) - print(f"✅ Successfully triggered research for {triggered} charities!") + print(f"✅ Successfully {'completed' if wait_for_completion else 'triggered'} research for {triggered} charities!") if skipped > 0: print(f"⚠️ Skipped {skipped} charities (not found or no website)") - print("\n💡 Note: Research runs in background threads. Check logs for progress.") - print(" Movements will appear in the database once research completes.") + + if wait_for_completion: + print("\n✨ All research completed! Check the database for movements.") + else: + print("\n✨ Research completed! Check the database for movements.") def trigger_research_for_all_charities(): """Trigger movement research for ALL charities with website URLs.""" @@ -114,27 +161,53 @@ def trigger_research_for_charity_by_name(name: str): if __name__ == "__main__": import sys + # Check for --wait flag + wait_for_completion = "--wait" in sys.argv or "--sync" in sys.argv + if wait_for_completion: + sys.argv = [arg for arg in sys.argv if arg not in ["--wait", "--sync"]] + if len(sys.argv) > 1: arg = sys.argv[1].lower() if arg == "--all": trigger_research_for_all_charities() elif arg == "--test": - trigger_research_for_test_charities() + trigger_research_for_test_charities(wait_for_completion=wait_for_completion) elif arg.isdigit(): # Assume it's a charity ID - trigger_research_for_charity_by_id(int(arg)) + if wait_for_completion: + charity = Charity.objects.get(id=int(arg)) + result = research_charity_sync(int(arg), max_pages=6) + if result.get('success'): + print(f"✅ Completed: {result.get('movements_found', 0)} movements found") + else: + print(f"❌ Failed: {result.get('error')}") + else: + trigger_research_for_charity_by_id(int(arg)) else: # Assume it's a charity name - trigger_research_for_charity_by_name(sys.argv[1]) + if wait_for_completion: + charity = Charity.objects.filter(name=sys.argv[1]).first() + if charity: + result = research_charity_sync(charity.id, max_pages=6) + if result.get('success'): + print(f"✅ Completed: {result.get('movements_found', 0)} movements found") + else: + print(f"❌ Failed: {result.get('error')}") + else: + print(f"❌ Charity '{sys.argv[1]}' not found!") + else: + trigger_research_for_charity_by_name(sys.argv[1]) else: # Default: trigger for test charities print("Usage:") - print(" python trigger_movement_research.py # Test charities only") - print(" python trigger_movement_research.py --test # Test charities only") - print(" python trigger_movement_research.py --all # All charities") - print(" python trigger_movement_research.py # Specific charity by ID") - print(" python trigger_movement_research.py '' # Specific charity by name") + print(" python trigger_movement_research.py # Test charities (async)") + print(" python trigger_movement_research.py --wait # Test charities (sync, wait)") + print(" python trigger_movement_research.py --test # Test charities (async)") + print(" python trigger_movement_research.py --all # All charities") + print(" python trigger_movement_research.py # Specific charity by ID") + print(" python trigger_movement_research.py '' # Specific charity by name") + print("\nAdd --wait or --sync to wait for completion (synchronous mode)") print() - trigger_research_for_test_charities() + trigger_research_for_test_charities(wait_for_completion=wait_for_completion) From 95c8bf2a8e72d1719eb1127d3743dbe3906597a0 Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Wed, 29 Oct 2025 17:56:02 +0200 Subject: [PATCH 03/16] fixed the vision prompt view to restrict the donation to total amount, and better UX --- .../components/donate/VisionPromptView.jsx | 107 +++++------------- 1 file changed, 31 insertions(+), 76 deletions(-) diff --git a/eunoia_web/src/components/donate/VisionPromptView.jsx b/eunoia_web/src/components/donate/VisionPromptView.jsx index b88da4c..927862d 100644 --- a/eunoia_web/src/components/donate/VisionPromptView.jsx +++ b/eunoia_web/src/components/donate/VisionPromptView.jsx @@ -1,4 +1,4 @@ -import React, { useRef } from 'react'; +import React, { useRef, useEffect } from 'react'; import { Box, Typography, @@ -10,10 +10,7 @@ import { InputAdornment, IconButton, Tooltip, - Slider, MenuItem, - Chip, - Stack, Switch, FormControlLabel } from '@mui/material'; @@ -21,9 +18,6 @@ import { styled } from '@mui/material/styles'; import AccountBalanceWalletIcon from '@mui/icons-material/AccountBalanceWallet'; import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; import RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline'; -import TwitterIcon from '@mui/icons-material/Twitter'; -import InstagramIcon from '@mui/icons-material/Instagram'; -import LinkedInIcon from '@mui/icons-material/LinkedIn'; import ChevronRightIcon from '@mui/icons-material/ChevronRight'; const StepContent = styled(Box)(({ theme }) => ({ @@ -95,9 +89,12 @@ const VisionPromptView = ({ // Select the appropriate options based on the active chain const cryptoOptions = activeChain === 'polkadot' ? polkadotCryptoOptions : aptosCryptoOptions; - const handleSocialChange = (platform, value) => { - setSocialHandles(prev => ({ ...prev, [platform]: value })); - }; + // Ensure donation amount never exceeds wallet balance + useEffect(() => { + if (walletBalance > 0 && totalDonationAmount > walletBalance) { + setTotalDonationAmount(walletBalance); + } + }, [walletBalance, totalDonationAmount, setTotalDonationAmount]); const isNextDisabled = !visionPrompt.trim() || @@ -126,16 +123,12 @@ const VisionPromptView = ({ value={visionPrompt} onChange={(e) => setVisionPrompt(e.target.value)} sx={{ - mb: 1, '& .MuiOutlinedInput-root': { borderRadius: '12px', backgroundColor: alpha(theme.palette.common.white, 0.5) } }} /> - @@ -183,15 +176,36 @@ const VisionPromptView = ({ onChange={(e) => { const value = Number(e.target.value); if (!isNaN(value) && value >= 0) { - setTotalDonationAmount(value); + // Ensure amount never exceeds wallet balance + const maxAmount = walletBalance > 0 ? walletBalance : 0; + const clampedValue = Math.min(value, maxAmount); + setTotalDonationAmount(clampedValue); } }} + inputProps={{ + min: 0, + max: walletBalance > 0 ? walletBalance : 0, + }} InputProps={{ endAdornment: - setTotalDonationAmount(Math.max(1, totalDonationAmount - 1))}> + { + const newAmount = Math.max(0, totalDonationAmount - 1); + setTotalDonationAmount(newAmount); + }} + > - setTotalDonationAmount(totalDonationAmount + 1)}> + { + const maxAmount = walletBalance > 0 ? walletBalance : 0; + const newAmount = Math.min(totalDonationAmount + 1, maxAmount); + setTotalDonationAmount(newAmount); + }} + disabled={walletBalance > 0 && totalDonationAmount >= walletBalance} + > @@ -235,65 +249,6 @@ const VisionPromptView = ({ ))} - - 0 ? walletBalance : 1} // Using wallet balance as max value - step={1} - onChange={(e, newValue) => { - const value = Number(newValue); - if (!isNaN(value) && value >= 0) { - setTotalDonationAmount(value); - } - }} - aria-labelledby="donation-amount-slider" - sx={{color: 'primary.main'}} - valueLabelDisplay="auto" - /> - - 1 {cryptoOptions[0].value} - {(walletBalance > 0 ? walletBalance : 1).toFixed(2)} {cryptoOptions[0].value} - - - - - - - Want smarter matches? Share your socials. - - - We'll never post or share anything. This helps our AI understand your interests better. - - - handleSocialChange('twitter', e.target.value)} - InputProps={{ startAdornment: }} - sx={{backgroundColor: alpha(theme.palette.common.white, 0.5), borderRadius: '8px'}} - /> - handleSocialChange('instagram', e.target.value)} - InputProps={{ startAdornment: }} - sx={{backgroundColor: alpha(theme.palette.common.white, 0.5), borderRadius: '8px'}} - /> - handleSocialChange('linkedin', e.target.value)} - InputProps={{ startAdornment: }} - sx={{backgroundColor: alpha(theme.palette.common.white, 0.5), borderRadius: '8px'}} - /> - From dc603918ee96cbd94fbcb2c4409c09dc2d901dd2 Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Wed, 29 Oct 2025 18:20:52 +0200 Subject: [PATCH 04/16] improved results page view --- eunoia_web/package-lock.json | 33 ++ eunoia_web/package.json | 2 + .../src/components/CharityResultCard.js | 34 +- eunoia_web/src/components/ImpactMap.js | 305 ++++++++++++------ .../components/donate/AiProcessingView.jsx | 24 +- .../components/donate/CharityResultsView.jsx | 105 ++++-- 6 files changed, 362 insertions(+), 141 deletions(-) diff --git a/eunoia_web/package-lock.json b/eunoia_web/package-lock.json index a1d00ff..9896c7c 100644 --- a/eunoia_web/package-lock.json +++ b/eunoia_web/package-lock.json @@ -22,10 +22,12 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "leaflet": "^1.9.4", "petra-plugin-wallet-adapter": "^0.4.5", "polkadot-api": "^1.17.1", "react": "^19.1.0", "react-dom": "^19.1.0", + "react-leaflet": "^5.0.0", "react-router-dom": "^7.6.0", "react-scripts": "^5.0.1", "web-vitals": "^2.1.4" @@ -6061,6 +6063,17 @@ } } }, + "node_modules/@react-leaflet/core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", + "integrity": "sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ==", + "license": "Hippocratic-2.1", + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -15374,6 +15387,12 @@ "shell-quote": "^1.8.1" } }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -18501,6 +18520,20 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-leaflet": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz", + "integrity": "sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw==", + "license": "Hippocratic-2.1", + "dependencies": { + "@react-leaflet/core": "^3.0.0" + }, + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", diff --git a/eunoia_web/package.json b/eunoia_web/package.json index 53c107e..e5395ea 100644 --- a/eunoia_web/package.json +++ b/eunoia_web/package.json @@ -17,10 +17,12 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "leaflet": "^1.9.4", "petra-plugin-wallet-adapter": "^0.4.5", "polkadot-api": "^1.17.1", "react": "^19.1.0", "react-dom": "^19.1.0", + "react-leaflet": "^5.0.0", "react-router-dom": "^7.6.0", "react-scripts": "^5.0.1", "web-vitals": "^2.1.4" diff --git a/eunoia_web/src/components/CharityResultCard.js b/eunoia_web/src/components/CharityResultCard.js index 13940d5..9842e3d 100644 --- a/eunoia_web/src/components/CharityResultCard.js +++ b/eunoia_web/src/components/CharityResultCard.js @@ -25,22 +25,24 @@ import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; import RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline'; const StyledCard = styled(Card)(({ theme, selected }) => ({ - height: '100%', + minHeight: '320px', + maxHeight: '420px', display: 'flex', flexDirection: 'column', borderRadius: '16px', - transition: 'transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out', - border: selected ? `3px solid ${theme.palette.primary.main}` : `1px solid ${theme.palette.divider}`, + transition: 'all 0.3s ease-in-out', + border: selected ? `2px solid ${theme.palette.primary.main}` : `1px solid ${theme.palette.divider}`, boxShadow: selected - ? `0 10px 25px ${alpha(theme.palette.primary.main, 0.35)}` - : theme.shadows[3], + ? `0 8px 20px ${alpha(theme.palette.primary.main, 0.3)}` + : theme.shadows[2], cursor: 'pointer', position: 'relative', + backgroundColor: selected ? alpha(theme.palette.primary.main, 0.02) : theme.palette.background.paper, '&:hover': { - transform: 'translateY(-5px)', + transform: 'translateY(-3px)', boxShadow: selected - ? `0 14px 30px ${alpha(theme.palette.primary.main, 0.4)}` - : theme.shadows[6], + ? `0 10px 24px ${alpha(theme.palette.primary.main, 0.35)}` + : theme.shadows[4], }, })); @@ -109,8 +111,8 @@ const CharityResultCard = ({ }} /> )} - - + + + {charity?.name || 'Charity'} diff --git a/eunoia_web/src/components/ImpactMap.js b/eunoia_web/src/components/ImpactMap.js index c0c6d15..f9c2834 100644 --- a/eunoia_web/src/components/ImpactMap.js +++ b/eunoia_web/src/components/ImpactMap.js @@ -1,123 +1,248 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import { Box, Typography, Paper, Chip } from '@mui/material'; import { styled, alpha } from '@mui/material/styles'; +import { MapContainer, TileLayer, Marker, Popup, Circle } from 'react-leaflet'; +import L from 'leaflet'; +import 'leaflet/dist/leaflet.css'; +// Fix for default marker icons in react-leaflet +delete L.Icon.Default.prototype._getIconUrl; +L.Icon.Default.mergeOptions({ + iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'), + iconUrl: require('leaflet/dist/images/marker-icon.png'), + shadowUrl: require('leaflet/dist/images/marker-shadow.png'), +}); -// Styled map container -const MapContainer = styled(Paper)(({ theme }) => ({ +// Styled map container wrapper +const MapWrapper = styled(Box)(({ theme }) => ({ position: 'relative', - height: '300px', + height: '350px', width: '100%', - borderRadius: '8px', + borderRadius: '12px', overflow: 'hidden', - backgroundImage: 'url("https://images.unsplash.com/photo-1530056046039-5488bdcc0de6?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=600&q=80")', - backgroundSize: 'cover', - backgroundPosition: 'center', - display: 'flex', - flexDirection: 'column', - justifyContent: 'flex-end', - '&::before': { - content: '""', - position: 'absolute', - top: 0, - left: 0, - right: 0, - bottom: 0, - backgroundColor: alpha(theme.palette.common.black, 0.4), - zIndex: 1 + '& .leaflet-container': { + height: '100%', + width: '100%', + borderRadius: '12px', + zIndex: 0 } })); -// Location marker component -const ImpactMarker = styled(Paper)(({ theme, color = 'primary.main' }) => ({ - position: 'absolute', - width: '12px', - height: '12px', - borderRadius: '50%', - backgroundColor: theme.palette[color.split('.')[0]][color.split('.')[1] || 'main'], - border: `2px solid ${theme.palette.common.white}`, - transform: 'translate(-50%, -50%)', - zIndex: 2, - cursor: 'pointer', - boxShadow: theme.shadows[2], - '&:hover': { - transform: 'translate(-50%, -50%) scale(1.5)', - transition: 'transform 0.2s ease-in-out', - }, -})); - // Legend overlay -const MapLegend = styled(Box)(({ theme }) => ({ - position: 'relative', - zIndex: 2, +const MapLegend = styled(Paper)(({ theme }) => ({ + position: 'absolute', + bottom: '10px', + left: '10px', + zIndex: 1000, padding: theme.spacing(1.5), - backgroundColor: alpha(theme.palette.background.paper, 0.85), - backdropFilter: 'blur(4px)', - borderTop: `1px solid ${alpha(theme.palette.divider, 0.6)}`, + backgroundColor: alpha(theme.palette.background.paper, 0.95), + backdropFilter: 'blur(8px)', + borderRadius: '8px', + maxWidth: '250px', + boxShadow: theme.shadows[3], })); -// Mock geocoding function - Simplified coordinates for visual placement only -const MOCK_GEOCODES = { - 'Hope Uganda Initiative': { x: 62, y: 42, name: 'Kampala, Uganda' }, - "African Children's Fund": { x: 65, y: 48, name: 'Nairobi, Kenya' }, - 'Faithful Scholars Africa': { x: 67, y: 52, name: 'Mombasa, Kenya' }, - 'default': { x: 55, y: 45 } +// Geocoding database - Maps locations to coordinates +const LOCATION_COORDINATES = { + // Countries + 'Uganda': { lat: 1.3733, lng: 32.2903, name: 'Uganda' }, + 'Kenya': { lat: -0.0236, lng: 37.9062, name: 'Kenya' }, + 'Tanzania': { lat: -6.3690, lng: 34.8888, name: 'Tanzania' }, + 'Rwanda': { lat: -1.9403, lng: 29.8739, name: 'Rwanda' }, + 'Ethiopia': { lat: 9.1450, lng: 40.4897, name: 'Ethiopia' }, + 'Ghana': { lat: 7.9465, lng: -1.0232, name: 'Ghana' }, + 'Nigeria': { lat: 9.0820, lng: 8.6753, name: 'Nigeria' }, + 'South Africa': { lat: -30.5595, lng: 22.9375, name: 'South Africa' }, + 'India': { lat: 20.5937, lng: 78.9629, name: 'India' }, + 'Bangladesh': { lat: 23.6850, lng: 90.3563, name: 'Bangladesh' }, + 'Nepal': { lat: 28.3949, lng: 84.1240, name: 'Nepal' }, + 'Philippines': { lat: 12.8797, lng: 121.7740, name: 'Philippines' }, + 'Indonesia': { lat: -0.7893, lng: 113.9213, name: 'Indonesia' }, + 'Brazil': { lat: -14.2350, lng: -51.9253, name: 'Brazil' }, + 'Peru': { lat: -9.1900, lng: -75.0152, name: 'Peru' }, + 'Colombia': { lat: 4.5709, lng: -74.2973, name: 'Colombia' }, + 'Mexico': { lat: 23.6345, lng: -102.5528, name: 'Mexico' }, + 'Haiti': { lat: 18.9712, lng: -72.2852, name: 'Haiti' }, + + // Cities + 'Kampala': { lat: 0.3476, lng: 32.5825, name: 'Kampala, Uganda' }, + 'Nairobi': { lat: -1.2864, lng: 36.8172, name: 'Nairobi, Kenya' }, + 'Mombasa': { lat: -4.0435, lng: 39.6682, name: 'Mombasa, Kenya' }, + 'Dar es Salaam': { lat: -6.7924, lng: 39.2083, name: 'Dar es Salaam, Tanzania' }, + 'Kigali': { lat: -1.9706, lng: 30.1044, name: 'Kigali, Rwanda' }, + 'Addis Ababa': { lat: 9.0320, lng: 38.7469, name: 'Addis Ababa, Ethiopia' }, + 'Accra': { lat: 5.6037, lng: -0.1870, name: 'Accra, Ghana' }, + 'Lagos': { lat: 6.5244, lng: 3.3792, name: 'Lagos, Nigeria' }, + 'Mumbai': { lat: 19.0760, lng: 72.8777, name: 'Mumbai, India' }, + 'Dhaka': { lat: 23.8103, lng: 90.4125, name: 'Dhaka, Bangladesh' }, + 'Manila': { lat: 14.5995, lng: 120.9842, name: 'Manila, Philippines' }, + + // Regions + 'East Africa': { lat: -1.2921, lng: 36.8219, name: 'East Africa' }, + 'West Africa': { lat: 7.5400, lng: -5.5471, name: 'West Africa' }, + 'Southern Africa': { lat: -25.7461, lng: 28.1881, name: 'Southern Africa' }, + 'South Asia': { lat: 23.0000, lng: 80.0000, name: 'South Asia' }, + 'Southeast Asia': { lat: 15.0000, lng: 105.0000, name: 'Southeast Asia' }, + 'Latin America': { lat: -8.7832, lng: -55.4915, name: 'Latin America' }, + 'Central America': { lat: 15.0000, lng: -90.0000, name: 'Central America' }, + + // Default fallback + 'Global': { lat: 20.0, lng: 0.0, name: 'Global' }, }; -const getGeocode = (charityName, charityDescription) => { - if (MOCK_GEOCODES[charityName]) { - return MOCK_GEOCODES[charityName]; +// Function to extract location from charity data +const extractLocation = (charity) => { + const text = `${charity.name} ${charity.description}`.toLowerCase(); + + // Try to find specific location matches + for (const [key, value] of Object.entries(LOCATION_COORDINATES)) { + if (text.includes(key.toLowerCase())) { + return { ...value, charityName: charity.name, charityId: charity.id }; + } } - if (charityDescription && charityDescription.toLowerCase().includes('uganda')) { - return MOCK_GEOCODES['Hope Uganda Initiative']; + + // Check for Africa mentions + if (text.includes('africa')) { + return { ...LOCATION_COORDINATES['East Africa'], charityName: charity.name, charityId: charity.id }; } - return MOCK_GEOCODES['default']; + + // Default to Global + return { ...LOCATION_COORDINATES['Global'], charityName: charity.name, charityId: charity.id }; }; const ImpactMap = ({ charities }) => { + const locations = useMemo(() => { + if (!charities || charities.length === 0) return []; + return charities.map(charity => extractLocation(charity)); + }, [charities]); + + // Calculate center and zoom based on locations + const { center, zoom } = useMemo(() => { + if (locations.length === 0) { + return { center: [20, 0], zoom: 2 }; + } + + const avgLat = locations.reduce((sum, loc) => sum + loc.lat, 0) / locations.length; + const avgLng = locations.reduce((sum, loc) => sum + loc.lng, 0) / locations.length; + + // Calculate bounds to determine zoom + const lats = locations.map(l => l.lat); + const lngs = locations.map(l => l.lng); + const latRange = Math.max(...lats) - Math.min(...lats); + const lngRange = Math.max(...lngs) - Math.min(...lngs); + const maxRange = Math.max(latRange, lngRange); + + let calculatedZoom = 2; + if (maxRange < 5) calculatedZoom = 6; + else if (maxRange < 15) calculatedZoom = 5; + else if (maxRange < 30) calculatedZoom = 4; + else if (maxRange < 60) calculatedZoom = 3; + + return { center: [avgLat, avgLng], zoom: calculatedZoom }; + }, [locations]); + + // Group locations by coordinates to avoid overlapping markers + const groupedLocations = useMemo(() => { + const groups = new Map(); + locations.forEach(loc => { + const key = `${loc.lat.toFixed(2)},${loc.lng.toFixed(2)}`; + if (!groups.has(key)) { + groups.set(key, { ...loc, charities: [loc.charityName] }); + } else { + groups.get(key).charities.push(loc.charityName); + } + }); + return Array.from(groups.values()); + }, [locations]); + if (!charities || charities.length === 0) { - return No locations to display on map.; + return ( + + + No locations to display on map. + + + ); } return ( - - {/* Place markers */} - {charities.map((charity, index) => { - const location = getGeocode(charity.name, charity.description); - return ( - + + + - ); - })} - - {/* Legend */} - - - Your Impact Regions - - - {charities.map((charity, index) => { - const location = getGeocode(charity.name, charity.description); - return ( + + {groupedLocations.map((location, index) => ( + + {/* Highlight circle for impact area */} + + + {/* Marker for the location */} + + + + + {location.name} + + + Charities: + + {location.charities.map((charityName, idx) => ( + + ))} + + + + + ))} + + + + + Impact Regions + + + {groupedLocations.slice(0, 3).map((location, index) => ( - ); - })} - - - + ))} + {groupedLocations.length > 3 && ( + + +{groupedLocations.length - 3} more regions + + )} + + + + ); }; -export default ImpactMap; \ No newline at end of file +export default ImpactMap; diff --git a/eunoia_web/src/components/donate/AiProcessingView.jsx b/eunoia_web/src/components/donate/AiProcessingView.jsx index 50f59b4..4405f0d 100644 --- a/eunoia_web/src/components/donate/AiProcessingView.jsx +++ b/eunoia_web/src/components/donate/AiProcessingView.jsx @@ -1,10 +1,9 @@ -import React, { useEffect } from 'react'; +import React, { useEffect, useRef } from 'react'; import { Box, Typography, CircularProgress, - LinearProgress, - Chip + LinearProgress } from '@mui/material'; import { styled } from '@mui/material/styles'; import axios from 'axios'; @@ -32,9 +31,16 @@ const AiProcessingView = ({ setGroupedMatches }) => { console.log('AiProcessingView render'); + const isSearchingRef = useRef(false); useEffect(() => { + // Prevent double execution (especially in React StrictMode) + if (isSearchingRef.current) { + return; + } + const performSemanticSearch = async () => { + isSearchingRef.current = true; if (!visionPrompt.trim()) { setSemanticSearchError("Please enter your vision before searching."); setCurrentStage('visionPrompt'); @@ -43,8 +49,7 @@ const AiProcessingView = ({ setSemanticSearchLoading(true); setSemanticSearchError(null); - setAiMatchedCharities([]); - setAiSuggestedAllocations({}); + // Don't clear charities here - let the new data replace it, avoiding double renders // // Artificial delay for testing animation visibility // await new Promise(resolve => setTimeout(resolve, 5000)); // 5-second delay @@ -179,14 +184,12 @@ const AiProcessingView = ({ setCurrentStage('charityResults'); } finally { setSemanticSearchLoading(false); + isSearchingRef.current = false; } }; performSemanticSearch(); - }, [visionPrompt, totalDonationAmount, setCurrentStage, setAiMatchedCharities, setAiSuggestedAllocations, setSemanticSearchLoading, setSemanticSearchError, setCombinedMissionStatement]); - - const keywords = visionPrompt.split(' ').filter(k => k.length > 3); - if(keywords.length === 0) keywords.push(...['Impact', 'Faith', 'Children', 'Education', 'Africa']); + }, [visionPrompt, totalDonationAmount, setCurrentStage, setAiMatchedCharities, setAiSuggestedAllocations, setSemanticSearchLoading, setSemanticSearchError, setCombinedMissionStatement, setCompassRecommendations, setGroupedMatches]); if (semanticSearchLoading) { return ( @@ -197,9 +200,6 @@ const AiProcessingView = ({ Finding the causes that truly fit you… - - {keywords.slice(0,5).map(kw => )} - Consulting the Eunoia Compass... diff --git a/eunoia_web/src/components/donate/CharityResultsView.jsx b/eunoia_web/src/components/donate/CharityResultsView.jsx index 5e30c1a..995b005 100644 --- a/eunoia_web/src/components/donate/CharityResultsView.jsx +++ b/eunoia_web/src/components/donate/CharityResultsView.jsx @@ -9,7 +9,8 @@ import { alpha, Divider, FormControlLabel, - Switch + Switch, + Chip } from '@mui/material'; import { Link } from 'react-router-dom'; import { styled } from '@mui/material/styles'; @@ -76,21 +77,6 @@ const CharityResultsView = ({ console.log('Selected IDs:', selectedCharityIds); console.log('Individual Amounts:', individualDonationAmounts); - const extractUserInputs = () => { - const missionKeywords = visionPrompt.toLowerCase().match(/\b(empower|support|education|girls|africa|children|communities|health|environment|innovation|faith|art)\b/g) || []; - const uniqueMissionKeywords = [...new Set(missionKeywords)]; - const valueKeywords = uniqueMissionKeywords.slice(0, 2); - return { - mission: visionPrompt || 'Not specified', - values: valueKeywords.length > 0 ? valueKeywords.join(', ') : 'General Impact', - region: visionPrompt.toLowerCase().includes('africa') ? 'Africa' : visionPrompt.toLowerCase().includes('uganda') ? 'Uganda' : 'Global/Not specified', - givingStyle: 'One-time (recurring can be an option)' - }; - }; - - console.log('Individual Amounts:', aiSuggestedAllocations); // This was an old log, might be individualDonationAmounts now - console.log('CharityResultsView - received combinedMissionStatement prop:', combinedMissionStatement); - return ( @@ -102,10 +88,21 @@ const CharityResultsView = ({ + {/* Explanation of Movement vs Charity */} + + + Understanding Your Results: Compass matches you with movements (specific initiatives or programs) from various charities (organizations). + When you select a charity below, your donation goes to the organization, supporting all their movements. + + + {/* Top 3 movement recommendations */} {Array.isArray(compassRecommendations) && compassRecommendations.length > 0 && ( - - Top Picks For You + + + Top Movement Picks For You + + {compassRecommendations.slice(0,3).map((rec, idx) => { const group = Object.values(groupedMatches || {}).find(g => g.charity_name === rec.charity_name); @@ -114,20 +111,50 @@ const CharityResultsView = ({ const summary = movement?.summary || ''; return ( - - {rec.charity_name} - {rec.movement_title} - - {summary ? `${summary.substring(0, 180)}${summary.length > 180 ? '…' : ''}` : 'No summary available.'} + + + + From: {rec.charity_name} + + {rec.movement_title} + + {summary ? `${summary.substring(0, 150)}${summary.length > 150 ? '…' : ''}` : 'No summary available.'} {rec.reason && ( - - {rec.reason} - + + + Why: {rec.reason} + + )} {charityId && ( - )} @@ -141,6 +168,9 @@ const CharityResultsView = ({ {/* Charity Results Feed - now a nested grid for 2 columns */} + + All Matched Charities + {/* Nested grid for cards */} {semanticSearchLoading && ( @@ -239,6 +269,23 @@ const CharityResultsView = ({ + {/* Warning for zero donation */} + {totalDonationAmount === 0 && ( + + + + + + Donation Amount is 0 + + + Please go back to set your donation amount, or connect your wallet to use your balance. + + + + + )} + {/* Donation Summary and Action */} Total Donation: - + {typeof totalDonationAmount === 'number' ? totalDonationAmount.toFixed(2) : '0.00'} {selectedCrypto} From 6c0b32bf252f6901aaca9ec80ab97af6d6dd5e3b Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 15:16:11 +0200 Subject: [PATCH 05/16] Update config: fix API port and Polkadot node URL, remove old docs --- .../MIGRATION_CHANGES_SUMMARY.md | 319 ------------------ .../eunoia_backend/MOVEMENT_FETCHING_FLOW.md | 256 -------------- backend/eunoia_backend/QUICK_REFERENCE.md | 163 --------- eunoia_web/src/config.js | 6 +- 4 files changed, 3 insertions(+), 741 deletions(-) delete mode 100644 backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md delete mode 100644 backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md delete mode 100644 backend/eunoia_backend/QUICK_REFERENCE.md diff --git a/backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md b/backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md deleted file mode 100644 index f390903..0000000 --- a/backend/eunoia_backend/MIGRATION_CHANGES_SUMMARY.md +++ /dev/null @@ -1,319 +0,0 @@ -# Migration Changes Summary - -Quick reference guide showing exactly what changed in the migration from Chat Completions to Responses API. - -## File Modified -- `backend/eunoia_backend/main/utils.py` - -## Summary of Changes - -| Function | Old Model | New Model | Lines Changed | -|----------|-----------|-----------|---------------| -| `process_charity_website()` | gpt-4o | gpt-5 | ~15 lines | -| `generate_combined_mission_statement()` | gpt-4o-mini | gpt-5 | ~15 lines | -| `enhance_query_and_search()` | gpt-4o | gpt-5 | ~15 lines | - -## Detailed Code Changes - -### Change 1: `process_charity_website()` - Tool Definition - -**Before:** -```python -charity_info_tool = { - "type": "function", - "function": { - "name": "extract_charity_information", - "description": "Extracts and structures information about a charity including summary, keywords, category, and tagline from website text.", - "parameters": CharityInfo.model_json_schema() - } -} -``` - -**After:** -```python -charity_info_tool = { - "type": "function", - "name": "extract_charity_information", - "description": "Extracts and structures information about a charity including summary, keywords, category, and tagline from website text.", - "parameters": CharityInfo.model_json_schema() -} -``` - -### Change 2: `process_charity_website()` - API Call - -**Before:** -```python -completion = client.chat.completions.create( - model="gpt-4o", - messages=[ - {"role": "system", "content": "You are an expert assistant skilled in analyzing charity websites and extracting structured information according to the provided tool. Provide all requested fields: summary, tagline, category, and keywords."}, - {"role": "user", "content": prompt_text} - ], - tools=[charity_info_tool], - tool_choice={"type": "function", "function": {"name": "extract_charity_information"}}, - temperature=0.3, -) - -tool_calls = completion.choices[0].message.tool_calls -``` - -**After:** -```python -response = client.responses.create( - model="gpt-5", - instructions="You are an expert assistant skilled in analyzing charity websites and extracting structured information according to the provided tool. Provide all requested fields: summary, tagline, category, and keywords.", - input=prompt_text, - tools=[charity_info_tool], - tool_choice={"type": "function", "name": "extract_charity_information"}, - temperature=0.3, -) - -# Find the function call in the response output -function_call_item = None -for item in response.output: - if item.get('type') == 'function_call' and item.get('name') == 'extract_charity_information': - function_call_item = item - break -``` - -### Change 3: `process_charity_website()` - Output Parsing - -**Before:** -```python -if tool_calls and tool_calls[0].function.name == "extract_charity_information": - arguments_json = tool_calls[0].function.arguments -``` - -**After:** -```python -if function_call_item: - arguments_json = function_call_item.get('arguments', '{}') -``` - -### Change 4: `generate_combined_mission_statement()` - Tool Definition - -**Before:** -```python -combined_mission_tool = { - "type": "function", - "function": { - "name": "extract_combined_charity_mission", - "description": "Extracts a combined, resonating mission statement for a list of charities based on user query.", - "parameters": CombinedCharityMission.model_json_schema() - } -} -``` - -**After:** -```python -combined_mission_tool = { - "type": "function", - "name": "extract_combined_charity_mission", - "description": "Extracts a combined, resonating mission statement for a list of charities based on user query.", - "parameters": CombinedCharityMission.model_json_schema() -} -``` - -### Change 5: `generate_combined_mission_statement()` - API Call - -**Before:** -```python -completion = client.chat.completions.create( - model="gpt-4o-mini", - messages=[ - {"role": "system", "content": "You are an expert assistant skilled in synthesizing information about multiple charities and a user query into a single, impactful mission statement. Respond using the provided tool."}, - {"role": "user", "content": prompt_text} - ], - tools=[combined_mission_tool], - tool_choice={"type": "function", "function": {"name": "extract_combined_charity_mission"}}, - temperature=0.5, -) - -tool_calls = completion.choices[0].message.tool_calls -if tool_calls and tool_calls[0].function.name == "extract_combined_charity_mission": - arguments_json = tool_calls[0].function.arguments -``` - -**After:** -```python -response = client.responses.create( - model="gpt-5", - instructions="You are an expert assistant skilled in synthesizing information about multiple charities and a user query into a single, impactful mission statement. Respond using the provided tool.", - input=prompt_text, - tools=[combined_mission_tool], - tool_choice={"type": "function", "name": "extract_combined_charity_mission"}, - temperature=0.5, -) - -# Find the function call in the response output -function_call_item = None -for item in response.output: - if item.get('type') == 'function_call' and item.get('name') == 'extract_combined_charity_mission': - function_call_item = item - break - -if function_call_item: - arguments_json = function_call_item.get('arguments', '{}') -``` - -### Change 6: `enhance_query_and_search()` - Tool Definition - -**Before:** -```python -enhanced_query_tool = { - "type": "function", - "function": { - "name": "enhance_user_query", - "description": "Enhances a user query for better semantic search in a charity database.", - "parameters": EnhancedQuery.model_json_schema() - } -} -``` - -**After:** -```python -enhanced_query_tool = { - "type": "function", - "name": "enhance_user_query", - "description": "Enhances a user query for better semantic search in a charity database.", - "parameters": EnhancedQuery.model_json_schema() -} -``` - -### Change 7: `enhance_query_and_search()` - API Call - -**Before:** -```python -enhanced_query_completion = client.chat.completions.create( - model="gpt-4o", - messages=[ - {"role": "system", "content": "You are an expert query enhancer. Your goal is to refine user queries for better semantic search against a charity database. Respond using the provided tool."}, - {"role": "user", "content": prompt} - ], - tools=[enhanced_query_tool], - tool_choice={"type": "function", "function": {"name": "enhance_user_query"}}, - temperature=0.1, -) - -search_query_text = user_query -tool_calls = enhanced_query_completion.choices[0].message.tool_calls -if tool_calls and tool_calls[0].function.name == "enhance_user_query": - arguments_json = tool_calls[0].function.arguments -``` - -**After:** -```python -response = client.responses.create( - model="gpt-5", - instructions="You are an expert query enhancer. Your goal is to refine user queries for better semantic search against a charity database. Respond using the provided tool.", - input=prompt, - tools=[enhanced_query_tool], - tool_choice={"type": "function", "name": "enhance_user_query"}, - temperature=0.1, -) - -search_query_text = user_query - -# Find the function call in the response output -function_call_item = None -for item in response.output: - if item.get('type') == 'function_call' and item.get('name') == 'enhance_user_query': - function_call_item = item - break - -if function_call_item: - arguments_json = function_call_item.get('arguments', '{}') -``` - -## Key Patterns - -### Pattern 1: Tool Definition -Remove the `"function"` wrapper: -```python -# Before -{"type": "function", "function": {"name": "...", ...}} - -# After -{"type": "function", "name": "...", ...} -``` - -### Pattern 2: API Call -Separate `instructions` from `input`: -```python -# Before -messages=[ - {"role": "system", "content": "..."}, - {"role": "user", "content": "..."} -] - -# After -instructions="...", -input="..." -``` - -### Pattern 3: Tool Choice -Remove the `"function"` wrapper: -```python -# Before -tool_choice={"type": "function", "function": {"name": "..."}} - -# After -tool_choice={"type": "function", "name": "..."} -``` - -### Pattern 4: Output Parsing -Search through `output` items: -```python -# Before -tool_calls = completion.choices[0].message.tool_calls -if tool_calls and tool_calls[0].function.name == "my_func": - args = tool_calls[0].function.arguments - -# After -item = None -for i in response.output: - if i.get('type') == 'function_call' and i.get('name') == 'my_func': - item = i - break -if item: - args = item.get('arguments', '{}') -``` - -## Testing Checklist - -- [ ] Test charity registration with website URL -- [ ] Verify AI extracts description, tagline, category, keywords -- [ ] Test semantic search with various queries -- [ ] Test combined mission statement generation -- [ ] Check error handling for invalid inputs -- [ ] Monitor API costs and performance -- [ ] Verify embeddings are still generated correctly - -## Impact Assessment - -| Area | Impact | Notes | -|------|--------|-------| -| Functionality | ✅ None | All functions work the same | -| Performance | ✅ Improved | GPT-5 is more intelligent | -| Costs | ✅ Reduced | Better cache utilization | -| API Compatibility | ✅ Forward | Future-proof design | -| Error Handling | ✅ Same | Existing error handlers work | -| Output Quality | ✅ Better | GPT-5 produces better results | - -## No Changes Required - -The following areas did **not** require changes: -- Pydantic models (CharityInfo, CombinedCharityMission, EnhancedQuery) -- Database models -- Django views and serializers -- Frontend code -- Error handling logic -- Embedding generation (`get_embedding()` uses embeddings API, not affected) - -## Backward Compatibility - -The OpenAI Python SDK supports both APIs, so: -- No SDK version upgrade required (though recommended) -- Both APIs can coexist during migration -- Rollback is straightforward if needed - diff --git a/backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md b/backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md deleted file mode 100644 index ce1c506..0000000 --- a/backend/eunoia_backend/MOVEMENT_FETCHING_FLOW.md +++ /dev/null @@ -1,256 +0,0 @@ -# How Movements Are Fetched for Test Charities - -## TL;DR - -**Movements are NOT automatically fetched when using `register_test_charities.py`.** - -Test charities created via the script will only get: -- ✅ Basic AI extraction (description, tagline, category, keywords) via `process_charity_website()` -- ❌ **NO movements** (unless manually triggered) - ---- - -## Complete Flow - -### When Using `register_test_charities.py` - -``` -register_test_charities.py - ↓ -Charity.objects.create(**charity_data) # Direct ORM call - ↓ -Django post_save signal triggered - ↓ -charity_post_save_receiver() in utils.py - ↓ -process_charity_website() called - ├─ Fetches website HTML - ├─ Extracts text content - ├─ AI analysis (GPT-5): - │ ├─ Generates description - │ ├─ Extracts tagline - │ ├─ Assigns category - │ └─ Extracts keywords - └─ Generates embedding - ↓ -❌ Movements NOT fetched -``` - -**Why?** The signal only calls `process_charity_website()`, which does basic extraction. It does **NOT** call `launch_charity_research_in_background()`. - ---- - -### When Movements ARE Fetched - -Movements are automatically fetched when charities are created/updated via: - -#### 1. **REST API** (`CharityViewSet`) -```python -# In api_views.py -def perform_create(self, serializer): - charity = serializer.save() - if charity.website_url: - launch_charity_research_in_background(charity.id, max_pages=6) # ✅ Triggers movement research -``` - -#### 2. **Django Form** (`CharityRegistrationForm`) -```python -# In forms.py -def save(self, commit=True): - charity = super().save(commit=commit) - if charity and charity.website_url: - launch_charity_research_in_background(charity.id, max_pages=6) # ✅ Triggers movement research -``` - ---- - -## Movement Research Process - -When `launch_charity_research_in_background()` is called: - -``` -launch_charity_research_in_background(charity_id, max_pages=6) - ↓ -research_charity_sync(charity_id, max_pages) - ↓ -CharityResearchManager.research_charity() - ↓ -┌─────────────────────────────────────────┐ -│ Step 1: Crawl Website │ -│ - smart_website_crawler() │ -│ - Crawls up to 6 pages │ -│ - Extracts: title, content, headings │ -└─────────────────────────────────────────┘ - ↓ -┌─────────────────────────────────────────┐ -│ Step 2: Extract Charity Profile │ -│ - charity_profile_agent │ -│ - Uses GPT-4.1 model │ -│ - Extracts: tagline, summary, │ -│ keywords, category, etc. │ -└─────────────────────────────────────────┘ - ↓ -┌─────────────────────────────────────────┐ -│ Step 3: Find Movements │ -│ - movement_finder_agent │ -│ - Uses GPT-4.1 model │ -│ - Identifies up to 5 movements │ -│ - For each movement extracts: │ -│ • title │ -│ • summary │ -│ • category │ -│ • geography │ -│ • source_urls │ -│ • confidence_score │ -└─────────────────────────────────────────┘ - ↓ -┌─────────────────────────────────────────┐ -│ Step 4: Save to Database │ -│ - Updates charity fields │ -│ - Creates/updates Movement objects │ -│ - Generates embeddings for movements │ -└─────────────────────────────────────────┘ -``` - ---- - -## How to Fetch Movements for Test Charities - -### Option 1: Manual Trigger (Recommended) - -Create a script to trigger research for all test charities: - -```python -# trigger_movement_research.py -import os -import django - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eunoia_backend.settings') -django.setup() - -from main.models import Charity -from agents_sdk import launch_charity_research_in_background - -test_charity_names = [ - 'Global Water Initiative', - 'Education For All Foundation', - 'Wildlife Conservation Network', - # ... etc -] - -print("Triggering movement research for test charities...") -for name in test_charity_names: - charity = Charity.objects.filter(name=name).first() - if charity and charity.website_url: - print(f"Researching: {name}") - launch_charity_research_in_background(charity.id, max_pages=6) - else: - print(f"Skipping {name}: No charity found or no website URL") - -print("✅ Research tasks launched in background!") -``` - -### Option 2: Update `register_test_charities.py` - -Add movement research trigger after creating each charity: - -```python -# At the end of register_test_charities.py -from agents_sdk import launch_charity_research_in_background - -# ... existing code ... - -for charity_data in test_charities: - # ... existing creation code ... - charity = Charity.objects.create(**charity_data) - - # Add this: - if charity.website_url: - print(f"🔄 Launching movement research for {charity.name}...") - launch_charity_research_in_background(charity.id, max_pages=6) -``` - -### Option 3: Django Management Command - -Use the existing research command: - -```bash -python manage.py research_charity --charity-id 52 -``` - -Or for all test charities: - -```bash -python manage.py research_charity --all -``` - ---- - -## Movement Finder Agent Details - -**Agent:** `movement_finder_agent` -**Model:** GPT-4.1 -**Location:** `agents_sdk/charity_research_agents/movement_finder_agent.py` - -**What it does:** -- Analyzes crawled website pages -- Identifies active initiatives/campaigns -- Extracts movement metadata: - - Title (required) - - Summary (optional) - - Category (free-form, e.g., "children", "refugees", "environment") - - Geography (country/region if available) - - Start date (YYYY or YYYY-MM if available) - - Source URLs (list of URLs that substantiate the movement) - - Confidence score (0.0-1.0) - -**Focus:** Recent/active initiatives with prominent pages or CTAs - -**Output:** Up to 5 movements per charity - ---- - -## Database Model - -Movements are stored in the `Movement` model: - -```python -class Movement(models.Model): - charity = ForeignKey(Charity) - title = CharField(max_length=255) - slug = SlugField(max_length=300) # Unique per charity - summary = TextField() - category = CharField(max_length=100) - geography = CharField(max_length=255) - start_date = DateField() - source_urls = JSONField() # List of URLs - confidence_score = DecimalField() - embedding = JSONField() # For semantic matching - is_active = BooleanField(default=True) - # ... timestamps -``` - -**Unique constraint:** `(charity, slug)` - prevents duplicate movements per charity - ---- - -## Key Differences: Basic vs Full Research - -| Feature | `process_charity_website()` | `CharityResearchManager` | -|---------|----------------------------|--------------------------| -| **Triggered by** | post_save signal | API/form hooks, manual | -| **Website crawling** | ❌ No | ✅ Yes (up to 6 pages) | -| **Charity profile** | Basic AI extraction | Full profile analysis | -| **Movements** | ❌ Not fetched | ✅ Up to 5 movements | -| **Model used** | GPT-5 | GPT-4.1 | -| **Speed** | Fast (~few seconds) | Slower (~minutes) | -| **Use case** | Quick data extraction | Comprehensive research | - ---- - -## Summary - -- **Test charities from `register_test_charities.py`:** Only get basic AI extraction, NO movements -- **Charities created via API/Form:** Get full research including movements -- **To get movements for test charities:** Manually trigger `launch_charity_research_in_background()` for each charity - diff --git a/backend/eunoia_backend/QUICK_REFERENCE.md b/backend/eunoia_backend/QUICK_REFERENCE.md deleted file mode 100644 index 23b1362..0000000 --- a/backend/eunoia_backend/QUICK_REFERENCE.md +++ /dev/null @@ -1,163 +0,0 @@ -# Quick Reference: Responses API vs Chat Completions - -## At a Glance - -### Basic Call -```python -# OLD - Chat Completions -completion = client.chat.completions.create( - model="gpt-4o", - messages=[ - {"role": "system", "content": "Instructions"}, - {"role": "user", "content": "Input"} - ] -) -result = completion.choices[0].message.content - -# NEW - Responses API -response = client.responses.create( - model="gpt-5", - instructions="Instructions", - input="Input" -) -result = response.output_text -``` - -### Function Calling -```python -# OLD - Tool Definition (externally tagged) -tool = { - "type": "function", - "function": { - "name": "my_function", - "description": "...", - "parameters": {...} - } -} - -# NEW - Tool Definition (internally tagged) -tool = { - "type": "function", - "name": "my_function", - "description": "...", - "parameters": {...} -} -``` - -### Tool Choice -```python -# OLD -tool_choice={"type": "function", "function": {"name": "my_function"}} - -# NEW -tool_choice={"type": "function", "name": "my_function"} -``` - -### Getting Function Arguments -```python -# OLD -tool_calls = completion.choices[0].message.tool_calls -if tool_calls: - args = tool_calls[0].function.arguments - -# NEW -function_call = None -for item in response.output: - if item.get('type') == 'function_call' and item.get('name') == 'my_function': - function_call = item - break -if function_call: - args = function_call.get('arguments', '{}') -``` - -## What Changed in Your Codebase - -| Location | Function | Old Model | New Model | -|----------|----------|-----------|-----------| -| `utils.py:process_charity_website()` | Charity info extraction | gpt-4o | gpt-5 | -| `utils.py:generate_combined_mission_statement()` | Mission synthesis | gpt-4o-mini | gpt-5 | -| `utils.py:enhance_query_and_search()` | Query enhancement | gpt-4o | gpt-5 | - -## Benefits You Get - -✅ **Better Performance**: GPT-5 is more intelligent -✅ **Lower Costs**: 40-80% better cache utilization -✅ **Cleaner Code**: Simpler API semantics -✅ **Future-Proof**: Designed for upcoming models - -## Testing Commands - -```bash -# Test charity registration (triggers process_charity_website) -cd backend/eunoia_backend -python manage.py shell - -# In Django shell: -from main.models import Charity -charity = Charity.objects.create( - name="Test Charity", - website_url="https://www.charitywater.org", - contact_email="test@example.com", - aptos_wallet_address="0x123..." -) -# Check if description, tagline, category, keywords were populated - -# Test semantic search (triggers enhance_query_and_search) -# Via API: -curl http://localhost:8080/api/charity-semantic-search/?query="clean water" - -# Test from frontend -# Navigate to http://localhost:3000 and search for charities -``` - -## Rollback (if needed) - -```python -# Change model back -model="gpt-5" → model="gpt-4o" - -# Change API call -response = client.responses.create( - instructions="...", - input="..." -) -# Back to: -completion = client.chat.completions.create( - messages=[ - {"role": "system", "content": "..."}, - {"role": "user", "content": "..."} - ] -) - -# Change tool definition -{"type": "function", "name": "..."} -# Back to: -{"type": "function", "function": {"name": "..."}} - -# Change output parsing -for item in response.output: - if item.get('type') == 'function_call': ... -# Back to: -tool_calls = completion.choices[0].message.tool_calls -``` - -## Common Issues & Solutions - -### Issue: "AttributeError: 'dict' object has no attribute 'function'" -**Solution**: You're trying to access `.function.name` on a dict. Use `item.get('name')` instead. - -### Issue: "No function_call found in output" -**Solution**: Check that GPT-5 actually called the function. Print `response.output` to debug. - -### Issue: "Model not found: gpt-5" -**Solution**: Ensure your OpenAI API key has access to GPT-5. Check your account tier. - -### Issue: Costs increased -**Solution**: GPT-5 may have different pricing. Monitor usage and adjust `max_tokens` if needed. - -## Documentation Links - -- [Responses API Docs](https://platform.openai.com/docs/api-reference/responses) -- [Migration Guide](https://platform.openai.com/docs/guides/responses-migration) -- [GPT-5 Docs](https://platform.openai.com/docs/models/gpt-5) - diff --git a/eunoia_web/src/config.js b/eunoia_web/src/config.js index 986913c..3ac1273 100644 --- a/eunoia_web/src/config.js +++ b/eunoia_web/src/config.js @@ -1,4 +1,4 @@ -export const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://127.0.0.1:8080/api'; +export const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://127.0.0.1:8000/api'; // export const API_BASE_URL = 'https://eunoia-api-eya2hhfdfzcchyc2.canadacentral-01.azurewebsites.net/api'; -// export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://testnet-passet-hub.polkadot.io'; -export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://polkadot-rpc.publicnode.com'; +export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://testnet-passet-hub.polkadot.io'; +// export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://polkadot-rpc.publicnode.com'; \ No newline at end of file From 1b680392bc845d4de807594eea9572ce95e3f130 Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 18:04:08 +0200 Subject: [PATCH 06/16] Update API and Polkadot node URLs in config, comment out old values --- eunoia_web/src/config.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/eunoia_web/src/config.js b/eunoia_web/src/config.js index 3ac1273..1bd3060 100644 --- a/eunoia_web/src/config.js +++ b/eunoia_web/src/config.js @@ -1,4 +1,6 @@ -export const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://127.0.0.1:8000/api'; +// export const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://127.0.0.1:8000/api'; // export const API_BASE_URL = 'https://eunoia-api-eya2hhfdfzcchyc2.canadacentral-01.azurewebsites.net/api'; -export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://testnet-passet-hub.polkadot.io'; -// export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://polkadot-rpc.publicnode.com'; \ No newline at end of file +export const API_BASE_URL = 'https://eunoia-backend-bebv.onrender.com/'; + +// export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://testnet-passet-hub.polkadot.io'; +export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://polkadot-rpc.publicnode.com'; \ No newline at end of file From 578207912e99194f2ebd8898948f1359b45587f4 Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 18:08:36 +0200 Subject: [PATCH 07/16] Fix deployment config: use env vars for SECRET_KEY/DEBUG, improve ALLOWED_HOSTS, enhance papi CI/CD logging --- ...e-static-web-apps-green-moss-0b96db80f.yml | 71 ++++++++++++++++--- .../eunoia_backend/eunoia_backend/settings.py | 17 +++-- eunoia_web/src/config.js | 2 +- 3 files changed, 75 insertions(+), 15 deletions(-) diff --git a/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml b/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml index cc29b42..fcd1bbd 100644 --- a/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml +++ b/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml @@ -29,29 +29,80 @@ jobs: run: | cd eunoia_web npm install + + echo "=== Setting up PAPI descriptors ===" mkdir -p .papi/descriptors/src mkdir -p .papi/descriptors/dist - npx papi init || true - npx papi add dot -n polkadot || true - npx papi || true - # Create minimal descriptors package if it doesn't exist properly - if [ ! -f .papi/descriptors/dist/index.js ]; then - echo "Creating minimal descriptors package..." + echo "Step 1: Running papi init..." + if npx papi init; then + echo "✓ papi init succeeded" + else + echo "⚠ papi init failed (continuing anyway)" + fi + + echo "Step 2: Running papi add dot..." + if npx papi add dot -n polkadot; then + echo "✓ papi add dot succeeded" + else + echo "⚠ papi add dot failed (continuing anyway)" + fi + + echo "Step 3: Generating descriptor source files..." + if npx papi generate 2>&1; then + echo "✓ papi generate succeeded" + else + echo "⚠ papi generate failed, trying alternative..." + # Try without generate command (some versions use different syntax) + if npx papi build 2>&1; then + echo "✓ papi build succeeded" + else + echo "⚠ papi build also failed" + fi + fi + + echo "Step 4: Building descriptors..." + if npx papi 2>&1; then + echo "✓ papi build succeeded" + else + echo "⚠ papi build failed (continuing anyway)" + fi + + echo "=== Verifying descriptors were created ===" + echo "Checking .papi/descriptors/dist/ contents:" + ls -lah .papi/descriptors/dist/ || echo "Directory does not exist" + + if [ -f .papi/descriptors/dist/index.mjs ]; then + echo "✓ index.mjs exists" + FILE_SIZE=$(stat -f%z .papi/descriptors/dist/index.mjs 2>/dev/null || stat -c%s .papi/descriptors/dist/index.mjs 2>/dev/null || echo "0") + echo " File size: $FILE_SIZE bytes" + if [ "$FILE_SIZE" -lt 1000 ]; then + echo "⚠ WARNING: index.mjs is very small ($FILE_SIZE bytes), might be stub file" + fi + echo " First 200 chars:" + head -c 200 .papi/descriptors/dist/index.mjs || echo "Could not read file" + else + echo "✗ index.mjs NOT found" + fi + + if [ -f .papi/descriptors/dist/index.js ]; then + echo "✓ index.js exists" + FILE_SIZE=$(stat -f%z .papi/descriptors/dist/index.js 2>/dev/null || stat -c%s .papi/descriptors/dist/index.js 2>/dev/null || echo "0") + echo " File size: $FILE_SIZE bytes" + else + echo "✗ index.js NOT found - creating stub..." echo 'export const MultiAddress = {}; export const dot = {};' > .papi/descriptors/dist/index.js echo 'export const MultiAddress = {}; export const dot = {};' > .papi/descriptors/dist/index.mjs echo 'exports.MultiAddress = {}; exports.dot = {};' > .papi/descriptors/dist/index.d.ts + echo "⚠ Created stub files (these will cause runtime errors)" fi - # Create stubs for missing modules + # Create stubs for missing modules (fallback) mkdir -p node_modules/@polkadot/extension-dapp echo 'export const web3Accounts = async () => []; export const web3Enable = async () => []; export const web3FromAddress = async () => ({});' > node_modules/@polkadot/extension-dapp/index.js mkdir -p node_modules/@polkadot/api echo 'export const ApiPromise = { create: async () => ({}) }; export const WsProvider = class {}; export const Keyring = class {};' > node_modules/@polkadot/api/index.js - - # Create .eslintignore file to suppress warnings - cp .eslintignore node_modules/.eslintignore 2>/dev/null || true - name: Build React App run: | diff --git a/backend/eunoia_backend/eunoia_backend/settings.py b/backend/eunoia_backend/eunoia_backend/settings.py index 9238016..419970b 100644 --- a/backend/eunoia_backend/eunoia_backend/settings.py +++ b/backend/eunoia_backend/eunoia_backend/settings.py @@ -58,12 +58,21 @@ # See https://docs.djangoproject.com/en/5.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-#da0k)&*ea)01gqr)3a_7$g#166x#&q2!$-2if+3zr#a6m(jy6' +SECRET_KEY = os.getenv('SECRET_KEY', 'django-insecure-#da0k)&*ea)01gqr)3a_7$g#166x#&q2!$-2if+3zr#a6m(jy6') # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = ['eunoia.work', 'www.eunoia.work', 'localhost', '127.0.0.1', '52.37.227.112', 'ec2-52-37-227-112.us-west-2.compute.amazonaws.com', 'eunoia-api-eya2hhfdfzcchyc2.canadacentral-01.azurewebsites.net'] +DEBUG = os.getenv('DEBUG', 'False').lower() == 'true' + +ALLOWED_HOSTS = [ + 'eunoia-backend-bebv.onrender.com', + 'eunoia.work', + 'www.eunoia.work', + 'localhost', + '127.0.0.1', + '52.37.227.112', + 'ec2-52-37-227-112.us-west-2.compute.amazonaws.com', + 'eunoia-api-eya2hhfdfzcchyc2.canadacentral-01.azurewebsites.net' +] # OpenAI API Key OPENAI_API_KEY = os.getenv('OPENAI_API_KEY') diff --git a/eunoia_web/src/config.js b/eunoia_web/src/config.js index 1bd3060..a4b9f4b 100644 --- a/eunoia_web/src/config.js +++ b/eunoia_web/src/config.js @@ -1,6 +1,6 @@ // export const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://127.0.0.1:8000/api'; // export const API_BASE_URL = 'https://eunoia-api-eya2hhfdfzcchyc2.canadacentral-01.azurewebsites.net/api'; -export const API_BASE_URL = 'https://eunoia-backend-bebv.onrender.com/'; +export const API_BASE_URL = 'https://eunoia-backend-bebv.onrender.com/api'; // export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://testnet-passet-hub.polkadot.io'; export const POLKADOT_NODE_URL = process.env.REACT_APP_POLKADOT_NODE_URL || 'wss://polkadot-rpc.publicnode.com'; \ No newline at end of file From 0e1b5854969889539b1434f02a1604d796cc929a Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 21:12:48 +0200 Subject: [PATCH 08/16] Revert workflow to original CI/CD setup, remove .papi build artifacts from git --- ...e-static-web-apps-green-moss-0b96db80f.yml | 71 +++--------------- .gitignore | 8 +- eunoia_web/.papi/metadata/dot.scale | Bin 448332 -> 0 bytes eunoia_web/.papi/polkadot-api.json | 12 --- 4 files changed, 17 insertions(+), 74 deletions(-) delete mode 100644 eunoia_web/.papi/metadata/dot.scale delete mode 100644 eunoia_web/.papi/polkadot-api.json diff --git a/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml b/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml index fcd1bbd..cc29b42 100644 --- a/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml +++ b/.github/workflows/azure-static-web-apps-green-moss-0b96db80f.yml @@ -29,80 +29,29 @@ jobs: run: | cd eunoia_web npm install - - echo "=== Setting up PAPI descriptors ===" mkdir -p .papi/descriptors/src mkdir -p .papi/descriptors/dist + npx papi init || true + npx papi add dot -n polkadot || true + npx papi || true - echo "Step 1: Running papi init..." - if npx papi init; then - echo "✓ papi init succeeded" - else - echo "⚠ papi init failed (continuing anyway)" - fi - - echo "Step 2: Running papi add dot..." - if npx papi add dot -n polkadot; then - echo "✓ papi add dot succeeded" - else - echo "⚠ papi add dot failed (continuing anyway)" - fi - - echo "Step 3: Generating descriptor source files..." - if npx papi generate 2>&1; then - echo "✓ papi generate succeeded" - else - echo "⚠ papi generate failed, trying alternative..." - # Try without generate command (some versions use different syntax) - if npx papi build 2>&1; then - echo "✓ papi build succeeded" - else - echo "⚠ papi build also failed" - fi - fi - - echo "Step 4: Building descriptors..." - if npx papi 2>&1; then - echo "✓ papi build succeeded" - else - echo "⚠ papi build failed (continuing anyway)" - fi - - echo "=== Verifying descriptors were created ===" - echo "Checking .papi/descriptors/dist/ contents:" - ls -lah .papi/descriptors/dist/ || echo "Directory does not exist" - - if [ -f .papi/descriptors/dist/index.mjs ]; then - echo "✓ index.mjs exists" - FILE_SIZE=$(stat -f%z .papi/descriptors/dist/index.mjs 2>/dev/null || stat -c%s .papi/descriptors/dist/index.mjs 2>/dev/null || echo "0") - echo " File size: $FILE_SIZE bytes" - if [ "$FILE_SIZE" -lt 1000 ]; then - echo "⚠ WARNING: index.mjs is very small ($FILE_SIZE bytes), might be stub file" - fi - echo " First 200 chars:" - head -c 200 .papi/descriptors/dist/index.mjs || echo "Could not read file" - else - echo "✗ index.mjs NOT found" - fi - - if [ -f .papi/descriptors/dist/index.js ]; then - echo "✓ index.js exists" - FILE_SIZE=$(stat -f%z .papi/descriptors/dist/index.js 2>/dev/null || stat -c%s .papi/descriptors/dist/index.js 2>/dev/null || echo "0") - echo " File size: $FILE_SIZE bytes" - else - echo "✗ index.js NOT found - creating stub..." + # Create minimal descriptors package if it doesn't exist properly + if [ ! -f .papi/descriptors/dist/index.js ]; then + echo "Creating minimal descriptors package..." echo 'export const MultiAddress = {}; export const dot = {};' > .papi/descriptors/dist/index.js echo 'export const MultiAddress = {}; export const dot = {};' > .papi/descriptors/dist/index.mjs echo 'exports.MultiAddress = {}; exports.dot = {};' > .papi/descriptors/dist/index.d.ts - echo "⚠ Created stub files (these will cause runtime errors)" fi - # Create stubs for missing modules (fallback) + # Create stubs for missing modules mkdir -p node_modules/@polkadot/extension-dapp echo 'export const web3Accounts = async () => []; export const web3Enable = async () => []; export const web3FromAddress = async () => ({});' > node_modules/@polkadot/extension-dapp/index.js mkdir -p node_modules/@polkadot/api echo 'export const ApiPromise = { create: async () => ({}) }; export const WsProvider = class {}; export const Keyring = class {};' > node_modules/@polkadot/api/index.js + + # Create .eslintignore file to suppress warnings + cp .eslintignore node_modules/.eslintignore 2>/dev/null || true - name: Build React App run: | diff --git a/.gitignore b/.gitignore index 2289e2a..8512cd1 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,10 @@ media/ # Ignore target directories for Polkadot contracts polkadot_contracts/target/ polkadot_contracts/*/target/ -polkadot-react-app/node_modules/ \ No newline at end of file +polkadot-react-app/node_modules/ + +# Polkadot API build artifacts (generated during CI/CD) +eunoia_web/.papi/metadata/ +eunoia_web/.papi/polkadot-api.json +eunoia_web/.papi/descriptors/dist/ +eunoia_web/.papi/descriptors/src/ \ No newline at end of file diff --git a/eunoia_web/.papi/metadata/dot.scale b/eunoia_web/.papi/metadata/dot.scale deleted file mode 100644 index f4cd73a8a672aab2708f07e931a1eb47de5156cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448332 zcmeFa4QOT8c`m$`X3vbqk=x@|?mfPreA&L0ziRwxb~Lt}D=V_U(TwCsH}fM)8vk6+ zaL&;=Thi$qouize87ZXTf(r?x;6MT{xR478wBSMtzTkojDWs4`_FjAayz5=>|NE|;xLwNq)32J5vDR*(+-S!6 za&v#T-I$y&mm8gWd%5z|lg0!lu;Htnna_q#J$aLVniHWhW*Gl#PM$C$!&95h(oS4x z?YG+TPV#MivoSn+wNWp}Hs>EMl-eabYDVp7oiB1$8yGuYZq!?yow(V`*>E-9yu{)0 zc(>WOU9I#!o@{kCH>>4pTyJ-`&s8wMsLc*%Ob*jLX+}rpc1yKd+%9aCY9$Qb8g1|I z#;t7IVC)A)6o3+wbYs^k8?zNkx z=lO>*dCcOp89QJWT}=a%x4F*wCufWSpidezJ~Hh<+}Yi2G}~dN+S)C(%i9-L;^u<; zeW_MzwSr*XPM8s!uQ!@IrP_oI){UKP?8ePfyV|JxC*wP%IzZKE?n?_ZF){%RxD!{m zw%e_7{kL%Y$^1+51bfZ3Zx-6sop{oYbUrg}>;$%^u~}$Uzvv&CNn=h;nJG;9l$jo$ z+ig~Ns_p9SxFCSeEj{`4XZo-SYaALjb2*OR#GYe>v8}isH>>4*rMeZj+W7_f2VdG; zt+Ca*VCP}7Emx;8!v7-|!&3IKu8#YUJ;S#Vf1_HJg>s!@& zyj(G6#*T5A&dhV>lo?MN+(Yxg0tUdF0d%u3JsTfB|-t1*sqWjI*0>%fRM7H#i zpU0<6xZaFQtxj`4Fh5Hm+IG+SI{kHX0Y~a~RRH>8qb*SRnzi3_-Gd#tmxbH%wy%d# zGY&oxH)9a8!2DO6AQcFeKJEMDVKe^HcC{VX0Ghxoo=!fwJ<(57_S z?mD=D=eyE!Lys*tyJB=ulufr|l12N3m;G@NB;zD<}x*>YLNJ z83*RX&C9Z#zjxaH+;y`7hFjn!_k1!L_BU9r;{@WAoqx_eZsx8wcB*yZlq-!!4Y2vj zY5SJ@sGhtl?DAz#=g*nnGLz4jTJ7uX@fOI|*G}87x^Fk}ywK4Xecw%(3kz8J772Vp zA--`sISUp4vTzWwIBTX?O3l)8yuvKXKhkai>Z${T@jW%ZXmpF$l{_Jb> zITOxz1bfl!2d8bZim|9;w5%Kp#3w#z2G1c96KPGJ5Ty;A(< zUwtkAvsnUGwBz+=HNH{>-6anS%-@{0Z#(P)TC^c#;eBDpH|XnT!;HUN-dPb5I52;I z+HSkA_sTncjmu{03fKX-?+cx{gBkv_?16~SJNlyV1-|L~vSP;PTdlagiYW!=Ur*cD z-7pYNA$w!?{olmKygbsSMCA3OQIR7c(;6FIpfC+wu9nw2WpKq-V5hwp4E)|~+^`E? z6qe7H@eD%a8}s!r_Me93#?CHufVdL2w3p3Jt+pS{C7nNCs@CGlu$@Wzj+@O!bK6cQ zo%3&VFN51)rEBm_={uUd)TqQ>pc@KSinC=rD28`Rt+1nVUNmtvzT=dzz>bwv9W!=n zeRej{%^(JD&xiH+PUzlC4`r}itS_4Wd==YOxoamu@G>Tu?ExL^q64U5JEi6=0wWLM z7)n_0_%;Vga(mj2VOC4{WljdW*Xm)Teon{^R0ehsZkKjUVf z`69c9;#Y|aJ^k2e2!`cbh1*d4fb5~oZGhsMQ&?{uAd*gGv8AM^=(W}Ox4~rM%5wd7 zsaCC|gSb%-8f$d$2A>WdvKXzZy@lyWT@z@!K|_cTwK!}y_aVuI?M8?-*Y?9|I|_CM z8^g^;GlZ-ks?6*-QFNnQcprqpQ07!2o3LIVv!f71TCHM=l%o9MltB1w6*l9zVsj8v zp>`GzQXLa~cAt*quZqeDVSVyisxKOA#;Bh5@TF5e6@jZ&Gv9c zvrEQY)H5`v>JM5^T`JY>UK z9T4JjVA^&r{Zm^Eo9T=qK#6teyP1~I@TSr&jrzs?{}MMF#O%E+90u*G9iF;Olg4Tc zxe8M-X6$O?a%rEG(U>oZ4W+48g(;C>>s!K=GuvoqE;#xmJe^yQZk8aqImSc_*@o!n zX640FtrO3;)0dx*_X*$yDEC;EBE|_b>3S3r9N=|lw+3~v9kcmKGb2{0dfe!=uHrKQ zTDVc6(9Kh@wJ0Q-b)~zT6l9eG)AE753T=pMjI)Xt-ZE$gA#OB!d>vnG)|IAk^uoJfC z`X-1O4p%E*wim7mC75I5t1z76c^+RtSNp03T57MW^1uuQ>;4I4mUJ1bF?h{d+=iL* zqmB(?Uu{$dgLDi+DQHkj3CoG#n;0@IfwNQ+Z3QeklE1ZQM|3O9xJN1J94 zyse$x)97=TAm?Vt7SQIS4SzB?YuCZOVP&Z$tX$4`1^YtrMdT5%FuVoL#8wHn=cs%g zZp1O9tPL1%AqdUDYzvTA%U;_2h_gEtJS(%?g0ZzOcrLT))JZfcjcml&GDwQVA?Sj5 zhP6Pt2U!iPt&l=+SZd=b{@(@(Y&0qR_c6`y^zhAlm>&`CUgsC8G}VmXqSQ>V$Mr^M z3%ei|Ypxkb%9$4_hOGnSP$yxxtL>8wXuFS$7sJ5^M2igI%cVMGa*RNr$9r)Z3a(#O zwM}R@lHsEZ^Rfpi-Gq(%K>BtjcwL*b6YQen7$F=GJ7JNZ6{BEEq|H`HlY8_!^q=8e z&U`t@E6t&MAh5$ZxMiSp!A=c=0{4y~|N3f>SE4hFMsL7!ylsbvuiXmF8)#`pK(Yg~ zEiLf?pL{)WWq7M>Kjj{Qe+SFQs(3^)nu4L~;=fA|2sRSO16n+kOUh3DAKGAV(1%U` zMKpG)7MGfXJ{<~beV^9DvNn%`FL5J_0=^=!sk0L{HgO^VYvoXHj?6e#<;=?c%gs&0 z2p#W1(y4Ai;Tg6gceWt~cWZ44o0`igbNmcYZOj#Ie?k|c;B=W_+1MLni}eZx{^0}l zdkdRL9D9Fd9=gixtXm~;dDSZRB#J)jnjrd})UU z;O>#^@Uv8evqM3#2NA14>20)<5gY@opZg-@>2RY1PC~^XT-<|24jW%B)!cSZ?y0y# zRk@0uVKV4|_`~-Y)*7u=1XlvwDX`*0up)8mJ3+(k{!=w@?nA+4--*-Cxf5$jo3+g>KfB`&-20Y&qhmbjjJ(S&&?{0OyVQ|DEniV zD&iv%nU+gpwX3GQ5 z=%@NS-;hoeoSDwY*E%iQDULSzk>KGzm>~>7JL(-HoPYpH`BKDrdVPUKH5^0$juc29 z90ha_2H)xh9nO>X+Y7wVnNcBn4C2$j5)|hXNDHDnJ8dP(FSlA9iYx;m{Hwt^yWVKy zKvvO=%DH?E`4$GG78VE^TU3NDPAZcl-zf2C1@OQY100Spi|p7clZziTUM_fi(0G;j zZsS$rjlR+Hm&F)$6qr906#HnJnzW+udR>1VrN3Vbw)^_)xPBsMYdcDRzdm4oIK2?$ zqWt=HNd%Tb2rzheM+fu0 z1Am}!Me$_o-sHb;j&=uY<>8Km{EHA9n4DWVkh}7<7eJKHK_Pn{EEZZ;B1cdm`_@5% zWbX>>@QmxwdzBErqpJIQ<4T9#!FlgNGUks)yyp)S>y29J5>>_V7Gy1<&&TmfsS1PF zKn$2bd`zcQqyM2#9v^8}cY7b2;aBWDK%2~h%nye>=>-QKIv89lEPp3NrvG0SrJuK z*zqzc6jd_VWYBZ^oi=qMP_^}4wn>Ifg@T>Zp1{$G4gh;IzEf(78<79f$~g*{z{}UG z&*msHeaC)jRX$iq1-h(iTA`IwJMUeq4IY%Wx&RAUc9PxGIVcklRoqQaHXjSl2y0O) zvgEmU1KgDdj6VdiX+G3%!ifZaG%+PpI-Aa^rIHbmim+7EkIpNa7O@Euve@}X?0C{! zAJhPP4JUiYj=?sy0dK9bQt?priDI9S7FA%?@w8iXmIu z0I8_WH*T6M_Ug6u#o2J3&6IoKM*|MCFoxp@GXgb(No135HE19ZT(sZYRqR6&)=RT( z6vA|dAN!M!S-|8D@I&mJv?{u;!0Tku3S^#AES}v1FZZSQgj5P_C}8M#M}@~}38V0e z1L4teJ#|53+-oiMqYf}k6i?+xjzCj8;8pY*4C1GB@71A)VLFiM0puF9w-vR`1 z_P{P2M=Vwn)kCEswv^D7DF68?J&A}5NRD~mDIJV9XM%Ttc^VIvC0DnkLyzgn;f&Ua zxfob57d}Vj&E^3WV+2Jk|?B zi1G-%sDOhs;nA)_Z|CX(+Zb9QEYzixTXa#o2;pSpIhZ#66*+qVhnq{5NZox9YuE(^ zf|Xze{}`KtjMaYEPC5S=XQE#9*;-Jh5TgE!|hFd|x#*Z_E-r~C#Y zA%xdfw7pg@?Y6cXZHY*1ts%H&ajy(xEB7nMAbIDO{FPu^o4^tC#W<|dpA1|UhjLW& zy{yAH5w{QN=2wH7Ycr^yP^9U_W(i~Oz~}otJH{v2e3PS%nK45mC<`5C3n7|VT2w)p zM7!AlqBSqltqY?E%%3#&1Xd8V0}auw<)PqP${x6LP{@)mp^o8Gnpovq;C6K3l9+$X z`x?S_2uYrinHBu8@0AvQ4U&;NPG0K^HR=tBE@z!O6l9@BxD7VcnpA@*0zi`H;^q=2 z<0b1e+cSgG79wxx;3*bz3B%OFs0v;Og2!A*0{mJ!te{$l}d9QaNy+;8t zCKGTuL49G=#CJ17%b0i!0eu&yWxk6%kax`YdV5T8(B>w<+dM`>>*3G%YJ3M;&$#}k ze`*Nvw0tpNyTeeX6UKZ$(TIE;e3x8qY%u16=Hb`_!L9t2&54d@Lxxr|zH`RTT-z;y z0j%QzV?W{Adcm%P8bb5{{ebMEA@)ve!LoqdIPgx;E3(@nq(O~o^U_qYODYl$^|YN} z+jB7Hl&i>AIxBO4SVVhqw}3!VC$$T1f~8b^42OzQpfHzjyvpt-la<`K+2if|DNV5UDASN2#@C1W2*2L_S`jxunIuo2EkV1r7-GWP*MsE+7ga<&- zQAo9@b2)&(Aq&W=O=*(jv{n!zBV4SrTWB|OwtFBO{Iq8r=@u?4FZ2730gQN0yWiC= z@21@SDDmLAKKfw+%#81>DbVgF>zd(bELtZkC3o<6A<`S&?BZ32%{4JLtCrTah)E$s zz_GXFB!%!jBC3Uans`U!GbtRrBdrdM5UqAJj$vP5_-zFtCCjog#dO~AUW(lUt`&ao z{chTKsfNgeDuQ4U)B&1Z$NZBGRNh8=+L%a4Sr!TnfKn;AKvt)jfk!G~naG+N3U-q} zQ;i8izI+=kB`;SI4sj3toe1`lPtyLH@j3VP-3j!MlRZb&D3e&a_T1Q!834}3ib^_! zopzy~?fn86;!o_ff4k2_132EkiZ6UTXnS9P#;w-~4}^UpiXqCcP?^E@1aB(igHu9d zReQhKm4?w6?6+`75QJ~t!1ZRZEiz>gKvRRH9LO654^Cq%)vh zkcIJoVmCLIT8IHS7dx8i0lQxLJ|+YJu?IX1L*iRRjlsBjH#ud$6zhT?Rza zP;}QlN!0GX(skz^);+zcLavDF!qiH}kI;9N2Wtl=W=PaSibsAZ2$HR7# zLN-E8g#?Pf+c?)PO+&Zk zqX@cVmG+wfpCSiYb1e(i%9O3p+z7pO2f0?tJ@LnLv$J4JXM)R!{L!}9C6|ssC6^9h zALRCthIjxLl4J-~M$gpkW1TtegADeWt|>bBnlGx^7n8@>6!C>gM`)2NS9oM_#6 zQIj>|%4HI2GIv1$u-M@jpF#q;&~M11AJ_#+IlBGS?5s4!Gh-F2u#t~gdm(u*JzxV* znBf?1G#{4`tqTP-Ewttv; zZO3y>>eB6PqWh)U?#kuFYo7@VPpQqBTML!C4&zW<4oz4 z9IU{6=)&QRFLc489>B?Z+=iv}mc=1(_PDG1WSOoS1ggW{lN9|xzJxbokb-{(XYno_ zC^2=#B9OD-K1WKzlT&y7c;r^Rf5y7;pPagh^FOmfb1-rtaP(kt1F}h~OJJrx2UgcC z)s{K2z&vPO>5P+R!o9(mNMWnR^{w`{OOTN|A=w3@!~@e>B*y{i5aTN~gtaq68y{3F z51}r?#YSZxl*s02Onn%W;{(9C4Sjp=bF~KCa4_R&6^X!{v=&O5K$!f;m=9qS$r)?2 zwiq<(4aGePzc2nfY5Vp!)193hzqrrEwW>%-%`O9FMlSBdXmV@VPKmx(P+fA$7wyo8 zP*=9IpRwA4tMve@OaAknR%xdMppU%-Z4>+odO?1*QO5rwpCtd1{yJsCMM#>>xU+-4 z1lvHq-Hx9&lNYP)a-&*jmMcJ%{7EzM8FRspcM+lINVlpZeZ-u>%1?}n1>-^dJe4;O z^}`|Ah>6_wdX?ETV^?aK&^X+wsfml4eK zkme`M(iOlTaU1n}Y9AQ$NV1FxVQVEydt;vc*3$ zW*$Wqpf0vKok#@Xy)etiaH2fRLw@07ecjy)+kD*GrTJ!g?p5E@XT$S1LGD1lpA5{? z{coSdTj8I9d8YsEQ+O*3GceEgzn#WgVTys7?|=I=-U_cnC5ryHpTS$C zR#;8|k7M78X7Cm);&GlP{GT~%@n0YCKO)~a_fh%A0Ug{M-#FmoUw*!EzL#&D>*5%A z-ODk~V~g?M`Ga@({{YVMG;tj%oW%8K`1^$ZewM#M)cAa!zahT!_ac9v(%;MceOiBC z;cuKBwt1lsqNClk5QiIjNQQV_@BQNGqmj5*x=GwCecjy)iM!cP5Hcigr~hq+#C@Uv zZHB~k`rl?q+QX@i;S3DP&&)nsoPm23zqOTJ5qG{bO;>iF7`Fh zy)ZhSR7t|>dV&!9A26t|JD@13qeKHa;x}$1*^pkv65Ov64Wlu#5#qWKEDA@f1Yz8` zi82Mrr`U&{k!|pEjC14Fl74;TrdXq4_CuCA*^H6g&|$QqRCxk0!=xf(1ib(j z=>sCPbDZNhtlf3$Gu!r>%psskof$U)8J?e2CfRyb!=ye^|0jYQh=M_9(zh76oe^@1 zL);~5U2B#6p|#UeX(Vy~1T0PnlRE5XsQKZYKCq}uB#A=^9o88s5oiaiKlZB6lad6y z-!;JZ8;78sK--&1xUx(=P&*PLTm$*isH$kC;UB=#z(&T7LHFl=XKH{lx&xj-=9i&9 zMCJulyV8F4Z!;wgsW%}M7?IU?X+KudmYF_4H2&aj%hIV*9|2|fLy(A*ESi^8UvQyJ zm2UT__v~Fja?6GW9U=oqbU7@|sj%wOP`NszV_#QhuksYNu`d*i>O*Srx<^aQv$=cI(XngmU^eKUb805SsetfuIwmD^KV;wnT6`$bGQVn zQ8L(T94qOQVHU)tOcy42Z9emNita7H{Ae8oETnD-0;42#wN^sj!hJzyKn#8GRZh{L zWKbbS|Dk`GsPnf)X&iMgDF|Md&m|hwf9b-MU7wK+zRosCcac^2u#QI-42POhO>Xp?+2)m#$^6)d=5b{ zaBlbKPumbay>`h@kG=QY{MSon!ZYATf-@kiLm%B!+hvlVxyH z2~|%baeVO)$zajSaH$vh-nVoRDjo@%XM(rk81{@TnO;&j4)i%iQv?PgEU|K}1Hs|G z&i6;#`3Hg@4~93RC*e9q77}A)`R_)|lS4KFyokmxd3pC2GVf0v#J3YMoWcGS$A2Ny z8)3|Ky2&YVza?{uDk5D;pr+$QtG{&I7OBLfF(N3*O8QwDAfWtq@(S)9Kwy4pjRhF) z1J8S^$pkYit}Zx1yB+;X@RlDzsnI~-!>tj``F5^o%yG=-SA)0xD2L4Ep3BgD+vW!5 zm*T1ft(V>!bFwe%`24XAmh3a9?MNOju2OkFDX25PG&>72gYvu32lC7H8p__oi*edc zyRY>T>@LW0W>H3HJp}Hw&3tJ`;8k^D=1@ZZ*!I_qpIp^~cof8qeJ3dy|0mY|iEYKT z&DmMj@Y}7TU^((S>sqQ9d3^{jfv>lTTD!jd{OoLZli69X7CbOJ%l;X2!hhiaozpU# zlc5_P(S}_$=>Oc>KRedpeP#R13~aWh{a;%9-;Q$v{zPQPf57A}mNu}<|J~YeALrN{ zB{MEOujFdbZ&^6{pN|>x$xxXYz>^K#RBs3PpVt2AaW38slo`G2wgEeIy!-Bg1CjQU zVE)O>#RCrx9q;NPJR^j0D>FLoJn`}LX8E{B*TDVE=-JB);$t5Da~fct8NKUPgs&a* z&infpGUE@tW#Jn`_HT~!06+uky4N8ypPoA#hK`p8Lx@6j3QTsH8FXI(@t4OugXFe} z%nUL&O8j8xczGb~t+=@&Gj=|6PsKkR^J#DwVq`|oUVHJ+$2_{bUn4VmdY#6<4nZtB zM$u!1cXVV%el&YK$H^1NOaH|$gYtu!@w+bjc<7kNr}W4?n#}n9cZWQD!v5emccAO4 zlFUr*audlTC+xo+=d^tKHxNXslgnPMK&sA4OWn7cJQy4=jiduZE>OupY0y0=4+ZwG zj}tUklgm});+4#7dT&)(4D4SV=S(tJxMXHAf%|W=)s7LC6&y1TXNSwo|Y)yf@DX_ z%;Pi3MLPE6G4mI0e`e$vR)EJvdx%#?>CM2LIeEMokr^yAi)Z}JKo6cgUhR_i4`s&f zzhvm)lgE29rxG zSk7K;^};bjz+a-38UKI_v*MHX?~ao%!1U2`Nmpi0-M4T3&N1)G%l@LT%nbUj^!le$ z$IBu%(Q`rAspF*$lDELS$TBmC&FIBA-o(X<_Vn>`Y8fUo^7oDT6FcyxvmEW# zQjKF0cY*NQER;*tA2aDiv}R=c3W~>sEtZY$xn?UeUxpKo71NSS2N+9(WOCF`)v%dj zGy|tcVH@{*p&}tFNx&&9|N8Wx;9ua8kysN~f&w0Pt*hi}NxT$q5TZLMONN~NCn&dMyM$AmYH*0iNWM)`&dm(P3Q!sIS<9E&JF2}% zSv!e7B*+=PSw>I@4mgIv?vy*Mhb;ZMn?L|i***9kCDS%q&|@XIR**_5gO1wi;9CbC zHHmj%5k4)n5-qsW9$$MkZN@0GqNiUfW4>bJJ$RpZ8IG^W zBd4{F>z4o~)+ljxdH6u1OkL$3cc49b`nuG(r2zEf16~cWgCYV9j$uHdUb_yIMmqj= zRI@B5OYo?Hf_3m~#-+;Lx2lLRn%aIL>7wHM=qHSy8ozFxSxJx|=S42h4ktWq+d%YB zbN_6p^iMs}83ZI)lHind#0cqU%UadRKh(eLPJ-tK<&vJC>?Nn}Bo(M?& zg9^?@8P@^nU5yV3onbvB2O-DukP3?`oeWZD>4Xw$c<$_iM>awqU?fX(xEYz^JPw|+ zTdhWjgUDMxBE&Mmg2WhK)?K=dTkA@wEsat)T~$9bSCu+U#bHj$i?pIYMda?#f3pVv zp{mc!jQKM@m@$8zhVuG(HC+^aDq2h=b4E$V1FspfGbj$R5f`)yPqq9P*1qjB#C_MO zvmqsV2HbImWJ(Zg6gQCE>7~pU?jbU$Nu2)J+Am#f?9I)sv(A;;)=;ctHH{X4%Rbnh zuQ%%Zh-YnKn|xmY9}4H)it-xWgTRD?*W!aq8+Ee|92kq1T} za7vqCI62f;(tiit$oGkXMiBhbA*d9}5&$M-Xq5J&6~APKQ9<7JW5F-Q!cPWo3`B#T zC67~Fm0SJp{W8Puy8$6z3QZVzkKn1PS43_vf!PkeIZ)3uL|Ks2QhSmiz2%aWgGR|! zhsP-T3vryqbzpFT^hN%1-9qDGr@T8(x3Q=bDJs=QQ!-}sFPBWXx>%43i~3co=srh< ztfs4vRc((;;hebAijcg-!vT3$%Fx$&fflGgMop)s1L)FN)VYNsTacnV8;m<;YbT5D zAZ;FZSW`KvykMb$@%}wzHk6^B3ZDTfB#5>k#UeR@v?v7kMGBFCwpx~FJrL-c${Q+x zfLgi>i6JnuAC?7^`C)YGKDwlI1#VzoLP-_G?~^X9dvq?aQx}55!iDv7{`IrATtnT? zqzt5TK?ynLLLj>$=}Ljr#hX=@13)3|qX2`e;tILhh;IEOU{6v`;lJSXpeyLr>Ab-72{K) zd?dWTX=TkHKi*H_O#T0OPx|zK6yAG*K#nF<3(||b-(@=-{L!l97OLVj=v)gS5h}Li zWDaR{faGx|c+W{5qVf*l6VhLLXg(&9`Y*cDk6-W0K7L)2kN?spMKHZ?)hAz%PQxMu z!P)6vF#BxmBRwT!1v5EZ9*t5nU<0J;UP<$&JTe=nZ6)ut0Gwu!f~+SOU6S_7WnpAn zE^SCP4r;|j3Q1H1?q8Y&fTnZ{BW(^cC zRJj4P2^Yj=_k0l2xQVbHF>s=W(w9igk<1wn$i#e%`sn26FcY~uF!wz|JY!2VWHi%a zfh-{Cl5lBxAufO;vs`>XRA7rybOF-`>xCq>lpw$%06H=9ovsSdkNTcC zI}D1WAraWT9!fBEv_LU`?}+o15uwbjLNefi4bTDZP6kH@_m z1`D~`D`06sf&yz+=7~XZ>jy|-r{NX(XiIni)9uK6i{7;1Ohp@=8jJ)mnWI3l95kuM z>P!PLUFapvVnfE+L``#dgyjkY+-9|3!MJ@$e6>qb~BkbJ6b}9QOHWv53|FyMmP`6*qG+g0}xg{W? zzpwo{mKg#>0l!#-h7l*K7B@}>wyX|-q5+$}R}ZC8<<&ZZASWT*W`T_i|T zW}z#bSg9C~b&0UPfnow;q?SH~UTK3eE?IzDFeP%EUJw)kQ~0Y3q`2qAUmtw@u(jd; zwy=HB3MO!yuxHSnb~@NOKwl0ZZb5cn76br80oM3y;y~GOqPyp&`5k4J3qU)~X;#ts2Xs=*T58JA;&TMZS5qHfY@rF5!87)X3;ZqXWEXLx# zFhQJVw8UFsm?8rcC%k36=nkYx|NbA=u3W{kFUecn$5n1tcfrrhQ0}H(!FOcF=!jfX znt*w-19dM9c%jN;xxrh&1X^DIKoxd90QDE-bV*%lfex5hQQj7$KR3mq4&g@iy+}o6 z5?eqV>y?R#CLg_GB}9^Td-e)|P#Ebs-hc^n5#QLrwqM4li}pS?7fht%W{XIGk5vh+zC-+zj%!7WZ`|l;m$w1V@TZ^5efl zp$SHrpz?^^_(lgVsLkJ?D5Z8`cqtcFTIqjd{sxzAU^-5^8iUCJ)Uce_F5LISc`XNR zb2;)h)UL4L1dOH=Kh(6H;^QP=%;wcq_n~#)89M==AS7Q9$#!4sx#R@41~5yyG_` zaE@vwN#E@h6Erjx>Tod76)O?}rGn0ka5Kk7aN(a+cFbk&6S~B>Xk-4zpp}g&09u1j ztqq1>JU?uM@;_KRG12+V^kj(tcNUxOTnh!kuz$jI=GE6gWNEQt(m#loU~0FvMii-pq5|PnC@wg&Be1(A6#ewKwn#>N^@}3O{Ad?~9`qq0)F3fJ#_*{ATaHxt z5u~67B|e$WyrpW9EH6xFv<0b~dY(5tCGxD0IbW7TYjx1!g*##}|Be0aSBsZ~ECUoM zH;T(GSH${PycwDAaWJ3t=-f;q52sEy&*cid9jhR=K7uRx2)ARkL@q5{f#k#6vGxn3 ztIkgcM#P(^07uqJ#e~4w$c7vkFM`hEI)#|@9xxEbL3+z3@PvX=@4@jy0XChH-n7J9 zD_~rV_qK82h0thzgQvI|0g^4pDZQ@jk+ad^g{W(FCSd@Pnf}e+gty2Kbe<~SwTbg* ziy^NRqWp$gu^xF$B$AC4dn6o#>mCJxRz(#Ck9KkPI(j>w1V2z|5^k41+TmTQ zEKGx&kdXTBhxS(&V%5ckYDKRen4P5_PH*pp5CJ&#fx}AEPIb9Jl%W7OudOPpz4-L z5*anEQwMJ0v7ikaM&>83#{MiI1J2&6>eX#d+e}Tph#X?DhcA5-8M$pCL0Yxh9)#&@ zG9+;Q17HJI74Jb~Cw9qir{c?+;D>ek0b#3B05OmLdh^C2LOS3>US;ATBZ$!f$x9gR6jc zf6#xNhw&irLnZdOk=+6uz5z>%Zn7)P$n7KNCc2ms7PqmkpTwt+H8LjaTw|Ae213R~ ze*qT~bBPMGkGjdZP2AIb$iWzz`Z{lNhA{_Qf2aI}*nWRByw&V+|x-s#v83acNoy97(u(K=vX&Fk4SMo``R z0dw~PdelXwwEH|}dCnHrOm|(~iRtV1dEPUZZke2{G8E+MI21_a@89OU&SGfI$*V|((sj4H_BSPt<-Q#GCeic$Th~Kvk*`EmmEko!#v;gO%1l!eInk6Qi$EWffV} z(^;e66~^i>!WQo4;Yn{~-aZ5o+&5r(qBJ9Dxcfk|$9raZQ@aqk3vRK8!1(0ETPtWO z)WjcxR005r^R)681TfttAuO~-K)w?jJIL*wk~pMAC!l{iag?aV#77(e4%nzqGZ+xI zAILGnbR+ZOz@0!@KLj>pI>QM8y(BOznLa>J%~##-Ea=FDVjsc$c+3|6YDY45f~g(I z>Q&qxjcsa8i4kUA{}@iMB(=${9wIT>H|!{k7Oaq(wn5nye-FdIQ9*SQkw}r&jI5UK z1SaDjL#Yrq&QqwzA7pMI!Ho^>&686|akH7rK``RKLD4<+hOtA5lg^do?2>MMIm_`C z&qNBMLIZ_Myc$FbIAA}YTE!EZ8z;zBkT6e;f#$ng0;13jRAqKcfkOcNh zYPf6wR8gg{>@12(B!zH-bQDRO+*m~~{dkrS!!=MY28uSLhwQRi81*G$B|KdK8gImi zjF96e1~OmFcbUn9Z}qHQr*ndeC>Pk20Lg*xK%pBjTiS$-HIxtBPfSaF^3Qja#XpBwDM7@d6?y zd4v-+KDz87Shy9(sBcumCfy%`oya3}N}`gLx4b%d<~PM);X`61Jwf7eu@c%UJj5aM zD}sU7;woE2DP>mb_Bk>?d*&H&Ldj=Pn?qa%4q6Bnc;M(sQ1b@|HJOEG&2moB3Jx92 zt=sLL+Hb0#Ci2jl@;`Va?h3Do6t-TN3+7JRb$=c?ed0Q#HQz5wL?y>E@%GZTkkO*R zwk3l>IeVgC&>!FffYlW32P$N{FZliuA}$_?ofyYl_Mv1c2Qroz)tQ}s#$RB80}f^@ zoM4=3SWK5GzHlG_q$xNT6o;YOnY zUn{hm252BmbhyDo)vD5OV zF;B6bB&Q7DL3&~nW~dn3*=W9kPW{X^bqiKBSl1j;!a-Iau^={G9o>{17$Gr=f)`sI zq>1CAIc!totuQ1AWW#!@Lqy5OAW1qWHAgt2P!$svmZ_2P`5 zcM=6IEjtzNUfzyzh~z?#Ik=J-dx>4mFW<=ETHg2jt8!hM#L%i@;%-(H}X&A!Q zp>eO^Gd%M4nzPUQfK|WG7_Q{9nG)bj&D7o_j>!OiAVp$q$G=4~*;dPKD|qwi{C-7^UX_Pr92 zK$=pUxnw+YxN;uy`(V^eBmt)#avN!T672wto}>xGBgt_5H$%uAG)L!n*)PgV4w4~p zQG6mKct-ZX*oPPKg-kUOE5bp-Wx~arypn+YaW4|;i;PGJ8U|C+?!C)}XRH$pxe5`2 zvNV;3HX&k%i;FK<+!TO|+QiC47(2oV%nb|dxDYyx!xJ*xHqX4i9T?J;!0H#ggqOiE zRWS3($E;vbksV~|wH#3}!wy)GhJGh|?L<%)3NAy(mBPnlU_S}R7ydibuZoQFCim80 zgdGl1+XQkoE}AnYM6GZA4YlUMp`16^!+}OU(;4jh?DntaHsGYo;MkN?9K7KfAxCli z9s8x#m^Wf0FaVe?%q?r+2O%{VN(c~l3VSzJF`xnG1VNn$asellyeME&QSe$c6k4+! zC5V_yCGlYpuT-;n4TLU31MwS_(lvqv(q=f9@60p(9mL|Xp`L~!*fqUko`4lov73TV z5z3ifpkCg`34F{Bk}bLkj~}Pt90^`Wam!Q=6PY=uj9&zlp@v7@uBacL!xloap&uia zLvV!%tU|c^7496kj6htnezIunTuAR#R5=Gxks6}}6@?2IDYwGYjP!#mUKYL6@B)XE zqry8#vckcbD6UBzRqj6KH5t0UWxI=KB^aqtXC`|DQ>kpIO+`Tmo$%n4UD=~ zbt*+{?h$i6g$}7034Eo1oUYl?I&c|?(=s6*ATJK`42X(_i`>b{3B2gKCzr1l`FHW= zM7qtm0HX&iFnyRq~Tg-4Yw!^Pw$BeQiZEar8rwcd0Q1Rr%lY-Q8I6iK*8*w&p=9cm)U=75ciaMj_}2EOz>0ck(P zX6#H_K|tq583S@}9m!i0EfCk@mC_zW5UAgHb4gwl&(2$!ZR4EmAvRu*x1?i9hzB#U zFhzHy5p>_zd5iHjVd*v!(`a8<1YTUi@@8lISAUa$a!L+1PRXVcK8MeK!q|5e;cHOL zP*nl5aH>~BQ!XGeuI|fIoVan;u1b(TPUgPb0&Ka1Rw4s~B)a`AhR8Kw9$2%n1H@t!yT_^| zh6o%GFoP`=sK`Z%P%ILOXCRKQ&{5~4Mm?kn>4pgb>3tyJok*rZ9i<+2iP?3 zjnky(FEUFGzAw3hREJE1njt*^*3-oZAqpidP$sE{EoAyZt?h>@!%`6ZfmtgKr6&j9 zNooGjZv*oaX})TR?4Vf1bP|WhK;ew>NU1wy96@YQDj+qWD|pI+|9D=*ph?g{7ciq| z?J`9?>6xKez_-DZ_W~QTBuNyrLJ7Y~R&&$#tODe^fs36v1EQad&@~6@f$ZYdqA#nq z#^o1pdgE0{A%604D{&XhppoWsfJEb9b}H?DYRd45pIA~-Z2+OS4vpUIN9-~xVp7X<28gA<@&A*u>iNqh=K(tgx1B4|Sl%QS!K>|Cb_y4sX8nP7{o94ZxDHF|u z8axvZ+QEzWJ;Bu=7YQQKSdV|=S;(IAPZk(@WV~~rB1GwoolBB&y(mYF>_KZiS}tiU zg}}sBlp|CtCB7-6zzL2bSS~~QAZX1?_?Re6v$L0%uPm>JG%bQ}rv+kLXCnmAT?B^8 z7!>s=uHi(hI<(mkI~cT7hy~1}#?5hHmi1^<7@RpZ@jbs`VCE^Z#vlkFCXhij6$Dhp zZ{a5mOMABG{zdSWb1c1~MM)TZPhdvhI~TsBpyY}6!W9?*iB6&{dJc#@nMkS!h`LE4 zagSDp(^KzEtRgJMyE^fmhzrscm z9f-IliU%ow8qHVRhiHXlc&zJi)1+rOy%vJ>1ouhG-PVD;D*E@oQ(w>Q)F6phj=}wG z-8uh1QX4K^kQts?w0?t>;iNBxuRAl4Lkwl3F#f<6;T&HH_2M4wL_RthvygiIIID^}!aeEQ_!x#OTi3*_|At` z3i+JLzp=(3b#52JZ6HS_BA=(hYLW6)eDyT!3kAi zy#=W??q6emQ^GPH9XQHD&{9NKDRyWuXRF&^_z|oINj&YvW`h_XV;P_08rX4Ng#(!78zN(Q8L=vOoXc5}12b0JJHo?^G68AuGG zV$6y;+d~?TLoC8PIJ0c~L5)ytg|wITGfS6AxD+g0A?d7kRXEkDU^8lEBYuk!gs|0M z#~RHYkbnt^iR6}6&f-0+#<+AF3dS#H=Umx5>_xI2>alg3oh~2mVd_^vtInHjlE)iv zHJHv<#S$LZ8=b9fk2_fZ7QjHwntJ#VcWQx@7Ku%r8i);TS8%XTcl|xs)&46Z-vto+pGx!8zSBxp8}hW93fMCxfj0q7KJ8u(KT3V4~OD7qvAa z0s_d7?At}&Fv0vL7Jagz{YS*Od;U!NEAx!b+cqWqRhIXJu}e51UEalsu(EQ4md>v zPW1jdZMjc8LCFSHcQIxQJ`#)xQ%i}~9W9p0IFZTl38>0X0Phi|8b|Of!|%jG#W-%w z*07yRjx(Pj7uZg5!rt^@`atz-(~mHfMNIcXwplManYDIHYK-*&MoI5(A-;GpR)eTR zm@1P7I=sZYQOc9aq~gEEY9);$$pb_u$m_#g=(~cEm>}AS+jl7P7hiSMfE+127sALW znU8STwzog)Nd;ft#FktK+fA%A!j2sg*BE^C?-fCCCyeCP67eLcy%QgJ^#@^Yw=sq4 zW;<0MsBAkv?_keLs~oi{&UqLuxG|s^F29vvl?|1ucmN3m1~IrbC{SV!&Q<}r7v6XA zaF9IT6lXdO8W5xfh?0Zvmm|E?4b`c$ybA_KGPYn&AM!{Tq2$qprFUFVN?ATYN-`{= z#cpgWZ0t*!@nTdoAJBaPzOB7;;w~RgSUSo=A$micZtA*#PeV3$1(PX8D1=U@!+{RM zUmyF)s651*ncEOYV_7JXd`9s|iwGF%NENUj6WvPhpleF{W5>5ML?);(Vf$yzNqat$=0%O~avm26A#uIH84kc{JVM693Q8-HR)~3jGJ;9jISSN6 z8cA7`_!(q0A(!SQjY4s8$c6RUx+Z@$Rh?H=2GI^qHMq zBS}W^3cRSxvX?v$DT@Ln5ic(EAJlS0p-RN$308oz#$M$vZNP1dfg}-5wiJoJ5Ob0^ z*o>W6Q)xQ8ka<$O8^T^87FnLuU;8#2eSCO8Nuv_3TjhhPYVW+|7~`f*pb9$&wYx-kc1`jV7OvAtuea<=?i86@$-Ny z@@zdiWM94{MHjB^&Rr~_cuYB#s5#_oOY>v`cWr)|!A@!K;;Mga$hzy}(7i~JR+^=~ z9@K13d=`Z^g2UjeuT>sLf=P(6v3!#TJ`-)2 zwCy${O1erxbF{9K?+`!5S@my*pH^uvV>N{M0>Q~CusxHafr30S3SR zY#`i@XMhnXWEOE1pbo*D2OLQV}u2HdhPWL2$u-Zb~U3i zeJTxv@FTuy3X0!zmFZP&OY{I5k+~{%tfbOQ{Sh+!G>a%1AVG8WS7yc&Ih<|<9tSt3 zYK&NhR{MjrBl;fhA=r%@v>sA;)Mz$Z(gX!zA?pTyx>?HOqsh$PK%f@-->c;PyY2bJ zr`_YF!4#l4p&lL#nTR-oYnAK|Qi2nXvMOHcKt+<@ee=b6yAB4>E21l^agPajZ_@W# znWn)};2I#@L`d&~HsaYgK!|Smm#@GrZ<4TObipO6SCYwEcwOh2_Y6m{3_IG4f9y}c ztC2}G^yq+YXuWHx5m4kl-6@D-H~Z&PsR9dFfeXW78F!x&6l%J?IaSbS4Yh3{jTdJF zFhEq#ta((3Lb5Pd1Bc=@*T*RQ1VM!o(r4x@W;Cr~(g-B9r_J>fN{#x%2bxGlQL$z>*&!}G+gqlY;nSqoz&7Ke}f{TGlgyZjw zs7kfD&%k4phZNi<2tb(6xr|$6fXO_sBryby<|W3@6-B70;`O4s{FCP%YNYc?tOCZ8 zu%#qp?2Rz93U@J)TTH^PQOHCGuhy@69(R$f(T!cLCu8g5?9dtL`GkmM@YV|e7DOd) z@Rt(tEmByL$jqsCQKY^^5fF*aQ1D?=8=!@tRx)3dDiZ$eWP8v(nnL85$yq{0i(Le+ za^!5gM6GkQ3a5mV2T**LcQBq#xT-XU=R;nD9N;W}CIV8S74-X5&6}$)* zc9s7EDNMrVd6wOHUDl%+;&H-9q9tHop?AsjfxaVtIf``Vk=)~U&1+?T4K8f?$edG( zRd|ZZTbD?cuKwl0rlgU( zZhD`A(&lJ$!i6`qC7FM}aNe#sb0y9U9`%^vNT=^=s}$_!$DbghrISu1V+OL=uM>vCa+h%gPLUw8_m$;Plpz z6%&$(w(AT6KVb^QYK30(_)UcxU*<( z(j-x~P(d|O)?qKk6)MhPoCPL2cEu%xMX0{0#=HztctP1Y97^RT(oSXKEhf7&r-!CQ z$B?{)i&RcH+oa!ZM5ZDUO_WQBVt2f~TUZ&TgWa75UJEGL-))qvTegU`Zj~fw!<)PO zM4VZfYfd*{Nv-`0H1;Eu7gl}<$^axR_b_%q3~5JGDrLi9jU2haqQIZeTkDmM|F8T{ zuT+s{%-Cs?F7=Hd9xS&RDT<|qeNwgQ>YQr^g>7vdL*%fzDT-Ij@!_%ZT z71R9FX{#PX+nlya93{^T*@vy`FoQhTCBs9~ce+h=f=LfRp4S%812o46rFkEnJZV>T zSx(nO9K5i8#8PTzRU+tva^P4a28{j(tRhWz@KXZ;WqPixhiY$jmF$WtqU*|if<~MZk5Wg%HlNt&w4d<3q;o<$m%Y{6 zua_fJvRoHTNyL#S=o{LFJCiI4N{86mAi#$3BQzy!TV~&VUd3TWl8+BGB?adli+siU z)uij|PUdjQd^mx~ zdA=#qDHF(rLtVGD8$%-|AI6AUb3#BwQ9!$c3@(_5OHzEzLLeCUE{cZo-UUocL<}lV z?5)%~YvtM%NL)Tk%{%&NilYv$J>yH!;WXifseq`i=G`Z{kua_iS5R|}<8+r?Q*hIC zh*v2Sil*T6Mhc+@aNLhpFryJ3o4mpS-Di}l$JQCW$9cOOgDEmK?zF-!Vr!kQ0ZPz1 z0dPaLa9qFa*p~ zcaGO=lD3?-%r;_SI!Hl9_Zed%K=zab;)rErYFaojND=)lndIDaKh z*94rZo{W!TLM*7m8F))#IbI5V?4*YzGVUDS5PZqoB$A1N32S`S4Jr|!K_9S4s*ODC z?jD7YsfNZwtfBF*);v5kGL1t0@ISS;!3C=234j>RFpStrf|E^PhV5`?#+XO=Suoc>yL|+YN$so3|smtBuAk%5IFTp%A^v+hE;TlUM4^QXY>Tr9WJ!-rZlWufNBS z(jUUGdpg9E-Wi@fN{{dKcKA+Tf9HlqE^laX3gkP4uL+H8P5NiIotfL&5MAKA|mI9g1ky^gtO_pR}BzHd6TERTIKs%<)zg#U9FxS>TC8a_6fZ`d*q4F z59!PoGc%tb8b)9omYo>4CNn~3Fy`b|n+M`0H4FSx4UzjW6HRCqiI?+3W_c*7z3##> z`)arhQ#3)%zn@zq2N1tL@; zOqiJXe&sYkg?+V@Y^^rw9 zQ91?>RaaQKkLWf(To=NG%wp(v5IZF)R3@BdyIw=lFs$ClW-06@rT<|?m3jgYQX#QG zC1pVe3Opo#X<|rveH&FC0(5p3kSJ6utqI&8kjVcbVh{G<@|)Q0AiG%h0w#d(dufib z25upTgIdbkVLe9y46W_`s@j2&(Rwu^?{Td@4ABG5`Q$bb1qkK`;ib)rN!-WG_Jzv} z8HNfWrCNtA16j^U4@ad5t@z{T}pYic?4V76h?bN|S|N7_vW|TSjsW ziYLGZ471`SBC6| zbMqZs1PA$Hf5AUKTF0Zv7~I^yIb^>-cagu2^tE|mD0ey8R!~tyi6921HGF$!IuR@B z-O9Ty0tj!o-lLGM``gvt&WJazcmHeVp*#uN$mla|T~G2s*z6>2)%^NDcaG zhxa@^-)Q0*j{CWM@HQgY#E+NUe)#Eoxpo@3RsIS0Hf$Ahh~M ziLvnh8o{E#0Y%P9Z(uBNnTw^i8pr(WG(Llt1AHwReYB92Q2m5Fh7L0N`rv6G0Hi+@ zwAjKDT{$Q5_aWC2K`*?#QJ3b7c)0DO0ofHH>(N#eo}ZeUax+3a%6ifr$PlVyN?aZ# z2v(bh@CCz`WYD0f)gAOu;WaQmdIVG}fpV?1h1x7zXPs~F1%iRHKTYS9FkPm;1hSX6 z8@T!jY6I8efS?fZn~wI|=Ah5!see{0Q+5=JC9j~I z%CfGVA-lAgVP$hmli^k9`a1`VHI;2V?1!<#V=FLZ;fM$33q$rR)+1HHO>uTM`&}x- zEyL~J-`4dt_kc`hGMx9~4b>x7^o=JmMKg|e5}yMj&+iS{uYL4UwYLWp2nUP{qr?{= z+xO183os+R0QCLfMcaWf!tM{@CeW!SrFlms-My8TwGN!L_(`3#LQjIu_kR&%7x;aq)(k#LH4joBNG8*NKWSlE5 zfHZYAt+4}rk5G!l@m5^Z3(AY6d=gDW3Y`Sm6*Vf2R`%cIK$_XS=pv*clfzoi3x?0J z5;nht@rAS3I1Mc>#jEIPPl-_)QbIAwcu9;W`=`Nu~es{+)w3Z zGAj-f7c7Tw$-Wq=?vi*DAC=!V*FQN%GC(n6&T967_R5xB&~IZ5MDo)!WPM}Q5>mf+Alx?093AHN}wB#(i6^trUy%{P1?$cV7x;j`8J73kvJ6y zChZ19WB95#h87lq3kMw`o*hL6=pxn#Eb&cAu_Qm@dg%Rtnwq8ehm8t7$=L~rtTbF> z2mTRSKx0oziu2j$@d#8arD!Yje4L5>=qGExZ|xrYxR@TbwCEn2qeH!X9XAs+cHXtS zK1`%X&)2pmw?7VI_~^$)46j>H4MlWKA;%~Qp%IW;m?|Z2R8CHVdW&7{C6AYu-MI22 zQW(C}^2n)^G^O1R=`@Q{(aw-cU6-;WZ?N{kd+FR6f`+(~ViLY2f-<=dvEc$TCA`U~>CA=o zP>hFZAI`vz7jFXIQUw)&b3!`i!)rruLo|_;N$M<;E_9JoZATwJ3wd`S3&}t#GdC#< zj`pHm2<|(|r@DuuVZysoXTHMNhh*1qwJ!)NFT~~}NvFgLnb}2n?v|j_fZgyn9O%3T z4%}F~U|bO?(LNvpCq9aNLb8CK*Od4=KnWi$qMrlzgf4ZTHOB!4%`97pMHT4DluULp z&F}Xx&3SIw+M%2iq8HH#K|8`KK)0m*vhc}MmuD^!I$lZ|%;{!4rz29wm9F!1-AZ>Z zCk?#RBeWu{)_F!wJj`%ld*V%{Tf)J?Dc(KbAQ1RR2LUvVq{(80>iWopTh=sl;tylp zrJw}s(^4an4OaL=r*4B6_(Q0Hu$cn6$Ww~Tw`lA^v*J&DAfc+P8Uz47-P|XlB=Vp) z*?9kB-+8P7jb#%Y2J2kpN!KpBTbUElXaz+o`Xr*M>=Xy@?&-^C?IkWmSFUSLPd$ZX z{GSRx!qw>BjX4sE$y zg+^p;&-ZfXAd>0U9MXXUR5WqBQLUi7IArX>xH5dfrr9q7V!R zygT`v53xalb|4GO%{HD2XCRP@fv9M^BjK2!#rJ)*zS{%Hlz?*e0~C*s$JhCdp%Jik z39q0(xGMNnP@CRB-8e^6(XgF>Ck+Y?Y4wM8VFiB(-DaM?ijdOo8`kc+kop(#S+D*K zOVIcumT!RQB#Y=qf+33>B&xOwNB}@QfD%YPJ9{4YG8j<-vDS#)Ry33k#X@iDQA?35iHhMRcp}6)E47Hu+we*w#;n7d(XtvcPFcUNU-`&vJ484rgcdhzX{IR(3=OAXhq_ssI!a{IZlI{p=fWa?vOHjr z932Ta7L&bC0nL~ekZ($l$K??JQ*_1*B2^Jl9Z~?M-Fpuo(nVp)a-$OKT}g4I8z%WT zU05JPYY0A^9yk%QqwYv_?=BCI-zjJ%=^r?b5Pz9!FCUO2rcZEOTdzT8rql}x;rXa! z6uBG$R)OHi$yWN|lLz<~CNh~Tz=P61NNxr$NvFw1-~oXHNs;v@2|yU=Y0LHV*f${qog(3en<0TXrT?Pi&(oct;Uvp)owBs!P0Xi(A=X`E?7 zFbfRp9i$W^K}`#sLgDD{%!`SxQ}9*gNyP=fBA5&xzi(=l&WbRF5W#CZ2}~tl?p_3d z5FzXC9uTFelnLYjw}K-~%Bc^UJ|hIl7X*-kUI2Y&N3~p8lHihv?HNjw-1(Q{uZs7n zX6eBT@lfK#;kLxUl+~a{ikQ4;*MU4o;&~#66H5lts*QNv;S4-yetced^ub-vxRdSK zwf~TEEeuGJS#fBW?htEaebNyRH)nCf;D0{=>1mD6i5XIl|RkM^5*RBIUx!n&ha$CI)hrJ(Ekw3564LQ5(LNSn6R zk-2KyRY;3HSAF}-)x$hwzstr3MnfTTzZ{Q&O>UBS= zA4#%@sJkLUL#A@m;^Jovr3^tPCxn$Zf+41X*Ay}kf@(P+SQU- zlgqrU%+Cdl`a8KI^TzV#Bnx(+7N@HiD3DG;hOuV<@tmms;07)7;ciyxU^4)aB47PP z;oQ4opP?e337t*pseJdIewU%V-r$!uq+Cwrk8zE!bU{u&O9Y55RGpwaP8WllEqLh(?w;gxXgGKRxAz8a%ywg7Q_&nU zlFUTp8BCU6Io|m`j_roOt;Mk*wnYcrUg@9g2wwp=+#86&kOj3O>XEodx2OwsK;#gu z_#ub~oqmgHoituj*cL1(swE03o}efCTirSG+v@>-Ut}u*UdS~{9=xDOY5+QJ!yLoNR@H-;%Xq5wN{sr`%x?o34@v5+=M(uNJR0`Wkw~wd&{@Al<3j^7%lVbZ%2&B~Zl&!gPB^8Tj^)y+Qx*idYd_8e`z=b<#>Nu@K+3_Oi=TyM%_RN$P^w@@R7| z>|kQ`_MZ>gFE6;*7glnfyGS;4HH{ZnKe8GB4$REx8xj;KzZ7Vz@FEv6B>Fl@^oh}8 z9-*KTP*Gk^S(Q#2_6x@Y`%eZ!YOs7s>OwsXMo1u(k(&J!wEsk~;oWRSzhnm= zCkyM)>d8ozHs974WdXy`a=b9<(}eHeyH5O{kvLF$A?F$?7;(g1ysG~wI|eRo$4O5$ zd|4gr*if`ymS6&u$(7(NlKwss0#luHr#?E6xv?##4Dqy1(xOskq6(&` zN4tY|Sd38Cx`r4qFBSEjl_3Aa!zL{hNYm0exZ65J1meoMe(EJ_`8)>v$SZM<-6A`~ zGGrPs`^gcOq;szALcN1vepD;=5IJO>Cv)(qRc;f`z4RGiWKOGGPyr!WQXA=tMYSIZ z!FEMcDbP|=b)5lIe#na%iavgghzo}LpOg;z9?oa~yWk*2M@7$tv#XPT5 z2*D}%f;}*p$t-fVk0#j(SRPOr2;*)4#gLtI_B5BU_na9Xdvgsm9PELnAZYQK8bDdu z3-QD&Ude9Fiti{nwpU#2a&gVEc~~?73`V%2Ux7?YS2z^k%l!u=yE<+ORbIQtPL%NU z+vq`x7asT$SDb-<+K$~as;qxi;HfGqq)>5^6#*o3CBHcb=LC+J6r7Uigz63=Q;@|X zmB=%*PUieE73BCf0_34rcBLmzDF>iv9XF9&oY(t40`td1wvDO}%1F|{GIL}CSV3N~ zDu7CpHh_AgI?s@qaA_!CM2y%8gJq8PL2x3iC^XiPVCdHRKv3izB<$SO|Ht0jfY^1N z_uhMJj+{|CZYTFD_l|kx_dRyU?MQcYGIHfyc_IgmHFBkUC2OP^Id)?)=V<0gntC)d zoin44;zA24xX?lhE~MZ>3Mr(}f(r?xkb(;>q>w-Y3AErq0|~r^1X6Ip1sC4m|9RG0 zd++lx8p(3g+_y!IrL*^5AJ2Nezt+5Wkg_YJSjG5)r}66qvg6O;FQ!w`^_2~Oz9*ad zWm0JI|M|a%vZ)!b`0{_(vWc_QB((isd$Y3;a?m`YezA#VccS>&g!N|jp=@%VJNH%> zR=Ce(lY-vyXIHL;f9%Vq?3tzI@bJUg(R19awtXZ1@H5#2Z^wU)WV4^Tu1gl>lv@ti z^l*0cQ@FbDgPpYMw(Ms!PJDE=8wY9E7*Sx%As7tF1hLw9!kt?7Wy(PGPwJZZzc23@ z*-8VZffkE0?TO;AROqOvh3+m~-;jY(BNGKibpot(>7CYN`8jp^zatruYj zL%8w;i}!c50_^aCoJ>2!609FC=Di%TFxEg#o^LKTrZmz;)yu^J2!x%L;+ z>)b)H!v}e`94WEqlac;&#Aw-iPB0O7u8snKg7-2;A)?Z+sGpe=we%zuPnVa>CKj z7lM{NH*T!2DZaLHqtkOF`xOjaxk3LJm7#QZFQq8U)Hr(k%GqhNTBr+ zL1!h-)?e_h>k!BE-h9U2Ho2=5Ts{wVK9=enbK%mG<>a}k95td0^pI(HUX|X78Lw2kni>rnBpxte*-yuWO&Ybli}aA0b@B!n=4lUfnDX)$m++PIzIW{0t@iJdq^UlBmX5%L?iRJ^;iy3I5SIgm}y2JIY`;l!1j4*sTXv}q?#E$qTN)#Q-V4H9nR9co7o zjvxP6SlR>)&bJor8weW*z<1CamW5UW9D4HjcNHnPgw!L-F2& zU7+Oq83mCg=QzOt>3W28^qI-2WnANdA={(Gw^XP>t-P+4A)*j2M`Yy|ag0k5;ie-K zZ}I3bna)-@vkT;#G6*c{a<&c*>G#80OW0HD;bp@5nUP^E(HO@=q z;u;{d(N7)vDM7j)4@5dTzoQ`@4kyF`DE`-U2;YM;BV)+mJd%&lQn{}(qw8M!J~-xn zBGzF;4D7s4JF$mzEEHXhrgMu597cQcbXXl%(WNNF@E~(HaD^6)Z|oVliy6{mK-98t z?aAw(-aht;`p2KTobfOEKFnYV4rkxF>u5cC9k%yA%xN3$$ti~Whl&mR-QJF%-(@~* zUHzvvGB!4veXsJx4|>1&fq(IXyRPo&eB_Bz_2_JR;9~ol$_Cio=sXGjn)siJ7H2^X z>9N$tM)d?I&Q~s39;dvIrar+`J@6RPDO9e&i6wgKUji_|@R~Pmdy&CCpce)!l23dp zyH9pmac^cP_{V&vEIJl6vTwTcH{_=@UvMSR)pblRZrml57k>4N8gK`9^=KSN<@A=F z6WaNrr32OOo(VL$6M$e@Ar++n(AQ(3?wUJ;lG&d+uSsQv1eu2gRy=A5?yL9`X16jkqXzrr?S)@ zd{7_YNe&%rJ{OvU1lSf3`kQ+oqhOw@A&T!N97teVA*~@0h6nV>Jc)CWjmZUh^7D507(jw1VGbL$gcd7=kP3~E_M{0~XBcooyTmvt|C ziqByz+xunG^ztYZJ84!m_|d|`#Da_+2`+UkC?P zf99F=O*o?_YhY3Q(e0Xt*EeV&@&33A%4cZCtyOZG)NZ8}^*aFR4pz<42O6|}(SGAT z5=;zJ+RMv2V;eJOn7bDrD6AUF6)+N?#ih87e`NY85we{d%kzGZFoWi~nHMMGOh+2k z=aXp-%TIPc!eJTk#mC}$tj9D18{1+0^3!7UCmZG88Od_=T)3%%cdeEcw3)fy|p2<2v%VkP4&PJNBwe8lOkzNEfrZr+`8b zI4Y1%dINsQC~u6Jxk=kSjb$=cml%Xq_nQIqUGgUo!Gkfae$-X!Kd>&VWcG-J1#xA z1dIxvEm(uCJVY%!i+0_1vp!LzhT;Pwh-7c4^b2ZOXv2b(^3WJ!U=uICM)pK0U$tsE zN^4fkQFm!U%vOpMzvjAi64V;?2`Q#OOc9nVcT{XCvEHm^U3g@Y#_;$lPqN47?0eN% zS3Bo_Q!UX>#+GO&C9DLoA|6nNZGb|$7}x}Zw`s$+d&OE<37$(Un@ig_1P$790C81S zvwC7U?jsBB?4p;^hE?s(k(>f8G-(zQG7)820YV~?8aK2=iN>s>lh?5^yx&n43eedE zt+t+3nC{G4df2S@PQb)=3AUAIRrem&sY{O?460;1XWnML$dsN-q<@69={;XE>m@-B zS{^|d=>vwMw&>U^VV^RQ? zu74F}&(O>W(@{IBU||wl2zX%dq?jpbIe6gB^(u152P$`}acHrN!2S<=Ct)8~w81z^ z48FduyB(M5S3sjZwQlw@8;$7hOUr-1eFwcQ+!Jk0@Jusx#Ve#Z+Fn6#8Z!tNH9)u$ z@)qpkf+^1S4zXhtBTJ{0F0N(|lo07Jx=3XE%Hgo$&cT2i0!)*0w^jpOcEkX>b8YcR z^VKl-IkhFg(;hu^>e$n6p_IMjAexIBA_YEnCCs5CPik;r;Dx2eVKs+wF?bs5xKEX3 z+$eAnJS4MK8{U;X*mLxUJIezDDtUT0l&Y(etJ}EE2_8dcH_-kTpf;Q`y3C~Th`aW> zNu<+K(RD1MNLdLcNF1+ijj@-|e@Y#1_zFe*R7jo4$W<0wT#z&l20O2yAZS4;IVh)d z;0sqGoi~X~tbW%#a%k*pv!MovyalR`M6LV zK!HhG#o4ftd)kRKHE#%5ej5c_ODX+kA~Lk!ZpO`99*B*I$Bc?VM5{iFkELZ5x-Mcn zPN*gpdeP4h=VI^`nlOGMmpX|Ww2jK+t~i;BB(<3(fKjFJrIffTv|RUQ%EC~{-ag}o zm4C`KYN8kv0x1KoD@NtPIJ9B+FHIEuslPeI4`iXVs1(eWvARW(W%R}>&hB+0tS=&;iwPB74|O#;P?D#p8e~dktq*5 zlX|^=yVnCXsf#dg-yshV-~H;~u-OUMsqE!Nt~6}_TXFfkR7DN4z|Z%hCT8O_AB>bH zl=dcrO(7@s+3vQAW+;5XVimXmaDM?{VZ2{YqUu?e#~T(#oKj-3Z}&beu}WsBRU`>G zfxA?^qRyPyyIV{*LZUYtP$~--%ePi>SzYy}aNQteKuR}I09+zlPYk67F`6K3gdEz! ziLaOjkhaS91*ZlsCkL2wRQ(n{v_?T8bknpAL|8V)6NE-`c)oYM8+`awZ?Gsk_IxOx zDxWuL!hApI!m9C8l<;}x6XL_S7UAb7mX6boS7#dT)ih8Vn-U~d!Qs%n&u~CF*Vm$> zwwOUjY7lL2l96TQlBV;+R>Seyr*`po0hcfme&Wz)fSrV#Vc#fQtL)#av<-G~6=S&;(n6FirTj7Za%NN1BKCCU-nq$m#TB1C6l2~Gd| zBDuG1bePb~OYR*Um)_BQ?Im-(ZF9P$cB_+^wXKdmNp2fiQkQ5+@J9X6p&7R4zli&6 zNq38c9zRiAoyMU7cqYP z!i(UbF=sN6%1bOg(iih~{&6D-zgnW5)}c8rk=Ka+^z`6Pbqi z2)3{4#w!JeJc9^WP%&la8?3*^xY}SCbJ(9Bz^!=;h4y~61H*twruo=)^K;O2yi|Dk zoZTZ!l$F$34|Big#i4soeEy=W!1JU|*h;WGN@SL}EU`N5oEqb~h^rPfpblTt{XvJ`q@f&s6h|^mW^0G1~ zJ0jctSC95mnuq%iO|ordu1Hh>kO3;RwUd zI@kFr2`w>3N48C@6p192^h*TM-jmlPHgS)c)|`DLe;yq_wbyQ*Yu%pn94CrKO3Ha^ z5N$ifDm535qVb5a2HEwdh?(HkHLjd*V63J%%#=o&^-d4 zyr=YoAUq;NC+*C0@N@--yORnlg1X`-SWJ-;k(@@Rc>)DHy?83|ss#3<{1S(obR8iN zrgYhcdLUM@We;fyR^%ROJ0O^l&5_GogF9HWXM^HhKBM=8@*kSmaIpgr+$B*SS#qG7 zV1q&(p%n=h_T!7Dx=S)0<9qYS>kthfKbN2DtZ7vr{7+&jD* z*TW8+X?Wtza7=<*??H*$M0)PsXk@K^$L9HNbu&Y7o*sTX%)!;c?{;~SZ zvWzz<&N_cd0520OLy8GWaJIO}DoIw<2!y3MKw^fxRp@u*=#)roMBVPy|zD>uo-aX_c z{cfnVnRQ4AJQR%aVG%5RK#i*Yty1KN-?zI5Z9ZgWf%(wL^*()7Jbkm{;RSAh4z7hP zua97IQQkL68v8E(P`p6uZ_vTF5P&VoPlWYV!C>;oGmuQ@H{CSd^ z=(2)VH@CjN+MyoO+FQBHdD9+b`?75B(8%!+1Tl{T`CdJlxcle&<%tdFv!-2z1~1qu z?atmk`K*$3@q*8|_wkHwW!-h6KsI$DKXc;-eVougG16ja30Y;UJIwODb&P8c?$AiR z;r;eBnnOf)fW4*m)Az+uEPmRv$DoQOqL^?U({yEt3b%2U=SuROY;aYvxLnNhu3h+5 zFCn8(FXDaRYHax;L|O`4+SSV1Sl}5`ggORi+%WHBi(&w{U+x zp0W#*uVdG!a~z*74g6$1Y^;+uv~MW?Z0zC}f9vU^{7K#1yKAIVlfc^{sinwJ$=|q? z7x9^R4q~h5O(`%}sNWuvg9~FgL3y+pqah6~l#D4`-T?s&0>)S0^+OG;64U-R4m8nI@8}Pnh!|X6i%p-!6-3^9Q9X@2X2IJ85^tyB-bc*THXXdrO;F z+n;!lljgoQBraln(UL%M!ATHcuY3w)yK*yG1~YY9lr>oB!mh#$fkZh{qX$P2a{`iM zQ+(2pgMcHNlKjJ%Kzb)0X=0~RH<|@DI!fWfK$ta;aBahRzS>k&42sEQ;Kh2| zsvE>tHN3OvLY!INr0VjtHbMt>%1XA5Xgm2fNF=l>-vA#~Ll)UQ7m~V9d8RY^k>xOT zOMyA$%=w9VF8?K9 z5woI)Q+Ue7LOkMB=#Lb#g*0orD6%K+)5Fl#a}8_Qq6Lq|)Bhihlv{2H*tQ-V`J}{4?*@605{drv%g1 ziIM9!NtX{=pm7!i0qu_I9icC0gNZ`B0UXaCSE7M3QXN)TuC~Q&OyZSf6x&UNR6kS? zPokVT(M{ezDLtd`!qh_NkY9T8a@Jp|*mL_os8aEtYJ#_F4(iT-stIm)1ikX#RZUQb z4)LE|c-f-VYY<#YWm~(_8A_T$Q3aJ0gl=i*4Q0fz|4$WxKYfDhoKkZCqY9_vZqy{z zbM$@Lz~f03e|RY0SlGerB~KucPFWfaEnLdoRfLX)zm z(7(8lXn>h@yKIl86N$EonAW{>)N1+Ie{#UG`Y%aP(V{=oUn7^U9F*>j61Vc73RSvM zaqZK0JgL3+?l0?4|FxsGczDPn9}f== zcgGdRljQ2US|FqKi)Sr$wFyZVyZChoA1PuLGB~#gIFw@*!`u{5JCo&;$IQC#v={BI zJM=R!Q}to)LMnCL)@6IV>`lt8t8}RuYc{nom+s(G;;0XGpVI3>$qCE#6&JCDH@AX4 zJHQ*8A{b6IG4wuJ%7eMUMMtfzRv3qLs%P&ge^Th%=E4%%IC~(WiI! z&xz@EeabHlOI^1!s?aE@mkJ4&FO-+B(}$Z>wljJMP7#T zs*XiJf)7h`UjNJD%JO^Mbs;>vb4Ic^%MV=6XADeATk^LQn8B@q6RAFi|UH4Bm2hXK;Gl2;lEWS$oD_FDNJ;6~05Oc(+zz2HFR( zpA*|_>P&NOEpBLsGaQ14aUG?_3kQ@iQL7H!13RNz1^r!1t{TBpj4f<=|$ux}mf>Jc*%ZkdVkN1AvNyG@xBfNMp{J z!@simR32rZC`K1JFp2ju;tJDk$}J|CK|b(k;gbMM<8(#?^zJX`FRd%eZD<^%!P9d< zk$hk$S3fz9$nqb^R55R-8hglwVIPdZx)SOz)Z_6K9uGwYj7HCc7QK7?YmekY>^HX8 z=yN6ixlo|4-b;4IWWfba#&8PPESo*%0A0q#x=b|zL5?MO3JZBU2S-Ae%8eB@hOv5% zFa}IMgoKKO+AwprJvEXQ4z^*-)qO zczTf`7HW)$Fv3CL=5`d_4Qj%v$loB2Ko1;()}I~31xsrfw6&?0s#BA8Fqr#IUZH$U z6#@9=2Xer@6EEd68Za_@V{)Z0qjVI0;3_YMOw2u!k#*TNC~EJWWAu1Nn#grd6=5U$ zXs!Wvr-YZl&@J&YB@rZ!kA!p~S3ff=+%(uUOmi+RHOSG@FL75TneQ!hMQe)p_&N0# zLE)YYU&IdV`l0#{Pp;~so?=K3hAFfvn2V8`9H~33eA)=Gdr9!s4CU>0sR=s+%?@rL zy4fv^0o``k?1#pm&Pz@jy8&9lBQ-tqN9K@=9R zc*qgajhfD7AOs)>0cN$TnED-I;V?fKm2KbTx1)Y*2kS@_R9xx25tTYCvR+$jZ4?o% zvAvX=#$-}WSR(1PxkV$bDC^{2Y*x3UssTcm(NYT|t3puqJWBq$C(ZD)J0W10S#i^5 zoalktF9Q_qid$y~!vFB`@9*rLvAP#4V2IoqQ1D-9nj zv9M?_pA8tb$u;RAMX!+^1VIr?r5Yyys z(!NT&ct9Da9~~M=mv&xXp--Q|yvqY(cO@P;p#}y^#Y;4>H~~>1A0m_OHEolJr0YVn zLGF>WFV8Hi4o0pKo9b{B1$MRDed#E^#01{{jh5CqK`vsGm{@5@A>{1f}A<(|OI-6AW@|XdkEb*rLrt*+I6>rtV z@?>3|pG+PZTeR*!jqKt4l5R4!-H_puee(uxF*q)W7m>H9U2Bl|>Lj8X1%Z)6LR2X@9N=(ub z(0_7E7AILSWoVS>gq=JNLbR73Z)6J0H61zyzQGvGiK0QOkdwR0IYjs1o~dJ-ZM?~t z(LwZr<(-(D%aWMH7!6aRE9PxpE_r;!ln}@899>6fo<4Ju>6`MLRT9IX2k8r1jA8H?yc zXhD4v7GQyD9cE0ISK$`z*7|<#$9qL+ezJ@xWukQ~ahmnPVA$3yA)KNx5QoOv^4{EL z?1y%`;?>CK@sn=b24F2ej+I^__Y;QBp1S3#)|c)DHyeM(+g%4-Mr3;w0M^jR0ld7! zHW9VGG!x#iHtOyRjZRK^F}wLqJgyS1qc3(@=ELtBOZS}p(oP0^51mNo*e%A{$H4&s z)(LZtmNBQ1{qSyHf$|Vto`Kg2)(%^d#VLEq4Gu49x2BbRqRs1@!fFM#cJ%( z)~uMlBuH$&UB*B|;x4sBFQKsbwV7a5bO68moH5JfU^Oig8o(y)GOv@mQ(k?p3rrN^ zAp8DanX^2MTkHFBW61Kl@&iuQ^6&}oMO5AEffa@9s;@b>*MKW%O6rrTkcDtgaH+1$ zaJE5zL?`vaiw@BVX#q}u=eYxFZ|2!ERn%7gB>(iiG0oqc)PiGIpFK*0#C%m3ZYlg+wPZK9Br zG$#Bg?Kh$uegH=d2qN9Y3}zz-ws8+m`qGiZfrCr~6nA&oE2z=qv45A?LO*YPX_`c# z{V+4n=Pl10=v3g!ijsb0+E#=}Su-+Xoc#CEj840|-4+=%<&pQTv*f$-&DUl>>#q3< zgg_fymxUi59bo}ZR{ABm8j{B|d7<6w+U1$QN253J%!otgEb~~lF;z~myxs?_obSs| zmQk#vocAjFRlUQI#&q+K>_#^a{XynTFY8i2{yp*Ubu{zR*`l34TbzAz5}h_5e#LL{ z{?(MdC-6!n)Cn4@xvEM5jPhCc4P*RJ*m)NN&#Qj==pZaWqFZ`^x`@F^@U|;f(8E=O zzDb`KB|@3X?1;J*Tr$uNDF?V-%7`ND)cVRW1%cgbhCXh!H!V8KNc6j3&D(2wOM2}X@~mzSr6y^nX{+d%dCy+V6dL71Ww{S;`=(sRd<$$T47Vc?R{ zp`k);&BVL5A%RLPDbWeP%k^MM$qQg1& ziq)oDQWTU$&K+00(&6sD=v(K4l)H{p!Bq_?JTfO?{TFU~t`DVv)wjHpvNV`on-zl% zhaZ<|_%2=@V;+sVW_2z2v)$H$n+mG_hV-$umy|AsQ}KSt>nG&Dc`&`D9~m0?Y-p!I z0~`#c^)>Zs(PbW+;i{bte8uf@-lBQ!_aEnSoEs}!i`(3`t}LSAd}_0GYq7JwN>|7A zwMU2YH+A*M#n!F)@YC`57d0cBo<7H&SDWtbwfgr1aNae1Q2#uXznI?KoL_5gpo(tI zQ?{37$G$Lcvnpm6Mm4^Vp+I&|NN2JIH?ptwmqM^c=_|tDNOX&fYv{I%i^_m9W!tt! zik9O??A6S_G|yE+ef4v67E_jwVm=I)=1!~PMn) zih|ighv-exT0L|KEqxhv`xL<>GhaR9hf!~|xyM-fO4h-M06`#(Fwgp?HYe3tr{k+D z2a+tMD)idMR70;+GnD!SA<`AD>OLV|Q`cWn^^4G@x6MoWg5B(Hmkvl?Q;NKfUA?qb z9KnQ4v#sm++^Oxgz2VsZnAd39{Y|X9vIz35&S5&Q(Q*J*DKI3!6#xo`ciNa}mHzdD zC;ycx#B?M=wF?-%v9Y~n_q;MBmSeHc&9-H{0JF`N4j$isL~Dr55H=AWGXYk6SJOFu zEbyU0lw@mB{St_RfcsmUw6f7nQNW~K%TFK*=>D*V``&;0m!W(iw0}4i=xbiDlF7UO z&H1)cFcp$wQ`n6#A_|^;>`QTId!5|Kzn_iG5`twPu@`t)7N03D5)<&frS|!lQ~6`V zXuokJIF8hxOj7eI*G;H?H-Rjy0~`o-`CHm8O{}>_cWvnow}S*0f#@KhPQ^}VdqcUw zoqrY4hQD`pQ`u90DfgYGGv@Sk=D)Vx-d5hJscATw6f3YSGpCFtZa{Fo&uGlqlulmX z3dFA&6>GH-wsV1XO;6iW0o$qE_YYEALL3Sqd(ytULFEn&dnvV_G*%+KYo3ZgU`#JA zD0br}bz~DdMd9XE@>)V;UH%Qq8ggyZEGF#Oa0fki>pDoRbj7th7xMB~erS{&w`n}D zvt#evp0P&H6>`=5iZ;O_9*Yzrg(fto;h;x_KuMq(W`ny~e!`w5}R+ za;v>h<~=n2#{59WTxHAOTwuk$#sP;4fV$YSe<{X%nPV(530~b;Ck+r`!j7R}vNEP6A&PfCn)^K*prP{|T>%rEcjlEP3@q2DIcTMj##TIOIl9EHarRnj zuw-{{=*O%!`kM<-{WWiMRWDuv8T=L#b=K`62f>_G8_sh{hNS)Ubb;=dg}9+dXHQ`p>T7OF;$nQt+mcLC;@5nTommg4u!J|XNyHZ^yODagMHlIH>#J#ZT&>kDg zYx6K;!;&8jy2hCQcY&++#mE<(}x0@j{OLm7Yc{3ShqNzeIzJr@A? zw1zVN=y_Yu+j?H}=PP=CV<_W~p8uMj|C*lf_2=7qerG7-kDmXAp8tlPKjhDUOV59M zDC3Ww|Bjyjj-G$WpZ}ho|NcesONt)l<`N;|5(reSkLKiruF}c zp8x4k#veWZb3OlaJ^!#j{|i0;@=(SfJ^xER|4Tjp8Grs)dj8i#8GrQrZ}t3d^?byi z|DB$HV<_W~o_|Zvzoq97`}6PU`9BP0{L%C8>iKu|{Ad07_w@V+Lm7Yc{GasvpY;6a z{P~ZDhG#kNHRvL#44p2*f(DP88r51|#DIOJJ(eFoWl53k<>IR54ocR*r?ctlV&~Vm z4WPZ;XN>HhcgZFO+8h*niMBR7p^yUl>P z6N45whT5Ab1`>Q|P3S`;rH8~kl)sh|aHLN$0Im^PI-`niWRK=E9$=BSWy*-DCHT{V7CZfPiT8VPQo{zt6@<)Z=;7HX54(CjsH=NCYxb27KrtT_S38G#he_SPc&pIEvt0^QDF}nO0Wl+ zb^Yp7iVa3+qv}Zg=)Z)z(kY}bw(bD-Fh($;l%9mLzPfs>dM|f&?7VWygAe-ZbcRdb zu3?i=j-n1u%i0R2h+W|TPECIEuqlX5AHC_lgHv;IKRnvd3G)gNEp#2mq6OWD^8?r0 zt(z-59m!n}ZO_O@@_8=cka1C5f7Uf$^RmZdL6l$~7T^ZajV!*FV2J5G0EAsvn?D%$ z)JJL~F9+7NmimJ(%4Jfiq&1J!_0eAi4dB+EDol-ESB}~NeMi#oXg;PEqi2@U(M~BS zNmp8rlDY5STryt#61uiRmRHu@gp1vnxhq@hf9QECijKy|x%|`3)^dx6_M6l(t z+iG94JJp((4;J1Y?6ND;)=QqC$P~?DEINyVYf7r_SZ1X=jUYfRDrO6#SY79mDVZ~I zQ6dT>lN%BveW!siVh2d0j{Gi*CjjjJ8gpCmwdZYeFMwIKRH+@=afIpVS*+D-fJ1nv z#X00va{xI7ii$v3zk0;zJW>=H3wZRM3)up$$%?gMFnqY)5J<8F{lNeF$gv*AJ1gm)J*{*U-4t4+TKtWaKO6(_D?e@BT({bfKKhZ%n|}WQFoF(3RcV zY0Tt@h#&}3;&ql1euys*ktskEWI-TI7&eWtb94wl8+W|kg7;#yu7UzvU#r)f#@^lj zO_t&R2!+RL3#5VN0CN%B_~s${yus0knXna)alsMzI|#aky>}jA%Vmgx187(6hr@;&e4IJ#Z@5GcAs%O}~919D=Il;wiGcGRE`wbTbDl zOgHGPuIt3k7iZjc=!MLufm?eo9%jN@XIA)+}pG9p32CT~)Jr1rL*lC5$<7{-Owm=%nyRP&3~yYtS+bAFbQw zGr8q`+p6?dn4a687Bsg5GS*HcX66h=tMgr!>m}sXh`&3D(UWj34lK7=9S)4IyX>C{ z@HFPouHSSvf=LlD=bQ0)AaKD1byNJjQNL*JWOygBXSl%QR>RdMnS90%*!H&QTPYo} zA4CK>9}_Vab3Q(;K+&BHw_-zL3Q{z-9p z2ZqqyqAE=0fe|@tr8Ao=4aHG1UvTjoy`f%R6}c(=cVeNInDC2X{8Zgs!}V9FoNl~R zodjKUYjgdMXeiF(r=@uWS4|S49CTf|)V0RqbC<-$x0UZ~?6r6`jlbkNuv5l?x}yMj z72H7F1+oHQ>?R&UfVgHU;9_Oo{B*h-;|@+|ulc@&->Y z;n9#^i3wn)?Ye4Wum`u-6i3rhEM4DTBXtF;a-wo+tJT=_0l_9OpeLOKE2gLQvsFtj zD}d@BaS=e0#ueL&kqd890$FzG^`Z6yt(WjfzJ6X&bE=b(G+FC-w`?!p1oV84< z5?FUz%cY$CXnOv`os1lu?-CBb)>h0xonR+cpd)_KRG3x@2KoUz9e_jK>!s^}0C|&O zg)-L=0jIg9!Q!geBg(7LNkjKBn?mz*`;#uw4jkSx`JZ9+b&?=MIs-8;uwHA0GysJt&(S`Dwa1 zEtCBL$0VmV{PQ%)ct-@8WLO-7;{>bp$b3Xmas^Xt z`--tzT@O=T(S1qf>~lRZ=quH-|F>I8X?afPUbTh* zs#--emI52wa>K!KUpd?7ob8a7QEEuhxrvN`LEy|-rMt}JrQBBPA<%FyfLXhC!)CMw zsffqq^19Ii_;yunlw5k{jx$$Gw=utZ5m(P3Z_uc;ufa<6cmQAjJ}Q-+j9kI&J7KBl@P6V3_5FAv2*0=E%TA|8-}&hW#GNE#9e;zXv} zwqf$9r3Knu(88_Xr`Ap6ywAPCCd5)-0F4(VRQ;?AUqg~0qZEvOtM1EVHg7&CpNe*? zEFfEv`CMd~;{;k+YJ8hj=ui{zLVN*0DdoeRpnQLkPCuRLX?yju@rY(R?7`n^$?h@< z-xuFpZoJ3T0U7RLg!l!XhNxcB;tH=q@ObEmBSJXcOCn=D80AOH*g(<8AM^ z4|AV%8#={{RPiRo8R%YL8YJG^g=Zpo6Q!Ru&N^9nZx5XX?$rH1SsLr3XMJewhdYs- zDJyb?6*oA7c4!^!r@pdWB}%`b8QcjMwl@81VFTtXcg%>G*RS3N0RlXP0L>YtQsFG0 zW6U$l4b)h4b{IilwQwS(xDB|FYIy3^=feQXE-AbQkuE*YsW;F9;~-2CG~F0y38^l@ zk8it9xU9UBIOv4gr|OH9(x_6n2Rqy?bG>YOBDjjmBD;cou{FGk4w!n6DblRl72uPn z@}|4?4+o8!+ZJOK5Ti}%nZ;u|K|B8@jUhif5Cbs5NvY=vbo>ZJ&4v z&4YsOnVcu4cv@gpuTlDJ-RN3!v^TQ17C7x>#fKnTUmSC<>~!|_kw#3d3iuY7o+Ud8 zc@mNZznhUE=G&8IN=95P7HF0=h8huGI3-#jjr4H|Zq+9sQe+Y>6Rtqa%+_3gWpQhL zk$gcgYIS)6Bl-gTs&^0q5zS1I~#5Z-UJGO2}g>~!7ej9D(mqTIHI!;jYT7o7mlZ*+V4 zj|8M^xB5bEOC-r8aj~(6{ zIj|Mb#5okJD>DhN69}vebkIwty(%E5j+xg{vSh$V?ukFfxTHQ|EV44J{jW4z&+eW4 zO8Yj-gvE?BS`sT5Yh25yvDV}k3nMl%uASWCDmF1{p4pXHlOXTb%2jg*UpkW(Y!c2F z5==LHTbew#gFy*$r`_}`jUUZ#tmB>+#lp1|o7V6!JvmT9ZVjy0o58_k*_4lLOxZrO z4L0_xUTT%R68%;Qxj#I+p{gtrT>I-Wa#!6&#st?$mFd~!2?xq*%;%GYA>`1L4G}&e z9Q{+H8?b2KXr!_q=n~^-W`49!SHjl^T^*uTONFXbub ztr;qzvlu0}`~>+<41zvujJipeM1zFJ@BQ&5~s zmb*gJmiHaTsXz0~0gpC|7_daei_DE%sL1ulp7BGY3a~Q0aX@V|tf70N^{XFcy^Oe- zV%gZ_1YE@iO&M9GbE?En5D-Zp^6TIOXjVFJQD+$65soSMTJZ*AmMHhtXEVANZm!?x zq%js#9j@iaPip$&>+I(akb7Xgk)vWARv?|;lyMK|7Nf{s$3UlT2@8=E#Qt79*J5!K zcxr(7YV@heDyXUpvL|C2+2Q)RQc8->zVQ_v7voCIifb0XXeBV};5KW7TJdr`nv4!R zi!7fiOVez0G_PV+*rY|}<;inLUjUYzouXw_DUXH;&nnCtahjVt!1@K%p`ospYSRQmu(O*BB?&W+rJGB+q_izu93% z7HM#aK{ve!u|5kh_*XHkPGw03F-^U7=GA8;C6c(HOdyVnu!jmSt-4K9G(&W&Nx9!P zb~W9|RhGvP>51m{S}h6mIDjl2Ocu{u^2=pUFK{BsLd*fAbIl< ziDFAT>>l-W75Gxk`yW76Xa7=uAizEQFZ*Aghr|Q~-m#8@rTGeY(~c95H*LzP1Jaw( zd=q_&7=eNqg0z3uF7O+d>d=;6el#n)GyM%Ot$J5Co?^U{gW(2ka{%dpf+l4RX0DTf zW^sMwoqKy(&ry7s2~Qf=yWrxw)1s0C`@(0k^up7%{Ed@osFP-mUgX0*cS&deb@Yo7 zdd2Kf8P#mYSp&+d>wf^CPp4EF%b2y$s~D@oPlyTSAF33x!!6w)bm(~Fp($$z64hic=5F_aSB_0tmfpIA0_oTOE;kEnbHe~ziQAcUqcrUV%*de-%# zGh>bmRB$#H--1__M>OwAd}g|f5C|Vsv{h^|AX1P_)6>P@jj0EBN-6LvO#FMGkjk;3 zO{>jgt+p1?P@J-BIWr;0z&E5cEG4+~;~9bfdV6!dan}3vnu8$vt@|O>M-TjPVSU3go*18S6piw& z|6UZswkixU>8+<`i!vlLsX%ZwCVv>2*wYn@hT`#;v$RoPDy+0%TY@z-!rxRt3likr1NSe^Cz?aHv08> z5D!SX0EN+O4;AtaoMt02i$>PUXWIxD6kYrX(Vn;UCe&ewUR3AyZ6)mr7|n|o*y`qX zU*l*}%ctPcl5Z>Wt)9hn8k40!X>Hd@h5vp0wHXCiwc~OyS^OZTOgFM8^5@9pQ9A^) z{XR|11X)6clf>=T^t5~Ax}EyMFSsHygO{(d-#Z)a=`Vb`IXH>FoJAgMgR9Fb0;hsr zP~4-Qh5SNY;1ngT0Iw|6Q@Tw~{+rh7to!tvjSIP@&KPC~r$cnd!mx@H)@A`sIgc<> zIT=kMAfH-}oXL&Qxq+n9A>c|c6I4Kc@(V;5Sd3D0LiA3|JPLP5h*RkZN_D{&Ie$2> zq_*xB@D(R$<20qoIs$m8rRd`X-93VgjX#>7^Y7(`_Z$xb=KTK)i(s82-Rv`KN&2L z{}B|}CC$4{(FZ9?rYLTjZd{1rx!vMKT#y-B>g@11&s2vFP zxcOKiWnI1J8kMpb1gUd}LI0C;IkTWzV*k`F5g+ zRc6$CKRS3Mq7i$|CeSUp?gTY3S(OMhVE9TkQMS5S{Y-^~;b~zL&nbo02 zdxm;qmqUH2d#Eq<40UjqLkU`y4N^VawZX%KhwAZe<)c%D4Flk_?8V~W;&~`V=2ZiR zT~DI32AIxPznNKG&4#kB;@00UE*u4J6(5mX3tbsIn%q!8DHhh;KePM7FYEiR*JXt;bT=e3FBv+ zM{ACv&|6SBRU0`QY96mrETINlV%O!0Y^!%1S=ek}lhU$D3y|WyEW7^N#qa>_3`>dT zG4ht_rNd#cMs}K9{n^-2$YYk)E9Wk;m#9J=^61MU#o5tlEj9(0+K`rO3AqS&@z5Vv zlF32}fc7IrKV(n`DOFYud8&ZSgceEk9GwzR&jOkppLWoIdYUw)7;WKXB&&f6G6Jhu z6kW;rQpzsp1&@~8W%bTp%QtYu3hy5yA_<$<}e^#dbgl z=BwNE_(7Yq^i%xy1n;c#l0LCgD4RVnc{y9sSW+uU=tEsazid-hy`l>YyHC?TSUZ*T z845Zo?KQd~5Yh7r64@$bZ=}yD_iY!wgG|ubMl58fsc$G%&dSx|jgVnCUJ&ield8;2 z@hFx3;7Y9NC4fgYHI;o>a^ZMDK`4w?a#(<9BT%Oi<^(7SW z*zRbKzsatRr&VFZFfc`BP!6q$gVA`=pTg@KIP|Mj%HdUBeiP=%T#P8gs7b306tI*` z7U?Xo%mUc`%co#BMh~ps0P@D(P8@)-MP;S7DLPb{$#DT{|pl zg@X!oF~(LQ<1aiZ~n)sR8=xTRkDe6ZzxfdI5!xbdubfq3u z;49_~3t6Nb$>R0~mi#go1EFg#V-eQ!5h6LG`K;;L&l|9wTi-msKtGt;XXVp^bUbC% z&om4G?)w0Z4IsVPX9iQPb{IadeP)N@?d!&}#$KXCWRc*31dE!Gwl`PSmv+TWDNojd}X5khjnm(pAIj_|7N`=QZ4i|Z>$Nw1lHl6+S{fiI=Okac-#I&xR& zp@N{|-|?!ip!21%455Q(lXqOTasK_LcqFRB)jGBG$XC;PUa?D-#l`ibv>U4ye#{W^ z8cl;X$PdGu6w;9EpwQIPow&C?_&!|VO`@-O&g+|pZA8+vd_)L7jA)%O4VH_cT#-wT zx9;2>PxsY67a?2zu#BmGL`@xc2e!4mt!{dYtLy8pv~-|xGlrl)Q+qm(;}tL0)62>& zBV40Q5%9h^OV>S>{lC#}y~4p+yCr(TgpQ_AL_l^r$ZA)HBtG?5^2y*Sx6I9v+7IIj zppmZY;EF-Sgb}**RkXh;APw?3CW-)yH~Y@=FdbxeI}OT%wq2Yj*vS2|o$Y}5V%FO@ zHmgi!Y92Eev~ltFv!(gM`{9fXqy;4D!J@BB$h^{SZx}xaUvwH@(kZ6-$fg61u}(lP z&cLX;meL1Lf3Ehmxc#&oCFd2x$<0^gd(Pd~))&z;XvMs`zE!32|1$h;924tEFVTCF zm%4UX>@~sB-)o#b7g80#BkM&{KjPUn!Ny+1U$h1aSEv22wKw9l9`h?EFacoEGJVy! zE$Atzw{_i(_BbFFC(B#cE0nOm_PcRZ|3YqOf?r_?SaW<4R)-}-lU^bpWLQuoRT<}_ z1Sn7_S+haC2I}RaBTDR+v$*J(<>$)DKJo=TS3hRW> zfAs@s+!VkJ@QZ^dAfxgdkb}A(^^(sE^Gg7Y^MWnTjiUxrIn@KTy}j@)5G)K5j#$=3 zn9hzH;#T7fKg;WzH#V$J0v!w-f^ThYVGg+3Xp-mA+Ec|`#T=|KGI>#mq%yFO)<^1J4JEY04oL z%9yjtKcuV0RfPpP?brfnVz;uPZqozT@c#_AcCm&uPQPV1yVgPmEyyt178I7~nre&I zvgjI>)2P=TE!G3xbcx|~^5{^qE+rnjwx4L(jEA0CjY@kd>9O)z#CfX}o#tlFD|hIC zoAPjWSi~C%8AJq0lH=1=y1woQHYBRD)yHdRb^=29)=@DI0BcL5n|mz)NZN|Y)5d4g zQp%?g39^UBjn|&(T|{C8iMu!hu=WP#Erk!DlW;DYIFL)2ukrb`f+{fRFtr0To~Y5y zuA9Xdgc?8IH8_N&jn7q<5`nNYSNg>=r-(Q*Xdww(B!LDnN3&iwZeCra5vx?=5^Jg| zafci`&6+JH3@l2XyR~aVN2U7Vwq99MFn#WY=Op65q*O4&GgS9ajvc?I=sA2!!y{M8~5^_dJTvF+nkbUv}jIh7iF`VrV?)^a82jR zoelJP>9ZZnmEb}EgPHTCdOmsuXF)dUB0t>1fFTHe)9F6khK?$0`6{JB+*4D`%A=w( zs}A5ftWIP05<0%6Kj6ETvDawoOj?~gYfFo2e=fWbVc!TW;#@61J)@`3`olSUmL0Br zem=N6>|5+0;7;nYzhy9{AWu`C)dX((Qr}q~`vQ3pr|d50_02GDqqd=Og-r32@>pie zgD}hZ;^Ah>)>tI(qes+ztoDVtJUnauc6~x~W3gcib`Dy`fN~ESCM}9F`3ak9bEQSL zYmyeFP}o%Mt-B4)5SYSg2tW2>2G=dcl6sink=j@9Hn@FlNxJ&l8A~y?x4Q`HD+j!~ z^6Q424x!REp1k*Mn13l!Z^RYrmtGO6M+?*lFDI<9m!T)rmg_jg+}WdMupAImfK7N#)9Gkm&l~*dK7ya6K+s@o}vVZ=WLKtsMtQ>&S=6 zMzJ09eLd2Q251i)pg(D4wS4sk2o`Aznb*RkUy|n((Hn7TW#F*KyXdPsVPP_F4su;~ zr77ggBHd0ur(^e8dcIt|-X+P(Z=EjQiZZlhDCQ$*hFxIEZtNUd8S7jJ&6ay& zD%peKbHBFp?Bf=qkU#N*TEOYGZq|mX9i|fDQUtNenb;qEctV zEn%}fIer@Lq`m1uB}J8vRj@on{ zP?YUXe}bj?E9F@zkW=Ly)kaRwUd+Ff!->b!@_qvVT#|=V3!Jw*gJw!p@@(8jme2Yo z3L(|`Lki3!J;bEi%O|5R<~Y+#PoE~QMNO2=;fAle^W9qBJjW$lE3@vrhSlS(1AGW& zO5On}e_vF5puPE>JlA5g>^CHceyf)K)<8it=7~GUyEZX=V6Js%b-lHm|8{NiB9WKk zpWM`OfXYEV{B2S~!-Fh8o>&b=`f~gB@1qpIpr$vv0p5M;`M72?1?dkYI^$CT&VJ3Z z-|l}T=mB&601IMezXKcrv_QFijEs(zt()zo>1kccM91~Bohwt|-|qm44-NlbE&ILN z$e6#f-`*J23kZnp_Xp10y$$A!EdLJ%0`_PD4#dWIX^XY&H}>SGJDX2F_0*B4Nq#Rj z|A#uRKjP+_{!2-C*^M%_+Ufi#=Q5r&pg*qV-daHkBnh=H(wcK+W9x+{kDms$j@b$o zv@&(}J0O@~Xs5!jGkgji$hP9;*(Na7tw`O)B%@SjKX zsvjdCmn(krW_$U_pV#vGr?-!NqWRf3;3!ZEEzbMF>g`C8)vH7zW-ODd~_Cg*q9zOJy0gEG|F$a{m>H(If;Y;Z3df zd_GDN@$qULp!1h-xl0xrIp<-6PL`j&PO0{<%bQLcn(*si0hrV2=hC~XsO^H}-_hG7 z1Xy2i78y1H9ggb^?0~-oB1p(e+GhD`kerw~F_4kwjvCl8bL!qgZjcJM`3h;w&u7_R z0ta&<@@44K&1{{?_#3=*;#s*|+skkV?*7S-)#k-^|1!_V#4nUH@>lmf$X|2ynnwBC zS~1FB*M^(vc#TGi<2-vl_&QG$mV=9!MtW9HoCJL91J@ey{_s zbu9?sC$8~N+V_uY8GpFy?4N7DU;Bev_Rj->aH4y8oWXuuU@iNXTE1+5?S99N=dYO=tf}K+O|C`~&TJkegsq0qZ3nU6HZct?rFsYz_e! zJuqZuob^4>!9bTW-!e04*FYR1v}(D--p0WrFa|3frod-`2!fe9Scqqf^7xp(5uxlE zBBy;F?jX@c-72Z(UgNx!yiTI7(%&IOR7Rjm9e7XUV$pYpri4b;QsB z<+kgWK18th*ym@|5L&<~-gaE~8Oggg;!u+If`Je+Fn55poFKu*+64H)6G4jQavM^L zAhwlT(^6o6gE}I54Dfjv zEq-OG&Yp_N1;m{*Ib&N7P3!7ia121{mG4yc#u9|MDaLQzT&L%4{DB0qS7@O4oO8f4 z`Kns*LqN81g$0>JJ5uM|SK8D$Y0_@pxS2ALVx2peWW*_s5=>j!2yMu9c2-S5UWnh; z$nI46!uje(8K7r{Ikq(c&3TLhu4#iIQzl&N?)kFKA$i1Y|CNIA9iVbR1J>0bKUUomN$4ae0I9L`iuco%#SfeBY~9$}yEmUDo?$9Ua-C&& zcSwC`m}W3OI*f4A5#6)zM0Nq8}t80>sPTWx9&8ycq8a6YTHQSmikPAK_-y;h&!wD zK#ug4z{3wfb$Hp)AZiONC6*s_%e;M~e-^N~B<$ns-RTZa+2WJrzlw4z2%5g)G7|b$ z(Rr;coUvYIf~jS&uePuHr}`y+F_VY8`gFAb`FQ2Z6JNNkk*J&euxg668H#$~7%;jm zh?+cLvEwV-o7|Y!c%9q?a|RF?PKQ%gD9r}yqeWQ@Q&En+Fu<#lPZ_y~+~K~b_~FS? zT394qflT{Oi=!YS^|(Uxirqy0C9y&-lQ_fWJ`gSLO!Wh+h)zFfs_tCZY|dLL+w`=l zJwef%I7mx$5oT6B(y3-!M08LQGZrc43nOMgb&^17*)U}{s+>mu5&}In%6DxhLuciY;Tg0 zXys^0x+%T5!yH^X;0zL)Qzc|mr`N120;+9Z5l6Me9*>nYj=)y%+qKk7t8^6pot=7U zE$@x3)NxDsNrDlA6SM|W;UvJ-NAn0B{dQ-uINAY-R{@uh-Fx&jvbSdf%9`ibu~~?d zat03_Qs~i8hd}t>V>Su=EoiTiK?ip3TVt-ZCji{Z_cJkd4 z2I;7+O=OOh&_t@ZB6>&Vmj85(?ow^3_?igYH3C=_|h zGfU#!ws58U!|N)J!`K11X!+I_jB zvYUz_Cor0B&ICX21Bi_qx01Au`MVHZ6z9ti2sa+y8StZW+V((v@QFpOn>8z` znix>o6`Dd63mlAC*K#F;I68)xD^G*V+LF3roNMA7>`G=Ksz}OKwggILatCIc&PC_f zO4fMr%zCz-!#%8aQeTAZI&44g$*3%3DI_|ppJ|5*rWHcMow}-2;5t&`El*#~Sxj!k zQ*=nAbmqf7uvzP!=sBrASOlOAwMm7B8T8>rYq%900S5%vYwbqUki&UM z1wC-Kds=+igEjKw8B27Q$079c(n`|mVxE4oCHxG1phosic_+~@E^mbuY9D2fMctwc z+!5F~ZA)EJ^?l6grW0?#58`Ye*_$6d4F#O^Q^mEvhuqnOi`#456o@p$0@E0hNYs!} z+2F6sgs!%NfPiCrIiC0))cT7RelAfCyuy|oMnTkSU|S>#!CSUrW|QHpqq76M4)e3_ zisEjdi}~~XI8Hcs)b)64R^ZS_;hR*-O-N9WWI3hZaL^dA!jD4-bPogy3VOTWb3`_+ zb(M4hX_LV81O+&v0B@BSQTHpA*SLcTe7|Ei05#6wu?a)ZQ|z>PJ(-cFfWj*NvNx=jmC&O?^qz z=iDj21Bp^Hy<=F#>%Xig7;88um*650in)> zb$Y!U$~3+4GC$D3zi_KJut&qO$RQuegUML1NT>!R#oh}zxD%_5_!@gN`gAaEG0Dhg z$|$U*!Cqu-qP29a%MCQ(-x*VjLJ4Ot(r~3Sn=Av9Wis4wCifwOxZY0a&)Af7IS+gS zU%2SyZk@AaRd54UA0~6O!ej#bumkbqbQ(j6?-jNEl{0Hr6_uUH{7)$3vaG3u2Op}p zaxJ$Ia#8(i`h3>;SNB`Rka*M0+cV2eJmsrFkJftqysyceTNBD~8;)^E%^a6Qy(xUS z*}WKkhN*eKlrH7xqE+1jO?AaN9n~M^in`CaoCvemql?pV&SvS$BA+m(FYh4#Iv9Nr zX4G?O;SIL6u7SJo5w|pDECG8?M_-Qw;H6)U~w@yjs>`FK^l>&8Tb)|EC(MO0% z%J8m_cX;YTekzUvG%NL1$t$pRivnz4Ba}}hA~gyPjDVUQlwb3|a1DBE`Obyhdaq9! zIhYqB1c6AG4ZW+NZ2Y{IyCD%Guy`22i8aiZ23A|Km-0|`>7q7FZvJ5NUR2iTO;oVO z*Ka_}8k#6msyK6e85$ehkz z$6^RbKV6@xz>mu)=Fk#^^q=Rgf*5vq5t%)sIGLq!q7>3z3$DqDX=gwWOpOxRbs(+| zqA(p~q;juQKX++nT?S;$Dt9Gj= zb-Q{}Y;9$&bVQ%&Iil`2vM=oRXd0Hb=rkKasC5SduH|P#`nm5z1ii9WvWGr=;OR2G zl27WP4vR1LC*E?XR%o8sjg4J}#Mjtrp9M5`!pk=opxl6u@#;Zgn(!)dwD7_M@=APU z@9tCWx(qb(u?o>=$ygP!r(d#Ttmng^fnl7^W^)`ts4<<4Hk-htO z>bR6vMCS|K<7k7uOCyrG!5zD)-3MBuwQDqfGMpb($jaJ|&|3fMqkHqS&#vD-9x{67 z^xF%%2k-bR?K_L~B2bl}9l$MmMo0zb~vIfT4B3NM$R*qfgYAD+kmj%r~!O(|Po2R~$pX((qL)%U`leDVd) zIUt`4ym@Tzpfa&^F1?EaA@AZKy=zih_QYKP)px%mCop+J=9Xvqb8u5Lx;(S9W&0w# z@O1GGo^JV1@o{9?!JR2&JQcq5;Ni&2R`t7R>FwNofr*X`X>DD{s*oP%9TUcKlDbx< z_MN|~9L|23&DrtS{dz%hG*F%hHwt^GLREq$JclHEJO`gr3WeLP2teAZVOf$SZYIA; zzYt$CudJz*<|#sv@#g+9y#aOJ`>SyOk>s~K2d8zdOVb%3j8fb%dTuNz@%%Ch$>Ogqd{EVy_yftnf z6%b?7fqUN~?*K=Qne#HdJp$IDp@YGyksUa-xk<;R>F={Z0z~P`hHzF4oZN6HW8cW? zCA&xY^1^m|yZs!UOPjyRzvelQIUUDoyOU-CX@0JCd*+4`N}9}QeeI@S=FRhKvsRFN zUdKA8+VSP)i)Cz5gCkIi`oeogru;Y^Gs1m)LWxf|%LA9tw0U`Ao+h~S)3Xw)==PsT_8$ewD!5?U8m*g2>O$$gN1nB3 z_G`Q0Sw`8qP+pTXUUCM8y0%G)b$}P0^z`nbL1@B1yc) zo^IwUutXTVNlKna7=RD5iW?SGGdU+=EHKp1%r@%rQ>m}ZA0tYKi`_;LNyQn=z!ry& zsGEy0%HRm{IQ&%VVi}y0n$JwDk9il2#uFN$*ttP13=-njJ#ZN`RCdCej9cfa&c~j^ zmx4Q;)kh7*1deeCg9MOfCvq8B0i*j11GLM=@HrbK*v2yTgTd^Vk;w&T97QQjs3~3j z%oV(eBCQORErmHuo6>@c{aY3c873Ae3JWh9s-&j3#siev(fz5%&@2Gz@pFcM+w>(% zNzwz|7^W;4qTwZXT-k2`Rw$V!do;&#$9bXych6OUjaW=KS7^6_-$;0BE|!2yf>BsH z6Y#X$kN4X;k!GX-;iYA)>YLb_*IYNa7dhw9*u4=<$4HX<^ATFrcVBp!9|(ukqaZ&} z0?xnhj!k# z$r~Uu*O;Zbc}d$);Ncn1r8@&xVHDQOBDgu?Ft6XJW3!Zj>914}o2TiJXn50xr9aW&csp(nx~0<0E#=NEyPfST0JG@LNBa^N4$)3bwc;q8#z z&bUPHEuIA38fgqBzy|b@hbX|yj%{h1J%Vj07%WO9ID@={jxzh_Re(qS(SLX>t z88sazv+9o~=yZ(-!z6%IQMOC62e>rj+rm?>A%JQuwY(n^HR_iPmI9OW zS5bS6BTEh%K8hCTM2%TuH?K zfe8~=Gfd7H*9amU2wTZVd-+mKr-)^Z_8QMO+o8c^yd|<2r1&}vU(VR~$uAdz!Fe*@ z$g)tbHuWfkFbIQE-WJ%lilBs=_{>_UPjl-pq^}HaY!X;WC%>GF-Dxd_W@Jb~?uFea zW$TxRjTya@Bp=h)*J{mS);5XY+r`PIC^fLW6wJgA8WB&Fi+ROg2jQTeRSfds(a*#p z+JyWHOotQD`yce;AB-#G$Y58-erx>Ri1gjL~$H3ejUPpN7?W)C)djHs~zL53;v z2)V~&@d}ck9(*UxN*kWD-$EE7z7aaB^}dmfp3DE2QvV?Db#k6b4^LIGO{TIg57_$sVgNj|ql(9w9_B&7G8KzrWY2u1TE8;lHb7ebZ#ZFVR5o+ub_TvgzdFZXNr{Qm>nR$2QzrmY+AA} z&T4sBk5v)z(v7rV^RjAPjqK}wZLp|nZU`cpeDR6;b*n;fvfl{Q8l>A^>B{svcsSSkTwjC^cx}1Brw>g_ZGdSj)pfP zD5qxJ-a7+_x=kyot1Fu%8HjoJ12erHbrs~m$AL{hoOcI7}L?ls2|Il97{&dg#!DZs8hife@eQfyPMOXad8ezx`a zY2TnZpLD7TaA`w)+A#8<@jBaTv=h(Cda9g!n%(d%qEvXrkcl&*3wC`T%b5<}zZ#O` z#qco>2$yeNNBM#Ug4fM}L?;yiRt~%cj|x;uli5#IWUkCl?W5vlpmLbqY-WekzPxp% zv%X5gOTPhZEt8(l2vRvxA5OIasPCw2jTylqp>SH3e(5);tHJdTdQ}E3S8&pj{GSmN ze%zLB2X;pHOB8E`AhL@5S_W687y$dmp0dLEz?D^x6|qP znENuuLKE#WKO9+VZS=CMDaT#sw|yDmq+!txFN~n`^%rS%c!_!ZW=Pozec6n8Sxjt` zW>Wjn%gWL$ZB6vQ#Qi@l;zPzC%B)gc*%cCIdQ zT!2<`6-yf~D$Q^llRXlmMp$?x$rsE`+A9{%CjP=2u}fbWnQAD!O@g6QxMUIyjWB8ZX; zT_%AF($x#Yo3FGSbk3s=t*jj?y)k)4?)n&Xir>|*uC^%k4kAU2*}Aw?21*l_M-#l) zrr$U$^s~<;U8Cw|zJk)*pODlODFo&RH|GKhHJ$RB#@wVT9_iONh`)h z;IhlPPSa|_v}EvGHmUn@!kfh*Ik0&LINQ?kvG{_dfJl@h1VS>udmxUMH`B;|jLamk z8RFkjU*i|d;DmOnyb02WbBKhp)_6n`*L7M?v`h4*Ny8wKa~t?8L&{{5meUw>LzGf* z8>~biL;L@c76YY<0e`bt8ZJ30DV(m;W}?@|WBDu!jMmY%JCXqgT*~4fc2zX+0h}HW zk@l}tLcPuogGCkfGtiurRrERW5tS{3MM#mvkd#x9CR)Zv!V^5ey2_d~TuOr|;%)kS zDl=|bPm%i|W4Q}Zk*s3A8%(v@r91^-ge2jb8sT;cS%QgCgMsgg?U5+vNY4tWT6triw;(IPc={o=&6ai%05&bIwid#M0M}zdG|`bEB#b ziG)>J^oK^a=6GVTGK4X=So8Vzt&3u#&Ft;FEW$n#CavM=(jAJ+Ug6G||0YRhdv-PVNa;_*85C^FTc4OteY6q|0MLT#f zZrPc=wK3N#YqZxrwKpFgeI6-KuK1`fkFRB?P^W3~d1~+QM2G8bJqK+vDOPR#uOkOe zEn7qJ8kbcZZ~Nb;r{}gQgjr&w1M}W*+#aXiN`g^kS?3O-W_yDK6$saSje4ob zvMHruGKGXp%ko#IxzG@Qif9)ZW=^XZHj}~+{gpVMk8kall+1$=Q|%yLFJ!t&G*cHv z{0G`pUo7F9{v1Mm-5t%-F;H&nKN)~gKdCAxC5zj3(H;B_zpe!*2wAvsyS>=rR?$&8 z=el~m>=|tpaH4Q`wY7q?99XFGfgJeY?TKe$s=t&Qf|y8nUfDE$njAr{;UEZ5FfP+M z5b)cWfLYXl_XkFra@9PmzJR+&t>Onky>xGg=~?O%N`u=A`Txh>`@mP4mG?vE%)Ci% zAPaZfY@2Pf?cFw8GBk6^>}F_onq4O|$&mb*%w%Sg-I?F+n0u4^PI8$fH+%2R%!D8K z0|fO)JHj25}y9*wbm0sGl$1WX!b@H~sio#*0l51p^w9~{MbsE3Y~=AXb1 zaC|Z6?2l=s_@_rpvcT@;2!{oA*OXy(3aZ396#wLCDPDVg3)dmRLHSGrL*mh-5E|!; zWI2>kWcl&YWP&f@j);wd?7E0@z;ST#2+&1lOlI+rT+SP{|CA5nyEem2IGF+D$nr-MHk<&CBKaHjs<8Z0vXDjO=@4vIMt8WbO4<>^_HK?w>-2(Tfbah<;bMEbE5|II*@x`H+YqY?7nRzuWzTvdxl z+l?`BSvaE_b#TpE{9<4c(!aCJJA{P0+GU^gdL!SL$Pf+aj{4qln%q@wU3NW+r7lFH z7R_CjNZe{#6kNjA#+F4KhGfb@>D8U4tFSL(m@25N0~3m!0gc4o=&}=YX}A!D2#I!G zQb56F144#ROE8LCjTu&!n%ID+5CRx|$sLhEvW4e3BMv1~iY6i~I}e$vx=K1a#NzMn zIX$SZc+_c%B|XBC^_p_89ZLqllZ8EZzA$(G-1Nfa#Vdu`bEl`zEzCYPeW@s`MUuj+ zBn}Ib($?smx)tO|K)#>m$afdFC?jvfI@D;;vKUH*M_jT>;FBY=P$IS>lCjLBY}s(+ zYE4rz)QCsHH&kH&4l7Y|16IU^)?stCDLEG@x^a!f$CWx2uVc6ZPdb;Yg?i-et)sXc zandpLQIz8$iIz)HL}SbltS$tT1{D8D>>yo=2#iXfjl$|Syn1lz=uu0B4=9?O99D*- zdu2x{wYx4MVfz-wOBvo;fz18EQVaGV)1wsrrAmi$;_TFr3*wx_DAA{Hz)VW}4t3u^ zJ+f6v|0XvN;SDr1lZ4~~DQfkrmj3Zb2ZisQSsMMsC@6Eq1mG>KaqA>LpnK}bNL`0S z9CDGwf`V`LntwzyO6u4n;8(<~6?eBBLOILK6fM)CLWBz@EQ=5oXS=y#Bd8)V(Ag`I zYJavlZj+{x210}SW9fbcs{fM6lHr5KZFca z#+?hFfQRiVsHh@0r*y$sY~vGY)HrcMXT!j3uwy8bx>km|5Qn97RmPaJ@I6A%3>F)` z-lS>v8m7XdC_FC~oZAdyO&!F zW~)d#J{4y?a4UeRwt>`y@Y&8I&bomjCZl9_Txk$+H4%Yh*N*BP%J~Lnu5lB9x#dn{SJRl5JeYT@_;XX_S*h&-$8K1rs4NS!vb-imx&Q8ii_ZVs!(`Igl| zisAJNQk2n1o=|}>B@upD%3ii%kr$FV0}l_}ow;bz%R!dyE;|XLDA%38I}&|(-K{fn zLL8v6n9E*LcsUKxy}lwBe*x?mR*iR>q-NAh5qbJL-_1er+$HLOK~;Rjvb^k<$lZ_; zE)`wX0geQ;5(kN#9rb_mG;AZw9ujIj} z+>b%=*ENoTpevYnUai1Z?ieu^k|(;6WP!jm5(S5zq{+=1P0b(~!uh)&RMK9A0w~QJ zi1Sy%Km_I<#Qqi}848O?x(mkx$C@Pe4-9Xcxf8d@wW@?$G%W1~>{m@eFieQbErB6BJxQEM5%|hhMb?HYiZ=GeXSXq>$m5VtP-UBEGDAnA%~Sj8b8OB}T_lNM0mj=G ze-zSS4dFm7NuEW|G><4HO17EpeZh+oxOyssA%yI|IovrLZc^E|P`gAO2^D*1p$x$f zf!XP@mAF!u)IyBD!Nq2v)*vD`LrP6M$Y&vWCHGzSD;G$?uJO2D*W0`L;L;;9-K~|4 zHtA?8&m;}lGkCx^pSJcg)15q~MexGP+1iQ(s{pb=$78*-%PyqexxBJ5F?UVVpxnP}Y zM=jLaPwc$}WeCHIs96*GLMtxU0`&kSOhua~}kMy}4i!uL>qgr2*%mo*c2kloOx^;)oO}*930TU{YRcBe1?D zkg*j+TY>DcSP7iXkRv;_49E+$fcKp#PH!MeCU^^p+FbHJFS4ke1O8q30igjjpn>>3 zD=JcoJo1r-Cer=@83J5l8o;7CLfd4d#+-BJXgGw3eIN9h-O*OBTxDV|96pwCE}x#$ zh+!@bv?o)^J<&VDv)^Dexf)Q^Qdn&6Y`H9FB>zu9k3hv(88%}4sbLbs#p02x49J0= z1%t{IC{{#R5Iu;QUOMUc0J5C}o{F>0P798n9g>m4xSE58Nak;(C<>MW?- zvwNS{pH2+(TMO3;L;|n@iiHB0)53{2TnqB)(2AIl;c5{~o(m$ebr*9&e-@89DC0GX zs8Jz7InecJBL7zmfjM*wo<9z#eGwQQU#?qdDlH3->usI9Ai>OcOPN}2o4_u$0X^c({ z$|_Kt#!ja|*#zY1wBX1qp#Zk49!G*QLHP9$;ItFX6cGNkAqrA_;QjI(3`bc(yt0ly zV-QM-b5+90Ynw#^9KU=gr22=hwC`#c_!zr~F&%sno$v=qj)Pxy2bd#_pr!IU98KDn z3M0M?-TFCV_hEp+GNdL1($%^x@Dxg*LdIMWi|rQLt*i$w0-b&mB#M4PB3*w1;7gN< zP4Tn1G^s4IAHau0r?&71=y=av^y}U>W1#jyZd*6ER^o8y*1dD<{#@L;U&^|5>7MTM zF4Hqg?nh+ZA|u-WVH*>h~wP{h{(~M9cMR8JxbF6eXqthXfIg>;;X3oO6ropu!UyhuD za{=oiHw+YhK90Y%(O5;?nb!}vsi3%$le-|{lc9#}&qxT?SVSx)g!^;2lbmUBQ`6EZ z@YJ`1>jYONyb{sC z;AFx{UoonmfGBV`ajU*98qq@$K`2gtQy|<37KAXkgqxfG2#6Q*+~}gUW8BEI3Bk|3 zmAAv#RVNynU|`n5BwQoIEy1Zt>t*u3byguNR8R*(geBoWBbG;$KhEws;l?6=h}}mj zfh=JHsG%DlI}cE~J6QqKpr$m~c_ECsIe_(EXkoepWNd?4CIBvK)GxzgdpG&!#LBo& z*CFCTnVber=N*p%D-@D#!1`XS=n5n6P8l&X$(0W5l-e8N@Dl%GW|U3V!%uvXK5kX2OFK^Up9QLFMIKTU^*TYt4a3u-4qO{!?ZFPVk{r%xj4e zEX?-i^-V+`9=ZJ;kZh1`la2O5mPV!};8GZLaH+^e-zt&NU{NKTTD+x;int!#ERVcP z>hghF27bSHQ6qHcAGVW?>sVF)GEb5Afb)wLT19N6lT5*gb77<90==c89uyXS`J$|Y z9`d#^R75lng~u~569OnzS5g70u|m0EEdJE9ltS?Y95?vBg~JiH^b z;u`T{;T@T^S$dH&>rYp&3#$>5G9y9Ors|ETd(>=PrR33_3eZFFG&pRb9 zC_I?j)Q66rB(H%oBisCyKb`fGrVC8CV?Uv8mlg0a>soNc{AqzvsQa)M=ex>Gyl@ zOJ(%BL(=Y$v^&-!D%YmnU{XdwHR5OAQ!eMyq0|KGwcX0Uiu;24AneM%{@LxaujSajIt-WT^=(lM zxd|lVK(kG*R3d|`sKZZ~!Mz2~Lr|IZhrntzB{I2+@*`pgWsOj&08JCSjs(&J^B<10 zsI1n##CBV@*w_v$R#|lV64+ur_us5d(L&m8x+LsLgmp4!hSgG}iVjdkOQw?$b1d3k z0t>9S7mx|um{-GPdKy>#7Q94uSHFpflEZNAhT_||yOLhgbp9vkmj)tlS$1o#*7JDB zTDI$gpQlIG#$KC5J!H$yco5#;JNZMxA|5&^kht3NZ3<&vQvac&R1y;PaK}s~b=~{- zAG-YD@Vt5u!LK0gL3HE*9z>Uqv76Y3DE^i%H7tGfH^ztPZ-C%9Dp9OXT125e#s1E| zi~H0D_YEu}wIqUcVPDkq1eQn=sf$Av)H&+tiR)$sfgR!v9YqtkFOWKq<_(_P$WB-^ ze}Hom`Rq+fh?RINGm-{m5k12t8y_~RE5)mAzGZN}Mt)BZ60LzZpYuXSJ zHY=%Wvw}cfDB1D0GYWh-4#N?1n@=Z*x02lnx16LID(8D!z#Cl984bQ-yMX$iYX%O) zLFnzZk(s#oz82PUNphMm!IKa!r3l~z@SB5sEA{u>=Xr%7c2waA-|9w=Mwna|9DBQf zHu|&bU9&`f3B}63-QD7LJ4pDcWc_o^{E`83p&>C7Fr8Hfm+1Z^JK{jHP&$c1l z^?3x!w0MKLiwq$wuwx~BYPt7G20(liU~VHK`uxL@YuOs%hcgnG2De|l$2i3z@)4G_ z&DE9P#p4a1JK5b|LoLp31v(V3cV3hH$-}qgw%T*KVkELASnRYvyxv5 zZr+I#XF30i>XL!0$8U|F5H8GiSFoS4*Btn%wrM1;%y=@(DCXfdIJrOBtmMzqZ7yp@ z7sYSRO=j3JMMtnjZL?}~pewnzOX4)AC`@JxZgdel_aa$2au`CHV~&a=?CJ@bz^OFP zS^z4-mI?2b529BhwqstSiBNzNDpHu)UM@~&Ai#nX9ts?IVFDTveQN znzj4w@;2js!WBg67I{-a@_Avdl3d}FR!DrgGflDGx zR-{rz93?&RV`@l3j|GF}2}espHT|>&x72ayqw#8bm4?X0E#$dq%60*3PlTrn0`vmn zp`l+pKErt`xE$g*THLMV-aCR;(bf zBw+y(vh1SJeoXIv`soP-j17qrZU8F9PVusLgA&mTDB^`n6=5V>#kUnS6dC|*H@11k zfms?U2lHElcT%AQZ=zv@hur_flvdHuqyBgBI~WHDb_kZJ3{S4FpO*Zx6($#95Cx*# zhmRbAf+oRY72baJNNMC4dS%A#$ajvZ*(JnHJ>$Y#NWQWHZ3cYP7+2xkXd+}52R)=b zt7Dy@Jp3CMDDnu_uU*PhcPIK9;&5PF9vmqQzexg(;W>$AghrI%DkBB_CzcxJrh&m4 zpQ%s@->rI0;2~Gd6U6joixIgE`A(d96#rVzwet47UQ#TUBzgLQ9E4zIS}5mp!6;!t;0dQ;g~4IW_4rd2m0Hhy}P2NpAKH zm}ouS(bJXBpc8SQ3XCHJ65pRBKj=rM>(Uj3TW(g=iFqh}yeqWmEaJo)5=8)UaZ=z? z3Md4UG)q_BNA)Cd#8JDK!9Fq1nmWj%vIeR1tq7Pywc;|$$PUWCVSP8(DR>`m!3(SL zoo+kg94EKmIQFP{&B#@YoR!)mZV)X8QF1+&glCmIAB!uEWE}JkPK{_vvdKW*cZEv;(;T?6QKtk zMD-RE19*^Ou3_vvAlDRQbT_`7J(Rg%7v1%ME0`hNGIeA^*Q~@kZ7(n5Hyi+6F7hRK z7J;q|q9xHLe4PvU1HmZ`;g|G)yv>*!XIMzTH2F@!V)>mAmKhGE7wqGc7thU}d(#On zG_DGAP+T~7cSqYWjGmBoy$%6Q@jc!E4~k4kYKuq(yK4OnGWsSGgcNbyVSY%gpyTzZ z&EQbt;F8!>@*7N2%Mfp*g|9QVyczyU1P(mAdE6y-z6=#i@^lh>T}_!KH8hyMP_E?e;Lc8L72gX{qn8^4bDa-W9_-t*P7j_PnD#ul8$ zN#KeUtF3cRdDnj5j>&rXez5HGzMJIAAk$V^IN-M4#F@9P8_OL9(hL$|5dUtvOhNjE zF0{{%s5W&8I9++Z%MNQ;!kh7A>}6L~c**J4%FQLZ=f_bnNDl}k_y!W$Pt}kbG@Mq4 zenkz_Z7MVMjV)x1Jq_7uGh9CptG-KjiAj+24(mU*ecKN`XzWQumMpm#8p-?Oe?acD zTT6@&TR~kk*VtpuvS-)rqyz&1Q|u4|2dZ0D@Tcy@oS8|yczV4?RbHPR(!weTNcW?( zK-1PyuNjeANxD4dRb~u2Cj==}v>`A*unV&k@2j zld~wbY5L4)Qu>K7=3C5(M(h$qI#XT85N3C@xyzh&U1efTc8~i+o!6ML>07ut;65(^ zA+HY=0v-BfDwH-P9h49v2#7Yn%rtzjHBZh;nVV+l;Pr$eLiFtJeG$&R5k7BD`XM~U z*rV@#F2~(wO!sz13-IRbSlv+)f}yV)o@r+x0C}q%r+w;!@ZY{F{MB3wj5+MTSTago>Mc%n06?gcStR@U7Ngf5{9B z@=Fiqm-z%c#U7+>03!DFu-Udd14z3FdrM$OaPr?cX6`j7FZlovclRO8D~n2>B_)W~ zS63jWMZaQZ7UNJ7*OU2GGjs}iV1c#$CK)s%)5xr|((Lg2eP&dD_ouuw&Hpvul{@C2 z!Y%A>hhY%7k%F{?`u@6^*FHTBM(UO3b|Wxf?y}=^%=0L3o){gF#$+z7{b1ewelFTsze}a>31Ggp&rV~FtiZ(@X&=jPiK*uVM7AZ@Ufqn^ zf5Xh{@o1fD_PO{?b5_tS{k9o06N{T5GIbR6@cZyrw(z%HdK2>iX%gev<}|lnpB>x` zk;J%uz02C6bNVN5`H_Uc*pXbf-Il*)hHxWaci7%v=GEJJ9GQd!?}YU>Y=4~@S(M*) z{eA%1cUCjb%CH$f2VJiAK(i2%rDp=rFU9xTMn6JIfTPrCY8Rb8ALs!6>xC?w0Rfr= zIwBA0TdK{a$dSbn@ZUBC(2j)~l=w^sUU*`A{C5ivJ$TiOIInWJW8lCrbk!Zu)w z+-KCbsZ4vNH`0pjM(6CP6c$~oNo;NBqxl8{W;5^j+Tjh}rm~1>_A@XaLgrF3xiO&y zcl#l7w;$;;AIa(=Nt2OI3U%A>wRTXpnh4hiBK$G1xo5UFSF6iNKHS_f=3`kMrCzbQ zf_|}%WbJoZo8Lb6;5hi>5ri7XKYScX)^sHBb&)}fuTikUeMBp74+Ia z%XB=6fvg#rtk=ss5G7{ppzP+@RU~=R*73kR171>^$FG9b9h8@ky)iIfaeII4jaR|D zYWqVErf~wR`3(O5a1JBq%qJs}A;EPI47q~@epPr!V&Nc*wDaqq_>C6 zpt}s1>31BluVMYf34cEz-?h@i2HCK{e74JeIFa>Af8$Rhg}L&r#H&a}ZN{fueNGQV z1_{SxKb6X3_UZOKW}n7O*gXCdQn_ps@u?}~cAsLKUf_aS@ zUfe{+nx>5LS~I$+@xsEvn7kSH@J&JYj2riEa}onRF5H!yp7{l#!j8owF*LtuMi*)| zUgMIK4-A&$X-1W&xyPK;J6_aKXXqeoe#wk0`b4Yq%VzW(F7i24eq|9?Ghog-w48+; zg)(2d>i3#?H}>Pq1rQ;?uL#G1Nh)sqsu{nC63i=5E9#ugpcyzOPMnY>{0(zl4E*X#Fu|{<=<4^|(nEecuznXUB}HwT^MdU^9}84yduhuC6~TnET#KE%@t5_JLrB) zaOsfz{YGRc01Q+y3I4Q=JIWS`hA9#$j}#v@^R4LmNN_tDYJ?noO~D2rw^{ogi!AxH zy9Val5KH)1%oXvj`gYb3ZSUp#CgmpY$3N$u_B z>Kg&qhN|VO%({`gF_zZ1{%{w4>koOZf7E4u)Yiwo^sYYvQB=kX;B`{DCSKY_+nRXm zpo-SJyZ5hXeW2T(bfUE95O&eACV)!m$?mhZ;6L9}wVLcibU~@FMMiw#jz%?He>pX( z_gf3KovKu$jce7W9)VBl{r} zI`zuZ)Fj*RcsE69TbKKo@?QGU?A`PF(bf^ORij@BrG+Be=@;q5eG9 zS^b$wTieJ%mg+Nc+#;=K3Z=6(o{7(#vNQEjM@47iJJoTfKI^34Onl{3o2k!UPPJxg zpckpqd?1VQfj09eUHKO7QMJMmUl$nLZHFoP%7KRXYrDZTc6FPs?(9z;2~{QLg;phI zFYe7Ge{Om^bd!2(e|pTjx-;~ccXjCh6{gC(yStT*-&K#9AglJ}Q(@lI{nD#2@993M z4(8r&)xq4~9qVB3ZCkFrbussKA5<5!zc2Q$i@EQ>b8pwh+|T28Z?}1%J6W3*w4$}7 z#eEPC@xLQ&E0w|Jwx|qJl;b9O(&;b=x7z@s1ZW=2(YrlW%1x z2-=9x@$MI+AlP4btqOwU9biA8j^N?eZ9JY9^B?K%>{j&%QD(B+Ot$rrCFXyv)xByO z=T5d_H_xiXOS_2qiMI|a=3hC0n7@;C+jVrMN&uA-^N|;J|6+c!6A@=pUkg73Z@Ggz zPMt+gkagC8l_E^4pL=_^9d}v`)qX>Te8+vtTZ6CcN7#SofrR~c?hB?!x?I==h5zj85!14tu z8?jf%=m5ZY=a7ye${FPB6s)3jw8lN@fcbd0Ejj30?E~nXeqQJ`LD?S^2elal3UL)# z(7f?Xw|!Rve*QL6;D1qV{;_hsiopQrL&i+E3IfO5R4ubDs+L(Y?sMH{uEVD(Rm*!@ zRV^13C%w%v-GbGN@Xvrc?yw z?lu)c8TbVi0sn!wSlDgCZs**1yv1AW6L-ADR>M2qV&X3Nv+@=jgQMIWl3zGo1Q?$z z_pzb9+{Ye>-N$|_+kNbHS?*)Q##9fizT0rB%k6~fa-)s>?5(cFbY{e7{2)#XzM zo_o9Ma+}xLMz`5X(IxN}t*XmK5GDNY?Wy;M+g`(#;H`JIt>@kf&NM%h86uMH5B2U2 zS6pWWXX5&Z6rAsERdBwyL$`YKoz377!NL{1k1`^WTC_NZZm#0o?7ULjU%`d%Uhxjb?eD+^@goO593OIo;bRHH z@G%|_%<|)@m4L|AdOWV^@p$IIqkhtj`l-aIpKLomd2+AD2BWf~;@*rfuejDw>hQqx z>r;gLlilXi-4b>jS5kI_+65bb0N!~FHjcgj8t{aaIAa(Ah8btcV(!AdZ zY(_F3ph+s4CZ&>Z^JV?(64?C3?mL0acLJMZ(&xPf^LGN9GlST@cIams*o<2wq5EkK zY)=2WAFX~HX}c5H{Ik;be=`&7UP;>iYzPma?Y|S)oKAFbC$M?*>mBpVz!mU|%A4M9 zNYa;E<%pIzl&|i>9)FeW@z=Y}*W3Eo7n_{&A-WTXQg76#H?mRcmQVgh`kesLMIB-$u*@bc31m(j6-?8mGf(HZ~n$E+~YUM zJ$|#>e6y{OEbj4+d-JvG3d;th)cAYpQK5_XKH$ndroQ%`GLiqyzVkvJ$i4Xv4+$PJ z(*>`Uhs<^r?35Yu-L0%uvNls{qwlykyXqj3Sk<<6KacLsFo*5JL#BV-4-c87CU@MM ze=0m=Hbrf>O1m~b8S3iin!l#Zx#;xZ$ofo-uJNveQISqxNtSV10K)CWWDKNOI_?yiT$8Qoa8 z^CQ!l#v>vZ=KjFU6ND6iE_HC;4lbNHA^x@L)GKi+GCOw5x%8vDMj;;D!(TLWb|FM1 z={ifIIoLUwkjc_f1g46@4Jh`3UjPO24p+2VCRPIJ**40XtkdP*EwefYb^$Lf;P-}R zwnGspq_ifDD4Hf}?dX=ED$X1dWwPtirRpj&p_YorS&ApUB(8XlexpT3bSqe$!oBM1 z@wf#>?M@^)yn$k(QYwf`=Q@#%L}?CwDma8X7j9#B>5V&BZ6eL(YO$B_3AVT%17t3=g682}VZZvc|ZldG%skO(%XNu>3l!k?~haRa%^ ze+aKO{DDkU+ac%&{_ltT?K=6L4e~6m9GK4>vIG1}`}$FL-;|>=N^qHByN$&34Xg-u z=d4yhladYJbtPFHC1l+OP?kJ9_zC#`Gu2yRWl_=x=kKzb1b-drQ&F!4I{{k2$rt!G zcNk@4fVzd{@;dVgOJ!3cmX`bz$ckp{H-EFhq@B8-14prg$BqnWg`eAl%;vl7;#Ngq zz-TWiTnse2fyC8&t=OUb0};vHM8O=Cs38@4DPehOF#0FmePfNSC4?w7*HF{0x-xQ& zTfDSYgZpQ4y91;)b%~>GPv59RujMejw$p}LgY$K%P_g6^Ti!rf4>UU z*%huq#esPg4ymp@%8O(b2)JDjM;;vk4o_SUca|irxsLoTM2Mr0H-|gtZ*GQl856$Q zz1TNq`YizHuwF<){08K-T@F!t7d1ItAw-q|tlr?fmcIH|xR_WOQ7AjBPou61uV0jr#MO?GXRj5OQR53Y11d{1VX_u< zk{4FODSyZ59^mG{CB_-0cVlTAgp(K5Ux#h6LqCVxf>i7asRH9tk(n$6i{N0#{SFE4 zRGZ|!La8pn`;#TESc>f)t3}qdUX|l;*a6C;6^1>=$qie2jK~7~Lw0NBQBYh_Ih(b6 zY*lNxCVS(EF0ng%^N8h}@F~f864}AE64ijE6J+!^!<$R1A*%0H5h*!Q3D?W0l(e}d zV>I%(YFdxDIh1D!Fnn7$H9dXiirnu~3bL@ggW8(Hx!|%v$LUu~ z03)D-*S1Lwiso75i4IR>yiSJL6@zOQ*26N+;IZP2J3S~-cYSFWO7=jH{ghBL5UcA+ zIyMuQacnz~ut{8uD1y2(6Rv{+B_&I@OeDX46jV*<)Bz~k;XX3|LeV$_k~QIn6O?#Y zT9(>gB~VA~{)t&(4`TND-HBO*a}KX6#r5{>*qxNULiZ&o{Cw@p&o?z&^H?V&LVHxd_ z9xO&4cS8t7dM>ezj>SB2B8h*ql>{QcIop9X;d7t2)&YX7 zlRdd99G8uaI=-r6^PvrDq`wRDGv&sb9YZOlVHVU~+6v3p8(&89A+8R8<83IvfFZwz zqX(^g$9PP2t_haEv77*E3&=;5bD3|(JkHP=2)T3kO zc;@n6&c3>HEhihLIsBS_IJu^~tfhIlr*9a`;`E2kG%|8(9W|jBZq^<={zmEpAL%)0 zhSc^@`^lcZl2g=B^Hg1-lGL#+{Y}_h8vP596nAp{1ifJg`WI?Y?;9dYc_(b3n2r1Z z1>k0RC-FGwsv|`&nCYIrlWr(zw432NG+s_G)IWU#6hN#ReG{iK-sAoSDX~gfbqSK! z+L);SxlNe<<-|+;hISrk!BLVm>wRk~E${pKGSqKme=<;)N?)@*cFn&G!4tK=800;V zvb0jr=a32Bwg4fwB$Fr=LXZqqO+z-;3D5Qf1NvnySg>}KzELu(o1wf(w*)FfUqAYLENcspcb{b39 zP}9mn8@z-3oELg>2?VS7E~TnYa&|$UqX1-FNkdy0T#Ag&^;l`gF%nA%PG_nIV-|bz zPqwMSN$hKz11l`$*=XPTU{GVoD}A=_=2{IT7|J(SABW`sBs6I#nzOyJRIXI8HI3&F z*@Qdv!3CRn>v+X!o$(4BC6C`cN3E=-+YXcYI{z$-m{;|_O0 zpC}%;gWos)nErHHEkZfeGxx=PT4pldV67^a)f7`iUJDYN;Qf|R1N9KQ3oEUQVRILtSb|DkZ7=##Jd&!`D^BPKJzb}As8VI&C93hI z7%x>O*HCe-Q7GR)!8KOuDn1~+dS$+0l`{TIwUAIZH*+(DCeJI{Xu~Xy%Rte}!KC!1tfBpo6}Lz?LDgvO zl_Om&r8^-}5bDq{hk|E!?{0a!DO(^NHHu@ixN2i)4hQ$yNthTnSJy-648sj*aGGnt zrg9;xThRSzai~U5!Z^&Hwe%d)tjTa~q$mjPev!lJdW?Ds$I9=4b$7%2Y)eH((-mBv z6!mQ3CLs6w1>~EWy*7=id~?v;`x0o~L4}W*ug~l2sN^SUeR;$25Fp(Q)T7x`?Frt+ zQ|&VWXLh^i5h%x|8<-_-dDBheiXI#TKX+@#S=j+o$F(rQA5Bsrcxy)%BQjX8)aodk z-dx`q(G4Ym5Nc5znTP(>5zxHNZ{ex!9>}~Lz#3whC9*8`u-qI1q`HmFV;jmF%hlCw zF#;>q{g?&WJ@!UO7=H#JF;Kw~keCoUl1s%h)yZxqL_vY}{poH=BXMR)%JfYFQyk`u z-VEzcSm`vO!NyjZ2Bx-|-u|RW6LnG!XyD>?0fLi3dC!6yvp6)lxe1PWCB(Ix$IZ3g z21UPg(bk;gnZ}5oEa z!ovp+LAW;H??c?E;vU1F$^C|v2^hCU01Iy@c!pw6;uH4dyxmxkE)9JSR%00r3^QcJ z7`qzenyWp16OKpQV8LZ53sRT2h!_1M=fazkUIRb(*`e|l#<_vJs13bgYST{Ieu)tu z$&NhYLsER-q)-X}U7-eZjnErMP*%4$i&_#9W5W!Mfy?Vasm?GA(R)Pf>~|fuTMPc7 z-R=zu_@MBDDVU7DX@eE~rhzex_-Etj?VtZ3_&!++PXKuG%e!KaJMwQ3 z60kSpy%8VYW$JH0Qc{N(aRBt|N0PrRbb7;6)?S|tX|j}!^$neba|*$xU{XD!`sKm;V6Zm$4@ zm(M|Wk|4Ov)3e%f=Y{=F^yN>s-}~uXP5Q`mLY(ekD*^?c6jiv00wTEB$Va{tCEgu7 z=?NC1PPnK->VXLpr?+t-)aXbg$P1N9UocbsoUavYi`D z^EK@UH_h6#{r>9U9nm^?5=XgH^e+3PU{Ce*EjadLWer7%mSoXe>6kDf`F`PVJDykl zUZjZ@v@k&l!X>*u8soS!s)LRS^kvf)JJPw=RO-A|gtNgPWDMDfPIwhw{x+b9s7G3J zw<~mqf={$V*MWe5SK~Fm3!&`1M2ATiS{FXPlJ{h6w|n~D@2~?9sFodP_68l3mxNha z+5*OT7uN$SwP*flzsYJyc zHY%19cVQKH*VUlTAAA-n88?nxX^zDgeM=;siy{WY6piW+y=!}<9aLSPb6$7u*}hxx zN{qi~zzrT;qkgHP#06xmh4UPEL+E*NKtMwajWU#+We_Z=0Yv}n5Ez_|eB<{N2ZDhlMWosH z98IkA{qV#BwVci_vIDjD#)%WBYn#`qtMGY?HX9}hNL2`zY0>{54j!=7Nhr3(i%@q% zdDru59jZxQn~3HB%Ha-$xB7BOl!(@=ICx2UyQJ>@MZy;Z_h-WAxJUs{AaeeVn^-il zLAQfjoSG*ok;o|tLlM=^wR&yi?LD?6zhz30xn^zm7y9cssZ=;@KlC8FgQypJaySrpW0m`ut?c3Ej#@guyF-t?Og@|7 z6LU0v!EurYTG8Bk|{8||A zfqDEzhYd1UY>ladx48|Rf<#F5z`#bxXoEH;sl7KlKq)fA_BQYq1WsTp+|_F-foZR9 zT*`?MheYO+Q$(1G@E568&Tlu7QQ!bDc!4a@5~h6193J^_YC*Og6dDW%+yRM}6)_JpJk1R! zS1%DuYzvJoEFWpM`&I4nVL`ol_@ux972y@`S^Y&@DAeJrE;dsx1@5kB^kH^huCF2( zO~cjrT+*LQO86+1*EWwtfVxc_EGWFw1Xst6pv?w|VH>!5ws~MlT-6VOV8_#yJL&VV zK!CB}$;R61$x1JP0?4J1HTw&Ifc1{X$KRyXdM$HCe!;vazn_0`(avflVR;#zZHU$4 z!R9rHzJ;j*`Inp51sH75PD(qb9Cxrm*dQc4e zwLVrHVvKdYwnMc-JI(6~)>EG!g}X7hTO$n>-pCXA|qjmRai zQg9OIRgTeouHiwKr->R^?J0OAbS-g973jerQk5+Nyz;{;aebB zP%1bHDB=b)4i?pZbr6_ifqk2=$vGd^mw})Xvk-}9aIJiG06hbj=yl@M;pHnIwdF5j zw@Z~`iD1l?Z|x6~am19v{nG>eEWCLY4$~L>Ni?nxJdahGCy{uRRjj zKXQAQfHvI~!)c?vLDfw?I#54ndS9 zJm2cIx8hEoo+6ndtx-LKY+tby4?TU08jaf-`R?G4-0Hymz)sR*mfMHj(o0aj%D{k5 z7hnPnjv@rJ<#Y23v=b969Y4d9OT^f9n@WvO2bZbioc!PC-> zC>cBs&2aC}MPlF_d=3G?uv~D@X{psV=tf%<09sca?Y46?>+z95uxht8{kCQ z$7|yg(6Gy*Dq1VAU-MYOK8o`Rcx(03(B6v==GuqVNgR1nrwGa@YiaR)IJBg&~qx&ZzO6 z9dXnGnjq+uNBE1fyKTSCCw_zLKK%UALu&^Ms{*jpu8---(@=1`ae&XfP#!hE6j-aX zg8)k(X*gmsCC%#gI`|!IqhAK>g}{m}YvCS>!DVsP78V1Zhu%xO_%z(Kbv)=1?6YkN zdY%>U><_^0-svK)A^w-~W=*&=rOegpYeEGSf1+g;f52yomDzrY+yi+d4h1Ih06T1fU3u?^ra z8uuQuV~nGic0&B4a1x!yc*}fMCVA-7(;4h)8hD0xI>W~XO#yteZQL%6y$4HoaCu*bPt@1V# zFm2Xu?yXGwP#p6S2@p%fHO!?Qi}MiqM3|uVu^-8WSo5vLpWQp-WvJOY+^dM0I3unS z5d^yU?vdFuE;_mFB^=cTw{%o5?vN=jdoc=wdd2=rIOZWg)9Aoa@0uKRX0EzQUa{g9 z8dBR!IR4?_j~9`1NJAdn@=`yqo+=w|Xf8y&_IsK$Khl%mUzVc`e42n67UvohK2;_O z$(xV$*h- z^Lf~5{Qz?Emt~Y4CqLBq6$pM9N_5%~0 z{zUEjVqiK%KkOI=dKDsD%yzRg0GAiHXo7R8sT#5=&@$$1o@RqYE-9;JK0Of*{)$Fj zFw6Yf=PPR@?qK+Rhj3j2?*vVR*DE>0A68^f%=;K`U!Pwq4jC-m00CPC0h@_-(;?Dh z55lh((Syho#j@^o;8v~vOkhjVi%@B~=EokKm;pO;Qdkg)N^Q8fGl@YY@@0;myD^@` z$pE2>Vk0xpbbLRJw9yBj-2Gtnljq4Wc?{3M?T146X+$_Wo;#iLEBK0g1M(X5{E@ii zm}j^Ir?#bFnR$Q)t|9t_M?-c&zB5rm0T);8sdR3 zK_mkmRk8#3NQe|zwYXy_psBwHU3LDZ5SY{^p=JV@xubQSn7?sN7^+K96jDMppAPKI zW15QxgK)t}3{lxM&f?bPv}MZZ$l%U}0sIkoEzXN_$@VhQds$(@f<1OdS+EucOpM9G zRjhO60UiGl^e@Gbp7fAH6QB-Z`vJ8(cQ;rrudj#RfwTZ>s-ufppQQs(K}p8|IRp(W^x++vf#KCucWa^ zYqe6{s)7V3TNiM%iPWT$ZF#E<{n3uQ9c(4_tIMCcl#ppmutfk0GZ*LPacBh$Y_Nl) zcs2nYZZqfGHoA-me2+~@V1``}pzL>d*|8Z+*-eenwZReC88SzLY6BKecQD=ktx_pi z3K^6?I@*Jgn>#7UB1*CEWjhqCw@(}D8Fd#Ob3mV7r#PBJqK4a<@8MuRwW=%9Tk&#Y zRn*B#WUimymIrXRY}p2$>Y9L2xKS+^E>a<-E_THy3GO9vhH|UIg%d}GpAw38;jDIs zSKJ57g@!;#46be#*AiGerS2JCN0r+*igY7fB0VfrbD_6A#Bjpt zF@x>uJ2{0&Ui_wMPUYtQc3=?==Oi3=X+w|YUOekkTf*5y0;=@$m}`ix?ji!3alBMe z5*j$-0bz`^5YZ>E`tjihr=m;FWQ_k=q~dVnUzGd>hXc#F8h`<#Ora` z6FooEvuj3Szm1JH6tlU0q8q$>4fcXb&>1H8*?o4`hB5uZkD{}|S@k?*Z=c)!>9@{X~MC&@9g=_Df#U@qF3tk5*(VvrXX!O{CS#85VO+e*J+`y$JaF9@3iWr z3~aTa67qs7AvFLMJ1Z_}>=j%ldiCiEaF1zsb@wm39leD2=J^^D`yc{)7hqIT4+eKz z92JNVi9x{06xOTPLs5c?8^i=IM|wZQVGS9>d7EXr+jUT)9YSD5?9az*LXj0(M)bCi zv=(3JoTUSyl#n!+pjd}jB2uNd?_YlSqWs9kr~L)*gR@979D~?+C=A=Y<%~fHoA%6) zvzTJKZ-Q2Zbx}HGb)L0Qhs@xmn^co_0H`1yj%g?l@14Hoi=CILzp-9}Pg@&u=f)w3 zo~2(2EEm-p<~S-|CbWRyF>g;Me)Jhi-md~`>51g4SH)Lr8B4v%ocqNA`4HxttVJ1+ zFWVLzPX972l98dCtihu<1RXQq7?(uDzzE%yHv7?NlbL~*I+!2&j>8-vmj_S5O;TkX zjykETDq(R0!G5zXuJXw33SGL)g=R)97z716!m$G-o746T6Qo5B7*yuNO-5k!r`dy= zx&u_y0=E#Q+;(h3@eeOa618NPgi)r|+U4GgsxNm&nnHP7Gz%GcGdMn}zd21nAF}&s zgHIJR>RwRA!`^6R2UP8lc?+8yy^B0NG&oWHP%O-AXbNm3$P`eeTP9YQ8Cu|rMuUYn zk|4-|u8L9OUtky3>mDoIbo7a)FiCEwzaXF5E?1C71qoizH^?$~QKt(i#@tMm(Fa?# z`$`~qGM)+LGt6TWW*1d-BXCj_lbaqXXkbuGhDYsk6~X@P$L2+${2{EZS{o!B)Q{_Q zO*i#87cg?M(1yxf=uA{D&O0Q0AU&Qo?8Ak7GS0q-VcaU)^#gS9h ziWg|%7TsZ~Gf8s?!Z<9aV~K!glHDOPksW{TqIU+hnt&vhBD}0jqRFLk9$L`1Ly=K0 zjygPHG!OT_}l@kot4^XOPuu9Y=N>8jK!N5|9g(W3s} zC~wiysSbT52U$siz*qzZKkrRzzuKAB4z1K{H!Dc#xY>S55BorYOb!GI9l(|WgK_V0 zg`&3gm>#gOyqz_uOE9TiOAf=gEQvd~|k zrgy@?0dtN3kU!OT9j?jrUInJ&GJ$uha_7tt_AKl7IGGA{5X8|N%)2mj_~) zX0|DgfZXp2U4X1Om}F<*>TYiEbN0Yx;zn06Lz+pd7|o)HT$G!Y^$-*SL=ZA?HdEZu z<)b_J0nZTV5x$iRvc5x9!xS~}%i$qUx;rkH$b5oi!5yes9GDgnA`{*oRWf5k5iZBT za$11V3HI0@kC=L>C{i4OJ6X+HeL5gp7M;t(52!Y72VLq?lVem3+u{MdW@bXdpciUj zl`obNo0$oEFB4EZlI)RlDEZGzdy3Lu-(6Y-!o#l~#?f|Ck(;MBV{;pto@=#8 z6AbSchIwYQRtV_helFLM1V{Xi!5b0!a)U{6cso($fG$D)@Pv2?G0Ri;0-+JwWH=i- z_mEK`zj&2*zvxH&lMiV92GX$V`(o_UP-c^R*uDv-VmQi3 z4qhIK(lGjh?uilbM@j`D3Bp}PehfH1SUYCNXwNP-TmlbBl~*Zp^f;KnZG&gUyp8*n zQoGn>yjzFUkE;Z(cYTqDlUg(}@3#csD9O_XQwB0&i35flM<51cOvSgUI51OQ$CcvK z+I_Q!5mN9CVi~u?!FQuh1qQerk{zl5mw2cVl*?D4!a(8k6U=sU7;}zB=odiHXbHz{FhnmIiR1Wj0`BDh=L&CLiRw zE{)(sX$zB$2A4mK0zC`0+F7_k8p}X-R?ML`#5qPr!9ji*6IXzbh-Ya+=2uy?QmiOq zM5vGPaGSGM9318zK*Ozyn_V3Bp# zb{g?;@UD&{0xdXJab^*YoxFoW@_}&lY`{G|b6gf>M7ne)j~~3iKVgRr`mR{{TL>IK z#vjgQO6};;QIZHt9N<`!svSD%YNIS?-lKha(aHy;Ffy*-iv~r-J%ANQ?uPW2dP2&$ zUbav+jRFyAFF_l@6|?0BAjQy*WB;--zXBIwV%f=AeIY$#8+CUDJK#SsUAe2aWg#No zFIo{QrEtta)G7#(BiRx!Rwbb&`d(9CDX?mu4r;3!?|_^iPnkr5yq5A`j7g9f?VwBe4?0*q6YRNR7sJVI;1a)b7yRynm%`Opn{Buv= z?8~qcS1gz?=x|8maktT$>6Rmjk-pg#`y{sD-Ubr$iUR>9*81B(SLiR4L|`{@e%zGQ z`+-{owhsb=;#!38z%j^d#k0ED5FG^)M{;f-gBTBa`xpdNCliDu9PkLJBOp}>s~nB@ z_*D`464Piu0yAzdP@7glCFL*XF!c6aco9>HHdkhZ^khgjP8Mc4ykaW?p^JYn7vR>p zzFzuW>??K)ya3D#L=NSQ{j|w>hz6eQ2-g5y5V!{^Eu!8^AH>&0tP;$NRcN(G3bGNb z$>Ax~ky7!bvxI6BG{_w;m`oIy^0&m2x99J4+mkNdg@#+ogO8e5;X;`9HT{%Sc#z!Y%yRqU8+r77@H<)R-Ct;cNH9iRwQgTkn4zGB1|2x zqD)ABhBZ>Mxvl}IL-5I`yX}O-K4x@hlesH+PUU-fR9QvNSG+&CGUR(^{MafkxE|A>*5rtbmk_)lzuq^5#36eFhz zxMP-M@(@V{N;JixuW0_9Yz7A=bs)dYZ3DB1+(mV!1yWC3F}EJ!21j8FPhQ&Ik{X_s z)bwF=k1)DLs&LSzXZ>0zcnE?kasnFRCq>yN>MEXw&K1b0BD*K<%{5^4>KgFk^Hix& zk+zav5FuD_Mj!?!(Y81*Teh=6F}>-97Tk0GV5X;$g|)8iKuUPXON6Ovf_zWT33iS6 z8_m;go^#ROl9R+c+nqX;{dFe^SSPpl+x#~1@PZP>Y$48kwOOR!JJ>y)Pb4Vw`cCZ4 z)7DP8jSDOOqA{6g^6r;yCeJ!K9Vo}SM9YME)V2}K3WEz}TUCq}7u>yZ0a8*mtUKrr zaBKX+;Npw9HAs&zZVYBb5bj(XFXOc_p5FEjx`fPQdD7qbOK$JdM;TGcJIiog*UCxm zl}!HY7g0j<;QUt`!ibu+g#o*eV!&weSGB?JOohlEAdk1hf6cp-qhuoTG3k6=?ek*N zn0j8y&Yv`LQkPTg>3Y^>B^C)VCA`&d(tH6!;aY7IrVQ}(%_3{X_|KDe5`V|xUII-N zA0p5Z1XfZb0JXNGQFIXGtd33eXhDlF8Vas&oV{L&CX94vQDh4h{sL&t?aGIIY5(!=i8ZK5=Y#v&UCMH>4>mOEGtI518aTz=d;x+^L_P&=}Ixuiq7;_A+PSFEIFAz#re zSsgt0J)d6j376;8VvU@$8)nm<;c88bY)N!ukWp&dYhBCm7-S<&VH*{(Q)wy#r+Jov|#fQ+XzTbe@R)!l8l@))9^QUQfPH z=K7GEYf_^>IEFiDa!WMI(B{CcdTerml2{H*()|9c>%dx z7noottTbRyn^PmjB}BWKz)Z|B1<~f}q|4Z7x=fyw#&jF=LQmhkv&wk80>~?J25V!& zM?HViSrE{ZSAwA+trIYV4^n(7Ewe1=gG-P&B|X!cSGKsmi(U+Uq1(%efI%a-O#{7@DhEHn(1wG}bgA;HBg;l8aQ{gvKj&sR>=WZ5(zr6t6jXu;gHH5Y_6Xq6rqQYo(@cMXFJF zotqb3Ab1I<-~N4Jc)J0~44MNt3yC9yLVlz;3<` zt1i+RQ@32g67V429#^!efr_9t*fBNL>%e;+UkmYq8doC8d#4rPHzt7Ny_mdozCS;6xb&e$FThls>3*x1Em>mcZ5g9VRW zg3DrN!&=S6R*mURIY5dgP%k~PJ^s6ehaSB8vY${`cWD=;hcqfV&Er9+VIXIdzqOs| zF}Fniqd_KZ2F(gS!Q(7FwR|Hgdv|)+WfAFn{enbtXn~43hnTV!C_IOEFNS4_hH&=B z4kYL@hfa|o87HdYkeHafnu1bZJsd0u$>D>bG*E|n!#!QHe%O;w*Sd9gg+E1&EYb(f z-VluPXM|WVA_@Lca3kl%F@l^uUOR=GV>rfJ4_JTgyP7D6JgL@S%hL_yC*5}F zO!Zb+Sv>aOIG~UFh!~RH`bfMVdFSo+ejg&x(?i-ms8`ZW`zT`k6Vzr)X5ZI@=*ISq z^BPAvNce;y`TI(o{lbjG}*K}PBKv*eiRAKSAuP_59l1|GR9%?Zs&HY6`?!X>;nXQxirZce<8j%(GG5op-! zj~dgP3;NI;Ako)dIiLalgM#+>PuC%HcMCA3(-^`*;kj_(An`RJiUa5q1*+|sJhgu_m) zzN7D$`?6=+3J?6n?6^#p5f6ewi3yLsZ7VCdW*#`$YUbm`%(tzjw!}**&*n%@s&y-QZ%nvzF}18a zOBBq5-olNf4|VKO0pliuW<&R6j_Swmz>K?(A5;5*F$KHVS+PS^NFGa_50jm8vKNFK zH;ni2OdZy!QTl6nGhg1SHjcq(dJ_M_dDz&qFtKblaHe5kYVCJiL&|-#dR&-e@u5D> zLyi9!`Ol$;a|Zu2LGGEZym_Q`+dbb;uSuS1J2c@mkC#Ae&Vh!xk2wT=&W}0wt~4vq&BugFB)BqD`Y zt6HC7Qlpea|%EZvW0ujU4%J8)ywPz925H5p1 zzO;?BtjH9?uAw!Q$~#8@*QyH0hxz^tfx9&cX>Iles+Nt(P2*4T>vEb){dX*e`358(_Yt zux_8XL&RLUK4o6o>GvK;u*dN(EcieswPK@5K#Lji~^VPDQC21n#hd)d(JeRwWTg+X_UCo8L zYHlOR3<)rq~yyg2Cmp&G5If~|bxYD@?$0~7m8`Z|BeEueVa35do z{PBbizX8P&ILqdajt(7%K1v6HDZ|r$x{myT<;*Q+mUa2v+MqDIp`Bsz2DP7Kfx%u` z|M;LhBHCPkeMlY;`^PbP4E*D9dF=9!ZgMo=vm?W<>*=A8;G72zI&r*h3{9QXNB)qqi2P0FnU(_?(@$NDSW>cJu7^_ z9z833h3Hw~yFYqX_p6%;d`Bb9#i;+qi2QhNc61m zy*_$Y_FrafR=}=vm==D0)`-#-eA1 z?|AgA@Vzm5R``A=dRF+xqi2Qh;pkc6I}trAe820T->C3SM9&J}BhjbyudRF)zkDe92%h9vKcf~(HtnmHq=vm==B6?Q%o{XLqzN^u*!uR(^&kEmC^sMle zqGyG#96c+1%h9vKw_=7oeO3S~af3n_#tjPMwYWiHT#XwP$hEjZp{&LY3g%nl28Hu_ z+@OH2#|;YUM%3W0lFhh5A+5y?3h7qdppZTlHz=g_xIrOp#0?5*Gj32wx8nwd^hVsE zklu_M+@*3WZcs>f;s%BEt#N}w`gh_6h4gK4gF^cDxIrQP`{D+L^zX(E3h6uI28HyU zQG>f){{FZ@A^iv928Hxpaf3qo?zllA{RiU)h4dea8x+#_#0?7Rd*cR$^dF8J6w-er zYH%0L`{D+L^y#=kA^k_=28Hw=iyIWu_s0zi=?CHlh4def8x+!iB5qJfKNvSCq#ueJ z+?DfB#tjPTKNUA9q#uqO6w;5x4GQT$9XBYX|4iJVkbX37P)I)(Hz=h4Y}}xb{&P`- zyL^5xZcs=+9ychY|9sq_kp2sCgF^a=xIrO(CT>tj|HZgLA^n%)28HzZ;|7KFlTm}a zhW_QaK_UHD;s%BE58?)e^iy$zLi(@94GQVM7B?uQe;79?q@Ru(6w-e^Zcs@7ji|w0 zNYBO%3h8I!28HzBj2jfve=BZKNS})v6w=Se4GQVM9XBYX|4!VXkp5BJppbqpYH(N6 zzZ*9wr2k&rppbq(Zcs?S5H~2K|9;${kp2g8gF^bpaf3qo#kfHs{SV^?h4er24G)g$ z9rdNSK_UHe+@O&D$8m!~`k%xN3h7tk28Hyiaf3qopT-Re>3&2^uLT76w?1HZcs@7G;UBxzY#Ymr2lo?ppgDIQG>gq z{w!`#NWU33D5U>w+@O&DcX5M4`sZHi)#D5U>K+@O&DAZ}1de;79?r2l8!ppgDwaf3qoS8;f1&;_l8!=g5U252R8I*%V) zRs@z7W2&8d8P#6Yyf7l&sAa(^Up8{NHD?S>s^sC|$D9(S(`$4OTZonQ^ZJ8>;x5}# zX~;a4Lp5KY!{4d)q;4BBNr-D*V`d(zRcLcyPYM|!-Dox(EZezUQ>~D`Hk70&r(#a^ zV^adZuRk?|a1e#V<~N{!L=0+v4*wdnvsXv@p3N0tO`{(Y3IvJPlaC}x`Yj^Yy-spJdG7LQ1#<8RxMfQB!7m@ zkIhp--fXD%k$vXS(4;1^n5|$whzwPy=xXIXcGSh8u{%^mfYKO&MNqEg?2I4w#0liY zlt#v{pyy|-sy&TGAwGIn!z_u^ebtpOSo=ZOU*co=FHRZgk)H8={8d!tH!g9Ym zXFiaz03(t+;k0D82?k)M!?2ciwlU2~2=^zr?>AheE>d+frVUDM*D#=f!o6HSHReOP zzP444tpAafsQ;ulnfMLBuDZB)>hJwzVM7p=K2+&vhzQ08Z#%7#WbndLbC7=*YH}=P z@ktHg5Dm9(-|Xf*OybC@@Ci+dqArW+bbQeCM}8uWW|7I*9A=!W;glj!2!T~-#0v9?w4waf z^=e}vxRabbk4y~e{|r}+=5`~OMB71En`@w9f#E(-R+nn*)CNWX_&VLap!b zHtkV8w)**}au!+G+ve_iX`4Ds);#i9(e?#+CfA?o<1^4iY9z##0$)}Ug&0oFz*PmO zxB+9HI(zpAlO{N0f{P}YGPyHbq?!YE_{@nDZWoRDB9?*kUj?E2 zw0tp^H=j8$<#vR7Jf_>9&Goe+Y&)SS3?M(vsp={q{XN`lg4VQzHET#<$jeix1zaa! z72HJ43s9%x=;S(W`a5(7B*pkd^dZfeW&IH+m-&(SO8ljG)<*U

e6})Zvh#z_2qH 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 Date: Sat, 8 Nov 2025 21:29:11 +0200 Subject: [PATCH 11/16] Revert .papi files to manager's version (ccfd262) - remove accidental modifications from a658378 --- eunoia_web/.papi/descriptors/package.json | 2 +- eunoia_web/.papi/metadata/dot.scale | Bin 448332 -> 435216 bytes eunoia_web/.papi/polkadot-api.json | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eunoia_web/.papi/descriptors/package.json b/eunoia_web/.papi/descriptors/package.json index 99e5d2e..285c81c 100644 --- a/eunoia_web/.papi/descriptors/package.json +++ b/eunoia_web/.papi/descriptors/package.json @@ -1,5 +1,5 @@ { - "version": "0.1.0-autogenerated.12133326621938921434", + "version": "0.1.0-autogenerated.6554241485927049051", "name": "@polkadot-api/descriptors", "files": [ "dist" diff --git a/eunoia_web/.papi/metadata/dot.scale b/eunoia_web/.papi/metadata/dot.scale index f4cd73a8a672aab2708f07e931a1eb47de5156cc..89ec73bc24a8b73b8eda6adfc94add7e375fbc4c 100644 GIT binary patch delta 42517 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 delta 54021 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 GDE=39j?f?g diff --git a/eunoia_web/.papi/polkadot-api.json b/eunoia_web/.papi/polkadot-api.json index 2fa0ecd..eb036fb 100644 --- a/eunoia_web/.papi/polkadot-api.json +++ b/eunoia_web/.papi/polkadot-api.json @@ -6,7 +6,7 @@ "chain": "polkadot", "metadata": ".papi\\metadata\\dot.scale", "genesis": "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", - "codeHash": "0xa4d527cb0db4146686eeffb216b562fe68440185d5067e6177d1681ff7bb3043" + "codeHash": "0x0627ae9ae2a8d0de99a7dad056136f855f32f82391c48bf8a531506fe231a42b" } } } From cc1ba45a22a5876fa6db3d1ad7ddcf30b613347b Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 22:06:11 +0200 Subject: [PATCH 12/16] Fix SQLite database persistence on Render - use persistent disk path --- backend/eunoia_backend/eunoia_backend/settings.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/eunoia_backend/eunoia_backend/settings.py b/backend/eunoia_backend/eunoia_backend/settings.py index 419970b..e73d8af 100644 --- a/backend/eunoia_backend/eunoia_backend/settings.py +++ b/backend/eunoia_backend/eunoia_backend/settings.py @@ -129,10 +129,19 @@ # Database # https://docs.djangoproject.com/en/5.2/ref/settings/#databases +# Use persistent disk path on Render, fallback to BASE_DIR for local development +# Render persistent disk is mounted at /opt/render/project/src +if os.getenv('RENDER'): + # On Render, use persistent disk path + db_path = '/opt/render/project/src/backend/eunoia_backend/db.sqlite3' +else: + # Local development + db_path = BASE_DIR / 'db.sqlite3' + DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', + 'NAME': db_path, } } From 7bbd67866ecc6424ca27aa03fcb8bd5ec580d2e2 Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 22:19:15 +0200 Subject: [PATCH 13/16] Update persistent disk path to /opt/render/project/data (non-reserved path) --- backend/eunoia_backend/eunoia_backend/settings.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/eunoia_backend/eunoia_backend/settings.py b/backend/eunoia_backend/eunoia_backend/settings.py index e73d8af..a9f19a1 100644 --- a/backend/eunoia_backend/eunoia_backend/settings.py +++ b/backend/eunoia_backend/eunoia_backend/settings.py @@ -130,10 +130,11 @@ # https://docs.djangoproject.com/en/5.2/ref/settings/#databases # Use persistent disk path on Render, fallback to BASE_DIR for local development -# Render persistent disk is mounted at /opt/render/project/src +# Render persistent disk should be mounted at a non-reserved path like /opt/render/project/data if os.getenv('RENDER'): # On Render, use persistent disk path - db_path = '/opt/render/project/src/backend/eunoia_backend/db.sqlite3' + # The persistent disk should be mounted at /opt/render/project/data + db_path = '/opt/render/project/data/db.sqlite3' else: # Local development db_path = BASE_DIR / 'db.sqlite3' From 9112f12c16b74ee41c846bc115d0960e46b8f8ea Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 22:55:09 +0200 Subject: [PATCH 14/16] Trigger movement research automatically when registering test charities --- backend/eunoia_backend/register_test_charities.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/backend/eunoia_backend/register_test_charities.py b/backend/eunoia_backend/register_test_charities.py index d6f62d3..0c9b4f8 100644 --- a/backend/eunoia_backend/register_test_charities.py +++ b/backend/eunoia_backend/register_test_charities.py @@ -5,6 +5,7 @@ django.setup() from main.models import Charity +from agents_sdk import launch_charity_research_in_background # Clear existing test charities (optional - uncomment if you want to start fresh) # Charity.objects.all().delete() @@ -169,6 +170,14 @@ charity = Charity.objects.create(**charity_data) created_charities.append(charity) + # Trigger movement research in background if website URL exists + if charity.website_url: + try: + launch_charity_research_in_background(charity.id, max_pages=6) + print(f"🔄 Movement research triggered for {charity.name}") + except Exception as e: + print(f"⚠️ Could not trigger movement research for {charity.name}: {e}") + status = "✅ VERIFIED" if charity.is_verified else "⏳ PENDING" print(f"✅ Created: {charity.name}") print(f" Category: {charity.get_category_display()}") @@ -205,3 +214,6 @@ print(f" {charity.name}: {charity.aptos_wallet_address}") print("\n✨ Test charities are ready for blockchain donations!") +print("\n💡 Note: Movement research is running in the background.") +print(" Movements will appear in the database once research completes (may take a few minutes).") +print(" To check movements: GET /api/movements/ or GET /api/charities//movements/") From 0e12da73683542602d24e392ae3637422bac900c Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 22:56:35 +0200 Subject: [PATCH 15/16] Run movement research synchronously during pre-deploy to ensure movements are populated --- .../eunoia_backend/register_test_charities.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/backend/eunoia_backend/register_test_charities.py b/backend/eunoia_backend/register_test_charities.py index 0c9b4f8..b5d6e68 100644 --- a/backend/eunoia_backend/register_test_charities.py +++ b/backend/eunoia_backend/register_test_charities.py @@ -5,7 +5,7 @@ django.setup() from main.models import Charity -from agents_sdk import launch_charity_research_in_background +from agents_sdk import research_charity_sync # Clear existing test charities (optional - uncomment if you want to start fresh) # Charity.objects.all().delete() @@ -170,13 +170,19 @@ charity = Charity.objects.create(**charity_data) created_charities.append(charity) - # Trigger movement research in background if website URL exists + # Trigger movement research synchronously if website URL exists + # This ensures movements are populated before deployment completes if charity.website_url: try: - launch_charity_research_in_background(charity.id, max_pages=6) - print(f"🔄 Movement research triggered for {charity.name}") + print(f"🔄 Researching movements for {charity.name}...") + result = research_charity_sync(charity.id, max_pages=6) + if result.get('success'): + movements_count = result.get('movements_found', 0) + print(f" ✅ Found {movements_count} movements") + else: + print(f" ⚠️ Research failed: {result.get('error', 'Unknown error')}") except Exception as e: - print(f"⚠️ Could not trigger movement research for {charity.name}: {e}") + print(f"⚠️ Could not research movements for {charity.name}: {e}") status = "✅ VERIFIED" if charity.is_verified else "⏳ PENDING" print(f"✅ Created: {charity.name}") @@ -214,6 +220,5 @@ print(f" {charity.name}: {charity.aptos_wallet_address}") print("\n✨ Test charities are ready for blockchain donations!") -print("\n💡 Note: Movement research is running in the background.") -print(" Movements will appear in the database once research completes (may take a few minutes).") +print("\n💡 Movements have been researched and populated for charities with website URLs.") print(" To check movements: GET /api/movements/ or GET /api/charities//movements/") From c4718bc1c6c50c7f1f2521f64be2dc8b158e7805 Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 23:08:37 +0200 Subject: [PATCH 16/16] Research movements for existing charities that don't have any yet --- .../eunoia_backend/register_test_charities.py | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/backend/eunoia_backend/register_test_charities.py b/backend/eunoia_backend/register_test_charities.py index b5d6e68..00ac01d 100644 --- a/backend/eunoia_backend/register_test_charities.py +++ b/backend/eunoia_backend/register_test_charities.py @@ -164,7 +164,27 @@ # Check if charity already exists existing = Charity.objects.filter(name=charity_data['name']).first() if existing: - print(f"⚠️ Charity '{charity_data['name']}' already exists, skipping...") + print(f"⚠️ Charity '{charity_data['name']}' already exists, checking movements...") + charity = existing + + # Check if charity has movements, if not, research them + from main.models import Movement + movement_count = Movement.objects.filter(charity=charity).count() + if movement_count == 0 and charity.website_url: + print(f"🔄 No movements found, researching movements for {charity.name}...") + try: + result = research_charity_sync(charity.id, max_pages=6) + if result.get('success'): + movements_count = result.get('movements_found', 0) + print(f" ✅ Found {movements_count} movements") + else: + print(f" ⚠️ Research failed: {result.get('error', 'Unknown error')}") + except Exception as e: + print(f"⚠️ Could not research movements for {charity.name}: {e}") + elif movement_count > 0: + print(f" ✅ Already has {movement_count} movements, skipping research") + else: + print(f" ⚠️ No website URL, skipping movement research") continue charity = Charity.objects.create(**charity_data)

e6})Zvh#z_2qH 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 Date: Sat, 8 Nov 2025 21:18:20 +0200 Subject: [PATCH 09/16] Remove all .papi files from git tracking - fully generated during CI/CD --- .gitignore | 5 +---- eunoia_web/.papi/descriptors/.gitignore | 3 --- eunoia_web/.papi/descriptors/package.json | 24 ----------------------- 3 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 eunoia_web/.papi/descriptors/.gitignore delete mode 100644 eunoia_web/.papi/descriptors/package.json diff --git a/.gitignore b/.gitignore index 8512cd1..4227117 100644 --- a/.gitignore +++ b/.gitignore @@ -57,7 +57,4 @@ polkadot_contracts/*/target/ polkadot-react-app/node_modules/ # Polkadot API build artifacts (generated during CI/CD) -eunoia_web/.papi/metadata/ -eunoia_web/.papi/polkadot-api.json -eunoia_web/.papi/descriptors/dist/ -eunoia_web/.papi/descriptors/src/ \ No newline at end of file +eunoia_web/.papi/ \ No newline at end of file diff --git a/eunoia_web/.papi/descriptors/.gitignore b/eunoia_web/.papi/descriptors/.gitignore deleted file mode 100644 index 557cc81..0000000 --- a/eunoia_web/.papi/descriptors/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!.gitignore -!package.json diff --git a/eunoia_web/.papi/descriptors/package.json b/eunoia_web/.papi/descriptors/package.json deleted file mode 100644 index 99e5d2e..0000000 --- a/eunoia_web/.papi/descriptors/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "version": "0.1.0-autogenerated.12133326621938921434", - "name": "@polkadot-api/descriptors", - "files": [ - "dist" - ], - "exports": { - ".": { - "types": "./dist/index.d.ts", - "module": "./dist/index.mjs", - "import": "./dist/index.mjs", - "require": "./dist/index.js" - }, - "./package.json": "./package.json" - }, - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "browser": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "sideEffects": false, - "peerDependencies": { - "polkadot-api": ">=1.11.2" - } -} From 393fdd835a94ee6e722a10d12647ac3329638f6c Mon Sep 17 00:00:00 2001 From: RandyHaddad Date: Sat, 8 Nov 2025 21:26:15 +0200 Subject: [PATCH 10/16] Restore manager's .papi config files, only ignore build artifacts (dist/src) --- .gitignore | 6 +++++- eunoia_web/.papi/descriptors/.gitignore | 3 +++ eunoia_web/.papi/descriptors/package.json | 24 ++++++++++++++++++++++ eunoia_web/.papi/metadata/dot.scale | Bin 0 -> 448332 bytes eunoia_web/.papi/polkadot-api.json | 12 +++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 eunoia_web/.papi/descriptors/.gitignore create mode 100644 eunoia_web/.papi/descriptors/package.json create mode 100644 eunoia_web/.papi/metadata/dot.scale create mode 100644 eunoia_web/.papi/polkadot-api.json diff --git a/.gitignore b/.gitignore index 4227117..cadb2e5 100644 --- a/.gitignore +++ b/.gitignore @@ -57,4 +57,8 @@ polkadot_contracts/*/target/ polkadot-react-app/node_modules/ # Polkadot API build artifacts (generated during CI/CD) -eunoia_web/.papi/ \ No newline at end of file +# Keep config files but ignore build outputs +eunoia_web/.papi/descriptors/dist/ +eunoia_web/.papi/descriptors/src/ +# Note: .papi/descriptors/.gitignore, .papi/descriptors/package.json, +# .papi/metadata/dot.scale, and .papi/polkadot-api.json are kept in git \ No newline at end of file diff --git a/eunoia_web/.papi/descriptors/.gitignore b/eunoia_web/.papi/descriptors/.gitignore new file mode 100644 index 0000000..557cc81 --- /dev/null +++ b/eunoia_web/.papi/descriptors/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!package.json diff --git a/eunoia_web/.papi/descriptors/package.json b/eunoia_web/.papi/descriptors/package.json new file mode 100644 index 0000000..99e5d2e --- /dev/null +++ b/eunoia_web/.papi/descriptors/package.json @@ -0,0 +1,24 @@ +{ + "version": "0.1.0-autogenerated.12133326621938921434", + "name": "@polkadot-api/descriptors", + "files": [ + "dist" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./package.json": "./package.json" + }, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "browser": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "sideEffects": false, + "peerDependencies": { + "polkadot-api": ">=1.11.2" + } +} diff --git a/eunoia_web/.papi/metadata/dot.scale b/eunoia_web/.papi/metadata/dot.scale new file mode 100644 index 0000000000000000000000000000000000000000..f4cd73a8a672aab2708f07e931a1eb47de5156cc GIT binary patch literal 448332 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%0A0q#x=b|zL5?MO3JZBU2S-Ae%8eB@hOv5% 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