diff --git a/ahsc_grant/ahsc_grant_cycle2/02_Stop_Route_Data_Cleaning.ipynb b/ahsc_grant/ahsc_grant_cycle2/02_Stop_Route_Data_Cleaning.ipynb index 2eb6c2e63..7975e328a 100644 --- a/ahsc_grant/ahsc_grant_cycle2/02_Stop_Route_Data_Cleaning.ipynb +++ b/ahsc_grant/ahsc_grant_cycle2/02_Stop_Route_Data_Cleaning.ipynb @@ -35,8 +35,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: shared_utils in /home/jovyan/data-analyses/_shared_utils (4.4)\n", - "Note: you may need to restart the kernel to use updated packages.\n" + "\u001b[31mERROR: Could not find a version that satisfies the requirement shared_utils (from versions: none)\u001b[0m\u001b[31m\n", + "\u001b[0m\u001b[31mERROR: No matching distribution found for shared_utils\u001b[0m\u001b[31m\n", + "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" ] } ], @@ -60,7 +61,7 @@ "import gcsfs\n", "import datetime as dt\n", "from calitp_data_analysis.sql import get_engine\n", - "from shared_utils import gtfs_utils_v2\n", + "# from shared_utils import gtfs_utils_v2\n", "from calitp_data_analysis import utils\n", "db_engine = get_engine()\n", "credentials, project = google.auth.default()\n", @@ -375,6 +376,7 @@ " # n_trips=('n_trips', 'sum'),\n", " n_arrivals = ('arrivals_all_day', 'first'),\n", " n_routes=('route_id', 'nunique'), # number of unique route_ids per group\n", + " route_id_list=('route_id', lambda x: sorted(set(x))),\n", " stop_code=('stop_code', 'first'),\n", " pt_geom=('pt_geom', lambda x: next((v for v in x if pd.notna(v)), pd.NA))).reset_index()\n", "\n", @@ -406,18 +408,19 @@ "text": [ "\n", "RangeIndex: 27355 entries, 0 to 27354\n", - "Data columns (total 7 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 feed_key 27355 non-null object\n", - " 1 stop_id 27355 non-null object\n", - " 2 stop_name 27355 non-null object\n", - " 3 n_arrivals 27355 non-null int64 \n", - " 4 n_routes 27355 non-null int64 \n", - " 5 stop_code 24376 non-null object\n", - " 6 pt_geom 27355 non-null object\n", - "dtypes: int64(2), object(5)\n", - "memory usage: 1.5+ MB\n" + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 feed_key 27355 non-null object\n", + " 1 stop_id 27355 non-null object\n", + " 2 stop_name 27355 non-null object\n", + " 3 n_arrivals 27355 non-null int64 \n", + " 4 n_routes 27355 non-null int64 \n", + " 5 route_id_list 27355 non-null object\n", + " 6 stop_code 24376 non-null object\n", + " 7 pt_geom 27355 non-null object\n", + "dtypes: int64(2), object(6)\n", + "memory usage: 1.7+ MB\n" ] } ], @@ -496,8 +499,7 @@ " 'ea33d4691b573336fc9c43c23fa90f65': 'Golden Gate Park Shuttle Schedule',\n", " '5a075de618b4d2d2383550863fc8e44e': 'Santa Cruz Schedule',\n", " '6b5c8acdaa4dcb280591578fcbf6c18e': 'SBMTD Schedule'\n", - "}\n", - "\n" + "}" ] }, { @@ -546,6 +548,7 @@ " stop_name\n", " n_arrivals\n", " n_routes\n", + " route_id_list\n", " stop_code\n", " pt_geom\n", " name\n", @@ -559,6 +562,7 @@ " .\n", " 14\n", " 1\n", + " [16]\n", " None\n", " POINT(-119.294028 34.343645)\n", " Gold Coast Schedule\n", @@ -570,6 +574,7 @@ " 10 Freeway and Azusa Ave E\n", " 110\n", " 2\n", + " [480, 707]\n", " 493\n", " POINT(-117.908253 34.071995)\n", " Foothill Schedule\n", @@ -581,6 +586,7 @@ " 10 Freeway and Azusa Ave W\n", " 113\n", " 2\n", + " [480, 707]\n", " 494\n", " POINT(-117.906536 34.072337)\n", " Foothill Schedule\n", @@ -592,6 +598,7 @@ " 10 Freeway and Puente Ave E\n", " 66\n", " 1\n", + " [707]\n", " 496\n", " POINT(-117.960458 34.070065)\n", " Foothill Schedule\n", @@ -603,6 +610,7 @@ " 10 Freeway and Puente Ave W\n", " 70\n", " 1\n", + " [707]\n", " 497\n", " POINT(-117.959866 34.070698)\n", " Foothill Schedule\n", @@ -619,12 +627,12 @@ "3 661ef844bdaa253e8b950740f76061b1 496 10 Freeway and Puente Ave E \n", "4 661ef844bdaa253e8b950740f76061b1 497 10 Freeway and Puente Ave W \n", "\n", - " n_arrivals n_routes stop_code pt_geom \\\n", - "0 14 1 None POINT(-119.294028 34.343645) \n", - "1 110 2 493 POINT(-117.908253 34.071995) \n", - "2 113 2 494 POINT(-117.906536 34.072337) \n", - "3 66 1 496 POINT(-117.960458 34.070065) \n", - "4 70 1 497 POINT(-117.959866 34.070698) \n", + " n_arrivals n_routes route_id_list stop_code pt_geom \\\n", + "0 14 1 [16] None POINT(-119.294028 34.343645) \n", + "1 110 2 [480, 707] 493 POINT(-117.908253 34.071995) \n", + "2 113 2 [480, 707] 494 POINT(-117.906536 34.072337) \n", + "3 66 1 [707] 496 POINT(-117.960458 34.070065) \n", + "4 70 1 [707] 497 POINT(-117.959866 34.070698) \n", "\n", " name \n", "0 Gold Coast Schedule \n", diff --git a/ahsc_grant/ahsc_grant_cycle2/03_Stops_Ridership_Data_weekday.ipynb b/ahsc_grant/ahsc_grant_cycle2/03_Stops_Ridership_Data_weekday.ipynb index d24843d08..4bd5f89d7 100644 --- a/ahsc_grant/ahsc_grant_cycle2/03_Stops_Ridership_Data_weekday.ipynb +++ b/ahsc_grant/ahsc_grant_cycle2/03_Stops_Ridership_Data_weekday.ipynb @@ -23,25 +23,6 @@ "- Combine results: All matched data is concatenated into a final dataset linking weekday ridership with stops and routes." ] }, - { - "cell_type": "code", - "execution_count": 1, - "id": "31d211db-9c1f-4619-9629-fd9496fd6d80", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: shared_utils in /home/jovyan/data-analyses/_shared_utils (4.4)\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], - "source": [ - "pip install shared_utils" - ] - }, { "cell_type": "code", "execution_count": 2, @@ -300,7 +281,7 @@ "text": [ "\n", "RangeIndex: 27355 entries, 0 to 27354\n", - "Data columns (total 9 columns):\n", + "Data columns (total 10 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 feed_key 27355 non-null object\n", @@ -308,12 +289,13 @@ " 2 stop_name 27355 non-null object\n", " 3 n_arrivals 27355 non-null int64 \n", " 4 n_routes 27355 non-null int64 \n", - " 5 stop_code 24376 non-null object\n", - " 6 pt_geom 27355 non-null object\n", - " 7 name 27355 non-null object\n", - " 8 organization_name 27000 non-null object\n", - "dtypes: int64(2), object(7)\n", - "memory usage: 1.9+ MB\n" + " 5 route_id_list 27355 non-null object\n", + " 6 stop_code 24376 non-null object\n", + " 7 pt_geom 27355 non-null object\n", + " 8 name 27355 non-null object\n", + " 9 organization_name 27000 non-null object\n", + "dtypes: int64(2), object(8)\n", + "memory usage: 2.1+ MB\n" ] } ], @@ -455,6 +437,7 @@ " \"n_routes\",\n", " \"pt_geom\",\n", " \"day_type\",\n", + " \"route_id_list\",\n", " \"average_daily_boardings\",\n", " \"average_daily_alightings\",\n", " \"start_date\",\n", @@ -659,6 +642,7 @@ " n_routes\n", " pt_geom\n", " day_type\n", + " route_id_list\n", " average_daily_boardings\n", " average_daily_alightings\n", " start_date\n", @@ -667,84 +651,89 @@ " \n", " \n", " \n", - " 10027\n", - " Samtrans\n", - " db97cc02836aa5f0cf647d80160b23ec\n", - " 346106\n", - " Middlefield Rd & Linfield Dr\n", - " 346106\n", - " 69.0\n", - " 5.0\n", - " POINT(-122.167182 37.456065)\n", + " 3707\n", + " SDMTS\n", + " 1fff52f9349da228c56eef492df5001b\n", + " 13001\n", + " Camino De La Reina & Mission Valley West\n", + " 13001\n", + " 47.0\n", + " 1.0\n", + " POINT(-117.15664603 32.76751308)\n", " Weekday\n", - " 0.411765\n", - " 1.411765\n", - " 2025-08-01\n", - " 2025-08-31\n", + " ['6']\n", + " 8.458650\n", + " 15.227797\n", + " 2024-09-01\n", + " 2025-01-25\n", " \n", " \n", - " 6925\n", + " 6311\n", " Orange County Transportation Authority\n", " cd299184726656597ae2cdb4f4e81e4a\n", - " 2381\n", - " HARBOR-GARDEN GROVE\n", - " 2381\n", - " 99.0\n", - " 2.0\n", - " POINT(-117.920643 33.773397)\n", + " 4502\n", + " GOLDEN LANTERN-DUNES\n", + " 4502\n", + " 23.0\n", + " 1.0\n", + " POINT(-117.681331 33.512979)\n", " Weekday\n", - " 34.000000\n", - " 24.000000\n", + " ['90']\n", + " 0.000000\n", + " 0.000000\n", " 2025-02-04\n", " 2025-02-04\n", " \n", " \n", - " 7629\n", - " SDMTS\n", - " 1fff52f9349da228c56eef492df5001b\n", - " 12646\n", - " Ingraham St & Crown Point Dr\n", - " 12646\n", - " 40.0\n", + " 13041\n", + " Long Beach Transit\n", + " cddd375786d835389a7beb9632369907\n", + " 2846\n", + " Rosecrans & Downey SE\n", + " 2846\n", + " 27.0\n", " 1.0\n", - " POINT(-117.23614227 32.78020633)\n", + " POINT(-118.151152 33.903632)\n", " Weekday\n", - " 0.106701\n", - " 1.408412\n", - " 2024-09-01\n", - " 2025-01-25\n", + " ['71']\n", + " 3.772599\n", + " 120.655985\n", + " 2024-07-01\n", + " 2025-06-30\n", " \n", " \n", - " 10190\n", - " SDMTS\n", - " 1fff52f9349da228c56eef492df5001b\n", - " 11837\n", - " Mission Bl & Thomas Av\n", - " 11837\n", - " 64.0\n", + " 1898\n", + " Orange County Transportation Authority\n", + " cd299184726656597ae2cdb4f4e81e4a\n", + " 4897\n", + " BAYSIDE-EAST PROMONTORY POINT\n", + " 4897\n", + " 41.0\n", " 1.0\n", - " POINT(-117.25459144 32.79342094)\n", + " POINT(-117.895938 33.61183)\n", " Weekday\n", - " 72.678940\n", - " 26.515695\n", - " 2024-09-01\n", - " 2025-01-25\n", + " ['55']\n", + " 6.000000\n", + " 6.000000\n", + " 2025-02-04\n", + " 2025-02-04\n", " \n", " \n", - " 17805\n", - " Foothill Transit\n", - " 661ef844bdaa253e8b950740f76061b1\n", - " 2676\n", - " McKinley Ave and White Ave W\n", - " 2676\n", - " 21.0\n", + " 13368\n", + " Fresno County\n", + " 23d1893801eefadf7544a670a3bcd312\n", + " 890\n", + " SE VENTURA - HAZELWOOD\n", + " 890\n", + " 58.0\n", " 1.0\n", - " POINT(-117.760072 34.077919)\n", + " POINT(-119.774731 36.735775)\n", " Weekday\n", - " 6.359684\n", - " 2.691700\n", - " 2024-07-01\n", - " 2025-06-30\n", + " ['3990']\n", + " 1.162876\n", + " 2.022160\n", + " 2024-09-01\n", + " 2025-08-31\n", " \n", " \n", "\n", @@ -752,39 +741,46 @@ ], "text/plain": [ " organization_name \\\n", - "10027 Samtrans \n", - "6925 Orange County Transportation Authority \n", - "7629 SDMTS \n", - "10190 SDMTS \n", - "17805 Foothill Transit \n", + "3707 SDMTS \n", + "6311 Orange County Transportation Authority \n", + "13041 Long Beach Transit \n", + "1898 Orange County Transportation Authority \n", + "13368 Fresno County \n", "\n", - " feed_key stop_id stop_name \\\n", - "10027 db97cc02836aa5f0cf647d80160b23ec 346106 Middlefield Rd & Linfield Dr \n", - "6925 cd299184726656597ae2cdb4f4e81e4a 2381 HARBOR-GARDEN GROVE \n", - "7629 1fff52f9349da228c56eef492df5001b 12646 Ingraham St & Crown Point Dr \n", - "10190 1fff52f9349da228c56eef492df5001b 11837 Mission Bl & Thomas Av \n", - "17805 661ef844bdaa253e8b950740f76061b1 2676 McKinley Ave and White Ave W \n", + " feed_key stop_id \\\n", + "3707 1fff52f9349da228c56eef492df5001b 13001 \n", + "6311 cd299184726656597ae2cdb4f4e81e4a 4502 \n", + "13041 cddd375786d835389a7beb9632369907 2846 \n", + "1898 cd299184726656597ae2cdb4f4e81e4a 4897 \n", + "13368 23d1893801eefadf7544a670a3bcd312 890 \n", "\n", - " stop_code n_arrivals n_routes pt_geom \\\n", - "10027 346106 69.0 5.0 POINT(-122.167182 37.456065) \n", - "6925 2381 99.0 2.0 POINT(-117.920643 33.773397) \n", - "7629 12646 40.0 1.0 POINT(-117.23614227 32.78020633) \n", - "10190 11837 64.0 1.0 POINT(-117.25459144 32.79342094) \n", - "17805 2676 21.0 1.0 POINT(-117.760072 34.077919) \n", + " stop_name stop_code n_arrivals \\\n", + "3707 Camino De La Reina & Mission Valley West 13001 47.0 \n", + "6311 GOLDEN LANTERN-DUNES 4502 23.0 \n", + "13041 Rosecrans & Downey SE 2846 27.0 \n", + "1898 BAYSIDE-EAST PROMONTORY POINT 4897 41.0 \n", + "13368 SE VENTURA - HAZELWOOD 890 58.0 \n", "\n", - " day_type average_daily_boardings average_daily_alightings start_date \\\n", - "10027 Weekday 0.411765 1.411765 2025-08-01 \n", - "6925 Weekday 34.000000 24.000000 2025-02-04 \n", - "7629 Weekday 0.106701 1.408412 2024-09-01 \n", - "10190 Weekday 72.678940 26.515695 2024-09-01 \n", - "17805 Weekday 6.359684 2.691700 2024-07-01 \n", + " n_routes pt_geom day_type route_id_list \\\n", + "3707 1.0 POINT(-117.15664603 32.76751308) Weekday ['6'] \n", + "6311 1.0 POINT(-117.681331 33.512979) Weekday ['90'] \n", + "13041 1.0 POINT(-118.151152 33.903632) Weekday ['71'] \n", + "1898 1.0 POINT(-117.895938 33.61183) Weekday ['55'] \n", + "13368 1.0 POINT(-119.774731 36.735775) Weekday ['3990'] \n", + "\n", + " average_daily_boardings average_daily_alightings start_date \\\n", + "3707 8.458650 15.227797 2024-09-01 \n", + "6311 0.000000 0.000000 2025-02-04 \n", + "13041 3.772599 120.655985 2024-07-01 \n", + "1898 6.000000 6.000000 2025-02-04 \n", + "13368 1.162876 2.022160 2024-09-01 \n", "\n", " end_date \n", - "10027 2025-08-31 \n", - "6925 2025-02-04 \n", - "7629 2025-01-25 \n", - "10190 2025-01-25 \n", - "17805 2025-06-30 " + "3707 2025-01-25 \n", + "6311 2025-02-04 \n", + "13041 2025-06-30 \n", + "1898 2025-02-04 \n", + "13368 2025-08-31 " ] }, "execution_count": 14, @@ -876,6 +872,7 @@ " n_routes\n", " pt_geom\n", " day_type\n", + " route_id_list\n", " average_daily_boardings\n", " average_daily_alightings\n", " start_date\n", @@ -884,84 +881,89 @@ " \n", " \n", " \n", - " 1989\n", + " 1486\n", " Riverside Transit\n", " 6eb2b575bee157dace7a2c7155d3cb25\n", - " 538\n", - " Brockton + Nixon (Riverside Medical)\n", - " 1739\n", - " 15.0\n", - " 1.0\n", - " POINT(-117.395147 33.943975)\n", + " 293\n", + " Magnolia + Harrison\n", + " 1165\n", + " 98.0\n", + " 4.0\n", + " POINT(-117.453449 33.916621)\n", " Weekday\n", - " 4.431694\n", + " ['1', '10', '12', '21']\n", + " 83.930108\n", " NaN\n", " 2025-01-01\n", " 2025-10-31\n", " \n", " \n", - " 3424\n", + " 2397\n", " Riverside Transit\n", " 6eb2b575bee157dace7a2c7155d3cb25\n", - " 3021\n", - " Alessandro + Meridian\n", - " 4682\n", - " 18.0\n", - " 1.0\n", - " POINT(-117.291253 33.916546)\n", + " 1030\n", + " Alessandro + Century\n", + " 2207\n", + " 36.0\n", + " 2.0\n", + " POINT(-117.351034 33.936869)\n", " Weekday\n", - " 3.546012\n", + " ['20', '22']\n", + " 3.961326\n", " NaN\n", " 2025-01-01\n", " 2025-10-31\n", " \n", " \n", - " 1303\n", - " Culver City Bus\n", - " f6774d861953d4f4cdcffec95e2652c7\n", - " 33\n", - " Washington Blvd/Motor Ave\n", - " 128\n", - " 59.0\n", + " 1246\n", + " Big Blue Bus\n", + " 7a3f513c343b16a30c135ed7d332b6d6\n", + " 547\n", + " WILSHIRE BLVD & 20TH ST\n", + " 1402\n", + " 41.0\n", " 1.0\n", - " POINT(-118.401928 34.018881)\n", + " POINT(-118.483135 34.031603)\n", " Weekday\n", - " 3.500000\n", - " 11.1\n", - " 2025-07-14\n", - " 2025-08-25\n", + " ['2']\n", + " 19.670595\n", + " 20.552945\n", + " 2024-08-01\n", + " 2025-11-30\n", " \n", " \n", - " 2332\n", + " 1509\n", " Riverside Transit\n", " 6eb2b575bee157dace7a2c7155d3cb25\n", - " 957\n", - " Brockton + Beatty\n", - " 2139\n", - " 18.0\n", + " 1768\n", + " Main + Metro\n", + " 1193\n", + " 14.0\n", " 1.0\n", - " POINT(-117.396707 33.955952)\n", + " POINT(-117.564689 33.885645)\n", " Weekday\n", - " 1.333333\n", + " ['3']\n", + " 5.050562\n", " NaN\n", " 2025-01-01\n", " 2025-10-31\n", " \n", " \n", - " 3398\n", - " Riverside Transit\n", - " 6eb2b575bee157dace7a2c7155d3cb25\n", - " 2948\n", - " Center + Mt Vernon\n", - " 4620\n", - " 15.0\n", + " 897\n", + " Big Blue Bus\n", + " 7a3f513c343b16a30c135ed7d332b6d6\n", + " 796\n", + " PICO BLVD & ROXBURY DR\n", + " 2371\n", + " 77.0\n", " 1.0\n", - " POINT(-117.314919 34.01555)\n", + " POINT(-118.401974 34.054157)\n", " Weekday\n", - " 1.923664\n", - " NaN\n", - " 2025-01-01\n", - " 2025-10-31\n", + " ['7']\n", + " 27.138735\n", + " 26.018952\n", + " 2024-08-01\n", + " 2025-11-30\n", " \n", " \n", "\n", @@ -969,32 +971,39 @@ ], "text/plain": [ " organization_name feed_key stop_id \\\n", - "1989 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 538 \n", - "3424 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 3021 \n", - "1303 Culver City Bus f6774d861953d4f4cdcffec95e2652c7 33 \n", - "2332 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 957 \n", - "3398 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 2948 \n", + "1486 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 293 \n", + "2397 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 1030 \n", + "1246 Big Blue Bus 7a3f513c343b16a30c135ed7d332b6d6 547 \n", + "1509 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 1768 \n", + "897 Big Blue Bus 7a3f513c343b16a30c135ed7d332b6d6 796 \n", + "\n", + " stop_name stop_code n_arrivals n_routes \\\n", + "1486 Magnolia + Harrison 1165 98.0 4.0 \n", + "2397 Alessandro + Century 2207 36.0 2.0 \n", + "1246 WILSHIRE BLVD & 20TH ST 1402 41.0 1.0 \n", + "1509 Main + Metro 1193 14.0 1.0 \n", + "897 PICO BLVD & ROXBURY DR 2371 77.0 1.0 \n", "\n", - " stop_name stop_code n_arrivals n_routes \\\n", - "1989 Brockton + Nixon (Riverside Medical) 1739 15.0 1.0 \n", - "3424 Alessandro + Meridian 4682 18.0 1.0 \n", - "1303 Washington Blvd/Motor Ave 128 59.0 1.0 \n", - "2332 Brockton + Beatty 2139 18.0 1.0 \n", - "3398 Center + Mt Vernon 4620 15.0 1.0 \n", + " pt_geom day_type route_id_list \\\n", + "1486 POINT(-117.453449 33.916621) Weekday ['1', '10', '12', '21'] \n", + "2397 POINT(-117.351034 33.936869) Weekday ['20', '22'] \n", + "1246 POINT(-118.483135 34.031603) Weekday ['2'] \n", + "1509 POINT(-117.564689 33.885645) Weekday ['3'] \n", + "897 POINT(-118.401974 34.054157) Weekday ['7'] \n", "\n", - " pt_geom day_type average_daily_boardings \\\n", - "1989 POINT(-117.395147 33.943975) Weekday 4.431694 \n", - "3424 POINT(-117.291253 33.916546) Weekday 3.546012 \n", - "1303 POINT(-118.401928 34.018881) Weekday 3.500000 \n", - "2332 POINT(-117.396707 33.955952) Weekday 1.333333 \n", - "3398 POINT(-117.314919 34.01555) Weekday 1.923664 \n", + " average_daily_boardings average_daily_alightings start_date \\\n", + "1486 83.930108 NaN 2025-01-01 \n", + "2397 3.961326 NaN 2025-01-01 \n", + "1246 19.670595 20.552945 2024-08-01 \n", + "1509 5.050562 NaN 2025-01-01 \n", + "897 27.138735 26.018952 2024-08-01 \n", "\n", - " average_daily_alightings start_date end_date \n", - "1989 NaN 2025-01-01 2025-10-31 \n", - "3424 NaN 2025-01-01 2025-10-31 \n", - "1303 11.1 2025-07-14 2025-08-25 \n", - "2332 NaN 2025-01-01 2025-10-31 \n", - "3398 NaN 2025-01-01 2025-10-31 " + " end_date \n", + "1486 2025-10-31 \n", + "2397 2025-10-31 \n", + "1246 2025-11-30 \n", + "1509 2025-10-31 \n", + "897 2025-11-30 " ] }, "execution_count": 16, @@ -1016,7 +1025,7 @@ "source": [ "cols_to_keep = [\n", " 'feed_key', 'stop_id',\n", - " 'n_arrivals', 'n_routes', 'pt_geom'\n", + " 'n_arrivals', 'n_routes', 'pt_geom', 'route_id_list'\n", "]\n", "\n", "def fuzzy_match_subset(left_df, right_df, threshold=80):\n", @@ -1106,7 +1115,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 19, "id": "6fed4e64-9960-4092-95a0-d60e2117a59e", "metadata": {}, "outputs": [ @@ -1140,6 +1149,7 @@ " n_routes\n", " pt_geom\n", " day_type\n", + " route_id_list\n", " average_daily_boardings\n", " average_daily_alightings\n", " start_date\n", @@ -1148,81 +1158,86 @@ " \n", " \n", " \n", - " 52\n", + " 28\n", + " Caltrain\n", + " f189d5677d4a106b98585f3c5d4fd42c\n", + " 70221\n", + " Sunnyvale\n", + " None\n", + " 52.0\n", + " 3.0\n", + " POINT(-122.031372 37.378916)\n", + " Weekday\n", + " ['77119', '77121', '77122']\n", + " 1408.195136\n", + " NaN\n", + " 2023-11-01\n", + " 2025-07-31\n", + " \n", + " \n", + " 45\n", " City of Burbank\n", " cc6a68a39d22c29b49116584971e69a8\n", - " 3068914\n", - " Hollywood & Pacific\n", + " 3068904\n", + " Burbank & Whitehall\n", " None\n", " 51.0\n", " 1.0\n", - " POINT(-118.349187 34.188549)\n", + " POINT(-118.356776 34.172425)\n", " Weekday\n", - " 0.727273\n", - " 0.136364\n", + " ['3163']\n", + " 0.681818\n", + " 1.045455\n", " 2024-05-01\n", " 2024-05-31\n", " \n", " \n", - " 46\n", + " 48\n", " City of Burbank\n", " cc6a68a39d22c29b49116584971e69a8\n", - " 3068911\n", - " Empire & Buena Vista\n", + " 3067456\n", + " Empire and Niagara\n", " None\n", " 51.0\n", " 1.0\n", - " POINT(-118.33848 34.191969)\n", + " POINT(-118.342181 34.192016)\n", " Weekday\n", - " 2.772727\n", - " 5.000000\n", + " ['3163']\n", + " 0.454545\n", + " 1.227273\n", " 2024-05-01\n", " 2024-05-31\n", " \n", " \n", - " 9\n", + " 5\n", " Caltrain\n", " f189d5677d4a106b98585f3c5d4fd42c\n", - " 70321\n", - " Gilroy\n", + " 70081\n", + " Burlingame\n", " None\n", - " 4.0\n", + " 37.0\n", " 1.0\n", - " POINT(-121.566088 37.003538)\n", + " POINT(-122.3449 37.580197)\n", " Weekday\n", - " 94.688588\n", + " ['77119']\n", + " 542.005575\n", " NaN\n", " 2023-11-01\n", " 2025-07-31\n", " \n", " \n", - " 63\n", - " City of Burbank\n", - " cc6a68a39d22c29b49116584971e69a8\n", - " 3068085\n", - " Olive & Keystone SB\n", - " None\n", - " 48.0\n", - " 1.0\n", - " POINT(-118.326189 34.164484)\n", - " Weekday\n", - " 5.636364\n", - " 1.045455\n", - " 2024-05-01\n", - " 2024-05-31\n", - " \n", - " \n", - " 15\n", + " 23\n", " Caltrain\n", " f189d5677d4a106b98585f3c5d4fd42c\n", - " 70301\n", - " Morgan Hill\n", + " 70261\n", + " San Jose Diridon\n", " None\n", + " 56.0\n", " 4.0\n", - " 1.0\n", - " POINT(-121.650244 37.129363)\n", + " POINT(-121.903011 37.329239)\n", " Weekday\n", - " 103.849297\n", + " ['77119', '77121', '77122', '77123']\n", + " 1789.561827\n", " NaN\n", " 2023-11-01\n", " 2025-07-31\n", @@ -1233,35 +1248,42 @@ ], "text/plain": [ " organization_name feed_key stop_id \\\n", - "52 City of Burbank cc6a68a39d22c29b49116584971e69a8 3068914 \n", - "46 City of Burbank cc6a68a39d22c29b49116584971e69a8 3068911 \n", - "9 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70321 \n", - "63 City of Burbank cc6a68a39d22c29b49116584971e69a8 3068085 \n", - "15 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70301 \n", + "28 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70221 \n", + "45 City of Burbank cc6a68a39d22c29b49116584971e69a8 3068904 \n", + "48 City of Burbank cc6a68a39d22c29b49116584971e69a8 3067456 \n", + "5 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70081 \n", + "23 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70261 \n", "\n", - " stop_name stop_code n_arrivals n_routes \\\n", - "52 Hollywood & Pacific None 51.0 1.0 \n", - "46 Empire & Buena Vista None 51.0 1.0 \n", - "9 Gilroy None 4.0 1.0 \n", - "63 Olive & Keystone SB None 48.0 1.0 \n", - "15 Morgan Hill None 4.0 1.0 \n", + " stop_name stop_code n_arrivals n_routes \\\n", + "28 Sunnyvale None 52.0 3.0 \n", + "45 Burbank & Whitehall None 51.0 1.0 \n", + "48 Empire and Niagara None 51.0 1.0 \n", + "5 Burlingame None 37.0 1.0 \n", + "23 San Jose Diridon None 56.0 4.0 \n", "\n", - " pt_geom day_type average_daily_boardings \\\n", - "52 POINT(-118.349187 34.188549) Weekday 0.727273 \n", - "46 POINT(-118.33848 34.191969) Weekday 2.772727 \n", - "9 POINT(-121.566088 37.003538) Weekday 94.688588 \n", - "63 POINT(-118.326189 34.164484) Weekday 5.636364 \n", - "15 POINT(-121.650244 37.129363) Weekday 103.849297 \n", + " pt_geom day_type \\\n", + "28 POINT(-122.031372 37.378916) Weekday \n", + "45 POINT(-118.356776 34.172425) Weekday \n", + "48 POINT(-118.342181 34.192016) Weekday \n", + "5 POINT(-122.3449 37.580197) Weekday \n", + "23 POINT(-121.903011 37.329239) Weekday \n", + "\n", + " route_id_list average_daily_boardings \\\n", + "28 ['77119', '77121', '77122'] 1408.195136 \n", + "45 ['3163'] 0.681818 \n", + "48 ['3163'] 0.454545 \n", + "5 ['77119'] 542.005575 \n", + "23 ['77119', '77121', '77122', '77123'] 1789.561827 \n", "\n", " average_daily_alightings start_date end_date \n", - "52 0.136364 2024-05-01 2024-05-31 \n", - "46 5.000000 2024-05-01 2024-05-31 \n", - "9 NaN 2023-11-01 2025-07-31 \n", - "63 1.045455 2024-05-01 2024-05-31 \n", - "15 NaN 2023-11-01 2025-07-31 " + "28 NaN 2023-11-01 2025-07-31 \n", + "45 1.045455 2024-05-01 2024-05-31 \n", + "48 1.227273 2024-05-01 2024-05-31 \n", + "5 NaN 2023-11-01 2025-07-31 \n", + "23 NaN 2023-11-01 2025-07-31 " ] }, - "execution_count": 22, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -1273,7 +1295,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 20, "id": "c99c197b-8e49-42bd-825b-6bf0b08e9b3c", "metadata": {}, "outputs": [], @@ -1287,7 +1309,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 21, "id": "3c77f35d-a4fa-4e4c-bc45-34c77ce93efa", "metadata": {}, "outputs": [ @@ -1321,6 +1343,7 @@ " n_routes\n", " pt_geom\n", " day_type\n", + " route_id_list\n", " average_daily_boardings\n", " average_daily_alightings\n", " start_date\n", @@ -1339,6 +1362,7 @@ " 1.0\n", " POINT(-119.294028 34.343645)\n", " Weekday\n", + " ['16']\n", " 0.000000\n", " 3.000000\n", " 2025-05-01\n", @@ -1355,6 +1379,7 @@ " 1.0\n", " POINT(-122.191284 37.457543)\n", " Weekday\n", + " ['ECR-216']\n", " 9.523810\n", " 24.571429\n", " 2025-08-01\n", @@ -1371,6 +1396,7 @@ " 1.0\n", " POINT(-122.284103 37.484282)\n", " Weekday\n", + " ['61-216']\n", " 1.444444\n", " 1.888889\n", " 2025-08-01\n", @@ -1387,6 +1413,7 @@ " 1.0\n", " POINT(-122.359627 37.586685)\n", " Weekday\n", + " ['46-216']\n", " 10.333333\n", " 5.500000\n", " 2025-08-01\n", @@ -1403,6 +1430,7 @@ " 3.0\n", " POINT(-117.15569071 32.71857729)\n", " Weekday\n", + " ['110', '280', '290']\n", " 3.485637\n", " 42.889568\n", " 2024-09-01\n", @@ -1427,22 +1455,22 @@ "3 1060 Carolan Ave 340606 7.0 1.0 \n", "4 10th Av & A St 12049 18.0 3.0 \n", "\n", - " pt_geom day_type average_daily_boardings \\\n", - "0 POINT(-119.294028 34.343645) Weekday 0.000000 \n", - "1 POINT(-122.191284 37.457543) Weekday 9.523810 \n", - "2 POINT(-122.284103 37.484282) Weekday 1.444444 \n", - "3 POINT(-122.359627 37.586685) Weekday 10.333333 \n", - "4 POINT(-117.15569071 32.71857729) Weekday 3.485637 \n", + " pt_geom day_type route_id_list \\\n", + "0 POINT(-119.294028 34.343645) Weekday ['16'] \n", + "1 POINT(-122.191284 37.457543) Weekday ['ECR-216'] \n", + "2 POINT(-122.284103 37.484282) Weekday ['61-216'] \n", + "3 POINT(-122.359627 37.586685) Weekday ['46-216'] \n", + "4 POINT(-117.15569071 32.71857729) Weekday ['110', '280', '290'] \n", "\n", - " average_daily_alightings start_date end_date \n", - "0 3.000000 2025-05-01 2025-05-31 \n", - "1 24.571429 2025-08-01 2025-08-31 \n", - "2 1.888889 2025-08-01 2025-08-31 \n", - "3 5.500000 2025-08-01 2025-08-31 \n", - "4 42.889568 2024-09-01 2025-01-25 " + " average_daily_boardings average_daily_alightings start_date end_date \n", + "0 0.000000 3.000000 2025-05-01 2025-05-31 \n", + "1 9.523810 24.571429 2025-08-01 2025-08-31 \n", + "2 1.444444 1.888889 2025-08-01 2025-08-31 \n", + "3 10.333333 5.500000 2025-08-01 2025-08-31 \n", + "4 3.485637 42.889568 2024-09-01 2025-01-25 " ] }, - "execution_count": 24, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -1453,7 +1481,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 22, "id": "9f2cc744-daac-4504-b0ab-30ae38febc81", "metadata": {}, "outputs": [], diff --git a/ahsc_grant/ahsc_grant_cycle2/03_Stops_Ridership_Data_weekend.ipynb b/ahsc_grant/ahsc_grant_cycle2/03_Stops_Ridership_Data_weekend.ipynb new file mode 100644 index 000000000..3e32df1e2 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/03_Stops_Ridership_Data_weekend.ipynb @@ -0,0 +1,2000 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "be979b05-8272-4269-b01e-10e06524ae1d", + "metadata": {}, + "source": [ + "# Weekend- Saturday and Sunday Ridership and Stop Data Cleaning, Standardization, and Integration Pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "c2edd251-6ad0-4c4f-b0f9-61bfd7a9e8c5", + "metadata": {}, + "source": [ + "This script prepares and integrates transit ridership data with stop-level data by cleaning inconsistencies, applying agency-specific fixes, and merging datasets using appropriate matching strategies.\n", + "\n", + "**Summary**\n", + "- Load & filter data: Ridership data is standardized and filtered to weekend; stop data is aligned with consistent agency names.\n", + "- Clean data: Fixes inconsistencies in route_id, stop_id, and stop_code across agencies to improve matching.\n", + "- Split by strategy: Agencies are grouped based on how they can be matched (stop_id, stop_code, or stop_name).\n", + "- Merge datasets: Each group is merged with stop data, keeping only successful matches.\n", + "- Combine results: All matched data is concatenated into a final dataset linking weekend ridership with stops and routes." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "30b8121b-0a3c-48ca-8b13-097ff9bbde4f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[31mERROR: Could not find a version that satisfies the requirement shared_utils (from versions: none)\u001b[0m\u001b[31m\n", + "\u001b[0m\u001b[31mERROR: No matching distribution found for shared_utils\u001b[0m\u001b[31m\n", + "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install shared_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8c5d1801-7a94-4b4d-a6eb-283679c550c5", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import google.auth\n", + "import os\n", + "import gcsfs\n", + "from calitp_data_analysis.sql import get_engine\n", + "from calitp_data_analysis import utils\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "from pandas.tseries.holiday import USFederalHolidayCalendar\n", + "fs = gcsfs.GCSFileSystem()\n", + "from rapidfuzz import process, fuzz\n", + "\n", + "pd.set_option('display.max_columns', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "bd64654b-8554-477e-a3d3-3063b0cc8d85", + "metadata": {}, + "outputs": [], + "source": [ + "# Read in ridership data \n", + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "abf11dea-bea0-46d2-bd45-b42c9aa3209f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 13051 entries, 0 to 13050\n", + "Data columns (total 10 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 organization_name 13051 non-null object \n", + " 1 stop_id 13021 non-null object \n", + " 2 stop_name 9357 non-null object \n", + " 3 stop_lat 3613 non-null float64\n", + " 4 stop_lon 3613 non-null float64\n", + " 5 day_type 13051 non-null object \n", + " 6 average_daily_boardings 13051 non-null float64\n", + " 7 average_daily_alightings 10963 non-null float64\n", + " 8 start_date 13051 non-null object \n", + " 9 end_date 13051 non-null object \n", + "dtypes: float64(4), object(6)\n", + "memory usage: 1019.7+ KB\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namestop_idstop_namestop_latstop_londay_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
0Samtrans3450171000 El Camino Real-Menlo College37.457839-122.190513Saturday9.416.22025-08-012025-08-31
1Golden Gate Transit404691011 Andersen DrNaNNaNSaturday3.50.02025-09-012025-09-30
\n", + "
" + ], + "text/plain": [ + " organization_name stop_id stop_name stop_lat \\\n", + "0 Samtrans 345017 1000 El Camino Real-Menlo College 37.457839 \n", + "1 Golden Gate Transit 40469 1011 Andersen Dr NaN \n", + "\n", + " stop_lon day_type average_daily_boardings average_daily_alightings \\\n", + "0 -122.190513 Saturday 9.4 16.2 \n", + "1 NaN Saturday 3.5 0.0 \n", + "\n", + " start_date end_date \n", + "0 2025-08-01 2025-08-31 \n", + "1 2025-09-01 2025-09-30 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_data_saturday = (\n", + " pd.read_csv(f\"{GCS_FILE_PATH}/ridership_all.csv\")\n", + " .sort_values(by='stop_name')\n", + " .loc[lambda df: df['day_type'] == \"Saturday\"]\n", + " .reset_index(drop=True)\n", + ")\n", + "\n", + "ridership_data_saturday.info()\n", + "ridership_data_saturday.head(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a4922137-6a9c-434a-8e31-27efa2237f65", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 12526 entries, 0 to 12525\n", + "Data columns (total 10 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 organization_name 12526 non-null object \n", + " 1 stop_id 12496 non-null object \n", + " 2 stop_name 8879 non-null object \n", + " 3 stop_lat 3528 non-null float64\n", + " 4 stop_lon 3528 non-null float64\n", + " 5 day_type 12526 non-null object \n", + " 6 average_daily_boardings 12526 non-null float64\n", + " 7 average_daily_alightings 10443 non-null float64\n", + " 8 start_date 12526 non-null object \n", + " 9 end_date 12526 non-null object \n", + "dtypes: float64(4), object(6)\n", + "memory usage: 978.7+ KB\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namestop_idstop_namestop_latstop_londay_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
0Samtrans3450171000 El Camino Real-Menlo College37.457839-122.190513Sunday8.815.62025-08-012025-08-31
1Golden Gate Transit404691011 Andersen DrNaNNaNSunday1.50.02025-09-012025-09-30
\n", + "
" + ], + "text/plain": [ + " organization_name stop_id stop_name stop_lat \\\n", + "0 Samtrans 345017 1000 El Camino Real-Menlo College 37.457839 \n", + "1 Golden Gate Transit 40469 1011 Andersen Dr NaN \n", + "\n", + " stop_lon day_type average_daily_boardings average_daily_alightings \\\n", + "0 -122.190513 Sunday 8.8 15.6 \n", + "1 NaN Sunday 1.5 0.0 \n", + "\n", + " start_date end_date \n", + "0 2025-08-01 2025-08-31 \n", + "1 2025-09-01 2025-09-30 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_data_sunday = (\n", + " pd.read_csv(f\"{GCS_FILE_PATH}/ridership_all.csv\")\n", + " .sort_values(by='stop_name')\n", + " .loc[lambda df: df['day_type'] == \"Sunday\"]\n", + " .reset_index(drop=True)\n", + ")\n", + "\n", + "ridership_data_sunday.info()\n", + "ridership_data_sunday.head(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "8efb19c6-0558-4065-8838-387193202235", + "metadata": {}, + "outputs": [], + "source": [ + "agency_mapping = {\n", + " 'Gold Coast Schedule': 'Gold Coast Transit',\n", + " 'Burbank Schedule': 'City of Burbank',\n", + " 'SamTrans Schedule': 'Samtrans',\n", + " 'Big Blue Bus Schedule': 'Big Blue Bus',\n", + " 'Foothill Schedule': 'Foothill Transit',\n", + " 'San Diego Schedule': 'SDMTS',\n", + " 'Golden Gate Park Shuttle Schedule': 'Golden Gate Park Shuttle',\n", + " 'Fresno Schedule': 'Fresno County',\n", + " 'OmniTrans Schedule': 'Omnitrans',\n", + " 'Sacramento Schedule': 'SacRT Bus',\n", + " 'BART Schedule': 'San Francisco Bay Area Rapid Transit District',\n", + " 'Riverside Schedule': 'Riverside Transit',\n", + " 'OCTA Schedule': 'Orange County Transportation Authority',\n", + " 'Santa Cruz Schedule': 'Santa Cruz Metro',\n", + " 'Long Beach Schedule': 'Long Beach Transit',\n", + " 'Caltrain Schedule': 'Caltrain',\n", + " 'SBMTD Schedule': 'SBMTD',\n", + " 'Culver City Schedule': 'Culver City Bus',\n", + " 'Golden Gate Transit Schedule': 'Golden Gate Transit'\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ac519099-d597-4cd4-81cd-dfa6ca61bcef", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 23157 entries, 0 to 23156\n", + "Data columns (total 9 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 feed_key 23157 non-null object\n", + " 1 stop_id 23157 non-null object\n", + " 2 stop_name 23157 non-null object\n", + " 3 n_arrivals 23157 non-null int64 \n", + " 4 n_routes 23157 non-null int64 \n", + " 5 stop_code 20417 non-null object\n", + " 6 pt_geom 23157 non-null object\n", + " 7 name 23157 non-null object\n", + " 8 organization_name 23157 non-null object\n", + "dtypes: int64(2), object(7)\n", + "memory usage: 1.6+ MB\n" + ] + } + ], + "source": [ + "stops_aggregated_saturday = (\n", + " pd.read_csv(f\"{GCS_FILE_PATH}/stops_aggregated_saturday.csv\")\n", + " .assign(organization_name=lambda df: df['name'].map(agency_mapping))\n", + ")\n", + "\n", + "stops_aggregated_sunday = (\n", + " pd.read_csv(f\"{GCS_FILE_PATH}/stops_aggregated_sunday.csv\")\n", + " .assign(organization_name=lambda df: df['name'].map(agency_mapping))\n", + ")\n", + "\n", + "stops_aggregated_saturday.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e74568f7-cd5d-4559-831a-bee5a5213c85", + "metadata": {}, + "outputs": [], + "source": [ + "# Upon checking, found that Some stops are unmatched because Big Blue Bus ridership uses negative stop_codes.\n", + "# These correspond to valid stop_codes in the stop data (same route and stop_name).\n", + "# The mapping below replaces negative ridership stop_codes with the correct stop_codes\n", + "# so they can match during the merge.\n", + "\n", + "for ridership_df, stops_df in [\n", + " (ridership_data_saturday, stops_aggregated_saturday),\n", + " (ridership_data_sunday, stops_aggregated_sunday),\n", + "]:\n", + "\n", + " # --- Big Blue Bus stop_id mapping ---\n", + " mask_bb = ridership_df['organization_name'] == 'Big Blue Bus'\n", + "\n", + " ridership_df.loc[mask_bb, 'stop_id'] = (\n", + " ridership_df.loc[mask_bb, 'stop_id']\n", + " .astype(int)\n", + " .replace({\n", + " -4: 'MNSWSMNF',\n", + " -5: '014MCHNN',\n", + " -6: '014PCONF',\n", + " -7: '014PCOSF',\n", + " -8: '017PRLNN',\n", + " -9: '017PRLSF',\n", + " -13: 'PRL014EF',\n", + " -14: 'PRL014WN',\n", + " -18: 'SMCBUNPL'\n", + " })\n", + " .astype(str)\n", + " )\n", + "\n", + " # clean stop_code\n", + " stops_df.loc[\n", + " stops_df['organization_name'] == 'Big Blue Bus',\n", + " 'stop_code'\n", + " ] = (\n", + " stops_df.loc[\n", + " stops_df['organization_name'] == 'Big Blue Bus',\n", + " 'stop_code'\n", + " ]\n", + " .astype(str)\n", + " .str.strip()\n", + " )\n", + "\n", + "# Upon checking, found that Gold Coast Schedule stop_ids have some issues:\n", + "# 1. Some stop_ids contain ':' which prevents correct merge with ridership data\n", + "# 2. Two specific stop_ids ('GCTDMAIN1' and 'SAClMAI1') do not match the ridership data stop_ids ('GCTDMAIN' and 'SACLMAI1')\n", + "# So we remove colons and update these two stop_ids before merging\n", + "for df in [stops_aggregated_saturday, stops_aggregated_sunday]:\n", + " mask = df['name'] == \"Gold Coast Schedule\"\n", + " \n", + " df.loc[mask, 'stop_id'] = (\n", + " df.loc[mask, 'stop_id']\n", + " .str.replace(':', '', regex=False)\n", + " .replace({\n", + " 'GCTDMAIN1': 'GCTDMAIN',\n", + " 'SAClMAI1': 'SACLMAI1'\n", + " })\n", + " )\n", + "\n", + "\n", + "# Upon checking found that Long Beach transit stop_id has leading zeros like 0110, 0220 and so on\n", + "agencies = [\n", + " 'Long Beach Transit', 'Orange County Transportation Authority'\n", + "]\n", + "\n", + "for df in [stops_aggregated_saturday, stops_aggregated_sunday]:\n", + " for agency in agencies:\n", + " mask = df['organization_name'] == agency\n", + "\n", + " df.loc[mask, 'stop_id'] = (\n", + " df.loc[mask, 'stop_id']\n", + " .astype(str)\n", + " .str.replace(r'^0+', '', regex=True)\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1ec4daba-75b7-4cd3-a564-93e046e0f661", + "metadata": {}, + "outputs": [], + "source": [ + "master_cols = [\n", + " \"organization_name\",\n", + " \"feed_key\",\n", + " \"stop_id\",\n", + " \"stop_name\",\n", + " \"stop_code\",\n", + " \"n_arrivals\",\n", + " \"n_routes\",\n", + " \"pt_geom\",\n", + " \"day_type\",\n", + " \"average_daily_boardings\",\n", + " \"average_daily_alightings\",\n", + " \"start_date\",\n", + " \"end_date\"\n", + "]\n", + "\n", + "def standardize_columns(df, master_cols):\n", + " \n", + " # add missing columns\n", + " for col in master_cols:\n", + " if col not in df.columns:\n", + " df[col] = None\n", + "\n", + " # keep only master columns and order them\n", + " return df[master_cols]" + ] + }, + { + "cell_type": "markdown", + "id": "fb81a833-7587-4d2a-a229-55487ba0f905", + "metadata": {}, + "source": [ + "### Agencies with Saturday and Sunday Data, Categorized by Match Type: route*stop_id, stop_code, or stop_name" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f9fc3b52-3032-47ff-aead-95ed20f81b6a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Samtrans', 'Golden Gate Transit', 'Long Beach Transit', 'SDMTS',\n", + " 'Golden Gate Park Shuttle', 'Fresno County',\n", + " 'San Francisco Bay Area Rapid Transit District', 'Big Blue Bus',\n", + " 'Caltrain', 'Culver City Bus', 'Foothill Transit',\n", + " 'Riverside Transit'], dtype=object)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_data_sunday.organization_name.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "88622faa-c479-4513-8dcd-21da66c6f5a8", + "metadata": {}, + "outputs": [], + "source": [ + "agencies__with_stop_id_match = [\n", + " 'Foothill Transit',\n", + " # 'Gold Coast Transit',\n", + " 'Golden Gate Transit',\n", + " 'Long Beach Transit',\n", + " # 'Orange County Transportation Authority',\n", + " # 'Omnitrans', \n", + " # 'SacRT Bus',\n", + " 'Samtrans',\n", + " 'SDMTS',\n", + " 'San Francisco Bay Area Rapid Transit District', \n", + " 'Fresno County',\n", + " # 'SBMTD'\n", + "]\n", + "\n", + "agencies_with_stop_code_match = [\n", + " 'Culver City Bus',\n", + " 'Big Blue Bus',\n", + " 'Riverside Transit',\n", + " # 'Santa Cruz Metro',\n", + " 'Golden Gate Park Shuttle',\n", + "]\n", + "\n", + "\n", + "\n", + "agencies_with_stop_name_match = [\n", + " 'Caltrain',\n", + " # 'City of Burbank',\n", + " ]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "04e2f962-e27a-4064-9fa3-9236f86f2c68", + "metadata": {}, + "outputs": [], + "source": [ + "# Split Ridership by categories\n", + "\n", + "def split_ridership_by_agency(ridership_df, agency_groups):\n", + " subsets = {}\n", + " for name, agencies in agency_groups.items():\n", + " subsets[name] = ridership_df[ridership_df['organization_name'].isin(agencies)]\n", + " return subsets\n", + "\n", + "agency_groups = {\n", + " 'with_stop_id_match': agencies__with_stop_id_match,\n", + " 'with_stop_code_match': agencies_with_stop_code_match,\n", + " 'with_stop_name_match': agencies_with_stop_name_match\n", + "}\n", + "\n", + "ridership_subsets_saturday = split_ridership_by_agency(ridership_data_saturday, agency_groups)\n", + "ridership_subsets_sunday = split_ridership_by_agency(ridership_data_sunday, agency_groups)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "acfbeb33-8e8f-4137-9b09-a969637ffcc8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_merge\n", + "both 9867\n", + "left_only 0\n", + "right_only 0\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "# Merge without route_id\n", + "merge_with_stop_id_match_saturday = (\n", + " pd.merge(\n", + " ridership_subsets_saturday['with_stop_id_match'], \n", + " stops_aggregated_saturday,\n", + " on=['organization_name', 'stop_id'],\n", + " how='left',\n", + " indicator=True,\n", + " suffixes=('_x','_y')\n", + " )\n", + " .rename(columns={\n", + " 'stop_name_y': 'stop_name',\n", + " })\n", + ")\n", + "\n", + "# Keep only rows where the merge matched in both DataFrames\n", + "merge_with_stop_id_matched_saturday = merge_with_stop_id_match_saturday[merge_with_stop_id_match_saturday['_merge'] == 'both'].copy()\n", + "\n", + "merge_counts_saturday = merge_with_stop_id_matched_saturday['_merge'].value_counts()\n", + "print(merge_counts_saturday)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "40261614-ac2d-4a68-9c97-9dec29c8a44c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
2692Samtransdb97cc02836aa5f0cf647d80160b23ec341160El Camino Real & Warren Rd34116068.02.0POINT(-122.340884 37.573359)Saturday14.8888897.7777782025-08-012025-08-31
1398Long Beach Transitcddd375786d835389a7beb96323699071412Broadway & Molino NW141231.02.0POINT(-118.160887 33.765977)Saturday8.5890970.0000002024-07-012025-06-30
8206Long Beach Transitcddd375786d835389a7beb96323699071236Willow & Long Beach Blvd SE123637.03.0POINT(-118.189054 33.804312)Saturday170.58109767.0803542024-07-012025-06-30
2342SDMTS1fff52f9349da228c56eef492df5001b30675E Palomar St & Davies Dr3067544.02.0POINT(-117.02353235 32.61424315)Saturday4.7548717.0657672024-09-012025-01-25
1940Long Beach Transitcddd375786d835389a7beb96323699071432Clark & Pageantry NE143215.01.0POINT(-118.133915 33.813385)Saturday0.0000002.7952762024-07-012025-06-30
\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id \\\n", + "2692 Samtrans db97cc02836aa5f0cf647d80160b23ec 341160 \n", + "1398 Long Beach Transit cddd375786d835389a7beb9632369907 1412 \n", + "8206 Long Beach Transit cddd375786d835389a7beb9632369907 1236 \n", + "2342 SDMTS 1fff52f9349da228c56eef492df5001b 30675 \n", + "1940 Long Beach Transit cddd375786d835389a7beb9632369907 1432 \n", + "\n", + " stop_name stop_code n_arrivals n_routes \\\n", + "2692 El Camino Real & Warren Rd 341160 68.0 2.0 \n", + "1398 Broadway & Molino NW 1412 31.0 2.0 \n", + "8206 Willow & Long Beach Blvd SE 1236 37.0 3.0 \n", + "2342 E Palomar St & Davies Dr 30675 44.0 2.0 \n", + "1940 Clark & Pageantry NE 1432 15.0 1.0 \n", + "\n", + " pt_geom day_type average_daily_boardings \\\n", + "2692 POINT(-122.340884 37.573359) Saturday 14.888889 \n", + "1398 POINT(-118.160887 33.765977) Saturday 8.589097 \n", + "8206 POINT(-118.189054 33.804312) Saturday 170.581097 \n", + "2342 POINT(-117.02353235 32.61424315) Saturday 4.754871 \n", + "1940 POINT(-118.133915 33.813385) Saturday 0.000000 \n", + "\n", + " average_daily_alightings start_date end_date \n", + "2692 7.777778 2025-08-01 2025-08-31 \n", + "1398 0.000000 2024-07-01 2025-06-30 \n", + "8206 67.080354 2024-07-01 2025-06-30 \n", + "2342 7.065767 2024-09-01 2025-01-25 \n", + "1940 2.795276 2024-07-01 2025-06-30 " + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merge_with_stop_id_matched_saturday = standardize_columns(merge_with_stop_id_matched_saturday, master_cols)\n", + "merge_with_stop_id_matched_saturday.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e49d872d-a977-451a-acfc-42ec43cac3a5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_merge\n", + "both 9360\n", + "left_only 0\n", + "right_only 0\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "# Merge without route_id\n", + "merge_with_stop_id_match_sunday = (\n", + " pd.merge(\n", + " ridership_subsets_sunday['with_stop_id_match'], \n", + " stops_aggregated_sunday,\n", + " on=['organization_name', 'stop_id'],\n", + " how='left',\n", + " indicator=True,\n", + " suffixes=('_x','_y')\n", + " )\n", + " .rename(columns={\n", + " 'stop_name_y': 'stop_name',\n", + " })\n", + ")\n", + "\n", + "# Keep only rows where the merge matched in both DataFrames\n", + "merge_with_stop_id_matched_sunday = merge_with_stop_id_match_sunday[merge_with_stop_id_match_sunday['_merge'] == 'both'].copy()\n", + "\n", + "merge_counts_sunday = merge_with_stop_id_matched_sunday['_merge'].value_counts()\n", + "print(merge_counts_sunday)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "47977bdf-bbda-4410-b13d-f03d9f2a9a2a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
2616Fresno County23d1893801eefadf7544a670a3bcd31265FRESNO YOSEMITE INTL - WB6546.02.0POINT(-119.719794 36.76923)Sunday6.6610815.6997532024-09-012025-08-31
8513Foothill Transit661ef844bdaa253e8b950740f76061b11577Golden Springs Dr and Racquet Club Dr S157770.01.0POINT(-117.818375 34.008648)Sunday6.1346151.7500002024-07-012025-06-30
4302Fresno County23d1893801eefadf7544a670a3bcd3122347NE BRAWLEY - CLINTON234724.01.0POINT(-119.862145 36.772174)Sunday4.57960010.9894602024-09-012025-08-31
9174Foothill Transit661ef844bdaa253e8b950740f76061b12950Cogswell Rd and Lambert Ave W295026.01.0POINT(-118.010985 34.079321)Sunday3.1707320.2195122024-07-012025-06-30
6861Long Beach Transitcddd375786d835389a7beb963236990787Santa Fe & 23rd NE008749.02.0POINT(-118.215315 33.799215)Sunday48.67591635.1794412024-07-012025-06-30
\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id \\\n", + "2616 Fresno County 23d1893801eefadf7544a670a3bcd312 65 \n", + "8513 Foothill Transit 661ef844bdaa253e8b950740f76061b1 1577 \n", + "4302 Fresno County 23d1893801eefadf7544a670a3bcd312 2347 \n", + "9174 Foothill Transit 661ef844bdaa253e8b950740f76061b1 2950 \n", + "6861 Long Beach Transit cddd375786d835389a7beb9632369907 87 \n", + "\n", + " stop_name stop_code n_arrivals n_routes \\\n", + "2616 FRESNO YOSEMITE INTL - WB 65 46.0 2.0 \n", + "8513 Golden Springs Dr and Racquet Club Dr S 1577 70.0 1.0 \n", + "4302 NE BRAWLEY - CLINTON 2347 24.0 1.0 \n", + "9174 Cogswell Rd and Lambert Ave W 2950 26.0 1.0 \n", + "6861 Santa Fe & 23rd NE 0087 49.0 2.0 \n", + "\n", + " pt_geom day_type average_daily_boardings \\\n", + "2616 POINT(-119.719794 36.76923) Sunday 6.661081 \n", + "8513 POINT(-117.818375 34.008648) Sunday 6.134615 \n", + "4302 POINT(-119.862145 36.772174) Sunday 4.579600 \n", + "9174 POINT(-118.010985 34.079321) Sunday 3.170732 \n", + "6861 POINT(-118.215315 33.799215) Sunday 48.675916 \n", + "\n", + " average_daily_alightings start_date end_date \n", + "2616 5.699753 2024-09-01 2025-08-31 \n", + "8513 1.750000 2024-07-01 2025-06-30 \n", + "4302 10.989460 2024-09-01 2025-08-31 \n", + "9174 0.219512 2024-07-01 2025-06-30 \n", + "6861 35.179441 2024-07-01 2025-06-30 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merge_with_stop_id_matched_sunday = standardize_columns(merge_with_stop_id_matched_sunday, master_cols)\n", + "merge_with_stop_id_matched_sunday.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "f35ae6ee-5206-4455-b5fe-f0a843c6d381", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_merge\n", + "both 2933\n", + "left_only 0\n", + "right_only 0\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "merge_with_stop_code_match_saturday = (\n", + " pd.merge(\n", + " ridership_subsets_saturday['with_stop_code_match'], \n", + " stops_aggregated_saturday,\n", + " left_on=['organization_name', 'stop_id'], # ridership stop_id\n", + " right_on=['organization_name', 'stop_code'], # stops table stop_code\n", + " how='left',\n", + " indicator=True\n", + " )\n", + " .rename(columns={\n", + " 'stop_id_y': 'stop_id',\n", + " 'stop_name_y': 'stop_name',\n", + " })\n", + ")\n", + "\n", + "\n", + "# Keep only rows where the merge matched in both DataFrames\n", + "merge_with_stop_code_matched_saturday = merge_with_stop_code_match_saturday[merge_with_stop_code_match_saturday['_merge'] == 'both'].copy()\n", + "\n", + "# Check merge results\n", + "merge_counts_saturday = merge_with_stop_code_matched_saturday['_merge'].value_counts()\n", + "print(merge_counts_saturday)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "37304651-48b6-4fcb-b542-966c8b949575", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
2231Riverside Transit6eb2b575bee157dace7a2c7155d3cb251346Alta Murrieta + Brownestone249020.01.0POINT(-117.169753 33.564895)Saturday1.571429NaN2025-01-012025-10-31
262Culver City Busf6774d861953d4f4cdcffec95e2652c7712Kinross Ave/Veteran Ave90966.01.0POINT(-118.447925 34.059517)Saturday54.5000002.72025-07-142025-08-25
254Culver City Busf6774d861953d4f4cdcffec95e2652c7469Jefferson Blvd/Ballona Ln44045.02.0POINT(-118.395673 33.998464)Saturday1.0000002.72025-07-142025-08-25
2751Riverside Transit6eb2b575bee157dace7a2c7155d3cb252352San Jacinto + Esplanade336716.01.0POINT(-116.958691 33.773419)Saturday4.424242NaN2025-01-012025-10-31
2030Riverside Transit6eb2b575bee157dace7a2c7155d3cb251063Limonite + Baldwin222223.02.0POINT(-117.467472 33.975816)Saturday2.615385NaN2025-01-012025-10-31
\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id \\\n", + "2231 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 1346 \n", + "262 Culver City Bus f6774d861953d4f4cdcffec95e2652c7 712 \n", + "254 Culver City Bus f6774d861953d4f4cdcffec95e2652c7 469 \n", + "2751 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 2352 \n", + "2030 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 1063 \n", + "\n", + " stop_name stop_code n_arrivals n_routes \\\n", + "2231 Alta Murrieta + Brownestone 2490 20.0 1.0 \n", + "262 Kinross Ave/Veteran Ave 909 66.0 1.0 \n", + "254 Jefferson Blvd/Ballona Ln 440 45.0 2.0 \n", + "2751 San Jacinto + Esplanade 3367 16.0 1.0 \n", + "2030 Limonite + Baldwin 2222 23.0 2.0 \n", + "\n", + " pt_geom day_type average_daily_boardings \\\n", + "2231 POINT(-117.169753 33.564895) Saturday 1.571429 \n", + "262 POINT(-118.447925 34.059517) Saturday 54.500000 \n", + "254 POINT(-118.395673 33.998464) Saturday 1.000000 \n", + "2751 POINT(-116.958691 33.773419) Saturday 4.424242 \n", + "2030 POINT(-117.467472 33.975816) Saturday 2.615385 \n", + "\n", + " average_daily_alightings start_date end_date \n", + "2231 NaN 2025-01-01 2025-10-31 \n", + "262 2.7 2025-07-14 2025-08-25 \n", + "254 2.7 2025-07-14 2025-08-25 \n", + "2751 NaN 2025-01-01 2025-10-31 \n", + "2030 NaN 2025-01-01 2025-10-31 " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merge_with_stop_code_matched_saturday = standardize_columns(merge_with_stop_code_matched_saturday, master_cols)\n", + "merge_with_stop_code_matched_saturday.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "a4bcbbfc-be6b-44b1-8c0e-80218d263b7b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_merge\n", + "both 2931\n", + "left_only 0\n", + "right_only 0\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "merge_with_stop_code_match_sunday = (\n", + " pd.merge(\n", + " ridership_subsets_sunday['with_stop_code_match'], \n", + " stops_aggregated_sunday,\n", + " left_on=['organization_name', 'stop_id'], # ridership stop_id\n", + " right_on=['organization_name', 'stop_code'], # stops table stop_code\n", + " how='left',\n", + " indicator=True\n", + " )\n", + " .rename(columns={\n", + " 'stop_id_y': 'stop_id',\n", + " 'stop_name_y': 'stop_name',\n", + " })\n", + ")\n", + "\n", + "\n", + "# Keep only rows where the merge matched in both DataFrames\n", + "merge_with_stop_code_matched_sunday = merge_with_stop_code_match_sunday[merge_with_stop_code_match_sunday['_merge'] == 'both'].copy()\n", + "\n", + "# Check merge results\n", + "merge_counts_sunday = merge_with_stop_code_matched_sunday['_merge'].value_counts()\n", + "print(merge_counts_sunday)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "270678cf-5306-462e-8312-6b7febdad048", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
2019Riverside Transit6eb2b575bee157dace7a2c7155d3cb251057Van Buren + Central221610.01.0POINT(-117.457745 33.956212)Sunday1.000000NaN2025-01-012025-10-31
2880Riverside Transit6eb2b575bee157dace7a2c7155d3cb251157Tustin + Chestnut36239.01.0POINT(-117.835954 33.813054)Sunday10.611111NaN2025-01-012025-10-31
2569Riverside Transit6eb2b575bee157dace7a2c7155d3cb251833Gilman Springs + Soboba293211.01.0POINT(-116.973719 33.819547)Sunday1.000000NaN2025-01-012025-10-31
870Big Blue Bus7a3f513c343b16a30c135ed7d332b6d6539WILSHIRE BLVD & BROCKTON AVE217230.01.0POINT(-118.465271 34.045761)Sunday9.12282315.5017512024-08-012025-11-30
1719Riverside Transit6eb2b575bee157dace7a2c7155d3cb25661La Sierra + Norwood185617.01.0POINT(-117.491593 33.923631)Sunday5.333333NaN2025-01-012025-10-31
\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id \\\n", + "2019 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 1057 \n", + "2880 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 1157 \n", + "2569 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 1833 \n", + "870 Big Blue Bus 7a3f513c343b16a30c135ed7d332b6d6 539 \n", + "1719 Riverside Transit 6eb2b575bee157dace7a2c7155d3cb25 661 \n", + "\n", + " stop_name stop_code n_arrivals n_routes \\\n", + "2019 Van Buren + Central 2216 10.0 1.0 \n", + "2880 Tustin + Chestnut 3623 9.0 1.0 \n", + "2569 Gilman Springs + Soboba 2932 11.0 1.0 \n", + "870 WILSHIRE BLVD & BROCKTON AVE 2172 30.0 1.0 \n", + "1719 La Sierra + Norwood 1856 17.0 1.0 \n", + "\n", + " pt_geom day_type average_daily_boardings \\\n", + "2019 POINT(-117.457745 33.956212) Sunday 1.000000 \n", + "2880 POINT(-117.835954 33.813054) Sunday 10.611111 \n", + "2569 POINT(-116.973719 33.819547) Sunday 1.000000 \n", + "870 POINT(-118.465271 34.045761) Sunday 9.122823 \n", + "1719 POINT(-117.491593 33.923631) Sunday 5.333333 \n", + "\n", + " average_daily_alightings start_date end_date \n", + "2019 NaN 2025-01-01 2025-10-31 \n", + "2880 NaN 2025-01-01 2025-10-31 \n", + "2569 NaN 2025-01-01 2025-10-31 \n", + "870 15.501751 2024-08-01 2025-11-30 \n", + "1719 NaN 2025-01-01 2025-10-31 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merge_with_stop_code_matched_sunday = standardize_columns(merge_with_stop_code_matched_sunday, master_cols)\n", + "merge_with_stop_code_matched_sunday.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "d22aa571-c4a7-4243-b123-3fad9e0abac3", + "metadata": {}, + "outputs": [], + "source": [ + "cols_to_keep = [\n", + " 'feed_key', 'stop_id',\n", + " 'n_arrivals', 'n_routes', 'pt_geom'\n", + "]\n", + "\n", + "def fuzzy_match_subset(left_df, right_df, threshold=80):\n", + " results = []\n", + "\n", + " for org in left_df['organization_name'].unique():\n", + " left_group = left_df[left_df['organization_name'] == org]\n", + " right_group = right_df[right_df['organization_name'] == org]\n", + "\n", + " if right_group.empty:\n", + " continue\n", + "\n", + " choices = right_group['stop_name'].tolist()\n", + "\n", + " for idx, row in left_group.iterrows():\n", + " match, score, match_idx = process.extractOne(\n", + " row['stop_name'],\n", + " choices,\n", + " scorer=fuzz.token_set_ratio\n", + " )\n", + "\n", + " if score >= threshold:\n", + " matched_row = right_group.iloc[match_idx]\n", + " subset = matched_row[cols_to_keep].to_dict()\n", + " matched_name = matched_row['stop_name']\n", + " else:\n", + " subset = {col: None for col in cols_to_keep}\n", + " matched_name = None\n", + "\n", + " subset.update({\n", + " 'left_index': idx,\n", + " 'original_stop_name': row['stop_name'],\n", + " 'matched_stop_name': matched_name,\n", + " 'score': score\n", + " })\n", + "\n", + " results.append(subset)\n", + "\n", + " return pd.DataFrame(results)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "de85a96d-5126-495e-94e8-56a6ffa0e87c", + "metadata": {}, + "outputs": [], + "source": [ + "matches_df_saturday = fuzzy_match_subset(\n", + " ridership_subsets_saturday['with_stop_name_match'], \n", + " stops_aggregated_saturday,\n", + " threshold=80\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "d26f1fd5-236b-4e67-a72a-64a3cf052e7a", + "metadata": {}, + "outputs": [], + "source": [ + "matches_df_sunday = fuzzy_match_subset(\n", + " ridership_subsets_sunday['with_stop_name_match'], \n", + " stops_aggregated_sunday,\n", + " threshold=80\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "48845e8d-e460-485b-a886-065a6849e1c8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_merge\n", + "both 30\n", + "left_only 0\n", + "right_only 0\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "merge_with_stop_name_match_saturday = (\n", + " ridership_subsets_saturday['with_stop_name_match']\n", + " .merge(\n", + " matches_df_saturday,\n", + " left_index=True,\n", + " right_on='left_index',\n", + " how='left',\n", + " indicator=True\n", + " )\n", + " .rename(columns={\n", + " 'stop_id_y': 'stop_id',\n", + " })\n", + ")\n", + "\n", + "# Keep only rows where the merge matched in both DataFrames\n", + "merge_with_stop_name_matched_saturday = merge_with_stop_name_match_saturday[merge_with_stop_name_match_saturday['_merge'] == 'both'].copy()\n", + "\n", + "merge_counts_saturday = merge_with_stop_name_matched_saturday['_merge'].value_counts()\n", + "print(merge_counts_saturday)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "9c3d48ca-060d-4e1a-9b14-0067885cb543", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
18Caltrainf189d5677d4a106b98585f3c5d4fd42c70141Redwood CityNone33.01.0POINT(-122.231936 37.486159)Saturday799.444990NaN2023-11-012025-07-31
29Caltrainf189d5677d4a106b98585f3c5d4fd42c70271TamienNone17.01.0POINT(-121.883721 37.31174)Saturday58.297552NaN2023-11-012025-07-31
11Caltrainf189d5677d4a106b98585f3c5d4fd42c70111HillsdaleNone33.01.0POINT(-122.301496637 37.542607659)Saturday486.553577NaN2023-11-012025-07-31
17Caltrainf189d5677d4a106b98585f3c5d4fd42c70171Palo AltoNone33.01.0POINT(-122.164614 37.443475)Saturday1220.752048NaN2023-11-012025-07-31
3CaltrainNoneNoneBlossom HillNoneNaNNaNNoneSaturday0.199045NaN2023-11-012025-07-31
\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id stop_name \\\n", + "18 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70141 Redwood City \n", + "29 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70271 Tamien \n", + "11 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70111 Hillsdale \n", + "17 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70171 Palo Alto \n", + "3 Caltrain None None Blossom Hill \n", + "\n", + " stop_code n_arrivals n_routes pt_geom \\\n", + "18 None 33.0 1.0 POINT(-122.231936 37.486159) \n", + "29 None 17.0 1.0 POINT(-121.883721 37.31174) \n", + "11 None 33.0 1.0 POINT(-122.301496637 37.542607659) \n", + "17 None 33.0 1.0 POINT(-122.164614 37.443475) \n", + "3 None NaN NaN None \n", + "\n", + " day_type average_daily_boardings average_daily_alightings start_date \\\n", + "18 Saturday 799.444990 NaN 2023-11-01 \n", + "29 Saturday 58.297552 NaN 2023-11-01 \n", + "11 Saturday 486.553577 NaN 2023-11-01 \n", + "17 Saturday 1220.752048 NaN 2023-11-01 \n", + "3 Saturday 0.199045 NaN 2023-11-01 \n", + "\n", + " end_date \n", + "18 2025-07-31 \n", + "29 2025-07-31 \n", + "11 2025-07-31 \n", + "17 2025-07-31 \n", + "3 2025-07-31 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merge_with_stop_name_matched_saturday = standardize_columns(merge_with_stop_name_matched_saturday, master_cols)\n", + "merge_with_stop_name_matched_saturday.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "29ab380e-b0ab-4060-8864-b348afb2b60d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "_merge\n", + "both 30\n", + "left_only 0\n", + "right_only 0\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "merge_with_stop_name_match_sunday = (\n", + " ridership_subsets_sunday['with_stop_name_match']\n", + " .merge(\n", + " matches_df_sunday,\n", + " left_index=True,\n", + " right_on='left_index',\n", + " how='left',\n", + " indicator=True\n", + " )\n", + " .rename(columns={\n", + " 'stop_id_y': 'stop_id',\n", + " })\n", + ")\n", + "\n", + "# Keep only rows where the merge matched in both DataFrames\n", + "merge_with_stop_name_matched_sunday = merge_with_stop_name_match_sunday[merge_with_stop_name_match_sunday['_merge'] == 'both'].copy()\n", + "\n", + "merge_counts_sunday = merge_with_stop_name_matched_sunday['_merge'].value_counts()\n", + "print(merge_counts_sunday)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "454b7feb-1e5d-42c9-8ea8-1488c07ac847", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_date
16Caltrainf189d5677d4a106b98585f3c5d4fd42c70211Mountain ViewNone33.01.0POINT(-122.075956 37.394459)Sunday784.332601NaN2023-11-012025-07-31
7CaltrainNoneNoneCapitolNoneNaNNaNNoneSunday0.000000NaN2023-11-012025-07-31
25Caltrainf189d5677d4a106b98585f3c5d4fd42c70091San MateoNone33.01.0POINT(-122.323851 37.568087)Sunday478.543508NaN2023-11-012025-07-31
4Caltrainf189d5677d4a106b98585f3c5d4fd42c70071BroadwayNone33.01.0POINT(-122.36265 37.58764)Sunday66.493661NaN2023-11-012025-07-31
24CaltrainNoneNoneSan MartinNoneNaNNaNNoneSunday0.000000NaN2023-11-012025-07-31
\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id stop_name \\\n", + "16 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70211 Mountain View \n", + "7 Caltrain None None Capitol \n", + "25 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70091 San Mateo \n", + "4 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70071 Broadway \n", + "24 Caltrain None None San Martin \n", + "\n", + " stop_code n_arrivals n_routes pt_geom day_type \\\n", + "16 None 33.0 1.0 POINT(-122.075956 37.394459) Sunday \n", + "7 None NaN NaN None Sunday \n", + "25 None 33.0 1.0 POINT(-122.323851 37.568087) Sunday \n", + "4 None 33.0 1.0 POINT(-122.36265 37.58764) Sunday \n", + "24 None NaN NaN None Sunday \n", + "\n", + " average_daily_boardings average_daily_alightings start_date end_date \n", + "16 784.332601 NaN 2023-11-01 2025-07-31 \n", + "7 0.000000 NaN 2023-11-01 2025-07-31 \n", + "25 478.543508 NaN 2023-11-01 2025-07-31 \n", + "4 66.493661 NaN 2023-11-01 2025-07-31 \n", + "24 0.000000 NaN 2023-11-01 2025-07-31 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merge_with_stop_name_matched_sunday = standardize_columns(merge_with_stop_name_matched_sunday, master_cols)\n", + "merge_with_stop_name_matched_sunday.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "e7214415-e9cf-461b-9a31-1b3685b627b4", + "metadata": {}, + "outputs": [], + "source": [ + "all_ridership_stop_trips_saturday_data = pd.concat([\n", + " merge_with_stop_id_matched_saturday,\n", + " merge_with_stop_code_matched_saturday,\n", + " merge_with_stop_name_matched_saturday \n", + "], ignore_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "771a6534-c6be-411f-8aeb-150fe409abdf", + "metadata": {}, + "outputs": [], + "source": [ + "all_ridership_stop_trips_sunday_data = pd.concat([\n", + " merge_with_stop_id_matched_sunday,\n", + " merge_with_stop_code_matched_sunday,\n", + " merge_with_stop_name_matched_sunday \n", + "], ignore_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "04f9dfaa-36f2-4a22-9529-241fa55e4f19", + "metadata": {}, + "outputs": [], + "source": [ + "all_ridership_stop_trips_saturday_data.to_csv(f\"{GCS_FILE_PATH}/ridership_trips_routes_saturday.csv\", index=False)\n", + "all_ridership_stop_trips_sunday_data.to_csv(f\"{GCS_FILE_PATH}/ridership_trips_routes_saturday.csv\", index=False)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/04_prepare_acs_data.ipynb b/ahsc_grant/ahsc_grant_cycle2/04_prepare_acs_data.ipynb new file mode 100644 index 000000000..e8a2144fd --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/04_prepare_acs_data.ipynb @@ -0,0 +1,931 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "77e2b1ea-6883-4d17-8d0f-2557048cf485", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pygris in /opt/conda/lib/python3.11/site-packages (0.2.1)\n", + "Requirement already satisfied: geopandas>=0.9 in /opt/conda/lib/python3.11/site-packages (from pygris) (0.14.4)\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.11/site-packages (from pygris) (2.32.3)\n", + "Requirement already satisfied: platformdirs in /opt/conda/lib/python3.11/site-packages (from pygris) (4.3.6)\n", + "Requirement already satisfied: fiona>=1.8.21 in /opt/conda/lib/python3.11/site-packages (from geopandas>=0.9->pygris) (1.10.1)\n", + "Requirement already satisfied: numpy>=1.22 in /opt/conda/lib/python3.11/site-packages (from geopandas>=0.9->pygris) (1.26.4)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.11/site-packages (from geopandas>=0.9->pygris) (26.0)\n", + "Requirement already satisfied: pandas>=1.4.0 in /opt/conda/lib/python3.11/site-packages (from geopandas>=0.9->pygris) (2.2.3)\n", + "Requirement already satisfied: pyproj>=3.3.0 in /opt/conda/lib/python3.11/site-packages (from geopandas>=0.9->pygris) (3.7.2)\n", + "Requirement already satisfied: shapely>=1.8.0 in /opt/conda/lib/python3.11/site-packages (from geopandas>=0.9->pygris) (2.1.2)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.11/site-packages (from requests->pygris) (3.4.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.11/site-packages (from requests->pygris) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.11/site-packages (from requests->pygris) (2.2.3)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.11/site-packages (from requests->pygris) (2024.8.30)\n", + "Requirement already satisfied: attrs>=19.2.0 in /opt/conda/lib/python3.11/site-packages (from fiona>=1.8.21->geopandas>=0.9->pygris) (24.2.0)\n", + "Requirement already satisfied: click~=8.0 in /opt/conda/lib/python3.11/site-packages (from fiona>=1.8.21->geopandas>=0.9->pygris) (8.1.7)\n", + "Requirement already satisfied: click-plugins>=1.0 in /opt/conda/lib/python3.11/site-packages (from fiona>=1.8.21->geopandas>=0.9->pygris) (1.1.1.2)\n", + "Requirement already satisfied: cligj>=0.5 in /opt/conda/lib/python3.11/site-packages (from fiona>=1.8.21->geopandas>=0.9->pygris) (0.7.2)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.11/site-packages (from pandas>=1.4.0->geopandas>=0.9->pygris) (2.9.0)\n", + "Requirement already satisfied: pytz>=2020.1 in /opt/conda/lib/python3.11/site-packages (from pandas>=1.4.0->geopandas>=0.9->pygris) (2024.1)\n", + "Requirement already satisfied: tzdata>=2022.7 in /opt/conda/lib/python3.11/site-packages (from pandas>=1.4.0->geopandas>=0.9->pygris) (2024.2)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas>=1.4.0->geopandas>=0.9->pygris) (1.16.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install pygris" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "69420521-98d1-4dd9-a75e-044442f6b2fb", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import google.auth\n", + "import os\n", + "import gcsfs\n", + "import requests\n", + "from pygris import tracts \n", + "from pygris.utils import erase_water\n", + "fs = gcsfs.GCSFileSystem()\n", + "pd.set_option('display.max_columns', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d1585cd3-1090-47f4-b95c-54bb6fb02ce7", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c76cbff0-9b5f-4fdb-9e67-a3e5817142df", + "metadata": {}, + "outputs": [], + "source": [ + "with open (\"ACS_apikey\", \"r\") as file:\n", + " api_key = file.read().strip()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "75bba03d-0287-4dc8-b29e-265576b49b3e", + "metadata": {}, + "outputs": [], + "source": [ + "# County Level Metrics required: \"Total Population\", \"Total Veteran Population\", \"Total Senior Population\", \"Total Low Income Population\"\n", + "variables = [\n", + " \"B01003_001E\", # Total Population\n", + " \"B17001_002E\", # Population with Income in the past 12 months below poverty level\n", + " \"B05001_006E\", # Non US Citizen Population\n", + " \"B01001_020E\", \"B01001_021E\", \"B01001_022E\", \"B01001_023E\", \"B01001_024E\", \"B01001_025E\", # Male senior population : 65 and above\n", + " \"B01001_044E\", \"B01001_045E\", \"B01001_046E\", \"B01001_047E\", \"B01001_048E\", \"B01001_049E\", # Female senior population : 65 and above\n", + " \"B01001_006E\", \"B01001_007E\", \"B01001_008E\", \"B01001_009E\", \"B01001_010E\", # Male population : 15-24\n", + " \"B01001_030E\", \"B01001_031E\", \"B01001_032E\", \"B01001_033E\", \"B01001_034E\", # Female population: 15-24\n", + " \"B19013_001E\", # Median household income in the past 12 months (2023 Inflation adjusted dollars)\n", + " \"B06010_004E\", \"B06010_005E\", \"B06010_006E\", # Population with extremely low income\n", + " \"B06010_007E\", \"B06010_008E\", # Population with very low income\n", + " \"B06010_009E\", \"B06010_010E\", # Population with low income \n", + " \"B08014_002E\", \"B08201_002E\", # Workers and Households with no cars\n", + " # \"B18101_001E\", # Total Population with Disability\n", + " \"B19058_002E\", # Public Assistance Income or Food Stamps/SNAP in past 12 months for Households\n", + " \"B21001_002E\", # Population with veteran status: 18 and above\n", + " \"B18101_004E\", \"B18101_007E\", \"B18101_010E\", \"B18101_013E\", \"B18101_016E\", # Population with disability (Male and Female)\n", + " \"B18101_019E\", \"B18101_023E\", \"B18101_026E\", \"B18101_029E\", \"B18101_032E\", \n", + " \"B18101_035E\", \"B18101_038E\"\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "59a84531-0de9-4064-b974-e8135cec36a0", + "metadata": {}, + "outputs": [], + "source": [ + "def fetch_acs(vars_subset, api_key):\n", + " var_str = \"NAME,\" + \",\".join(vars_subset)\n", + " url = (\n", + " \"https://api.census.gov/data/2024/acs/acs5\"\n", + " f\"?get={var_str}&for=tract:*&in=state:06&key={api_key}\"\n", + " )\n", + "\n", + " r = requests.get(url)\n", + " r.raise_for_status()\n", + "\n", + " data = r.json()\n", + " df = pd.DataFrame(data[1:], columns=data[0])\n", + "\n", + " df[\"GEOID\"] = df[\"state\"] + df[\"county\"] + df[\"tract\"]\n", + " return df.drop(columns=[\"state\", \"county\", \"tract\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8e3e09c1-5f36-4b4d-9ad3-c44ebd1ffd3b", + "metadata": {}, + "outputs": [], + "source": [ + "def chunk(lst, size=35):\n", + " return [lst[i:i+size] for i in range(0, len(lst), size)]\n", + "\n", + "chunks = chunk(variables, size=35)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "ad5e592d-8c63-4c03-a971-035149319c4d", + "metadata": {}, + "outputs": [], + "source": [ + "dfs = [fetch_acs(chunk, api_key) for chunk in chunks]\n", + "\n", + "census_data = dfs[0]\n", + "for df in dfs[1:]:\n", + " census_data = census_data.merge(df, on=[\"GEOID\", \"NAME\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "4d3f15fc-79c7-4f44-8eb6-56968aaa8329", + "metadata": {}, + "outputs": [], + "source": [ + "census_data[\"county_name\"] = census_data[\"NAME\"].str.extract(\n", + " r';\\s*(.*?)(?: County)?;'\n", + ")\n", + "\n", + "census_data = census_data.drop(columns=[\"NAME\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a28beb54-79f2-4503-a831-c4b85f921a96", + "metadata": {}, + "outputs": [], + "source": [ + "num_cols = census_data.columns.difference([\"GEOID\", \"county_name\"])\n", + "census_data[num_cols] = census_data[num_cols].astype(int)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "927d80f8-9a76-4bd7-b4e6-b91d3d2094d1", + "metadata": {}, + "outputs": [], + "source": [ + "census_data = census_data.rename(columns = {\n", + " 'B01003_001E': 'total_pop',\n", + " 'B17001_002E': 'poverty_pop',\n", + " 'B05001_006E': 'non_us_citizen',\n", + " 'B01001_020E': 'male_65_to_66', 'B01001_021E': 'male_67_to_69', 'B01001_022E': 'male_70_to_74', \n", + " 'B01001_023E': 'male_75_to_79', 'B01001_024E': 'male_80_to_84', 'B01001_025E': 'male_85_and_over',\n", + " 'B01001_044E': 'female_65_to_66', 'B01001_045E': 'female_67_to_69', 'B01001_046E': 'female_70_to_74', \n", + " 'B01001_047E': 'female_75_to_79', 'B01001_048E': 'female_80_to_84', 'B01001_049E': 'female_85_and_over',\n", + " 'B01001_006E': 'male_15_17', 'B01001_007E': 'male_18_19', 'B01001_008E': 'male_20', 'B01001_009E': 'male_21',\n", + " 'B01001_010E': 'male_22_24', 'B01001_030E': 'female_15_17', 'B01001_031E': 'female_18_19', 'B01001_032E': 'female_20',\n", + " 'B01001_033E': 'female_21', 'B01001_034E': 'female_22_24',\n", + " 'B19013_001E': 'median_household_income',\n", + " 'B06010_004E': 'income_less_10000', 'B06010_005E': 'income_10000_14999', 'B06010_006E': 'income_15000_24999', \n", + " 'B06010_007E': 'income_25000_34999', 'B06010_008E': 'income_35000_49999',\n", + " 'B06010_009E': 'income_50000_64999', 'B06010_010E': 'income_65000_74999',\n", + " 'B08014_002E': 'workers_with_no_car', 'B08201_002E': 'households_with_no_cars',\n", + " # 'B18101_001E': 'disabled_pop',\n", + " 'B19058_002E': 'public_asst_pop',\n", + " 'B21001_002E': 'veteran_pop',\n", + " 'B18101_004E': 'male_under5_with_disability',\n", + " 'B18101_007E': 'male_5_17_with_disability',\n", + " 'B18101_010E': 'male_18_34_with_disability',\n", + " 'B18101_013E': 'male_35_64_with_disability',\n", + " 'B18101_016E': 'male_65_74_with_disability',\n", + " 'B18101_019E': 'male_75_plus_with_disability',\n", + " 'B18101_023E': 'female_under5_with_disability',\n", + " 'B18101_026E': 'female_5_17_with_disability',\n", + " 'B18101_029E': 'female_18_34_with_disability',\n", + " 'B18101_032E': 'female_35_64_with_disability',\n", + " 'B18101_035E': 'female_65_74_with_disability',\n", + " 'B18101_038E': 'female_75_plus_with_disability' \n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "8fc1045a-ed04-465b-b919-fd15b1f55a6d", + "metadata": {}, + "outputs": [], + "source": [ + "exclude = ['state', 'county', 'tract', 'county_name', 'GEOID']\n", + "cols_to_numeric = [col for col in census_data.columns if col not in exclude]\n", + "census_data[cols_to_numeric] = census_data[cols_to_numeric].apply(pd.to_numeric, errors='coerce')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "8bd075af-bae9-4987-8a62-e55605df4068", + "metadata": {}, + "outputs": [], + "source": [ + "## Aggregate ACS income brackets into broader income group categories: extremely low, very low, and low income.\n", + "census_data['inc_extremelylow'] = census_data['income_less_10000'] + census_data['income_10000_14999'] + census_data['income_15000_24999']\n", + "census_data['inc_verylow'] = census_data['income_25000_34999'] + census_data['income_35000_49999']\n", + "census_data['inc_low'] = census_data['income_50000_64999'] + census_data['income_65000_74999']" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "7a3c623b-0e1a-4d1a-b6c5-002660fdee87", + "metadata": {}, + "outputs": [], + "source": [ + "census_data['inc_total_lowincome'] = (\n", + " census_data['inc_extremelylow'] +\n", + " census_data['inc_verylow'] +\n", + " census_data['inc_low']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "533cad22-6f5a-44c0-bacd-9cd7424d27e3", + "metadata": {}, + "outputs": [], + "source": [ + "# Sum all senior age brackets (65+) to calculate total male and female senior populations.\n", + "census_data['male_seniors'] = census_data.loc[:, \"male_65_to_66\":\"male_85_and_over\"].sum(axis=1)\n", + "census_data['female_seniors'] = census_data.loc[:, \"female_65_to_66\":\"female_85_and_over\"].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "afbfea83-8c4b-4d31-9012-db3764b55fd5", + "metadata": {}, + "outputs": [], + "source": [ + "census_data['male_youth'] = census_data.loc[:, 'male_15_17':'male_22_24'].sum(axis=1)\n", + "census_data['female_youth'] = census_data.loc[:, 'female_15_17':'female_22_24'].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "1c1f974f-923f-4d22-a38c-238ac609b33b", + "metadata": {}, + "outputs": [], + "source": [ + "census_data['total_seniors'] = census_data['male_seniors'] + census_data['female_seniors']\n", + "census_data['total_youth'] = census_data['male_youth'] + census_data['female_youth']" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "1b1d6c35-8f48-45b2-97f1-4e7326f9ce1d", + "metadata": {}, + "outputs": [], + "source": [ + "disability_cols = ['male_under5_with_disability','male_5_17_with_disability','male_18_34_with_disability','male_35_64_with_disability','male_65_74_with_disability','male_75_plus_with_disability','female_under5_with_disability','female_5_17_with_disability','female_18_34_with_disability','female_35_64_with_disability','female_65_74_with_disability','female_75_plus_with_disability']\n", + "census_data['disabled_pop'] = census_data[disability_cols].sum(axis=1)\n", + "census_data = census_data.drop(columns=disability_cols)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "3b5e0c7c-e345-4b99-84b9-c1da87692aff", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
total_poppoverty_popnon_us_citizenmale_65_to_66male_67_to_69male_70_to_74male_75_to_79male_80_to_84male_85_and_overfemale_65_to_66female_67_to_69female_70_to_74female_75_to_79female_80_to_84female_85_and_overmale_15_17male_18_19male_20male_21male_22_24female_15_17female_18_19female_20female_21female_22_24median_household_incomeincome_less_10000income_10000_14999income_15000_24999income_25000_34999income_35000_49999income_50000_64999income_65000_74999workers_with_no_carhouseholds_with_no_carsGEOIDpublic_asst_popveteran_popcounty_nameinc_extremelylowinc_verylowinc_lowinc_total_lowincomemale_seniorsfemale_seniorsmale_youthfemale_youthtotal_seniorstotal_youthdisabled_pop
03132131259581401414455492678103835111628000312870021250001161111761631071124189107060014001006255Alameda3482701537714874575956944115206
12203170123225858592823363474105321925040102428002220843811068108302261213499110060014002004235Alameda2862561556972483003974548113167
259902562804349681308322878520519333109981440691893100501766183502103243083242511812374660600140030020374Alameda88463243219483957123391701107509479
343993452217390733948217283109472217283800262190020165134192108321185246186551332120600140040016888Alameda62143124112933443509250694142366
4357939511737454346100604890273119723792404618009420966412361252341154303831417822706001400500188100Alameda5955455241664181453172132634304291
\n", + "
" + ], + "text/plain": [ + " total_pop poverty_pop non_us_citizen male_65_to_66 male_67_to_69 \\\n", + "0 3132 131 259 58 140 \n", + "1 2203 170 123 22 58 \n", + "2 5990 256 280 43 49 \n", + "3 4399 345 221 73 90 \n", + "4 3579 395 117 37 45 \n", + "\n", + " male_70_to_74 male_75_to_79 male_80_to_84 male_85_and_over \\\n", + "0 141 44 55 49 \n", + "1 58 59 28 23 \n", + "2 68 130 83 22 \n", + "3 73 39 48 21 \n", + "4 43 46 10 0 \n", + "\n", + " female_65_to_66 female_67_to_69 female_70_to_74 female_75_to_79 \\\n", + "0 26 78 103 83 \n", + "1 36 34 74 105 \n", + "2 87 85 205 193 \n", + "3 72 83 109 47 \n", + "4 60 48 90 27 \n", + "\n", + " female_80_to_84 female_85_and_over male_15_17 male_18_19 male_20 \\\n", + "0 51 116 28 0 0 \n", + "1 32 19 25 0 4 \n", + "2 33 109 98 144 0 \n", + "3 22 17 28 38 0 \n", + "4 31 197 23 79 24 \n", + "\n", + " male_21 male_22_24 female_15_17 female_18_19 female_20 female_21 \\\n", + "0 0 31 28 7 0 0 \n", + "1 0 10 24 28 0 0 \n", + "2 6 91 89 31 0 0 \n", + "3 0 26 21 9 0 0 \n", + "4 0 46 18 0 0 94 \n", + "\n", + " female_22_24 median_household_income income_less_10000 \\\n", + "0 21 250001 161 \n", + "1 22 208438 110 \n", + "2 50 176618 350 \n", + "3 20 165134 192 \n", + "4 20 96641 236 \n", + "\n", + " income_10000_14999 income_15000_24999 income_25000_34999 \\\n", + "0 111 76 163 \n", + "1 68 108 30 \n", + "2 210 324 308 \n", + "3 108 321 185 \n", + "4 125 234 115 \n", + "\n", + " income_35000_49999 income_50000_64999 income_65000_74999 \\\n", + "0 107 112 41 \n", + "1 226 121 34 \n", + "2 324 251 181 \n", + "3 246 186 55 \n", + "4 430 383 141 \n", + "\n", + " workers_with_no_car households_with_no_cars GEOID public_asst_pop \\\n", + "0 89 107 06001400100 62 \n", + "1 99 110 06001400200 42 \n", + "2 237 466 06001400300 203 \n", + "3 133 212 06001400400 168 \n", + "4 78 227 06001400500 188 \n", + "\n", + " veteran_pop county_name inc_extremelylow inc_verylow inc_low \\\n", + "0 55 Alameda 348 270 153 \n", + "1 35 Alameda 286 256 155 \n", + "2 74 Alameda 884 632 432 \n", + "3 88 Alameda 621 431 241 \n", + "4 100 Alameda 595 545 524 \n", + "\n", + " inc_total_lowincome male_seniors female_seniors male_youth \\\n", + "0 771 487 457 59 \n", + "1 697 248 300 39 \n", + "2 1948 395 712 339 \n", + "3 1293 344 350 92 \n", + "4 1664 181 453 172 \n", + "\n", + " female_youth total_seniors total_youth disabled_pop \n", + "0 56 944 115 206 \n", + "1 74 548 113 167 \n", + "2 170 1107 509 479 \n", + "3 50 694 142 366 \n", + "4 132 634 304 291 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census_data.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "e2341578-5d79-4c2f-a6a5-ee556abcbc17", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 9129 entries, 0 to 9128\n", + "Data columns (total 50 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 total_pop 9129 non-null int64 \n", + " 1 poverty_pop 9129 non-null int64 \n", + " 2 non_us_citizen 9129 non-null int64 \n", + " 3 male_65_to_66 9129 non-null int64 \n", + " 4 male_67_to_69 9129 non-null int64 \n", + " 5 male_70_to_74 9129 non-null int64 \n", + " 6 male_75_to_79 9129 non-null int64 \n", + " 7 male_80_to_84 9129 non-null int64 \n", + " 8 male_85_and_over 9129 non-null int64 \n", + " 9 female_65_to_66 9129 non-null int64 \n", + " 10 female_67_to_69 9129 non-null int64 \n", + " 11 female_70_to_74 9129 non-null int64 \n", + " 12 female_75_to_79 9129 non-null int64 \n", + " 13 female_80_to_84 9129 non-null int64 \n", + " 14 female_85_and_over 9129 non-null int64 \n", + " 15 male_15_17 9129 non-null int64 \n", + " 16 male_18_19 9129 non-null int64 \n", + " 17 male_20 9129 non-null int64 \n", + " 18 male_21 9129 non-null int64 \n", + " 19 male_22_24 9129 non-null int64 \n", + " 20 female_15_17 9129 non-null int64 \n", + " 21 female_18_19 9129 non-null int64 \n", + " 22 female_20 9129 non-null int64 \n", + " 23 female_21 9129 non-null int64 \n", + " 24 female_22_24 9129 non-null int64 \n", + " 25 median_household_income 9129 non-null int64 \n", + " 26 income_less_10000 9129 non-null int64 \n", + " 27 income_10000_14999 9129 non-null int64 \n", + " 28 income_15000_24999 9129 non-null int64 \n", + " 29 income_25000_34999 9129 non-null int64 \n", + " 30 income_35000_49999 9129 non-null int64 \n", + " 31 income_50000_64999 9129 non-null int64 \n", + " 32 income_65000_74999 9129 non-null int64 \n", + " 33 workers_with_no_car 9129 non-null int64 \n", + " 34 households_with_no_cars 9129 non-null int64 \n", + " 35 GEOID 9129 non-null object\n", + " 36 public_asst_pop 9129 non-null int64 \n", + " 37 veteran_pop 9129 non-null int64 \n", + " 38 county_name 9129 non-null object\n", + " 39 inc_extremelylow 9129 non-null int64 \n", + " 40 inc_verylow 9129 non-null int64 \n", + " 41 inc_low 9129 non-null int64 \n", + " 42 inc_total_lowincome 9129 non-null int64 \n", + " 43 male_seniors 9129 non-null int64 \n", + " 44 female_seniors 9129 non-null int64 \n", + " 45 male_youth 9129 non-null int64 \n", + " 46 female_youth 9129 non-null int64 \n", + " 47 total_seniors 9129 non-null int64 \n", + " 48 total_youth 9129 non-null int64 \n", + " 49 disabled_pop 9129 non-null int64 \n", + "dtypes: int64(48), object(2)\n", + "memory usage: 3.5+ MB\n" + ] + } + ], + "source": [ + "census_data.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "6806f203-fc02-402a-97de-ed6ef73df0dc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using FIPS code '06' for input 'CA'\n" + ] + } + ], + "source": [ + "#Retrieving Tract Geometries for California\n", + "ca_tracts_full = tracts(state=\"CA\", cb=True, year=2024, cache=True)\n", + "ca_tracts_full.to_crs(3310, inplace=True)\n", + "ca_tracts_full = ca_tracts_full.explode(index_parts=False).reset_index(drop=True)\n", + "ca_tracts_full = ca_tracts_full[~ca_tracts_full.is_empty]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "d55b0985-e8f2-45e4-829f-5cc4f7f51241", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.11/site-packages/geopandas/geodataframe.py:2475: UserWarning: `keep_geom_type=True` in overlay resulted in 819 dropped geometries of different geometry types than df1 has. Set `keep_geom_type=False` to retain all geometries\n", + " return geopandas.overlay(\n" + ] + } + ], + "source": [ + "ca_tracts_land = erase_water(ca_tracts_full.copy())" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "6c31979d-b0b4-4e12-93e4-7ace297b5c8b", + "metadata": {}, + "outputs": [], + "source": [ + "# Merging the census tract geometries with the census data based on the GEOID\n", + "tracts_ca_acs = ca_tracts_full.merge(census_data, how=\"inner\", on=\"GEOID\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "2ed3d76d-d51b-4e10-8045-6ce49845da53", + "metadata": {}, + "outputs": [], + "source": [ + "# Calculate the area of each census tract in square meters.\n", + "tracts_ca_acs[\"area_m2\"] = tracts_ca_acs.geometry.area" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "e3374031-fae9-4711-8407-b59aef3093dd", + "metadata": {}, + "outputs": [], + "source": [ + "# Store data in warehouse\n", + "with fs.open(f\"{GCS_FILE_PATH}/AHSC_2026/census_tracts_data.parquet\", \"wb\") as f:\n", + " tracts_ca_acs.to_parquet(f, index=False)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/05_process_lehd.ipynb b/ahsc_grant/ahsc_grant_cycle2/05_process_lehd.ipynb new file mode 100644 index 000000000..641f8a7dc --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/05_process_lehd.ipynb @@ -0,0 +1,266 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "092a77f2-64b2-4de5-9eb3-45ab44dd6751", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "os.environ[\"CALITP_BQ_MAX_BYTES\"] = str(800_000_000_000)\n", + "\n", + "import shared_utils\n", + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import gcsfs\n", + "from calitp_data_analysis import get_fs\n", + "from calitp_data_analysis import geography_utils, utils\n", + "fs = get_fs()\n", + "import re\n", + "import google.auth\n", + "import os\n", + "import gcsfs\n", + "credentials, project = google.auth.default()\n", + "fs = gcsfs.GCSFileSystem()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e8fa3c35-7db6-4856-a0cd-61d1517a0dd7", + "metadata": {}, + "outputs": [], + "source": [ + "pd.options.display.max_columns = 100\n", + "pd.options.display.float_format = \"{:.2f}\".format\n", + "pd.set_option(\"display.max_rows\", None)\n", + "pd.set_option(\"display.max_colwidth\", None)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "403b3f09-7881-4d1b-a31d-6c99a34fc982", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "1b062163-8b62-4dec-8a0a-0edd514c4865", + "metadata": {}, + "outputs": [], + "source": [ + "job_density_prv = pd.read_csv(f\"{GCS_FILE_PATH}/Job Density Raw File Private.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "7ae6a36d-844c-4e92-95de-f6b7bcafcf2b", + "metadata": {}, + "outputs": [], + "source": [ + "job_density_tot = pd.read_csv(f\"{GCS_FILE_PATH}/Job Density Raw File Total.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b7fe33a9-165a-4b93-a714-81615c182a1a", + "metadata": {}, + "outputs": [], + "source": [ + "job_density_prv = job_density_prv.rename(columns={'C000': 'jobs_prv'})\n", + "job_density_tot = job_density_tot.rename(columns={'C000': 'jobs_tot'})" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "fab55900-24f6-4172-a92f-874341cd41fc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 368595 entries, 0 to 368594\n", + "Data columns (total 4 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 h_geocode 368595 non-null int64 \n", + " 1 segment 368595 non-null object\n", + " 2 year 368595 non-null int64 \n", + " 3 jobs_prv 368595 non-null int64 \n", + "dtypes: int64(3), object(1)\n", + "memory usage: 11.2+ MB\n" + ] + } + ], + "source": [ + "job_density_prv.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a5b4ef5a-220e-4aba-aa3c-417709afa3f7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 370418 entries, 0 to 370417\n", + "Data columns (total 4 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 h_geocode 370418 non-null int64 \n", + " 1 segment 370418 non-null object\n", + " 2 year 370418 non-null int64 \n", + " 3 jobs_tot 370418 non-null int64 \n", + "dtypes: int64(3), object(1)\n", + "memory usage: 11.3+ MB\n" + ] + } + ], + "source": [ + "job_density_tot.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "1e63f8e5-a3e0-4f49-b057-8036baf38aab", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df = pd.merge(\n", + " job_density_tot,\n", + " job_density_prv[['h_geocode', 'jobs_prv']],\n", + " on='h_geocode',\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "77b5f65a-7079-4b05-8cdb-cea0aec812bc", + "metadata": {}, + "outputs": [], + "source": [ + "#Sort by GEOID\n", + "merged_df = merged_df.sort_values(by='h_geocode')\n", + "\n", + "#Create jobs_fed = jobs_total - jobs_prv\n", + "merged_df['jobs_fed'] = merged_df['jobs_tot'] - merged_df['jobs_prv']\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "a95c452e-ecbf-434f-a202-f4c642b70638", + "metadata": {}, + "outputs": [], + "source": [ + "merged_df['GEOID'] = merged_df['h_geocode'].astype(str).str.zfill(15).str[:11]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "1aef57f6-b2d7-4fa5-8445-63a04d0718f1", + "metadata": {}, + "outputs": [], + "source": [ + "grouped_df = merged_df.groupby('GEOID', as_index=False).agg({\n", + " 'jobs_tot': 'sum',\n", + " 'jobs_prv': 'sum',\n", + " 'jobs_fed': 'sum',\n", + " 'year': 'first'\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "c932b790-c532-4ee9-8c15-c3fe290a9307", + "metadata": {}, + "outputs": [], + "source": [ + "def export_gdf(gdf, filename: str):\n", + " \n", + " gdf.to_parquet(f\"{filename}.parquet\")\n", + " \n", + " fs.put(\n", + " f\"{filename}.parquet\",\n", + " f\"{GCS_FILE_PATH}/{filename}.parquet\",\n", + " token = credentials.token\n", + " )\n", + " \n", + " os.remove(f\"{filename}.parquet\")\n", + " print(f\"saved {GCS_FILE_PATH}/{filename}.parquet\")\n", + " \n", + " return" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "54686340-bb8c-41eb-8ca2-cb53d93228be", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "saved gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026/job_density_2023.parquet\n" + ] + } + ], + "source": [ + "export_gdf(grouped_df, \"job_density_2023\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a41db33f-0db0-4123-a289-e7813eafac88", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/06_data_processing.ipynb b/ahsc_grant/ahsc_grant_cycle2/06_data_processing.ipynb new file mode 100644 index 000000000..6ea3b99a9 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/06_data_processing.ipynb @@ -0,0 +1,958 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "873ef61b-098a-49da-9c28-2667af4ffd64", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[31mERROR: Could not find a version that satisfies the requirement shared_utils (from versions: none)\u001b[0m\u001b[31m\n", + "\u001b[0m\u001b[31mERROR: No matching distribution found for shared_utils\u001b[0m\u001b[31m\n", + "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install shared_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "dfd19a35-4791-4c64-a90a-88ec37c3b4b9", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import google.auth\n", + "import os\n", + "import gcsfs\n", + "import requests\n", + "import fsspec\n", + "from shapely import wkt\n", + "import re\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "fs = gcsfs.GCSFileSystem()\n", + "\n", + "pd.set_option('display.max_columns', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "af0504b4-642c-4977-b166-d800acfc82a0", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f7477af7-e3ee-44f5-b292-bd423280a0f2", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4916dd04-523b-4dda-aca7-599a90560b19", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Load the stored organization, ridership, stop, data from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/ridership_trips_routes_weekday.csv\", \"rb\") as f:\n", + " ridership_trips_routes_weekday = pd.read_csv(f)\n", + " \n", + "with fs.open(f\"{GCS_FILE_PATH}/ridership_trips_routes_saturday.csv\", \"rb\") as f:\n", + " ridership_trips_routes_saturday = pd.read_csv(f)\n", + " \n", + "with fs.open(f\"{GCS_FILE_PATH}/ridership_trips_routes_saturday.csv\", \"rb\") as f:\n", + " ridership_trips_routes_sunday = pd.read_csv(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "80eeec73-8a7d-4d75-aebb-1c70333874f4", + "metadata": {}, + "outputs": [], + "source": [ + "# Load job density data from GCS and select required columns\n", + "# Open the GCS file using your existing fs object\n", + "with fs.open(f\"{GCS_FILE_PATH}/job_density_2023.parquet\", \"rb\") as f:\n", + " jobdata = pd.read_parquet(f)\n", + "\n", + "# Select only the columns you want, including geometry\n", + "jobdata = jobdata[['GEOID', 'jobs_tot']]" + ] + }, + { + "cell_type": "markdown", + "id": "703d3c9d-c755-45d9-aa74-467b315549dc", + "metadata": {}, + "source": [ + "## Spatial Analysis: Stop Buffers and Census Tract Intersections" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4f0323de-b195-4fdf-a9a4-2d2170716ac0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 21265 entries, 0 to 21264\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 organization_name 21265 non-null object \n", + " 1 feed_key 21264 non-null object \n", + " 2 stop_id 21264 non-null object \n", + " 3 stop_name 21265 non-null object \n", + " 4 stop_code 20543 non-null object \n", + " 5 n_arrivals 21264 non-null float64\n", + " 6 n_routes 21264 non-null float64\n", + " 7 pt_geom 21264 non-null object \n", + " 8 day_type 21265 non-null object \n", + " 9 route_id_list 21264 non-null object \n", + " 10 average_daily_boardings 21265 non-null float64\n", + " 11 average_daily_alightings 19087 non-null float64\n", + " 12 start_date 21265 non-null object \n", + " 13 end_date 21265 non-null object \n", + "dtypes: float64(4), object(10)\n", + "memory usage: 2.3+ MB\n" + ] + } + ], + "source": [ + "ridership_trips_routes_weekday.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "02ded3e0-8d73-4577-ab83-eac497b63673", + "metadata": {}, + "outputs": [], + "source": [ + "# Drop rows with missing pt_geom\n", + "ridership_trips_routes_weekday = ridership_trips_routes_weekday[\n", + " ridership_trips_routes_weekday['pt_geom'].notna() & \n", + " (ridership_trips_routes_weekday['pt_geom'] != 'nan')\n", + "].copy()\n", + "\n", + "ridership_trips_routes_saturday = ridership_trips_routes_saturday[\n", + " ridership_trips_routes_saturday['pt_geom'].notna() & \n", + " (ridership_trips_routes_saturday['pt_geom'] != 'nan')\n", + "].copy()\n", + "\n", + "ridership_trips_routes_sunday = ridership_trips_routes_sunday[\n", + " ridership_trips_routes_sunday['pt_geom'].notna() & \n", + " (ridership_trips_routes_sunday['pt_geom'] != 'nan')\n", + "].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "fc371c6b-1e27-41e7-9e4d-130acdbf4154", + "metadata": {}, + "outputs": [], + "source": [ + "# Ensure pt_geom is string type\n", + "ridership_trips_routes_weekday['pt_geom'] = ridership_trips_routes_weekday['pt_geom'].astype(str)\n", + "ridership_trips_routes_saturday['pt_geom'] = ridership_trips_routes_saturday['pt_geom'].astype(str)\n", + "ridership_trips_routes_sunday['pt_geom'] = ridership_trips_routes_sunday['pt_geom'].astype(str)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a47e7dfa-f157-4e0e-b779-c559ead48ecc", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert pt_geom column from WKT to shapely geometry\n", + "ridership_trips_routes_weekday['geometry'] = ridership_trips_routes_weekday['pt_geom'].apply(wkt.loads)\n", + "ridership_trips_routes_saturday['geometry'] = ridership_trips_routes_saturday['pt_geom'].apply(wkt.loads)\n", + "ridership_trips_routes_sunday['geometry'] = ridership_trips_routes_sunday['pt_geom'].apply(wkt.loads)\n", + "\n", + "# Create a GeoDataFrame\n", + "gdf_ridership = gpd.GeoDataFrame(ridership_trips_routes_weekday, geometry='geometry')\n", + "gdf_ridership_saturday = gpd.GeoDataFrame(ridership_trips_routes_saturday, geometry='geometry')\n", + "gdf_ridership_sunday = gpd.GeoDataFrame(ridership_trips_routes_sunday, geometry='geometry')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1d07604c-8bb0-4f11-b188-b7753fab5b50", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeaverage_daily_boardingsaverage_daily_alightingsstart_dateend_dategeometry
0Samtransdb97cc02836aa5f0cf647d80160b23ec3450171000 El Camino Real-Menlo College34501764.01.0POINT(-122.191284 37.457543)Sunday8.80000015.6000002025-08-012025-08-31POINT (-122.19128 37.45754)
1Golden Gate Transitde77cb40e92fb47fa8d16228977cfb86404691011 Andersen Dr404694.01.0POINT(-122.504252 37.955391)Sunday1.5000000.0000002025-09-012025-09-30POINT (-122.50425 37.95539)
2Long Beach Transitcddd375786d835389a7beb963236990735510th & Long Beach NW035532.01.0POINT(-118.189862 33.779026)Sunday2.30062026.4056522024-07-012025-06-30POINT (-118.18986 33.77903)
3Long Beach Transitcddd375786d835389a7beb963236990735610th & Pine NW035664.01.0POINT(-118.192676 33.779068)Sunday98.58971676.0278692024-07-012025-06-30POINT (-118.19268 33.77907)
4SDMTS1fff52f9349da228c56eef492df5001b1165610th Av & Broadway11656120.02.0POINT(-117.15566399 32.7159774)Sunday46.28799239.8111452024-09-012025-01-25POINT (-117.15566 32.71598)
.............................................
12316Caltrainf189d5677d4a106b98585f3c5d4fd42c70091San MateoNaN33.01.0POINT(-122.323851 37.568087)Sunday478.543508NaN2023-11-012025-07-31POINT (-122.32385 37.56809)
12317Caltrainf189d5677d4a106b98585f3c5d4fd42c70241Santa ClaraNaN33.01.0POINT(-121.93608 37.353238)Sunday387.793441NaN2023-11-012025-07-31POINT (-121.93608 37.35324)
12318Caltrainf189d5677d4a106b98585f3c5d4fd42c70041South San FranciscoNaN33.01.0POINT(-122.404979051 37.655941395)Sunday163.026362NaN2023-11-012025-07-31POINT (-122.40498 37.65594)
12319Caltrainf189d5677d4a106b98585f3c5d4fd42c70221SunnyvaleNaN33.01.0POINT(-122.031372 37.378916)Sunday593.758215NaN2023-11-012025-07-31POINT (-122.03137 37.37892)
12320Caltrainf189d5677d4a106b98585f3c5d4fd42c70271TamienNaN17.01.0POINT(-121.883721 37.31174)Sunday43.960035NaN2023-11-012025-07-31POINT (-121.88372 37.31174)
\n", + "

12315 rows × 14 columns

\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id \\\n", + "0 Samtrans db97cc02836aa5f0cf647d80160b23ec 345017 \n", + "1 Golden Gate Transit de77cb40e92fb47fa8d16228977cfb86 40469 \n", + "2 Long Beach Transit cddd375786d835389a7beb9632369907 355 \n", + "3 Long Beach Transit cddd375786d835389a7beb9632369907 356 \n", + "4 SDMTS 1fff52f9349da228c56eef492df5001b 11656 \n", + "... ... ... ... \n", + "12316 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70091 \n", + "12317 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70241 \n", + "12318 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70041 \n", + "12319 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70221 \n", + "12320 Caltrain f189d5677d4a106b98585f3c5d4fd42c 70271 \n", + "\n", + " stop_name stop_code n_arrivals n_routes \\\n", + "0 1000 El Camino Real-Menlo College 345017 64.0 1.0 \n", + "1 1011 Andersen Dr 40469 4.0 1.0 \n", + "2 10th & Long Beach NW 0355 32.0 1.0 \n", + "3 10th & Pine NW 0356 64.0 1.0 \n", + "4 10th Av & Broadway 11656 120.0 2.0 \n", + "... ... ... ... ... \n", + "12316 San Mateo NaN 33.0 1.0 \n", + "12317 Santa Clara NaN 33.0 1.0 \n", + "12318 South San Francisco NaN 33.0 1.0 \n", + "12319 Sunnyvale NaN 33.0 1.0 \n", + "12320 Tamien NaN 17.0 1.0 \n", + "\n", + " pt_geom day_type average_daily_boardings \\\n", + "0 POINT(-122.191284 37.457543) Sunday 8.800000 \n", + "1 POINT(-122.504252 37.955391) Sunday 1.500000 \n", + "2 POINT(-118.189862 33.779026) Sunday 2.300620 \n", + "3 POINT(-118.192676 33.779068) Sunday 98.589716 \n", + "4 POINT(-117.15566399 32.7159774) Sunday 46.287992 \n", + "... ... ... ... \n", + "12316 POINT(-122.323851 37.568087) Sunday 478.543508 \n", + "12317 POINT(-121.93608 37.353238) Sunday 387.793441 \n", + "12318 POINT(-122.404979051 37.655941395) Sunday 163.026362 \n", + "12319 POINT(-122.031372 37.378916) Sunday 593.758215 \n", + "12320 POINT(-121.883721 37.31174) Sunday 43.960035 \n", + "\n", + " average_daily_alightings start_date end_date \\\n", + "0 15.600000 2025-08-01 2025-08-31 \n", + "1 0.000000 2025-09-01 2025-09-30 \n", + "2 26.405652 2024-07-01 2025-06-30 \n", + "3 76.027869 2024-07-01 2025-06-30 \n", + "4 39.811145 2024-09-01 2025-01-25 \n", + "... ... ... ... \n", + "12316 NaN 2023-11-01 2025-07-31 \n", + "12317 NaN 2023-11-01 2025-07-31 \n", + "12318 NaN 2023-11-01 2025-07-31 \n", + "12319 NaN 2023-11-01 2025-07-31 \n", + "12320 NaN 2023-11-01 2025-07-31 \n", + "\n", + " geometry \n", + "0 POINT (-122.19128 37.45754) \n", + "1 POINT (-122.50425 37.95539) \n", + "2 POINT (-118.18986 33.77903) \n", + "3 POINT (-118.19268 33.77907) \n", + "4 POINT (-117.15566 32.71598) \n", + "... ... \n", + "12316 POINT (-122.32385 37.56809) \n", + "12317 POINT (-121.93608 37.35324) \n", + "12318 POINT (-122.40498 37.65594) \n", + "12319 POINT (-122.03137 37.37892) \n", + "12320 POINT (-121.88372 37.31174) \n", + "\n", + "[12315 rows x 14 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Set CRS (assuming WGS84)\n", + "gdf_ridership.set_crs(epsg=4326, inplace=True)\n", + "gdf_ridership_saturday.set_crs(epsg=4326, inplace=True)\n", + "gdf_ridership_sunday.set_crs(epsg=4326, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "29888876-97a7-4462-9149-7a19ba540104", + "metadata": {}, + "outputs": [], + "source": [ + "# Reproject to match census tracts CRS\n", + "gdf_ridership = gdf_ridership.to_crs(tracts_ca_acs.crs)\n", + "gdf_ridership_saturday = gdf_ridership_saturday.to_crs(tracts_ca_acs.crs)\n", + "gdf_ridership_sunday = gdf_ridership_sunday.to_crs(tracts_ca_acs.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "806da12f-9cf6-4306-81c0-dd057f31d8a9", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "stop_buffered = gdf_ridership.copy()\n", + "stop_buffered_saturday = gdf_ridership_saturday.copy()\n", + "stop_buffered_sunday = gdf_ridership_sunday.copy()\n", + "\n", + "stop_buffered[\"geometry\"] = stop_buffered.geometry.buffer(404.672)\n", + "stop_buffered_saturday[\"geometry\"] = stop_buffered_saturday.geometry.buffer(404.672)\n", + "stop_buffered_sunday[\"geometry\"] = stop_buffered_sunday.geometry.buffer(404.672)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "bbec8fe2-2ae9-4057-b89a-b896e6065c0a", + "metadata": {}, + "outputs": [], + "source": [ + "# Inner join with ACS data on 'geo_id'\n", + "tracts_ca_acs = tracts_ca_acs.merge(jobdata, on = 'GEOID', how='left')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "3167fe7f-a5dd-4350-af61-77c01a4eb8d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "Name: NAD83 / California Albers\n", + "Axis Info [cartesian]:\n", + "- X[east]: Easting (metre)\n", + "- Y[north]: Northing (metre)\n", + "Area of Use:\n", + "- name: United States (USA) - California.\n", + "- bounds: (-124.45, 32.53, -114.12, 42.01)\n", + "Coordinate Operation:\n", + "- name: California Albers\n", + "- method: Albers Equal Area\n", + "Datum: North American Datum 1983\n", + "- Ellipsoid: GRS 1980\n", + "- Prime Meridian: Greenwich" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tracts_ca_acs.crs" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "8a9a2022-eb39-4fba-b76c-33f2fe8b7479", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Index: 21264 entries, 0 to 21264\n", + "Data columns (total 15 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 organization_name 21264 non-null object \n", + " 1 feed_key 21264 non-null object \n", + " 2 stop_id 21264 non-null object \n", + " 3 stop_name 21264 non-null object \n", + " 4 stop_code 20543 non-null object \n", + " 5 n_arrivals 21264 non-null float64 \n", + " 6 n_routes 21264 non-null float64 \n", + " 7 pt_geom 21264 non-null object \n", + " 8 day_type 21264 non-null object \n", + " 9 route_id_list 21264 non-null object \n", + " 10 average_daily_boardings 21264 non-null float64 \n", + " 11 average_daily_alightings 19087 non-null float64 \n", + " 12 start_date 21264 non-null object \n", + " 13 end_date 21264 non-null object \n", + " 14 geometry 21264 non-null geometry\n", + "dtypes: float64(4), geometry(1), object(10)\n", + "memory usage: 2.6+ MB\n" + ] + } + ], + "source": [ + "stop_buffered.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "41157912-0ead-4261-9624-042522e122a8", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect = gpd.overlay(\n", + " stop_buffered, \n", + " tracts_ca_acs, \n", + " how='intersection', \n", + " keep_geom_type=True\n", + ")\n", + "\n", + "\n", + "geometry_intersect_saturday = gpd.overlay(\n", + " stop_buffered_saturday, \n", + " tracts_ca_acs, \n", + " how='intersection', \n", + " keep_geom_type=True\n", + ")\n", + "\n", + "\n", + "geometry_intersect_sunday = gpd.overlay(\n", + " stop_buffered_sunday, \n", + " tracts_ca_acs, \n", + " how='intersection', \n", + " keep_geom_type=True\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "43735de5-8b17-42de-8fc9-85f82cf89bf1", + "metadata": {}, + "outputs": [], + "source": [ + "# Calculate intersected area\n", + "geometry_intersect['area_2'] = geometry_intersect.geometry.area\n", + "geometry_intersect_saturday['area_2'] = geometry_intersect_saturday.geometry.area\n", + "geometry_intersect_sunday['area_2'] = geometry_intersect_sunday.geometry.area\n", + "\n", + "# Calculate the proportion of the tract that intersects each stop\n", + "geometry_intersect['area_ratio'] = geometry_intersect['area_2'] / geometry_intersect['area_m2']\n", + "geometry_intersect_saturday['area_ratio'] = geometry_intersect_saturday['area_2'] / geometry_intersect_saturday['area_m2']\n", + "geometry_intersect_sunday['area_ratio'] = geometry_intersect_sunday['area_2'] / geometry_intersect_sunday['area_m2']" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "1a1d6c3d-e4a0-4bf1-b1a7-130fb18f336e", + "metadata": {}, + "outputs": [], + "source": [ + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'poverty_pop', 'non_us_citizen', 'workers_with_no_car', \n", + " 'households_with_no_cars', 'disabled_pop', 'public_asst_pop', \n", + " 'inc_extremelylow', 'inc_verylow', 'inc_low', \n", + " 'male_seniors', 'female_seniors', 'veteran_pop', 'male_youth', 'inc_total_lowincome', 'female_youth', 'total_seniors', 'jobs_tot', 'total_youth', 'ALAND'\n", + "]\n", + "\n", + "# Apply area_ratio\n", + "for col in cols_to_weight:\n", + " geometry_intersect[f'{col}_adj'] = geometry_intersect[col] * geometry_intersect['area_ratio']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_saturday[f'{col}_adj'] = geometry_intersect_saturday[col] * geometry_intersect_saturday['area_ratio']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_sunday[f'{col}_adj'] = geometry_intersect_sunday[col] * geometry_intersect_sunday['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "203d6f46-a2f3-4b5c-b557-4ab2583a1441", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Gold Coast Transit', 'Samtrans', 'SDMTS', 'Fresno County',\n", + " 'SacRT Bus', 'Orange County Transportation Authority',\n", + " 'Long Beach Transit', 'Foothill Transit',\n", + " 'Golden Gate Park Shuttle', 'Big Blue Bus', 'Culver City Bus',\n", + " 'Riverside Transit', 'Caltrain', 'City of Burbank'], dtype=object)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "geometry_intersect.organization_name.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "a39eacf0-644e-4956-a252-e6029f08d01b", + "metadata": {}, + "outputs": [], + "source": [ + "stop_acs_rollup = geometry_intersect.groupby(\n", + " ['feed_key', 'stop_id', 'organization_name'], \n", + " as_index=False\n", + ")[[f'{col}_adj' for col in cols_to_weight]].sum()\n", + "\n", + "stop_acs_rollup_saturday = geometry_intersect_saturday.groupby(\n", + " ['feed_key', 'stop_id', 'organization_name'], \n", + " as_index=False\n", + ")[[f'{col}_adj' for col in cols_to_weight]].sum()\n", + "\n", + "stop_acs_rollup_sunday = geometry_intersect_sunday.groupby(\n", + " ['feed_key', 'stop_id', 'organization_name'], \n", + " as_index=False\n", + ")[[f'{col}_adj' for col in cols_to_weight]].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "3246e8fd-fda2-4e23-a2ab-fa04280256b7", + "metadata": {}, + "outputs": [], + "source": [ + "stop_route_df = gdf_ridership.merge(\n", + " stop_acs_rollup,\n", + " on=['feed_key', 'stop_id','organization_name'],\n", + " how='left'\n", + ")\n", + "\n", + "\n", + "stop_route_df_saturday = gdf_ridership_saturday.merge(\n", + " stop_acs_rollup_saturday,\n", + " on=['feed_key', 'stop_id','organization_name'],\n", + " how='left'\n", + ")\n", + "\n", + "stop_route_df_sunday = gdf_ridership_sunday.merge(\n", + " stop_acs_rollup_sunday,\n", + " on=['feed_key', 'stop_id','organization_name'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "740b84e5-b090-4285-bd3f-081869e2deb6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 21264 entries, 0 to 21263\n", + "Data columns (total 35 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 organization_name 21264 non-null object \n", + " 1 feed_key 21264 non-null object \n", + " 2 stop_id 21264 non-null object \n", + " 3 stop_name 21264 non-null object \n", + " 4 stop_code 20543 non-null object \n", + " 5 n_arrivals 21264 non-null float64 \n", + " 6 n_routes 21264 non-null float64 \n", + " 7 pt_geom 21264 non-null object \n", + " 8 day_type 21264 non-null object \n", + " 9 route_id_list 21264 non-null object \n", + " 10 average_daily_boardings 21264 non-null float64 \n", + " 11 average_daily_alightings 19087 non-null float64 \n", + " 12 start_date 21264 non-null object \n", + " 13 end_date 21264 non-null object \n", + " 14 geometry 21264 non-null geometry\n", + " 15 total_pop_adj 21264 non-null float64 \n", + " 16 poverty_pop_adj 21264 non-null float64 \n", + " 17 non_us_citizen_adj 21264 non-null float64 \n", + " 18 workers_with_no_car_adj 21264 non-null float64 \n", + " 19 households_with_no_cars_adj 21264 non-null float64 \n", + " 20 disabled_pop_adj 21264 non-null float64 \n", + " 21 public_asst_pop_adj 21264 non-null float64 \n", + " 22 inc_extremelylow_adj 21264 non-null float64 \n", + " 23 inc_verylow_adj 21264 non-null float64 \n", + " 24 inc_low_adj 21264 non-null float64 \n", + " 25 male_seniors_adj 21264 non-null float64 \n", + " 26 female_seniors_adj 21264 non-null float64 \n", + " 27 veteran_pop_adj 21264 non-null float64 \n", + " 28 male_youth_adj 21264 non-null float64 \n", + " 29 inc_total_lowincome_adj 21264 non-null float64 \n", + " 30 female_youth_adj 21264 non-null float64 \n", + " 31 total_seniors_adj 21264 non-null float64 \n", + " 32 jobs_tot_adj 21264 non-null float64 \n", + " 33 total_youth_adj 21264 non-null float64 \n", + " 34 ALAND_adj 21264 non-null float64 \n", + "dtypes: float64(24), geometry(1), object(10)\n", + "memory usage: 5.7+ MB\n" + ] + } + ], + "source": [ + "stop_route_df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "a78ac3a9-9373-4adb-bcea-8cba82820b10", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Gold Coast Transit', 'Samtrans', 'SDMTS', 'Fresno County',\n", + " 'SacRT Bus', 'Orange County Transportation Authority',\n", + " 'Long Beach Transit', 'Foothill Transit',\n", + " 'Golden Gate Park Shuttle', 'Big Blue Bus', 'Culver City Bus',\n", + " 'Riverside Transit', 'Caltrain', 'City of Burbank'], dtype=object)" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stop_route_df.organization_name.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "b067dde4-2044-45b8-8234-8ada3f868bda", + "metadata": {}, + "outputs": [], + "source": [ + "stop_route_df = gpd.GeoDataFrame(\n", + " stop_route_df, \n", + " geometry='geometry', \n", + " crs=geometry_intersect.crs\n", + ")\n", + "\n", + "\n", + "stop_route_df_saturday = gpd.GeoDataFrame(\n", + " stop_route_df_saturday, \n", + " geometry='geometry', \n", + " crs=geometry_intersect_saturday.crs\n", + ")\n", + "\n", + "stop_route_df_sunday = gpd.GeoDataFrame(\n", + " stop_route_df_sunday, \n", + " geometry='geometry', \n", + " crs=geometry_intersect_sunday.crs\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "a7e7e776-72b1-4092-9ec7-cc800a4e1595", + "metadata": {}, + "outputs": [], + "source": [ + "# Store data in warehouse\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df.parquet\", \"wb\") as f:\n", + " stop_route_df.to_parquet(f, index=False)\n", + "\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df_saturday.parquet\", \"wb\") as f:\n", + " stop_route_df_saturday.to_parquet(f, index=False)\n", + "\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df_sunday.parquet\", \"wb\") as f:\n", + " stop_route_df_sunday.to_parquet(f, index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9705c91c-6a8c-4e4f-86a5-39e8dbf99f14", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57b34d5a-ca96-48be-98e4-83eac8a3ceae", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/07_Model_exploration.ipynb b/ahsc_grant/ahsc_grant_cycle2/07_Model_exploration.ipynb new file mode 100644 index 000000000..8d4480107 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/07_Model_exploration.ipynb @@ -0,0 +1,1349 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5e29508b-a83d-4db6-8169-bc02716376c3", + "metadata": {}, + "source": [ + "Ridership ≈ Service × Demand × Accessibility" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "680b8ce3-5e22-4c9d-ad18-a46748b6f1b6", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "pd.set_option('display.max_columns', None)\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "import statsmodels.api as sm\n", + "import numpy as np\n", + "from scipy.stats import skew\n", + "\n", + "\n", + "import statsmodels.api as sm\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0b8ddae9-3e5b-4ac3-91cd-c09460c4485f", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "be790e00-9dc6-4977-95de-b6bba8507a54", + "metadata": {}, + "outputs": [], + "source": [ + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df.parquet\", \"rb\") as f: \n", + " stop_route_df = gpd.read_parquet(f)\n", + "\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df_saturday.parquet\", \"rb\") as f: \n", + " stop_route_df_saturday = gpd.read_parquet(f)\n", + "\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df_sunday.parquet\", \"rb\") as f: \n", + " stop_route_df_sunday = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "faf985a0-8ade-4830-8eb6-739b1254e55c", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
organization_namefeed_keystop_idstop_namestop_coden_arrivalsn_routespt_geomday_typeroute_id_listaverage_daily_boardingsaverage_daily_alightingsstart_dateend_dategeometrytotal_pop_adjpoverty_pop_adjnon_us_citizen_adjworkers_with_no_car_adjhouseholds_with_no_cars_adjdisabled_pop_adjpublic_asst_pop_adjinc_extremelylow_adjinc_verylow_adjinc_low_adjmale_seniors_adjfemale_seniors_adjveteran_pop_adjmale_youth_adjinc_total_lowincome_adjfemale_youth_adjtotal_seniors_adjjobs_tot_adjtotal_youth_adjALAND_adj
0Gold Coast Transit3cb676436aad669e52042c0e97a9a051VNACLR1.None14.01.0POINT(-119.294028 34.343645)Weekday['16']0.000003.0000002025-05-012025-05-31POINT (64936.582 -407800.219)10.4252920.9796900.7394680.1000380.1128291.4413720.5454302.3061342.5486430.8944140.9924101.2706270.4800090.4765755.7491920.6565472.2630386.5887641.133122496201.411578
1Samtransdb97cc02836aa5f0cf647d80160b23ec3450171000 El Camino Real-Menlo College34501772.01.0POINT(-122.191284 37.457543)Weekday['ECR-216']9.5238124.5714292025-08-012025-08-31POINT (-193547.746 -59885.338)624.72688334.432788109.72683959.47456331.05358244.77415211.46135781.43454697.33639339.90440545.56769871.08202419.46645434.613280218.67534492.571414116.649722331.502428127.184694513409.572630
\n", + "
" + ], + "text/plain": [ + " organization_name feed_key stop_id \\\n", + "0 Gold Coast Transit 3cb676436aad669e52042c0e97a9a051 VNACLR1 \n", + "1 Samtrans db97cc02836aa5f0cf647d80160b23ec 345017 \n", + "\n", + " stop_name stop_code n_arrivals n_routes \\\n", + "0 . None 14.0 1.0 \n", + "1 1000 El Camino Real-Menlo College 345017 72.0 1.0 \n", + "\n", + " pt_geom day_type route_id_list \\\n", + "0 POINT(-119.294028 34.343645) Weekday ['16'] \n", + "1 POINT(-122.191284 37.457543) Weekday ['ECR-216'] \n", + "\n", + " average_daily_boardings average_daily_alightings start_date end_date \\\n", + "0 0.00000 3.000000 2025-05-01 2025-05-31 \n", + "1 9.52381 24.571429 2025-08-01 2025-08-31 \n", + "\n", + " geometry total_pop_adj poverty_pop_adj \\\n", + "0 POINT (64936.582 -407800.219) 10.425292 0.979690 \n", + "1 POINT (-193547.746 -59885.338) 624.726883 34.432788 \n", + "\n", + " non_us_citizen_adj workers_with_no_car_adj households_with_no_cars_adj \\\n", + "0 0.739468 0.100038 0.112829 \n", + "1 109.726839 59.474563 31.053582 \n", + "\n", + " disabled_pop_adj public_asst_pop_adj inc_extremelylow_adj \\\n", + "0 1.441372 0.545430 2.306134 \n", + "1 44.774152 11.461357 81.434546 \n", + "\n", + " inc_verylow_adj inc_low_adj male_seniors_adj female_seniors_adj \\\n", + "0 2.548643 0.894414 0.992410 1.270627 \n", + "1 97.336393 39.904405 45.567698 71.082024 \n", + "\n", + " veteran_pop_adj male_youth_adj inc_total_lowincome_adj female_youth_adj \\\n", + "0 0.480009 0.476575 5.749192 0.656547 \n", + "1 19.466454 34.613280 218.675344 92.571414 \n", + "\n", + " total_seniors_adj jobs_tot_adj total_youth_adj ALAND_adj \n", + "0 2.263038 6.588764 1.133122 496201.411578 \n", + "1 116.649722 331.502428 127.184694 513409.572630 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stop_route_df.head(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c232f5df-33b8-480d-bd83-2be29d3718d3", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert n_arrivals and n_routes to integer\n", + "stop_route_df['n_arrivals'] = stop_route_df['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df['n_routes'] = stop_route_df['n_routes'].fillna(0).astype(int)\n", + "stop_route_df_saturday['n_arrivals'] = stop_route_df_saturday['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df_saturday['n_routes'] = stop_route_df_saturday['n_routes'].fillna(0).astype(int)\n", + "stop_route_df_sunday['n_arrivals'] = stop_route_df_sunday['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df_sunday['n_routes'] = stop_route_df_sunday['n_routes'].fillna(0).astype(int)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "968fb96b-dfdd-41ae-8d1c-42b61d875f13", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 21264 entries, 0 to 21263\n", + "Data columns (total 35 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 organization_name 21264 non-null object \n", + " 1 feed_key 21264 non-null object \n", + " 2 stop_id 21264 non-null object \n", + " 3 stop_name 21264 non-null object \n", + " 4 stop_code 20543 non-null object \n", + " 5 n_arrivals 21264 non-null int64 \n", + " 6 n_routes 21264 non-null int64 \n", + " 7 pt_geom 21264 non-null object \n", + " 8 day_type 21264 non-null object \n", + " 9 route_id_list 21264 non-null object \n", + " 10 average_daily_boardings 21264 non-null float64 \n", + " 11 average_daily_alightings 19087 non-null float64 \n", + " 12 start_date 21264 non-null object \n", + " 13 end_date 21264 non-null object \n", + " 14 geometry 21264 non-null geometry\n", + " 15 total_pop_adj 21264 non-null float64 \n", + " 16 poverty_pop_adj 21264 non-null float64 \n", + " 17 non_us_citizen_adj 21264 non-null float64 \n", + " 18 workers_with_no_car_adj 21264 non-null float64 \n", + " 19 households_with_no_cars_adj 21264 non-null float64 \n", + " 20 disabled_pop_adj 21264 non-null float64 \n", + " 21 public_asst_pop_adj 21264 non-null float64 \n", + " 22 inc_extremelylow_adj 21264 non-null float64 \n", + " 23 inc_verylow_adj 21264 non-null float64 \n", + " 24 inc_low_adj 21264 non-null float64 \n", + " 25 male_seniors_adj 21264 non-null float64 \n", + " 26 female_seniors_adj 21264 non-null float64 \n", + " 27 veteran_pop_adj 21264 non-null float64 \n", + " 28 male_youth_adj 21264 non-null float64 \n", + " 29 inc_total_lowincome_adj 21264 non-null float64 \n", + " 30 female_youth_adj 21264 non-null float64 \n", + " 31 total_seniors_adj 21264 non-null float64 \n", + " 32 jobs_tot_adj 21264 non-null float64 \n", + " 33 total_youth_adj 21264 non-null float64 \n", + " 34 ALAND_adj 21264 non-null float64 \n", + "dtypes: float64(22), geometry(1), int64(2), object(10)\n", + "memory usage: 5.7+ MB\n" + ] + } + ], + "source": [ + "stop_route_df.info()" + ] + }, + { + "cell_type": "markdown", + "id": "c9738ec6-6efb-48cc-b323-77517d639525", + "metadata": {}, + "source": [ + "### Log-linear Regression Model" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "51b66e14-9371-46ab-810b-73e577b142aa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings R-squared: 0.056\n", + "Model: OLS Adj. R-squared: 0.056\n", + "Method: Least Squares F-statistic: 315.9\n", + "Date: Thu, 07 May 2026 Prob (F-statistic): 1.84e-264\n", + "Time: 22:21:26 Log-Likelihood: -1.5966e+05\n", + "No. Observations: 21264 AIC: 3.193e+05\n", + "Df Residuals: 21259 BIC: 3.194e+05\n", + "Df Model: 4 \n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const 3.1436 7.576 0.415 0.678 -11.707 17.994\n", + "n_arrivals 3.5922 0.108 33.355 0.000 3.381 3.803\n", + "n_routes -64.9546 4.398 -14.769 0.000 -73.575 -56.334\n", + "total_pop_adj -0.0216 0.004 -5.648 0.000 -0.029 -0.014\n", + "workers_with_no_car_adj 0.3872 0.050 7.781 0.000 0.290 0.485\n", + "==============================================================================\n", + "Omnibus: 69006.430 Durbin-Watson: 1.374\n", + "Prob(Omnibus): 0.000 Jarque-Bera (JB): 15961683023.492\n", + "Skew: 54.422 Prob(JB): 0.00\n", + "Kurtosis: 4246.065 Cond. No. 4.98e+03\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", + "[2] The condition number is large, 4.98e+03. This might indicate that there are\n", + "strong multicollinearity or other numerical problems.\n" + ] + } + ], + "source": [ + "# Log-linear regression\n", + "# Dependent variable: log('average_daily_boardings')\n", + "# Predictors: n_trips, n_routes, total_pop_adj, households_with_no_cars_adj, jobs_tot_adj\n", + "\n", + "# Copy the dataframe\n", + "df = stop_route_df.copy()\n", + "\n", + "# 2. Create log dependent variable\n", + "# Replace 0 with NaN BEFORE log (log(0) = -inf)\n", + "df['log_boardings'] = np.log(df['average_daily_boardings'].replace(0, np.nan))\n", + "\n", + "# 3. Select only rows with all needed variables\n", + "df = df.dropna(subset=[\n", + " 'average_daily_boardings',\n", + " 'n_arrivals',\n", + " 'n_routes',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj'\n", + "])\n", + "\n", + "# 4. Define Y and X\n", + "y = df['average_daily_boardings']\n", + "\n", + "X = df[['n_arrivals', 'n_routes',\n", + " 'total_pop_adj', 'workers_with_no_car_adj']]\n", + "\n", + "# 5. Add constant\n", + "X = sm.add_constant(X)\n", + "\n", + "# 6. Fit model\n", + "model = sm.OLS(y, X).fit()\n", + "\n", + "# 7. Show results\n", + "print(model.summary())" + ] + }, + { + "cell_type": "markdown", + "id": "ad40b63a-1a6f-4543-90f6-d009244e5d19", + "metadata": {}, + "source": [ + "- About 5.6% of the variation in dependent variable (here, stop-level ridership) is explained by the predictors in the model.\n", + "- 94.4% of the variation is due to other factors not captured by this model.\n", + "- Skew = 54.357 → Residuals are extremely asymmetric, violating normality.\n", + "- Kurtosis = 4235.968 → Residuals have ultra‑heavy tails, far from a normal distribution.\n", + "- JB statistic = 15 billion → The Jarque–Bera test overwhelmingly rejects normality.\n", + "- Durbin–Watson = 1.374 → Strong positive autocorrelation remains in the residuals.\n", + "- Condition number = 1.92e+04 → Predictors have scaling issues and possible multicollinearity." + ] + }, + { + "cell_type": "markdown", + "id": "e92ba749-d788-45fd-9376-ff4e16fcabc5", + "metadata": {}, + "source": [ + "### Checking Multicollinearity using VIF" + ] + }, + { + "cell_type": "markdown", + "id": "c15e07de-0e74-4dc8-b0c0-2bc6b4f272bf", + "metadata": {}, + "source": [ + "VIF checks multicollinearity (correlation among predictors)\n", + "\n", + "- Idea:\n", + "If a variable can be well explained by other predictors,\n", + "its coefficient becomes unstable and its standard error increases\n", + "- Interpretation:\n", + "VIF ≈ 1 → no correlation (good);\n", + "VIF > 5 → moderate concern;\n", + "VIF > 10 → serious multicollinearity\n", + "- Key point:\n", + "High VIF doesn't bias coefficients, but makes them noisy and hard to interpret" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "056483f9-31b4-4c1b-9248-1b2b2593a08d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " variable VIF\n", + "0 const 6.270724\n", + "1 n_arrivals 1.516624\n", + "2 n_routes 1.419337\n", + "3 total_pop_adj 1.694929\n", + "4 workers_with_no_car_adj 1.628169\n" + ] + } + ], + "source": [ + "# Selecting only numeric regressors (Ridership ≈ Service × Demand × Accessibility)\n", + "X = stop_route_df[\n", + " ['n_arrivals', 'n_routes', 'total_pop_adj', 'workers_with_no_car_adj']\n", + "].copy()\n", + "\n", + "# Add constant\n", + "X = sm.add_constant(X)\n", + "\n", + "vif_df = pd.DataFrame()\n", + "vif_df[\"variable\"] = X.columns\n", + "vif_df[\"VIF\"] = [\n", + " variance_inflation_factor(X.values, i)\n", + " for i in range(X.shape[1])\n", + "]\n", + "\n", + "print(vif_df)" + ] + }, + { + "cell_type": "markdown", + "id": "168eabd3-b429-4cb9-b10d-1049eb9b0581", + "metadata": {}, + "source": [ + "All predictors have low VIFs (≈1–1.8), which means very little multicollinearity among chosen variables.\n", + "The model’s coefficients should therefore be stable and interpretable, with no inflation of standard errors.\n", + "The high VIF on the constant is not meaningful and can be ignored." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0dc85524-799b-4f3d-a98f-9d414c63cd0d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 21264.000000\n", + "mean 43.375367\n", + "std 454.066948\n", + "min 0.000000\n", + "25% 2.000000\n", + "50% 6.880785\n", + "75% 21.795550\n", + "max 41893.868537\n", + "Name: average_daily_boardings, dtype: float64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stop_route_df['average_daily_boardings'].describe()" + ] + }, + { + "cell_type": "markdown", + "id": "89c7f80e-f8ae-4207-9ede-f719f75434ce", + "metadata": {}, + "source": [ + "Data is highly skewed (28.63) .\n", + "Skewed data is data that isn’t evenly distributed around the center, values bunch up on one side and stretch into a long tail.\n", + "This means a few stops have very high boardings and push the distribution out into a long tail.\n", + "75% of stops board ≤ 20 people" + ] + }, + { + "cell_type": "markdown", + "id": "b0842ba3-4716-4acf-ba51-01fa3662fb3f", + "metadata": {}, + "source": [ + "Possible solution: Use a count model (Poisson or Negative Binomial) \n", + "Other models to check:\n", + "- Poisson\n", + "- Negative Binomial (handles overdispersion better)\n", + "- Zero‑inflated Poisson (if many zeros)\n", + "- Zero‑inflated NB (most flexible)" + ] + }, + { + "cell_type": "markdown", + "id": "6f9fc777-8170-4c3a-a3c3-9935bb8e1f44", + "metadata": {}, + "source": [ + "### Poisson Model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "262e95d5-41fe-4beb-8e7d-ff6d9e43be70", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 21264\n", + "Model: GLM Df Residuals: 21258\n", + "Model Family: Poisson Df Model: 5\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -1.3597e+06\n", + "Date: Thu, 07 May 2026 Deviance: 2.6409e+06\n", + "Time: 22:21:26 Pearson chi2: 3.05e+07\n", + "No. Iterations: 14 Pseudo R-squ. (CS): 1.000\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const 3.8183 0.002 1651.951 0.000 3.814 3.823\n", + "n_arrivals 0.0254 1.69e-05 1504.212 0.000 0.025 0.025\n", + "n_routes -1.3075 0.002 -842.797 0.000 -1.311 -1.304\n", + "total_pop_adj -3.245e-05 1.44e-06 -22.539 0.000 -3.53e-05 -2.96e-05\n", + "workers_with_no_car_adj 0.0011 5.58e-06 195.682 0.000 0.001 0.001\n", + "poverty_pop_adj 0.0006 5.57e-06 104.641 0.000 0.001 0.001\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "# Copy the dataset\n", + "df = stop_route_df.copy()\n", + "\n", + "# 2. Select needed variables (drop missing)\n", + "df = df.dropna(subset=[\n", + " 'average_daily_boardings',\n", + " 'n_arrivals', 'n_routes',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'poverty_pop_adj'\n", + "])\n", + "\n", + "# 3. Define Y and X\n", + "y = df['average_daily_boardings']\n", + "\n", + "X = df[['n_arrivals', 'n_routes',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'poverty_pop_adj']]\n", + "\n", + "# 4. Add intercept\n", + "X = sm.add_constant(X)\n", + "\n", + "# 5. Fit Poisson GLM\n", + "poisson_model = sm.GLM(y, X, family=sm.families.Poisson()).fit()\n", + "\n", + "# 6. Output summary\n", + "print(poisson_model.summary())\n" + ] + }, + { + "cell_type": "markdown", + "id": "3b8e82ab-6589-4803-b598-54970d084eff", + "metadata": {}, + "source": [ + "This Poisson model fits very poorly: the Pearson chi‑square is huge, meaning the data are heavily over‑dispersed and the Poisson assumptions break.\n", + "- The coefficient for n_arrivals (0.0253) means each extra trip increases expected ridership by about 2.5%.\n", + "- n_routes (-1.3051) is negative, which is unrealistic and indicates model misspecification due to over‑dispersion.\n", + "- total_pop_adj is negative, also unrealistic — another sign the Poisson model is not appropriate.\n", + "- workers_with_no_car_adj is positive, meaning more zero‑car households predict higher ridership.\n", + "- poverty_pop_adj is positive, meaning as the adjusted population living below the poverty level increases in a transit agency’s service area, ridership tends to increase.\n", + "Overall: the Poisson model’s signs are distorted." + ] + }, + { + "cell_type": "markdown", + "id": "038cea10-05be-4cbe-9359-a174e014d6b3", + "metadata": {}, + "source": [ + "Pearson chi‑square = 3.09e+07 and Degrees of freedom ≈ 21264.\n", + "Hence, \n", + "Dispersion estimate = Pearson χ² / df; 3.09e+07 / 21264 ≈ 1453.5\n", + "\n", + "A valid Poisson model should have dispersion ≈ 1. Dispersion ≈ 1453.5, which means:\n", + "Poisson model is severely overdispersed. >1 → overdispersion (variance is larger than the model assumes).\n", + "\n", + "Variance >> mean:\n", + "- Poisson standard errors become too small\n", + "- p‑values become artificially tiny\n", + "- coefficients look falsely “precise”\n", + "- model fit is misleading\"" + ] + }, + { + "cell_type": "markdown", + "id": "bf8627ce-e380-417d-b5db-5382b8e35162", + "metadata": {}, + "source": [ + "### Negative Binomial Model" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5634e0ff-f06d-4dce-ba8d-010a1f04f039", + "metadata": {}, + "outputs": [], + "source": [ + "stop_route_df_selected_org = stop_route_df[\n", + " stop_route_df['organization_name'].isin([\n", + " 'SamTrans',\n", + " 'Golden Gate Transit',\n", + " 'Long Beach Transit',\n", + " 'SDMTS',\n", + " 'Golden Gate Park Shuttle',\n", + " 'Fresno County',\n", + " 'San Francisco Bay Area Rapid Transit District',\n", + " 'Big Blue Bus',\n", + " 'Caltrain',\n", + " 'Culver City Bus',\n", + " 'Foothill Transit',\n", + " 'Riverside Transit'\n", + " ])\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "252de74b-d050-4c06-b526-3110aff74815", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 12797\n", + "Model: GLM Df Residuals: 12789\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -52346.\n", + "Date: Thu, 07 May 2026 Deviance: 21484.\n", + "Time: 22:21:27 Pearson chi2: 1.19e+05\n", + "No. Iterations: 31 Pseudo R-squ. (CS): 0.8685\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const -3.0386 0.053 -57.581 0.000 -3.142 -2.935\n", + "n_routes -0.1565 0.013 -11.624 0.000 -0.183 -0.130\n", + "log_arrivals 1.7482 0.016 108.591 0.000 1.717 1.780\n", + "total_pop_adj 0.0003 4.09e-05 8.419 0.000 0.000 0.000\n", + "workers_with_no_car_adj 0.0049 0.000 23.070 0.000 0.004 0.005\n", + "total_youth_adj 0.0008 4.73e-05 16.885 0.000 0.001 0.001\n", + "inc_total_lowincome_adj -0.0008 6.77e-05 -12.094 0.000 -0.001 -0.001\n", + "total_seniors_adj -0.0014 0.000 -11.872 0.000 -0.002 -0.001\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "# Copy the dataset\n", + "df = stop_route_df_selected_org.copy()\n", + "y = df['average_daily_boardings']\n", + "df[\"log_arrivals\"] = np.log(df[\"n_arrivals\"] + 1)\n", + "X = df[['n_routes', 'log_arrivals',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'inc_total_lowincome_adj', 'total_seniors_adj']]\n", + "\n", + "# 4. Add intercept\n", + "X = sm.add_constant(X)\n", + "\n", + "# Same X and y as Poisson\n", + "nb_model_extended_final = sm.GLM(\n", + " y,\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(nb_model_extended_final.summary())" + ] + }, + { + "cell_type": "markdown", + "id": "f2038998-3c28-4fe5-ad47-a4560787d1d6", + "metadata": {}, + "source": [ + "### Negative Binomial Model " + ] + }, + { + "cell_type": "markdown", + "id": "9543a788-bd4d-45dd-88fa-a012f6ac8486", + "metadata": {}, + "source": [ + "The Negative Binomial model behaves much better than the Poisson model because it corrects the strongly overdispersed nature of ridership data. After switching to a Negative Binomial model, the dispersion dropped to a reasonable level (≈5), the standard errors became realistic, the z‑values returned to interpretable ranges, and the overall fit stabilized. \n", + "\n", + "\n", + "The NB model is used when:\n", + "- counts vary wildly\n", + "- some stops have way more riders than others\n", + "- data is highly skewed\n", + "- there are outliers or “hot spots”\n", + "\n", + "Variance > Mean\n", + "This matches real transit ridership perfectly." + ] + }, + { + "cell_type": "markdown", + "id": "b4aa8620-a1ba-4cd0-88ba-4b45a3d8ac3a", + "metadata": {}, + "source": [ + "In the above model,\n", + "Pseudo R² (Cragg‑Uhler / Nagelkerke): 0.8978\n", + "Very high — the predictors explain a large proportion of the variation in ridership.\n", + "For transit ridership data (often noisy and over‑dispersed), this is exceptionally strong.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "9d86c3c2-ba00-4f62-b433-350da6fb93d1", + "metadata": {}, + "source": [ + "### Variables Interpretation" + ] + }, + { + "cell_type": "markdown", + "id": "3398af4b-6234-48ea-9200-e06d402865fe", + "metadata": {}, + "source": [ + "1. n_arrivals coefficient = 0.0425\n", + "Interpretation: Each additional trip serving the stop increases expected daily boardings by:\n", + "exp(0.0425) − 1 ≈ 4.34%\n", + "\n", + "2. n_routes coefficient = 0.1426\n", + "Interpretation: For stops/agencies where n_routes_effective > 0 (aggregated stop-level data), each additional route increases expected daily boardings by:\n", + "exp(0.1426)−1 ≈ 15.34%\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "22118574-ccbb-47ac-ad85-a92cc2babf7d", + "metadata": {}, + "source": [ + "3. total_pop_adj – Population in stop buffer\n", + "total_pop_adj represents the estimated number of residents physically inside a stop’s 600 m buffer, after adjusting each census tract by the fraction of its area that overlaps the buffer.\n", + "Example: if 10% of a tract lies inside a stop’s buffer, 10% of the tract’s population is assigned to that stop.\n", + "Coefficient interpretation:\n", + "Model coefficient: 8.518e-05\n", + "Effect per additional person: exp(8.518e-05)−1≈0.0085% increase in expected daily boardings per person\n", + "\n", + " This looks tiny for one person, but stop buffers usually contain hundreds or thousands of people.\n", + " Scaling to realistic population changes:\n", + "\n", + " +1,000 residents in the stop buffer: exp(1000×8.518e-05)−1 ≈ 8.89% increase in ridership\n", + " +10,000 residents in the stop buffer: exp(10,000×8.518e-05)−1 ≈ 134.4% increase in ridership" + ] + }, + { + "cell_type": "markdown", + "id": "6f10edb6-92ca-4719-8574-599c9b2139a1", + "metadata": {}, + "source": [ + "4. workers_with_no_car_adj (coef = 0.0002)\n", + "workers_with_no_car_adj is the estimated number of population that do not own a car within the stop catchment, computed the same area-weighted way.\n", + "\n", + "For each additional zero-car population in the catchment:\n", + "exp(0.0002) – 1 ≈ 0.02% increase in expected boardings\n", + "\n", + "- +100 zero-car population in buffer : ≈ 2.02% ridership increase\n", + "- +1,000 zero-car population : ≈ 22.1% ridership increase" + ] + }, + { + "cell_type": "markdown", + "id": "8b03bd41-06af-4a89-b626-d1a641665a4c", + "metadata": {}, + "source": [ + "5. total_youth_adj (coef = 0.0003)\n", + "total_youth_adj is the estimated number of youth population within the stop catchment, computed the same area-weighted way.\n", + "\n", + "For each additional youth population in the catchment:\n", + "exp(0.0003) – 1 ≈ 0.03% increase in expected boardings\n", + "\n", + "- +100 youths in buffer : ≈ 3.05% ridership increase\n", + "- +1,000 youths in buffer : ≈ 35.0% ridership increase" + ] + }, + { + "cell_type": "markdown", + "id": "6bc0cb46-12de-4a5d-bb88-ffb40890a497", + "metadata": {}, + "source": [ + "5. total_senior_adj (coef = 6.758e-06)\n", + "total_senior_adj is the estimated number of senior population within the stop catchment, computed the same area-weighted way.\n", + "\n", + "For each additional senior population in the catchment:\n", + "exp(6.758e-06) – 1 ≈ 0.000676% change in expected boardings\n", + "\n", + "- +100 seniors in buffer : ≈ 0.0676% ridership increase\n", + "- +1,000 seniors in buffer : ≈ 0.678% ridership increase\n", + "(Negligible effect),\n", + "\n", + "p = 0.782 → far greater than 0.05, meaning not statistically significant." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28e43141-f8c0-4761-8fde-bb30ef460a66", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "37ae94b4-579d-4a8c-b9d6-86212c7d9200", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "id": "aca27ba2-2c31-41fd-b97a-f441f1854cd8", + "metadata": {}, + "source": [ + "## Negative Binomial GLM (Log‑Link) Model Equation" + ] + }, + { + "cell_type": "markdown", + "id": "ef756a7a-2e7b-486d-b31a-d712d3252652", + "metadata": {}, + "source": [ + "The model estimates the expected daily boardings at stop *i* using a Negative Binomial\n", + "Generalized Linear Model with a log link.\n", + "\n", + "The linear predictor is:\n", + "\n", + "$$\n", + "\\log(\\mu_i) =\n", + "\\beta_0\n", + "+ \\beta_1 \\, (\\text{n\\_trips}_i)\n", + "+ \\beta_2 \\, (\\text{n\\_routes}_i)\n", + "+ \\beta_3 \\, (\\text{total\\_pop\\_adj}_i)\n", + "+ \\beta_4 \\, (\\text{workers\\_with\\_no\\_cars\\_adj}_i)\n", + "+ \\beta_5 \\, (\\text{total\\_youth\\_adj}_i)\n", + "+ \\beta_7 \\, (\\text{total\\_seniors\\_adj}_i)\n", + "$$\n", + "\n", + "Where the expected value of daily boardings is:\n", + "\n", + "$$\n", + "\\mu_i = E[\\text{average\\_daily\\_boardings}_i]\n", + "$$\n", + "\n", + "The outcome follows a Negative Binomial distribution:\n", + "\n", + "$$\n", + "Y_i \\sim \\text{NB}(\\mu_i, \\alpha)\n", + "$$\n", + "\n", + "The log link implies that predictor effects are multiplicative:\n", + "\n", + "$$\n", + "\\mu_i = \\exp\\left(\n", + "\\beta_0\n", + "+ \\beta_1 \\, \\text{n\\_trips}_i\n", + "+ \\beta_2 \\, \\text{n\\_routes}_i\n", + "+ \\beta_3 \\, \\text{total\\_pop\\_adj}_i\n", + "+ \\beta_4 \\, \\text{workers\\_with\\_no\\_cars\\_adj}_i\n", + "+ \\beta_5 \\, \\text{total\\_youth\\_adj}_i\n", + "+ \\beta_7 \\, \\text{total\\_seniors\\_adj}_i\n", + "\\right)\n", + "$$\n", + "\n", + "Statsmodels’ `GLM(..., family=NegativeBinomial())` uses a fixed dispersion parameter $\\alpha$\n", + "unless otherwise specified." + ] + }, + { + "cell_type": "markdown", + "id": "5fc3cc4c-400c-417f-9c06-19b009216815", + "metadata": {}, + "source": [ + "In log_linear ols regression model Y is continuous variable i.e. if n_trip has coefficient of 0.1 it means A one‑unit increase in trips increases the geometric mean of ridership by 10%.\n", + "While in this model: it means Each additional daily trip increases expected ridership by about 10%." + ] + }, + { + "cell_type": "markdown", + "id": "f71734cb-86ba-49cd-b4ff-2dd415d060e3", + "metadata": {}, + "source": [ + "1) Log-linear OLS model\n", + "Modeling log(ridership). \n", + "When the coefficient is 0.1, it means:\n", + "→ adding 1 trip increases ridership by about 10% on average (geometric mean).\n", + "2) Negative Binomial model\n", + "This model is built for count data (like number of riders).\n", + "A coefficient of 0.1 also means about a 10% increase, but interpreted as:\n", + "→ each extra trip increases the expected number of riders by 10%.\n", + "\n", + "They sound almost identical, but:\n", + "- Log-linear OLS focuses on modeling a transformed version of ridership (log scale). Talks about the geometric mean (a bit abstract)\n", + "Negative Binomial\n", + "- directly models counts (actual riders). Talks about expected ridership (more natural and realistic for counts)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47da5b71-14f7-42c6-9d62-fd8879173dc7", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "a305f1ed-6ea6-4ad0-8f7a-24a8dd792ede", + "metadata": {}, + "source": [ + "### Other Tests " + ] + }, + { + "cell_type": "markdown", + "id": "7b65d031-ff8d-4c1c-9325-bfed7a9a4cdc", + "metadata": {}, + "source": [ + "Total Jobs variable added" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "247a1b69-f5ff-4414-8e06-05a786d2b13c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " variable VIF\n", + "0 const 6.540345\n", + "1 n_arrivals 1.527074\n", + "2 n_routes 1.425634\n", + "3 total_pop_adj 24.129668\n", + "4 workers_with_no_car_adj 1.656851\n", + "5 total_youth_adj 2.516253\n", + "6 total_seniors_adj 3.064684\n", + "7 jobs_tot_adj 17.472264\n" + ] + } + ], + "source": [ + "# Selecting only numeric regressors (Ridership ≈ Service × Demand × Accessibility)\n", + "X = stop_route_df[\n", + " ['n_arrivals', 'n_routes', 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'total_seniors_adj', 'jobs_tot_adj']\n", + "].copy()\n", + "\n", + "# Add constant\n", + "X = sm.add_constant(X)\n", + "\n", + "vif_df = pd.DataFrame()\n", + "vif_df[\"variable\"] = X.columns\n", + "vif_df[\"VIF\"] = [\n", + " variance_inflation_factor(X.values, i)\n", + " for i in range(X.shape[1])\n", + "]\n", + "\n", + "print(vif_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "5b21ac3d-f52d-48c7-92cb-4cd40e14fda9", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 12797\n", + "Model: GLM Df Residuals: 12790\n", + "Model Family: NegativeBinomial Df Model: 6\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -53834.\n", + "Date: Thu, 07 May 2026 Deviance: 24462.\n", + "Time: 22:21:28 Pearson chi2: 1.06e+05\n", + "No. Iterations: 48 Pseudo R-squ. (CS): 0.8340\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "n_arrivals 0.0430 0.000 134.046 0.000 0.042 0.044\n", + "n_routes 0.3520 0.013 26.157 0.000 0.326 0.378\n", + "total_pop_adj -5.085e-05 4.31e-05 -1.180 0.238 -0.000 3.36e-05\n", + "workers_with_no_car_adj -9.209e-05 0.000 -0.466 0.642 -0.000 0.000\n", + "total_youth_adj 0.0011 5.12e-05 22.337 0.000 0.001 0.001\n", + "total_seniors_adj -0.0001 0.000 -1.085 0.278 -0.000 9.89e-05\n", + "jobs_tot_adj 0.0005 7.34e-05 6.630 0.000 0.000 0.001\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "X = df[['n_arrivals', 'n_routes',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'total_seniors_adj', 'jobs_tot_adj']]\n", + "\n", + "# Same X and y as Poisson\n", + "nb_model_extended = sm.GLM(\n", + " y,\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(nb_model_extended.summary())" + ] + }, + { + "cell_type": "markdown", + "id": "75c1f086-5bf3-448c-91cc-2617d4d750e8", + "metadata": {}, + "source": [ + "The addition of `jobs_tot_adj` into the model introduces **substantial multicollinearity**, as evidenced by very high VIF values for both `total_pop_adj` (VIF ≈ 28.96) and `jobs_tot_adj` (VIF ≈ 22.09). This indicates that these two variables are highly correlated, reflecting overlapping spatial characteristics: areas with higher population tend to also have higher employment.\n", + "\n", + "As a result, the model struggles to disentangle their individual effects. Specifically:\n", + "\n", + "`total_pop_adj` now has a coefficient of 8.343e-06 with a p-value of 0.416, making it statistically insignificant. Its effect on ridership cannot be reliably interpreted in the presence of `jobs_tot_adj`'.\n", + "`jobs_tot_adj` enters as a positive and significant predictor (coef = 0.0002, p < 0.001), absorbing much of the explanatory power that `total_pop_adj` previously provided.\n", + "\n", + "Other predictors, including 'n_arrivals', 'n_routes', and 'total_youth_adj', remain significant with interpretable effects, while 'total_seniors_adj' remains statistically insignificant.\n", + "\n", + "Despite only a marginal improvement in overall model fit (Pseudo R² increasing slightly from 0.8175 to 0.8179), the interpretability of individual coefficients, particularly for `total_pop_adj`, is reduced. In this specification, employment and population do not independently contribute to ridership; rather, they compete to explain the same underlying spatial variation. This demonstrates the importance of considering multicollinearity when interpreting coefficients in spatial ridership models." + ] + }, + { + "cell_type": "markdown", + "id": "5094c676-d3cf-4142-9319-0ef9eae98236", + "metadata": {}, + "source": [ + "### Saturday Model " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "600842e7-0e53-4423-9c58-8cc93738ab31", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 12315\n", + "Model: GLM Df Residuals: 12307\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -45084.\n", + "Date: Thu, 07 May 2026 Deviance: 22353.\n", + "Time: 22:21:28 Pearson chi2: 1.79e+06\n", + "No. Iterations: 100 Pseudo R-squ. (CS): 0.8679\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const -3.9238 0.056 -69.998 0.000 -4.034 -3.814\n", + "n_routes -0.0472 0.016 -3.026 0.002 -0.078 -0.017\n", + "log_arrivals 1.9336 0.019 102.563 0.000 1.897 1.971\n", + "total_pop_adj 0.0004 3.83e-05 10.594 0.000 0.000 0.000\n", + "workers_with_no_car_adj 0.0022 7.79e-05 28.504 0.000 0.002 0.002\n", + "total_youth_adj 0.0003 4.98e-05 6.417 0.000 0.000 0.000\n", + "inc_total_lowincome_adj -0.0006 6.39e-05 -9.235 0.000 -0.001 -0.000\n", + "total_seniors_adj -0.0018 0.000 -16.407 0.000 -0.002 -0.002\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "# Copy the dataset\n", + "df_saturday = stop_route_df_saturday.copy()\n", + "y = df_saturday['average_daily_boardings']\n", + "df_saturday[\"log_arrivals\"] = np.log(df_saturday[\"n_arrivals\"] + 1)\n", + "X = df_saturday[['n_routes', 'log_arrivals',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'inc_total_lowincome_adj', 'total_seniors_adj']]\n", + "\n", + "X = sm.add_constant(X)\n", + "\n", + "# Same X and y as Poisson\n", + "nb_model_extended_final_saturday = sm.GLM(\n", + " y,\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(nb_model_extended_final_saturday.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "160ceac9-640a-423e-a1d0-7200b356d813", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "98de5cbb-4867-4008-b91d-20269c1f4959", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'plt' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[17], line 7\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# predicted values from fixed-effects model\u001b[39;00m\n\u001b[1;32m 5\u001b[0m predicted \u001b[38;5;241m=\u001b[39m nb_model_extended_final_saturday\u001b[38;5;241m.\u001b[39mpredict()\n\u001b[0;32m----> 7\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241m.\u001b[39mfigure(figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m5\u001b[39m, \u001b[38;5;241m4\u001b[39m))\n\u001b[1;32m 9\u001b[0m plt\u001b[38;5;241m.\u001b[39mscatter(observed, predicted, alpha\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.7\u001b[39m)\n\u001b[1;32m 11\u001b[0m \u001b[38;5;66;03m# perfect fit line\u001b[39;00m\n", + "\u001b[0;31mNameError\u001b[0m: name 'plt' is not defined" + ] + } + ], + "source": [ + "# observed values\n", + "observed = df_saturday[\"average_daily_boardings\"]\n", + "\n", + "# predicted values from fixed-effects model\n", + "predicted = nb_model_extended_final_saturday.predict()\n", + "\n", + "plt.figure(figsize=(5, 4))\n", + "\n", + "plt.scatter(observed, predicted, alpha=0.7)\n", + "\n", + "# perfect fit line\n", + "max_val = max(observed.max(), predicted.max())\n", + "plt.plot([0, max_val], [0, max_val], color=\"red\", linestyle=\"--\")\n", + "\n", + "plt.xlabel(\"Observed Average Daily Boardings\")\n", + "plt.ylabel(\"Predicted Boardings\")\n", + "plt.title(\"Observed vs Predicted\")\n", + "plt.grid(True)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "0e7833d3-cd96-4751-b50b-4aa0367fa426", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 12315\n", + "Model: GLM Df Residuals: 12307\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -45084.\n", + "Date: Thu, 07 May 2026 Deviance: 22353.\n", + "Time: 22:22:58 Pearson chi2: 1.79e+06\n", + "No. Iterations: 100 Pseudo R-squ. (CS): 0.8679\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const -3.9238 0.056 -69.998 0.000 -4.034 -3.814\n", + "n_routes -0.0472 0.016 -3.026 0.002 -0.078 -0.017\n", + "log_arrivals 1.9336 0.019 102.563 0.000 1.897 1.971\n", + "total_pop_adj 0.0004 3.83e-05 10.594 0.000 0.000 0.000\n", + "workers_with_no_car_adj 0.0022 7.79e-05 28.504 0.000 0.002 0.002\n", + "total_youth_adj 0.0003 4.98e-05 6.417 0.000 0.000 0.000\n", + "inc_total_lowincome_adj -0.0006 6.39e-05 -9.235 0.000 -0.001 -0.000\n", + "total_seniors_adj -0.0018 0.000 -16.407 0.000 -0.002 -0.002\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "# Copy the dataset\n", + "df_sunday = stop_route_df_sunday.copy()\n", + "y = df_sunday['average_daily_boardings']\n", + "df_sunday[\"log_arrivals\"] = np.log(df_sunday[\"n_arrivals\"] + 1)\n", + "X = df_sunday[['n_routes', 'log_arrivals',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'inc_total_lowincome_adj', 'total_seniors_adj']]\n", + "\n", + "# 4. Add intercept\n", + "X = sm.add_constant(X)\n", + "\n", + "# Same X and y as Poisson\n", + "nb_model_extended_final_sunday = sm.GLM(\n", + " y,\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(nb_model_extended_final_sunday.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d94eb18-5835-47fc-81eb-acb1e0d02852", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Burbank_ridership.md b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Burbank_ridership.md new file mode 100644 index 000000000..fb4e92a15 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Burbank_ridership.md @@ -0,0 +1,64 @@ +# BurbankBus Ridership Modeling: Analytical Summary and Interpretation + +## Summary of Improvements Received from the Agency. +Three-year pilot system expansion of BurbankBus service with a new line (Blue Route), an extended line (Orange Route), and addition of weekend service on all lines +- Will add two new transit connections to the Downtown Metrolink station, which serves Metrolink’s Antelope Valley and Ventura County lines, Amtrak’s LOSSAN corridor, six Metro lines, Santa Clarita Transit, and Glendale Beeline +- Orange Route is the only transit connection from BUR airport to Metro rail (North Hollywood B Line); it currently does not run on weekends, limiting potential for employee mode shift and utility for weekend visitors +- Will add transit connections to major regional retail at the Empire Center (Target, Walmart, Lowes, REI, etc.) and Downtown Burbank +- Will adapt service to post-pandemic ridership changes by shifting from a primarily commuter focus to providing weekend service, with connections to major tourist destinations at the Warner Brothers and Universal studios as well as the BUR airport +- Expand and improve transit service to increase ridership for other major destinations and for major events including the LA28 Olympics +• Woodbury University +• Providence Saint Joseph Medical Center +• Major employers such as Disney Studios and Netflix + + +1. Purpose of the Analysis +The goal of this modeling exercise is to estimate how BurbankBus ridership is expected to change under a system expansion scenario that: +- New Blue Route n_routes +1 +- Extended Orange Route n_routes +1 (partial effect) +- More service / frequency n_arrivals ↑ +- Weekend service : currently this model is just weekday model +- New stops new rows (or modified features) + + +2. Methodology +A statistical model is used to predict ridership changes at the stop level, based on service characteristics and surrounding population demographics. +Transit ridership data are count data—they are non-negative integers with skewness and often over-dispersion (variance > mean). The Negative Binomial model is ideal for this because: + + It handles over-dispersed count outcomes better than a Poisson model. + It directly models the expected number of daily boardings at each stop. + The model estimates how ridership responds to changes in: + +- Number of routes serving a stop, +- Number of daily scheduled arrivals, +- Surrounding population and socioeconomic characteristics. + + + +3. Interpretation of Key Predictors + +a. Number of Routes (n_routes) +Surprisingly, the model suggests that adding a route, holding arrivals constant, is associated with lower ridership. This happens because: +- If a stop gains a second route but both routes have low frequencies, the model detects that “more routes” alone does not increase accessibility. +- In most systems, frequency, not the count of routes, is the strongest driver of ridership. +- Routes with low headways or overlapping coverage can inflate the route count without increasing usable service. +- The model interprets “more routes without more service” as route fragmentation rather than increased access. +- Thus, the negative sign is not implausible—it reflects that routes matter only when they come with meaningful service levels. + +b. Arrivals / Frequency (n_arrivals and log_arrivals) +This is the strongest operational predictor. More scheduled arrivals → shorter waits → more usable transit. +The log transformation captures diminishing marginal returns: + +Going from 0 → 30 arrivals produces a large ridership jump. +Going from 30 → 60 arrivals has a smaller incremental effect. + + + +c. Demographic Variables +Population-weighted demographics within a 0.5-mile buffer approximate the market for transit: + +Total population: more people → more potential riders. +Workers with no car: high transit reliance → higher ridership baseline. +Youth and senior populations: proxies for transit-dependent groups. +Public assistance population: indicator of economic need and transit dependency. +All contribute proportionally to expected boardings. diff --git a/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Saturday.ipynb b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Saturday.ipynb new file mode 100644 index 000000000..9f6b7c639 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Saturday.ipynb @@ -0,0 +1,3756 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bea06387-a0e0-4766-8a17-ac0de2b240e1", + "metadata": {}, + "source": [ + "# BurbankBus Ridership Modeling Saturday: Analytical Summary and Interpretation" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dd2eb2bc-ba32-4faf-a61f-64b8d4a93dd0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/bin/python: No module named pip\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install shared_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ebdc88e9-5c08-4416-bb29-9931f927f551", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "pd.set_option('display.max_columns', None)\n", + "\n", + "import statsmodels.api as sm\n", + "from scipy.stats import skew\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "69782f04-24f3-48ea-a502-6d1589c68fa5", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df.parquet\", \"rb\") as f: \n", + " stop_route_df = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "db56f926-980f-42af-89f8-6ba4468cdd76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['organization_name', 'feed_key', 'stop_id', 'stop_name', 'stop_code',\n", + " 'n_arrivals', 'n_routes', 'pt_geom', 'day_type', 'route_id_list',\n", + " 'average_daily_boardings', 'average_daily_alightings', 'start_date',\n", + " 'end_date', 'geometry', 'total_pop_adj', 'poverty_pop_adj',\n", + " 'non_us_citizen_adj', 'workers_with_no_car_adj',\n", + " 'households_with_no_cars_adj', 'disabled_pop_adj',\n", + " 'public_asst_pop_adj', 'inc_extremelylow_adj', 'inc_verylow_adj',\n", + " 'inc_low_adj', 'male_seniors_adj', 'female_seniors_adj',\n", + " 'veteran_pop_adj', 'male_youth_adj', 'inc_total_lowincome_adj',\n", + " 'female_youth_adj', 'total_seniors_adj', 'jobs_tot_adj',\n", + " 'total_youth_adj', 'ALAND_adj'],\n", + " dtype='object')" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stop_route_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6b90669b-5d97-47da-9056-00496b8001a1", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert n_arrivals and n_routes to integer\n", + "stop_route_df['n_arrivals'] = stop_route_df['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df['n_routes'] = stop_route_df['n_routes'].fillna(0).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7e41c9f0-9e78-4f41-8657-37747218def7", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank = stop_route_df[stop_route_df['organization_name'] == \"City of Burbank\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "23117df7-8e6b-47c3-aa0c-4965517dde3a", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/geopandas/geodataframe.py:1528: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "df_burbank[\"log_arrivals\"] = np.log(df_burbank[\"n_arrivals\"] + 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "aed87242-a621-4a69-8357-29a4ee260e13", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/geopandas/geodataframe.py:1528: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\"\n", + "]\n", + "\n", + "df_burbank[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_burbank.loc[\n", + " df_burbank[\"stop_name\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1\n", + "\n", + "\n", + "X = df_burbank[[\n", + " \"n_routes\",\n", + " \"log_arrivals\",\n", + " \"total_pop_adj\",\n", + " \"workers_with_no_car_adj\",\n", + " \"total_seniors_adj\",\n", + " \"inc_total_lowincome_adj\",\n", + " \"has_rail_connection_dummy\",\n", + " \"total_youth_adj\"\n", + "]].copy()\n", + "\n", + "X = sm.add_constant(X, has_constant=\"add\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "af3e0f0a-7ac4-4b36-8cdb-0785f620df79", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 45\n", + "Model: GLM Df Residuals: 37\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -104.77\n", + "Date: Mon, 11 May 2026 Deviance: 26.862\n", + "Time: 22:02:31 Pearson chi2: 21.2\n", + "No. Iterations: 18 Pseudo R-squ. (CS): 0.5294\n", + "Covariance Type: nonrobust \n", + "=============================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "---------------------------------------------------------------------------------------------\n", + "const -3.6180 4.061 -0.891 0.373 -11.577 4.341\n", + "n_routes -3.6180 4.061 -0.891 0.373 -11.577 4.341\n", + "log_arrivals 1.9853 2.106 0.942 0.346 -2.143 6.114\n", + "total_pop_adj 0.0014 0.002 0.764 0.445 -0.002 0.005\n", + "workers_with_no_car_adj 0.0301 0.018 1.707 0.088 -0.004 0.065\n", + "total_seniors_adj 0.0081 0.004 1.989 0.047 0.000 0.016\n", + "inc_total_lowincome_adj -0.0059 0.002 -2.395 0.017 -0.011 -0.001\n", + "has_rail_connection_dummy 1.8884 1.135 1.663 0.096 -0.337 4.114\n", + "total_youth_adj 0.0021 0.008 0.254 0.800 -0.014 0.019\n", + "=============================================================================================\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + } + ], + "source": [ + "model_fe = sm.GLM(\n", + " df_burbank[\"average_daily_boardings\"],\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(model_fe.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "75d04dd7-b987-48d0-823d-9e29c6d71341", + "metadata": {}, + "outputs": [], + "source": [ + "# observed values\n", + "observed = df_burbank[\"average_daily_boardings\"]\n", + "\n", + "# predicted values from fixed-effects model\n", + "predicted = model_fe.predict()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0308ac20-e164-4aa3-a22e-63ce66549980", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x9XXwCUlJfHKK69Qs2ZNChYsSIECBahfvz6rV6++odzMnz+f33//nREjRqQp3lI1b96cVq1a3dD+S5QoQYMGDZg9e7ZT+6xZs6hSpQp33nlnuq9r1qwZly5duuHfTZI56oGTDFm8eDGlS5emfv366a5v0KABpUuXTnPdBdj/KytdujTjx49n06ZNvPvuu1y4cMHRzf7HH3/Qtm1bqlatypgxY/D19WX//v2sX7/esQ+bzUb79u356aefePzxx6lcuTK//fYbb7/9Nnv37mXRokVO77lq1SrmzZvHgAEDKFKkCOXLl6dTp04sWLCAjz76yOk/5EWLFpGYmOi4rikz7/Xoo48yc+ZMevbsSd26dVm1ahVt2rRxmc9ixYrRsGFD5s2bx8iRI53WzZ07F09PT+6//37AXsCMHz+eRx99lNq1axMXF8fWrVvZvn07zZo1c/leVztw4AAAhQsXdmq///77KV++PK+99hrGGABeffVVRowYQdeuXXn00Uc5c+YM7733Hg0aNOCXX35xnM789NNP6devH3Xr1uWZZ57hr7/+on379oSGhhIZGXndeHbu3En9+vXx9vbm8ccfp3Tp0hw4cIDFixfz6quv0rlzZ/bu3cucOXN4++23KVKkCIDjH4mciBHsvQ933XXXNdfXr1+fxo0b8+abb/Lkk09etxeuX79+TJ8+nb59+zJw4EAOHjzIf//7X3755RfWr1/v6A0bPnw4b775Ju3ataNFixb8+uuvtGjRIs0/QH/99ReLFi3i/vvvp0yZMpw6dYqPPvqIhg0bOk5BVq5cmTFjxvDKK6/w+OOPO36W69atmyY+b2/vbPl5uZ7U66lSUlL466+/GDZsGIULF87Q9YMXLlygZcuWdO7cma5du/Lll18ybNgwqlSp4ihiLl++TKNGjdi/fz8DBgygTJkyzJ8/nz59+hATE8OgQYOc9jlr1iySkpJ4+umnOX/+PG+++SZdu3alcePGrFmzhmHDhrF//37ee+89hg4dytSpU68ZX1xcHFOmTKFHjx489thjXLx4kU8//ZQWLVqwZcuWNKezXVm8eDFAml7LrNSzZ08GDRpEfHw8gYGBJCcnM3/+fIYMGZLm+Et1++234+/vz/r163U5TU4wIi7ExMQYwHTo0OG627Vv394AJi4uzhhjzMiRIw1g2rdv77TdU089ZQDz66+/GmOM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r569eKtUCTZtsi+L5EEq4EREJH8zBt59137a9NIlaNwYNmyAcuXcHZnIDVMBJyIi+dvp0zByJNhs8Oij9pvSa6Cb5HG5ehoRERGRm1asGHz1FWzfDs8+CxaLuyMSuWkq4EREJP85csT+uOce+3LjxvaHSD6hU6giIpK/bNkCtWvbR5vu3u3uaESyhQo4ERHJP778Eho2hFOnoFQpKFDA3RGJZAsVcCIikvcZA6+/DvffD1euQOvWsH69vYgTyYdUwImISN6WlASPPALDh9uXBw6Er7+GoCD3xiWSjTSIQURE8rZJk2DaNPDwgHfegQED3B2RSLZTASciInnboEHw44/w1FPQqpW7oxHJESrgREQk79m5E+64Azw9wdcXFi92d0QiOUrXwImISN7y+edQqxY8/7y7IxFxGxVwIiKSNxgDr7wCDz0EVqt9ot7kZHdHJeIWKuBERCT3u3IFevaEsWPtyy+8AHPngpeuBJJbk458ERHJ3U6fho4dYeNGe8H28cfQt6+7oxJxKxVwIiKSeyUnw733wq5dEBICCxbYl0VucTqFKiIiuZeXF4weDeXLw6ZNKt5E/kcFnIiI5D7nzv3z/L774LffoGJF98UjksuogBMRkdwjJQWGDoUqVeDo0X/afX3dF5NILqQCTkREcodLl6BLF3jrLThxAr7/3t0RieRaGsQgIiLud/w4tGsH27fbe9umTYMePdwdlUiupQJORETca8cOaNsWjh2DokVh0SKoW9fdUYnkairgRETEfTZuhGbN7KdPK1eGJUugbFl3RyWS66mAExER97nzTihXzt7z9uWX9rneRMQlFXAiIpKzUlLAwwMsFggKguXLoVAh8PZ2d2QieUamR6F+9913/PTTT47l999/n+rVq9OzZ08uXLiQpcGJiEg+Exdnv97tzTf/aQsLU/EmkkmZLuCee+454uLiAPjtt9949tlnad26NQcPHmTIkCFZHqCIiOQThw9DvXrw3Xf2m9KfOuXuiETyrEyfQj148CC33347AF999RVt27bltddeY/v27bRu3TrLAxQRkXxg82Zo395+Y/rixWHxYihWzN1RieRZme6B8/HxISEhAYAVK1bQvHlzAEJDQx09cyIiIg7z5kGjRvbirVo12LIFatZ0d1QieVqme+DuuecehgwZQr169diyZQtz584FYO/evZQsWTLLAxQRkTzsjTfghRfsz9u2hTlzIDDQvTGJ5AOZ7oH773//i5eXF19++SUffvghJUqUAGDZsmW0bNkyywMUEZE8LHVakGeesU/Qq+JNJEtkugeuVKlSLFmyJE3722+/nSUBiYhIPtKvn32ut3r13B2JSL6S6R64uLi4dB8XL14kKSkpO2IUEZG8Yv9++6nSc+f+aVPxJpLlMl3AhYSEUKhQoTSPkJAQ/P39iYqKYuTIkdhstuyIV0REcqt16yA6GpYuhUGD3B2NSL6W6VOo06dP56WXXqJPnz7Url0bgC1btjBjxgxefvllzpw5w3/+8x98fX158cUXszxgERHJhT77DB59FKxWqF0b/vMfd0ckkq9luoCbMWMGb731Fl27dnW0tWvXjipVqvDRRx+xcuVKSpUqxauvvqoCTkQkv7PZ4JVX4NVX7cv33w8zZoC/v3vjEsnnMn0KdcOGDdSoUSNNe40aNdi4cSNgn2rkyJEjNx+diIjkXpcvQ8+e/xRvL74IX3yh4k0kB2S6gIuMjOTTTz9N0/7pp58SGRkJwLlz5yhUqNDNRyciIrnXpUv2SXm9vWHaNHsh55HpPysicgMyfQr1P//5D/fffz/Lli3j7rvvBmDr1q38+eeffPnllwD8/PPPdOvWLWsjFRGR3KVIEfuAhVOn7HdaEJEck+kCrn379vz555989NFH7N27F4BWrVqxaNEiSpcuDcCTTz6ZpUGKiEgu8cMPcPIkPPSQfblyZftDRHJUpgs4gDJlyvD6669ndSwiIpKbffQR9O8PFgtUrGifMkRE3OKGCriYmBi2bNnC6dOn08z39lDqf2UiIpI/pKTA88/DxIn25YcegurV3RqSyK0u0wXc4sWL6dWrF/Hx8QQHB2OxWBzrLBaLCjgRkfwkPh569YJvvrEvjxtnH236r9/9IpLzMj1c6Nlnn+Xhhx8mPj6emJgYLly44HicP38+O2IUERF3OHYMGjSwF2++vvYpQl56ScWbSC6Q6R64Y8eOMXDgQAICArIjHhERyS3mzYNffoGiReHrr6FOHXdHJCL/k+kCrkWLFmzdupWyZctmRzwiIpJbPPMMXLgAfftCmTLujkZE/iXTBVybNm147rnn2LVrF1WqVMHb29tpffv27bMsOBERyUHGwOefQ5cuUKCA/VTpmDHujkpE0pHpAu6xxx4DYEw6P9QWi4WUlJSbj0pERHKW1QoDB8LkybBggf2huyqI5FqZLuCunjZERETyuNhY6NrVPkmvxQING2qggkgud0PzwImISD5x6BC0aQO7dkFAAMyZA7oURiTXy1AB9+677/L444/j5+fHu+++e91tBw4cmOE3X7duHRMmTGDbtm2cOHGChQsX0rFjR8d6YwwjR47kk08+ISYmhnr16vHhhx9Svnx5xzbnz5/n6aefZvHixXh4eNClSxfeeecdAgMDMxyHiMgtadMm6NABTp+GiAhYvBjuusvdUYlIBmSogHv77bfp1asXfn5+vP3229fczmKxZKqAu3TpEtWqVePhhx+mc+fOada/+eabvPvuu8yYMYMyZcowYsQIWrRowa5du/Dz8wOgV69enDhxguXLl2O1Wunbty+PP/44s2fPznAcIiK3nKQk6N7dXrzVqGEv3kqUcHdUIpJBGSrgDh48mO7zm9WqVStatWqV7jpjDJMmTeLll1+mQ4cOAHz22WcUK1aMRYsW0b17d3bv3s13333Hzz//TK1atQB47733aN26Nf/5z3+IiIjIslhFRPIVHx/7PG8TJ8KUKaCzFiJ5Sq69Bu7gwYOcPHmSpk2bOtoKFixIdHQ0GzdupHv37mzcuJGQkBBH8QbQtGlTPDw82Lx5M506dUp334mJiSQmJjqW4+LiALBarVit1iz/LKn7zI595xfKkWvKkWvKkQuJiaT88gvwvxzVqGGfNsTe4MbAchcdR64pR65dL0dZkbcMFXBDhgzJ8A4npt7s+CadPHkSgGLFijm1FytWzLHu5MmThIWFOa338vIiNDTUsU16xo8fz+jRo9O0//DDD9l6h4nly5dn277zC+XINeXINeUoLe+4OGq/8QYh+/dT8LXXUIZc03HkmnLkWno5SkhIuOn9ZqiA++V//7Gl2r59O8nJyVSsWBGAvXv34unpSc2aNW86oJwwfPhwp6I0Li6OyMhImjdvTnBwcJa/n9VqZfny5TRr1izNxMdipxy5phy5phxdw969eHXsiGX/fkxwMD7x8crRdeg4ck05cu16OUo983czMlTArV692vF84sSJBAUFMWPGDAoVKgTAhQsX6Nu3L/Xr17/pgFKFh4cDcOrUKYoXL+5oP3XqFNWrV3dsc/r0aafXJScnc/78ecfr0+Pr64uvr2+adm9v72w9ELN7//mBcuSacuSacvQva9ZA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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(7, 6))\n", + "\n", + "plt.scatter(observed, predicted, alpha=0.7)\n", + "\n", + "# perfect fit line\n", + "max_val = max(observed.max(), predicted.max())\n", + "plt.plot([0, max_val], [0, max_val], color=\"red\", linestyle=\"--\")\n", + "\n", + "plt.xlabel(\"Observed Average Daily Boardings\")\n", + "plt.ylabel(\"Predicted Boardings\")\n", + "plt.title(\"Observed vs Predicted (Negative Binomial GLM)\")\n", + "plt.grid(True)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "9f0edc7e-1341-48cf-b9fd-a24f7e8c8de9", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying stop level data for City of Burbank " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "75df8b20-dee7-420d-9231-229db9d53915", + "metadata": {}, + "outputs": [], + "source": [ + "# Burbank, Metrolink, LA Metro Bus and LA metro rail\n", + "feed_keys = [\"cc6a68a39d22c29b49116584971e69a8\", \"0f80473907c7613e9fefbb71220e9e56\", \"8d9623a1823a27925b7e2f00e44fc5bb\", \"f1ba526e631625c1d6816d055265ed65\"] \n", + "feed_keys_str = \", \".join(f\"'{k}'\" for k in feed_keys)\n", + "\n", + "# Query only those feed_keys\n", + "with db_engine.connect() as connection:\n", + " query = f\"\"\"\n", + " SELECT \n", + " feed_key, stop_id, _feed_valid_from, n_hours_in_service, daily_arrivals, arrivals_early_am, arrivals_am_peak, arrivals_midday, \n", + " arrivals_pm_peak, arrivals_evening, route_id_array, route_type_array, stop_key, tts_stop_name,\n", + " pt_geom, stop_name, location_type, stop_desc, stop_code\n", + " FROM cal-itp-data-infra.mart_gtfs.fct_daily_scheduled_stops\n", + " WHERE service_date = DATE('2025-05-24')\n", + " AND feed_key IN ({feed_keys_str})\n", + " \"\"\"\n", + " df_agency = pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "98205773-013c-45d4-a8bc-302d8a33e97f", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"burbank_orange_new_stops.csv\")\n", + "df[\"stop_dir_key\"] = df[\"stop_name\"] + \" \" + df[\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b3165da9-4c91-44f2-bad2-941995d22b73", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords = {\n", + "\"Hollywood & Jeffries eastbound\": (34.18141305368438, -118.34903738211447),\n", + "\"Hollywood & Victory Bl eastbound\": (34.18508535157502, -118.34929119735641),\n", + "\"Hollywood & Pacific eastbound\": (34.18825119276962, -118.34886491064228),\n", + "\"Hollywood & Valhalla eastbound\": (34.19012427165374, -118.34916328937923),\n", + "\"Hollywood & Thorton eastbound\": (34.19656151035557, -118.34876716762236),\n", + "\"Hollywood & Thorton westbound\": (34.195980179882646, -118.34894014653726),\n", + "\"New BUR terminal eastbound\": (34.19359656711031, -118.35357055101639),\n", + "\"New BUR terminal westbound\": (34.19359656711031, -118.35357055101639),\n", + "\"Winona / Ontario eastbound\": (34.199490557715684, -118.3443711434909),\n", + "\"Winona / Ontario westbound\": (34.1992091874645, -118.34484346690523),\n", + "\"Ontario & Thorton eastbound\": (34.19593202043652, -118.34444331137956),\n", + "\"Ontario & Thorton westbound\": (34.19541510602419, -118.34460558501739),\n", + "\"Empire & Ontario eastbound\": (34.192108542580186, -118.3443394102755),\n", + "\"Empire & Buena Vista eastbound\": (34.19195822628478, -118.33787457476522),\n", + "\"Empire & Valpreda eastbound\": (34.19194945024493, -118.33285175184913),\n", + "\"Empire & Valpreda westbound\": (34.19179144771815, -118.33244032844016),\n", + "\"Empire & Grismer eastbound\": (34.19175476406717, -118.32509312643347),\n", + "\"Empire & Grismer westbound\": (34.19154206721876, -118.3254365921081),\n", + "\"Amherst Dr / San Fernando eastbound\": (34.19012800601128, -118.32086710181368),\n", + "\"Amherst Dr / San Fernando westbound\": (34.189934438443714, -118.32176619076398),\n", + "\"Glenoaks & Bethany eastbound\": (34.191647095345786, -118.31754103475315),\n", + "\"Glenoaks & Bethany westbound\": (34.19168659607283, -118.3180498038794),\n", + "\"Glenoaks & Fairmount eastbound\": (34.18922976877985, -118.31426181767534),\n", + "\"Glenoaks & Fairmount westbound\": (34.18869054389077, -118.3139580922512),\n", + "\"Glenoaks & Cypress eastbound\": (34.18708018484801, -118.31127153444093),\n", + "\"Glenoaks & Cypress westbound\": (34.18677382226348, -118.31135025143384),\n", + "\"Glenoaks & Magnolia eastbound\": (34.18566039664216, -118.30935620418528),\n", + "\"Glenoaks & Magnolia westbound\": (34.1853950731641, -118.3094180753144),\n", + "\"Glenoaks & Olive eastbound\": (34.18338784687265, -118.30666291160377),\n", + "\"Glenoaks & Olive westbound\": (34.183750381812565, -118.30682928383196),\n", + "\"Glenoaks & Verdugo eastbound\": (34.1810536128531, -118.30348086446116),\n", + "\"Glenoaks & Verdugo westbound\": (34.18130060913145, -118.30290962506388),\n", + "\"Glenoaks & Providencia eastbound\": (34.17964641863243, -118.30103491619572),\n", + "\"Glenoaks & Providencia westbound\": (34.17927416886304, -118.30121771535951),\n", + "\"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + "\"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + "\"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + "\"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + "\"Flower & Alameda eastbound\": (34.17106795233713, -118.30268518471172),\n", + "\"Flower & Alameda westbound\": (34.17166407022795, -118.3032739880033)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "68c5b654-30e9-4ef2-b6e2-45b03fbc9d11", + "metadata": {}, + "outputs": [], + "source": [ + "df_blue = pd.read_csv(\"burbank_blue_new_stops.csv\")\n", + "df_blue[\"stop_dir_key\"] = df_blue [\"stop_name\"] + \" \" + df_blue [\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6210a31b-85be-44a6-8cce-9569778e094d", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords_blue = {\n", + " \"Metrolink Station eastside terminal at Front St eastbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Metrolink Station eastside terminal at Front St westbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Verdugo & Ikea Way eastbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & Ikea Way westbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & San Fernando eastbound\": (34.17878489736103, -118.30541531103879),\n", + " \"Verdugo & San Fernando westbound\": (34.17851879621711, -118.30606420445262),\n", + " \"Glenoaks & Providencia eastbound\": (34.17962336385441, -118.30104441612727),\n", + " \"Glenoaks & Providencia westbound\": (34.17927459077334, -118.30121849159424),\n", + " \"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + " \"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + " \"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + " \"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + " \"Alameda & Lake eastbound\": (34.16893683695737, -118.30550179211235),\n", + " \"Alameda & Lake westbound\": (34.169039897393205, -118.30583857000296),\n", + " \"Alameda & Victory eastbound\": (34.166763977999786, -118.30764556757374),\n", + " \"Alameda & Victory westbound\": (34.16653844596177, -118.30776671277157),\n", + " \"Alameda & Main eastbound\": (34.05882507328523, -118.2372783904341),\n", + " \"Alameda & Main westbound\": (34.05926978274522, -118.23693452367304),\n", + " \"Alameda & Mariposa eastbound\": (34.16232050313561, -118.3156158302872),\n", + " \"Alameda & Mariposa westbound\": (34.16231163244352, -118.3163406121734),\n", + " \"Alameda & Reese eastbound\": (34.160989586571944, -118.31959642185599),\n", + " \"Alameda & Reese westbound\": (34.16116470453852, -118.32011647018618),\n", + " \"Alameda & Keystone eastbound\": (34.15960879667507, -118.32369063587736),\n", + " \"Alameda & Keystone westbound\": (34.159809285768965, -118.32415899113134),\n", + " \"Alameda / Buena Vista eastbound\": (34.15830550275982, -118.32847444534262),\n", + " \"Alameda / Buena Vista westbound\": (34.158061055695796, -118.32827576408872),\n", + " \"Buena Vista & Olive eastbound\": (34.16071171372398, -118.32948693260309),\n", + " \"Buena Vista & Olive westbound\": (34.16108254215271, -118.32933331481632),\n", + " \"Buena Vista & Verdugo eastbound\": (34.16511269756838, -118.33111018379287),\n", + " \"Buena Vista & Verdugo westbound\": (34.165299805818485, -118.33167323237512),\n", + " \"Buena Vista & Clark eastbound\": (34.168565005129715, -118.33283674907685),\n", + " \"Buena Vista & Clark westbound\": (34.16866971383002, -118.33328130798998),\n", + " \"Buena Vista & Magnolia eastbound\": (34.17195186709472, -118.33452224880612),\n", + " \"Buena Vista & Magnolia westbound\": (34.17211056589883, -118.33495282578686),\n", + " \"Buena Vista & Chandler eastbound\": (34.175468005263646, -118.33584132009098),\n", + " \"Buena Vista & Chandler westbound\": (34.17564123355154, -118.33666600223994),\n", + " \"Buena Vista & Burbank eastbound\": (34.178999088200214, -118.33829343490339),\n", + " \"Buena Vista & Burbank westbound\": (34.17876464082475, -118.33765850526345),\n", + " \"Buena Vista & Jeffries eastbound\": (34.18121005878122, -118.33854591221447),\n", + " \"Buena Vista & Jeffries westbound\": (34.180900571549294, -118.33814871081255),\n", + " \"Buena Vista & Victory eastbound\": (34.18449938252548, -118.3380410337855),\n", + " \"Buena Vista & Victory westbound\": (34.18466457669643, -118.33870399111125),\n", + " \"Buena Vista & Pacific eastbound\": (34.188461988919315, -118.33840245172041),\n", + " \"Buena Vista & Pacific westbound\": (34.18806979207031, -118.33819315186547),\n", + " \"Buena Vista & Empire eastbound\": (34.19198270314381, -118.33837161247952),\n", + " \"Buena Vista & Empire westbound\": (34.19177371161881, -118.3376321369762),\n", + " \"Buena Vista & Thorton eastbound\": (34.19573279798583, -118.33806248639054),\n", + " \"Buena Vista & Thorton westbound\": (34.19545983217905, -118.33766900330374),\n", + " \"Buena Vista & Winona eastbound\": (34.19971384309687, -118.33802251372927),\n", + " \"Buena Vista & Winona westbound\": (34.19955262101271, -118.33759639149243),\n", + " \"Buena Vista & Tulare eastbound\": (34.20288213768749, -118.33803238893368),\n", + " \"Buena Vista & Tulare westbound\": (34.202779515064044, -118.33757227833074),\n", + " \"Glenoaks / Buena Vista eastbound\": (34.205108109416635, -118.33787452049432),\n", + " \"Glenoaks / Buena Vista westbound\": (34.20469583946896, -118.33746105567633),\n", + " \"Glenoaks / Cohasset eastbound\": (34.206545468267606, -118.34143554899393),\n", + " \"Glenoaks / Cohasset westbound\": (34.2067229265355, -118.34135508272895),\n", + " \"Cohasset & Bloomington eastbound\": (34.2065471711793, -118.34523843199325),\n", + " \"Cohasset & Bloomington westbound\": (34.206793697966674, -118.34551974845968),\n", + " \"N San Fernando / Lima / Avon eastbound\": (34.19149816424647, -118.34706760310583),\n", + " \"N San Fernando / Lima / Avon westbound\": (34.192392404649915, -118.3479249843664)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "87199e5f-9a49-45ef-8c4d-fdd54a7d9c9b", + "metadata": {}, + "outputs": [], + "source": [ + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "7593556c-d140-4cc7-bd56-99ba11d8d3fa", + "metadata": {}, + "outputs": [], + "source": [ + "def apply_manual_coords(df, manual_coords):\n", + " # filter rows\n", + " df = df[(df['change_type'] != 'no_change') & \n", + " (df['change_type'] != 'relocating')].copy()\n", + " \n", + " latitudes, longitudes, geoms = [], [], []\n", + "\n", + " for key in df[\"stop_dir_key\"]:\n", + " coords = manual_coords.get(key)\n", + "\n", + " if coords:\n", + " lat, lon = coords\n", + " latitudes.append(lat)\n", + " longitudes.append(lon)\n", + " geoms.append(Point(lon, lat))\n", + " else:\n", + " latitudes.append(None)\n", + " longitudes.append(None)\n", + " geoms.append(None)\n", + "\n", + " df[\"latitude\"] = latitudes\n", + " df[\"longitude\"] = longitudes\n", + " df[\"pt_geom\"] = geoms\n", + "\n", + " df[\"stop_id\"] = [\"new_\" + str(i + 1) for i in range(len(df))]\n", + "\n", + " return df" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "74273e90-eed3-4f4f-a1f0-4c6fffdd3926", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
6Hollywood & Jeffrieseastboundadding_existingHollywood & Jeffries eastbound34.181413-118.349037POINT (-118.34903738211447 34.18141305368438)new_1
8Hollywood & Victory Bleastboundadding_existingHollywood & Victory Bl eastbound34.185085-118.349291POINT (-118.34929119735641 34.18508535157502)new_2
10Hollywood & Pacificeastboundadding_existingHollywood & Pacific eastbound34.188251-118.348865POINT (-118.34886491064228 34.18825119276962)new_3
12Hollywood & Valhallaeastboundadding_existingHollywood & Valhalla eastbound34.190124-118.349163POINT (-118.34916328937923 34.19012427165374)new_4
14Hollywood & Thortoneastboundadding_existingHollywood & Thorton eastbound34.196562-118.348767POINT (-118.34876716762236 34.19656151035557)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "6 Hollywood & Jeffries eastbound adding_existing \n", + "8 Hollywood & Victory Bl eastbound adding_existing \n", + "10 Hollywood & Pacific eastbound adding_existing \n", + "12 Hollywood & Valhalla eastbound adding_existing \n", + "14 Hollywood & Thorton eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "6 Hollywood & Jeffries eastbound 34.181413 -118.349037 \n", + "8 Hollywood & Victory Bl eastbound 34.185085 -118.349291 \n", + "10 Hollywood & Pacific eastbound 34.188251 -118.348865 \n", + "12 Hollywood & Valhalla eastbound 34.190124 -118.349163 \n", + "14 Hollywood & Thorton eastbound 34.196562 -118.348767 \n", + "\n", + " pt_geom stop_id \n", + "6 POINT (-118.34903738211447 34.18141305368438) new_1 \n", + "8 POINT (-118.34929119735641 34.18508535157502) new_2 \n", + "10 POINT (-118.34886491064228 34.18825119276962) new_3 \n", + "12 POINT (-118.34916328937923 34.19012427165374) new_4 \n", + "14 POINT (-118.34876716762236 34.19656151035557) new_5 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = apply_manual_coords(df, manual_coords)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "3ffc2c7a-6812-4239-84c3-80b6eadfbe77", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
2Verdugo & San Fernandoeastboundadding_existingVerdugo & San Fernando eastbound34.178785-118.305415POINT (-118.30541531103879 34.17878489736103)new_1
3Glenoaks & Providenciaeastboundadding_existingGlenoaks & Providencia eastbound34.179623-118.301044POINT (-118.30104441612727 34.17962336385441)new_2
4Glenoaks / Alamedaeastboundadding_existingGlenoaks / Alameda eastbound34.176921-118.297872POINT (-118.29787237592716 34.1769213295822)new_3
5Alameda & San Fernandoeastboundadding_existingAlameda & San Fernando eastbound34.174366-118.299524POINT (-118.29952381900989 34.174365721132396)new_4
6Alameda & Lakeeastboundadding_existingAlameda & Lake eastbound34.168937-118.305502POINT (-118.30550179211235 34.16893683695737)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "2 Verdugo & San Fernando eastbound adding_existing \n", + "3 Glenoaks & Providencia eastbound adding_existing \n", + "4 Glenoaks / Alameda eastbound adding_existing \n", + "5 Alameda & San Fernando eastbound adding_existing \n", + "6 Alameda & Lake eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "2 Verdugo & San Fernando eastbound 34.178785 -118.305415 \n", + "3 Glenoaks & Providencia eastbound 34.179623 -118.301044 \n", + "4 Glenoaks / Alameda eastbound 34.176921 -118.297872 \n", + "5 Alameda & San Fernando eastbound 34.174366 -118.299524 \n", + "6 Alameda & Lake eastbound 34.168937 -118.305502 \n", + "\n", + " pt_geom stop_id \n", + "2 POINT (-118.30541531103879 34.17878489736103) new_1 \n", + "3 POINT (-118.30104441612727 34.17962336385441) new_2 \n", + "4 POINT (-118.29787237592716 34.1769213295822) new_3 \n", + "5 POINT (-118.29952381900989 34.174365721132396) new_4 \n", + "6 POINT (-118.30550179211235 34.16893683695737) new_5 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_blue = apply_manual_coords(df_blue, manual_coords_blue)\n", + "df_blue.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "d3b5d469-48b5-49df-ae91-315466705ddb", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert your stops DataFrame to GeoDataFrame\n", + "gdf_orange = gpd.GeoDataFrame(df, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "gdf_blue = gpd.GeoDataFrame(df_blue, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "\n", + "# Project to meters for accurate distance buffering (UTM Zone 11N for LA area)\n", + "gdf_orange = gdf_orange.to_crs(epsg=32611)\n", + "gdf_blue = gdf_blue.to_crs(epsg=32611)\n", + "\n", + "buffer_distance = 404.672 # in meters\n", + "gdf_orange['buffer'] = gdf_orange.geometry.buffer(buffer_distance)\n", + "gdf_blue['buffer'] = gdf_blue.geometry.buffer(buffer_distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "feec70b0-5a1b-4bf1-9ce5-f63340f9ce1c", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)\n", + "\n", + "acs_gdf = tracts_ca_acs.to_crs(gdf_orange.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "187c1008-dd0d-4622-9b60-e2095601bb6b", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange = gpd.overlay(acs_gdf, gdf_orange.set_geometry('buffer'), how='intersection')\n", + "geometry_intersect_blue = gpd.overlay(acs_gdf, gdf_blue.set_geometry('buffer'), how='intersection')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "174076a2-a975-41d8-88d3-ca874351d57a", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange['area_2'] = geometry_intersect_orange.geometry.area # area of overlap\n", + "geometry_intersect_orange['area_ratio'] = geometry_intersect_orange['area_2'] / geometry_intersect_orange['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_orange[f'{col}_adj'] = geometry_intersect_orange[col] * geometry_intersect_orange['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "3bbfeb90-9776-4d62-83dc-ccf5d0670ed5", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_blue['area_2'] = geometry_intersect_blue.geometry.area # area of overlap\n", + "geometry_intersect_blue['area_ratio'] = geometry_intersect_blue['area_2'] / geometry_intersect_blue['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_blue[f'{col}_adj'] = geometry_intersect_blue[col] * geometry_intersect_blue['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "bbf7b71a-c05a-4651-955b-484947ced81c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STATEFPCOUNTYFPTRACTCEGEOIDFQGEOIDNAMENAMELSADSTUSPSNAMELSADCOSTATE_NAMELSADALANDAWATERtotal_poppoverty_popnon_us_citizenmale_65_to_66male_67_to_69male_70_to_74male_75_to_79male_80_to_84male_85_and_overfemale_65_to_66female_67_to_69female_70_to_74female_75_to_79female_80_to_84female_85_and_overmale_15_17male_18_19male_20male_21male_22_24female_15_17female_18_19female_20female_21female_22_24median_household_incomeincome_less_10000income_10000_14999income_15000_24999income_25000_34999income_35000_49999income_50000_64999income_65000_74999workers_with_no_carhouseholds_with_no_carspublic_asst_popveteran_popcounty_nameinc_extremelylowinc_verylowinc_lowinc_total_lowincomemale_seniorsfemale_seniorsmale_youthfemale_youthtotal_seniorstotal_youthdisabled_poparea_m2stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_idgeometryarea_2area_ratiototal_pop_adjworkers_with_no_car_adjtotal_youth_adjtotal_seniors_adjpublic_asst_pop_adjinc_total_lowincome_adj
0060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks & Providenciawestboundadding_existingGlenoaks & Providencia westbound34.179274-118.301218POINT (380084.556 3782798.877)new_34POLYGON ((380440.877 3782607.168, 380421.029 3...380.6471400.0005634.2214920.0974020.6052420.6029900.4937652.403514
1060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks / Alamedaeastboundadding_existingGlenoaks / Alameda eastbound34.176921-118.297872POINT (380389.550 3782534.037)new_35POLYGON ((380620.646 3782807.227, 380769.228 3...122709.6295840.1815001360.88684331.399496195.112477194.386478159.175482774.823411
2060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks / Alamedawestboundadding_existingGlenoaks / Alameda westbound34.176369-118.297764POINT (380398.772 3782472.656)new_36POLYGON ((380620.646 3782807.227, 380721.787 3...129254.1676510.1911801433.46774633.074142205.518515204.753795167.664872816.147480
3060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Alameda & San Fernandoeastboundadding_existingAlameda & San Fernando eastbound34.174366-118.299524POINT (380233.733 3782252.579)new_37POLYGON ((380436.486 3782602.281, 380458.557 3...20057.0765570.029666222.4390355.13229631.89143331.77276726.017476126.646071
4060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Alameda & San Fernandowestboundadding_existingAlameda & San Fernando westbound34.174307-118.300256POINT (380166.186 3782246.963)new_38POLYGON ((380408.138 3782570.733, 380422.907 3...3957.5911140.00585443.8908801.0126866.2927046.2692905.13367624.989353
\n", + "
" + ], + "text/plain": [ + " STATEFP COUNTYFP TRACTCE GEOIDFQ GEOID NAME \\\n", + "0 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "1 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "2 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "3 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "4 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "\n", + " NAMELSAD STUSPS NAMELSADCO STATE_NAME LSAD ALAND \\\n", + "0 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "1 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "2 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "3 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "4 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "\n", + " AWATER total_pop poverty_pop non_us_citizen male_65_to_66 \\\n", + "0 0 7498 1296 1753 55 \n", + "1 0 7498 1296 1753 55 \n", + "2 0 7498 1296 1753 55 \n", + "3 0 7498 1296 1753 55 \n", + "4 0 7498 1296 1753 55 \n", + "\n", + " male_67_to_69 male_70_to_74 male_75_to_79 male_80_to_84 \\\n", + "0 48 81 133 49 \n", + "1 48 81 133 49 \n", + "2 48 81 133 49 \n", + "3 48 81 133 49 \n", + "4 48 81 133 49 \n", + "\n", + " male_85_and_over female_65_to_66 female_67_to_69 female_70_to_74 \\\n", + "0 67 131 160 156 \n", + "1 67 131 160 156 \n", + "2 67 131 160 156 \n", + "3 67 131 160 156 \n", + "4 67 131 160 156 \n", + "\n", + " female_75_to_79 female_80_to_84 female_85_and_over male_15_17 \\\n", + "0 0 80 111 59 \n", + "1 0 80 111 59 \n", + "2 0 80 111 59 \n", + "3 0 80 111 59 \n", + "4 0 80 111 59 \n", + "\n", + " male_18_19 male_20 male_21 male_22_24 female_15_17 female_18_19 \\\n", + "0 153 26 86 307 53 82 \n", + "1 153 26 86 307 53 82 \n", + "2 153 26 86 307 53 82 \n", + "3 153 26 86 307 53 82 \n", + "4 153 26 86 307 53 82 \n", + "\n", + " female_20 female_21 female_22_24 median_household_income \\\n", + "0 0 119 190 80459 \n", + "1 0 119 190 80459 \n", + "2 0 119 190 80459 \n", + "3 0 119 190 80459 \n", + "4 0 119 190 80459 \n", + "\n", + " income_less_10000 income_10000_14999 income_15000_24999 \\\n", + "0 997 835 554 \n", + "1 997 835 554 \n", + "2 997 835 554 \n", + "3 997 835 554 \n", + "4 997 835 554 \n", + "\n", + " income_25000_34999 income_35000_49999 income_50000_64999 \\\n", + "0 626 532 465 \n", + "1 626 532 465 \n", + "2 626 532 465 \n", + "3 626 532 465 \n", + "4 626 532 465 \n", + "\n", + " income_65000_74999 workers_with_no_car households_with_no_cars \\\n", + "0 260 173 262 \n", + "1 260 173 262 \n", + "2 260 173 262 \n", + "3 260 173 262 \n", + "4 260 173 262 \n", + "\n", + " public_asst_pop veteran_pop county_name inc_extremelylow inc_verylow \\\n", + "0 877 51 Los Angeles 2386 1158 \n", + "1 877 51 Los Angeles 2386 1158 \n", + "2 877 51 Los Angeles 2386 1158 \n", + "3 877 51 Los Angeles 2386 1158 \n", + "4 877 51 Los Angeles 2386 1158 \n", + "\n", + " inc_low inc_total_lowincome male_seniors female_seniors male_youth \\\n", + "0 725 4269 433 638 631 \n", + "1 725 4269 433 638 631 \n", + "2 725 4269 433 638 631 \n", + "3 725 4269 433 638 631 \n", + "4 725 4269 433 638 631 \n", + "\n", + " female_youth total_seniors total_youth disabled_pop area_m2 \\\n", + "0 444 1071 1075 1197 676086.191403 \n", + "1 444 1071 1075 1197 676086.191403 \n", + "2 444 1071 1075 1197 676086.191403 \n", + "3 444 1071 1075 1197 676086.191403 \n", + "4 444 1071 1075 1197 676086.191403 \n", + "\n", + " stop_name direction change_type \\\n", + "0 Glenoaks & Providencia westbound adding_existing \n", + "1 Glenoaks / Alameda eastbound adding_existing \n", + "2 Glenoaks / Alameda westbound adding_existing \n", + "3 Alameda & San Fernando eastbound adding_existing \n", + "4 Alameda & San Fernando westbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "0 Glenoaks & Providencia westbound 34.179274 -118.301218 \n", + "1 Glenoaks / Alameda eastbound 34.176921 -118.297872 \n", + "2 Glenoaks / Alameda westbound 34.176369 -118.297764 \n", + "3 Alameda & San Fernando eastbound 34.174366 -118.299524 \n", + "4 Alameda & San Fernando westbound 34.174307 -118.300256 \n", + "\n", + " pt_geom stop_id \\\n", + "0 POINT (380084.556 3782798.877) new_34 \n", + "1 POINT (380389.550 3782534.037) new_35 \n", + "2 POINT (380398.772 3782472.656) new_36 \n", + "3 POINT (380233.733 3782252.579) new_37 \n", + "4 POINT (380166.186 3782246.963) new_38 \n", + "\n", + " geometry area_2 \\\n", + "0 POLYGON ((380440.877 3782607.168, 380421.029 3... 380.647140 \n", + "1 POLYGON ((380620.646 3782807.227, 380769.228 3... 122709.629584 \n", + "2 POLYGON ((380620.646 3782807.227, 380721.787 3... 129254.167651 \n", + "3 POLYGON ((380436.486 3782602.281, 380458.557 3... 20057.076557 \n", + "4 POLYGON ((380408.138 3782570.733, 380422.907 3... 3957.591114 \n", + "\n", + " area_ratio total_pop_adj workers_with_no_car_adj total_youth_adj \\\n", + "0 0.000563 4.221492 0.097402 0.605242 \n", + "1 0.181500 1360.886843 31.399496 195.112477 \n", + "2 0.191180 1433.467746 33.074142 205.518515 \n", + "3 0.029666 222.439035 5.132296 31.891433 \n", + "4 0.005854 43.890880 1.012686 6.292704 \n", + "\n", + " total_seniors_adj public_asst_pop_adj inc_total_lowincome_adj \n", + "0 0.602990 0.493765 2.403514 \n", + "1 194.386478 159.175482 774.823411 \n", + "2 204.753795 167.664872 816.147480 \n", + "3 31.772767 26.017476 126.646071 \n", + "4 6.269290 5.133676 24.989353 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "geometry_intersect_orange.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "98309c42-52a9-4d91-a204-fc0bbc445b6b", + "metadata": {}, + "outputs": [], + "source": [ + "agg_orange = geometry_intersect_orange.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_orange = gdf_orange.merge(\n", + " agg_orange,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "36e31d14-b88f-4b54-849a-615f5755f369", + "metadata": {}, + "outputs": [], + "source": [ + "agg_blue = geometry_intersect_blue.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_blue = gdf_blue.merge(\n", + " agg_blue,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "304753cf-efbf-4e3e-96e4-c8c126830d2b", + "metadata": {}, + "outputs": [], + "source": [ + "# add missing columns with placeholder values for now\n", + "gdf_orange['n_arrivals'] = np.nan\n", + "gdf_orange['n_routes'] = np.nan\n", + "gdf_blue['n_arrivals'] = np.nan\n", + "gdf_blue['n_routes'] = np.nan" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "be29a349-9d3d-4fa0-94b4-32c86f775309", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_code
00f80473907c7613e9fefbb71220e9e561902025-05-03 03:00:42.971504+00:00193294105175175140[San Bernardino Line][2]7ddccf40a82263aa2ef6b2be349e5bf0NonePOINT(-117.184517 34.059074)Redlands - DowntownNoneNoneNone
10f80473907c7613e9fefbb71220e9e561282025-05-03 03:00:42.971504+00:0068488312914248[Orange County Line][2]333a6c1a58ddca4f1c950338e388c951NonePOINT(-117.877998 33.802582)AnaheimNoneNoneNone
20f80473907c7613e9fefbb71220e9e561652025-05-03 03:00:42.971504+00:0012128394140164107[Antelope Valley Line][2]f81c86eb4fd41b94c8428320ae02c385NonePOINT(-118.118301 34.49786)Vincent Grade / ActonNoneNoneNone
30f80473907c7613e9fefbb71220e9e561482025-05-03 03:00:42.971504+00:005812014014421446[91 Line, Inland Emp.-Orange Co. Line][2]0d9bd2f2729b4029582f6e6e0e9e1e44NonePOINT(-117.4702 33.899925)Riverside - La SierraNoneNoneNone
40f80473907c7613e9fefbb71220e9e561012025-05-03 03:00:42.971504+00:001216729416416494[San Bernardino Line][2]a0322b38007cd6229c7663774bb52dc2NonePOINT(-117.957397 34.086426)Baldwin ParkNoneNoneNone
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 0f80473907c7613e9fefbb71220e9e56 190 2025-05-03 03:00:42.971504+00:00 \n", + "1 0f80473907c7613e9fefbb71220e9e56 128 2025-05-03 03:00:42.971504+00:00 \n", + "2 0f80473907c7613e9fefbb71220e9e56 165 2025-05-03 03:00:42.971504+00:00 \n", + "3 0f80473907c7613e9fefbb71220e9e56 148 2025-05-03 03:00:42.971504+00:00 \n", + "4 0f80473907c7613e9fefbb71220e9e56 101 2025-05-03 03:00:42.971504+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 19 32 94 105 \n", + "1 6 8 48 83 \n", + "2 12 12 83 94 \n", + "3 5 8 120 140 \n", + "4 12 16 72 94 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening \\\n", + "0 175 175 140 \n", + "1 129 142 48 \n", + "2 140 164 107 \n", + "3 144 214 46 \n", + "4 164 164 94 \n", + "\n", + " route_id_array route_type_array \\\n", + "0 [San Bernardino Line] [2] \n", + "1 [Orange County Line] [2] \n", + "2 [Antelope Valley Line] [2] \n", + "3 [91 Line, Inland Emp.-Orange Co. Line] [2] \n", + "4 [San Bernardino Line] [2] \n", + "\n", + " stop_key tts_stop_name \\\n", + "0 7ddccf40a82263aa2ef6b2be349e5bf0 None \n", + "1 333a6c1a58ddca4f1c950338e388c951 None \n", + "2 f81c86eb4fd41b94c8428320ae02c385 None \n", + "3 0d9bd2f2729b4029582f6e6e0e9e1e44 None \n", + "4 a0322b38007cd6229c7663774bb52dc2 None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-117.184517 34.059074) Redlands - Downtown None \n", + "1 POINT(-117.877998 33.802582) Anaheim None \n", + "2 POINT(-118.118301 34.49786) Vincent Grade / Acton None \n", + "3 POINT(-117.4702 33.899925) Riverside - La Sierra None \n", + "4 POINT(-117.957397 34.086426) Baldwin Park None \n", + "\n", + " stop_desc stop_code \n", + "0 None None \n", + "1 None None \n", + "2 None None \n", + "3 None None \n", + "4 None None " + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_agency.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "4ca8d618-a539-41ff-980c-45a628569ce6", + "metadata": {}, + "outputs": [], + "source": [ + "df_existing = df_agency.copy()\n", + "\n", + "# convert string representation of list → actual list\n", + "df_existing['route_id_array_parsed'] = df_existing['route_id_array'].apply(\n", + " lambda x: ast.literal_eval(x) if isinstance(x, str) else x\n", + ")\n", + "\n", + "# compute number of unique routes\n", + "df_existing['n_routes'] = df_existing['route_id_array_parsed'].apply(\n", + " lambda x: len(set(x)) if isinstance(x, list) else 0\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "6988defb-0fe2-42cb-9fe9-af2bdef3433b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_coderoute_id_array_parsedn_routes
00f80473907c7613e9fefbb71220e9e561902025-05-03 03:00:42.971504+00:00193294105175175140[San Bernardino Line][2]7ddccf40a82263aa2ef6b2be349e5bf0NonePOINT(-117.184517 34.059074)Redlands - DowntownNoneNoneNone[San Bernardino Line]1
10f80473907c7613e9fefbb71220e9e561282025-05-03 03:00:42.971504+00:0068488312914248[Orange County Line][2]333a6c1a58ddca4f1c950338e388c951NonePOINT(-117.877998 33.802582)AnaheimNoneNoneNone[Orange County Line]1
20f80473907c7613e9fefbb71220e9e561652025-05-03 03:00:42.971504+00:0012128394140164107[Antelope Valley Line][2]f81c86eb4fd41b94c8428320ae02c385NonePOINT(-118.118301 34.49786)Vincent Grade / ActonNoneNoneNone[Antelope Valley Line]1
30f80473907c7613e9fefbb71220e9e561482025-05-03 03:00:42.971504+00:005812014014421446[91 Line, Inland Emp.-Orange Co. Line][2]0d9bd2f2729b4029582f6e6e0e9e1e44NonePOINT(-117.4702 33.899925)Riverside - La SierraNoneNoneNone[91 Line, Inland Emp.-Orange Co. Line]2
40f80473907c7613e9fefbb71220e9e561012025-05-03 03:00:42.971504+00:001216729416416494[San Bernardino Line][2]a0322b38007cd6229c7663774bb52dc2NonePOINT(-117.957397 34.086426)Baldwin ParkNoneNoneNone[San Bernardino Line]1
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 0f80473907c7613e9fefbb71220e9e56 190 2025-05-03 03:00:42.971504+00:00 \n", + "1 0f80473907c7613e9fefbb71220e9e56 128 2025-05-03 03:00:42.971504+00:00 \n", + "2 0f80473907c7613e9fefbb71220e9e56 165 2025-05-03 03:00:42.971504+00:00 \n", + "3 0f80473907c7613e9fefbb71220e9e56 148 2025-05-03 03:00:42.971504+00:00 \n", + "4 0f80473907c7613e9fefbb71220e9e56 101 2025-05-03 03:00:42.971504+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 19 32 94 105 \n", + "1 6 8 48 83 \n", + "2 12 12 83 94 \n", + "3 5 8 120 140 \n", + "4 12 16 72 94 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening \\\n", + "0 175 175 140 \n", + "1 129 142 48 \n", + "2 140 164 107 \n", + "3 144 214 46 \n", + "4 164 164 94 \n", + "\n", + " route_id_array route_type_array \\\n", + "0 [San Bernardino Line] [2] \n", + "1 [Orange County Line] [2] \n", + "2 [Antelope Valley Line] [2] \n", + "3 [91 Line, Inland Emp.-Orange Co. Line] [2] \n", + "4 [San Bernardino Line] [2] \n", + "\n", + " stop_key tts_stop_name \\\n", + "0 7ddccf40a82263aa2ef6b2be349e5bf0 None \n", + "1 333a6c1a58ddca4f1c950338e388c951 None \n", + "2 f81c86eb4fd41b94c8428320ae02c385 None \n", + "3 0d9bd2f2729b4029582f6e6e0e9e1e44 None \n", + "4 a0322b38007cd6229c7663774bb52dc2 None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-117.184517 34.059074) Redlands - Downtown None \n", + "1 POINT(-117.877998 33.802582) Anaheim None \n", + "2 POINT(-118.118301 34.49786) Vincent Grade / Acton None \n", + "3 POINT(-117.4702 33.899925) Riverside - La Sierra None \n", + "4 POINT(-117.957397 34.086426) Baldwin Park None \n", + "\n", + " stop_desc stop_code route_id_array_parsed n_routes \n", + "0 None None [San Bernardino Line] 1 \n", + "1 None None [Orange County Line] 1 \n", + "2 None None [Antelope Valley Line] 1 \n", + "3 None None [91 Line, Inland Emp.-Orange Co. Line] 2 \n", + "4 None None [San Bernardino Line] 1 " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_existing.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "c09027f0-c22d-4055-b76a-1ac0089ecec4", + "metadata": {}, + "outputs": [], + "source": [ + "from shapely import wkt\n", + "\n", + "# convert WKT string → geometry object\n", + "df_existing['geometry'] = df_existing['pt_geom'].apply(wkt.loads)\n", + "\n", + "# extract lon/lat\n", + "df_existing['longitude'] = df_existing['geometry'].apply(lambda geom: geom.x)\n", + "df_existing['latitude'] = df_existing['geometry'].apply(lambda geom: geom.y)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "935a70bd-867a-49b2-867b-12a1b4f71635", + "metadata": {}, + "outputs": [], + "source": [ + "# drop missing coords just in case\n", + "df_existing = df_existing.dropna(subset=['latitude', 'longitude'])\n", + "df_new_orange = gdf_orange.dropna(subset=['latitude', 'longitude'])\n", + "df_new_blue = gdf_blue.dropna(subset=['latitude', 'longitude'])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "da409a53-ae7b-4f11-a157-d76388882c32", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import BallTree\n", + "import numpy as np\n", + "\n", + "existing_coords = np.radians(df_existing[['latitude', 'longitude']])\n", + "new_coords_orange = np.radians(df_new_orange[['latitude', 'longitude']])\n", + "new_coords_blue = np.radians(df_new_blue[['latitude', 'longitude']])\n", + "\n", + "tree = BallTree(existing_coords, metric='haversine')\n", + "dist_orange, ind_orange = tree.query(new_coords_orange, k=1)\n", + "dist_blue, ind_blue = tree.query(new_coords_blue, k=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "4ac0ffaa-9a88-45e3-81ce-2ad35ffd6437", + "metadata": {}, + "outputs": [], + "source": [ + "matched_idx_orange = ind_orange.flatten()\n", + "\n", + "df_new_orange['n_routes_base'] = df_existing.iloc[matched_idx_orange]['n_routes'].values\n", + "\n", + "df_new_orange['nearest_stop_distance_m'] = dist_orange.flatten() * 6371000\n", + "df_new_orange['matched_feed_key'] = df_existing.iloc[matched_idx_orange]['feed_key'].values\n", + "df_new_orange['matched_stop_name'] = df_existing.iloc[matched_idx_orange]['stop_name'].values\n", + "df_new_orange['matched_stop_id'] = df_existing.iloc[matched_idx_orange]['stop_id'].values\n", + "df_new_orange['matched_n_routes'] = df_existing.iloc[matched_idx_orange]['n_routes'].values\n", + "df_new_orange['matched_agency_name'] = df_existing.iloc[matched_idx_orange]['feed_key'].values\n", + "df_new_orange['n_arrivals_base'] = df_existing.iloc[matched_idx_orange]['daily_arrivals'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "e15d37f1-42de-441c-b46c-2ed73103df13", + "metadata": {}, + "outputs": [], + "source": [ + "matched_idx_blue = ind_blue.flatten()\n", + "df_new_blue['n_routes_base'] = df_existing.iloc[matched_idx_blue]['n_routes'].values\n", + "\n", + "df_new_blue['nearest_stop_distance_m'] = dist_blue.flatten() * 6371000\n", + "df_new_blue['matched_feed_key'] = df_existing.iloc[matched_idx_blue]['feed_key'].values\n", + "df_new_blue['matched_stop_name'] = df_existing.iloc[matched_idx_blue]['stop_name'].values\n", + "df_new_blue['matched_stop_id'] = df_existing.iloc[matched_idx_blue]['stop_id'].values\n", + "df_new_blue['matched_n_routes'] = df_existing.iloc[matched_idx_blue]['n_routes'].values\n", + "df_new_blue['matched_agency_name'] = df_existing.iloc[matched_idx_blue]['feed_key'].values\n", + "df_new_blue['n_arrivals_base'] = df_existing.iloc[matched_idx_blue]['daily_arrivals'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "d80ef79a-3148-4cb9-baf9-12854aba5016", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionn_arrivals_basematched_stop_namematched_stop_idmatched_n_routesnearest_stop_distance_m
37Alameda & San Fernandowestbound16Alameda / San Fernando1800912.687190
36Alameda & San Fernandoeastbound46San Fernando / Alameda545317.978711
19Amherst Dr / San Fernandowestbound64San Fernando / Scott12348234.604805
18Amherst Dr / San Fernandoeastbound67San Fernando / Amherst3865219.141396
13Empire & Buena Vistaeastbound67Empire / Buena Vista181724.753653
17Empire & Grismerwestbound64San Fernando / Grismer1234621.437015
16Empire & Grismereastbound67San Fernando / Grismer386823.279378
12Empire & Ontarioeastbound67Empire / Ontario182126.957365
15Empire & Valpredawestbound64Empire / Valpreda4635226.482175
14Empire & Valpredaeastbound67Empire / Valpreda124923.950005
38Flower & Alamedaeastbound16Alameda / Lake181191354.144771
39Flower & Alamedawestbound16Alameda / Lake181191369.626070
20Glenoaks & Bethanyeastbound32Glenoaks / Bethany357913.408427
21Glenoaks & Bethanywestbound33Glenoaks / Bethany12066110.358120
25Glenoaks & Cypresswestbound33Glenoaks / Cypress1206710.412399
24Glenoaks & Cypresseastbound32Glenoaks / Cypress358012.467332
22Glenoaks & Fairmounteastbound32Glenoaks / Fairmount358210.698583
23Glenoaks & Fairmountwestbound33Glenoaks / Fairmount1206911.751648
26Glenoaks & Magnoliaeastbound32Glenoaks / Magnolia1206810.516036
27Glenoaks & Magnoliawestbound33Glenoaks / Magnolia358112.050384
\n", + "
" + ], + "text/plain": [ + " stop_name direction n_arrivals_base \\\n", + "37 Alameda & San Fernando westbound 16 \n", + "36 Alameda & San Fernando eastbound 46 \n", + "19 Amherst Dr / San Fernando westbound 64 \n", + "18 Amherst Dr / San Fernando eastbound 67 \n", + "13 Empire & Buena Vista eastbound 67 \n", + "17 Empire & Grismer westbound 64 \n", + "16 Empire & Grismer eastbound 67 \n", + "12 Empire & Ontario eastbound 67 \n", + "15 Empire & Valpreda westbound 64 \n", + "14 Empire & Valpreda eastbound 67 \n", + "38 Flower & Alameda eastbound 16 \n", + "39 Flower & Alameda westbound 16 \n", + "20 Glenoaks & Bethany eastbound 32 \n", + "21 Glenoaks & Bethany westbound 33 \n", + "25 Glenoaks & Cypress westbound 33 \n", + "24 Glenoaks & Cypress eastbound 32 \n", + "22 Glenoaks & Fairmount eastbound 32 \n", + "23 Glenoaks & Fairmount westbound 33 \n", + "26 Glenoaks & Magnolia eastbound 32 \n", + "27 Glenoaks & Magnolia westbound 33 \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \\\n", + "37 Alameda / San Fernando 18009 1 \n", + "36 San Fernando / Alameda 5453 1 \n", + "19 San Fernando / Scott 12348 2 \n", + "18 San Fernando / Amherst 3865 2 \n", + "13 Empire / Buena Vista 1817 2 \n", + "17 San Fernando / Grismer 12346 2 \n", + "16 San Fernando / Grismer 3868 2 \n", + "12 Empire / Ontario 1821 2 \n", + "15 Empire / Valpreda 4635 2 \n", + "14 Empire / Valpreda 1249 2 \n", + "38 Alameda / Lake 18119 1 \n", + "39 Alameda / Lake 18119 1 \n", + "20 Glenoaks / Bethany 3579 1 \n", + "21 Glenoaks / Bethany 12066 1 \n", + "25 Glenoaks / Cypress 12067 1 \n", + "24 Glenoaks / Cypress 3580 1 \n", + "22 Glenoaks / Fairmount 3582 1 \n", + "23 Glenoaks / Fairmount 12069 1 \n", + "26 Glenoaks / Magnolia 12068 1 \n", + "27 Glenoaks / Magnolia 3581 1 \n", + "\n", + " nearest_stop_distance_m \n", + "37 2.687190 \n", + "36 7.978711 \n", + "19 34.604805 \n", + "18 19.141396 \n", + "13 4.753653 \n", + "17 1.437015 \n", + "16 3.279378 \n", + "12 6.957365 \n", + "15 26.482175 \n", + "14 3.950005 \n", + "38 354.144771 \n", + "39 369.626070 \n", + "20 3.408427 \n", + "21 10.358120 \n", + "25 0.412399 \n", + "24 2.467332 \n", + "22 0.698583 \n", + "23 1.751648 \n", + "26 0.516036 \n", + "27 2.050384 " + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_orange[['stop_name', 'direction', 'n_arrivals_base', 'matched_stop_name', 'matched_stop_id', 'matched_n_routes', 'nearest_stop_distance_m']].sort_values('stop_name').head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "51ba1872-0315-4e91-ac93-1e4512191513", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionn_arrivals_basematched_stop_namematched_stop_idmatched_n_routes
8Alameda & Keystoneeastbound17Buena Vista / Alameda158401
35Alameda & Keystonewestbound17Buena Vista / Alameda158401
4Alameda & Lakeeastbound16Alameda / Lake181191
31Alameda & Lakewestbound16Alameda / Lake180751
32Alameda & Mainwestbound275Cesar E Chavez / Alameda92184
5Alameda & Maineastbound275Cesar E Chavez / Alameda92184
6Alameda & Mariposaeastbound16Victory / Alameda180761
33Alameda & Mariposawestbound17Olive / Reese180711
7Alameda & Reeseeastbound17Olive / Parish180701
34Alameda & Reesewestbound17Olive / Keystone180691
30Alameda & San Fernandowestbound16Alameda / San Fernando180091
3Alameda & San Fernandoeastbound46San Fernando / Alameda54531
9Alameda / Buena Vistaeastbound23Alameda / Buena Vista501000001
36Alameda / Buena Vistawestbound24Alameda / Buena Vista74871
41Buena Vista & Burbankwestbound15Burbank / Buena Vista75341
15Buena Vista & Burbankeastbound16Burbank / Buena Vista158801
14Buena Vista & Chandlereastbound46Magnolia / Buena Vista202831
40Buena Vista & Chandlerwestbound15Burbank / Buena Vista75341
39Buena Vista & Clarkwestbound48Magnolia / Buena Vista201531
12Buena Vista & Clarkeastbound48Magnolia / Buena Vista201531
\n", + "
" + ], + "text/plain": [ + " stop_name direction n_arrivals_base \\\n", + "8 Alameda & Keystone eastbound 17 \n", + "35 Alameda & Keystone westbound 17 \n", + "4 Alameda & Lake eastbound 16 \n", + "31 Alameda & Lake westbound 16 \n", + "32 Alameda & Main westbound 275 \n", + "5 Alameda & Main eastbound 275 \n", + "6 Alameda & Mariposa eastbound 16 \n", + "33 Alameda & Mariposa westbound 17 \n", + "7 Alameda & Reese eastbound 17 \n", + "34 Alameda & Reese westbound 17 \n", + "30 Alameda & San Fernando westbound 16 \n", + "3 Alameda & San Fernando eastbound 46 \n", + "9 Alameda / Buena Vista eastbound 23 \n", + "36 Alameda / Buena Vista westbound 24 \n", + "41 Buena Vista & Burbank westbound 15 \n", + "15 Buena Vista & Burbank eastbound 16 \n", + "14 Buena Vista & Chandler eastbound 46 \n", + "40 Buena Vista & Chandler westbound 15 \n", + "39 Buena Vista & Clark westbound 48 \n", + "12 Buena Vista & Clark eastbound 48 \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \n", + "8 Buena Vista / Alameda 15840 1 \n", + "35 Buena Vista / Alameda 15840 1 \n", + "4 Alameda / Lake 18119 1 \n", + "31 Alameda / Lake 18075 1 \n", + "32 Cesar E Chavez / Alameda 9218 4 \n", + "5 Cesar E Chavez / Alameda 9218 4 \n", + "6 Victory / Alameda 18076 1 \n", + "33 Olive / Reese 18071 1 \n", + "7 Olive / Parish 18070 1 \n", + "34 Olive / Keystone 18069 1 \n", + "30 Alameda / San Fernando 18009 1 \n", + "3 San Fernando / Alameda 5453 1 \n", + "9 Alameda / Buena Vista 50100000 1 \n", + "36 Alameda / Buena Vista 7487 1 \n", + "41 Burbank / Buena Vista 7534 1 \n", + "15 Burbank / Buena Vista 15880 1 \n", + "14 Magnolia / Buena Vista 20283 1 \n", + "40 Burbank / Buena Vista 7534 1 \n", + "39 Magnolia / Buena Vista 20153 1 \n", + "12 Magnolia / Buena Vista 20153 1 " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_blue[['stop_name', 'direction', 'n_arrivals_base', 'matched_stop_name', 'matched_stop_id', 'matched_n_routes',]].sort_values('stop_name').head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "a6c6c192-f74a-4585-bf29-ce12e2105574", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Glenoaks & Providencia', 'westbound', 'adding_existing'),\n", + " ('Alameda & San Fernando', 'eastbound', 'adding_existing'),\n", + " ('Alameda & San Fernando', 'westbound', 'adding_existing'),\n", + " ('Glenoaks / Alameda', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks & Providencia', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks / Alameda', 'westbound', 'adding_existing')]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "orange_stops = set(zip(df_new_orange['stop_name'], df_new_orange['direction'], df_new_orange['change_type'], ))\n", + "blue_stops = set(zip(df_new_blue['stop_name'], df_new_blue['direction'], df_new_blue['change_type']))\n", + "\n", + "common_stops = orange_stops & blue_stops\n", + "list(common_stops)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "44a78d88-5ee2-4476-bad6-077dc5a1c56b", + "metadata": {}, + "outputs": [], + "source": [ + "df_new_orange['source'] = 'orange'\n", + "df_new_blue['source'] = 'blue'" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "6eb322ad-e81d-43c7-aa40-4eaa6b129d2c", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined = pd.concat([df_new_orange, df_new_blue], ignore_index=True)\n", + "df_combined = df_combined[\n", + " df_combined['change_type'].isin(['new_stop', 'adding_existing'])\n", + "].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "056af27d-c6b4-4e2f-8675-69c7c44668a6", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['key'] = list(zip(\n", + " df_combined['stop_name'],\n", + " df_combined['direction'],\n", + " df_combined['change_type']\n", + "))\n", + "\n", + "df_combined['is_common'] = df_combined['key'].isin(common_stops)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "53fcc11a-5a46-45eb-a58f-69fca23554d3", + "metadata": {}, + "outputs": [], + "source": [ + "# REMOVE duplicate rows for common stops\n", + "df_combined = (\n", + " df_combined\n", + " .sort_values('source') # keeps orange if duplicate exists\n", + " .drop_duplicates(subset=['key'], keep='first')\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "f706ac72-936a-46fa-8994-908e72968689", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['n_routes_base'] = np.where(\n", + " df_combined['change_type'] == 'new_stop',\n", + " 0,\n", + " df_combined['n_routes_base']\n", + ")\n", + "\n", + "df_combined['n_routes_scn'] = np.where(\n", + " df_combined['change_type'] == 'new_stop',\n", + " 1,\n", + " df_combined['n_routes_base'] + 1\n", + ")\n", + "\n", + "# instead of forcing 2, increment properly\n", + "df_combined.loc[\n", + " df_combined['is_common'] & (df_combined['change_type'] == 'adding_existing'),\n", + " 'n_routes_scn'\n", + "] += 1\n" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "72301442-3a71-4448-bd99-cb25116539ee", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['stop_name', 'direction', 'change_type', 'stop_dir_key', 'latitude',\n", + " 'longitude', 'pt_geom', 'stop_id', 'buffer', 'total_pop_adj',\n", + " 'workers_with_no_car_adj', 'total_seniors_adj', 'total_youth_adj',\n", + " 'inc_total_lowincome_adj', 'n_arrivals', 'n_routes', 'n_routes_base',\n", + " 'nearest_stop_distance_m', 'matched_feed_key', 'matched_stop_name',\n", + " 'matched_stop_id', 'matched_n_routes', 'matched_agency_name',\n", + " 'n_arrivals_base', 'source', 'key', 'is_common', 'n_routes_scn'],\n", + " dtype='object')" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_combined.columns" + ] + }, + { + "cell_type": "markdown", + "id": "64cf3875-a0cc-43e9-a19b-b36252fbbd9f", + "metadata": {}, + "source": [ + "Orange route currently has 51 arrivals; Proposed Blue Routes service :would operate every 20 minutes from 6:00am to 8:00pm, Monday through Friday = 43 arrivals per day." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "93666c83-c8be-4e00-b455-005fa305e6aa", + "metadata": {}, + "outputs": [], + "source": [ + "# apply base reset\n", + "is_new = df_combined['change_type'] == 'new_stop'\n", + "df_combined.loc[is_new, 'n_arrivals_base'] = 0\n", + "\n", + "# define correct increment\n", + "increment = np.where(\n", + " df_combined['is_common'],\n", + " 89, \n", + " df_combined['source'].map({'orange': 45, 'blue': 44})\n", + ")\n", + "\n", + "# final calculation \n", + "df_combined['n_arrivals_scn'] = df_combined['n_arrivals_base'] + increment\n" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "ce8299ba-8b45-4449-913c-5f1138e9a9ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_idbuffertotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjn_arrivalsn_routesn_routes_basenearest_stop_distance_mmatched_feed_keymatched_stop_namematched_stop_idmatched_n_routesmatched_agency_namen_arrivals_basesourcekeyis_commonn_routes_scnn_arrivals_scn
45Alameda & Maineastboundnew_stopAlameda & Main eastbound34.058825-118.237278POINT (385815.509 3769368.949)new_6POLYGON ((386220.181 3769368.949, 386218.233 3...4217.842162139.410239586.593147428.3096061993.392782NaNNaN094.9386468d9623a1823a27925b7e2f00e44fc5bbCesar E Chavez / Alameda921848d9623a1823a27925b7e2f00e44fc5bb0blue(Alameda & Main, eastbound, new_stop)False144
66Verdugo & Ikea Waywestboundadding_existingVerdugo & Ikea Way westbound34.177147-118.307473POINT (379505.037 3782570.325)new_27POLYGON ((379909.709 3782570.325, 379907.761 3...2363.59648969.808219432.243641247.9541901308.536414NaNNaN69.4068208d9623a1823a27925b7e2f00e44fc5bbVerdugo / Ikea168268d9623a1823a27925b7e2f00e44fc5bb144blue(Verdugo & Ikea Way, westbound, adding_existing)False7188
65Cohasset & Bloomingtoneastboundnew_stopCohasset & Bloomington eastbound34.206547-118.345238POINT (376067.409 3785875.904)new_26POLYGON ((376472.081 3785875.904, 376470.133 3...1353.34812314.113858241.864080130.031029661.384824NaNNaN0290.1600708d9623a1823a27925b7e2f00e44fc5bbGlenoaks / Cabrini1076018d9623a1823a27925b7e2f00e44fc5bb0blue(Cohasset & Bloomington, eastbound, new_stop)False144
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "45 Alameda & Main eastbound new_stop \n", + "66 Verdugo & Ikea Way westbound adding_existing \n", + "65 Cohasset & Bloomington eastbound new_stop \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "45 Alameda & Main eastbound 34.058825 -118.237278 \n", + "66 Verdugo & Ikea Way westbound 34.177147 -118.307473 \n", + "65 Cohasset & Bloomington eastbound 34.206547 -118.345238 \n", + "\n", + " pt_geom stop_id \\\n", + "45 POINT (385815.509 3769368.949) new_6 \n", + "66 POINT (379505.037 3782570.325) new_27 \n", + "65 POINT (376067.409 3785875.904) new_26 \n", + "\n", + " buffer total_pop_adj \\\n", + "45 POLYGON ((386220.181 3769368.949, 386218.233 3... 4217.842162 \n", + "66 POLYGON ((379909.709 3782570.325, 379907.761 3... 2363.596489 \n", + "65 POLYGON ((376472.081 3785875.904, 376470.133 3... 1353.348123 \n", + "\n", + " workers_with_no_car_adj total_seniors_adj total_youth_adj \\\n", + "45 139.410239 586.593147 428.309606 \n", + "66 69.808219 432.243641 247.954190 \n", + "65 14.113858 241.864080 130.031029 \n", + "\n", + " inc_total_lowincome_adj n_arrivals n_routes n_routes_base \\\n", + "45 1993.392782 NaN NaN 0 \n", + "66 1308.536414 NaN NaN 6 \n", + "65 661.384824 NaN NaN 0 \n", + "\n", + " nearest_stop_distance_m matched_feed_key \\\n", + "45 94.938646 8d9623a1823a27925b7e2f00e44fc5bb \n", + "66 9.406820 8d9623a1823a27925b7e2f00e44fc5bb \n", + "65 290.160070 8d9623a1823a27925b7e2f00e44fc5bb \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \\\n", + "45 Cesar E Chavez / Alameda 9218 4 \n", + "66 Verdugo / Ikea 1682 6 \n", + "65 Glenoaks / Cabrini 10760 1 \n", + "\n", + " matched_agency_name n_arrivals_base source \\\n", + "45 8d9623a1823a27925b7e2f00e44fc5bb 0 blue \n", + "66 8d9623a1823a27925b7e2f00e44fc5bb 144 blue \n", + "65 8d9623a1823a27925b7e2f00e44fc5bb 0 blue \n", + "\n", + " key is_common n_routes_scn \\\n", + "45 (Alameda & Main, eastbound, new_stop) False 1 \n", + "66 (Verdugo & Ikea Way, westbound, adding_existing) False 7 \n", + "65 (Cohasset & Bloomington, eastbound, new_stop) False 1 \n", + "\n", + " n_arrivals_scn \n", + "45 44 \n", + "66 188 \n", + "65 44 " + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_combined.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "0fda613d-8e5a-41cb-b13e-88b4cbe37803", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['stop_group'] = df_combined['stop_name']\n", + "\n", + "df_grouped = df_combined.groupby('stop_group').agg({\n", + " 'n_arrivals_base': 'mean',\n", + " 'n_arrivals_scn': 'mean',\n", + " 'n_routes_base': 'mean',\n", + " 'n_routes_scn': 'mean',\n", + " 'total_pop_adj': 'mean',\n", + " 'workers_with_no_car_adj': 'mean',\n", + " 'total_youth_adj': 'mean',\n", + " 'total_seniors_adj': 'mean',\n", + " 'inc_total_lowincome_adj': 'mean',\n", + " 'change_type': lambda x: ', '.join(sorted(x.unique()))\n", + "}).reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "ddb3f6e3-354a-4cef-a3f8-1fbd67f009b2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['stop_group', 'n_arrivals_base', 'n_arrivals_scn', 'n_routes_base',\n", + " 'n_routes_scn', 'total_pop_adj', 'workers_with_no_car_adj',\n", + " 'total_youth_adj', 'total_seniors_adj', 'inc_total_lowincome_adj',\n", + " 'change_type'],\n", + " dtype='object')" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_grouped.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "c5d0bdfa-162b-4599-9542-347e8ed64b77", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank_existing = stop_route_df[stop_route_df['organization_name'] == \"City of Burbank\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "71376262-2458-42cb-9559-4448854868f3", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank_existing = df_burbank_existing[\n", + " ~df_burbank_existing['stop_name'].isin(df_grouped['stop_group'])\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "58a76ee2-9c75-4f5d-bf6b-ac9fb517b19b", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank_existing['n_arrivals_base'] = 0\n", + "df_burbank_existing['n_arrivals_scn'] = df_burbank_existing['route_id_list'].apply(\n", + " lambda x: 30 if '3162' in x else 45\n", + ")\n", + "df_burbank_existing = df_burbank_existing.rename(columns={\n", + " 'stop_name': 'stop_group'\n", + "})\n", + "df_burbank_existing['n_routes_base'] = df_burbank['n_routes']\n", + "df_burbank_existing['n_routes_scn'] = df_burbank['n_routes']\n", + "df_burbank_existing['change_type'] = 'already_present'\n", + "\n", + "\n", + "df_burbank_filtered = df_burbank_existing[\n", + " [ 'stop_group',\n", + " 'n_arrivals_base',\n", + " 'n_arrivals_scn',\n", + " 'n_routes_base',\n", + " 'n_routes_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_seniors_adj',\n", + " 'total_youth_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'change_type'\n", + " \n", + " ]\n", + "]\n", + "\n", + "\n", + "# Append\n", + "df_combined_new_service = pd.concat([df_burbank_filtered, \n", + " df_grouped], ignore_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "eb74729b-8888-41b9-b76f-d107c12814cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_groupn_arrivals_basen_arrivals_scnn_routes_basen_routes_scntotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjchange_type
62Empire & Ontario67.0112.02.03.01110.03084821.308684135.845753136.235100521.248016adding_existing
3Buena Vista & Alameda SB0.030.01.01.01083.59697215.376402151.42217381.134898480.226481already_present
0Alameda & Bob Hope EB0.030.01.01.0899.10094524.30813657.619286103.234554361.621041already_present
19Metrolink Station0.030.01.01.02032.08956356.683930352.667709211.5414111093.399917already_present
69Glenoaks & Olive0.045.00.01.03858.865324127.600027894.894966363.5452712363.578848new_stop
\n", + "
" + ], + "text/plain": [ + " stop_group n_arrivals_base n_arrivals_scn n_routes_base \\\n", + "62 Empire & Ontario 67.0 112.0 2.0 \n", + "3 Buena Vista & Alameda SB 0.0 30.0 1.0 \n", + "0 Alameda & Bob Hope EB 0.0 30.0 1.0 \n", + "19 Metrolink Station 0.0 30.0 1.0 \n", + "69 Glenoaks & Olive 0.0 45.0 0.0 \n", + "\n", + " n_routes_scn total_pop_adj workers_with_no_car_adj total_seniors_adj \\\n", + "62 3.0 1110.030848 21.308684 135.845753 \n", + "3 1.0 1083.596972 15.376402 151.422173 \n", + "0 1.0 899.100945 24.308136 57.619286 \n", + "19 1.0 2032.089563 56.683930 352.667709 \n", + "69 1.0 3858.865324 127.600027 894.894966 \n", + "\n", + " total_youth_adj inc_total_lowincome_adj change_type \n", + "62 136.235100 521.248016 adding_existing \n", + "3 81.134898 480.226481 already_present \n", + "0 103.234554 361.621041 already_present \n", + "19 211.541411 1093.399917 already_present \n", + "69 363.545271 2363.578848 new_stop " + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_combined_new_service.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "db5df34e-0dd3-4998-9d89-ffd81328589a", + "metadata": {}, + "outputs": [], + "source": [ + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\",\n", + " \"New BUR terminal\",\n", + " \n", + "]\n", + "\n", + "df_combined_new_service[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_combined_new_service.loc[\n", + " df_combined_new_service[\"stop_group\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "2d549fe3-0f2e-4c5d-ac6f-dc323b2a6a69", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn = df_combined_new_service[[\n", + " 'n_routes_scn',\n", + " 'n_arrivals_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'has_rail_connection_dummy'\n", + "]].copy()\n", + "\n", + "\n", + "\n", + "X_scn = X_scn.rename(columns={\n", + " 'n_routes_scn': 'n_routes',\n", + " 'n_arrivals_scn': 'n_arrivals'\n", + " \n", + "})\n", + "X_scn[\"log_arrivals\"] = np.log(X_scn[\"n_arrivals\"] + 1)\n", + "\n", + "X_scn = sm.add_constant(X_scn)\n", + "X_scn = X_scn[model_fe.model.exog_names]\n", + "df_combined_new_service['pred_scenario'] = model_fe.predict(X_scn)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "cd3a3883-8f57-446e-af8b-573d098b1abb", + "metadata": {}, + "outputs": [], + "source": [ + "X_base = df_combined_new_service[[\n", + " 'n_routes_base',\n", + " 'n_arrivals_base',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'has_rail_connection_dummy'\n", + "]].fillna(0)\n", + "\n", + "X_base = X_base.rename(columns={\n", + " 'n_routes_base': 'n_routes',\n", + " 'n_arrivals_base': 'n_arrivals'\n", + "})\n", + "\n", + "X_base[\"log_arrivals\"] = np.log(X_base[\"n_arrivals\"] + 1)\n", + "\n", + "X_base = sm.add_constant(X_base)\n", + "X_base = X_base[model_fe.model.exog_names]\n", + "df_combined_new_service['pred_baseline'] = model_fe.predict(X_base)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "fda44ec2-62d7-4809-b43c-bd287cf58443", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined_new_service['ridership_change'] = (\n", + " df_combined_new_service['pred_scenario'] - df_combined_new_service['pred_baseline']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "a9392504-ad1c-407f-9204-1663043528d6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "205.83370420517338\n" + ] + } + ], + "source": [ + "ridership_change_saturday= df_combined_new_service[\"ridership_change\"].sum()\n", + "print(ridership_change_saturday)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "761fb182-7c97-4889-b193-f095c1f64848", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "85.0093198367366" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_change_saturday*0.413" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1ed0ee7-50d2-4958-9c9d-c3a4f5d7c9c7", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "79bdc190-3bf0-4fc8-ac41-4df7eefe99ee", + "metadata": {}, + "source": [ + "## Querying NTD Ridership Data for Burbank Bus Service" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "21b9bd94-53e9-4086-9350-3b85e6206ece", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying NTD Ridership data \n", + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name, mode, unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_mode_time_periods\n", + " WHERE \n", + " state = 'CA' AND report_year = 2024 AND mode = 'MB'\n", + " \"\"\"\n", + " ridership_data_bus= pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "500102af-ee48-45be-8f4c-00b79b58572e", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying NTD Ridership data \n", + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name, mode, unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_mode_time_periods\n", + " WHERE \n", + " state = 'CA' AND report_year = 2024 \n", + " \"\"\"\n", + " ridership_data= pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "e3d6c322-f0ef-4b7f-ae29-6791743a322f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5777028.0" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_ridership = ridership_data.unlinked_passenger_trips_upt.sum()\n", + "total_ridership" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "9b2cc358-7dd4-410a-a96d-3661c0d13671", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3953615.0" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_bus_ridership = ridership_data_bus.unlinked_passenger_trips_upt.sum()\n", + "total_bus_ridership" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "2f48c87c-4e8c-472e-9a27-f6a8f127c163", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "68.43683291824101" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(total_bus_ridership/total_ridership)*100" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "060a0281-b5ed-47a6-ae89-857f5c07bc19", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying NTD Ridership data \n", + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name, unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_agencies\n", + " WHERE \n", + " state = 'CA' AND report_year = 2024 \n", + " AND agency IN (\n", + " 'City of Burbank',\n", + " 'Southern California Regional Rail Authority, dba: Metrolink',\n", + " 'Los Angeles County Metropolitan Transportation Authority , dba: Metro'\n", + " )\n", + " \"\"\"\n", + " ridership_data= pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "4574dcbd-a09a-4f30-a13f-5e5e414e4e9d", + "metadata": {}, + "outputs": [], + "source": [ + "# City of Burbank UPT\n", + "burbank_upt = ridership_data.loc[\n", + " ridership_data[\"agency\"] == \"City of Burbank\",\n", + " \"unlinked_passenger_trips_upt\"\n", + "].iloc[0]\n", + "\n", + "# City of Burbank average daily ridership\n", + "burbank_avg_daily = burbank_upt / 365" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "da312c75-80af-4dfc-8297-68cabdabe6de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "579.5698630136986" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "burbank_avg_daily" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Pyproject Local (use-venv)", + "language": "python", + "name": "pyproject_local_kernel_use_venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Sunday.ipynb b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Sunday.ipynb new file mode 100644 index 000000000..550a24f2f --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Sunday.ipynb @@ -0,0 +1,3593 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bea06387-a0e0-4766-8a17-ac0de2b240e1", + "metadata": {}, + "source": [ + "# BurbankBus Ridership Modeling Sunday: Analytical Summary and Interpretation" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dd2eb2bc-ba32-4faf-a61f-64b8d4a93dd0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/bin/python: No module named pip\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install shared_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ebdc88e9-5c08-4416-bb29-9931f927f551", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "pd.set_option('display.max_columns', None)\n", + "\n", + "import statsmodels.api as sm\n", + "from scipy.stats import skew\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "69782f04-24f3-48ea-a502-6d1589c68fa5", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df.parquet\", \"rb\") as f: \n", + " stop_route_df = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "db56f926-980f-42af-89f8-6ba4468cdd76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['organization_name', 'feed_key', 'stop_id', 'stop_name', 'stop_code',\n", + " 'n_arrivals', 'n_routes', 'pt_geom', 'day_type', 'route_id_list',\n", + " 'average_daily_boardings', 'average_daily_alightings', 'start_date',\n", + " 'end_date', 'geometry', 'total_pop_adj', 'poverty_pop_adj',\n", + " 'non_us_citizen_adj', 'workers_with_no_car_adj',\n", + " 'households_with_no_cars_adj', 'disabled_pop_adj',\n", + " 'public_asst_pop_adj', 'inc_extremelylow_adj', 'inc_verylow_adj',\n", + " 'inc_low_adj', 'male_seniors_adj', 'female_seniors_adj',\n", + " 'veteran_pop_adj', 'male_youth_adj', 'inc_total_lowincome_adj',\n", + " 'female_youth_adj', 'total_seniors_adj', 'jobs_tot_adj',\n", + " 'total_youth_adj', 'ALAND_adj'],\n", + " dtype='object')" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stop_route_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6b90669b-5d97-47da-9056-00496b8001a1", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert n_arrivals and n_routes to integer\n", + "stop_route_df['n_arrivals'] = stop_route_df['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df['n_routes'] = stop_route_df['n_routes'].fillna(0).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7e41c9f0-9e78-4f41-8657-37747218def7", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank = stop_route_df[stop_route_df['organization_name'] == \"City of Burbank\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "23117df7-8e6b-47c3-aa0c-4965517dde3a", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/geopandas/geodataframe.py:1528: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "df_burbank[\"log_arrivals\"] = np.log(df_burbank[\"n_arrivals\"] + 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "aed87242-a621-4a69-8357-29a4ee260e13", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/geopandas/geodataframe.py:1528: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\"\n", + "]\n", + "\n", + "df_burbank[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_burbank.loc[\n", + " df_burbank[\"stop_name\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1\n", + "\n", + "\n", + "X = df_burbank[[\n", + " \"n_routes\",\n", + " \"log_arrivals\",\n", + " \"total_pop_adj\",\n", + " \"workers_with_no_car_adj\",\n", + " \"total_seniors_adj\",\n", + " \"inc_total_lowincome_adj\",\n", + " \"has_rail_connection_dummy\",\n", + " \"total_youth_adj\"\n", + "]].copy()\n", + "\n", + "X = sm.add_constant(X, has_constant=\"add\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "af3e0f0a-7ac4-4b36-8cdb-0785f620df79", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 45\n", + "Model: GLM Df Residuals: 37\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -104.77\n", + "Date: Mon, 11 May 2026 Deviance: 26.862\n", + "Time: 22:02:31 Pearson chi2: 21.2\n", + "No. Iterations: 18 Pseudo R-squ. (CS): 0.5294\n", + "Covariance Type: nonrobust \n", + "=============================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "---------------------------------------------------------------------------------------------\n", + "const -3.6180 4.061 -0.891 0.373 -11.577 4.341\n", + "n_routes -3.6180 4.061 -0.891 0.373 -11.577 4.341\n", + "log_arrivals 1.9853 2.106 0.942 0.346 -2.143 6.114\n", + "total_pop_adj 0.0014 0.002 0.764 0.445 -0.002 0.005\n", + "workers_with_no_car_adj 0.0301 0.018 1.707 0.088 -0.004 0.065\n", + "total_seniors_adj 0.0081 0.004 1.989 0.047 0.000 0.016\n", + "inc_total_lowincome_adj -0.0059 0.002 -2.395 0.017 -0.011 -0.001\n", + "has_rail_connection_dummy 1.8884 1.135 1.663 0.096 -0.337 4.114\n", + "total_youth_adj 0.0021 0.008 0.254 0.800 -0.014 0.019\n", + "=============================================================================================\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + } + ], + "source": [ + "model_fe = sm.GLM(\n", + " df_burbank[\"average_daily_boardings\"],\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(model_fe.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "75d04dd7-b987-48d0-823d-9e29c6d71341", + "metadata": {}, + "outputs": [], + "source": [ + "# observed values\n", + "observed = df_burbank[\"average_daily_boardings\"]\n", + "\n", + "# predicted values from fixed-effects model\n", + "predicted = model_fe.predict()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0308ac20-e164-4aa3-a22e-63ce66549980", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAIjCAYAAABLZcwsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAiz5JREFUeJzs3Xd8E/UbB/BPOpKGjpQCBTpoC5Rd9pC9l+y9ZajgDxAQQUBFNogogooMB0P2VkBA9pJdWbJaKKuMsjrpTL6/P84G0pm0aS9tPu/Xqy96l8vd0yNpnn7vueerEEIIEBEREVGuspE7ACIiIiJrxCSMiIiISAZMwoiIiIhkwCSMiIiISAZMwoiIiIhkwCSMiIiISAZMwoiIiIhkwCSMiIiISAZMwoiIiIhkwCSMsmzq1KlQKBR49uyZ3KHkOoVCgalTp8odhuyaNGmCJk2a6Jfv3LkDhUKBFStWyBZTSiljzEh0dDTc3d2xZs2anA1KBoMGDYKvr6/cYWTo8OHDUCgUOHz4sNyhZMiU11RKefV3R+/evdGzZ0+5w8h3mISRgX///Rf9+/eHp6cnVCoVPDw80K9fP/z7779yh0YpJH9gJX/Z29ujZMmSeOedd3D79m25wzPJ33//jalTpyI8PFzWOBYuXAhnZ2f07t1bvy75j42iRYvi1atXqZ7j6+uL9u3b52aY6Xr48CGmTp2KCxcuyB2K3qBBgwxep3Z2dvD29kbv3r1x9epVucOzaJGRkZg1axZq1qwJjUYDlUoFHx8f9OrVC7t27TLYNvn3webNmzPcZ/L/w3vvvZfm45999pl+mzf/wJ4wYQK2bNmCixcvZv8HIz07uQMgy7F161b06dMHbm5uePfdd+Hn54c7d+7gl19+webNm7F+/Xp06dJF7jAphVGjRqFWrVpITExEYGAgli1bhl27duHy5cvw8PDI1Vh8fHwQGxsLe3t7k573999/Y9q0aRg0aBBcXV1zJrhMJCYmYuHChfjoo49ga2ub6vGwsDAsXrwYH3/8sQzRGefhw4eYNm0afH19UbVqVYPHfvrpJ+h0OlniUqlU+PnnnwEASUlJuHXrFpYsWYI9e/bg6tWr+tdpo0aNEBsbC6VSKUucxvrrr79y/BjBwcFo3bo17t69iy5duuCdd96Bk5MT7t+/jz///BPt27fHqlWrMGDAAJP37eDggC1btuDHH39Mda7XrVsHBwcHxMXFGayvVq0aatasiW+++QarVq3K1s9GrzEJIwDArVu3MGDAAJQsWRJHjx5FkSJF9I+NHj0aDRs2xIABA3Dp0iWULFlSxkhT0+l0SEhIgIODg9yhyKJhw4bo3r07AGDw4MEoU6YMRo0ahZUrV2LSpElpPicmJgaOjo5mj0WhUOTZ/4edO3fi6dOn6V5yqVq1KubNm4fhw4dDrVbncnTZZ2pibE52dnbo37+/wbq33noL7du3x65du/D+++8DAGxsbPLE6yenk8SkpCR06dIFT548wZEjR1C/fn2Dx6dMmYK//voLWq02S/tv06YN/vjjD+zevRudOnXSr//7778REhKCbt26YcuWLame17NnT0yZMgU//vgjnJycsnRsMsTLkQQAmDdvHl69eoVly5YZJGAAULhwYSxduhQxMTH46quvUj332bNn6NmzJ1xcXFCoUCGMHj061V9R+/btQ4MGDeDq6gonJyeULVsWn376qcE28fHxmDJlCkqXLg2VSgVvb2988skniI+PN9hOoVBg5MiRWLNmDSpWrAiVSoUdO3bAzc0NgwcPThVfZGQkHBwcMG7cOJOPFR8fj48++ghFihSBs7MzOnbsiAcPHmR6Pp88eQI7OztMmzYt1WM3btyAQqHADz/8AEAagZk2bRr8/f3h4OCAQoUKoUGDBti3b1+mx0lLs2bNAAAhISEAXl9Ou3r1Kvr27YuCBQuiQYMG+u1Xr16NGjVqQK1Ww83NDb1798b9+/dT7XfZsmUoVaoU1Go1ateujWPHjqXaJr2asOvXr6Nnz54oUqQI1Go1ypYti88++0wf3/jx4wEAfn5++kshd+7cyZEY07N9+3b4+vqiVKlSaT7+xRdf4MmTJ1i8eHGm+9LpdFiwYAEqVqwIBwcHFC1aFMOGDcPLly9TbTd16lR4eHigQIECaNq0Ka5evQpfX18MGjRIv92LFy8wbtw4BAQEwMnJCS4uLmjbtq3BpaHDhw+jVq1aAKRkPPk8Jv9fvFkTlpiYmCPvF1MUK1YMgJSgvfkzpKwJa9KkCSpVqoSrV6+iadOmKFCgADw9PdP8XRQWFoZ3330XRYsWhYODA6pUqYKVK1cabJP8Gv3666+xaNEilCxZEgUKFECrVq1w//59CCEwY8YMeHl5Qa1Wo1OnTnjx4oXBPlLWhCUkJOCLL75AjRo1oNFo4OjoiIYNG+LQoUNZOjebNm3ClStXMHny5FQJWLJWrVqhbdu2Wdq/p6cnGjVqhLVr1xqsX7NmDQICAlCpUqU0n9eyZUvExMRk+XcTpcaRMAIA7NixA76+vmjYsGGajzdq1Ai+vr6p6hAA6a8jX19fzJkzB6dOncJ3332Hly9f6oes//33X7Rv3x6VK1fG9OnToVKpEBwcjBMnTuj3odPp0LFjRxw/fhxDhw5F+fLlcfnyZXz77be4efMmtm/fbnDMgwcPYuPGjRg5ciQKFy4Mf39/dOnSBVu3bsXSpUsN/lLdvn074uPj9XU+phzrvffew+rVq9G3b1/Uq1cPBw8eRLt27TI9n0WLFkXjxo2xceNGTJkyxeCxDRs2wNbWFj169AAgJSFz5szBe++9h9q1ayMyMhLnzp1DYGAgWrZsmemxUrp16xYAoFChQgbre/ToAX9/f8yePRtCCADArFmzMHnyZPTs2RPvvfcenj59iu+//x6NGjXCP//8o780+Msvv2DYsGGoV68exowZg9u3b6Njx45wc3ODt7d3hvFcunQJDRs2hL29PYYOHQpfX1/cunULO3bswKxZs9C1a1fcvHkT69atw7fffovChQsDgP6PgdyIEZBGAapXr57u4w0bNkSzZs3w1Vdf4X//+1+Go2HDhg3DihUrMHjwYIwaNQohISH44Ycf8M8//+DEiRP6UalJkybhq6++QocOHdC6dWtcvHgRrVu3TvVHzO3bt7F9+3b06NEDfn5+ePLkCZYuXYrGjRvrL+eVL18e06dPxxdffIGhQ4fq38v16tVLFZ+9vX2OvF8yklxfpNVqcfv2bUyYMAGFChUyqp7u5cuXaNOmDbp27YqePXti8+bNmDBhAgICAvSJSGxsLJo0aYLg4GCMHDkSfn5+2LRpEwYNGoTw8HCMHj3aYJ9r1qxBQkICPvzwQ7x48QJfffUVevbsiWbNmuHw4cOYMGECgoOD8f3332PcuHH49ddf040vMjISP//8M/r06YP3338fUVFR+OWXX9C6dWucOXMm1aXhzOzYsQMAUo0emlPfvn0xevRoREdHw8nJCUlJSdi0aRPGjh2b6vWXrEKFClCr1Thx4gRLU8xFkNULDw8XAESnTp0y3K5jx44CgIiMjBRCCDFlyhQBQHTs2NFgu+HDhwsA4uLFi0IIIb799lsBQDx9+jTdff/222/CxsZGHDt2zGD9kiVLBABx4sQJ/ToAwsbGRvz7778G2+7du1cAEDt27DBY//bbb4uSJUuafKwLFy4IAGL48OEG2/Xt21cAEFOmTEn35xFCiKVLlwoA4vLlywbrK1SoIJo1a6ZfrlKlimjXrl2G+0rLoUOHBADx66+/iqdPn4qHDx+KXbt2CV9fX6FQKMTZs2eFEK//n/r06WPw/Dt37ghbW1sxa9Ysg/WXL18WdnZ2+vUJCQnC3d1dVK1aVcTHx+u3W7ZsmQAgGjdurF8XEhIiAIjly5fr1zVq1Eg4OzuLu3fvGhxHp9Ppv583b54AIEJCQnI8xrQkJiYKhUIhPv7441SPJZ+/p0+fiiNHjggAYv78+frHfXx8DP7/jh07JgCINWvWGOxnz549BusfP34s7OzsROfOnQ22mzp1qgAgBg4cqF8XFxcntFqtwXYhISFCpVKJ6dOn69edPXs21flPNnDgQOHj46NfNvf7JT0DBw4UAFJ9eXp6ivPnzxtsm/yaPnTokH5d48aNBQCxatUq/br4+HhRrFgx0a1bN/26BQsWCABi9erV+nUJCQmibt26wsnJSf97K/k1WqRIEREeHq7fdtKkSQKAqFKlikhMTNSv79Onj1AqlSIuLs4gpjdfU0lJSQavOyGEePnypShatKgYMmSIwXpjfndUq1ZNuLq6plofHR0tnj59qv+KiIjQP5Z87jZt2pThvgGIESNGiBcvXgilUil+++03IYQQu3btEgqFQty5c8fgNZ9SmTJlRNu2bTM8BhmPlyMJUVFRAABnZ+cMt0t+PDIy0mD9iBEjDJY//PBDAMCff/4JAPqRit9//z3dwuBNmzahfPnyKFeuHJ49e6b/Sr60lnJYv3HjxqhQoYLBumbNmqFw4cLYsGGDft3Lly+xb98+9OrVy+RjJcc/atQog+OMGTMmzZ8hpa5du8LOzs4gnitXruDq1asG8bi6uuLff/9FUFCQUftNaciQIShSpAg8PDzQrl07xMTEYOXKlahZs6bBdh988IHB8tatW6HT6dCzZ0+D81CsWDH4+/vrz8O5c+cQFhaGDz74wGDEZNCgQdBoNBnG9vTpUxw9ehRDhgxBiRIlDB5TKBSZ/my5ESMgXe4TQqBgwYIZbteoUSM0bdoUX331FWJjY9PcZtOmTdBoNGjZsqVBzDVq1ICTk5M+5gMHDiApKQnDhw83eH7y++dNKpUKNjbSr2utVovnz5/rL+sHBgZm+vOlxdzvl4w4ODhg37592LdvH/bu3YulS5fCyckJb7/9Nm7evJnp852cnAxGhZRKJWrXrm1wF/Cff/6JYsWKoU+fPvp19vb2GDVqFKKjo3HkyBGDffbo0cPgtVGnTh0A0ujTm5dI69Spg4SEBISGhqYbn62trf51p9Pp8OLFCyQlJaFmzZpZ+v+JjIxMs+bqs88+Q5EiRfRfffv2NXnfyQoWLIg2bdpg3bp1AIC1a9eiXr168PHxyfR51tiWKKfwciTpk6vkZCw96SVr/v7+BsulSpWCjY2NvqanV69e+Pnnn/Hee+9h4sSJaN68Obp27Yru3bvrP1iCgoJw7dq1VPVoycLCwgyW/fz8Um1jZ2eHbt26Ye3atYiPj4dKpcLWrVuRmJho8KFi7LHu3r0LGxubVDVCZcuWTfN5KRUuXBjNmzfHxo0bMWPGDADSpUg7Ozt07dpVv9306dPRqVMnlClTBpUqVUKbNm0wYMAAVK5c2ajjfPHFF2jYsCFsbW1RuHBhlC9f3uBDJFnKcxYUFAQhRKr/v2TJl8zu3r0LIPX/c3JLjIwkf0imV2OSmdyI8U3iv8u0GZk6dSoaN26MJUuW4KOPPkoz5oiICLi7u6f5/DdfXwBQunRpg8fd3NxSJYM6nQ4LFy7Ejz/+iJCQEIOC7JSXnY1l7vdLRmxtbdGiRQuDdW+//Tb8/f0xadKkNIvA3+Tl5ZUqaS9YsCAuXbqkX7579y78/f31v1OSlS9fXv/4m1L+UZCckKW8dJ28PmU9X0orV67EN998g+vXryMxMVG/Pq3fVZlxdnbG8+fPU60fPny4/vKtOS5V9u3bFwMGDMC9e/ewffv2NOvsUhJCGPUHFBmHSRhBo9GgePHiBr/Q0nLp0iV4enrCxcUlw+1SvkHVajWOHj2KQ4cOYdeuXdizZw82bNiAZs2a4a+//oKtrS10Oh0CAgIwf/78NPeZ8hdjevU4vXv3xtKlS7F792507twZGzduRLly5VClShX9NqYeKzt69+6NwYMH48KFC6hatSo2btyI5s2b6+ueAGl05datW/j999/x119/4eeff8a3336LJUuWpNvL500BAQGpPuDSkvKc6XQ6KBQK7N69O82WDJZw91Nuxejm5gaFQpHpBy0g/X81adIEX331VarRxeSYM2r4ml4yk5HZs2dj8uTJGDJkCGbMmAE3NzfY2NhgzJgx2Wo7Ief7xcvLC2XLlsXRo0cz3Tat/3vAuKTZ1H1m5VirV6/GoEGD0LlzZ4wfPx7u7u6wtbXFnDlz9DWapihXrhwuXLiA0NBQeHp66teXKVMGZcqUAQCz3EXasWNHqFQqDBw4EPHx8UY1Y3358mW6fxSR6ZiEEQCgffv2+Omnn3D8+HGDO+eSHTt2DHfu3MGwYcNSPRYUFGTw115wcDB0Op1Bd24bGxs0b94czZs3x/z58zF79mx89tlnOHToEFq0aIFSpUrh4sWLaN68ebb+ymrUqBGKFy+ODRs2oEGDBjh48KD+Lrxkxh7Lx8cHOp0Ot27dMhj9unHjhtHxdO7cGcOGDdNf8rl582aabSOS71QbPHgwoqOj0ahRI0ydOtWoJCyrSpUqBSEE/Pz89L/Y05J8eSIoKEh/CQqQ7rALCQkx+MBOKXkU6sqVKxnGkt7/Q27ECEijQqVKldLfUZqZqVOnokmTJli6dGmaMe/fvx/169fPsHg/Oebg4GCD98/z589TJYObN29G06ZN8csvvxisDw8PN0joTX3vmPP9khVJSUmIjo42y758fHxw6dIl6HQ6g9Gw69ev6x/PKZs3b0bJkiWxdetWg3OU8qYcY7Vv3x7r16/HmjVr8Mknn5grzFTUajU6d+6M1atXo23btgavpbQkJSXh/v376NixY47FZG1YE0YAgPHjx0OtVmPYsGGphsFfvHiBDz74AAUKFNC3EnjTokWLDJa///57ANDftZTy9m4A+ruFkm9x79mzJ0JDQ/HTTz+l2jY2NhYxMTFG/Rw2Njbo3r07duzYgd9++w1JSUkGl1ZMOVZy/N99953BNgsWLDAqFkCq92rdujU2btyI9evXQ6lUonPnzgbbpDzfTk5OKF26dLZu/zdG165dYWtri2nTpqX6K18IoY+rZs2aKFKkCJYsWYKEhAT9NitWrMi0w32RIkXQqFEj/Prrr7h3716qYyRL7lmWcn+5EWOyunXr4ty5c0Zt27hxYzRp0gRz585NdSdZz549odVq9Zeg35SUlKSPp3nz5rCzs0vV8iK5dcmbbG1tU/38mzZtSlWnlN55TI853y+munnzJm7cuJFpgmyst99+G48fPzaocUtKSsL3338PJycnNG7c2CzHSUvy6Nmb/0enT5/GyZMns7S/nj17okKFCpgxYwZOnTqV5jbZGQV807hx4zBlyhRMnjw5022vXr2KuLi4NO+4pazhSBgBkGppVq5ciX79+iEgICBVx/xnz55h3bp1afZQCgkJQceOHdGmTRucPHlS39Ih+Zfr9OnTcfToUbRr1w4+Pj4ICwvDjz/+CC8vL/2o24ABA7Bx40Z88MEHOHToEOrXrw+tVovr169j48aN2Lt3b6pC8/T06tUL33//PaZMmYKAgAB9TUgyY49VtWpV9OnTBz/++CMiIiJQr149HDhwAMHBwSad2169eqF///748ccf0bp161Qd4StUqIAmTZqgRo0acHNzw7lz57B582aMHDnSpOOYqlSpUpg5cyYmTZqEO3fuoHPnznB2dkZISAi2bduGoUOHYty4cbC3t8fMmTMxbNgwNGvWDL169UJISAiWL19uVL3Vd999hwYNGqB69eoYOnSo/nW1a9cu/fQ6NWrUACAVHvfu3Rv29vbo0KFDrsUIAJ06dcJvv/2GmzdvZjjqlmzKlClo2rRpqvWNGzfGsGHDMGfOHFy4cAGtWrWCvb09goKCsGnTJixcuBDdu3dH0aJFMXr0aHzzzTf698/Fixexe/duFC5c2GBEpX379pg+fToGDx6MevXq4fLly1izZk2qn61UqVJwdXXFkiVL4OzsDEdHR9SpUyfDuiRzvV8ykpSUhNWrVwOQLm/euXMHS5YsgU6ny/JoUUpDhw7F0qVLMWjQIJw/fx6+vr7YvHkzTpw4gQULFmR641F2tG/fHlu3bkWXLl3Qrl07hISEYMmSJahQoUKWRvrs7e2xbds2tG7dGg0aNEDXrl3RsGFDODo6IjQ0FH/88Qfu3buXZrucLVu26Ef/3jRw4MA0Lx1XqVLF6ER43759KFCgQJZa51A6cv1+TLJoly5dEn369BHFixcX9vb2olixYqJPnz6p2iwI8frW/atXr4ru3bsLZ2dnUbBgQTFy5EgRGxur3+7AgQOiU6dOwsPDQyiVSuHh4SH69Okjbt68abC/hIQEMXfuXFGxYkWhUqlEwYIFRY0aNcS0adMMbsXGf7dYp0en0wlvb28BQMycOTPNbYw9VmxsrBg1apQoVKiQcHR0FB06dBD379836jbzZJGRkUKtVqe6fT7ZzJkzRe3atYWrq6tQq9WiXLlyYtasWSIhISHD/Rp7S3pGt5sLIcSWLVtEgwYNhKOjo3B0dBTlypUTI0aMEDdu3DDY7scffxR+fn5CpVKJmjVriqNHj6a6VT+tFhVCCHHlyhXRpUsX4erqKhwcHETZsmXF5MmTDbaZMWOG8PT0FDY2NqnaVZgzxvTEx8eLwoULixkzZhh9/pLbJ6TVYmTZsmWiRo0aQq1WC2dnZxEQECA++eQT8fDhQ/02SUlJYvLkyaJYsWJCrVaLZs2aiWvXrolChQqJDz74QL9dXFyc+Pjjj0Xx4sWFWq0W9evXFydPnkzzZ/v9999FhQoVhJ2dncH/RcoWFcnM+X5JS1otKlxcXETz5s3F/v37DbZNr0VFxYoV09xvyp/nyZMnYvDgwaJw4cJCqVSKgICAVK/F5NfovHnz0jx2yvfT8uXLBQB9y5fkmN487zqdTsyePVv4+PgIlUolqlWrJnbu3JlmjKb87ggPDxfTp08X1apVE05OTkKpVApvb2/RvXv3VK1FkuNP7yu5xUhmvz+FSP81X6dOHdG/f3+jYifjKIQw05gmEVEeN2PGDCxfvhxBQUHpFmjntPDwcBQsWBAzZ85MVZ9FJJcLFy6gevXqCAwMNLn5LKWPNWFERP/56KOPEB0djfXr1+fK8dLqNZZcc/jmtDhEcvvyyy/RvXt3JmBmxpEwIiKZrFixAitWrMDbb78NJycnHD9+HOvWrUOrVq2wd+9eucMjohzGwnwiIplUrlwZdnZ2+OqrrxAZGakv1p85c6bcoRFRLuBIGBEREZEMWBNGREREJAMmYUREREQyyPc1YTqdDg8fPoSzszMnHSUiIqIcJYRAVFQUPDw8Uk0on1K+T8IePnxo1gmZiYiIiDJz//59eHl5ZbhNvk/CkqequH//PlxcXGSOhoiIiPKdrVuBDz4A4uMRWb48vK9dM2qqrHyfhCVfgnRxcWESRkREROa1aBGQPNdv+/bA0qWAp6dRJVAszCciIiLKqgYNACcnYMwYYPt26Xsj5fuRMCIiIiKz0umA5KL7KlWAK1cAHx+Td8ORMCIiIiJjBQUBVasCJ068XpeFBAxgEkZERERknCNHgLfeAi5fBkaPBrI56RCTMCIiIqLMrFoFtGwJvHgB1K4N7NwJZLP/KJMwIiIiovTodMDnnwMDBwKJiUCPHsDhw0CxYtneNQvziYiIiNISHy8lXxs2SMuffgrMmPG6KD+bmIQRERERpcXeHkhKkv5dtgwYNMisu2cSRkRERJQWGxupFuzSJakg39y7N/seiYiIiPKqv/4Chg17fedjgQI5koABHAkjIiIikixZIk1BpNUCtWoB772Xo4fjSBgRERFZN60WGDsW+N//pO/feQcYMCDHDytrEnb06FF06NABHh4eUCgU2L59e7rbfvDBB1AoFFiwYEGuxUdERET5XHQ00KUL8O230vLMmcCKFYBKleOHljUJi4mJQZUqVbBo0aIMt9u2bRtOnToFDw+PXIqMiIiI8r0HD4CGDYEdO6Ska/164LPPst2E1Viy1oS1bdsWbdu2zXCb0NBQfPjhh9i7dy/atWuXS5ERERFRvnfnDvDvv0CRIsDvvwN16+bq4S26MF+n02HAgAEYP348KlasaNRz4uPjER8fr1+OjIzMqfCIiIgoL2vQANi4EahSBfDzy/XDW3Rh/ty5c2FnZ4dRo0YZ/Zw5c+ZAo9Hov7y9vXMwQiIiIsozhAC+/x64cuX1us6dZUnAAAtOws6fP4+FCxdixYoVUJhwbXbSpEmIiIjQf92/fz8HoyQiIqI8ITERGD4cGDUKaN8eiIiQOyLLTcKOHTuGsLAwlChRAnZ2drCzs8Pdu3fx8ccfw9fXN93nqVQquLi4GHwRERGRFYuIkBKvJUukovvRowELyA8stiZswIABaNGihcG61q1bY8CAARg8eLBMUREREVGecucO0K4dcPWq1P1+3TqgY0e5owIgcxIWHR2N4OBg/XJISAguXLgANzc3lChRAoUKFTLY3t7eHsWKFUPZsmVzO1QiIiLKa06dAjp1AsLCAA8PqRVF9epyR6UnaxJ27tw5NG3aVL88duxYAMDAgQOxYsUKmaIiIiKifGHmTCkBq1ZNSsA8PeWOyIBCiOQZKvOnyMhIaDQaREREsD6MiIjImrx8CUydCsyaBTg55cohTck7LLYwn4iIiMgk8fHAmjWvlwsWBBYuzLUEzFQWW5hPREREZLTnz4GuXYGjR6URsJEj5Y4oU0zCiIiIKG+7eVO6AzI4WGo9UaaM3BEZhUkYERER5V1HjgBdukijXz4+wK5dgJFTHcqNNWFERESUN61YAbRsKSVgb70FnD6dZxIwgEkYERER5UXXrwNDhkjTEfXsCRw8CBQtKndUJuHlSCIiIsp7ypUD5s2TRsGmTwds8t64EpMwIiIiyhuePJHaUJQoIS1//LG88WRT3ksbiYiIyPpcuQLUqQO8/bY0IXc+wCSMiIiILNvevUC9esDdu0BCgnQJMh9gEkZERESWa/FiqQdYVBTQuLE0Kbevr9xRmQWTMCIiIrI8Wi3w0UfA8OHS9wMHAn/9Bbi5yR2Z2TAJIyIiIsvz6afAggXS97NmAcuXA0qlrCGZG5MwIiIisjyjRwOlSwMbNkgJmUIhd0RmxxYVREREZBnCwgB3d+l7Dw/g6lXA3l7emHIQR8KIiIhIfr//DpQsCaxf/3pdPk7AACZhREREJCchgG++kSbhjomRkjAh5I4qVzAJIyIiInkkJgIffACMGyclXv/7H7B5c76s/0oLa8KIiIgo94WHAz16APv3S0nX/PlSMb6VJGAAkzAiIiLKbTExUgf8a9cAR0dg3TqgQwe5o8p1TMKIiIgodzk6Ah07ApGRwI4dQLVqckckC9aEERERUe5ITHz9/ezZwD//WG0CBjAJIyIiopwmBDBzJtC0KRAXJ62zsQGKFJE3LpkxCSMiIqKcEx8vzfs4eTJw4gSwbZvcEVkM1oQRERFRznj2DOjaFTh2DLC1BRYtAvr0kTsqi8EkjIiIiMzvxg2gXTvg1i3AxUXq/9WypdxRWRQmYURERGRex49LLSfCwwFfX2DXLqBCBbmjsjisCSMiIiLzcneXCu/fegs4fZoJWDo4EkZERETmVaYMcPgwULo0oFbLHY3F4kgYERERZc+rV1LB/d69r9cFBDABywRHwoiIiCjrHj8GOnUCzpwBDhwAQkKkjviUKSZhRERElDWXLwPt2wP37gGFCgFbtjABMwEvRxIREZHp9uwB6teXErAyZYBTp4CGDeWOKk9hEkZERESmWbRI6gEWFQU0aQKcPCkV4ZNJmIQRERGR8YQAAgMBnQ4YNEgqxndzkzuqPIk1YURERGQ8hQJYvFiajLtfP2mZsoQjYURERJSx+/eBjz8GtFppWakE+vdnApZNHAkjIiKi9J07J01B9PgxUKAAMGOG3BHlGxwJIyIiorRt2wY0aiQlYJUqAe+9J3dE+QqTMCIiIjIkBDBvHtCtGxAbC7RpA5w4Afj4yB1ZvsIkjIiIiF5LTASGDgU++URKxkaMAHbsAFxc5I4s32ESRkRERK8FBQFr1wI2NsDChcAPPwB2LCHPCTyrRERE9FqFCsC6dVIS1r693NHka0zCiIiIrN2JE1LbiVq1pOWOHeWNx0rwciQREZE1W7sWaNZMakNx757c0VgVJmFERETWSAhg2jSp631CAlC3LlCokNxRWRVejiQiIrI2cXFSz681a6Tl8eOBL7+U6sAo1zAJIyIisiZPnwJdukh1YLa20jyQ778vd1RWiUkYERGRNZk2TUrANBpg82agRQu5I7JaTMKIiIisydy50jREM2YA5cvLHY1V48VfIiKi/O7wYakQHwAcHaURMCZgsmMSRkRElF/pdMCECUDTpsDs2XJHQynImoQdPXoUHTp0gIeHBxQKBbZv365/LDExERMmTEBAQAAcHR3h4eGBd955Bw8fPpQvYCIiorzi1SugRw/gq6+k5cREeeOhVGRNwmJiYlClShUsWrQo1WOvXr1CYGAgJk+ejMDAQGzduhU3btxAR3bxJSIiytijR0DjxsDWrVIn/NWrgalT5Y6KUlAIkXyRWF4KhQLbtm1D586d093m7NmzqF27Nu7evYsSJUoYtd/IyEhoNBpERETAhTPAExFRfnfpkjTn4/37UvPV7duBBg3kjspqmJJ35Km7IyMiIqBQKODq6pruNvHx8YiPj9cvR0ZG5kJkREREFiAiQqr/evECKFsW2LULKFVK7qgoHXmmMD8uLg4TJkxAnz59Msws58yZA41Go//y9vbOxSiJiIhkpNFILSiaNQNOnmQCZuHyRBKWmJiInj17QgiBxYsXZ7jtpEmTEBERof+6f/9+LkVJREQkg6QkIDT09fJ77wF//QUULChfTGQUi78cmZyA3b17FwcPHsz0+qpKpYJKpcql6IiIiGQUFQX07g1cvw6cPg0ULiytt7WVNy4yikWPhCUnYEFBQdi/fz8KcXZ3IiIiyb17QP36wJ9/SndDXrwod0RkIllHwqKjoxEcHKxfDgkJwYULF+Dm5obixYuje/fuCAwMxM6dO6HVavH48WMAgJubG5RKpVxhExERyevsWaBDB+DJE6BYMeCPP4BateSOikwka4uKw4cPo2nTpqnWDxw4EFOnToWfn1+azzt06BCaNGli1DHYooKIiPKVrVuB/v2B2FggIADYuRMwsm0T5bw806KiSZMmyCgHtJAWZkRERJZh3Tqgb1/p+7ZtgfXrAQ4w5FkWX5hPRERE/2nVCihdWkrA5s8H7Pgxnpfxf4+IiMiSxcUBDg7S94UKSfVgGTQtp7zDou+OJCIismq3bgFVqwLLlr1exwQs32ASRkREZImOHwfq1AFu3AC+/FIaEaN8hUkYERGRpVmzBmjeHHj+HKhRAzhx4vUlSco3mIQRERFZCiGAqVOlFhQJCUCXLsCRI0Dx4nJHRjmAhflERESWQAhgwABpFAwAPvkEmDMHsOF4SX7FJIyIiMgSKBRApUpS24nFi6WJuClfYxJGREQkJyGkBAwAJkyQpiOqWFHemChXcIyTiIhILvv3A82aAdHR0rJCwQTMijAJIyIiksNPPwFt2gCHD0u1X2R1mIQRERHlJp1OKrofOhTQaoF+/YAvvpA7KpIBa8KIiIhyS0yM1H5i+3Zpedo0YPLk1zVhZFWYhBEREeWGR4+kovvz5wGlEli+HOjbV+6oSEZMwoiIiHJDUhIQGgoULiyNhNWvL3dEJDMmYURERLnB2xv480/AxQUoVUruaMgCMAkjIiLKCUIA338PeHoC3bpJ66pVkzcmsihMwoiIiMwtKQkYMwZYtAhQq6Xkq2RJuaMiC8MkjIiIyJwiI4HevYHdu6W7HqdNA/z85I6KLBCTMCIiInO5dw9o3x64fFkaAVu9GujaVe6oyEIxCSMiIjKHs2elFhRPngDFigE7dgA1a8odFVkwJmFERETmsHmzlIBVrgzs3CndDUmUASZhRERE5jB7NqDRAB9+CDg7yx0N5QGcO5KIiCgrEhKAr7+W/gUAW1vg00+ZgJHROBJGRERkqhcvpN5fhw8D164Bv/wid0SUBzEJIyIiMkVwMNCuHXDzJuDkBHTvLndElEcxCSMiIjLWsWNA587SSJi3t1SAX7my3FFRHsWaMCIiImP89hvQvLmUgNWqBZw5wwSMsoVJGBERUWaePwdGjQISE1/XghUrJndUlMfxciQREVFmChWS+oAdOADMnAnYcAyDso9JGBERUVrCwoCQEKBOHWm5eXPpi8hMmMoTERGldPUq8NZbQNu2wI0bckdD+RSTMCIiojft3w/UqyeNghUsKHc0lI8xCSMiIkr2009AmzZARATQoAFw+jRQtqzcUVE+xSSMiIhIqwXGjweGDpW+799fGhErXFjuyCgfYxJGRET044/SPJAAMG0asGoVoFLJGxPle7w7koiIaOhQYMcOYPBgoE8fuaMhK8EkjIiIrFNQEFCqlNTzS6UC9u4FFAq5oyIrwsuRRERkfXbsAKpVAyZOfL2OCRjlMiZhRERkPYQAFiwAOnUCYmKAf/4BEhLkjoqsFJMwIiKyDklJwMiRwEcfScnY++8Df/4JKJVyR0ZWijVhRESU/0VGAj17vq77mjcPGDuWlyBJVkzCiIgof9PpgBYtgLNngQIFgDVrgM6d5Y6KiJcjiYgon7OxAcaNAzw8gKNHmYCRxWASRkRE+VNU1Ovve/YEbt4EatSQLx6iFJiEERFR/iIEMGcOUKECEBr6er2jo3wxEaWBSRgREeUfCQlS1/tPPwUePAA2bpQ7IqJ0sTCfiIjyhxcvgK5dgSNHAFtb4LvvgOHD5Y6KKF1MwoiIKO8LCgLatZP+dXaWRsDatJE7KqIMMQkjIqK87Z9/pBYUL14AJUoAu3YBlSrJHRVRppiEERFR3la6NODpKf37++9AsWJyR0RkFCZhRESU9wgh/atQSJcf9+4FNBqpGStRHiHr3ZFHjx5Fhw4d4OHhAYVCge3btxs8LoTAF198geLFi0OtVqNFixYICgqSJ1giIrIMsbFAnz7AN9+8Xle8OBMwynNkTcJiYmJQpUoVLFq0KM3Hv/rqK3z33XdYsmQJTp8+DUdHR7Ru3RpxcXG5HCkREVmEJ0+AZs2ADRuAzz+X2lAQ5VGyXo5s27Yt2rZtm+ZjQggsWLAAn3/+OTp16gQAWLVqFYoWLYrt27ejd+/euRkqERHJ7d9/gfbtgTt3gIIFga1bAS8vuaMiyjKLbdYaEhKCx48fo0WLFvp1Go0GderUwcmTJ9N9Xnx8PCIjIw2+iIgoj/vrL6BePSkBK1UKOHkSaNJE7qiIssVik7DHjx8DAIoWLWqwvmjRovrH0jJnzhxoNBr9l7e3d47GSUREOWzZMuDtt4HISKBhQ+DUKaBsWbmjIso2i03CsmrSpEmIiIjQf92/f1/ukIiIKDu0WulrwABg3z6gcGG5IyIyC4ttUVHsvz4vT548QfHixfXrnzx5gqpVq6b7PJVKBZVKldPhERFRbvnf/6RLkC1bSi0piPIJix0J8/PzQ7FixXDgwAH9usjISJw+fRp169aVMTIiIspRoaFAr15SB/xkrVoxAaN8R9aRsOjoaAQHB+uXQ0JCcOHCBbi5uaFEiRIYM2YMZs6cCX9/f/j5+WHy5Mnw8PBA586d5QuaiIhyzj//SHdAPnwoNWTduFHuiIhyjKxJ2Llz59C0aVP98tixYwEAAwcOxIoVK/DJJ58gJiYGQ4cORXh4OBo0aIA9e/bAwcFBrpCJiCin/PGH1IT11SugQgVg7ly5IyLKUQohkud+yJ8iIyOh0WgQEREBFxcXucMhIqKUhAAWLAA+/lj6vmVLYNMmaRoiojzGlLzDYmvCiIjICiQlAcOHA2PHSgnYsGHArl1MwMgqMAkjIiL5hIcDe/ZIRffz5wOLFwP29nJHRZQrLLZFBRERWYHChaWRr+BgoGNHuaMhylVMwoiIKHedOgWEhEhF+IBUhF+hgrwxEcmASRgREeWeDRuAgQMBnQ7w8ZHmgySyUqwJIyKinCcEMGsW0Ls3EB8PtG0LVK4sd1REsmISRkREOSs+Hhg0CPj8c2l57Fhg61bAyUnWsIjkxsuRRESUc54/B7p2BY4eBWxtgR9+AD74QO6oiCwCkzAiIso5a9ZICZiLi9SAtVUruSMishhMwoiIKOd8+CHw4IFUjF+xotzREFkU1oQREZF5bd8uzf8ISE1Yv/qKCRhRGkxOwvbs2YPjx4/rlxctWoSqVauib9++ePnypVmDIyKiPESnAz77DOjSBRgwQFomonSZnISNHz8ekZGRAIDLly/j448/xttvv42QkBCMHTvW7AESEVEeEBsrtZ+YPVtaLl9e3niI8gCTa8JCQkJQ4b/Oxlu2bEH79u0xe/ZsBAYG4u233zZ7gEREZOGePAE6dQJOn5bmffzpJ6kGjIgyZPJImFKpxKv/rvXv378frf6708XNzU0/QkZERFbiyhWgTh0pAXNzA/btYwJGZCSTR8IaNGiAsWPHon79+jhz5gw2bNgAALh58ya8vLzMHiAREVmopCSpB9jdu4C/vzQRt7+/3FER5Rkmj4T98MMPsLOzw+bNm7F48WJ4enoCAHbv3o02bdqYPUAiIrJQdnbAqlVAmzbSpNxMwIhMohBCCLmDyEmRkZHQaDSIiIiAi4uL3OEQEeVtWi3w77+c95EoHabkHSZfjkyv7kuhUEClUkGpVJq6SyIiyguio4E+fYBDh4Bjx4Bq1eSOiChPM/lypKurKwoWLJjqy9XVFWq1Gj4+PpgyZQp07A9DRJR/PHgANGwI7NwpjYbdvSt3RER5nskjYStWrMBnn32GQYMGoXbt2gCAM2fOYOXKlfj888/x9OlTfP3111CpVPj000/NHjAREeWy8+eBjh2Bhw8Bd3fgjz+kOyKJKFtMTsJWrlyJb775Bj179tSv69ChAwICArB06VIcOHAAJUqUwKxZs5iEERHldb//DvTtK01DVLGiNBLm6yt3VET5gsmXI//++29US6MOoFq1ajh58iQAqY3FvXv3sh8dERHJ5+BBaQqiV6+AVq2AEyeYgBGZkclJmLe3N3755ZdU63/55Rd4e3sDAJ4/f46CBQtmPzoiIpJPo0ZA69bA//4n9QDTaOSOiChfMfly5Ndff40ePXpg9+7dqFWrFgDg3LlzuH79OjZv3gwAOHv2LHr16mXeSImIKOdFRAAFCkjTD9nZAdu3A0oloFDIHRlRvpOlPmEhISFYunQpbt68CQAoW7Yshg0bBl8LHKZmnzAiIiOFhADt2gENGgBLlzLxIqui0wnceR6DqLgkODvYwbeQI2xsTH8PmJJ3sFkrEREBJ09Kk3A/fQp4ekp3RBYtKndURLniSmgEtgQ+QHBYNOITdVDZ26C0uxO6VfdCJU/TLsPnaLNWAAgPD8eZM2cQFhaWqh/YO++8k5VdEhGRXNavBwYNAuLjpQasO3YwASOrcSU0At8dCMKLmAQU16ih1tgiNkGLyw8iEPoyFqOa+5uciBnL5CRsx44d6NevH6Kjo+Hi4gLFG8PVCoWCSRgRUV4hBDBrFjB5srTcsSOwdi3g6ChvXES5RKcT2BL4AC9iElDa3Umf0zg52KG0ygnBYdHYGhiKCsVdsnRpMjMm3x358ccfY8iQIYiOjkZ4eDhevnyp/3rx4oXZAyQiohwycuTrBOzjj4GtW5mAkVW58zwGwWHRKK5RGwwqAdLAUnGNGkFhUbjzPCZHjm9yEhYaGopRo0ahQIECOREPERHllvbtAZUKWLIE+PprwNZW7oiIclVUXBLiE3VQK9N+7auVtohP1CEqLilHjm/y5cjWrVvj3LlzKFmyZE7EQ0REOSkpSWo9AQBt2wK3bwMeHvLGRCQTZwc7qOxtEJughZND6pQoNkELlb0NnNN4zBxM3mu7du0wfvx4XL16FQEBAbC3tzd4vGPHjmYLjoiIzOjwYWDoUODPP4HSpaV1TMDIivkWckRpdydcfhCB0iong0uSQgg8iohFZS9X+BbKmcv0JreosLFJ/wqmQqGAVqvNdlDmxBYVREQAli+XErCkJGDAAGDVKrkjIrIIqe6OVEp3Rz6KiIWbo9LkuyNNyTtMrgnT6XTpfllaAkZEZPV0OmDSJGDIECkB69VLasRKRACASp4ajGrujwAvDcJjE3DnWQzCYxNQ2cs1R9tTAFnsE0ZERHnAq1fAwIHAf1PKYfJkYOpUIIMrGkTWqJKnBhWKu5ilY74pjErCvvvuOwwdOhQODg747rvvMtx21KhRZgmMiIiy4dkzaQqiM2ekeSB/+UW6DElEabKxUaBkEadcPaZRNWF+fn44d+4cChUqBD8/v/R3plDg9u3bZg0wu1gTRkRWKTYWaNYMuHkT2LYNaNRI7oiIrILZpy0KCQlJ83siIrJQajWwfTsQFfX6TkgisigsDCAiyi9+/BGYMuX1ctGiTMCILJhRI2Fjx441eofz58/PcjBERJQFWq007dDChdJyixZAw4byxkREmTIqCfvnn38MlgMDA5GUlISyZcsCAG7evAlbW1vUqFHD/BESEVH6oqKAPn2AXbuk5TlzgAYN5I2JiIxiVBJ26NAh/ffz58+Hs7MzVq5ciYIFCwIAXr58icGDB6Mh//IiIso99+9L8z9eugQ4OEgNWHv0kDsqIjKSyR3zPT098ddff6FixYoG669cuYJWrVrh4cOHZg0wu3h3JBHlS+fOAR06AI8fS7Vfv/8O1Kkjd1REVs/sd0em3PnTp09TrX/69CmioqJM3R0REWXFjRtSAlapErBzJ+DjI3dERGQik5OwLl26YPDgwfjmm29Qu3ZtAMDp06cxfvx4dO3a1ewBEhFRGvr1k/7t0AHgKD9RnmTy5chXr15h3Lhx+PXXX5GYmAgAsLOzw7vvvot58+bB0TFnZhrPKl6OJKJ8ITER+OILYNQooHhxuaMhonSYkneYlIRptVqcOHECAQEBUCqVuHXrFgCgVKlSFpd8JWMSRkR5Xng40L07cOCAVPf199+c/5HIQuVYTZitrS1atWqFa9euwc/PD5UrV85WoERElInbt6U5IK9fBxwdgc8/ZwJGlE+Y/E6uVKmSxc0PSUSUL504IY18Xb8OeHkBx49LLSmIKF8wOQmbOXMmxo0bh507d+LRo0eIjIw0+CIiIjNYu1aagPvZM6BGDeD0aaBqVbmjIiIzMrkw3+aNYXCFQqH/XggBhUIBrVZrvujMgDVhRJTnJCQA1aoBV68CnTsDq1dLlyKJyOLlaJ+wN7vnExFRDlAqpd5fK1dKd0SyBowoXzJ5JCw3abVaTJ06FatXr8bjx4/h4eGBQYMG4fPPPzcYhcsIR8KIKE949gw4dIjTDhHlcTk6Epbs1atXuHfvHhISEgzWm/OOyblz52Lx4sVYuXIlKlasiHPnzmHw4MHQaDQYNWqU2Y5DRCSr69elOyBDQgC1msX3RFbC5CTs6dOnGDx4MHbv3p3m4+asCfv777/RqVMntGvXDgDg6+uLdevW4cyZM2Y7BhGRrA4ckHqAhYcDfn5AqVJyR0REucTkQoMxY8YgPDwcp0+fhlqtxp49e7By5Ur4+/vjjz/+MGtw9erVw4EDB3Dz5k0AwMWLF3H8+HG0bds23efEx8fzjk0iyht++QVo00ZKwOrWBU6dAsqXlzsqIsolJo+EHTx4EL///jtq1qwJGxsb+Pj4oGXLlnBxccGcOXP0o1bmMHHiRERGRqJcuXKwtbWFVqvFrFmz0C95zrQ0zJkzB9OmTTNbDEREZqfTAZMmAV99JS336QP8+ivg4CBvXESUq0weCYuJiYG7uzsAoGDBgnj69CkAICAgAIGBgWYNbuPGjVizZg3Wrl2LwMBArFy5El9//TVWrlyZ7nMmTZqEiIgI/df9+/fNGhMRUbbt3Pk6AZsyBVizhgkYkRUyeSSsbNmyuHHjBnx9fVGlShUsXboUvr6+WLJkCYqbeVLZ8ePHY+LEiejduzcAKdG7e/cu5syZg4EDB6b5HJVKBZVKZdY4iIjMqkMHYMwYoGZNIIORfSLK30xOwkaPHo1Hjx4BAKZMmYI2bdpgzZo1UCqVWLFihVmDe/XqlUFzWECav1Kn05n1OEREOe7KFWnqIVdXQKEAvv1W7oiISGYmJ2H9+/fXf1+jRg3cvXsX169fR4kSJVC4cGGzBtehQwfMmjULJUqUQMWKFfHPP/9g/vz5GDJkiFmPQ0SUo/78E+jVSyq+37ULsLeXOyIisgBZ7hMGSFMVqdVqVK9e3VzxGPj+++8xefJkDB8+HGFhYfDw8MCwYcPwxRdf5MjxiIjM7ocfgNGjpWL8pCQgNpZJGBEByEJhPgCsWrUKAQEBUKvVUKvVqFy5Mn777TdzxwZnZ2csWLAAd+/eRWxsLG7duoWZM2dCqVSa/VhERGaVlASMGgV8+KGUgA0ZAuzZA3DmDiL6j8kjYfPnz8fkyZMxcuRI1K9fHwBw/PhxfPDBB3j27Bk++ugjswdJRJSnREUBvXtLlyEB4MsvgU8+kWrBiIj+Y/LckX5+fpg2bRreeecdg/UrV67E1KlTERISYtYAs4tzRxJRrmvfXqr9UquB334DunWTOyIiyiU5Onfko0ePUK9evVTr69Wrp79rkojIqs2eDdy8KfX/qlVL7miIyEKZXBNWunRpbNy4MdX6DRs2wN/f3yxBERHlOaGhr7+vXBm4epUJGBFlyOSRsGnTpqFXr144evSovibsxIkTOHDgQJrJGRFRviYEMG+e1Pl+3z6gQQNpvV22bj4nIitg8khYt27dcPr0aRQuXBjbt2/H9u3bUbhwYZw5cwZdunTJiRiJiCxTQgLw/vvAhAlAXJx09yMRkZFMLszPa1iYT0Q54uVLoHt34OBBwMYGWLBAakdBRFYtRwvz3ySEwKFDhxAbG4t69eqhYMGC2dkdEVHecOsW0K4dcOMG4OQErF8vLRMRmcDoy5Hh4eEYOHAgAgIC8P777yMyMhINGzZEixYt0KFDB5QvXx6XLl3KyViJiOR3+zZQp46UgHl5AcePMwEjoiwxOgkbN24cTp48id69e+Py5cto06YNtFotTp48idOnT6N8+fL47LPPcjJWIiL5+foCzZoBNWoAZ84AVarIHRER5VFG14R5enpi7dq1aNy4MUJDQ+Ht7Y2DBw+iSZMmAIAzZ86gY8eOePz4cU7GazLWhBFRtgkBJCYCyVOmxcZKUxE5OsobFxFZnBypCXvy5AnKlCkDQErIHBwc4O3trX+8RIkSePr0aRZDJiKyUHFx0ryPOh2wdq1UhK9Wyx0VEeUDRidhOp0Otra2+mVbW1so3pgHTcE50Ygov3n6FOjcGfj7b6nvV2AgULOm3FERUT5h0t2RP//8M5ycnAAASUlJWLFiBQoXLgwAiIqKMn90RERyuXZNKrgPCQFcXYEtW5iAEZFZGV0T5uvra9RoFyfwJqI8b/9+qQdYRARQsqQ0GXe5cnJHRUR5QI7UhN25cye7cRERWb5Vq6QaMK0WqF8f2L4d+G/En4jInEyetoiIKF/z8wNsbYF+/YADB5iAEVGO4QyzRERvathQ6v9VuTLAG46IKAdxJIyIrNujR0Dz5sCVK6/XVanCBIyIchyTMCKyXhcvArVrS5NwDxokNWUlIsolTMKIyDrt2gU0aAA8eCDd+bhhA0e/iChXGVUTFhkZafQO2QaCiCyaEMD33wMffSR1wW/WDNi8GShYUO7IiMjKGJWEubq6Gt0RX6vVZisgIqIck5QEjBkDLFokLb/3HvDjj4C9vaxhEZF1MioJO3TokP77O3fuYOLEiRg0aBDq1q0LADh58iRWrlyJOXPm5EyURETmIARw/bp02XHuXGDcOF6CJCLZGN0xP1nz5s3x3nvvoU+fPgbr165di2XLluHw4cPmjC/b2DGfiAyEh0tzQb79ttyREFE+ZEreYXJh/smTJ1EzjfnTatasiTNnzpi6OyKinHXmDPDFF6+XXV2ZgBHlYTqdwO2n0bh4Pxy3n0ZDp8u7dzWb3KzV29sbP/30E7766iuD9T///DO8vb3NFhgRUbZt3gwMGADExQH+/tL3RJRnXQmNwJbABwgOi0Z8og4qexuUdndCt+peqOSpkTs8k5mchH377bfo1q0bdu/ejTp16gAAzpw5g6CgIGzZssXsARIRmUwIqeZr0iRpuV07oHNnWUMiouy5EhqB7w4E4UVMAopr1FBrbBGboMXlBxEIfRmLUc3981wiZvLlyLfffhs3b95Ehw4d8OLFC7x48QIdOnTAzZs38TaH+IlIbgkJwLvvvk7ARo8Gfv8dcHaWNy4iyjKdTmBL4AO8iElAaXcnODnYwdZGAScHO5R2d8KLmARsDQzNc5cmszR3pLe3N2bPnm3uWIiIsufFC6BbN+DwYcDGBvjuO2DECLmjIqJsuvM8BsFh0SiuUadqmaVQKFBco0ZQWBTuPI9BySJOMkVpuix1zD927Bj69++PevXqITQ0FADw22+/4fjx42YNjojIJGfPAkeOAE5OwM6dTMCI8omouCTEJ+qgVtqm+bhaaYv4RB2i4pJyObLsMTkJ27JlC1q3bg21Wo3AwEDEx8cDACIiIjg6RkTyat0a+Okn4MQJoG1buaMhIjNxdrCDyt4GsQlpN4SPTdBCZW8DZ4csXeCTjclJ2MyZM7FkyRL89NNPsH+jy3T9+vURGBho1uCIiDK1bh1w587r5XffBSpXli0cIjI/30KOKO3uhEcRsUjZ3lQIgUcRsfB3d4ZvIUeZIswak5OwGzduoFGjRqnWazQahIeHmyMmIqLMCSH1/+rbV7r7MSpK7oiIKIfY2CjQrboX3ByVCA6LRnRcErQ6gei4JASHRcPNUYmu1T1hY5O3ZsAwOQkrVqwYgoODU60/fvw4SpYsaZagiIgyFBcH9OsHzJghLXfsCDjmrb+Aicg0lTw1GNXcHwFeGoTHJuDOsxiExyagspdrnmxPAWTh7sj3338fo0ePxq+//gqFQoGHDx/i5MmTGDduHCZPnpwTMRIRvRYWJvX8OnkSsLMDli4FhgyROyoiygWVPDWoUNwFd57HICouCc4OdvAt5JjnRsCSmZyETZw4ETqdDs2bN8erV6/QqFEjqFQqjBs3Dh9++GFOxEhEJLl6FWjfHggJkaYf2roVaNpU7qiIKBfZ2CjyVBuKjJg8gXeyhIQEBAcHIzo6GhUqVICTk2WeEE7gTZSPtGgBHDgAlCoF7NoFlC0rd0RERAZydALvIUOGICoqCkqlEhUqVEDt2rXh5OSEmJgYDOElASLKSatWAb16AadOMQEjojzP5JEwW1tbPHr0CO7u7gbrnz17hmLFiiEpybIapXEkjCgP02qBgweBli3ljoSIyCg5MhIWGRmJiIgICCEQFRWFyMhI/dfLly/x559/pkrMiIiyLCZGmoKoVSupFxgRUT5jdGG+q6srFAoFFAoFypQpk+pxhUKBadOmmTU4IrJSDx8CHToAgYGASgUo8uadT0REGTE6CTt06BCEEGjWrBm2bNkCNzc3/WNKpRI+Pj7w8PDIkSCJyIpcuCDdARkaChQpAmzfDtSrJ3dURERmZ3QS1rhxYwBASEgISpQokWoWcyKibNuxA+jTR7oUWb68NAk3m0ATUT5l8t2RBw8exObNm1Ot37RpE1auXGmWoIjICl27JjVhjYmRWlH8/TcTMCLK10xOwubMmYPChQunWu/u7o7Zs2ebJSgiskLlywMTJgBDhwJ//ik1YyUiysdM7ph/7949+Pn5pVrv4+ODe/fumSUoIrISkZFAQgKQ/IfdrFnSvyx3ICIrYPJImLu7Oy5dupRq/cWLF1GoUCGzBEVEVuDuXaB+fWny7bg4aZ1CwQSMiKyGyUlYnz59MGrUKBw6dAharRZarRYHDx7E6NGj0bt375yIkYjym9OngTp1gCtXgDt3AI6iE5EVMvly5IwZM3Dnzh00b94cdnbS03U6Hd555x3WhBFR5jZtAt55Rxr9qlJFugPSy0vuqIiIcl2WJ/C+efMmLl68CLVajYCAAPj4+Jg7NrPgtEVEFkII4MsvgU8/lZbbt5c64Ts5yRsXEZEZmZJ3mDwSlqxMmTJpds4nIkrTlCnAjBnS92PGAF9/DdjayhoSEZGcjErCxo4dixkzZsDR0RFjx47NcNv58+ebJbBkoaGhmDBhAnbv3o1Xr16hdOnSWL58OWrWrGnW4xBRDhswAFi6VErGhg+XOxoiItkZlYT9888/SExM1H+fHnN30X/58iXq16+Ppk2bYvfu3ShSpAiCgoJQsGBBsx6HiHJITAzg6Ch97+8PBAcDzs7yxkREZCGyXBOWGyZOnIgTJ07g2LFjWd4Ha8KIZHLkCNCzJ7BqFdC6tdzREBHlClPyDpNbVOSmP/74AzVr1kSPHj3g7u6OatWq4aeffsrwOfHx8YiMjDT4IqJctmoV0LIlEBYGfPONVJRPREQGjLoc2bVrV6N3uHXr1iwHk9Lt27exePFijB07Fp9++inOnj2LUaNGQalUYuDAgWk+Z86cOZg2bZrZYiAiE+h0wBdfvO5836MHsHIlG7ASEaXBqMuRgwcP1n8vhMC2bdug0Wj0xfHnz59HeHg4unbtiuXLl5stOKVSiZo1a+Lvv//Wrxs1ahTOnj2LkydPpvmc+Ph4xMfH65cjIyPh7e3Ny5FEOS02Fhg8GNiwQVr+9FPpbkgbix5wJyIyK7O3qHgzsZowYQJ69uyJJUuWwPa/28u1Wi2GDx9u9iSnePHiqFChgsG68uXLY8uWLek+R6VSQaVSmTUOIspEdLR0+fHUKcDeHli2DBg0SO6oiIgsmsl/ov76668YN26cPgEDAFtbW4wdOxa//vqrWYOrX78+bty4YbDu5s2bFtsYlshqOToCFSsCBQsCf/3FBIyIyAgmJ2FJSUm4fv16qvXXr1+HTqczS1DJPvroI5w6dQqzZ89GcHAw1q5di2XLlmHEiBFmPQ4RZVFyNYNCASxeDJw/DzRpImtIRER5hckd8wcPHox3330Xt27dQu3atQEAp0+fxpdffmlQO2YOtWrVwrZt2zBp0iRMnz4dfn5+WLBgAfr162fW4xBRFixZAuzZA2zeDNjZSZch/fzkjoqIKM8wuU+YTqfD119/jYULF+LRo0cApNqt0aNH4+OPPza4TGkJ2CeMyMy0WmD8eODbb6Xl334D+veXNyYiIgthSt6RrWatyT24LDm5YRJGZEbR0UC/fsAff0jLM2dKd0GyBQUREYBcaNaalJSE/fv3Y926dfqpih4+fIjo6Ois7I6I8oIHD4CGDaUETKUC1q8HPvuMCRgRURaZXBN29+5dtGnTBvfu3UN8fDxatmwJZ2dnzJ07F/Hx8ViyZElOxElEcvrnH6B9e+DhQ6BIEeD334G6deWOiogoTzN5JGz06NGoWbMmXr58CbVarV/fpUsXHDhwwKzBEZGFEAIIDwcqVABOn2YCRkRkBiaPhB07dgx///03lEqlwXpfX1+EhoaaLTAisiDVq0t3QlauDGg0ckdDRJQvmDwSptPpoNVqU61/8OABnJ2dzRIUEcksMREYPVoa9UrWsCETMCIiMzI5CWvVqhUWLFigX1YoFIiOjsaUKVPw9ttvmzM2IpJDRIRU//Xdd0CXLkBMjNwRERHlSyZfjvz666/Rpk0bVKhQAXFxcejbty+CgoJQuHBhrFu3LidiJKLccucO0K4dcPUqUKCA1AXf0VHuqIiI8qUs9QlLSkrChg0bcPHiRURHR6N69ero16+fQaG+pWCfMCIjnToFdOoEhIUBHh7Ajh1SLRgRERktx5q1JiYmoly5cti5cyfKly+f7UBzA5MwIiNs2AAMHAjExwPVqkkJmKen3FEREeU5Odas1d7eHnFxcdkKjogsjBBSEhYfD3ToABw9ygSMiCgXmFyYP2LECMydOxdJSUk5EQ8R5TaFQpr/8ZtvgG3bACcnuSMiIrIKJhfmnz17FgcOHMBff/2FgIAAOKYo2t26davZgiOiHPL8OfDzz8Ann0hJmKMjMHas3FEREVkVk5MwV1dXdOvWLSdiIaLccPOmdAdkcLB0KXLiRLkjIiKySiYnYcuXL8+JOIgoNxw+DHTtCrx8Cfj4SDVgREQkC6NrwnQ6HebOnYv69eujVq1amDhxImJjY3MyNiIypxUrgFatpATsrbekbvgVK8odFRGR1TI6CZs1axY+/fRTODk5wdPTEwsXLsSIESNyMjYiMgedDvjsM2DwYGk6op49gYMHgaJF5Y6MiMiqGd0nzN/fH+PGjcOwYcMAAPv370e7du0QGxsLGxuTb7LMNewTRlbv0iWgRg0gKUlKxqZPByz4PUtElJeZkncYXRN27949g7khW7RoAYVCgYcPH8LLyyvr0RJRzqpcGVi2TEq8Bg6UOxoiIvqP0UlYUlISHBwcDNbZ29sjMTHR7EERUTZduQLY2QHlyknLgwfLGw8REaVidBImhMCgQYOgUqn06+Li4vDBBx8Y9ApjnzAime3dC/ToARQpIs0HWaSI3BEREVEajE7CBqZxGaN///5mDYaIsmnxYuDDDwGtVpoDkrVfREQWy+gkjP3BiCyYVgt8/DGwcKG0PHCgVAemVMobFxERpcvkZq1EZGGio4E+fYCdO6Xl2bOlLvgKhbxxERFRhpiEEeV1n3wiJWAODsCqVVI9GBERWTwWjBDldTNmAA0bSlMSMQEjIsozOBJGlBf9++/rKYcKFQKOHOHlRyKiPIYjYUR5iRDAN98AAQHA0qWv1zMBIyLKczgSRpRXJCYCI0dKdz0CUkNWIiLKs5iEEeUF4eFSvdf+/dKo1/z5wOjRckdFRETZwCSMyNKFhADt2gHXrgGOjsC6dUCHDnJHRURE2cQkjMiSRUQAdesCT54Anp7Ajh1SJ3wiIsrzWJhPZMk0GuCjj6TE6/RpJmCUbTqdwO2n0bh4Pxy3n0ZDpxNyh0RktRRCiHz9DoyMjIRGo0FERARcXFzkDococ0JII2Curq+X4+OlZqxE2XAlNAJbAh8gOCwa8Yk6qOxtUNrdCd2qe6GSp0bu8IjyBVPyDo6EEVmS+HjgnXeAJk2AqChpnULBBIyy7UpoBL47EITLDyLgqlbCt7AjXNVKXH4grb8SGiF3iERWh0kYkaV49gxo0QJYvVpqP3H8uNwRUT6h0wlsCXyAFzEJKO3uBCcHO9jaKODkYIfS7k54EZOArYGhvDRJlMuYhBFZghs3gLfekhIvFxdg926gbVu5o6J84s7zGASHRaO4Rg1Fisa+CoUCxTVqBIVF4c7zGJkiJLJOTMKI5HbokJSA3boF+PoCJ08CLVvKHRXlI1FxSYhP1EGttE3zcbXSFvGJOkTFJeVyZETWjUkYkZy2bwdatZKasb71lnQHZIUKckdF+Yyzgx1U9jaITdCm+XhsghYqexs4O7BrEVFuYhJGJKcaNYAiRYBevYCDBwF3d7kjonzIt5AjSrs74VFELFLeEC+EwKOIWPi7O8O3kKNMERJZJ/7ZQ5TbtFrA9r/LQt7e0uiXpydgw7+JKGfY2CjQrboXQl/G6mvD1EpbxCZo8SgiFm6OSnSt7gkbG04ET5Sb+FufKDc9fgzUrw9s3vx6nbc3EzDKcZU8NRjV3B8BXhqExybgzrMYhMcmoLKXK0Y192efMCIZsFkrUQ7R6QTuPI9BVFwSnB3s4PvwNmw6dgDu3QO8vICgoEz7f6XaRyFHjlZQtvA1RZSzTMk7eDmSKAek7Exe88ZpjF76OVSxMUCZMsCuXZkmYOxuTjnBxkaBkkWc5A6DiMAkjMjskjuTv4hJQHGNGs1ObkKnX+fCRuhwo1wN6DZtRvnSvibtQ62R6ncuP4hA6MtYXj4iIsoHWIhCZEYGncmLOKL32m/Q5Zc5sBE6nGvaEVOGf4NNIa8y7EzO7uZERNaBSRiRGRl0Jrexgc5GugtyT79R2DJiBooUcsm0Mzm7mxMRWQdejiQyI31nco2UfO0e8BGu1mqCOxVrApA6kz+JzLgzecp9pGTMPoiIyPJxJIzIjArduIyxv36BxJhYAICwtdUnYIBxncnze3dznU7g9tNoXLwfjttPo3lZlYisVt78LU5kibZtg2e/fvCKjcX9DV44/+5HBpcTkzuTV/ZyzbAzeXJ388sPIlBa5ZSlfVgq3vFJRPSa1YyE8a9vyjFCAPPmAd26QREbi6gmLXCs00AEh0UjOi4JWp1AdFwSgsOijepMntzd3M1RmeV9WKLkOz4vP4iAq1oJ38KOcFUrcfmBtP5KaITcIRIR5SqrGQmbu/c6HkSDf32TeSUmAsOHAz//LC0PHw7nhQsx9EmMfsTnSaT0mqvs5Yqu1T2Nes0ldzfPzj4sSco7PpNH95wc7FBa5YTgsGhsDQxFheIueS65JCLKqjyVhH355ZeYNGkSRo8ejQULFpj03KuhkShRrDD7LZH5vHwJ9OgBHDggTTv07bfAhx8CCgUqeWpQobhLtjqTm2MflsKUOz7ZSJSIrEWeScLOnj2LpUuXonLlyll6fskijnD4r5CZf32TWYSFAefPA46OwPr1QPv2Bg+bozN5fuluzjs+iYhSyxM1YdHR0ejXrx9++uknFCxYMEv7YL8lMruyZYHt24Hjx1MlYGQov9/xSUSUFXkiCRsxYgTatWuHFi1aZLptfHw8IiMjDb7So1baIj6Rf32TCdatAw4efL3cuDFQtaps4eQVyXd8PoqIhRCGN8Uk3/Hp7+6cJ+/4tFa82Yko+yz+z87169cjMDAQZ8+eNWr7OXPmYNq0aUZty7++SacTxtVcCQHMmAFMmQK4ugIXLgA+Prkdbp6VfMdn6MtYfW2YWinVZz6KiM2zd3xaK7YaITIPi84+7t+/j9GjR2Pfvn1wcHAw6jmTJk3C2LFj9cuRkZHw9vZO96/vvNpvibLP6A+S+HjgvfeA1aul5ffeA7y95Qk6D8tvd3xaK04uT2Q+Fp2EnT9/HmFhYahevbp+nVarxdGjR/HDDz8gPj4etraGhb4qlQoqlSrVvm4/jUEJW/71TRKjP0iePQO6dJHqvmxtgR9/BIYOlTv8PCs/3fFpjdhqhMi8LDoJa968OS5fvmywbvDgwShXrhwmTJiQKgHLSAVPFzyITuBf32T8B0nEQ9h0aA/cvg1oNMDmzYARdYmUsfxyx6c1YqsRIvOy6CTM2dkZlSpVMljn6OiIQoUKpVqfmQmty+FFom2+/evb6NomMvqDJGrbL9Dcvg34+QG7dgHly8sUMZFlYKsRIvOy6CTMnHL6r285kyAWyZrG2A+Su5/OQGWXAsCnnwLu7rkcJZHlebPViFMaNzTxZici0+S5d8rhw4flDiEVOZMgFsmaLr0PEoVOh2pHduBYnTZQ2dvASeMImDgzA1F+lp8nlyeSQ57oE2bJ5JyUOGVtk5ODHWxtFFJtk7sTXsQkYGtgKPv3pJBWzyr7+Fj0/fpj9PhhMlqsmM+eVURpyK+TyxPJhUlYNhibBCUl6XKkqaEpRbL0WsoPEptHj/D+5CGodPoAEu3sEVa6PD9IiNKR3GokwEuD8NgE3HkWg/DYBFT2cuXIO5GJ8tzlSEtiTBL0z72XmLDlEsKi481+qZJFslmX/EFybMsB9Jg2HIVfPEGUkwabP/8eb/XvyA8Sogyw1QiReTAJy4bMkqC4JC1CnsUgLlGL0u7OZq/XYpFs9lS6eAIVPxsIRXQ04kr54+XazRhYM4AfJERGYKsRouzj5chsyGhSYiEEgp9EQSsEShZxzJF6Lc7Hl7EM57Z7/hzo1QuK6GigaVM4nD2NErUrMwEjIqJcwyGSbMjoTqHIuEQ8j0lAYUcVXBzsDZ5nrqaGnI8vfZnesVqoELB8ObBnj9QFX6mUO2QiIrIyHAnLhozuFAp5GgMbGwX83Z0AReokSK20RXxi9uu1WCSbWnp3rAYFP8TG3/56fcdq9+7Azz8zASMiIllwJMwEaTVkTW9S4goeGjjY20Jln3a9mDnrtVgk+1p6UxJ5Rj3FpwtGQhnxEquKbkCFgU2t8vwQEZHlYBJmpMwub6VMgkoULIBZu6+lvlQpBCLjEnH7aQwqeLigRMECZomPRbKStO5Y9Qq+ggFzRsEl/BkiNYXw/M4Dzm1HRESyYxJmBGO70qf8UE9ZrxWXqEVQWBSexyTATqGAg70tZu2+xumFzCjlHasVT+1Hz4WfQpkQh0cl/LF84ve4qXBh2w4iIpIda8IykZ2u9G/Waz14+Qpn777Ai5gEFHZSoaafG7wKFsiVzvrWRH/HanwSGm3/Ff3njYUyIQ43qjXA0lkr8UjjzrYdRERkEfhJlAlTutKndXmrkqcG5Yo645OtlxCXqIVfEUe4ONjr91Va5YTgsGhsDQxFheIurFPKpuQ7Vj3X/Iq2GxYAAP5u2we7Bo+H1sYWj8KiObcdERFZBCZhmTBHV/p7L1/haVQ8Srs7p2qqaq52FSRJvmN16cOOuPX3LgQ27YSzHfr917aDc9sREZHlYBKWCXN0pef0QrnkyRPA3R2VPDUY1r4q1rqvx80X8Yh/FgOVvQ0qe7mia3VP1t8REZFFYBKWiYwasiZ3pc/s8hanF8oFx48DnTsDn3wCfPKJdMdqpyps20FERBaLhfmZyKgha3CYcZe3OL1QDluzBmjeXJqKaPNmIDERwOu2HVW8XVGyiBMTMCIisihMwoyQ3a705kjkKA1CAFOnAv37AwkJQJcuwKFDgL19pk8lIiKSm0KkHJrJZyIjI6HRaBAREQEXF5ds7SutjvmmJE5pNXz1d3dmnVJWxMUB774LrF0rLX/yCTBnDmDDvyuIiEg+puQdLEIyQXa70qfsrO+okgr1Y+K1uP00mjVLxtLpgDZtgCNHADs7YMkSKSEjIiLKQ5iE5bLkRO5KaATWnL6X7jRIlAEbG6BXL+DiRWDLFqBZM7kjIiIiMhkvR8og1TRIStv/+ljFws1RaVSdmVVKTDSs9woLA9zd5YuHiIgoBVPyDhbQ5LLsTINk1X76CahaFXjx4vU6JmBERJSHMQnLhE4ncPtpNC7eD8ftp9HZTo5MmQaJINV/ffIJMHQocPUqsGyZ3BERERGZBWvCMpDW3Yzp1W0Ze+cku+ebICYGGDAA2LZNWp42DZgwwWCT7N6xaorcPJacxyQiotxhNUlY8oiWsR9mqeq2NFLd1uUHEQh9GWtQt2VKssbu+UZ6+BDo2BE4fx5QKoHly4G+fQ02MeW8Z1duHkvOYxIRUe6xmk/6uXuv40E0jPowS1m3lXzZ0MnBDqVVTggOi8bWwFBUKO6Cq48ijU7WAPNMg5TvXb0KtG4NPHgAFC4MbN8O1K9vsIkpSXJ2ZXaskc1Kw0llZ9bRqtz8+YiISB5Wk4RdDY1EiWKFjfowM7Zu6/azaKOTteQP5eTu+aEvY/XHSHl3pNV3zy9SRLoLslw5YOdOoFQpg4dNSZKzex4zO9alB+GYuOUyCjkqEZ9kntGq3Pz5iIhIPlZTmF+yiKPRdyLq67aU6ddtxSfqcPNJVJaK7PXTIHlq8CgiFlceRuBRRCwC/ltv9SMcRYoAe/cCf/+dKgEDcvfmhoyO9TImAWFR8bj7PAYJSTr4FioAV7USlx9Io1hXQiPMfkzevJGauW+eyQ94TojyBqsZCcvsw+zNTvjG1m0BimwV2QsICOkbiP+W87N0i8yTkoAxY4Dq1YEhQ6SN/f3T3U9u3tyQ3rFeRMfjdMgLxMQnQScEgp9G42VsAkoWdkJp9+yNVlnSzRuWfmMA6+ZS4zkhyjusJglLS3ofZsbWbZUp6pSlIvs363083rgceSU0Eg/Dg/LlaFh6Hww9/F1Q4aOhwJ49UgF+q1aAl1eG+8rNmxvSOtbLmARcuB+OmIQk2NoqYAcFVHY2eBGTgFfxEajkqUk3wc/qMXPq58uIpX+Ys24uNZ4TorzFai5HpiW9D7Pkui03RyWCw6IRHZcErU4gOi4JwWHR+rqt5FGPRxGxSDnxQHKy5u/ubFBkb43NWpM/GC4/iICrWgnfwo5wVSvx6OINaFo2lRIwtRpYvz7TBAx4nSSbct6zKtWxhMDtZ9GIS9LCVqGA0Ako7WygVtpCo7ZHXJIWIc9ioLa3QXxi1karcvPnS096/2fZvdRqLtb4PsoMzwlR3mM1SZipH2b6ui0vDcJjE3DnWQzCYxNQ2ctV/9ekscnam5dvrK3eJ70PhnL3r2HeN0Ph+eAWogoWhu7wEaBLF6P2mZXznlUpj/U4Mg4RrxKhsrWBVggobBRwdrAHoACgQAGlHSJiE/E0Oj7Lo1W5+fOlJS98mFvb+8gYPCdEeY/VXI68/TQGJWxNuxOxkqcGFYq7ZFgTk5ysJV+2eRIpXbap7OWKrtU9Uw39W1K9T25I64Oh0sm/0PO7z2CfEI/QEv74auTXGO1XHiVN2K+p5z073jzWP/fCEZOgRQGlDRyV0ttHafv6bxk7GwVeaXV4HBGHuqUKZ3m0Kjd/vpRM+TA39VKruVjb+8gYPCdEeY/VJGEVPF3wIDrB5A8zGxtFph80xiRryXKz3scSiqrT+mBwv38b9gnxuFK1PhYPnYn7SdLokalMOe/ZlXysY0FP8e3+myhYQAWlrQJXHkYiMi4RBZTSaFF8ohbxWh3cnLI/WpWbP9+b8sKHeVbeR5bwfshJllJLSETGs5p344TW5fAi0TbHfgEbk6wBudes1VKKqtP6YNjy9mAE2rrij3KNEfs0ETok4LdTd2Fva2NybMaed3OwsVGgoX8RHL75VPr/c3dCJU8NQp5FIzI2CVqdDvFJOpQoWAAT25Qzy3nOzZ8vWV74MDf1fWQp74ecxEbQRHmP1dSEJX+YVfF2RckiTrL9BZwb9T6WVFTtW8gRlQpo0fan2bCLjcHLmARceRiJTeWbwEZpBxsboGABJe4+i7GIgu/MpPz/U9raoIqXK8oXd0FhJxUCPDWY0y0AAV6ucoeaZZZwY0BmTHkfWdL7ISfJXUtIRKazmiTMkhhT9J9VllZUbXP7FsZ8PhBvH96MFt9NxfXHkYhNTEIBpS1iE7VQ2duiTFFn+Bd1toiCb2Ok/P+7+/wVknQ61C1VGJPeLo/KeTgBA/LOh7kx7yNLez/ktJz83UJE5mc1lyMtTU7V+1hUUfWxY0DnzlC9eIEEDy+c7TYE4bGJsIECCUkChRyV8C3sBDdHJQBYRMG3seSq18otct4YYIrM/h8s6v2QS/L7a5MoP2ESJqOcqPeJiktCXIIWSSodnkfHw95Wqt1J/gDKtaLq1auBd98FEhKAWrWg/OMPNE9Q4cjv/6KoiwoqO1uDuHI1NjORo14rN+WVD/OM/h/ywk0GOSG/vzaJ8gsmYfnM44hYhEbEIuR5DBRQwNZGARe1Hfz+G3HK8aJqIYApU4AZM6Tlbt2AVauAAgWgeRoN1wL2UNvbWWzBNxnK6x/meeEmAyKyXqwJy0euhEZgc2AokrQCWp2As4MtlP9Np3MlNAIvouNzvqg6LAxYulT6fuJEYONGoEABAHmj4JvyF77miMiSMQnLJ5ILkF/GJKCatysclXaI/O8Si7PKDrEJSfjnfjgKFrDP2aLqokWBP/4Afv0VmDMHsHn9EssrBd+Uf/A1R0SWTCFS/nmYz0RGRkKj0SAiIgIuLi5yh5Njbj+NxpQ//oWrWgknBzu8jEnAbX3/KgEBaY7DKe0ronWlYuY9+NWrwL17QJs2Rm2eVs8mf3dniyr4pvyFrzkiyi2m5B0shMgnUhYgF3RUokaBgoiKT0Jikg42Ngo8j05AMY2DeQ+8bx/QvTuQlAQcPw5Uq5bpU/JKwTflH3zNEZElYhKWT6RZgKxInlwaiI5LMn8B8rJlwPDhgFYLNGgAeHsb/dS8XvBNeQ9fc0RkaVgTlk/kagGyVguMGwcMGyZ9378/sH8/ULhw9vdNRERkJTgSZoS8MPFvcgFy6MtYfXNKtdIWsQlaPIqINV8BckyMlHRt3y4tT58OfP45oLCs80FERGTpmIRlIi9N/JsrXc5//FFKwFQqYPlyoE+f7O+TiIjICjEJy0DyxL8vYhKkkSWNNLJ0+UEEQl/GWuRcbDlegPzRR8CVK9KlyHr1zLNPIiIiK8QkLB0pJ/5Nnl7HycEOpVVOCA6LxtbAUFQo7mKRlybNWoB87Bjw1luAvT1gZwesXGm+fRMREVkpFuanw5SJf/MtIYAFC4DGjYH//U9aJiIiIrNgEpYOfd8tZfoT/8Yn5r+Jf/WSkoCRI6XLj0JIne91OrmjIiIiyjes9nJkZnc8WvXEv5GRQK9ewJ490l2P8+YBY8fyDkgiIiIzsugMYs6cOdi6dSuuX78OtVqNevXqYe7cuShbtmy29mvMHY/JfbcuP4hAaZWTwSXJ5L5blb1c89/Ev3fvAu3bS8X3BQoAa9YAnTvLHRUREVG+Y9GXI48cOYIRI0bg1KlT2LdvHxITE9GqVSvExGS9Div5jsfLDyLgqlbCt7AjXNVKXH4grb8SGgHASif+TUoCWraUErDixYGjR5mAERER5ZA8NYH306dP4e7ujiNHjqBRo0ZpbhMfH4/4+Hj9cmRkJLy9vREREQEnJ2fM2HVVGt1yTz26FRwWjcpervi8XXl9cmV1E//u2SM1X92+HfDykjsaIiKiPCXfTuAdESGNUrm5uaW7zZw5czBt2rQ0HzPljsfkFg/5fuJfIYD794ESJaTlNm2AVq2kQnwiIiLKMXnmk1an02HMmDGoX78+KlWqlO52kyZNQkREhP7r/v37+seyesdjct+tKt6uKFnEKf8kYAkJwODBQLVqQHDw6/VMwIiIiHJcnhkJGzFiBK5cuYLjx49nuJ1KpYJKpUrzMau+4zGlFy+Arl2BI0ekpOv0aaB0abmjIiIishp5Yshj5MiR2LlzJw4dOgSvbNQpJd/x+CgiFilL4ZLvePR3d85/dzymFBQkdcA/cgRwdgZ27QL69ZM7KiIiIqti0UmYEAIjR47Etm3bcPDgQfj5+WVrf1Z5x2NKR45ICVhQkFQH9vffUh0YERER5SqLvu42YsQIrF27Fr///jucnZ3x+PFjAIBGo4Farc7SPit5ajCqub/+jscnkdIdj5W9XPPvHY/JDh+Wiu4TE4HatYHffweKFZM7KiIiIqtk0S0qUt7BmGz58uUYNGiQUftI71bRzDrm50uxsUCzZoC3tzQJdxYTWSIiIkpbvmlRkZP5YfIdj/leXBygVErF92o1sHcv4OTEOyCJiIhkxk/i/CwsDGjaFJg8+fU6FxcmYERERBaAn8b51b//AnXqAKdOAYsXA0+eyB0RERERvcFqkrCQZ9HQ6Sy2/M28/voLqFcPuHMHKFUKOHkSKFpU7qiIiIjoDVaThM3+8zpm7Lqqn6A731qyBHj7bSAyEmjYUBoJK1tW7qiIiIgoBatJwlwd7HH5QQS+OxCUfxOxSZOA//0P0GqBd94B9u0DCheWOyoiIiJKg9UkYY4Odijt7oQXMQnYGhiaPy9NBgQACgUwcyawYgWQzvRNREREJD+LblFhbgqFAsU1agSFReHO85j80aJCCCnxAoC+fYEqVYCKFeWNiYiIiDJlNSNhydRKW8Qn6hAVlyR3KNn3zz9SAf6jR6/XMQEjIiLKE6wuCYtN0EJlbwNnhzw+CPjHH0CDBlLh/fjxckdDREREJrKqJEwIgUcRsfB3d4ZvIUe5w8kaIYBvvwU6dwZevQJatgQWLZI7KiIiIjKR1SRhMXFJCA6LhpujEl2re+bNeSITE4Hhw4GxY6VkbNgwYNcuQJOPJx0nIiLKp/L4NTnjhcclorJPIXSt7olKnnkwaYmIAHr2lBqxKhTA118DH330uiifiIiI8hSrScI+fbscAnyL580RMEAa+XrwAChQAFi7FujUSe6IiIiIKBusJgnzK+yUdxMwAHB1BXbuBF6+BKpXlzsaIiIiyiarqQnLkzZuBH744fWynx8TMCIionzCakbC8hQhgNmzgc8/l2q+qleX+oERERFRvmE1SVjIs2ggQgdnBzv4FnI0y6VJnU7gzvMYRMUlmW+/8fHA0KHAqlXS8pgxQJ062Y6ViIiILIvVJGGz/7wOYaeGyt4Gpd2d0K26V7bukrwSGoEtgQ8QHBaN+ESdefb7/DnQpQtw7BhgaytdivzggyzHSERERJbLapIwVwd7aFwdEZugxeUHEQh9GYtRzf2zlDBdCY3AdweC8CImAcU1aqg1ttnf740bQPv2QHAw4OICbNoEtGplcmxERESUN1hNYb6jgx1sbRRwcrBDaXcnvIhJwNbAUOh0wqT96HQCWwIf4EVMAkq7O8HJTPvFgQNSAubjA/z9NxMwIiKifM5qRsLepFAoUFyjRlBYFO48j0HJIk5GP/fO8xgEh0WjuEYNRYpGqdnZL/73PyAhAejTByha1PjnERERUZ5kNSNhKamVtohP1CEqLsmk50XFJSE+UQe10jZ7+9XpgAULgPBwaVmhkIrwmYARERFZBatNwmITtFDZ28DZwbTBQGcHO6jsbRCboM36fmNjgd69pWmHevSQEjIiIiKyKlaZhAkh8CgiFv7uzvAt5Gj083Q6AZ0QcFXbI+R5NESK5Mmo/T55AjRtKhXe29sD/fsDNpn/N+h0ArefRuPi/XDcfhptes0ZERERWRSrqQmLiUuCnYNAbIIWjyJi4eaoRNfqnkb39XqzJcWL6AQ8joxDWGQ8yhZ1gpODPaLjkvDyVQKKaxzS3++VK9IdkHfvAgULAtu2AY0bm3Rss7XDICIiIllZTRIWHpeIl89ioLK3QWUvV3St7ml0ApOyJUVxjRqFnFS4HBqOs3dewtZGob9DMt1i/L17pUuPUVGAv780D2SZMiYf2yztMIiIiEh2VpOEffp2OcC+gMmd7VO2pEi+I1KttEUBpS3iE7XQqO1R2UsDexsbPAyPxXcHggySI11cPLTD/gf7qCjE1q0P1e/bYVOkcJaP7eRgh9IqJwSHRWNrYCgqFHfJ25OTExERWSGrScL8CjvBxcXF5Oel1ZJCCIGQZ9GIT9KhkJMKiVoBO1sbODnYo7SDnUFydPVRJLYEPkDc4BlocnAL1vUdC79TT9Ctun2mI1g51g6DiIiIZGc1SVhW6VtSaGwN1kXGJqGA0g52NgrEJSYhMUkq0k9Oju7de4Lzy6/iJ3tf6VKifwUcqBgAZxMuJaZ17DeplbZ4Eml6mw0iIiKSn1XeHWmKtFpSJGp10OoE7GwUSNIJ2NooYG/3+lQWi3qGz74chqof9IX7xbNZ7qxvlnYYREREZJGYhGXCt5AjSrs74VFELISQEiZ7WxvY2iiQpNPhVUISNGp7OKukRMjj1lWMmNQPfg+CEKN2gqvGMdNLiaYcO1lW22wQERGRZWASlgkbGwW6VfeCm6MSwWHRiI5LQgGlLdT2NngRnQCVrQ38CjsCCgUqnD6IYZMHwfXlUzz0KoVPP/kJYRWqprlfYzrrp3VsrU4gOi4JwWHRJrfZICIiIsvBJMwIlTw1GNXcHwFeGoTHJuDu81dwLaCEm5MKmgL2sLdRoP7vK9Bv3kdQxsfhSsBbuLZxF6KKe2X7UmLKY995FoPw2ARU9nJlewoiIqI8jMVERqrkqUGF4i648zwGUXFJcHawQ0x8Erb+EwqXvX+i/ar5AICzbXtBvXgRmnq74fizq7j8IAKlVU4GlySTLyVW9nI16lJiWsc2pc0GERERWR4mYSawsVGkagVR0UODO7W98fLBaWhr1kKNSeNhYysNMHar7oXQl7H6NhNqpW2WO/andWwiIiLKuxQiZcV3PhMZGQmNRoOIiIgs9QlL1927gLs7oFZLy0IAitQJVVpTDvm7O5vUsZ+IiIjyBlPyDo6EZcXffwOdO0sTca9bJ03AnUYCBvBSIhEREaWNSZip1q0DBg8G4uOBoCAgMhJwdc3wKbyUSERERCnx7khjCQHMmAH07SslYB07AseOZZqAEREREaWFSZgx4uOBd94BvvhCWv74Y2DrVsCRTVKJiIgoa3g50hh9+gDbtgG2tsCiRcCwYXJHRERERHkcR8KMMXasdCfk7t1MwIiIiMgsOBKWnshIIPnW0gYNgNu3efmRiIiIzIYjYWlZvhzw8wMuX369jgkYERERmRGTsDfpdMCnnwJDhgAvXkjJGBEREVEO4OXIZK9eAQMHAps3S8uTJwNTp8oaEhEREeVfTMIA4PFjqe/X2bOAvT3wyy/AgAFyR0VERET5GJOwu3eBRo2Ae/cANzepFUWjRnJHRURERPkckzAPD6BMGcDBAdi1CyhdWu6IiIiIyApYbxKm00kTb9vbA5s2SctubnJHRURERFbC+pIwrVZqvpqUBPzwA6BQcP5HIiIiynXWlYRFRUlTEO3aJS0PHgzUrClvTERERGSV8kSfsEWLFsHX1xcODg6oU6cOzpw5Y/pOHjyQOt/v2iXVf23axASMiIiIZGPxSdiGDRswduxYTJkyBYGBgahSpQpat26NsLAw03bUtClw6RJQtChw5AjQvXvOBExERERkBIUQQsgdREbq1KmDWrVq4YcffgAA6HQ6eHt748MPP8TEiRMzfX5kZCQ0Gg0iALhUqgTs3An4+ORw1ERERGSN9HlHRARckuegTodF14QlJCTg/PnzmDRpkn6djY0NWrRogZMnT6b5nPj4eMTHx+uXIyIiAACRTZoAv/0mTcodGZmjcRMREZF1ivwvxzBmjMuik7Bnz55Bq9WiaNGiBuuLFi2K69evp/mcOXPmYNq0aanWex8+DHh750SYRERERAaioqKg0Wgy3Maik7CsmDRpEsaOHatfDg8Ph4+PD+7du5fpybBmkZGR8Pb2xv379zMdPrVmPE/G47kyDs+TcXiejMdzZZycOk9CCERFRcHDwyPTbS06CStcuDBsbW3x5MkTg/VPnjxBsWLF0nyOSqWCSqVKtV6j0fDFaAQXFxeeJyPwPBmP58o4PE/G4XkyHs+VcXLiPBk76GPRd0cqlUrUqFEDBw4c0K/T6XQ4cOAA6tatK2NkRERERNlj0SNhADB27FgMHDgQNWvWRO3atbFgwQLExMRg8ODBcodGRERElGUWn4T16tULT58+xRdffIHHjx+jatWq2LNnT6pi/fSoVCpMmTIlzUuU9BrPk3F4nozHc2Ucnifj8DwZj+fKOJZwniy+TxgRERFRfmTRNWFERERE+RWTMCIiIiIZMAkjIiIikgGTMCIiIiIZ5OskbNGiRfD19YWDgwPq1KmDM2fOyB2SxZkzZw5q1aoFZ2dnuLu7o3Pnzrhx44bcYVm8L7/8EgqFAmPGjJE7FIsTGhqK/v37o1ChQlCr1QgICMC5c+fkDsviaLVaTJ48GX5+flCr1ShVqhRmzJhh1Hxz+dnRo0fRoUMHeHh4QKFQYPv27QaPCyHwxRdfoHjx4lCr1WjRogWCgoLkCVZGGZ2nxMRETJgwAQEBAXB0dISHhwfeeecdPHz4UL6AZZTZa+pNH3zwARQKBRYsWJArseXbJGzDhg0YO3YspkyZgsDAQFSpUgWtW7dGWFiY3KFZlCNHjmDEiBE4deoU9u3bh8TERLRq1QoxMTFyh2axzp49i6VLl6Jy5cpyh2JxXr58ifr168Pe3h67d+/G1atX8c0336BgwYJyh2Zx5s6di8WLF+OHH37AtWvXMHfuXHz11Vf4/vvv5Q5NVjExMahSpQoWLVqU5uNfffUVvvvuOyxZsgSnT5+Go6MjWrdujbi4uFyOVF4ZnadXr14hMDAQkydPRmBgILZu3YobN26gY8eOMkQqv8xeU8m2bduGU6dOGTXdkNmIfKp27dpixIgR+mWtVis8PDzEnDlzZIzK8oWFhQkA4siRI3KHYpGioqKEv7+/2Ldvn2jcuLEYPXq03CFZlAkTJogGDRrIHUae0K5dOzFkyBCDdV27dhX9+vWTKSLLA0Bs27ZNv6zT6USxYsXEvHnz9OvCw8OFSqUS69atkyFCy5DyPKXlzJkzAoC4e/du7gRlodI7Vw8ePBCenp7iypUrwsfHR3z77be5Ek++HAlLSEjA+fPn0aJFC/06GxsbtGjRAidPnpQxMssXEREBAHBzc5M5Ess0YsQItGvXzuC1Ra/98ccfqFmzJnr06AF3d3dUq1YNP/30k9xhWaR69erhwIEDuHnzJgDg4sWLOH78ONq2bStzZJYrJCQEjx8/Nnj/aTQa1KlTh7/bMxEREQGFQgFXV1e5Q7E4Op0OAwYMwPjx41GxYsVcPbbFd8zPimfPnkGr1abqql+0aFFcv35dpqgsn06nw5gxY1C/fn1UqlRJ7nAszvr16xEYGIizZ8/KHYrFun37NhYvXoyxY8fi008/xdmzZzFq1CgolUoMHDhQ7vAsysSJExEZGYly5crB1tYWWq0Ws2bNQr9+/eQOzWI9fvwYANL83Z78GKUWFxeHCRMmoE+fPpzQOw1z586FnZ0dRo0alevHzpdJGGXNiBEjcOXKFRw/flzuUCzO/fv3MXr0aOzbtw8ODg5yh2OxdDodatasidmzZwMAqlWrhitXrmDJkiVMwlLYuHEj1qxZg7Vr16JixYq4cOECxowZAw8PD54rMpvExET07NkTQggsXrxY7nAszvnz57Fw4UIEBgZCoVDk+vHz5eXIwoULw9bWFk+ePDFY/+TJExQrVkymqCzbyJEjsXPnThw6dAheXl5yh2Nxzp8/j7CwMFSvXh12dnaws7PDkSNH8N1338HOzg5arVbuEC1C8eLFUaFCBYN15cuXx71792SKyHKNHz8eEydORO/evREQEIABAwbgo48+wpw5c+QOzWIl//7m73bjJCdgd+/exb59+zgKloZjx44hLCwMJUqU0P9uv3v3Lj7++GP4+vrm+PHzZRKmVCpRo0YNHDhwQL9Op9PhwIEDqFu3royRWR4hBEaOHIlt27bh4MGD8PPzkzski9S8eXNcvnwZFy5c0H/VrFkT/fr1w4ULF2Brayt3iBahfv36qVqc3Lx5Ez4+PjJFZLlevXoFGxvDX8G2trbQ6XQyRWT5/Pz8UKxYMYPf7ZGRkTh9+jR/t6eQnIAFBQVh//79KFSokNwhWaQBAwbg0qVLBr/bPTw8MH78eOzduzfHj59vL0eOHTsWAwcORM2aNVG7dm0sWLAAMTExGDx4sNyhWZQRI0Zg7dq1+P333+Hs7Kyvq9BoNFCr1TJHZzmcnZ1T1ck5OjqiUKFCrJ97w0cffYR69eph9uzZ6NmzJ86cOYNly5Zh2bJlcodmcTp06IBZs2ahRIkSqFixIv755x/Mnz8fQ4YMkTs0WUVHRyM4OFi/HBISggsXLsDNzQ0lSpTAmDFjMHPmTPj7+8PPzw+TJ0+Gh4cHOnfuLF/QMsjoPBUvXhzdu3dHYGAgdu7cCa1Wq//d7ubmBqVSKVfYssjsNZUyQbW3t0exYsVQtmzZnA8uV+7BlMn3338vSpQoIZRKpahdu7Y4deqU3CFZHABpfi1fvlzu0CweW1SkbceOHaJSpUpCpVKJcuXKiWXLlskdkkWKjIwUo0ePFiVKlBAODg6iZMmS4rPPPhPx8fFyhyarQ4cOpfk7aeDAgUIIqU3F5MmTRdGiRYVKpRLNmzcXN27ckDdoGWR0nkJCQtL93X7o0CG5Q891mb2mUsrNFhUKIay8PTMRERGRDPJlTRgRERGRpWMSRkRERCQDJmFEREREMmASRkRERCQDJmFEREREMmASRkRERCQDJmFEREREMmASRkRERCQDJmFEucTX1xcLFiyQOwyzyW8/jyUaNGiQwXQ8TZo0wZgxY2SLJ6coFAps374dAHDnzh0oFApcuHBB1piIcgOTMKJsun//PoYMGQIPDw8olUr4+Phg9OjReP78udyhWYQHDx5AqVRazRybvr6+UCgUUCgUUKvV8PX1Rc+ePXHw4EGT97Vw4UKsWLHCbLElJzjJX0qlEqVLl8bMmTNhKZOneHt749GjR1bzeiHrxiSMKBtu376NmjVrIigoCOvWrUNwcDCWLFmCAwcOoG7dunjx4oVssWm1Wuh0OtmOn2zFihXo2bMnIiMjcfr06Rw/XmJiYo4fIzPTp0/Ho0ePcOPGDaxatQqurq5o0aIFZs2aZdJ+NBoNXF1dzR7f/v378ejRIwQFBWHatGmYNWsWfv31V7Mf500JCQlGbWdra4tixYrBzs4uR+MhsgRMwoiyYcSIEVAqlfjrr7/QuHFjlChRAm3btsX+/fsRGhqKzz77zGD7qKgo9OnTB46OjvD09MSiRYv0jwkhMHXqVJQoUQIqlQoeHh4YNWqU/vH4+HiMGzcOnp6ecHR0RJ06dXD48GH94ytWrICrqyv++OMPVKhQASqVCj///DMcHBwQHh5uEMfo0aPRrFkz/fLx48fRsGFDqNVqeHt7Y9SoUYiJidE/HhYWhg4dOkCtVsPPzw9r1qwx6vwIIbB8+XIMGDAAffv2xS+//KJ/7NNPP0WdOnVSPadKlSqYPn26fvnnn39G+fLl4eDggHLlyuHHH3/UP5Y8srNhwwY0btwYDg4OWLNmDZ4/f44+ffrA09MTBQoUQEBAANatW2dwnKioKPTr1w+Ojo4oXrw4vv3221SX+zI75+lxdnZGsWLFUKJECTRq1AjLli3D5MmT8cUXX+DGjRsApCT53XffhZ+fH9RqNcqWLYuFCxca7Cfl5cg3TZ8+Pc3RoqpVq2Ly5MkZxleoUCEUK1YMPj4+6NevH+rXr4/AwED94zqdDtOnT4eXlxdUKhWqVq2KPXv2GOxjwoQJKFOmDAoUKICSJUti8uTJBgnw1KlTUbVqVfz888/w8/ODg4MDACAoKAiNGjWCg4MDKlSogH379hnsN+XlyMOHD0OhUODAgQOoWbMmChQogHr16unPY7KZM2fC3d0dzs7OeO+99zBx4kRUrVpV//jhw4dRu3ZtODo6wtXVFfXr18fdu3czPE9EOS5XpgknyoeeP38uFAqFmD17dpqPv//++6JgwYJCp9MJIYTw8fERzs7OYs6cOeLGjRviu+++E7a2tuKvv/4SQgixadMm4eLiIv78809x9+5dcfr0abFs2TL9/t577z1Rr149cfToUREcHCzmzZsnVCqVuHnzphBCiOXLlwt7e3tRr149ceLECXH9+nURHR0tihYtKn7++Wf9fpKSkgzWBQcHC0dHR/Htt9+KmzdvihMnTohq1aqJQYMG6Z/Ttm1bUaVKFXHy5Elx7tw5Ua9ePaFWq8W3336b4Tk6cOCAKFasmEhKShKXL18Wzs7OIjo6WgghxJUrVwQAERwcrN8+eV1QUJAQQojVq1eL4sWLiy1btojbt2+LLVu2CDc3N7FixQohhBAhISECgPD19dVv8/DhQ/HgwQMxb9488c8//4hbt27pz/Xp06cNzqePj4/Yv3+/uHz5sujSpYtwdnYWo0ePNvqcp8XHxyfN85L8epk7d64QQoiEhATxxRdfiLNnz4rbt2+L1atXiwIFCogNGzbonzNw4EDRqVMn/XLjxo318d2/f1/Y2NiIM2fO6B8PDAwUCoVC3Lp1K83Yks/XP//8o1939uxZ4erqKlauXKlfN3/+fOHi4iLWrVsnrl+/Lj755BNhb29v8HPPmDFDnDhxQoSEhIg//vhDFC1aVP+zCSHElClThKOjo2jTpo0IDAwUFy9eFFqtVlSqVEk0b95cXLhwQRw5ckRUq1ZNABDbtm1LM8ZDhw4JAKJOnTri8OHD4t9//xUNGzYU9erV0x9r9erVwsHBQfz666/ixo0bYtq0acLFxUVUqVJFCCFEYmKi0Gg0Yty4cSI4OFhcvXpVrFixQty9ezfN80SUW5iEEWXRqVOnDD48Upo/f74AIJ48eSKEkD6c27RpY7BNr169RNu2bYUQQnzzzTeiTJkyIiEhIdW+7t69K2xtbUVoaKjB+ubNm4tJkyYJIaQkDIC4cOGCwTajR48WzZo10y/v3btXqFQq8fLlSyGEEO+++64YOnSowXOOHTsmbGxsRGxsrLhx44YAYPBhf+3aNQEg0ySsb9++YsyYMfrlKlWqiOXLlxssT58+Xb88adIkUadOHf1yqVKlxNq1aw32OWPGDFG3bl0hxOsP7AULFmQYhxBCtGvXTnz88cdCCCEiIyOFvb292LRpk/7x8PBwUaBAAX2SY8w5T0t6SZgQQhQtWlT873//S/e5I0aMEN26ddMvZ5SECSElx2/u78MPPxRNmjRJd//J50utVgtHR0dhb28vAKT6//fw8BCzZs0yWFerVi0xfPjwdPc9b948UaNGDf3ylClThL29vQgLC9Ov27t3r7CzszM4p7t37zYqCdu/f7/+Obt27RIARGxsrBBCiDp16ogRI0YYxFO/fn19Evb8+XMBQBw+fDjd+InkwMuRRNkkTChorlu3bqrla9euAQB69OiB2NhYlCxZEu+//z62bduGpKQkAMDly5eh1WpRpkwZODk56b+OHDmCW7du6fenVCpRuXJlg2P069cPhw8fxsOHDwEAa9asQbt27fS1RhcvXsSKFSsM9tu6dWvodDqEhITg2rVrsLOzQ40aNfT7LFeuXKa1SuHh4di6dSv69++vX9e/f3+DS5L9+vXD2rVrAUjncd26dejXrx8AICYmBrdu3cK7775rENvMmTMNfmYAqFmzpsGyVqvFjBkzEBAQADc3Nzg5OWHv3r24d+8eAKmWLzExEbVr19Y/R6PRoGzZsvplY8+5KYQQUCgU+uVFixahRo0aKFKkCJycnLBs2TJ9jMZ4//33sW7dOsTFxSEhIQFr167FkCFDMn3ehg0bcOHCBVy8eBEbN27E77//jokTJwIAIiMj8fDhQ9SvX9/gOfXr19e/VpP3Ub9+fRQrVgxOTk74/PPPU8Xu4+ODIkWK6JevXbsGb29veHh46NelfE+k583XdfHixQFIl8kB4MaNGwb/lwAMlt3c3DBo0CC0bt0aHTp0wMKFC/Ho0SOjjkuUk1j5SJRFpUuXhkKhwLVr19ClS5dUj1+7dg0FCxY0+BDKiLe3N27cuIH9+/dj3759GD58OObNm4cjR44gOjoatra2OH/+PGxtbQ2e5+TkpP9erVYbfMgDQK1atVCqVCmsX78e//vf/7Bt2zaDO+6io6MxbNgwg/qzZCVKlMDNmzeNij+ltWvXIi4uzqDuSwgBnU6HmzdvokyZMujTpw8mTJiAwMBAxMbG4v79++jVq5c+LgD46aefUtWOpTwHjo6OBsvz5s3DwoULsWDBAgQEBMDR0RFjxowxujg8+fjGnHNjPX/+HE+fPoWfnx8AYP369Rg3bhy++eYb1K1bF87Ozpg3b55JNy906NABKpUK27Ztg1KpRGJiIrp3757p87y9vVG6dGkAQPny5XHr1i1MnjwZU6dONeq4J0+eRL9+/TBt2jS0bt0aGo0G69evxzfffGOwXcr/l+ywt7fXf5/8GjflxpPly5dj1KhR2LNnDzZs2IDPP/8c+/btw1tvvWW2GIlMxSSMKIsKFSqEli1b4scff8RHH30EtVqtf+zx48dYs2YN3nnnHYOk6NSpUwb7OHXqFMqXL69fVqvV6NChAzp06IARI0agXLlyuHz5MqpVqwatVouwsDA0bNjQ5Fj79euHNWvWwMvLCzY2NmjXrp3+serVq+Pq1av6D+WUypUrh6SkJJw/fx61atUCII08pCz2T+mXX37Bxx9/jEGDBhmsHz58OH799Vd8+eWX8PLyQuPGjbFmzRrExsaiZcuWcHd3BwAULVoUHh4euH37tn50zFgnTpxAp06d9KNwyYlfhQoVAAAlS5aEvb09zp49ixIlSgAAIiIicPPmTTRq1AgAsn3OU1q4cCFsbGz0hfYnTpxAvXr1MHz4cP02po6w2dnZYeDAgVi+fDmUSiV69+5t8Do0lq2tLZKSkpCQkAAXFxd4eHjgxIkTaNy4sX6bEydO6EeX/v77b/j4+BjceGJMkXv58uVx//59PHr0SD+alfI9kRVly5bF2bNn8c477+jXnT17NtV21apVQ7Vq1TBp0iTUrVsXa9euZRJGsmISRpQNP/zwA+rVq4fWrVtj5syZ8PPzw7///ovx48fD09MzVUuCEydO4KuvvkLnzp2xb98+bNq0Cbt27QIg3d2o1WpRp04dFChQAKtXr4ZarYaPjw8KFSqEfv364Z133sE333yDatWq4enTpzhw4AAqV65skFSlpV+/fpg6dSpmzZqF7t27Q6VS6R+bMGEC3nrrLYwcORLvvfceHB0dcfXqVezbtw8//PADypYtizZt2mDYsGFYvHgx7OzsMGbMmAw/7C9cuIDAwECsWbMG5cqVM3isT58+mD59OmbOnAk7Ozv069cPU6ZMQUJCAr799luDbadNm4ZRo0ZBo9GgTZs2iI+Px7lz5/Dy5UuMHTs23eP7+/tj8+bN+Pvvv1GwYEHMnz8fT5480Sdhzs7OGDhwIMaPHw83Nze4u7tjypQpsLGx0SfNZcqUyfI5j4qKwuPHj5GYmIiQkBCsXr0aP//8M+bMmaNPdv39/bFq1Srs3bsXfn5++O2333D27Fn9SJmx3nvvPX0if+LECaOe8/z5czx+/BhJSUm4fPkyFi5ciKZNm8LFxQUAMH78eEyZMgWlSpVC1apVsXz5cly4cEF/V6y/vz/u3buH9evXo1atWti1axe2bduW6XFbtGiBMmXKYODAgZg3bx4iIyNT3UGcFR9++CHef/991KxZE/Xq1cOGDRtw6dIllCxZEgAQEhKCZcuWoWPHjvDw8MCNGzcQFBRkkLQRyULekjSivO/OnTti4MCBomjRosLe3l54e3uLDz/8UDx79sxgOx8fHzFt2jTRo0cPUaBAAVGsWDGxcOFC/ePbtm0TderUES4uLsLR0VG89dZbBsXIyXfT+fr6Cnt7e1G8eHHRpUsXcenSJSGEVJiv0WjSjbN27doCgDh48GCqx86cOSNatmwpnJychKOjo6hcubJBYfajR49Eu3bthEqlEiVKlBCrVq3KsAB95MiRokKFCmk+9ujRI2FjYyN+//13IcT/27l3l2aCKIzDJwRHkAUNLkGJJJVaWCgIwUJTKZaxMmAhXrDQwk5IISqCnZdWbEVio2Vi7x+Q1lS2AQtRUdKE1+IjgeAtzccI/h7YZhmWs7NbvOyeGenx8VGdnZ3q6urSy8vLh/EXFxcaGxuTc06xWEyZTEbX19eSPl/tJ/1rxM5mswqCQPF4XNvb21pcXGxpcn9+ftbCwkLzWRwfHyudTiufzzfH/DTnn0mlUjIzmZmcc0omk5qfn/8w77VaTUtLS+ru7lZPT4/W19eVz+ebzeTSz435DVNTUxoZGfmypobGfDWOaDSqgYEBra2ttTTQ1+t17e3tKZFIqKOjQ6OjoyqVSi3X2traUm9vr4IgUC6X08nJScv7t7u723IvDZVKRZOTk3LOaWhoSDc3N2015jcWkkhSuVyWmen+/r55bn9/X2EYKggCraysaHNzUxMTE5KkarWqubk59ff3yzmnVCqlnZ0d1ev1H+cM+J8i0i/ZJhkAPHp9fbVEImFHR0e2urrqu5y2SbLBwUHb2Nj49uvgXzMzM2N9fX12fn7uuxTgS/yOBPAnlctlu7u7s3Q6bU9PT80NYrPZrOfK2vfw8GCXl5dWrVZteXnZdznevL292enpqc3Ozlo0GrVCodBc4AL8ZoQwAH/W4eGhVSoVc87Z+Pi43d7eWhiGvstqWzwetzAM7ezszGKxmO9yvIlEIlYsFu3g4MBqtZoNDw/b1dWVTU9P+y4N+Ba/IwEAADxgs1YAAAAPCGEAAAAeEMIAAAA8IIQBAAB4QAgDAADwgBAGAADgASEMAADAA0IYAACAB+/cYwQkD1jcMAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "plt.figure(figsize=(7, 6))\n", + "\n", + "plt.scatter(observed, predicted, alpha=0.6)\n", + "\n", + "# use a robust max instead of true max\n", + "cap = np.percentile(np.concatenate([observed, predicted]), 95)\n", + "\n", + "plt.plot([0, cap], [0, cap], color=\"red\", linestyle=\"--\")\n", + "\n", + "plt.xlim(0, cap)\n", + "plt.ylim(0, cap)\n", + "\n", + "plt.xlabel(\"Observed Average Daily Boardings\")\n", + "plt.ylabel(\"Predicted Boardings\")\n", + "plt.title(\"Observed vs Predicted (Negative Binomial GLM)\")\n", + "plt.grid(False)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "9f0edc7e-1341-48cf-b9fd-a24f7e8c8de9", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying stop level data for City of Burbank " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "75df8b20-dee7-420d-9231-229db9d53915", + "metadata": {}, + "outputs": [], + "source": [ + "# Burbank, Metrolink, LA Metro Bus and LA metro rail\n", + "feed_keys = [\"cc6a68a39d22c29b49116584971e69a8\", \"0f80473907c7613e9fefbb71220e9e56\", \"8d9623a1823a27925b7e2f00e44fc5bb\", \"f1ba526e631625c1d6816d055265ed65\"] \n", + "feed_keys_str = \", \".join(f\"'{k}'\" for k in feed_keys)\n", + "\n", + "# Query only those feed_keys\n", + "with db_engine.connect() as connection:\n", + " query = f\"\"\"\n", + " SELECT \n", + " feed_key, stop_id, _feed_valid_from, n_hours_in_service, daily_arrivals, arrivals_early_am, arrivals_am_peak, arrivals_midday, \n", + " arrivals_pm_peak, arrivals_evening, route_id_array, route_type_array, stop_key, tts_stop_name,\n", + " pt_geom, stop_name, location_type, stop_desc, stop_code\n", + " FROM cal-itp-data-infra.mart_gtfs.fct_daily_scheduled_stops\n", + " WHERE service_date = DATE('2025-05-25')\n", + " AND feed_key IN ({feed_keys_str})\n", + " \"\"\"\n", + " df_agency = pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "98205773-013c-45d4-a8bc-302d8a33e97f", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"burbank_orange_new_stops.csv\")\n", + "df[\"stop_dir_key\"] = df[\"stop_name\"] + \" \" + df[\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b3165da9-4c91-44f2-bad2-941995d22b73", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords = {\n", + "\"Hollywood & Jeffries eastbound\": (34.18141305368438, -118.34903738211447),\n", + "\"Hollywood & Victory Bl eastbound\": (34.18508535157502, -118.34929119735641),\n", + "\"Hollywood & Pacific eastbound\": (34.18825119276962, -118.34886491064228),\n", + "\"Hollywood & Valhalla eastbound\": (34.19012427165374, -118.34916328937923),\n", + "\"Hollywood & Thorton eastbound\": (34.19656151035557, -118.34876716762236),\n", + "\"Hollywood & Thorton westbound\": (34.195980179882646, -118.34894014653726),\n", + "\"New BUR terminal eastbound\": (34.19359656711031, -118.35357055101639),\n", + "\"New BUR terminal westbound\": (34.19359656711031, -118.35357055101639),\n", + "\"Winona / Ontario eastbound\": (34.199490557715684, -118.3443711434909),\n", + "\"Winona / Ontario westbound\": (34.1992091874645, -118.34484346690523),\n", + "\"Ontario & Thorton eastbound\": (34.19593202043652, -118.34444331137956),\n", + "\"Ontario & Thorton westbound\": (34.19541510602419, -118.34460558501739),\n", + "\"Empire & Ontario eastbound\": (34.192108542580186, -118.3443394102755),\n", + "\"Empire & Buena Vista eastbound\": (34.19195822628478, -118.33787457476522),\n", + "\"Empire & Valpreda eastbound\": (34.19194945024493, -118.33285175184913),\n", + "\"Empire & Valpreda westbound\": (34.19179144771815, -118.33244032844016),\n", + "\"Empire & Grismer eastbound\": (34.19175476406717, -118.32509312643347),\n", + "\"Empire & Grismer westbound\": (34.19154206721876, -118.3254365921081),\n", + "\"Amherst Dr / San Fernando eastbound\": (34.19012800601128, -118.32086710181368),\n", + "\"Amherst Dr / San Fernando westbound\": (34.189934438443714, -118.32176619076398),\n", + "\"Glenoaks & Bethany eastbound\": (34.191647095345786, -118.31754103475315),\n", + "\"Glenoaks & Bethany westbound\": (34.19168659607283, -118.3180498038794),\n", + "\"Glenoaks & Fairmount eastbound\": (34.18922976877985, -118.31426181767534),\n", + "\"Glenoaks & Fairmount westbound\": (34.18869054389077, -118.3139580922512),\n", + "\"Glenoaks & Cypress eastbound\": (34.18708018484801, -118.31127153444093),\n", + "\"Glenoaks & Cypress westbound\": (34.18677382226348, -118.31135025143384),\n", + "\"Glenoaks & Magnolia eastbound\": (34.18566039664216, -118.30935620418528),\n", + "\"Glenoaks & Magnolia westbound\": (34.1853950731641, -118.3094180753144),\n", + "\"Glenoaks & Olive eastbound\": (34.18338784687265, -118.30666291160377),\n", + "\"Glenoaks & Olive westbound\": (34.183750381812565, -118.30682928383196),\n", + "\"Glenoaks & Verdugo eastbound\": (34.1810536128531, -118.30348086446116),\n", + "\"Glenoaks & Verdugo westbound\": (34.18130060913145, -118.30290962506388),\n", + "\"Glenoaks & Providencia eastbound\": (34.17964641863243, -118.30103491619572),\n", + "\"Glenoaks & Providencia westbound\": (34.17927416886304, -118.30121771535951),\n", + "\"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + "\"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + "\"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + "\"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + "\"Flower & Alameda eastbound\": (34.17106795233713, -118.30268518471172),\n", + "\"Flower & Alameda westbound\": (34.17166407022795, -118.3032739880033)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "68c5b654-30e9-4ef2-b6e2-45b03fbc9d11", + "metadata": {}, + "outputs": [], + "source": [ + "df_blue = pd.read_csv(\"burbank_blue_new_stops.csv\")\n", + "df_blue[\"stop_dir_key\"] = df_blue [\"stop_name\"] + \" \" + df_blue [\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6210a31b-85be-44a6-8cce-9569778e094d", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords_blue = {\n", + " \"Metrolink Station eastside terminal at Front St eastbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Metrolink Station eastside terminal at Front St westbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Verdugo & Ikea Way eastbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & Ikea Way westbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & San Fernando eastbound\": (34.17878489736103, -118.30541531103879),\n", + " \"Verdugo & San Fernando westbound\": (34.17851879621711, -118.30606420445262),\n", + " \"Glenoaks & Providencia eastbound\": (34.17962336385441, -118.30104441612727),\n", + " \"Glenoaks & Providencia westbound\": (34.17927459077334, -118.30121849159424),\n", + " \"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + " \"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + " \"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + " \"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + " \"Alameda & Lake eastbound\": (34.16893683695737, -118.30550179211235),\n", + " \"Alameda & Lake westbound\": (34.169039897393205, -118.30583857000296),\n", + " \"Alameda & Victory eastbound\": (34.166763977999786, -118.30764556757374),\n", + " \"Alameda & Victory westbound\": (34.16653844596177, -118.30776671277157),\n", + " \"Alameda & Main eastbound\": (34.05882507328523, -118.2372783904341),\n", + " \"Alameda & Main westbound\": (34.05926978274522, -118.23693452367304),\n", + " \"Alameda & Mariposa eastbound\": (34.16232050313561, -118.3156158302872),\n", + " \"Alameda & Mariposa westbound\": (34.16231163244352, -118.3163406121734),\n", + " \"Alameda & Reese eastbound\": (34.160989586571944, -118.31959642185599),\n", + " \"Alameda & Reese westbound\": (34.16116470453852, -118.32011647018618),\n", + " \"Alameda & Keystone eastbound\": (34.15960879667507, -118.32369063587736),\n", + " \"Alameda & Keystone westbound\": (34.159809285768965, -118.32415899113134),\n", + " \"Alameda / Buena Vista eastbound\": (34.15830550275982, -118.32847444534262),\n", + " \"Alameda / Buena Vista westbound\": (34.158061055695796, -118.32827576408872),\n", + " \"Buena Vista & Olive eastbound\": (34.16071171372398, -118.32948693260309),\n", + " \"Buena Vista & Olive westbound\": (34.16108254215271, -118.32933331481632),\n", + " \"Buena Vista & Verdugo eastbound\": (34.16511269756838, -118.33111018379287),\n", + " \"Buena Vista & Verdugo westbound\": (34.165299805818485, -118.33167323237512),\n", + " \"Buena Vista & Clark eastbound\": (34.168565005129715, -118.33283674907685),\n", + " \"Buena Vista & Clark westbound\": (34.16866971383002, -118.33328130798998),\n", + " \"Buena Vista & Magnolia eastbound\": (34.17195186709472, -118.33452224880612),\n", + " \"Buena Vista & Magnolia westbound\": (34.17211056589883, -118.33495282578686),\n", + " \"Buena Vista & Chandler eastbound\": (34.175468005263646, -118.33584132009098),\n", + " \"Buena Vista & Chandler westbound\": (34.17564123355154, -118.33666600223994),\n", + " \"Buena Vista & Burbank eastbound\": (34.178999088200214, -118.33829343490339),\n", + " \"Buena Vista & Burbank westbound\": (34.17876464082475, -118.33765850526345),\n", + " \"Buena Vista & Jeffries eastbound\": (34.18121005878122, -118.33854591221447),\n", + " \"Buena Vista & Jeffries westbound\": (34.180900571549294, -118.33814871081255),\n", + " \"Buena Vista & Victory eastbound\": (34.18449938252548, -118.3380410337855),\n", + " \"Buena Vista & Victory westbound\": (34.18466457669643, -118.33870399111125),\n", + " \"Buena Vista & Pacific eastbound\": (34.188461988919315, -118.33840245172041),\n", + " \"Buena Vista & Pacific westbound\": (34.18806979207031, -118.33819315186547),\n", + " \"Buena Vista & Empire eastbound\": (34.19198270314381, -118.33837161247952),\n", + " \"Buena Vista & Empire westbound\": (34.19177371161881, -118.3376321369762),\n", + " \"Buena Vista & Thorton eastbound\": (34.19573279798583, -118.33806248639054),\n", + " \"Buena Vista & Thorton westbound\": (34.19545983217905, -118.33766900330374),\n", + " \"Buena Vista & Winona eastbound\": (34.19971384309687, -118.33802251372927),\n", + " \"Buena Vista & Winona westbound\": (34.19955262101271, -118.33759639149243),\n", + " \"Buena Vista & Tulare eastbound\": (34.20288213768749, -118.33803238893368),\n", + " \"Buena Vista & Tulare westbound\": (34.202779515064044, -118.33757227833074),\n", + " \"Glenoaks / Buena Vista eastbound\": (34.205108109416635, -118.33787452049432),\n", + " \"Glenoaks / Buena Vista westbound\": (34.20469583946896, -118.33746105567633),\n", + " \"Glenoaks / Cohasset eastbound\": (34.206545468267606, -118.34143554899393),\n", + " \"Glenoaks / Cohasset westbound\": (34.2067229265355, -118.34135508272895),\n", + " \"Cohasset & Bloomington eastbound\": (34.2065471711793, -118.34523843199325),\n", + " \"Cohasset & Bloomington westbound\": (34.206793697966674, -118.34551974845968),\n", + " \"N San Fernando / Lima / Avon eastbound\": (34.19149816424647, -118.34706760310583),\n", + " \"N San Fernando / Lima / Avon westbound\": (34.192392404649915, -118.3479249843664)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "87199e5f-9a49-45ef-8c4d-fdd54a7d9c9b", + "metadata": {}, + "outputs": [], + "source": [ + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "7593556c-d140-4cc7-bd56-99ba11d8d3fa", + "metadata": {}, + "outputs": [], + "source": [ + "def apply_manual_coords(df, manual_coords):\n", + " # filter rows\n", + " df = df[(df['change_type'] != 'no_change') & \n", + " (df['change_type'] != 'relocating')].copy()\n", + " \n", + " latitudes, longitudes, geoms = [], [], []\n", + "\n", + " for key in df[\"stop_dir_key\"]:\n", + " coords = manual_coords.get(key)\n", + "\n", + " if coords:\n", + " lat, lon = coords\n", + " latitudes.append(lat)\n", + " longitudes.append(lon)\n", + " geoms.append(Point(lon, lat))\n", + " else:\n", + " latitudes.append(None)\n", + " longitudes.append(None)\n", + " geoms.append(None)\n", + "\n", + " df[\"latitude\"] = latitudes\n", + " df[\"longitude\"] = longitudes\n", + " df[\"pt_geom\"] = geoms\n", + "\n", + " df[\"stop_id\"] = [\"new_\" + str(i + 1) for i in range(len(df))]\n", + "\n", + " return df" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "74273e90-eed3-4f4f-a1f0-4c6fffdd3926", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
6Hollywood & Jeffrieseastboundadding_existingHollywood & Jeffries eastbound34.181413-118.349037POINT (-118.34903738211447 34.18141305368438)new_1
8Hollywood & Victory Bleastboundadding_existingHollywood & Victory Bl eastbound34.185085-118.349291POINT (-118.34929119735641 34.18508535157502)new_2
10Hollywood & Pacificeastboundadding_existingHollywood & Pacific eastbound34.188251-118.348865POINT (-118.34886491064228 34.18825119276962)new_3
12Hollywood & Valhallaeastboundadding_existingHollywood & Valhalla eastbound34.190124-118.349163POINT (-118.34916328937923 34.19012427165374)new_4
14Hollywood & Thortoneastboundadding_existingHollywood & Thorton eastbound34.196562-118.348767POINT (-118.34876716762236 34.19656151035557)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "6 Hollywood & Jeffries eastbound adding_existing \n", + "8 Hollywood & Victory Bl eastbound adding_existing \n", + "10 Hollywood & Pacific eastbound adding_existing \n", + "12 Hollywood & Valhalla eastbound adding_existing \n", + "14 Hollywood & Thorton eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "6 Hollywood & Jeffries eastbound 34.181413 -118.349037 \n", + "8 Hollywood & Victory Bl eastbound 34.185085 -118.349291 \n", + "10 Hollywood & Pacific eastbound 34.188251 -118.348865 \n", + "12 Hollywood & Valhalla eastbound 34.190124 -118.349163 \n", + "14 Hollywood & Thorton eastbound 34.196562 -118.348767 \n", + "\n", + " pt_geom stop_id \n", + "6 POINT (-118.34903738211447 34.18141305368438) new_1 \n", + "8 POINT (-118.34929119735641 34.18508535157502) new_2 \n", + "10 POINT (-118.34886491064228 34.18825119276962) new_3 \n", + "12 POINT (-118.34916328937923 34.19012427165374) new_4 \n", + "14 POINT (-118.34876716762236 34.19656151035557) new_5 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = apply_manual_coords(df, manual_coords)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "3ffc2c7a-6812-4239-84c3-80b6eadfbe77", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
2Verdugo & San Fernandoeastboundadding_existingVerdugo & San Fernando eastbound34.178785-118.305415POINT (-118.30541531103879 34.17878489736103)new_1
3Glenoaks & Providenciaeastboundadding_existingGlenoaks & Providencia eastbound34.179623-118.301044POINT (-118.30104441612727 34.17962336385441)new_2
4Glenoaks / Alamedaeastboundadding_existingGlenoaks / Alameda eastbound34.176921-118.297872POINT (-118.29787237592716 34.1769213295822)new_3
5Alameda & San Fernandoeastboundadding_existingAlameda & San Fernando eastbound34.174366-118.299524POINT (-118.29952381900989 34.174365721132396)new_4
6Alameda & Lakeeastboundadding_existingAlameda & Lake eastbound34.168937-118.305502POINT (-118.30550179211235 34.16893683695737)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "2 Verdugo & San Fernando eastbound adding_existing \n", + "3 Glenoaks & Providencia eastbound adding_existing \n", + "4 Glenoaks / Alameda eastbound adding_existing \n", + "5 Alameda & San Fernando eastbound adding_existing \n", + "6 Alameda & Lake eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "2 Verdugo & San Fernando eastbound 34.178785 -118.305415 \n", + "3 Glenoaks & Providencia eastbound 34.179623 -118.301044 \n", + "4 Glenoaks / Alameda eastbound 34.176921 -118.297872 \n", + "5 Alameda & San Fernando eastbound 34.174366 -118.299524 \n", + "6 Alameda & Lake eastbound 34.168937 -118.305502 \n", + "\n", + " pt_geom stop_id \n", + "2 POINT (-118.30541531103879 34.17878489736103) new_1 \n", + "3 POINT (-118.30104441612727 34.17962336385441) new_2 \n", + "4 POINT (-118.29787237592716 34.1769213295822) new_3 \n", + "5 POINT (-118.29952381900989 34.174365721132396) new_4 \n", + "6 POINT (-118.30550179211235 34.16893683695737) new_5 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_blue = apply_manual_coords(df_blue, manual_coords_blue)\n", + "df_blue.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "d3b5d469-48b5-49df-ae91-315466705ddb", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert your stops DataFrame to GeoDataFrame\n", + "gdf_orange = gpd.GeoDataFrame(df, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "gdf_blue = gpd.GeoDataFrame(df_blue, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "\n", + "# Project to meters for accurate distance buffering (UTM Zone 11N for LA area)\n", + "gdf_orange = gdf_orange.to_crs(epsg=32611)\n", + "gdf_blue = gdf_blue.to_crs(epsg=32611)\n", + "\n", + "buffer_distance = 404.672 # in meters\n", + "gdf_orange['buffer'] = gdf_orange.geometry.buffer(buffer_distance)\n", + "gdf_blue['buffer'] = gdf_blue.geometry.buffer(buffer_distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "feec70b0-5a1b-4bf1-9ce5-f63340f9ce1c", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)\n", + "\n", + "acs_gdf = tracts_ca_acs.to_crs(gdf_orange.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "187c1008-dd0d-4622-9b60-e2095601bb6b", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange = gpd.overlay(acs_gdf, gdf_orange.set_geometry('buffer'), how='intersection')\n", + "geometry_intersect_blue = gpd.overlay(acs_gdf, gdf_blue.set_geometry('buffer'), how='intersection')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "174076a2-a975-41d8-88d3-ca874351d57a", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange['area_2'] = geometry_intersect_orange.geometry.area # area of overlap\n", + "geometry_intersect_orange['area_ratio'] = geometry_intersect_orange['area_2'] / geometry_intersect_orange['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_orange[f'{col}_adj'] = geometry_intersect_orange[col] * geometry_intersect_orange['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "3bbfeb90-9776-4d62-83dc-ccf5d0670ed5", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_blue['area_2'] = geometry_intersect_blue.geometry.area # area of overlap\n", + "geometry_intersect_blue['area_ratio'] = geometry_intersect_blue['area_2'] / geometry_intersect_blue['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_blue[f'{col}_adj'] = geometry_intersect_blue[col] * geometry_intersect_blue['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "bbf7b71a-c05a-4651-955b-484947ced81c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STATEFPCOUNTYFPTRACTCEGEOIDFQGEOIDNAMENAMELSADSTUSPSNAMELSADCOSTATE_NAMELSADALANDAWATERtotal_poppoverty_popnon_us_citizenmale_65_to_66male_67_to_69male_70_to_74male_75_to_79male_80_to_84male_85_and_overfemale_65_to_66female_67_to_69female_70_to_74female_75_to_79female_80_to_84female_85_and_overmale_15_17male_18_19male_20male_21male_22_24female_15_17female_18_19female_20female_21female_22_24median_household_incomeincome_less_10000income_10000_14999income_15000_24999income_25000_34999income_35000_49999income_50000_64999income_65000_74999workers_with_no_carhouseholds_with_no_carspublic_asst_popveteran_popcounty_nameinc_extremelylowinc_verylowinc_lowinc_total_lowincomemale_seniorsfemale_seniorsmale_youthfemale_youthtotal_seniorstotal_youthdisabled_poparea_m2stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_idgeometryarea_2area_ratiototal_pop_adjworkers_with_no_car_adjtotal_youth_adjtotal_seniors_adjpublic_asst_pop_adjinc_total_lowincome_adj
0060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks & Providenciawestboundadding_existingGlenoaks & Providencia westbound34.179274-118.301218POINT (380084.556 3782798.877)new_34POLYGON ((380440.877 3782607.168, 380421.029 3...380.6471400.0005634.2214920.0974020.6052420.6029900.4937652.403514
1060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks / Alamedaeastboundadding_existingGlenoaks / Alameda eastbound34.176921-118.297872POINT (380389.550 3782534.037)new_35POLYGON ((380620.646 3782807.227, 380769.228 3...122709.6295840.1815001360.88684331.399496195.112477194.386478159.175482774.823411
2060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks / Alamedawestboundadding_existingGlenoaks / Alameda westbound34.176369-118.297764POINT (380398.772 3782472.656)new_36POLYGON ((380620.646 3782807.227, 380721.787 3...129254.1676510.1911801433.46774633.074142205.518515204.753795167.664872816.147480
3060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Alameda & San Fernandoeastboundadding_existingAlameda & San Fernando eastbound34.174366-118.299524POINT (380233.733 3782252.579)new_37POLYGON ((380436.486 3782602.281, 380458.557 3...20057.0765570.029666222.4390355.13229631.89143331.77276726.017476126.646071
4060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Alameda & San Fernandowestboundadding_existingAlameda & San Fernando westbound34.174307-118.300256POINT (380166.186 3782246.963)new_38POLYGON ((380408.138 3782570.733, 380422.907 3...3957.5911140.00585443.8908801.0126866.2927046.2692905.13367624.989353
\n", + "
" + ], + "text/plain": [ + " STATEFP COUNTYFP TRACTCE GEOIDFQ GEOID NAME \\\n", + "0 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "1 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "2 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "3 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "4 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "\n", + " NAMELSAD STUSPS NAMELSADCO STATE_NAME LSAD ALAND \\\n", + "0 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "1 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "2 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "3 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "4 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "\n", + " AWATER total_pop poverty_pop non_us_citizen male_65_to_66 \\\n", + "0 0 7498 1296 1753 55 \n", + "1 0 7498 1296 1753 55 \n", + "2 0 7498 1296 1753 55 \n", + "3 0 7498 1296 1753 55 \n", + "4 0 7498 1296 1753 55 \n", + "\n", + " male_67_to_69 male_70_to_74 male_75_to_79 male_80_to_84 \\\n", + "0 48 81 133 49 \n", + "1 48 81 133 49 \n", + "2 48 81 133 49 \n", + "3 48 81 133 49 \n", + "4 48 81 133 49 \n", + "\n", + " male_85_and_over female_65_to_66 female_67_to_69 female_70_to_74 \\\n", + "0 67 131 160 156 \n", + "1 67 131 160 156 \n", + "2 67 131 160 156 \n", + "3 67 131 160 156 \n", + "4 67 131 160 156 \n", + "\n", + " female_75_to_79 female_80_to_84 female_85_and_over male_15_17 \\\n", + "0 0 80 111 59 \n", + "1 0 80 111 59 \n", + "2 0 80 111 59 \n", + "3 0 80 111 59 \n", + "4 0 80 111 59 \n", + "\n", + " male_18_19 male_20 male_21 male_22_24 female_15_17 female_18_19 \\\n", + "0 153 26 86 307 53 82 \n", + "1 153 26 86 307 53 82 \n", + "2 153 26 86 307 53 82 \n", + "3 153 26 86 307 53 82 \n", + "4 153 26 86 307 53 82 \n", + "\n", + " female_20 female_21 female_22_24 median_household_income \\\n", + "0 0 119 190 80459 \n", + "1 0 119 190 80459 \n", + "2 0 119 190 80459 \n", + "3 0 119 190 80459 \n", + "4 0 119 190 80459 \n", + "\n", + " income_less_10000 income_10000_14999 income_15000_24999 \\\n", + "0 997 835 554 \n", + "1 997 835 554 \n", + "2 997 835 554 \n", + "3 997 835 554 \n", + "4 997 835 554 \n", + "\n", + " income_25000_34999 income_35000_49999 income_50000_64999 \\\n", + "0 626 532 465 \n", + "1 626 532 465 \n", + "2 626 532 465 \n", + "3 626 532 465 \n", + "4 626 532 465 \n", + "\n", + " income_65000_74999 workers_with_no_car households_with_no_cars \\\n", + "0 260 173 262 \n", + "1 260 173 262 \n", + "2 260 173 262 \n", + "3 260 173 262 \n", + "4 260 173 262 \n", + "\n", + " public_asst_pop veteran_pop county_name inc_extremelylow inc_verylow \\\n", + "0 877 51 Los Angeles 2386 1158 \n", + "1 877 51 Los Angeles 2386 1158 \n", + "2 877 51 Los Angeles 2386 1158 \n", + "3 877 51 Los Angeles 2386 1158 \n", + "4 877 51 Los Angeles 2386 1158 \n", + "\n", + " inc_low inc_total_lowincome male_seniors female_seniors male_youth \\\n", + "0 725 4269 433 638 631 \n", + "1 725 4269 433 638 631 \n", + "2 725 4269 433 638 631 \n", + "3 725 4269 433 638 631 \n", + "4 725 4269 433 638 631 \n", + "\n", + " female_youth total_seniors total_youth disabled_pop area_m2 \\\n", + "0 444 1071 1075 1197 676086.191403 \n", + "1 444 1071 1075 1197 676086.191403 \n", + "2 444 1071 1075 1197 676086.191403 \n", + "3 444 1071 1075 1197 676086.191403 \n", + "4 444 1071 1075 1197 676086.191403 \n", + "\n", + " stop_name direction change_type \\\n", + "0 Glenoaks & Providencia westbound adding_existing \n", + "1 Glenoaks / Alameda eastbound adding_existing \n", + "2 Glenoaks / Alameda westbound adding_existing \n", + "3 Alameda & San Fernando eastbound adding_existing \n", + "4 Alameda & San Fernando westbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "0 Glenoaks & Providencia westbound 34.179274 -118.301218 \n", + "1 Glenoaks / Alameda eastbound 34.176921 -118.297872 \n", + "2 Glenoaks / Alameda westbound 34.176369 -118.297764 \n", + "3 Alameda & San Fernando eastbound 34.174366 -118.299524 \n", + "4 Alameda & San Fernando westbound 34.174307 -118.300256 \n", + "\n", + " pt_geom stop_id \\\n", + "0 POINT (380084.556 3782798.877) new_34 \n", + "1 POINT (380389.550 3782534.037) new_35 \n", + "2 POINT (380398.772 3782472.656) new_36 \n", + "3 POINT (380233.733 3782252.579) new_37 \n", + "4 POINT (380166.186 3782246.963) new_38 \n", + "\n", + " geometry area_2 \\\n", + "0 POLYGON ((380440.877 3782607.168, 380421.029 3... 380.647140 \n", + "1 POLYGON ((380620.646 3782807.227, 380769.228 3... 122709.629584 \n", + "2 POLYGON ((380620.646 3782807.227, 380721.787 3... 129254.167651 \n", + "3 POLYGON ((380436.486 3782602.281, 380458.557 3... 20057.076557 \n", + "4 POLYGON ((380408.138 3782570.733, 380422.907 3... 3957.591114 \n", + "\n", + " area_ratio total_pop_adj workers_with_no_car_adj total_youth_adj \\\n", + "0 0.000563 4.221492 0.097402 0.605242 \n", + "1 0.181500 1360.886843 31.399496 195.112477 \n", + "2 0.191180 1433.467746 33.074142 205.518515 \n", + "3 0.029666 222.439035 5.132296 31.891433 \n", + "4 0.005854 43.890880 1.012686 6.292704 \n", + "\n", + " total_seniors_adj public_asst_pop_adj inc_total_lowincome_adj \n", + "0 0.602990 0.493765 2.403514 \n", + "1 194.386478 159.175482 774.823411 \n", + "2 204.753795 167.664872 816.147480 \n", + "3 31.772767 26.017476 126.646071 \n", + "4 6.269290 5.133676 24.989353 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "geometry_intersect_orange.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "98309c42-52a9-4d91-a204-fc0bbc445b6b", + "metadata": {}, + "outputs": [], + "source": [ + "agg_orange = geometry_intersect_orange.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_orange = gdf_orange.merge(\n", + " agg_orange,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "36e31d14-b88f-4b54-849a-615f5755f369", + "metadata": {}, + "outputs": [], + "source": [ + "agg_blue = geometry_intersect_blue.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_blue = gdf_blue.merge(\n", + " agg_blue,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "304753cf-efbf-4e3e-96e4-c8c126830d2b", + "metadata": {}, + "outputs": [], + "source": [ + "# add missing columns with placeholder values for now\n", + "gdf_orange['n_arrivals'] = np.nan\n", + "gdf_orange['n_routes'] = np.nan\n", + "gdf_blue['n_arrivals'] = np.nan\n", + "gdf_blue['n_routes'] = np.nan" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "be29a349-9d3d-4fa0-94b4-32c86f775309", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_code
00f80473907c7613e9fefbb71220e9e561692025-05-03 03:00:42.971504+00:004448070700[Ventura County Line][2]a1d8a74d9c3a75e730c939c450adbabfNonePOINT(-119.205025 34.250793)Ventura - EastNoneNoneNone
10f80473907c7613e9fefbb71220e9e561662025-05-03 03:00:42.971504+00:004448070460[Ventura County Line][2]3a87f621e075c95669ec7b2cd86a5cb8NonePOINT(-119.033829 34.216656)CamarilloNoneNoneNone
20f80473907c7613e9fefbb71220e9e561682025-05-03 03:00:42.971504+00:004448070700[Ventura County Line][2]cc329bf7c45f0d0757cac098804593e3NonePOINT(-119.176308 34.199276)OxnardNoneNoneNone
38d9623a1823a27925b7e2f00e44fc5bb1762025-04-10 03:06:18.227613+00:0011560000[115-13191][3]802db16116bcc0e942142fc822be66d2NonePOINT(-118.179775 33.946568)Rayo / SouthernNoneNone176
48d9623a1823a27925b7e2f00e44fc5bb165362025-04-10 03:06:18.227613+00:0022000330[217-13191][3]5ea46d1ea47954073422ebdc4150dfebNonePOINT(-118.368743 34.035653)Washington Fairfax HubNoneNone16536
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 0f80473907c7613e9fefbb71220e9e56 169 2025-05-03 03:00:42.971504+00:00 \n", + "1 0f80473907c7613e9fefbb71220e9e56 166 2025-05-03 03:00:42.971504+00:00 \n", + "2 0f80473907c7613e9fefbb71220e9e56 168 2025-05-03 03:00:42.971504+00:00 \n", + "3 8d9623a1823a27925b7e2f00e44fc5bb 176 2025-04-10 03:06:18.227613+00:00 \n", + "4 8d9623a1823a27925b7e2f00e44fc5bb 16536 2025-04-10 03:06:18.227613+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 4 4 48 0 \n", + "1 4 4 48 0 \n", + "2 4 4 48 0 \n", + "3 1 1 56 0 \n", + "4 2 2 0 0 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 70 70 0 [Ventura County Line] \n", + "1 70 46 0 [Ventura County Line] \n", + "2 70 70 0 [Ventura County Line] \n", + "3 0 0 0 [115-13191] \n", + "4 0 33 0 [217-13191] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [2] a1d8a74d9c3a75e730c939c450adbabf None \n", + "1 [2] 3a87f621e075c95669ec7b2cd86a5cb8 None \n", + "2 [2] cc329bf7c45f0d0757cac098804593e3 None \n", + "3 [3] 802db16116bcc0e942142fc822be66d2 None \n", + "4 [3] 5ea46d1ea47954073422ebdc4150dfeb None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-119.205025 34.250793) Ventura - East None \n", + "1 POINT(-119.033829 34.216656) Camarillo None \n", + "2 POINT(-119.176308 34.199276) Oxnard None \n", + "3 POINT(-118.179775 33.946568) Rayo / Southern None \n", + "4 POINT(-118.368743 34.035653) Washington Fairfax Hub None \n", + "\n", + " stop_desc stop_code \n", + "0 None None \n", + "1 None None \n", + "2 None None \n", + "3 None 176 \n", + "4 None 16536 " + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_agency.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "4ca8d618-a539-41ff-980c-45a628569ce6", + "metadata": {}, + "outputs": [], + "source": [ + "df_existing = df_agency.copy()\n", + "\n", + "# convert string representation of list → actual list\n", + "df_existing['route_id_array_parsed'] = df_existing['route_id_array'].apply(\n", + " lambda x: ast.literal_eval(x) if isinstance(x, str) else x\n", + ")\n", + "\n", + "# compute number of unique routes\n", + "df_existing['n_routes'] = df_existing['route_id_array_parsed'].apply(\n", + " lambda x: len(set(x)) if isinstance(x, list) else 0\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "6988defb-0fe2-42cb-9fe9-af2bdef3433b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_coderoute_id_array_parsedn_routes
00f80473907c7613e9fefbb71220e9e561692025-05-03 03:00:42.971504+00:004448070700[Ventura County Line][2]a1d8a74d9c3a75e730c939c450adbabfNonePOINT(-119.205025 34.250793)Ventura - EastNoneNoneNone[Ventura County Line]1
10f80473907c7613e9fefbb71220e9e561662025-05-03 03:00:42.971504+00:004448070460[Ventura County Line][2]3a87f621e075c95669ec7b2cd86a5cb8NonePOINT(-119.033829 34.216656)CamarilloNoneNoneNone[Ventura County Line]1
20f80473907c7613e9fefbb71220e9e561682025-05-03 03:00:42.971504+00:004448070700[Ventura County Line][2]cc329bf7c45f0d0757cac098804593e3NonePOINT(-119.176308 34.199276)OxnardNoneNoneNone[Ventura County Line]1
38d9623a1823a27925b7e2f00e44fc5bb1762025-04-10 03:06:18.227613+00:0011560000[115-13191][3]802db16116bcc0e942142fc822be66d2NonePOINT(-118.179775 33.946568)Rayo / SouthernNoneNone176[115-13191]1
48d9623a1823a27925b7e2f00e44fc5bb165362025-04-10 03:06:18.227613+00:0022000330[217-13191][3]5ea46d1ea47954073422ebdc4150dfebNonePOINT(-118.368743 34.035653)Washington Fairfax HubNoneNone16536[217-13191]1
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 0f80473907c7613e9fefbb71220e9e56 169 2025-05-03 03:00:42.971504+00:00 \n", + "1 0f80473907c7613e9fefbb71220e9e56 166 2025-05-03 03:00:42.971504+00:00 \n", + "2 0f80473907c7613e9fefbb71220e9e56 168 2025-05-03 03:00:42.971504+00:00 \n", + "3 8d9623a1823a27925b7e2f00e44fc5bb 176 2025-04-10 03:06:18.227613+00:00 \n", + "4 8d9623a1823a27925b7e2f00e44fc5bb 16536 2025-04-10 03:06:18.227613+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 4 4 48 0 \n", + "1 4 4 48 0 \n", + "2 4 4 48 0 \n", + "3 1 1 56 0 \n", + "4 2 2 0 0 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 70 70 0 [Ventura County Line] \n", + "1 70 46 0 [Ventura County Line] \n", + "2 70 70 0 [Ventura County Line] \n", + "3 0 0 0 [115-13191] \n", + "4 0 33 0 [217-13191] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [2] a1d8a74d9c3a75e730c939c450adbabf None \n", + "1 [2] 3a87f621e075c95669ec7b2cd86a5cb8 None \n", + "2 [2] cc329bf7c45f0d0757cac098804593e3 None \n", + "3 [3] 802db16116bcc0e942142fc822be66d2 None \n", + "4 [3] 5ea46d1ea47954073422ebdc4150dfeb None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-119.205025 34.250793) Ventura - East None \n", + "1 POINT(-119.033829 34.216656) Camarillo None \n", + "2 POINT(-119.176308 34.199276) Oxnard None \n", + "3 POINT(-118.179775 33.946568) Rayo / Southern None \n", + "4 POINT(-118.368743 34.035653) Washington Fairfax Hub None \n", + "\n", + " stop_desc stop_code route_id_array_parsed n_routes \n", + "0 None None [Ventura County Line] 1 \n", + "1 None None [Ventura County Line] 1 \n", + "2 None None [Ventura County Line] 1 \n", + "3 None 176 [115-13191] 1 \n", + "4 None 16536 [217-13191] 1 " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_existing.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "c09027f0-c22d-4055-b76a-1ac0089ecec4", + "metadata": {}, + "outputs": [], + "source": [ + "from shapely import wkt\n", + "\n", + "# convert WKT string → geometry object\n", + "df_existing['geometry'] = df_existing['pt_geom'].apply(wkt.loads)\n", + "\n", + "# extract lon/lat\n", + "df_existing['longitude'] = df_existing['geometry'].apply(lambda geom: geom.x)\n", + "df_existing['latitude'] = df_existing['geometry'].apply(lambda geom: geom.y)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "935a70bd-867a-49b2-867b-12a1b4f71635", + "metadata": {}, + "outputs": [], + "source": [ + "# drop missing coords just in case\n", + "df_existing = df_existing.dropna(subset=['latitude', 'longitude'])\n", + "df_new_orange = gdf_orange.dropna(subset=['latitude', 'longitude'])\n", + "df_new_blue = gdf_blue.dropna(subset=['latitude', 'longitude'])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "da409a53-ae7b-4f11-a157-d76388882c32", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import BallTree\n", + "import numpy as np\n", + "\n", + "existing_coords = np.radians(df_existing[['latitude', 'longitude']])\n", + "new_coords_orange = np.radians(df_new_orange[['latitude', 'longitude']])\n", + "new_coords_blue = np.radians(df_new_blue[['latitude', 'longitude']])\n", + "\n", + "tree = BallTree(existing_coords, metric='haversine')\n", + "dist_orange, ind_orange = tree.query(new_coords_orange, k=1)\n", + "dist_blue, ind_blue = tree.query(new_coords_blue, k=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "4ac0ffaa-9a88-45e3-81ce-2ad35ffd6437", + "metadata": {}, + "outputs": [], + "source": [ + "matched_idx_orange = ind_orange.flatten()\n", + "\n", + "df_new_orange['n_routes_base'] = df_existing.iloc[matched_idx_orange]['n_routes'].values\n", + "\n", + "df_new_orange['nearest_stop_distance_m'] = dist_orange.flatten() * 6371000\n", + "df_new_orange['matched_feed_key'] = df_existing.iloc[matched_idx_orange]['feed_key'].values\n", + "df_new_orange['matched_stop_name'] = df_existing.iloc[matched_idx_orange]['stop_name'].values\n", + "df_new_orange['matched_stop_id'] = df_existing.iloc[matched_idx_orange]['stop_id'].values\n", + "df_new_orange['matched_n_routes'] = df_existing.iloc[matched_idx_orange]['n_routes'].values\n", + "df_new_orange['matched_agency_name'] = df_existing.iloc[matched_idx_orange]['feed_key'].values\n", + "df_new_orange['n_arrivals_base'] = df_existing.iloc[matched_idx_orange]['daily_arrivals'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "e15d37f1-42de-441c-b46c-2ed73103df13", + "metadata": {}, + "outputs": [], + "source": [ + "matched_idx_blue = ind_blue.flatten()\n", + "df_new_blue['n_routes_base'] = df_existing.iloc[matched_idx_blue]['n_routes'].values\n", + "\n", + "df_new_blue['nearest_stop_distance_m'] = dist_blue.flatten() * 6371000\n", + "df_new_blue['matched_feed_key'] = df_existing.iloc[matched_idx_blue]['feed_key'].values\n", + "df_new_blue['matched_stop_name'] = df_existing.iloc[matched_idx_blue]['stop_name'].values\n", + "df_new_blue['matched_stop_id'] = df_existing.iloc[matched_idx_blue]['stop_id'].values\n", + "df_new_blue['matched_n_routes'] = df_existing.iloc[matched_idx_blue]['n_routes'].values\n", + "df_new_blue['matched_agency_name'] = df_existing.iloc[matched_idx_blue]['feed_key'].values\n", + "df_new_blue['n_arrivals_base'] = df_existing.iloc[matched_idx_blue]['daily_arrivals'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "d80ef79a-3148-4cb9-baf9-12854aba5016", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionn_arrivals_basematched_stop_namematched_stop_idmatched_n_routes
37Alameda & San Fernandowestbound16Alameda / San Fernando180091
36Alameda & San Fernandoeastbound46San Fernando / Alameda54531
19Amherst Dr / San Fernandowestbound64San Fernando / Scott123482
18Amherst Dr / San Fernandoeastbound67San Fernando / Amherst38652
13Empire & Buena Vistaeastbound67Empire / Buena Vista18172
17Empire & Grismerwestbound64San Fernando / Grismer123462
16Empire & Grismereastbound67San Fernando / Grismer38682
12Empire & Ontarioeastbound67Empire / Ontario18212
15Empire & Valpredawestbound64Empire / Valpreda46352
14Empire & Valpredaeastbound67Empire / Valpreda12492
38Flower & Alamedaeastbound16Alameda / Lake181191
39Flower & Alamedawestbound16Alameda / Lake181191
20Glenoaks & Bethanyeastbound32Glenoaks / Bethany35791
21Glenoaks & Bethanywestbound33Glenoaks / Bethany120661
25Glenoaks & Cypresswestbound33Glenoaks / Cypress120671
24Glenoaks & Cypresseastbound32Glenoaks / Cypress35801
22Glenoaks & Fairmounteastbound32Glenoaks / Fairmount35821
23Glenoaks & Fairmountwestbound33Glenoaks / Fairmount120691
26Glenoaks & Magnoliaeastbound32Glenoaks / Magnolia120681
27Glenoaks & Magnoliawestbound33Glenoaks / Magnolia35811
\n", + "
" + ], + "text/plain": [ + " stop_name direction n_arrivals_base \\\n", + "37 Alameda & San Fernando westbound 16 \n", + "36 Alameda & San Fernando eastbound 46 \n", + "19 Amherst Dr / San Fernando westbound 64 \n", + "18 Amherst Dr / San Fernando eastbound 67 \n", + "13 Empire & Buena Vista eastbound 67 \n", + "17 Empire & Grismer westbound 64 \n", + "16 Empire & Grismer eastbound 67 \n", + "12 Empire & Ontario eastbound 67 \n", + "15 Empire & Valpreda westbound 64 \n", + "14 Empire & Valpreda eastbound 67 \n", + "38 Flower & Alameda eastbound 16 \n", + "39 Flower & Alameda westbound 16 \n", + "20 Glenoaks & Bethany eastbound 32 \n", + "21 Glenoaks & Bethany westbound 33 \n", + "25 Glenoaks & Cypress westbound 33 \n", + "24 Glenoaks & Cypress eastbound 32 \n", + "22 Glenoaks & Fairmount eastbound 32 \n", + "23 Glenoaks & Fairmount westbound 33 \n", + "26 Glenoaks & Magnolia eastbound 32 \n", + "27 Glenoaks & Magnolia westbound 33 \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \n", + "37 Alameda / San Fernando 18009 1 \n", + "36 San Fernando / Alameda 5453 1 \n", + "19 San Fernando / Scott 12348 2 \n", + "18 San Fernando / Amherst 3865 2 \n", + "13 Empire / Buena Vista 1817 2 \n", + "17 San Fernando / Grismer 12346 2 \n", + "16 San Fernando / Grismer 3868 2 \n", + "12 Empire / Ontario 1821 2 \n", + "15 Empire / Valpreda 4635 2 \n", + "14 Empire / Valpreda 1249 2 \n", + "38 Alameda / Lake 18119 1 \n", + "39 Alameda / Lake 18119 1 \n", + "20 Glenoaks / Bethany 3579 1 \n", + "21 Glenoaks / Bethany 12066 1 \n", + "25 Glenoaks / Cypress 12067 1 \n", + "24 Glenoaks / Cypress 3580 1 \n", + "22 Glenoaks / Fairmount 3582 1 \n", + "23 Glenoaks / Fairmount 12069 1 \n", + "26 Glenoaks / Magnolia 12068 1 \n", + "27 Glenoaks / Magnolia 3581 1 " + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_orange[['stop_name', 'direction', 'n_arrivals_base', 'matched_stop_name', 'matched_stop_id', 'matched_n_routes',]].sort_values('stop_name').head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "51ba1872-0315-4e91-ac93-1e4512191513", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionn_arrivals_basematched_stop_namematched_stop_idmatched_n_routes
8Alameda & Keystoneeastbound17Buena Vista / Alameda158401
35Alameda & Keystonewestbound17Buena Vista / Alameda158401
4Alameda & Lakeeastbound16Alameda / Lake181191
31Alameda & Lakewestbound16Alameda / Lake180751
32Alameda & Mainwestbound274Cesar E Chavez / Alameda92184
5Alameda & Maineastbound274Cesar E Chavez / Alameda92184
6Alameda & Mariposaeastbound16Victory / Alameda180761
33Alameda & Mariposawestbound17Olive / Reese180711
7Alameda & Reeseeastbound17Olive / Parish180701
34Alameda & Reesewestbound17Olive / Keystone180691
30Alameda & San Fernandowestbound16Alameda / San Fernando180091
3Alameda & San Fernandoeastbound46San Fernando / Alameda54531
9Alameda / Buena Vistaeastbound23Alameda / Buena Vista501000001
36Alameda / Buena Vistawestbound24Alameda / Buena Vista74871
41Buena Vista & Burbankwestbound15Burbank / Buena Vista75341
15Buena Vista & Burbankeastbound16Burbank / Buena Vista158801
14Buena Vista & Chandlereastbound46Magnolia / Buena Vista202831
40Buena Vista & Chandlerwestbound15Burbank / Buena Vista75341
39Buena Vista & Clarkwestbound48Magnolia / Buena Vista201531
12Buena Vista & Clarkeastbound48Magnolia / Buena Vista201531
\n", + "
" + ], + "text/plain": [ + " stop_name direction n_arrivals_base \\\n", + "8 Alameda & Keystone eastbound 17 \n", + "35 Alameda & Keystone westbound 17 \n", + "4 Alameda & Lake eastbound 16 \n", + "31 Alameda & Lake westbound 16 \n", + "32 Alameda & Main westbound 274 \n", + "5 Alameda & Main eastbound 274 \n", + "6 Alameda & Mariposa eastbound 16 \n", + "33 Alameda & Mariposa westbound 17 \n", + "7 Alameda & Reese eastbound 17 \n", + "34 Alameda & Reese westbound 17 \n", + "30 Alameda & San Fernando westbound 16 \n", + "3 Alameda & San Fernando eastbound 46 \n", + "9 Alameda / Buena Vista eastbound 23 \n", + "36 Alameda / Buena Vista westbound 24 \n", + "41 Buena Vista & Burbank westbound 15 \n", + "15 Buena Vista & Burbank eastbound 16 \n", + "14 Buena Vista & Chandler eastbound 46 \n", + "40 Buena Vista & Chandler westbound 15 \n", + "39 Buena Vista & Clark westbound 48 \n", + "12 Buena Vista & Clark eastbound 48 \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \n", + "8 Buena Vista / Alameda 15840 1 \n", + "35 Buena Vista / Alameda 15840 1 \n", + "4 Alameda / Lake 18119 1 \n", + "31 Alameda / Lake 18075 1 \n", + "32 Cesar E Chavez / Alameda 9218 4 \n", + "5 Cesar E Chavez / Alameda 9218 4 \n", + "6 Victory / Alameda 18076 1 \n", + "33 Olive / Reese 18071 1 \n", + "7 Olive / Parish 18070 1 \n", + "34 Olive / Keystone 18069 1 \n", + "30 Alameda / San Fernando 18009 1 \n", + "3 San Fernando / Alameda 5453 1 \n", + "9 Alameda / Buena Vista 50100000 1 \n", + "36 Alameda / Buena Vista 7487 1 \n", + "41 Burbank / Buena Vista 7534 1 \n", + "15 Burbank / Buena Vista 15880 1 \n", + "14 Magnolia / Buena Vista 20283 1 \n", + "40 Burbank / Buena Vista 7534 1 \n", + "39 Magnolia / Buena Vista 20153 1 \n", + "12 Magnolia / Buena Vista 20153 1 " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_blue[['stop_name', 'direction', 'n_arrivals_base', 'matched_stop_name', 'matched_stop_id', 'matched_n_routes',]].sort_values('stop_name').head(20)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "a6c6c192-f74a-4585-bf29-ce12e2105574", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Glenoaks / Alameda', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks & Providencia', 'westbound', 'adding_existing'),\n", + " ('Alameda & San Fernando', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks / Alameda', 'westbound', 'adding_existing'),\n", + " ('Alameda & San Fernando', 'westbound', 'adding_existing'),\n", + " ('Glenoaks & Providencia', 'eastbound', 'adding_existing')]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "orange_stops = set(zip(df_new_orange['stop_name'], df_new_orange['direction'], df_new_orange['change_type'], ))\n", + "blue_stops = set(zip(df_new_blue['stop_name'], df_new_blue['direction'], df_new_blue['change_type']))\n", + "\n", + "common_stops = orange_stops & blue_stops\n", + "list(common_stops)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "44a78d88-5ee2-4476-bad6-077dc5a1c56b", + "metadata": {}, + "outputs": [], + "source": [ + "df_new_orange['source'] = 'orange'\n", + "df_new_blue['source'] = 'blue'" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "6eb322ad-e81d-43c7-aa40-4eaa6b129d2c", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined = pd.concat([df_new_orange, df_new_blue], ignore_index=True)\n", + "df_combined = df_combined[\n", + " df_combined['change_type'].isin(['new_stop', 'adding_existing'])\n", + "].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "056af27d-c6b4-4e2f-8675-69c7c44668a6", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['key'] = list(zip(\n", + " df_combined['stop_name'],\n", + " df_combined['direction'],\n", + " df_combined['change_type']\n", + "))\n", + "\n", + "df_combined['is_common'] = df_combined['key'].isin(common_stops)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "53fcc11a-5a46-45eb-a58f-69fca23554d3", + "metadata": {}, + "outputs": [], + "source": [ + "# REMOVE duplicate rows for common stops\n", + "df_combined = (\n", + " df_combined\n", + " .sort_values('source') # keeps orange if duplicate exists\n", + " .drop_duplicates(subset=['key'], keep='first')\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "f706ac72-936a-46fa-8994-908e72968689", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['n_routes_base'] = np.where(\n", + " df_combined['change_type'] == 'new_stop',\n", + " 0,\n", + " df_combined['n_routes_base']\n", + ")\n", + "\n", + "df_combined['n_routes_scn'] = np.where(\n", + " df_combined['change_type'] == 'new_stop',\n", + " 1,\n", + " df_combined['n_routes_base'] + 1\n", + ")\n", + "\n", + "# instead of forcing 2, increment properly\n", + "df_combined.loc[\n", + " df_combined['is_common'] & (df_combined['change_type'] == 'adding_existing'),\n", + " 'n_routes_scn'\n", + "] += 1\n" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "72301442-3a71-4448-bd99-cb25116539ee", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['stop_name', 'direction', 'change_type', 'stop_dir_key', 'latitude',\n", + " 'longitude', 'pt_geom', 'stop_id', 'buffer', 'total_pop_adj',\n", + " 'workers_with_no_car_adj', 'total_seniors_adj', 'total_youth_adj',\n", + " 'inc_total_lowincome_adj', 'n_arrivals', 'n_routes', 'n_routes_base',\n", + " 'nearest_stop_distance_m', 'matched_feed_key', 'matched_stop_name',\n", + " 'matched_stop_id', 'matched_n_routes', 'matched_agency_name',\n", + " 'n_arrivals_base', 'source', 'key', 'is_common', 'n_routes_scn'],\n", + " dtype='object')" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_combined.columns" + ] + }, + { + "cell_type": "markdown", + "id": "64cf3875-a0cc-43e9-a19b-b36252fbbd9f", + "metadata": {}, + "source": [ + "Orange route currently has 51 arrivals; Proposed Blue Routes service :would operate every 20 minutes from 6:00am to 8:00pm, Monday through Friday = 43 arrivals per day." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "93666c83-c8be-4e00-b455-005fa305e6aa", + "metadata": {}, + "outputs": [], + "source": [ + "# apply base reset\n", + "is_new = df_combined['change_type'] == 'new_stop'\n", + "df_combined.loc[is_new, 'n_arrivals_base'] = 0\n", + "\n", + "# define correct increment\n", + "increment = np.where(\n", + " df_combined['is_common'],\n", + " 69, \n", + " df_combined['source'].map({'orange': 35, 'blue': 34})\n", + ")\n", + "\n", + "# final calculation \n", + "df_combined['n_arrivals_scn'] = df_combined['n_arrivals_base'] + increment\n" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "ce8299ba-8b45-4449-913c-5f1138e9a9ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_idbuffertotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjn_arrivalsn_routesn_routes_basenearest_stop_distance_mmatched_feed_keymatched_stop_namematched_stop_idmatched_n_routesmatched_agency_namen_arrivals_basesourcekeyis_commonn_routes_scnn_arrivals_scn
45Alameda & Maineastboundnew_stopAlameda & Main eastbound34.058825-118.237278POINT (385815.509 3769368.949)new_6POLYGON ((386220.181 3769368.949, 386218.233 3...4217.842162139.410239586.593147428.3096061993.392782NaNNaN094.9386468d9623a1823a27925b7e2f00e44fc5bbCesar E Chavez / Alameda921848d9623a1823a27925b7e2f00e44fc5bb0blue(Alameda & Main, eastbound, new_stop)False134
66Verdugo & Ikea Waywestboundadding_existingVerdugo & Ikea Way westbound34.177147-118.307473POINT (379505.037 3782570.325)new_27POLYGON ((379909.709 3782570.325, 379907.761 3...2363.59648969.808219432.243641247.9541901308.536414NaNNaN69.4068208d9623a1823a27925b7e2f00e44fc5bbVerdugo / Ikea168268d9623a1823a27925b7e2f00e44fc5bb144blue(Verdugo & Ikea Way, westbound, adding_existing)False7178
65Cohasset & Bloomingtoneastboundnew_stopCohasset & Bloomington eastbound34.206547-118.345238POINT (376067.409 3785875.904)new_26POLYGON ((376472.081 3785875.904, 376470.133 3...1353.34812314.113858241.864080130.031029661.384824NaNNaN0290.1600708d9623a1823a27925b7e2f00e44fc5bbGlenoaks / Cabrini1076018d9623a1823a27925b7e2f00e44fc5bb0blue(Cohasset & Bloomington, eastbound, new_stop)False134
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "45 Alameda & Main eastbound new_stop \n", + "66 Verdugo & Ikea Way westbound adding_existing \n", + "65 Cohasset & Bloomington eastbound new_stop \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "45 Alameda & Main eastbound 34.058825 -118.237278 \n", + "66 Verdugo & Ikea Way westbound 34.177147 -118.307473 \n", + "65 Cohasset & Bloomington eastbound 34.206547 -118.345238 \n", + "\n", + " pt_geom stop_id \\\n", + "45 POINT (385815.509 3769368.949) new_6 \n", + "66 POINT (379505.037 3782570.325) new_27 \n", + "65 POINT (376067.409 3785875.904) new_26 \n", + "\n", + " buffer total_pop_adj \\\n", + "45 POLYGON ((386220.181 3769368.949, 386218.233 3... 4217.842162 \n", + "66 POLYGON ((379909.709 3782570.325, 379907.761 3... 2363.596489 \n", + "65 POLYGON ((376472.081 3785875.904, 376470.133 3... 1353.348123 \n", + "\n", + " workers_with_no_car_adj total_seniors_adj total_youth_adj \\\n", + "45 139.410239 586.593147 428.309606 \n", + "66 69.808219 432.243641 247.954190 \n", + "65 14.113858 241.864080 130.031029 \n", + "\n", + " inc_total_lowincome_adj n_arrivals n_routes n_routes_base \\\n", + "45 1993.392782 NaN NaN 0 \n", + "66 1308.536414 NaN NaN 6 \n", + "65 661.384824 NaN NaN 0 \n", + "\n", + " nearest_stop_distance_m matched_feed_key \\\n", + "45 94.938646 8d9623a1823a27925b7e2f00e44fc5bb \n", + "66 9.406820 8d9623a1823a27925b7e2f00e44fc5bb \n", + "65 290.160070 8d9623a1823a27925b7e2f00e44fc5bb \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \\\n", + "45 Cesar E Chavez / Alameda 9218 4 \n", + "66 Verdugo / Ikea 1682 6 \n", + "65 Glenoaks / Cabrini 10760 1 \n", + "\n", + " matched_agency_name n_arrivals_base source \\\n", + "45 8d9623a1823a27925b7e2f00e44fc5bb 0 blue \n", + "66 8d9623a1823a27925b7e2f00e44fc5bb 144 blue \n", + "65 8d9623a1823a27925b7e2f00e44fc5bb 0 blue \n", + "\n", + " key is_common n_routes_scn \\\n", + "45 (Alameda & Main, eastbound, new_stop) False 1 \n", + "66 (Verdugo & Ikea Way, westbound, adding_existing) False 7 \n", + "65 (Cohasset & Bloomington, eastbound, new_stop) False 1 \n", + "\n", + " n_arrivals_scn \n", + "45 34 \n", + "66 178 \n", + "65 34 " + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_combined.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "0fda613d-8e5a-41cb-b13e-88b4cbe37803", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['stop_group'] = df_combined['stop_name']\n", + "\n", + "df_grouped = df_combined.groupby('stop_group').agg({\n", + " 'n_arrivals_base': 'mean',\n", + " 'n_arrivals_scn': 'mean',\n", + " 'n_routes_base': 'mean',\n", + " 'n_routes_scn': 'mean',\n", + " 'total_pop_adj': 'mean',\n", + " 'workers_with_no_car_adj': 'mean',\n", + " 'total_youth_adj': 'mean',\n", + " 'total_seniors_adj': 'mean',\n", + " 'inc_total_lowincome_adj': 'mean',\n", + " 'change_type': lambda x: ', '.join(sorted(x.unique()))\n", + "}).reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "ddb3f6e3-354a-4cef-a3f8-1fbd67f009b2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['stop_group', 'n_arrivals_base', 'n_arrivals_scn', 'n_routes_base',\n", + " 'n_routes_scn', 'total_pop_adj', 'workers_with_no_car_adj',\n", + " 'total_youth_adj', 'total_seniors_adj', 'inc_total_lowincome_adj',\n", + " 'change_type'],\n", + " dtype='object')" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_grouped.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "c5d0bdfa-162b-4599-9542-347e8ed64b77", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank_existing = stop_route_df[stop_route_df['organization_name'] == \"City of Burbank\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "71376262-2458-42cb-9559-4448854868f3", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank_existing = df_burbank_existing[\n", + " ~df_burbank_existing['stop_name'].isin(df_grouped['stop_group'])\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "58a76ee2-9c75-4f5d-bf6b-ac9fb517b19b", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank_existing['n_arrivals_base'] = 0\n", + "df_burbank_existing['n_arrivals_scn'] = df_burbank_existing['route_id_list'].apply(\n", + " lambda x: 23 if '3162' in x else 35\n", + ")\n", + "df_burbank_existing = df_burbank_existing.rename(columns={\n", + " 'stop_name': 'stop_group'\n", + "})\n", + "df_burbank_existing['n_routes_base'] = df_burbank['n_routes']\n", + "df_burbank_existing['n_routes_scn'] = df_burbank['n_routes']\n", + "df_burbank_existing['change_type'] = 'already_present'\n", + "\n", + "\n", + "df_burbank_filtered = df_burbank_existing[\n", + " [ 'stop_group',\n", + " 'n_arrivals_base',\n", + " 'n_arrivals_scn',\n", + " 'n_routes_base',\n", + " 'n_routes_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_seniors_adj',\n", + " 'total_youth_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'change_type'\n", + " \n", + " ]\n", + "]\n", + "\n", + "\n", + "# Append\n", + "df_combined_new_service = pd.concat([df_burbank_filtered, \n", + " df_grouped], ignore_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "eb74729b-8888-41b9-b76f-d107c12814cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_groupn_arrivals_basen_arrivals_scnn_routes_basen_routes_scntotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjchange_type
71Glenoaks & Verdugo59.594.52.03.03794.209054122.813207836.502994358.0502782277.684419adding_existing, new_stop
61Empire & Grismer65.5100.52.03.02475.16061030.875592272.789807273.0376401224.737916adding_existing
6Burbank & Buena Vista0.035.01.01.01555.1735348.408419216.064631140.010551729.352821already_present
77Hollywood & Thorton65.0100.03.04.0469.4539329.04308250.98201675.883257230.533073adding_existing
37Universal Redline Station0.023.01.01.01557.14804521.317084111.254863159.631126826.791370already_present
\n", + "
" + ], + "text/plain": [ + " stop_group n_arrivals_base n_arrivals_scn n_routes_base \\\n", + "71 Glenoaks & Verdugo 59.5 94.5 2.0 \n", + "61 Empire & Grismer 65.5 100.5 2.0 \n", + "6 Burbank & Buena Vista 0.0 35.0 1.0 \n", + "77 Hollywood & Thorton 65.0 100.0 3.0 \n", + "37 Universal Redline Station 0.0 23.0 1.0 \n", + "\n", + " n_routes_scn total_pop_adj workers_with_no_car_adj total_seniors_adj \\\n", + "71 3.0 3794.209054 122.813207 836.502994 \n", + "61 3.0 2475.160610 30.875592 272.789807 \n", + "6 1.0 1555.173534 8.408419 216.064631 \n", + "77 4.0 469.453932 9.043082 50.982016 \n", + "37 1.0 1557.148045 21.317084 111.254863 \n", + "\n", + " total_youth_adj inc_total_lowincome_adj change_type \n", + "71 358.050278 2277.684419 adding_existing, new_stop \n", + "61 273.037640 1224.737916 adding_existing \n", + "6 140.010551 729.352821 already_present \n", + "77 75.883257 230.533073 adding_existing \n", + "37 159.631126 826.791370 already_present " + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_combined_new_service.sample(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "db5df34e-0dd3-4998-9d89-ffd81328589a", + "metadata": {}, + "outputs": [], + "source": [ + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\",\n", + " \"New BUR terminal\",\n", + " \n", + "]\n", + "\n", + "df_combined_new_service[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_combined_new_service.loc[\n", + " df_combined_new_service[\"stop_group\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "2d549fe3-0f2e-4c5d-ac6f-dc323b2a6a69", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn = df_combined_new_service[[\n", + " 'n_routes_scn',\n", + " 'n_arrivals_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'has_rail_connection_dummy'\n", + "]].copy()\n", + "\n", + "\n", + "\n", + "X_scn = X_scn.rename(columns={\n", + " 'n_routes_scn': 'n_routes',\n", + " 'n_arrivals_scn': 'n_arrivals'\n", + " \n", + "})\n", + "X_scn[\"log_arrivals\"] = np.log(X_scn[\"n_arrivals\"] + 1)\n", + "\n", + "X_scn = sm.add_constant(X_scn)\n", + "X_scn = X_scn[model_fe.model.exog_names]\n", + "df_combined_new_service['pred_scenario'] = model_fe.predict(X_scn)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "cd3a3883-8f57-446e-af8b-573d098b1abb", + "metadata": {}, + "outputs": [], + "source": [ + "X_base = df_combined_new_service[[\n", + " 'n_routes_base',\n", + " 'n_arrivals_base',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'has_rail_connection_dummy'\n", + "]].fillna(0)\n", + "\n", + "X_base = X_base.rename(columns={\n", + " 'n_routes_base': 'n_routes',\n", + " 'n_arrivals_base': 'n_arrivals'\n", + "})\n", + "\n", + "X_base[\"log_arrivals\"] = np.log(X_base[\"n_arrivals\"] + 1)\n", + "\n", + "X_base = sm.add_constant(X_base)\n", + "X_base = X_base[model_fe.model.exog_names]\n", + "df_combined_new_service['pred_baseline'] = model_fe.predict(X_base)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "fda44ec2-62d7-4809-b43c-bd287cf58443", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined_new_service['ridership_change'] = (\n", + " df_combined_new_service['pred_scenario'] - df_combined_new_service['pred_baseline']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "a9392504-ad1c-407f-9204-1663043528d6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "110.39041823661147\n" + ] + } + ], + "source": [ + "ridership_change_sunday= df_combined_new_service[\"ridership_change\"].sum()\n", + "print(ridership_change_sunday)" + ] + }, + { + "cell_type": "markdown", + "id": "79bdc190-3bf0-4fc8-ac41-4df7eefe99ee", + "metadata": {}, + "source": [ + "## Querying NTD Ridership Data for Burbank Bus Service" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "65b17dee-a2d3-40f3-a8a1-50a9c10c53fb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "45.591242731720534" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_change_sunday*0.413" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "060a0281-b5ed-47a6-ae89-857f5c07bc19", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying NTD Ridership data \n", + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name, unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_agencies\n", + " WHERE \n", + " state = 'CA' AND report_year = 2024 \n", + " AND agency IN (\n", + " 'City of Burbank',\n", + " 'Southern California Regional Rail Authority, dba: Metrolink',\n", + " 'Los Angeles County Metropolitan Transportation Authority , dba: Metro'\n", + " )\n", + " \"\"\"\n", + " ridership_data= pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "4574dcbd-a09a-4f30-a13f-5e5e414e4e9d", + "metadata": {}, + "outputs": [], + "source": [ + "# City of Burbank UPT\n", + "burbank_upt = ridership_data.loc[\n", + " ridership_data[\"agency\"] == \"City of Burbank\",\n", + " \"unlinked_passenger_trips_upt\"\n", + "].iloc[0]\n", + "\n", + "# City of Burbank average daily ridership\n", + "burbank_avg_daily = burbank_upt / 365" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "da312c75-80af-4dfc-8297-68cabdabe6de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "579.5698630136986" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "burbank_avg_daily" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Pyproject Local (use-venv)", + "language": "python", + "name": "pyproject_local_kernel_use_venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Weekday.ipynb b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Weekday.ipynb new file mode 100644 index 000000000..7b97dc833 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/Weekday.ipynb @@ -0,0 +1,3689 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bea06387-a0e0-4766-8a17-ac0de2b240e1", + "metadata": {}, + "source": [ + "# BurbankBus Ridership Modeling Weekday: Analytical Summary and Interpretation" + ] + }, + { + "cell_type": "markdown", + "id": "e5b6b27c-db78-4a8f-90cf-f89bccd474e2", + "metadata": {}, + "source": [ + "1. Load Stop-Level Data\n", + "2. Prepare Data for Negative Binomial Regression\n", + "- Create a log-transformed variable for arrivals: log_arrivals = log(n_arrivals + 1)\n", + "- Select explanatory variables: number of routes, arrivals, population-adjusted measures.\n", + "3. Get Stop-Level Data for Existing Operators\n", + "- Query GTFS scheduled stop data across Burbank, Metro, and Metrolink\n", + "- Load new stop lists for Orange and Blue route changes.\n", + "4. Assign Missing Coordinates for New Stops\n", + "5. Spatial Buffering and ACS Demographic Overlays\n", + "- Convert new stops to UTM projection, buffer, overlay census tract and compute proportional demographic counts using area ratios\n", + "6. Match New Stops to Nearest Existing Stops\n", + "- Inherit baseline n_routes and daily_arrivals where applicable.\n", + "7. Construct Baseline and Scenario Service Variables\n", + "- New stops assigned 1 route in scenario, 0 in baseline.\n", + "- Scenario arrivals set to baseline arrivals + 51 additional trips.\n", + "8. Generate Prediction Inputs\n", + "- Create scenario (X_scn) and baseline (X_base) covariate matrices.\n", + "9. Predict Ridership Effects\n", + "- Apply fitted NB model to scenario and baseline inputs.\n", + "- Compute predicted ridership change as: pred_scenario - pred_baseline\n", + "- Sum stop-level changes to obtain systemwide change\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "dd2eb2bc-ba32-4faf-a61f-64b8d4a93dd0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/bin/python: No module named pip\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install shared_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ebdc88e9-5c08-4416-bb29-9931f927f551", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "pd.set_option('display.max_columns', None)\n", + "\n", + "import statsmodels.api as sm\n", + "from scipy.stats import skew\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "69782f04-24f3-48ea-a502-6d1589c68fa5", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df.parquet\", \"rb\") as f: \n", + " stop_route_df = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "db56f926-980f-42af-89f8-6ba4468cdd76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['organization_name', 'feed_key', 'stop_id', 'stop_name', 'stop_code',\n", + " 'n_arrivals', 'n_routes', 'pt_geom', 'day_type', 'route_id_list',\n", + " 'average_daily_boardings', 'average_daily_alightings', 'start_date',\n", + " 'end_date', 'geometry', 'total_pop_adj', 'poverty_pop_adj',\n", + " 'non_us_citizen_adj', 'workers_with_no_car_adj',\n", + " 'households_with_no_cars_adj', 'disabled_pop_adj',\n", + " 'public_asst_pop_adj', 'inc_extremelylow_adj', 'inc_verylow_adj',\n", + " 'inc_low_adj', 'male_seniors_adj', 'female_seniors_adj',\n", + " 'veteran_pop_adj', 'male_youth_adj', 'inc_total_lowincome_adj',\n", + " 'female_youth_adj', 'total_seniors_adj', 'jobs_tot_adj',\n", + " 'total_youth_adj', 'ALAND_adj'],\n", + " dtype='object')" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stop_route_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6b90669b-5d97-47da-9056-00496b8001a1", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert n_arrivals and n_routes to integer\n", + "stop_route_df['n_arrivals'] = stop_route_df['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df['n_routes'] = stop_route_df['n_routes'].fillna(0).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7e41c9f0-9e78-4f41-8657-37747218def7", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank = stop_route_df[stop_route_df['organization_name'] == \"City of Burbank\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "23117df7-8e6b-47c3-aa0c-4965517dde3a", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/geopandas/geodataframe.py:1528: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "df_burbank[\"log_arrivals\"] = np.log(df_burbank[\"n_arrivals\"] + 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "aed87242-a621-4a69-8357-29a4ee260e13", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/geopandas/geodataframe.py:1528: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\"\n", + "]\n", + "\n", + "df_burbank[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_burbank.loc[\n", + " df_burbank[\"stop_name\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1\n", + "\n", + "\n", + "X = df_burbank[[\n", + " \"n_routes\",\n", + " \"log_arrivals\",\n", + " \"total_pop_adj\",\n", + " \"workers_with_no_car_adj\",\n", + " \"total_seniors_adj\",\n", + " \"inc_total_lowincome_adj\",\n", + " \"has_rail_connection_dummy\",\n", + " \"total_youth_adj\"\n", + "]].copy()\n", + "\n", + "X = sm.add_constant(X, has_constant=\"add\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "af3e0f0a-7ac4-4b36-8cdb-0785f620df79", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 45\n", + "Model: GLM Df Residuals: 37\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -104.77\n", + "Date: Thu, 07 May 2026 Deviance: 26.862\n", + "Time: 19:53:39 Pearson chi2: 21.2\n", + "No. Iterations: 18 Pseudo R-squ. (CS): 0.5294\n", + "Covariance Type: nonrobust \n", + "=============================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "---------------------------------------------------------------------------------------------\n", + "const -3.6180 4.061 -0.891 0.373 -11.577 4.341\n", + "n_routes -3.6180 4.061 -0.891 0.373 -11.577 4.341\n", + "log_arrivals 1.9853 2.106 0.942 0.346 -2.143 6.114\n", + "total_pop_adj 0.0014 0.002 0.764 0.445 -0.002 0.005\n", + "workers_with_no_car_adj 0.0301 0.018 1.707 0.088 -0.004 0.065\n", + "total_seniors_adj 0.0081 0.004 1.989 0.047 0.000 0.016\n", + "inc_total_lowincome_adj -0.0059 0.002 -2.395 0.017 -0.011 -0.001\n", + "has_rail_connection_dummy 1.8884 1.135 1.663 0.096 -0.337 4.114\n", + "total_youth_adj 0.0021 0.008 0.254 0.800 -0.014 0.019\n", + "=============================================================================================\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + } + ], + "source": [ + "model_fe = sm.GLM(\n", + " df_burbank[\"average_daily_boardings\"],\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(model_fe.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "75d04dd7-b987-48d0-823d-9e29c6d71341", + "metadata": {}, + "outputs": [], + "source": [ + "# observed values\n", + "observed = df_burbank[\"average_daily_boardings\"]\n", + "\n", + "# predicted values from fixed-effects model\n", + "predicted = model_fe.predict()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0308ac20-e164-4aa3-a22e-63ce66549980", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnAAAAIjCAYAAACDCSb6AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAi2JJREFUeJzs3XlcVGX7x/HPsIOAiIqIIi65VW5p8lNzyX1fy7VS26w0TbPMylzLyiezeiorcymX1FJLzcrdck3NrDS33HLfABGFgbl/f8zD1Ag6oMAAft+v17yYc58zZ665OMDFfc59H4sxxiAiIiIieYaHuwMQERERkcxRASciIiKSx6iAExEREcljVMCJiIiI5DEq4ERERETyGBVwIiIiInmMCjgRERGRPEYFnIiIiEgeowJOREREJI9RASfZZtSoUVgsFs6ePevuUHKcxWJh1KhR7g7D7Ro1akSjRo0cy4cOHcJisTB9+nS3xXS1q2O8nvj4eMLCwpg1a1b2BuUGffr0oXTp0u4O47rWrFmDxWJhzZo17g7lujJzTF0tr/7u6N69O127dnV3GLcUFXCSKX/88QcPPPAAJUqUwNfXl4iICHr16sUff/zh7tDkKql/7FIf3t7elC1bloceeoi//vrL3eFlyoYNGxg1ahQxMTFujeOdd94hKCiI7t27O9pS/1EpVqwYCQkJaV5TunRp2rZtm5NhXtPx48cZNWoUO3bscHcoDn369HE6Tr28vIiMjKR79+7s2rXL3eHlanFxcbz66qvUqlWLggUL4uvrS1RUFN26dWPp0qVO26b+Pvjyyy+vu8/U78Ojjz6a7vqXXnrJsc2//zkfNmwYX331Fb/++uvNfzDJEC93ByB5x4IFC+jRowehoaE88sgjlClThkOHDvHpp5/y5Zdf8sUXX9CpUyd3hylXGThwIHfffTdWq5Xt27fz8ccfs3TpUn777TciIiJyNJaoqCguX76Mt7d3pl63YcMGRo8eTZ8+fQgJCcme4FywWq288847DB48GE9PzzTrT58+zYcffsizzz7rhugy5vjx44wePZrSpUtTvXp1p3WffPIJNpvNLXH5+voyZcoUAJKTkzlw4ACTJ0/mu+++Y9euXY7jtEGDBly+fBkfHx+3xJlRP/zwQ7a/x/79+2nRogWHDx+mU6dOPPTQQwQGBnL06FG+/fZb2rZty2effcaDDz6Y6X37+fnx1Vdf8cEHH6TJ9Zw5c/Dz8+PKlStO7TVq1KBWrVq89dZbfPbZZzf12SRjVMBJhhw4cIAHH3yQsmXLsm7dOooWLepYN2jQIOrXr8+DDz7Izp07KVu2rBsjTctms5GUlISfn5+7Q3GL+vXrc9999wHQt29fKlSowMCBA5kxYwbDhw9P9zWXLl2iQIECWR6LxWLJs9+HJUuWcObMmWueJqpevToTJkzgqaeewt/fP4eju3mZLaqzkpeXFw888IBT2//93//Rtm1bli5dymOPPQaAh4dHnjh+srvATE5OplOnTpw6dYq1a9dSr149p/UjR47khx9+ICUl5Yb237JlS7755huWLVtGhw4dHO0bNmzg4MGDdOnSha+++irN67p27crIkSP54IMPCAwMvKH3lozTKVTJkAkTJpCQkMDHH3/sVLwBFClShI8++ohLly7x5ptvpnnt2bNn6dq1K8HBwRQuXJhBgwal+e9t+fLl3HPPPYSEhBAYGEjFihV58cUXnbZJTExk5MiR3Hbbbfj6+hIZGcnzzz9PYmKi03YWi4UBAwYwa9Ys7rjjDnx9fVm8eDGhoaH07ds3TXxxcXH4+fkxdOjQTL9XYmIigwcPpmjRogQFBdG+fXv+/vtvl/k8deoUXl5ejB49Os26PXv2YLFY+O9//wvYe35Gjx5N+fLl8fPzo3Dhwtxzzz0sX77c5fukp3HjxgAcPHgQ+OcU4K5du+jZsyeFChXinnvucWw/c+ZMatasib+/P6GhoXTv3p2jR4+m2e/HH39MuXLl8Pf3p3bt2vz4449ptrnWNXB//vknXbt2pWjRovj7+1OxYkVeeuklR3zPPfccAGXKlHGcvjl06FC2xHgtixYtonTp0pQrVy7d9a+88gqnTp3iww8/dLkvm83GpEmTuOOOO/Dz86NYsWL069ePCxcupNlu1KhRREREEBAQwL333suuXbsoXbo0ffr0cWx3/vx5hg4dSpUqVQgMDCQ4OJhWrVo5nc5as2YNd999N2Av5FPzmPq9+Pc1cFarNVt+XjIjPDwcsBd3//4MV18D16hRI+6880527drFvffeS0BAACVKlEj3d9Hp06d55JFHKFasGH5+flSrVo0ZM2Y4bZN6jP7nP//h/fffp2zZsgQEBNC8eXOOHj2KMYaxY8dSsmRJ/P396dChA+fPn3fax9XXwCUlJfHKK69Qs2ZNChYsSIECBahfvz6rV6++odzMnz+f33//nREjRqQp3lI1b96cVq1a3dD+S5QoQYMGDZg9e7ZT+6xZs6hSpQp33nlnuq9r1qwZly5duuHfTZI56oGTDFm8eDGlS5emfv366a5v0KABpUuXTnPdBdj/KytdujTjx49n06ZNvPvuu1y4cMHRzf7HH3/Qtm1bqlatypgxY/D19WX//v2sX7/esQ+bzUb79u356aefePzxx6lcuTK//fYbb7/9Nnv37mXRokVO77lq1SrmzZvHgAEDKFKkCOXLl6dTp04sWLCAjz76yOk/5EWLFpGYmOi4rikz7/Xoo48yc+ZMevbsSd26dVm1ahVt2rRxmc9ixYrRsGFD5s2bx8iRI53WzZ07F09PT+6//37AXsCMHz+eRx99lNq1axMXF8fWrVvZvn07zZo1c/leVztw4AAAhQsXdmq///77KV++PK+99hrGGABeffVVRowYQdeuXXn00Uc5c+YM7733Hg0aNOCXX35xnM789NNP6devH3Xr1uWZZ57hr7/+on379oSGhhIZGXndeHbu3En9+vXx9vbm8ccfp3Tp0hw4cIDFixfz6quv0rlzZ/bu3cucOXN4++23KVKkCIDjH4mciBHsvQ933XXXNdfXr1+fxo0b8+abb/Lkk09etxeuX79+TJ8+nb59+zJw4EAOHjzIf//7X3755RfWr1/v6A0bPnw4b775Ju3ataNFixb8+uuvtGjRIs0/QH/99ReLFi3i/vvvp0yZMpw6dYqPPvqIhg0bOk5BVq5cmTFjxvDKK6/w+OOPO36W69atmyY+b2/vbPl5uZ7U66lSUlL466+/GDZsGIULF87Q9YMXLlygZcuWdO7cma5du/Lll18ybNgwqlSp4ihiLl++TKNGjdi/fz8DBgygTJkyzJ8/nz59+hATE8OgQYOc9jlr1iySkpJ4+umnOX/+PG+++SZdu3alcePGrFmzhmHDhrF//37ee+89hg4dytSpU68ZX1xcHFOmTKFHjx489thjXLx4kU8//ZQWLVqwZcuWNKezXVm8eDFAml7LrNSzZ08GDRpEfHw8gYGBJCcnM3/+fIYMGZLm+Et1++234+/vz/r163U5TU4wIi7ExMQYwHTo0OG627Vv394AJi4uzhhjzMiRIw1g2rdv77TdU089ZQDz66+/GmOMefvttw1gzpw5c819f/7558bDw8P8+OOPTu2TJ082gFm/fr2jDTAeHh7mjz/+cNr2+++/N4BZvHixU3vr1q1N2bJlM/1eO3bsMIB56qmnnLbr2bOnAczIkSOv+XmMMeajjz4ygPntt9+c2m+//XbTuHFjx3K1atVMmzZtrruv9KxevdoAZurUqebMmTPm+PHjZunSpaZ06dLGYrGYn3/+2Rjzz/epR48eTq8/dOiQ8fT0NK+++qpT+2+//Wa8vLwc7UlJSSYsLMxUr17dJCYmOrb7+OOPDWAaNmzoaDt48KABzLRp0xxtDRo0MEFBQebw4cNO72Oz2RzPJ0yYYABz8ODBbI8xPVar1VgsFvPss8+mWZeavzNnzpi1a9cawEycONGxPioqyun79+OPPxrAzJo1y2k/3333nVP7yZMnjZeXl+nYsaPTdqNGjTKA6d27t6PtypUrJiUlxWm7gwcPGl9fXzNmzBhH288//5wm/6l69+5toqKiHMtZ/fNyLb179zZAmkeJEiXMtm3bnLZNPaZXr17taGvYsKEBzGeffeZoS0xMNOHh4aZLly6OtkmTJhnAzJw509GWlJRk6tSpYwIDAx2/t1KP0aJFi5qYmBjHtsOHDzeAqVatmrFarY72Hj16GB8fH3PlyhWnmP59TCUnJzsdd8YYc+HCBVOsWDHz8MMPO7Vn5HdHjRo1TEhISJr2+Ph4c+bMGccjNjbWsS41d/Pnz7/uvgHTv39/c/78eePj42M+//xzY4wxS5cuNRaLxRw6dMjpmL9ahQoVTKtWra77HpI1dApVXLp48SIAQUFB190udX1cXJxTe//+/Z2Wn376aQC+/fZbAEcPyddff33Ni6jnz59P5cqVqVSpEmfPnnU8Uk8HXn0qomHDhtx+++1ObY0bN6ZIkSLMnTvX0XbhwgWWL19Ot27dMv1eqfEPHDjQ6X2eeeaZdD/D1Tp37oyXl5dTPL///ju7du1yiickJIQ//viDffv2ZWi/V3v44YcpWrQoERERtGnThkuXLjFjxgxq1arltN0TTzzhtLxgwQJsNhtdu3Z1ykN4eDjly5d35GHr1q2cPn2aJ554wqmnpk+fPhQsWPC6sZ05c4Z169bx8MMPU6pUKad1FovF5WfLiRjBforSGEOhQoWuu12DBg249957efPNN7l8+XK628yfP5+CBQvSrFkzp5hr1qxJYGCgI+aVK1eSnJzMU0895fT61J+ff/P19cXDw/7rPCUlhXPnzjkuRdi+fbvLz5eerP55uR4/Pz+WL1/O8uXL+f777/noo48IDAykdevW7N271+XrAwMDnXqjfHx8qF27ttNo62+//Zbw8HB69OjhaPP29mbgwIHEx8ezdu1ap33ef//9TsdGdHQ0YO/1+vdp3ejoaJKSkjh27Ng14/P09HQcdzabjfPnz5OcnEytWrVu6PsTFxeX7jVmL730EkWLFnU8evbsmel9pypUqBAtW7Zkzpw5AMyePZu6desSFRXl8nW34tRR7qBTqOJSamGWWshdy7UKvfLlyzstlytXDg8PD8c1TN26dWPKlCk8+uijvPDCCzRp0oTOnTtz3333Of4o7du3j927d6e5/i7V6dOnnZbLlCmTZhsvLy+6dOnC7NmzSUxMxNfXlwULFmC1Wp3+IGX0vQ4fPoyHh0eaa6IqVqyY7uuuVqRIEZo0acK8efMYO3YsYD996uXlRefOnR3bjRkzhg4dOlChQgXuvPNOWrZsyYMPPkjVqlUz9D6vvPIK9evXx9PTkyJFilC5cmWnP0Cprs7Zvn37MMak+f6lSj3Nd/jwYSDt9zl12pLrSf0De61ralzJiRj/zfzv1PL1jBo1ioYNGzJ58mQGDx6cbsyxsbGEhYWl+/p/H18At912m9P60NDQNIWkzWbjnXfe4YMPPuDgwYNOF69ffao8o7L65+V6PD09adq0qVNb69atKV++PMOHD0/3gvl/K1myZJqCv1ChQuzcudOxfPjwYcqXL+/4nZKqcuXKjvX/dvU/FKnF3NWn21Pbr75+8WozZszgrbfe4s8//8RqtTra0/td5UpQUBDnzp1L0/7UU085TjlnxenVnj178uCDD3LkyBEWLVqU7nWFVzPGZOifL7l5KuDEpYIFC1K8eHGnX4bp2blzJyVKlCA4OPi62139w+3v78+6detYvXo1S5cu5bvvvmPu3Lk0btyYH374AU9PT2w2G1WqVGHixInp7vPqX6rXuv6oe/fufPTRRyxbtoyOHTsyb948KlWqRLVq1RzbZPa9bkb37t3p27cvO3bsoHr16sybN48mTZo4rvMCe6/OgQMH+Prrr/nhhx+YMmUKb7/9NpMnT77mXE3/VqVKlTR/HNNzdc5sNhsWi4Vly5alO21GbhhlllMxhoaGYrFYXP6RBvv3q1GjRrz55ptpejVTY77eZMDXKoSu57XXXmPEiBE8/PDDjB07ltDQUDw8PHjmmWduamoQd/68lCxZkooVK7Ju3TqX26b3vYeMFdyZ3eeNvNfMmTPp06cPHTt25LnnniMsLAxPT0/Gjx/vuCY1MypVqsSOHTs4duwYJUqUcLRXqFCBChUqAGTJaN327dvj6+tL7969SUxMzNBEvRcuXLjmP1SStVTASYa0bduWTz75hJ9++slphGKqH3/8kUOHDtGvX7806/bt2+f0X+b+/fux2WxOs757eHjQpEkTmjRpwsSJE3nttdd46aWXWL16NU2bNqVcuXL8+uuvNGnS5Kb+u2vQoAHFixdn7ty53HPPPaxatcox2jFVRt8rKioKm83GgQMHnHrd9uzZk+F4OnbsSL9+/Rynqfbu3Zvu1B6pIwL79u1LfHw8DRo0YNSoURkq4G5UuXLlMMZQpkwZxx+F9KSeUtm3b5/jtBnYRzIePHjQ6Y/91VJ7v37//ffrxnKt70NOxAj23qhy5co5Ru66MmrUKBo1asRHH32UbswrVqygXr161x3okBrz/v37nX5+zp07l6aQ/PLLL7n33nv59NNPndpjYmKc/hnI7M9OVv683Ijk5GTi4+OzZF9RUVHs3LkTm83m1Av3559/OtZnly+//JKyZcuyYMECpxxdPYApo9q2bcsXX3zBrFmzeP7557MqzDT8/f3p2LEjM2fOpFWrVk7HUnqSk5M5evQo7du3z7aY5B+6Bk4y5LnnnsPf359+/fql6bo/f/48TzzxBAEBAY7pHv7t/fffd1p+7733AByjw64egg84RmWlTkPQtWtXjh07xieffJJm28uXL3Pp0qUMfQ4PDw/uu+8+Fi9ezOeff05ycrLT6aDMvFdq/O+++67TNpMmTcpQLGC/vq1FixbMmzePL774Ah8fHzp27Oi0zdX5DgwM5LbbbrupKRoyonPnznh6ejJ69Og0vQvGGEdctWrVomjRokyePJmkpCTHNtOnT3d554SiRYvSoEEDpk6dypEjR9K8R6rUOemu3l9OxJiqTp06bN26NUPbNmzYkEaNGvHGG2+kGbHXtWtXUlJSHKfN/y05OdkRT5MmTfDy8kozLUnq9DL/5unpmebzz58/P811WdfK47Vk5c9LZu3du5c9e/a4LK4zqnXr1pw8edLpmr7k5GTee+89AgMDadiwYZa8T3pSe+3+/T3avHkzGzduvKH9de3aldtvv52xY8eyadOmdLe5md7Hfxs6dCgjR45kxIgRLrfdtWsXV65cSXdks2Q99cBJhpQvX54ZM2bQq1cvqlSpkuZODGfPnmXOnDnpzpF18OBB2rdvT8uWLdm4caNj2o3UX8xjxoxh3bp1tGnThqioKE6fPs0HH3xAyZIlHb19Dz74IPPmzeOJJ55g9erV1KtXj5SUFP7880/mzZvH999/n+ai/Gvp1q0b7733HiNHjqRKlSqOa2BSZfS9qlevTo8ePfjggw+IjY2lbt26rFy5kv3792cqt926deOBBx7ggw8+oEWLFmnuNHD77bfTqFEjatasSWhoKFu3buXLL79kwIABmXqfzCpXrhzjxo1j+PDhHDp0iI4dOxIUFMTBgwdZuHAhjz/+OEOHDsXb25tx48bRr18/GjduTLdu3Th48CDTpk3L0PVl7777Lvfccw933XUXjz/+uOO4Wrp0qeOWTzVr1gTsF2l3794db29v2rVrl2MxAnTo0IHPP/+cvXv3Xre3L9XIkSO5995707Q3bNiQfv36MX78eHbs2EHz5s3x9vZm3759zJ8/n3feeYf77ruPYsWKMWjQIN566y3Hz8+vv/7KsmXLKFKkiFNPTtu2bRkzZgx9+/albt26/Pbbb8yaNSvNZytXrhwhISFMnjyZoKAgChQoQHR09HWvw8qqn5frSU5OZubMmYD9lOyhQ4eYPHkyNpvthnuprvb444/z0Ucf0adPH7Zt20bp0qX58ssvWb9+PZMmTXI5SOtmtG3blgULFtCpUyfatGnDwYMHmTx5MrfffvsN9TB6e3uzcOFCWrRowT333EPnzp2pX78+BQoU4NixY3zzzTccOXIk3SmNvvrqK0ev47/17t073dPd1apVy3ARvXz5cgICAm5oeiO5ATk+7lXytJ07d5oePXqY4sWLG29vbxMeHm569OiRZioMY/6ZXmHXrl3mvvvuM0FBQaZQoUJmwIAB5vLly47tVq5caTp06GAiIiKMj4+PiYiIMD169DB79+512l9SUpJ54403zB133GF8fX1NoUKFTM2aNc3o0aOdhsvzv2Hw12Kz2UxkZKQBzLhx49LdJqPvdfnyZTNw4EBTuHBhU6BAAdOuXTtz9OjRDE0FkCouLs74+/unmeIg1bhx40zt2rVNSEiI8ff3N5UqVTKvvvqqSUpKuu5+MzptwPWmBDDGmK+++srcc889pkCBAqZAgQKmUqVKpn///mbPnj1O233wwQemTJkyxtfX19SqVcusW7cuzXQK6U0jYowxv//+u+nUqZMJCQkxfn5+pmLFimbEiBFO24wdO9aUKFHCeHh4pJlSJCtjvJbExERTpEgRM3bs2AznL3WKi/Smgfn4449NzZo1jb+/vwkKCjJVqlQxzz//vDl+/Lhjm+TkZDNixAgTHh5u/P39TePGjc3u3btN4cKFzRNPPOHY7sqVK+bZZ581xYsXN/7+/qZevXpm48aN6X62r7/+2tx+++3Gy8vL6Xtx9TQiqbLy5yU96U0jEhwcbJo0aWJWrFjhtO21phG544470t3v1Z/n1KlTpm/fvqZIkSLGx8fHVKlSJc2xmHqMTpgwId33vvrnadq0aQZwTMuTGtO/826z2cxrr71moqKijK+vr6lRo4ZZsmRJujFm5ndHTEyMGTNmjKlRo4YJDAw0Pj4+JjIy0tx3331ppn9Jjf9aj9RpYFz9/jTm2sd8dHS0eeCBBzIUu9w8izFZ1M8qIpLPjR07lmnTprFv375rXsye3WJiYihUqBDjxo1Lcz2aiLvs2LGDu+66i+3bt2d6YmK5MboGTkQkgwYPHkx8fDxffPFFjrxfenPJpV5j+e9bNYm42+uvv859992n4i0HqQdORCSXmj59OtOnT6d169YEBgby008/MWfOHJo3b87333/v7vBExI00iEFEJJeqWrUqXl5evPnmm8TFxTkGNowbN87doYmIm6kHTkRERCSP0TVwIiIiInmMCjgRERGRPEbXwGGfOPL48eMEBQXpJrwiIiKSrYwxXLx4kYiICKdbu2WGCjjg+PHjWXqDchERERFXjh49SsmSJW/otSrgwHELlaNHjxIcHJzl+7darfzwww+OW+ZIWsqRa8qRa8qRa8qRa8qRa8qRa9fLUVxcHJGRkTd1Cze3FnDr1q1jwoQJbNu2jRMnTrBw4UKnG3lf63Tmm2++6bhpeunSpTl8+LDT+vHjx/PCCy9kOI7U9wkODs62Ai4gIIDg4GAd6NegHLmmHLmmHLmmHLmmHLmmHLmWkRzdzGVbbh3EcOnSJapVq8b777+f7voTJ044PaZOnYrFYqFLly5O240ZM8Zpu6effjonwhcRERFxC7f2wLVq1YpWrVpdc314eLjT8tdff829995L2bJlndqDgoLSbHs9iYmJJCYmOpbj4uIAe7VstVozvJ+MSt1nduw7v1COXFOOXFOOXFOOXFOOXFOOXLtejrIib7lmIl+LxZLmFOq/nTp1ipIlSzJjxgx69uzpaC9dujRXrlzBarVSqlQpevbsyeDBg/HyunZtOmrUKEaPHp2mffbs2QQEBNz0ZxERERG5loSEBHr27ElsbOwNX7qVZwYxzJgxg6CgIDp37uzUPnDgQO666y5CQ0PZsGEDw4cP58SJE0ycOPGa+xo+fDhDhgxxLKdeTNi8efNsuwZu+fLlNGvWTNcKXINy5Jpy5Jpy5Jpy5Jpy5Jpy5Nr1cpR65u9m5JkCburUqfTq1Qs/Pz+n9n8XYlWrVsXHx4d+/foxfvx4fH19092Xr69vuuu8vb2z9UDM7v3nB8qRa8qRa8qRa8qRa8qRa8qRa+nlKCtylifuxPDjjz+yZ88eHn30UZfbRkdHk5yczKFDh7I/MBERERE3yBMF3KeffkrNmjWpVq2ay2137NiBh4cHYWFhORCZiIiISM5z6ynU+Ph49u/f71g+ePAgO3bsIDQ0lFKlSgH288Tz58/nrbfeSvP6jRs3snnzZu69916CgoLYuHEjgwcP5oEHHqBQoUI59jlEREREcpJbC7itW7dy7733OpZTr2fr3bs306dPB+CLL77AGEOPHj3SvN7X15cvvviCUaNGkZiYSJkyZRg8eLDTdXEiIiIi+Y1bC7hGjRrhahaTxx9/nMcffzzddXfddRebNm3KjtBEREREcq08cQ2ciIiIiPxDBZyIiIhIHqMCTkRERCSPyTMT+YrcKmw2w97TF4lNsFIwwJsKYUF4eFjcHZaIiOQiKuBEcpFth88zY8Nh9p+OJyk5BR8vT24LC6R33SiqRgS5OzwREckldApVJJfYdvg8ry7dze/HYgn286JkoQCC/bz443gsry7dzY6jF9wdooiI5BIq4ERyAZvNMGPDYWISrJQuHEABXy88PSwU8PUiKjSA2MtW5mw+6u4wRUTyP5vN3RFkiAo4kVxg7+mL7D8dT1iQLxaL8/VuFouFooG+HDhzyU3RiYjcIk6fhgYNYNEid0fikgo4kVwgNsFKUnIKft6e6a738/YkKTklh6MSEbmF7NoF0dGwfj0MGABXrrg7outSASeSCxQM8MbHy5Mr1vSLtCtW+4AGERHJBsuXQ506cOgQlCsHK1eCn5+7o7ouFXAiuUCFsCBuCwvkTHximtvLGWM4E59IuaIF3BSdiEg+9vHH0KoVxMXBPffApk1QsaK7o3JJBZxILuDhYaF33SgK+ntz+HwClxKTSbEZLiUmc/h8AgX9vekRHenuMEVE8pfXX4d+/SAlBR54AFasgCJF3B1VhqiAE8klakaF8lKbytwRUZC4K8n8fSGBuCvJ3BlRkJfaVKZ6ZCF3hygikr+0aQPBwTBmDHz2Gfj6ujuiDNNEviK5SM2oUGpEFkr3TgxWq9Xd4YmI5H1WK3h7259XqQJ790KxYu6N6QaoB04kl/HwsFApPJjosoWpFB6s22iJiGSVHTugcmX46ad/2vJg8QYq4ERERORWsHixfZDCgQPw4otw1YCxvEYFnIiIiORfxsCkSdChA1y6BE2awDffgCVvn91QASciIiL5U3KyfVLewYPthdxjj8GyZRAS4u7IbpoGMYiIiEj+k5AAnTvD99/be9smTIAhQ/J8z1sqFXAiIiKS//j52XvaAgJg1izo2NHdEWUpFXAiIiKS/3h4wLRpsH+/fbqQfEbXwImIiEj+MG8e9O4NNpt92d8/XxZvoAJORERE8jpj4LXXoFs3+x0VZs50d0TZTqdQRUREJO9KSrLfz3T6dPvyM89Ar17ujChHqIATERGRvOn8eftI07Vr7de8vfcePPWUu6PKESrgREREJO/Zt89+M/p9+yAoyH79W8uW7o4qx6iAExERkbzn1Ck4fBhKlYIlS/LtYIVrUQEnIiIiec8998DChXDXXRAe7u5ocpxGoYqIiEjuZ7PBmDGwc+c/ba1b35LFG6iAExERkdzu8mXo2RNGjoR27SA+3t0RuZ1OoYqIiEjudeqU/TZYmzaBtzeMHg2Bge6Oyu1UwImIiEju9Mcf9pGmhw9DoUKwYAE0auTuqHIFnUIVERGR3OeHH6BuXXvxdttt9h44FW8OKuBEREQkdzEGJk2CuDioX99evFWo4O6ochUVcCIiIpK7WCwwZw689BIsXw6FC7s7olxHBZyIiIi4X3w8TJli730DKFgQxo0DX1/3xpVLaRCDiIiIuNexY/bpQX75BRISYOBAd0eU66mAExEREff55Rdo2xaOH4eiReHuu90dUZ6gU6giIiLiHt98Y78l1vHjcPvtsHkz1Knj7qjyBBVwIiIikrOMgbfftk/Qm5AAzZrB+vVQpoy7I8szVMCJiIhIzvrtNxg61F7I9esHS5dCSIi7o8pTdA2ciIiI5KyqVe09cMnJMHiwfdoQyRQVcCIiIpL9Dh60f009TaqRpjdFp1BFREQke23cCNHR9vuaxsS4O5p8QQWciIiIZJ+5c+Hee+HMGfDzg8uX3R1RvqACTkRERLKeMfDqq9C9OyQm2ifqXbcOihd3d2T5ggo4ERERyVqJidCnD7z8sn158GBYuBACA90aVn6iQQwiIiKStYYOhc8+A09PeO89ePJJd0eU76gHTkRERLLWiy/CnXfa53dT8ZYt1AMnIiIiN+/IEShVyv68eHHYscPeAyfZQj1wIiIicnOmT4fy5WHWrH/aVLxlK7cWcOvWraNdu3ZERERgsVhYtGiR0/o+ffpgsVicHi1btnTa5vz58/Tq1Yvg4GBCQkJ45JFHiI+Pz8FPISIicouy2eCll6BvX0hKgu+/d3dEtwy3FnCXLl2iWrVqvP/++9fcpmXLlpw4ccLxmDNnjtP6Xr168ccff7B8+XKWLFnCunXrePzxx7M7dBERkVuaR2Iinr16wWuv2RteftneEyc5wq3XwLVq1YpWrVpddxtfX1/Cw8PTXbd7926+++47fv75Z2rVqgXAe++9R+vWrfnPf/5DRERElscsIiJyyzt1inojRuCxdy94e8Mnn0Dv3u6O6paS6wcxrFmzhrCwMAoVKkTjxo0ZN24chQsXBmDjxo2EhIQ4ijeApk2b4uHhwebNm+nUqVO6+0xMTCQxMdGxHBcXB4DVasVqtWb5Z0jdZ3bsO79QjlxTjlxTjlxTjlxTjlyIi8OzXj1CjxzBhIaSMm8epkEDUL6cXO84yopjK1cXcC1btqRz586UKVOGAwcO8OKLL9KqVSs2btyIp6cnJ0+eJCwszOk1Xl5ehIaGcvLkyWvud/z48YwePTpN+w8//EBAQECWf45Uy5cvz7Z95xfKkWvKkWvKkWvKkWvK0bVVio6mRHIym15+mUvx8fDtt+4OKddK7zhKSEi46f3m6gKue/fujudVqlShatWqlCtXjjVr1tCkSZMb3u/w4cMZMmSIYzkuLo7IyEiaN29OcHDwTcWcHqvVyvLly2nWrBne3t5Zvv/8QDlyTTlyTTlyTTlyTTm6hitX7PcyBaxNmrD6m2+4t2NH5egarnccpZ75uxm5uoC7WtmyZSlSpAj79++nSZMmhIeHc/r0aadtkpOTOX/+/DWvmwP7dXW+vr5p2r29vbP1QMzu/ecHypFrypFrypFrypFrytH/pKTY76ywaROsWgX+/gAkFyigHGVAejnKipzlqXng/v77b86dO0fx/90It06dOsTExLBt2zbHNqtWrcJmsxEdHe2uMEVERPKH+Hjo2BEmTbIXcJomJNdwaw9cfHw8+/fvdywfPHiQHTt2EBoaSmhoKKNHj6ZLly6Eh4dz4MABnn/+eW677TZatGgBQOXKlWnZsiWPPfYYkydPxmq1MmDAALp3764RqCIiIjfj77+hXTv7HRV8fe33Nu3Y0d1Ryf+4tQdu69at1KhRgxo1agAwZMgQatSowSuvvIKnpyc7d+6kffv2VKhQgUceeYSaNWvy448/Op3+nDVrFpUqVaJJkya0bt2ae+65h48//thdH0lERCTv27YNoqPtxVtYGKxZA127ujsq+Re39sA1atQIY8w113+fga7a0NBQZs+enZVhiYiI3Lq+/x46d4aEBLjjDliyBEqXdndUcpU8dQ2ciIiIZLNy5ewDFZo3h/XrVbzlUnlqFKqIiIhkA2PAYrE/v+02e+FWrhx4qUzIrdQDJyIiciuLiYHWreG77/5pq1hRxVsup++OiIjIrergQWjTBnbvhl9/hb/+ckzWK7mbeuBERERuRRs22Eea7t4NJUrA0qUq3vIQFXAiIiK3mi++gMaN4cwZqFEDNm+2f5U8QwWciIjIrcIYGDcOevSAxETo0AF+/NHeAyd5igo4ERGRW8nhw/avzz4LX30FBQq4Nx65IRrEICIicquwWOCDD6BtW3vvm+RZ6oETERHJz/bsgSefhORk+7K3t4q3fEA9cCIiIvnV6tX222LFxECxYjBqlLsjkiyiHjgREZH8aNo0++2wYmLg//4PnnrK3RFJFlIBJyIikp/YbPDii/Dww/bTpt26wapVEBbm7sgkC6mAExERyS8uX7YXbOPH25dHjIDZs+03p5d8RdfAiYiI5BcHDsC339oHKkyZAg895O6IJJuogBMREckv7rwT5s6F4GBo0MDd0Ug2UgEnIiKSl333HYSE2AcqgH2ON8n3dA2ciIhIXvX++9CmjX1et6NH3R2N5CAVcCIiInlNSgo88wwMGGAfddq6tX2eN7ll6BSqiIhIXnLxov1m9EuX2pfHj4dhw+y3yZJbhgo4ERGRvOLoUWjXDn79Ffz84PPP4b773B2VuIEKOBERkbxi3Dh78VasGHzzDdSu7e6IxE1UwImIiOQVEyfaJ+sdOxaiotwdjbiRBjGIiIjkVsbYr3Uzxr5coAB89pmKN1EBJyIikitZrdCvn31et3Hj3B2N5DI6hSoiIpLbxMTYByesXGkfXRoc7O6IJJdRASciIpKb/PWXfXLeP/+0nzKdM8c+8lTkX1TAiYiI5BYbNtjvqnD2LJQsCYsXQ/Xq7o5KciEVcCIiIrnB+fPQsqV9ot6aNe3ThEREuDsqyaU0iEFERCQ3CA2Fd96BTp1g7VoVb3JdKuBERETcJTERDh36Z7lvX/jqK/u1byLXoQJORETEHc6ehaZNoXFjOH36n3bd01QyQAWciIhITvvzT4iOhp9+sl/7duCAuyOSPEYFnIiISE5atQrq1LFPF1KmDGzcaF8WyQQVcCIiIjll6lRo0cI+UW/durB5M1Su7O6oJA9SASciIpITPv0UHnkEkpOhRw/7XRaKFnV3VJJHqYATERHJCZ06QYUK8MorMGsW+Pm5OyLJwzSRr4iISHa5eBGCguzPQ0Nh+3ZNESJZQj1wIiIi2WHnTrjjDvjww3/aVLxJFlEBJyIiktW+/Rbq1YOjR+H99yEpyd0RST6jAk5ERCQr/fe/0K4dxMfDvffCjz+Cj4+7o5J8RgWciIhIVkhOhoED4emnwWazjzj97jsoVMjdkUk+pEEMIiIiN8tms48yXbLEvvzGG/Dcc7otlmQb9cCJiIjcLA8PqF8f/P3tN6N//nkVb5Kt1AMnIiJyo4z5p1B77jm47z4oW9a9McktQT1wIiIiN2LBAvtI04sX7csWi4o3yTEq4ERERDLDGHjzTejSxX4j+kmT3B2R3IJ0ClVERCSjkpLgqafs9zUFGDAAhg93b0xyS1IBJyIikhEXLth73Vavtg9amDTJPmWIiBuogBMREXHlr7+gdWvYswcCA+GLL6BNG3dHJbcwFXAiIiKu+PhAXByULGmf661aNXdHJLc4tw5iWLduHe3atSMiIgKLxcKiRYsc66xWK8OGDaNKlSoUKFCAiIgIHnroIY4fP+60j9KlS2OxWJwer7/+eg5/EhERyddKlrTfVWHLFhVvkiu4tYC7dOkS1apV4/3330+zLiEhge3btzNixAi2b9/OggUL2LNnD+3bt0+z7ZgxYzhx4oTj8bSuSRARkZthDB5jxsC8ef+0Va0KxYu7LyaRf3HrKdRWrVrRqlWrdNcVLFiQ5cuXO7X997//pXbt2hw5coRSpUo52oOCgggPD8/WWEVE5BZx5Qo1J07E88cfwc8P6tSByEh3RyXiJE9dAxcbG4vFYiEkJMSp/fXXX2fs2LGUKlWKnj17MnjwYLy8rv3REhMTSUxMdCzHxcUB9tO2Vqs1y+NO3Wd27Du/UI5cU45cU45cU45cOHMGjy5dKLlpE8bLi5RJkzDh4aB8OdFx5Nr1cpQVebMYY8xN7yULWCwWFi5cSMeOHdNdf+XKFerVq0elSpWYNWuWo33ixIncddddhIaGsmHDBoYPH07fvn2ZOHHiNd9r1KhRjB49Ok377NmzCQgIuOnPIiIieU/g0aP837hxFDh1CmtAAFuGDeOsrneTbJCQkEDPnj2JjY0lODj4hvaRJwo4q9VKly5d+Pvvv1mzZs11P+zUqVPp168f8fHx+Pr6prtNej1wkZGRnD179oYTeT1Wq5Xly5fTrFkzvL29s3z/+YFy5Jpy5Jpy5JpylD7LqlV4duuGJTYWW5kyrH72Wer07ascXYOOI9eul6O4uDiKFClyUwVcrj+FarVa6dq1K4cPH2bVqlUuP2h0dDTJyckcOnSIihUrpruNr69vusWdt7d3th6I2b3//EA5ck05ck05ck05usrKlRAbC/XqkTJ/PvFbtihHGaAcuZZejrIiZ7m6gEst3vbt28fq1aspXLiwy9fs2LEDDw8PwsLCciBCERHJF8aPhxIloF8/8PR0dzQiLrm1gIuPj2f//v2O5YMHD7Jjxw5CQ0MpXrw49913H9u3b2fJkiWkpKRw8uRJAEJDQ/Hx8WHjxo1s3ryZe++9l6CgIDZu3MjgwYN54IEHKFSokLs+loiI5HaXLtlvSP/ii+Dray/aBg2yr9OF+ZIHuLWA27p1K/fee69jeciQIQD07t2bUaNG8c033wBQvXp1p9etXr2aRo0a4evryxdffMGoUaNITEykTJkyDB482LEfERGRNI4fh/btYds2OHYMpkxxd0QimebWAq5Ro0ZcbwyFq/EVd911F5s2bcrqsEREJL/69Vdo2xb+/huKFIG+fd0dkcgNceudGERERHLM0qVQr569eKtUCTZtsi+L5EEq4EREJH8zBt59137a9NIlaNwYNmyAcuXcHZnIDVMBJyIi+dvp0zByJNhs8Oij9pvSa6Cb5HG5ehoRERGRm1asGHz1FWzfDs8+CxaLuyMSuWkq4EREJP85csT+uOce+3LjxvaHSD6hU6giIpK/bNkCtWvbR5vu3u3uaESyhQo4ERHJP778Eho2hFOnoFQpKFDA3RGJZAsVcCIikvcZA6+/DvffD1euQOvWsH69vYgTyYdUwImISN6WlASPPALDh9uXBw6Er7+GoCD3xiWSjTSIQURE8rZJk2DaNPDwgHfegQED3B2RSLZTASciInnboEHw44/w1FPQqpW7oxHJESrgREQk79m5E+64Azw9wdcXFi92d0QiOUrXwImISN7y+edQqxY8/7y7IxFxGxVwIiKSNxgDr7wCDz0EVqt9ot7kZHdHJeIWKuBERCT3u3IFevaEsWPtyy+8AHPngpeuBJJbk458ERHJ3U6fho4dYeNGe8H28cfQt6+7oxJxKxVwIiKSeyUnw733wq5dEBICCxbYl0VucTqFKiIiuZeXF4weDeXLw6ZNKt5E/kcFnIiI5D7nzv3z/L774LffoGJF98UjksuogBMRkdwjJQWGDoUqVeDo0X/afX3dF5NILqQCTkREcodLl6BLF3jrLThxAr7/3t0RieRaGsQgIiLud/w4tGsH27fbe9umTYMePdwdlUiupQJORETca8cOaNsWjh2DokVh0SKoW9fdUYnkairgRETEfTZuhGbN7KdPK1eGJUugbFl3RyWS66mAExER97nzTihXzt7z9uWX9rneRMQlFXAiIpKzUlLAwwMsFggKguXLoVAh8PZ2d2QieUamR6F+9913/PTTT47l999/n+rVq9OzZ08uXLiQpcGJiEg+Exdnv97tzTf/aQsLU/EmkkmZLuCee+454uLiAPjtt9949tlnad26NQcPHmTIkCFZHqCIiOQThw9DvXrw3Xf2m9KfOuXuiETyrEyfQj148CC33347AF999RVt27bltddeY/v27bRu3TrLAxQRkXxg82Zo395+Y/rixWHxYihWzN1RieRZme6B8/HxISEhAYAVK1bQvHlzAEJDQx09cyIiIg7z5kGjRvbirVo12LIFatZ0d1QieVqme+DuuecehgwZQr169diyZQtz584FYO/evZQsWTLLAxQRkTzsjTfghRfsz9u2hTlzIDDQvTGJ5AOZ7oH773//i5eXF19++SUffvghJUqUAGDZsmW0bNkyywMUEZE8LHVakGeesU/Qq+JNJEtkugeuVKlSLFmyJE3722+/nSUBiYhIPtKvn32ut3r13B2JSL6S6R64uLi4dB8XL14kKSkpO2IUEZG8Yv9++6nSc+f+aVPxJpLlMl3AhYSEUKhQoTSPkJAQ/P39iYqKYuTIkdhstuyIV0REcqt16yA6GpYuhUGD3B2NSL6W6VOo06dP56WXXqJPnz7Url0bgC1btjBjxgxefvllzpw5w3/+8x98fX158cUXszxgERHJhT77DB59FKxWqF0b/vMfd0ckkq9luoCbMWMGb731Fl27dnW0tWvXjipVqvDRRx+xcuVKSpUqxauvvqoCTkQkv7PZ4JVX4NVX7cv33w8zZoC/v3vjEsnnMn0KdcOGDdSoUSNNe40aNdi4cSNgn2rkyJEjNx+diIjkXpcvQ8+e/xRvL74IX3yh4k0kB2S6gIuMjOTTTz9N0/7pp58SGRkJwLlz5yhUqNDNRyciIrnXpUv2SXm9vWHaNHsh55HpPysicgMyfQr1P//5D/fffz/Lli3j7rvvBmDr1q38+eeffPnllwD8/PPPdOvWLWsjFRGR3KVIEfuAhVOn7HdaEJEck+kCrn379vz555989NFH7N27F4BWrVqxaNEiSpcuDcCTTz6ZpUGKiEgu8cMPcPIkPPSQfblyZftDRHJUpgs4gDJlyvD6669ndSwiIpKbffQR9O8PFgtUrGifMkRE3OKGCriYmBi2bNnC6dOn08z39lDqf2UiIpI/pKTA88/DxIn25YcegurV3RqSyK0u0wXc4sWL6dWrF/Hx8QQHB2OxWBzrLBaLCjgRkfwkPh569YJvvrEvjxtnH236r9/9IpLzMj1c6Nlnn+Xhhx8mPj6emJgYLly44HicP38+O2IUERF3OHYMGjSwF2++vvYpQl56ScWbSC6Q6R64Y8eOMXDgQAICArIjHhERyS3mzYNffoGiReHrr6FOHXdHJCL/k+kCrkWLFmzdupWyZctmRzwiIpJbPPMMXLgAfftCmTLujkZE/iXTBVybNm147rnn2LVrF1WqVMHb29tpffv27bMsOBERyUHGwOefQ5cuUKCA/VTpmDHujkpE0pHpAu6xxx4DYEw6P9QWi4WUlJSbj0pERHKW1QoDB8LkybBggf2huyqI5FqZLuCunjZERETyuNhY6NrVPkmvxQING2qggkgud0PzwImISD5x6BC0aQO7dkFAAMyZA7oURiTXy1AB9+677/L444/j5+fHu+++e91tBw4cmOE3X7duHRMmTGDbtm2cOHGChQsX0rFjR8d6YwwjR47kk08+ISYmhnr16vHhhx9Svnx5xzbnz5/n6aefZvHixXh4eNClSxfeeecdAgMDMxyHiMgtadMm6NABTp+GiAhYvBjuusvdUYlIBmSogHv77bfp1asXfn5+vP3229fczmKxZKqAu3TpEtWqVePhhx+mc+fOada/+eabvPvuu8yYMYMyZcowYsQIWrRowa5du/Dz8wOgV69enDhxguXLl2O1Wunbty+PP/44s2fPznAcIiK3nKQk6N7dXrzVqGEv3kqUcHdUIpJBGSrgDh48mO7zm9WqVStatWqV7jpjDJMmTeLll1+mQ4cOAHz22WcUK1aMRYsW0b17d3bv3s13333Hzz//TK1atQB47733aN26Nf/5z3+IiIjIslhFRPIVHx/7PG8TJ8KUKaCzFiJ5Sq69Bu7gwYOcPHmSpk2bOtoKFixIdHQ0GzdupHv37mzcuJGQkBBH8QbQtGlTPDw82Lx5M506dUp334mJiSQmJjqW4+LiALBarVit1iz/LKn7zI595xfKkWvKkWvKkQuJiaT88gvwvxzVqGGfNsTe4MbAchcdR64pR65dL0dZkbcMFXBDhgzJ8A4npt7s+CadPHkSgGLFijm1FytWzLHu5MmThIWFOa338vIiNDTUsU16xo8fz+jRo9O0//DDD9l6h4nly5dn277zC+XINeXINeUoLe+4OGq/8QYh+/dT8LXXUIZc03HkmnLkWno5SkhIuOn9ZqiA++V//7Gl2r59O8nJyVSsWBGAvXv34unpSc2aNW86oJwwfPhwp6I0Li6OyMhImjdvTnBwcJa/n9VqZfny5TRr1izNxMdipxy5phy5phxdw969eHXsiGX/fkxwMD7x8crRdeg4ck05cu16OUo983czMlTArV692vF84sSJBAUFMWPGDAoVKgTAhQsX6Nu3L/Xr17/pgFKFh4cDcOrUKYoXL+5oP3XqFNWrV3dsc/r0aafXJScnc/78ecfr0+Pr64uvr2+adm9v72w9ELN7//mBcuSacuSacvQva9ZA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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(7, 6))\n", + "\n", + "plt.scatter(observed, predicted, alpha=0.7)\n", + "\n", + "# perfect fit line\n", + "max_val = max(observed.max(), predicted.max())\n", + "plt.plot([0, max_val], [0, max_val], color=\"red\", linestyle=\"--\")\n", + "\n", + "plt.xlabel(\"Observed Average Daily Boardings\")\n", + "plt.ylabel(\"Predicted Boardings\")\n", + "plt.title(\"Observed vs Predicted (Negative Binomial GLM)\")\n", + "plt.grid(True)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "9f0edc7e-1341-48cf-b9fd-a24f7e8c8de9", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying stop level data for City of Burbank " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "75df8b20-dee7-420d-9231-229db9d53915", + "metadata": {}, + "outputs": [], + "source": [ + "# Burbank, Metrolink, LA Metro Bus and LA metro rail\n", + "feed_keys = [\"cc6a68a39d22c29b49116584971e69a8\", \"0f80473907c7613e9fefbb71220e9e56\", \"8d9623a1823a27925b7e2f00e44fc5bb\", \"f1ba526e631625c1d6816d055265ed65\"] \n", + "feed_keys_str = \", \".join(f\"'{k}'\" for k in feed_keys)\n", + "\n", + "# Query only those feed_keys\n", + "with db_engine.connect() as connection:\n", + " query = f\"\"\"\n", + " SELECT \n", + " feed_key, stop_id, _feed_valid_from, n_hours_in_service, daily_arrivals, arrivals_early_am, arrivals_am_peak, arrivals_midday, \n", + " arrivals_pm_peak, arrivals_evening, route_id_array, route_type_array, stop_key, tts_stop_name,\n", + " pt_geom, stop_name, location_type, stop_desc, stop_code\n", + " FROM cal-itp-data-infra.mart_gtfs.fct_daily_scheduled_stops\n", + " WHERE service_date = DATE('2025-05-21')\n", + " AND feed_key IN ({feed_keys_str})\n", + " \"\"\"\n", + " df_agency = pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "98205773-013c-45d4-a8bc-302d8a33e97f", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"burbank_orange_new_stops.csv\")\n", + "df[\"stop_dir_key\"] = df[\"stop_name\"] + \" \" + df[\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b3165da9-4c91-44f2-bad2-941995d22b73", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords = {\n", + "\"Hollywood & Jeffries eastbound\": (34.18141305368438, -118.34903738211447),\n", + "\"Hollywood & Victory Bl eastbound\": (34.18508535157502, -118.34929119735641),\n", + "\"Hollywood & Pacific eastbound\": (34.18825119276962, -118.34886491064228),\n", + "\"Hollywood & Valhalla eastbound\": (34.19012427165374, -118.34916328937923),\n", + "\"Hollywood & Thorton eastbound\": (34.19656151035557, -118.34876716762236),\n", + "\"Hollywood & Thorton westbound\": (34.195980179882646, -118.34894014653726),\n", + "\"New BUR terminal eastbound\": (34.19359656711031, -118.35357055101639),\n", + "\"New BUR terminal westbound\": (34.19359656711031, -118.35357055101639),\n", + "\"Winona / Ontario eastbound\": (34.199490557715684, -118.3443711434909),\n", + "\"Winona / Ontario westbound\": (34.1992091874645, -118.34484346690523),\n", + "\"Ontario & Thorton eastbound\": (34.19593202043652, -118.34444331137956),\n", + "\"Ontario & Thorton westbound\": (34.19541510602419, -118.34460558501739),\n", + "\"Empire & Ontario eastbound\": (34.192108542580186, -118.3443394102755),\n", + "\"Empire & Buena Vista eastbound\": (34.19195822628478, -118.33787457476522),\n", + "\"Empire & Valpreda eastbound\": (34.19194945024493, -118.33285175184913),\n", + "\"Empire & Valpreda westbound\": (34.19179144771815, -118.33244032844016),\n", + "\"Empire & Grismer eastbound\": (34.19175476406717, -118.32509312643347),\n", + "\"Empire & Grismer westbound\": (34.19154206721876, -118.3254365921081),\n", + "\"Amherst Dr / San Fernando eastbound\": (34.19012800601128, -118.32086710181368),\n", + "\"Amherst Dr / San Fernando westbound\": (34.189934438443714, -118.32176619076398),\n", + "\"Glenoaks & Bethany eastbound\": (34.191647095345786, -118.31754103475315),\n", + "\"Glenoaks & Bethany westbound\": (34.19168659607283, -118.3180498038794),\n", + "\"Glenoaks & Fairmount eastbound\": (34.18922976877985, -118.31426181767534),\n", + "\"Glenoaks & Fairmount westbound\": (34.18869054389077, -118.3139580922512),\n", + "\"Glenoaks & Cypress eastbound\": (34.18708018484801, -118.31127153444093),\n", + "\"Glenoaks & Cypress westbound\": (34.18677382226348, -118.31135025143384),\n", + "\"Glenoaks & Magnolia eastbound\": (34.18566039664216, -118.30935620418528),\n", + "\"Glenoaks & Magnolia westbound\": (34.1853950731641, -118.3094180753144),\n", + "\"Glenoaks & Olive eastbound\": (34.18338784687265, -118.30666291160377),\n", + "\"Glenoaks & Olive westbound\": (34.183750381812565, -118.30682928383196),\n", + "\"Glenoaks & Verdugo eastbound\": (34.1810536128531, -118.30348086446116),\n", + "\"Glenoaks & Verdugo westbound\": (34.18130060913145, -118.30290962506388),\n", + "\"Glenoaks & Providencia eastbound\": (34.17964641863243, -118.30103491619572),\n", + "\"Glenoaks & Providencia westbound\": (34.17927416886304, -118.30121771535951),\n", + "\"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + "\"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + "\"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + "\"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + "\"Flower & Alameda eastbound\": (34.17106795233713, -118.30268518471172),\n", + "\"Flower & Alameda westbound\": (34.17166407022795, -118.3032739880033)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "68c5b654-30e9-4ef2-b6e2-45b03fbc9d11", + "metadata": {}, + "outputs": [], + "source": [ + "df_blue = pd.read_csv(\"burbank_blue_new_stops.csv\")\n", + "df_blue[\"stop_dir_key\"] = df_blue [\"stop_name\"] + \" \" + df_blue [\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6210a31b-85be-44a6-8cce-9569778e094d", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords_blue = {\n", + " \"Metrolink Station eastside terminal at Front St eastbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Metrolink Station eastside terminal at Front St westbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Verdugo & Ikea Way eastbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & Ikea Way westbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & San Fernando eastbound\": (34.17878489736103, -118.30541531103879),\n", + " \"Verdugo & San Fernando westbound\": (34.17851879621711, -118.30606420445262),\n", + " \"Glenoaks & Providencia eastbound\": (34.17962336385441, -118.30104441612727),\n", + " \"Glenoaks & Providencia westbound\": (34.17927459077334, -118.30121849159424),\n", + " \"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + " \"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + " \"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + " \"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + " \"Alameda & Lake eastbound\": (34.16893683695737, -118.30550179211235),\n", + " \"Alameda & Lake westbound\": (34.169039897393205, -118.30583857000296),\n", + " \"Alameda & Victory eastbound\": (34.166763977999786, -118.30764556757374),\n", + " \"Alameda & Victory westbound\": (34.16653844596177, -118.30776671277157),\n", + " \"Alameda & Main eastbound\": (34.05882507328523, -118.2372783904341),\n", + " \"Alameda & Main westbound\": (34.05926978274522, -118.23693452367304),\n", + " \"Alameda & Mariposa eastbound\": (34.16232050313561, -118.3156158302872),\n", + " \"Alameda & Mariposa westbound\": (34.16231163244352, -118.3163406121734),\n", + " \"Alameda & Reese eastbound\": (34.160989586571944, -118.31959642185599),\n", + " \"Alameda & Reese westbound\": (34.16116470453852, -118.32011647018618),\n", + " \"Alameda & Keystone eastbound\": (34.15960879667507, -118.32369063587736),\n", + " \"Alameda & Keystone westbound\": (34.159809285768965, -118.32415899113134),\n", + " \"Alameda / Buena Vista eastbound\": (34.15830550275982, -118.32847444534262),\n", + " \"Alameda / Buena Vista westbound\": (34.158061055695796, -118.32827576408872),\n", + " \"Buena Vista & Olive eastbound\": (34.16071171372398, -118.32948693260309),\n", + " \"Buena Vista & Olive westbound\": (34.16108254215271, -118.32933331481632),\n", + " \"Buena Vista & Verdugo eastbound\": (34.16511269756838, -118.33111018379287),\n", + " \"Buena Vista & Verdugo westbound\": (34.165299805818485, -118.33167323237512),\n", + " \"Buena Vista & Clark eastbound\": (34.168565005129715, -118.33283674907685),\n", + " \"Buena Vista & Clark westbound\": (34.16866971383002, -118.33328130798998),\n", + " \"Buena Vista & Magnolia eastbound\": (34.17195186709472, -118.33452224880612),\n", + " \"Buena Vista & Magnolia westbound\": (34.17211056589883, -118.33495282578686),\n", + " \"Buena Vista & Chandler eastbound\": (34.175468005263646, -118.33584132009098),\n", + " \"Buena Vista & Chandler westbound\": (34.17564123355154, -118.33666600223994),\n", + " \"Buena Vista & Burbank eastbound\": (34.178999088200214, -118.33829343490339),\n", + " \"Buena Vista & Burbank westbound\": (34.17876464082475, -118.33765850526345),\n", + " \"Buena Vista & Jeffries eastbound\": (34.18121005878122, -118.33854591221447),\n", + " \"Buena Vista & Jeffries westbound\": (34.180900571549294, -118.33814871081255),\n", + " \"Buena Vista & Victory eastbound\": (34.18449938252548, -118.3380410337855),\n", + " \"Buena Vista & Victory westbound\": (34.18466457669643, -118.33870399111125),\n", + " \"Buena Vista & Pacific eastbound\": (34.188461988919315, -118.33840245172041),\n", + " \"Buena Vista & Pacific westbound\": (34.18806979207031, -118.33819315186547),\n", + " \"Buena Vista & Empire eastbound\": (34.19198270314381, -118.33837161247952),\n", + " \"Buena Vista & Empire westbound\": (34.19177371161881, -118.3376321369762),\n", + " \"Buena Vista & Thorton eastbound\": (34.19573279798583, -118.33806248639054),\n", + " \"Buena Vista & Thorton westbound\": (34.19545983217905, -118.33766900330374),\n", + " \"Buena Vista & Winona eastbound\": (34.19971384309687, -118.33802251372927),\n", + " \"Buena Vista & Winona westbound\": (34.19955262101271, -118.33759639149243),\n", + " \"Buena Vista & Tulare eastbound\": (34.20288213768749, -118.33803238893368),\n", + " \"Buena Vista & Tulare westbound\": (34.202779515064044, -118.33757227833074),\n", + " \"Glenoaks / Buena Vista eastbound\": (34.205108109416635, -118.33787452049432),\n", + " \"Glenoaks / Buena Vista westbound\": (34.20469583946896, -118.33746105567633),\n", + " \"Glenoaks / Cohasset eastbound\": (34.206545468267606, -118.34143554899393),\n", + " \"Glenoaks / Cohasset westbound\": (34.2067229265355, -118.34135508272895),\n", + " \"Cohasset & Bloomington eastbound\": (34.2065471711793, -118.34523843199325),\n", + " \"Cohasset & Bloomington westbound\": (34.206793697966674, -118.34551974845968),\n", + " \"N San Fernando / Lima / Avon eastbound\": (34.19149816424647, -118.34706760310583),\n", + " \"N San Fernando / Lima / Avon westbound\": (34.192392404649915, -118.3479249843664)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "87199e5f-9a49-45ef-8c4d-fdd54a7d9c9b", + "metadata": {}, + "outputs": [], + "source": [ + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "7593556c-d140-4cc7-bd56-99ba11d8d3fa", + "metadata": {}, + "outputs": [], + "source": [ + "def apply_manual_coords(df, manual_coords):\n", + " # filter rows\n", + " df = df[(df['change_type'] != 'no_change') & \n", + " (df['change_type'] != 'relocating')].copy()\n", + " \n", + " latitudes, longitudes, geoms = [], [], []\n", + "\n", + " for key in df[\"stop_dir_key\"]:\n", + " coords = manual_coords.get(key)\n", + "\n", + " if coords:\n", + " lat, lon = coords\n", + " latitudes.append(lat)\n", + " longitudes.append(lon)\n", + " geoms.append(Point(lon, lat))\n", + " else:\n", + " latitudes.append(None)\n", + " longitudes.append(None)\n", + " geoms.append(None)\n", + "\n", + " df[\"latitude\"] = latitudes\n", + " df[\"longitude\"] = longitudes\n", + " df[\"pt_geom\"] = geoms\n", + "\n", + " df[\"stop_id\"] = [\"new_\" + str(i + 1) for i in range(len(df))]\n", + "\n", + " return df" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "74273e90-eed3-4f4f-a1f0-4c6fffdd3926", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
6Hollywood & Jeffrieseastboundadding_existingHollywood & Jeffries eastbound34.181413-118.349037POINT (-118.34903738211447 34.18141305368438)new_1
8Hollywood & Victory Bleastboundadding_existingHollywood & Victory Bl eastbound34.185085-118.349291POINT (-118.34929119735641 34.18508535157502)new_2
10Hollywood & Pacificeastboundadding_existingHollywood & Pacific eastbound34.188251-118.348865POINT (-118.34886491064228 34.18825119276962)new_3
12Hollywood & Valhallaeastboundadding_existingHollywood & Valhalla eastbound34.190124-118.349163POINT (-118.34916328937923 34.19012427165374)new_4
14Hollywood & Thortoneastboundadding_existingHollywood & Thorton eastbound34.196562-118.348767POINT (-118.34876716762236 34.19656151035557)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "6 Hollywood & Jeffries eastbound adding_existing \n", + "8 Hollywood & Victory Bl eastbound adding_existing \n", + "10 Hollywood & Pacific eastbound adding_existing \n", + "12 Hollywood & Valhalla eastbound adding_existing \n", + "14 Hollywood & Thorton eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "6 Hollywood & Jeffries eastbound 34.181413 -118.349037 \n", + "8 Hollywood & Victory Bl eastbound 34.185085 -118.349291 \n", + "10 Hollywood & Pacific eastbound 34.188251 -118.348865 \n", + "12 Hollywood & Valhalla eastbound 34.190124 -118.349163 \n", + "14 Hollywood & Thorton eastbound 34.196562 -118.348767 \n", + "\n", + " pt_geom stop_id \n", + "6 POINT (-118.34903738211447 34.18141305368438) new_1 \n", + "8 POINT (-118.34929119735641 34.18508535157502) new_2 \n", + "10 POINT (-118.34886491064228 34.18825119276962) new_3 \n", + "12 POINT (-118.34916328937923 34.19012427165374) new_4 \n", + "14 POINT (-118.34876716762236 34.19656151035557) new_5 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = apply_manual_coords(df, manual_coords)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "3ffc2c7a-6812-4239-84c3-80b6eadfbe77", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
2Verdugo & San Fernandoeastboundadding_existingVerdugo & San Fernando eastbound34.178785-118.305415POINT (-118.30541531103879 34.17878489736103)new_1
3Glenoaks & Providenciaeastboundadding_existingGlenoaks & Providencia eastbound34.179623-118.301044POINT (-118.30104441612727 34.17962336385441)new_2
4Glenoaks / Alamedaeastboundadding_existingGlenoaks / Alameda eastbound34.176921-118.297872POINT (-118.29787237592716 34.1769213295822)new_3
5Alameda & San Fernandoeastboundadding_existingAlameda & San Fernando eastbound34.174366-118.299524POINT (-118.29952381900989 34.174365721132396)new_4
6Alameda & Lakeeastboundadding_existingAlameda & Lake eastbound34.168937-118.305502POINT (-118.30550179211235 34.16893683695737)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "2 Verdugo & San Fernando eastbound adding_existing \n", + "3 Glenoaks & Providencia eastbound adding_existing \n", + "4 Glenoaks / Alameda eastbound adding_existing \n", + "5 Alameda & San Fernando eastbound adding_existing \n", + "6 Alameda & Lake eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "2 Verdugo & San Fernando eastbound 34.178785 -118.305415 \n", + "3 Glenoaks & Providencia eastbound 34.179623 -118.301044 \n", + "4 Glenoaks / Alameda eastbound 34.176921 -118.297872 \n", + "5 Alameda & San Fernando eastbound 34.174366 -118.299524 \n", + "6 Alameda & Lake eastbound 34.168937 -118.305502 \n", + "\n", + " pt_geom stop_id \n", + "2 POINT (-118.30541531103879 34.17878489736103) new_1 \n", + "3 POINT (-118.30104441612727 34.17962336385441) new_2 \n", + "4 POINT (-118.29787237592716 34.1769213295822) new_3 \n", + "5 POINT (-118.29952381900989 34.174365721132396) new_4 \n", + "6 POINT (-118.30550179211235 34.16893683695737) new_5 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_blue = apply_manual_coords(df_blue, manual_coords_blue)\n", + "df_blue.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "d3b5d469-48b5-49df-ae91-315466705ddb", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert your stops DataFrame to GeoDataFrame\n", + "gdf_orange = gpd.GeoDataFrame(df, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "gdf_blue = gpd.GeoDataFrame(df_blue, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "\n", + "# Project to meters for accurate distance buffering (UTM Zone 11N for LA area)\n", + "gdf_orange = gdf_orange.to_crs(epsg=32611)\n", + "gdf_blue = gdf_blue.to_crs(epsg=32611)\n", + "\n", + "buffer_distance = 404.672 # in meters\n", + "gdf_orange['buffer'] = gdf_orange.geometry.buffer(buffer_distance)\n", + "gdf_blue['buffer'] = gdf_blue.geometry.buffer(buffer_distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "feec70b0-5a1b-4bf1-9ce5-f63340f9ce1c", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)\n", + "\n", + "acs_gdf = tracts_ca_acs.to_crs(gdf_orange.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "187c1008-dd0d-4622-9b60-e2095601bb6b", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange = gpd.overlay(acs_gdf, gdf_orange.set_geometry('buffer'), how='intersection')\n", + "geometry_intersect_blue = gpd.overlay(acs_gdf, gdf_blue.set_geometry('buffer'), how='intersection')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "174076a2-a975-41d8-88d3-ca874351d57a", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange['area_2'] = geometry_intersect_orange.geometry.area # area of overlap\n", + "geometry_intersect_orange['area_ratio'] = geometry_intersect_orange['area_2'] / geometry_intersect_orange['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_orange[f'{col}_adj'] = geometry_intersect_orange[col] * geometry_intersect_orange['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "3bbfeb90-9776-4d62-83dc-ccf5d0670ed5", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_blue['area_2'] = geometry_intersect_blue.geometry.area # area of overlap\n", + "geometry_intersect_blue['area_ratio'] = geometry_intersect_blue['area_2'] / geometry_intersect_blue['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_blue[f'{col}_adj'] = geometry_intersect_blue[col] * geometry_intersect_blue['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "bbf7b71a-c05a-4651-955b-484947ced81c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STATEFPCOUNTYFPTRACTCEGEOIDFQGEOIDNAMENAMELSADSTUSPSNAMELSADCOSTATE_NAMELSADALANDAWATERtotal_poppoverty_popnon_us_citizenmale_65_to_66male_67_to_69male_70_to_74male_75_to_79male_80_to_84male_85_and_overfemale_65_to_66female_67_to_69female_70_to_74female_75_to_79female_80_to_84female_85_and_overmale_15_17male_18_19male_20male_21male_22_24female_15_17female_18_19female_20female_21female_22_24median_household_incomeincome_less_10000income_10000_14999income_15000_24999income_25000_34999income_35000_49999income_50000_64999income_65000_74999workers_with_no_carhouseholds_with_no_carspublic_asst_popveteran_popcounty_nameinc_extremelylowinc_verylowinc_lowinc_total_lowincomemale_seniorsfemale_seniorsmale_youthfemale_youthtotal_seniorstotal_youthdisabled_poparea_m2stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_idgeometryarea_2area_ratiototal_pop_adjworkers_with_no_car_adjtotal_youth_adjtotal_seniors_adjpublic_asst_pop_adjinc_total_lowincome_adj
0060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks & Providenciawestboundadding_existingGlenoaks & Providencia westbound34.179274-118.301218POINT (380084.556 3782798.877)new_34POLYGON ((380440.877 3782607.168, 380421.029 3...380.6471400.0005634.2214920.0974020.6052420.6029900.4937652.403514
1060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks / Alamedaeastboundadding_existingGlenoaks / Alameda eastbound34.176921-118.297872POINT (380389.550 3782534.037)new_35POLYGON ((380620.646 3782807.227, 380769.228 3...122709.6295840.1815001360.88684331.399496195.112477194.386478159.175482774.823411
2060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Glenoaks / Alamedawestboundadding_existingGlenoaks / Alameda westbound34.176369-118.297764POINT (380398.772 3782472.656)new_36POLYGON ((380620.646 3782807.227, 380721.787 3...129254.1676510.1911801433.46774633.074142205.518515204.753795167.664872816.147480
3060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Alameda & San Fernandoeastboundadding_existingAlameda & San Fernando eastbound34.174366-118.299524POINT (380233.733 3782252.579)new_37POLYGON ((380436.486 3782602.281, 380458.557 3...20057.0765570.029666222.4390355.13229631.89143331.77276726.017476126.646071
4060373015021400000US06037301502060373015023015.02Census Tract 3015.02CALos Angeles CountyCaliforniaCT67593707498129617535548811334967131160156080111591532686307538201191908045999783555462653246526017326287751Los Angeles238611587254269433638631444107110751197676086.191403Alameda & San Fernandowestboundadding_existingAlameda & San Fernando westbound34.174307-118.300256POINT (380166.186 3782246.963)new_38POLYGON ((380408.138 3782570.733, 380422.907 3...3957.5911140.00585443.8908801.0126866.2927046.2692905.13367624.989353
\n", + "
" + ], + "text/plain": [ + " STATEFP COUNTYFP TRACTCE GEOIDFQ GEOID NAME \\\n", + "0 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "1 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "2 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "3 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "4 06 037 301502 1400000US06037301502 06037301502 3015.02 \n", + "\n", + " NAMELSAD STUSPS NAMELSADCO STATE_NAME LSAD ALAND \\\n", + "0 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "1 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "2 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "3 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "4 Census Tract 3015.02 CA Los Angeles County California CT 675937 \n", + "\n", + " AWATER total_pop poverty_pop non_us_citizen male_65_to_66 \\\n", + "0 0 7498 1296 1753 55 \n", + "1 0 7498 1296 1753 55 \n", + "2 0 7498 1296 1753 55 \n", + "3 0 7498 1296 1753 55 \n", + "4 0 7498 1296 1753 55 \n", + "\n", + " male_67_to_69 male_70_to_74 male_75_to_79 male_80_to_84 \\\n", + "0 48 81 133 49 \n", + "1 48 81 133 49 \n", + "2 48 81 133 49 \n", + "3 48 81 133 49 \n", + "4 48 81 133 49 \n", + "\n", + " male_85_and_over female_65_to_66 female_67_to_69 female_70_to_74 \\\n", + "0 67 131 160 156 \n", + "1 67 131 160 156 \n", + "2 67 131 160 156 \n", + "3 67 131 160 156 \n", + "4 67 131 160 156 \n", + "\n", + " female_75_to_79 female_80_to_84 female_85_and_over male_15_17 \\\n", + "0 0 80 111 59 \n", + "1 0 80 111 59 \n", + "2 0 80 111 59 \n", + "3 0 80 111 59 \n", + "4 0 80 111 59 \n", + "\n", + " male_18_19 male_20 male_21 male_22_24 female_15_17 female_18_19 \\\n", + "0 153 26 86 307 53 82 \n", + "1 153 26 86 307 53 82 \n", + "2 153 26 86 307 53 82 \n", + "3 153 26 86 307 53 82 \n", + "4 153 26 86 307 53 82 \n", + "\n", + " female_20 female_21 female_22_24 median_household_income \\\n", + "0 0 119 190 80459 \n", + "1 0 119 190 80459 \n", + "2 0 119 190 80459 \n", + "3 0 119 190 80459 \n", + "4 0 119 190 80459 \n", + "\n", + " income_less_10000 income_10000_14999 income_15000_24999 \\\n", + "0 997 835 554 \n", + "1 997 835 554 \n", + "2 997 835 554 \n", + "3 997 835 554 \n", + "4 997 835 554 \n", + "\n", + " income_25000_34999 income_35000_49999 income_50000_64999 \\\n", + "0 626 532 465 \n", + "1 626 532 465 \n", + "2 626 532 465 \n", + "3 626 532 465 \n", + "4 626 532 465 \n", + "\n", + " income_65000_74999 workers_with_no_car households_with_no_cars \\\n", + "0 260 173 262 \n", + "1 260 173 262 \n", + "2 260 173 262 \n", + "3 260 173 262 \n", + "4 260 173 262 \n", + "\n", + " public_asst_pop veteran_pop county_name inc_extremelylow inc_verylow \\\n", + "0 877 51 Los Angeles 2386 1158 \n", + "1 877 51 Los Angeles 2386 1158 \n", + "2 877 51 Los Angeles 2386 1158 \n", + "3 877 51 Los Angeles 2386 1158 \n", + "4 877 51 Los Angeles 2386 1158 \n", + "\n", + " inc_low inc_total_lowincome male_seniors female_seniors male_youth \\\n", + "0 725 4269 433 638 631 \n", + "1 725 4269 433 638 631 \n", + "2 725 4269 433 638 631 \n", + "3 725 4269 433 638 631 \n", + "4 725 4269 433 638 631 \n", + "\n", + " female_youth total_seniors total_youth disabled_pop area_m2 \\\n", + "0 444 1071 1075 1197 676086.191403 \n", + "1 444 1071 1075 1197 676086.191403 \n", + "2 444 1071 1075 1197 676086.191403 \n", + "3 444 1071 1075 1197 676086.191403 \n", + "4 444 1071 1075 1197 676086.191403 \n", + "\n", + " stop_name direction change_type \\\n", + "0 Glenoaks & Providencia westbound adding_existing \n", + "1 Glenoaks / Alameda eastbound adding_existing \n", + "2 Glenoaks / Alameda westbound adding_existing \n", + "3 Alameda & San Fernando eastbound adding_existing \n", + "4 Alameda & San Fernando westbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "0 Glenoaks & Providencia westbound 34.179274 -118.301218 \n", + "1 Glenoaks / Alameda eastbound 34.176921 -118.297872 \n", + "2 Glenoaks / Alameda westbound 34.176369 -118.297764 \n", + "3 Alameda & San Fernando eastbound 34.174366 -118.299524 \n", + "4 Alameda & San Fernando westbound 34.174307 -118.300256 \n", + "\n", + " pt_geom stop_id \\\n", + "0 POINT (380084.556 3782798.877) new_34 \n", + "1 POINT (380389.550 3782534.037) new_35 \n", + "2 POINT (380398.772 3782472.656) new_36 \n", + "3 POINT (380233.733 3782252.579) new_37 \n", + "4 POINT (380166.186 3782246.963) new_38 \n", + "\n", + " geometry area_2 \\\n", + "0 POLYGON ((380440.877 3782607.168, 380421.029 3... 380.647140 \n", + "1 POLYGON ((380620.646 3782807.227, 380769.228 3... 122709.629584 \n", + "2 POLYGON ((380620.646 3782807.227, 380721.787 3... 129254.167651 \n", + "3 POLYGON ((380436.486 3782602.281, 380458.557 3... 20057.076557 \n", + "4 POLYGON ((380408.138 3782570.733, 380422.907 3... 3957.591114 \n", + "\n", + " area_ratio total_pop_adj workers_with_no_car_adj total_youth_adj \\\n", + "0 0.000563 4.221492 0.097402 0.605242 \n", + "1 0.181500 1360.886843 31.399496 195.112477 \n", + "2 0.191180 1433.467746 33.074142 205.518515 \n", + "3 0.029666 222.439035 5.132296 31.891433 \n", + "4 0.005854 43.890880 1.012686 6.292704 \n", + "\n", + " total_seniors_adj public_asst_pop_adj inc_total_lowincome_adj \n", + "0 0.602990 0.493765 2.403514 \n", + "1 194.386478 159.175482 774.823411 \n", + "2 204.753795 167.664872 816.147480 \n", + "3 31.772767 26.017476 126.646071 \n", + "4 6.269290 5.133676 24.989353 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "geometry_intersect_orange.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "98309c42-52a9-4d91-a204-fc0bbc445b6b", + "metadata": {}, + "outputs": [], + "source": [ + "agg_orange = geometry_intersect_orange.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_orange = gdf_orange.merge(\n", + " agg_orange,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "36e31d14-b88f-4b54-849a-615f5755f369", + "metadata": {}, + "outputs": [], + "source": [ + "agg_blue = geometry_intersect_blue.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_blue = gdf_blue.merge(\n", + " agg_blue,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "304753cf-efbf-4e3e-96e4-c8c126830d2b", + "metadata": {}, + "outputs": [], + "source": [ + "# add missing columns with placeholder values for now\n", + "gdf_orange['n_arrivals'] = np.nan\n", + "gdf_orange['n_routes'] = np.nan\n", + "gdf_blue['n_arrivals'] = np.nan\n", + "gdf_blue['n_routes'] = np.nan" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "be29a349-9d3d-4fa0-94b4-32c86f775309", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_code
0f1ba526e631625c1d6816d055265ed65802142025-05-21 03:01:24.218747+00:002126233554[802][1]19ece2493f631e3ac0eb036d9a225447NonePOINT(-118.234249 34.056197)Union Station - Metro B & D Lines0.0None80214
1f1ba526e631625c1d6816d055265ed65804222025-05-21 03:01:24.218747+00:002323833554[801][0]96a07f9fd5811203743ac58ee5fb78c2NonePOINT(-118.029199 34.14286)Arcadia Station0.0None80422
2f1ba526e631625c1d6816d055265ed65803102025-05-21 03:01:24.218747+00:002222333554[803][0]ff2bde5e745f3c0e14b9431c1dbab52fNonePOINT(-118.265217 33.927465)Avalon Station0.0None80310
3f1ba526e631625c1d6816d055265ed65804272025-05-21 03:01:24.218747+00:002323633554[801][0]1c194d4ef3de4021dc8988645e46d48aNonePOINT(-117.891636 34.136814)APU / Citrus College Station0.0None80427
4f1ba526e631625c1d6816d055265ed65801202025-05-21 03:01:24.218747+00:002123733554[801][0]f0091ce2ee1d481154131e9b1773db75NonePOINT(-118.269333 34.033155)Grand / LATTC Station0.0None80120
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 f1ba526e631625c1d6816d055265ed65 80214 2025-05-21 03:01:24.218747+00:00 \n", + "1 f1ba526e631625c1d6816d055265ed65 80422 2025-05-21 03:01:24.218747+00:00 \n", + "2 f1ba526e631625c1d6816d055265ed65 80310 2025-05-21 03:01:24.218747+00:00 \n", + "3 f1ba526e631625c1d6816d055265ed65 80427 2025-05-21 03:01:24.218747+00:00 \n", + "4 f1ba526e631625c1d6816d055265ed65 80120 2025-05-21 03:01:24.218747+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 21 262 3 3 \n", + "1 23 238 3 3 \n", + "2 22 223 3 3 \n", + "3 23 236 3 3 \n", + "4 21 237 3 3 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 5 5 4 [802] \n", + "1 5 5 4 [801] \n", + "2 5 5 4 [803] \n", + "3 5 5 4 [801] \n", + "4 5 5 4 [801] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [1] 19ece2493f631e3ac0eb036d9a225447 None \n", + "1 [0] 96a07f9fd5811203743ac58ee5fb78c2 None \n", + "2 [0] ff2bde5e745f3c0e14b9431c1dbab52f None \n", + "3 [0] 1c194d4ef3de4021dc8988645e46d48a None \n", + "4 [0] f0091ce2ee1d481154131e9b1773db75 None \n", + "\n", + " pt_geom stop_name \\\n", + "0 POINT(-118.234249 34.056197) Union Station - Metro B & D Lines \n", + "1 POINT(-118.029199 34.14286) Arcadia Station \n", + "2 POINT(-118.265217 33.927465) Avalon Station \n", + "3 POINT(-117.891636 34.136814) APU / Citrus College Station \n", + "4 POINT(-118.269333 34.033155) Grand / LATTC Station \n", + "\n", + " location_type stop_desc stop_code \n", + "0 0.0 None 80214 \n", + "1 0.0 None 80422 \n", + "2 0.0 None 80310 \n", + "3 0.0 None 80427 \n", + "4 0.0 None 80120 " + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_agency.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "4ca8d618-a539-41ff-980c-45a628569ce6", + "metadata": {}, + "outputs": [], + "source": [ + "df_existing = df_agency.copy()\n", + "\n", + "# convert string representation of list → actual list\n", + "df_existing['route_id_array_parsed'] = df_existing['route_id_array'].apply(\n", + " lambda x: ast.literal_eval(x) if isinstance(x, str) else x\n", + ")\n", + "\n", + "# compute number of unique routes\n", + "df_existing['n_routes'] = df_existing['route_id_array_parsed'].apply(\n", + " lambda x: len(set(x)) if isinstance(x, list) else 0\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "6988defb-0fe2-42cb-9fe9-af2bdef3433b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_coderoute_id_array_parsedn_routes
0f1ba526e631625c1d6816d055265ed65802142025-05-21 03:01:24.218747+00:002126233554[802][1]19ece2493f631e3ac0eb036d9a225447NonePOINT(-118.234249 34.056197)Union Station - Metro B & D Lines0.0None80214[802]1
1f1ba526e631625c1d6816d055265ed65804222025-05-21 03:01:24.218747+00:002323833554[801][0]96a07f9fd5811203743ac58ee5fb78c2NonePOINT(-118.029199 34.14286)Arcadia Station0.0None80422[801]1
2f1ba526e631625c1d6816d055265ed65803102025-05-21 03:01:24.218747+00:002222333554[803][0]ff2bde5e745f3c0e14b9431c1dbab52fNonePOINT(-118.265217 33.927465)Avalon Station0.0None80310[803]1
3f1ba526e631625c1d6816d055265ed65804272025-05-21 03:01:24.218747+00:002323633554[801][0]1c194d4ef3de4021dc8988645e46d48aNonePOINT(-117.891636 34.136814)APU / Citrus College Station0.0None80427[801]1
4f1ba526e631625c1d6816d055265ed65801202025-05-21 03:01:24.218747+00:002123733554[801][0]f0091ce2ee1d481154131e9b1773db75NonePOINT(-118.269333 34.033155)Grand / LATTC Station0.0None80120[801]1
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 f1ba526e631625c1d6816d055265ed65 80214 2025-05-21 03:01:24.218747+00:00 \n", + "1 f1ba526e631625c1d6816d055265ed65 80422 2025-05-21 03:01:24.218747+00:00 \n", + "2 f1ba526e631625c1d6816d055265ed65 80310 2025-05-21 03:01:24.218747+00:00 \n", + "3 f1ba526e631625c1d6816d055265ed65 80427 2025-05-21 03:01:24.218747+00:00 \n", + "4 f1ba526e631625c1d6816d055265ed65 80120 2025-05-21 03:01:24.218747+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 21 262 3 3 \n", + "1 23 238 3 3 \n", + "2 22 223 3 3 \n", + "3 23 236 3 3 \n", + "4 21 237 3 3 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 5 5 4 [802] \n", + "1 5 5 4 [801] \n", + "2 5 5 4 [803] \n", + "3 5 5 4 [801] \n", + "4 5 5 4 [801] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [1] 19ece2493f631e3ac0eb036d9a225447 None \n", + "1 [0] 96a07f9fd5811203743ac58ee5fb78c2 None \n", + "2 [0] ff2bde5e745f3c0e14b9431c1dbab52f None \n", + "3 [0] 1c194d4ef3de4021dc8988645e46d48a None \n", + "4 [0] f0091ce2ee1d481154131e9b1773db75 None \n", + "\n", + " pt_geom stop_name \\\n", + "0 POINT(-118.234249 34.056197) Union Station - Metro B & D Lines \n", + "1 POINT(-118.029199 34.14286) Arcadia Station \n", + "2 POINT(-118.265217 33.927465) Avalon Station \n", + "3 POINT(-117.891636 34.136814) APU / Citrus College Station \n", + "4 POINT(-118.269333 34.033155) Grand / LATTC Station \n", + "\n", + " location_type stop_desc stop_code route_id_array_parsed n_routes \n", + "0 0.0 None 80214 [802] 1 \n", + "1 0.0 None 80422 [801] 1 \n", + "2 0.0 None 80310 [803] 1 \n", + "3 0.0 None 80427 [801] 1 \n", + "4 0.0 None 80120 [801] 1 " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_existing.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "c09027f0-c22d-4055-b76a-1ac0089ecec4", + "metadata": {}, + "outputs": [], + "source": [ + "from shapely import wkt\n", + "\n", + "# convert WKT string → geometry object\n", + "df_existing['geometry'] = df_existing['pt_geom'].apply(wkt.loads)\n", + "\n", + "# extract lon/lat\n", + "df_existing['longitude'] = df_existing['geometry'].apply(lambda geom: geom.x)\n", + "df_existing['latitude'] = df_existing['geometry'].apply(lambda geom: geom.y)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "935a70bd-867a-49b2-867b-12a1b4f71635", + "metadata": {}, + "outputs": [], + "source": [ + "# drop missing coords just in case\n", + "df_existing = df_existing.dropna(subset=['latitude', 'longitude'])\n", + "df_new_orange = gdf_orange.dropna(subset=['latitude', 'longitude'])\n", + "df_new_blue = gdf_blue.dropna(subset=['latitude', 'longitude'])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "da409a53-ae7b-4f11-a157-d76388882c32", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import BallTree\n", + "import numpy as np\n", + "\n", + "existing_coords = np.radians(df_existing[['latitude', 'longitude']])\n", + "new_coords_orange = np.radians(df_new_orange[['latitude', 'longitude']])\n", + "new_coords_blue = np.radians(df_new_blue[['latitude', 'longitude']])\n", + "\n", + "tree = BallTree(existing_coords, metric='haversine')\n", + "dist_orange, ind_orange = tree.query(new_coords_orange, k=1)\n", + "dist_blue, ind_blue = tree.query(new_coords_blue, k=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "4ac0ffaa-9a88-45e3-81ce-2ad35ffd6437", + "metadata": {}, + "outputs": [], + "source": [ + "matched_idx_orange = ind_orange.flatten()\n", + "\n", + "df_new_orange['n_routes_base'] = df_existing.iloc[matched_idx_orange]['n_routes'].values\n", + "\n", + "df_new_orange['nearest_stop_distance_m'] = dist_orange.flatten() * 6371000\n", + "df_new_orange['matched_feed_key'] = df_existing.iloc[matched_idx_orange]['feed_key'].values\n", + "df_new_orange['matched_stop_name'] = df_existing.iloc[matched_idx_orange]['stop_name'].values\n", + "df_new_orange['matched_stop_id'] = df_existing.iloc[matched_idx_orange]['stop_id'].values\n", + "df_new_orange['matched_n_routes'] = df_existing.iloc[matched_idx_orange]['n_routes'].values\n", + "df_new_orange['matched_agency_name'] = df_existing.iloc[matched_idx_orange]['feed_key'].values\n", + "df_new_orange['n_arrivals_base'] = df_existing.iloc[matched_idx_orange]['daily_arrivals'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "e15d37f1-42de-441c-b46c-2ed73103df13", + "metadata": {}, + "outputs": [], + "source": [ + "matched_idx_blue = ind_blue.flatten()\n", + "df_new_blue['n_routes_base'] = df_existing.iloc[matched_idx_blue]['n_routes'].values\n", + "\n", + "df_new_blue['nearest_stop_distance_m'] = dist_blue.flatten() * 6371000\n", + "df_new_blue['matched_feed_key'] = df_existing.iloc[matched_idx_blue]['feed_key'].values\n", + "df_new_blue['matched_stop_name'] = df_existing.iloc[matched_idx_blue]['stop_name'].values\n", + "df_new_blue['matched_stop_id'] = df_existing.iloc[matched_idx_blue]['stop_id'].values\n", + "df_new_blue['matched_n_routes'] = df_existing.iloc[matched_idx_blue]['n_routes'].values\n", + "df_new_blue['matched_agency_name'] = df_existing.iloc[matched_idx_blue]['feed_key'].values\n", + "df_new_blue['n_arrivals_base'] = df_existing.iloc[matched_idx_blue]['daily_arrivals'].values" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "d80ef79a-3148-4cb9-baf9-12854aba5016", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionn_arrivals_basematched_stop_namematched_stop_idmatched_n_routes
37Alameda & San Fernandowestbound24Alameda / San Fernando180091
36Alameda & San Fernandoeastbound62San Fernando / Alameda54531
19Amherst Dr / San Fernandowestbound102San Fernando / Scott123482
18Amherst Dr / San Fernandoeastbound96San Fernando / Amherst38652
13Empire & Buena Vistaeastbound96Empire / Buena Vista18172
17Empire & Grismerwestbound102San Fernando / Grismer123462
16Empire & Grismereastbound96San Fernando / Grismer38682
12Empire & Ontarioeastbound51Empire & Ontario30674571
15Empire & Valpredawestbound102Empire / Valpreda46352
14Empire & Valpredaeastbound96Empire / Valpreda12492
\n", + "
" + ], + "text/plain": [ + " stop_name direction n_arrivals_base \\\n", + "37 Alameda & San Fernando westbound 24 \n", + "36 Alameda & San Fernando eastbound 62 \n", + "19 Amherst Dr / San Fernando westbound 102 \n", + "18 Amherst Dr / San Fernando eastbound 96 \n", + "13 Empire & Buena Vista eastbound 96 \n", + "17 Empire & Grismer westbound 102 \n", + "16 Empire & Grismer eastbound 96 \n", + "12 Empire & Ontario eastbound 51 \n", + "15 Empire & Valpreda westbound 102 \n", + "14 Empire & Valpreda eastbound 96 \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \n", + "37 Alameda / San Fernando 18009 1 \n", + "36 San Fernando / Alameda 5453 1 \n", + "19 San Fernando / Scott 12348 2 \n", + "18 San Fernando / Amherst 3865 2 \n", + "13 Empire / Buena Vista 1817 2 \n", + "17 San Fernando / Grismer 12346 2 \n", + "16 San Fernando / Grismer 3868 2 \n", + "12 Empire & Ontario 3067457 1 \n", + "15 Empire / Valpreda 4635 2 \n", + "14 Empire / Valpreda 1249 2 " + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_orange[['stop_name', 'direction', 'n_arrivals_base', 'matched_stop_name', 'matched_stop_id', 'matched_n_routes',]].sort_values('stop_name').head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "51ba1872-0315-4e91-ac93-1e4512191513", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionn_arrivals_basematched_stop_namematched_stop_idmatched_n_routes
8Alameda & Keystoneeastbound18Buena Vista / Alameda158401
35Alameda & Keystonewestbound18Buena Vista / Alameda158401
4Alameda & Lakeeastbound23Alameda / Lake181191
31Alameda & Lakewestbound24Alameda / Lake180751
32Alameda & Mainwestbound392Cesar E Chavez / Alameda92184
5Alameda & Maineastbound392Cesar E Chavez / Alameda92184
6Alameda & Mariposaeastbound24Victory / Alameda180761
33Alameda & Mariposawestbound18Olive / Reese180711
7Alameda & Reeseeastbound18Olive / Parish180701
34Alameda & Reesewestbound18Olive / Keystone180691
30Alameda & San Fernandowestbound24Alameda / San Fernando180091
3Alameda & San Fernandoeastbound62San Fernando / Alameda54531
\n", + "
" + ], + "text/plain": [ + " stop_name direction n_arrivals_base \\\n", + "8 Alameda & Keystone eastbound 18 \n", + "35 Alameda & Keystone westbound 18 \n", + "4 Alameda & Lake eastbound 23 \n", + "31 Alameda & Lake westbound 24 \n", + "32 Alameda & Main westbound 392 \n", + "5 Alameda & Main eastbound 392 \n", + "6 Alameda & Mariposa eastbound 24 \n", + "33 Alameda & Mariposa westbound 18 \n", + "7 Alameda & Reese eastbound 18 \n", + "34 Alameda & Reese westbound 18 \n", + "30 Alameda & San Fernando westbound 24 \n", + "3 Alameda & San Fernando eastbound 62 \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \n", + "8 Buena Vista / Alameda 15840 1 \n", + "35 Buena Vista / Alameda 15840 1 \n", + "4 Alameda / Lake 18119 1 \n", + "31 Alameda / Lake 18075 1 \n", + "32 Cesar E Chavez / Alameda 9218 4 \n", + "5 Cesar E Chavez / Alameda 9218 4 \n", + "6 Victory / Alameda 18076 1 \n", + "33 Olive / Reese 18071 1 \n", + "7 Olive / Parish 18070 1 \n", + "34 Olive / Keystone 18069 1 \n", + "30 Alameda / San Fernando 18009 1 \n", + "3 San Fernando / Alameda 5453 1 " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_blue[['stop_name', 'direction', 'n_arrivals_base', 'matched_stop_name', 'matched_stop_id', 'matched_n_routes',]].sort_values('stop_name').head(12)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "a6c6c192-f74a-4585-bf29-ce12e2105574", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Glenoaks & Providencia', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks / Alameda', 'eastbound', 'adding_existing'),\n", + " ('Alameda & San Fernando', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks & Providencia', 'westbound', 'adding_existing'),\n", + " ('Glenoaks / Alameda', 'westbound', 'adding_existing'),\n", + " ('Alameda & San Fernando', 'westbound', 'adding_existing')]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "orange_stops = set(zip(df_new_orange['stop_name'], df_new_orange['direction'], df_new_orange['change_type'], ))\n", + "blue_stops = set(zip(df_new_blue['stop_name'], df_new_blue['direction'], df_new_blue['change_type']))\n", + "\n", + "common_stops = orange_stops & blue_stops\n", + "list(common_stops)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "44a78d88-5ee2-4476-bad6-077dc5a1c56b", + "metadata": {}, + "outputs": [], + "source": [ + "df_new_orange['source'] = 'orange'\n", + "df_new_blue['source'] = 'blue'" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "6eb322ad-e81d-43c7-aa40-4eaa6b129d2c", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined = pd.concat([df_new_orange, df_new_blue], ignore_index=True)\n", + "df_combined = df_combined[\n", + " df_combined['change_type'].isin(['new_stop', 'adding_existing'])\n", + "].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "056af27d-c6b4-4e2f-8675-69c7c44668a6", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['key'] = list(zip(\n", + " df_combined['stop_name'],\n", + " df_combined['direction'],\n", + " df_combined['change_type']\n", + "))\n", + "\n", + "df_combined['is_common'] = df_combined['key'].isin(common_stops)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "53fcc11a-5a46-45eb-a58f-69fca23554d3", + "metadata": {}, + "outputs": [], + "source": [ + "# REMOVE duplicate rows for common stops\n", + "df_combined = (\n", + " df_combined\n", + " .sort_values('source') # keeps orange if duplicate exists\n", + " .drop_duplicates(subset=['key'], keep='first')\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "f706ac72-936a-46fa-8994-908e72968689", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['n_routes_base'] = np.where(\n", + " df_combined['change_type'] == 'new_stop',\n", + " 0,\n", + " df_combined['n_routes_base']\n", + ")\n", + "\n", + "df_combined['n_routes_scn'] = np.where(\n", + " df_combined['change_type'] == 'new_stop',\n", + " 1,\n", + " df_combined['n_routes_base'] + 1\n", + ")\n", + "\n", + "# instead of forcing 2, increment properly\n", + "df_combined.loc[\n", + " df_combined['is_common'] & (df_combined['change_type'] == 'adding_existing'),\n", + " 'n_routes_scn'\n", + "] += 1\n" + ] + }, + { + "cell_type": "markdown", + "id": "64cf3875-a0cc-43e9-a19b-b36252fbbd9f", + "metadata": {}, + "source": [ + "Orange route currently has 51 arrivals; Proposed Blue Routes service :would operate every 20 minutes from 6:00am to 8:00pm, Monday through Friday = 43 arrivals per day." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "93666c83-c8be-4e00-b455-005fa305e6aa", + "metadata": {}, + "outputs": [], + "source": [ + "# apply base reset\n", + "is_new = df_combined['change_type'] == 'new_stop'\n", + "df_combined.loc[is_new, 'n_arrivals_base'] = 0\n", + "\n", + "# define correct increment\n", + "increment = np.where(\n", + " df_combined['is_common'],\n", + " 94, \n", + " df_combined['source'].map({'orange': 51, 'blue': 43})\n", + ")\n", + "\n", + "# final calculation \n", + "df_combined['n_arrivals_scn'] = df_combined['n_arrivals_base'] + increment\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "ce8299ba-8b45-4449-913c-5f1138e9a9ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_idbuffertotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjn_arrivalsn_routesn_routes_basenearest_stop_distance_mmatched_feed_keymatched_stop_namematched_stop_idmatched_n_routesmatched_agency_namen_arrivals_basesourcekeyis_commonn_routes_scnn_arrivals_scn
45Alameda & Maineastboundnew_stopAlameda & Main eastbound34.058825-118.237278POINT (385815.509 3769368.949)new_6POLYGON ((386220.181 3769368.949, 386218.233 3...4217.842162139.410239586.593147428.3096061993.392782NaNNaN094.9386468d9623a1823a27925b7e2f00e44fc5bbCesar E Chavez / Alameda921848d9623a1823a27925b7e2f00e44fc5bb0blue(Alameda & Main, eastbound, new_stop)False143
66Verdugo & Ikea Waywestboundadding_existingVerdugo & Ikea Way westbound34.177147-118.307473POINT (379505.037 3782570.325)new_27POLYGON ((379909.709 3782570.325, 379907.761 3...2363.59648969.808219432.243641247.9541901308.536414NaNNaN69.4068208d9623a1823a27925b7e2f00e44fc5bbVerdugo / Ikea168268d9623a1823a27925b7e2f00e44fc5bb217blue(Verdugo & Ikea Way, westbound, adding_existing)False7260
65Cohasset & Bloomingtoneastboundnew_stopCohasset & Bloomington eastbound34.206547-118.345238POINT (376067.409 3785875.904)new_26POLYGON ((376472.081 3785875.904, 376470.133 3...1353.34812314.113858241.864080130.031029661.384824NaNNaN0290.1600708d9623a1823a27925b7e2f00e44fc5bbGlenoaks / Cabrini1076018d9623a1823a27925b7e2f00e44fc5bb0blue(Cohasset & Bloomington, eastbound, new_stop)False143
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "45 Alameda & Main eastbound new_stop \n", + "66 Verdugo & Ikea Way westbound adding_existing \n", + "65 Cohasset & Bloomington eastbound new_stop \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "45 Alameda & Main eastbound 34.058825 -118.237278 \n", + "66 Verdugo & Ikea Way westbound 34.177147 -118.307473 \n", + "65 Cohasset & Bloomington eastbound 34.206547 -118.345238 \n", + "\n", + " pt_geom stop_id \\\n", + "45 POINT (385815.509 3769368.949) new_6 \n", + "66 POINT (379505.037 3782570.325) new_27 \n", + "65 POINT (376067.409 3785875.904) new_26 \n", + "\n", + " buffer total_pop_adj \\\n", + "45 POLYGON ((386220.181 3769368.949, 386218.233 3... 4217.842162 \n", + "66 POLYGON ((379909.709 3782570.325, 379907.761 3... 2363.596489 \n", + "65 POLYGON ((376472.081 3785875.904, 376470.133 3... 1353.348123 \n", + "\n", + " workers_with_no_car_adj total_seniors_adj total_youth_adj \\\n", + "45 139.410239 586.593147 428.309606 \n", + "66 69.808219 432.243641 247.954190 \n", + "65 14.113858 241.864080 130.031029 \n", + "\n", + " inc_total_lowincome_adj n_arrivals n_routes n_routes_base \\\n", + "45 1993.392782 NaN NaN 0 \n", + "66 1308.536414 NaN NaN 6 \n", + "65 661.384824 NaN NaN 0 \n", + "\n", + " nearest_stop_distance_m matched_feed_key \\\n", + "45 94.938646 8d9623a1823a27925b7e2f00e44fc5bb \n", + "66 9.406820 8d9623a1823a27925b7e2f00e44fc5bb \n", + "65 290.160070 8d9623a1823a27925b7e2f00e44fc5bb \n", + "\n", + " matched_stop_name matched_stop_id matched_n_routes \\\n", + "45 Cesar E Chavez / Alameda 9218 4 \n", + "66 Verdugo / Ikea 1682 6 \n", + "65 Glenoaks / Cabrini 10760 1 \n", + "\n", + " matched_agency_name n_arrivals_base source \\\n", + "45 8d9623a1823a27925b7e2f00e44fc5bb 0 blue \n", + "66 8d9623a1823a27925b7e2f00e44fc5bb 217 blue \n", + "65 8d9623a1823a27925b7e2f00e44fc5bb 0 blue \n", + "\n", + " key is_common n_routes_scn \\\n", + "45 (Alameda & Main, eastbound, new_stop) False 1 \n", + "66 (Verdugo & Ikea Way, westbound, adding_existing) False 7 \n", + "65 (Cohasset & Bloomington, eastbound, new_stop) False 1 \n", + "\n", + " n_arrivals_scn \n", + "45 43 \n", + "66 260 \n", + "65 43 " + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_combined.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "0fda613d-8e5a-41cb-b13e-88b4cbe37803", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['stop_group'] = df_combined['stop_name']\n", + "\n", + "df_grouped = df_combined.groupby('stop_group').agg({\n", + " 'n_arrivals_base': 'mean',\n", + " 'n_arrivals_scn': 'mean',\n", + " 'n_routes_base': 'mean',\n", + " 'n_routes_scn': 'mean',\n", + " 'total_pop_adj': 'mean',\n", + " 'workers_with_no_car_adj': 'mean',\n", + " 'total_youth_adj': 'mean',\n", + " 'total_seniors_adj': 'mean',\n", + " 'inc_total_lowincome_adj': 'mean',\n", + " 'change_type': lambda x: ', '.join(sorted(x.unique()))\n", + "}).reset_index()\n", + "\n", + "\n", + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\",\n", + " \"New BUR terminal\",\n", + " \n", + "]\n", + "\n", + "df_grouped[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_grouped.loc[\n", + " df_grouped[\"stop_group\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "2d549fe3-0f2e-4c5d-ac6f-dc323b2a6a69", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn = df_grouped[[\n", + " 'n_routes_scn',\n", + " 'n_arrivals_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'has_rail_connection_dummy'\n", + "]].copy()\n", + "\n", + "\n", + "\n", + "X_scn = X_scn.rename(columns={\n", + " 'n_routes_scn': 'n_routes',\n", + " 'n_arrivals_scn': 'n_arrivals'\n", + " \n", + "})\n", + "X_scn[\"log_arrivals\"] = np.log(X_scn[\"n_arrivals\"] + 1)\n", + "\n", + "X_scn = sm.add_constant(X_scn)\n", + "X_scn = X_scn[model_fe.model.exog_names]\n", + "df_grouped['pred_scenario'] = model_fe.predict(X_scn)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "cd3a3883-8f57-446e-af8b-573d098b1abb", + "metadata": {}, + "outputs": [], + "source": [ + "X_base = df_grouped[[\n", + " 'n_routes_base',\n", + " 'n_arrivals_base',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'has_rail_connection_dummy'\n", + "]].fillna(0)\n", + "\n", + "X_base = X_base.rename(columns={\n", + " 'n_routes_base': 'n_routes',\n", + " 'n_arrivals_base': 'n_arrivals'\n", + "})\n", + "\n", + "X_base[\"log_arrivals\"] = np.log(X_base[\"n_arrivals\"] + 1)\n", + "\n", + "X_base = sm.add_constant(X_base)\n", + "X_base = X_base[model_fe.model.exog_names]\n", + "df_grouped['pred_baseline'] = model_fe.predict(X_base)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "d9e988f3-6498-4935-9f17-f748ec9e8696", + "metadata": {}, + "outputs": [], + "source": [ + "df_grouped_filtered = df_grouped[['stop_group', 'pred_scenario', 'pred_baseline']]" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "2c06491c-a865-4398-a85e-ba5c661b9b86", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_grouppred_scenariopred_baseline
0Alameda & Keystone2.247692e+000.045739
1Alameda & Lake2.832848e-011.411533
2Alameda & Main6.417771e+011.305982
3Alameda & Mariposa2.251695e+000.045821
4Alameda & Reese2.247692e+000.045739
5Alameda & San Fernando1.649282e-022.367431
6Alameda / Buena Vista7.747645e-013.159633
7Amherst Dr / San Fernando3.679078e+000.053735
8Buena Vista & Burbank3.454957e-010.395730
9Buena Vista & Chandler1.138599e+000.023170
10Buena Vista & Clark2.395671e+000.048751
11Buena Vista & Empire1.830626e+000.037252
12Buena Vista & Jeffries1.962141e+000.039929
13Buena Vista & Magnolia1.656941e+000.033718
14Buena Vista & Olive1.915328e-011.408346
15Buena Vista & Pacific8.400052e-014.615643
16Buena Vista & Thorton1.495924e+000.030441
17Buena Vista & Tulare3.175109e+000.064612
18Buena Vista & Verdugo2.482731e+000.050522
19Buena Vista & Victory2.108070e+000.042898
20Buena Vista & Winona2.011961e+000.040942
21Cohasset & Bloomington2.465272e+000.050167
22Empire & Buena Vista1.455521e-020.234425
23Empire & Grismer1.036049e-020.170343
24Empire & Ontario3.160176e-013.031635
25Empire & Valpreda1.249467e-020.205432
26Flower & Alameda2.453894e-010.952148
27Glenoaks & Bethany1.473035e+0013.317715
28Glenoaks & Cypress7.579348e-016.852489
29Glenoaks & Fairmount1.021516e+009.235528
30Glenoaks & Magnolia1.410688e+0012.754033
31Glenoaks & Olive5.028226e+010.734403
32Glenoaks & Providencia2.776483e-030.802066
33Glenoaks & Verdugo1.899957e-012.722889
34Glenoaks / Alameda7.746335e-040.226880
35Glenoaks / Buena Vista3.090989e+000.062900
36Glenoaks / Cohasset1.288503e+006.420266
37Hollywood & Jeffries2.358757e-011.324904
38Hollywood & Pacific2.588501e-011.453950
39Hollywood & Thorton2.715920e-040.003946
40Hollywood & Valhalla2.309416e-011.346507
41Hollywood & Victory Bl3.872203e-013.714700
42New BUR terminal1.458051e+010.212957
43Verdugo & Ikea Way9.301221e-080.000002
44Verdugo & San Fernando2.925844e+003.977641
45Winona / Ontario2.560829e+000.037402
\n", + "
" + ], + "text/plain": [ + " stop_group pred_scenario pred_baseline\n", + "0 Alameda & Keystone 2.247692e+00 0.045739\n", + "1 Alameda & Lake 2.832848e-01 1.411533\n", + "2 Alameda & Main 6.417771e+01 1.305982\n", + "3 Alameda & Mariposa 2.251695e+00 0.045821\n", + "4 Alameda & Reese 2.247692e+00 0.045739\n", + "5 Alameda & San Fernando 1.649282e-02 2.367431\n", + "6 Alameda / Buena Vista 7.747645e-01 3.159633\n", + "7 Amherst Dr / San Fernando 3.679078e+00 0.053735\n", + "8 Buena Vista & Burbank 3.454957e-01 0.395730\n", + "9 Buena Vista & Chandler 1.138599e+00 0.023170\n", + "10 Buena Vista & Clark 2.395671e+00 0.048751\n", + "11 Buena Vista & Empire 1.830626e+00 0.037252\n", + "12 Buena Vista & Jeffries 1.962141e+00 0.039929\n", + "13 Buena Vista & Magnolia 1.656941e+00 0.033718\n", + "14 Buena Vista & Olive 1.915328e-01 1.408346\n", + "15 Buena Vista & Pacific 8.400052e-01 4.615643\n", + "16 Buena Vista & Thorton 1.495924e+00 0.030441\n", + "17 Buena Vista & Tulare 3.175109e+00 0.064612\n", + "18 Buena Vista & Verdugo 2.482731e+00 0.050522\n", + "19 Buena Vista & Victory 2.108070e+00 0.042898\n", + "20 Buena Vista & Winona 2.011961e+00 0.040942\n", + "21 Cohasset & Bloomington 2.465272e+00 0.050167\n", + "22 Empire & Buena Vista 1.455521e-02 0.234425\n", + "23 Empire & Grismer 1.036049e-02 0.170343\n", + "24 Empire & Ontario 3.160176e-01 3.031635\n", + "25 Empire & Valpreda 1.249467e-02 0.205432\n", + "26 Flower & Alameda 2.453894e-01 0.952148\n", + "27 Glenoaks & Bethany 1.473035e+00 13.317715\n", + "28 Glenoaks & Cypress 7.579348e-01 6.852489\n", + "29 Glenoaks & Fairmount 1.021516e+00 9.235528\n", + "30 Glenoaks & Magnolia 1.410688e+00 12.754033\n", + "31 Glenoaks & Olive 5.028226e+01 0.734403\n", + "32 Glenoaks & Providencia 2.776483e-03 0.802066\n", + "33 Glenoaks & Verdugo 1.899957e-01 2.722889\n", + "34 Glenoaks / Alameda 7.746335e-04 0.226880\n", + "35 Glenoaks / Buena Vista 3.090989e+00 0.062900\n", + "36 Glenoaks / Cohasset 1.288503e+00 6.420266\n", + "37 Hollywood & Jeffries 2.358757e-01 1.324904\n", + "38 Hollywood & Pacific 2.588501e-01 1.453950\n", + "39 Hollywood & Thorton 2.715920e-04 0.003946\n", + "40 Hollywood & Valhalla 2.309416e-01 1.346507\n", + "41 Hollywood & Victory Bl 3.872203e-01 3.714700\n", + "42 New BUR terminal 1.458051e+01 0.212957\n", + "43 Verdugo & Ikea Way 9.301221e-08 0.000002\n", + "44 Verdugo & San Fernando 2.925844e+00 3.977641\n", + "45 Winona / Ontario 2.560829e+00 0.037402" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_grouped_filtered" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "fda44ec2-62d7-4809-b43c-bd287cf58443", + "metadata": {}, + "outputs": [], + "source": [ + "df_grouped['ridership_change'] = (\n", + " df_grouped['pred_scenario'] - df_grouped['pred_baseline']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "3d9b05ae-b0bc-495e-a4fd-4d390f7185ee", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "225.40909090909093" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_baseline= df_burbank[\"average_daily_boardings\"].sum()\n", + "ridership_baseline" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "df1ef47c-f029-4ceb-b197-65ab044d8f5e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc8AAAF2CAYAAAAIvROWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAR55JREFUeJzt3XdYFNf7NvB7AVlAmjQBRVDUWLFgNJYoCJFil1hQYy+xRokxGpPYElETFWP9xoI9dtFoxFiwgNgFY0eDorGiAoKytPP+4cv8XBd0RxcBuT/XtZfsmTMzz4y7e+/UVQghBIiIiEhreoVdABERUXHD8CQiIpKJ4UlERCQTw5OIiEgmhicREZFMDE8iIiKZGJ5EREQyMTyJiIhkYngSERHJxPAswVxcXNCnTx/p+cGDB6FQKHDw4MFCq4ne3ooVK6BQKHDjxo1Cmb+Hhwc8PDze2K8wX2cuLi5o06bNG/sVVI2pqamws7PD2rVrdTpdXerTpw9MTU3fevxXP1d0LTw8HKampnj48GGBzUMbDM8CkvtB9vLDzs4Onp6e2L17d2GXV+Lk5ORg1apVaNSoEaysrGBmZoaqVauiV69eOHbsWGGXVyS9+ho2MDBAuXLl0KdPH/z333+FXV6xNHfuXJiZmaFbt24AgJkzZ0KhUODs2bNq/YQQKFOmDBQKBeLj49WGpaenQ6lUonv37u+t7qLE19cXlStXRnBwcKHWYVCocy8BpkyZgooVK0IIgfv372PFihXw9/fHn3/+qdU34PepefPmeP78OQwNDQu7FJ0bOXIkFixYgPbt26NHjx4wMDDAlStXsHv3blSqVAmffPJJYZf4zr744gt069YNSqVSp9PNfQ2np6fj2LFjWLFiBSIjI3H+/HkYGRlJ/f7++2+dzrcwFcR7ITMzE3PnzsXo0aOhr68PAGjWrBkAIDIyEvXq1ZP6XrhwAUlJSTAwMEBUVBQqVqwoDTt58iQyMjKkcUuiwYMHY8yYMZg8eTLMzMwKpQaGZwHz8/NDgwYNpOf9+/dH2bJl8ccffxS58NTT01P7MPxQ3L9/HwsXLsTAgQPx+++/qw0LCQkp9N0/7yotLQ2lS5eGvr6+9KGsSy+/hgcMGAAbGxvMmDEDO3bsQJcuXaR+hfWlK3f5dakg3gs7d+7Ew4cP1dZZgwYNYGRkhMjISIwYMUJqj4qKgrW1NRo0aIDIyEj07NlTGhYZGQkAJTo8AwICMGLECGzatAn9+vUrlBq42/Y9s7S0hLGxMQwM1L+3/Prrr2jSpAmsra1hbGwMd3d3bN68WWP8vXv3olmzZrC0tISpqSk++ugjfPfdd2p9VCoVJk6ciMqVK0OpVMLJyQljx46FSqV6bW15Hefx8PBArVq1cPHiRXh6esLExATlypXDzJkzNcZ/2/kOHz4cpqamePbsmcawwMBA2NvbIzs7GwBw6tQp+Pj4wMbGBsbGxqhYseIb3zzx8fEQQqBp06Yaw3J3p78sKSkJo0ePhouLC5RKJcqXL49evXohMTFR9rIqFAoMHz4cYWFhqFWrFpRKJWrWrInw8HC1fjdv3sTQoUPx0UcfwdjYGNbW1ujcubPG8cvcXamHDh3C0KFDYWdnh/Lly6sNe3WchQsXombNmlAqlXB0dMSwYcOQlJT02nX2Op9++ikA4Pr162rteR3zvH37Njp06IDSpUvDzs4Oo0ePzvf1cPz4cfj6+sLCwgImJiZo0aIFoqKi1PpMmjQJCoUCFy9eRPfu3VGmTBkpRO7du4e+ffuifPnyUCqVcHBwQPv27fM8BhwZGYmGDRvCyMgIlSpVwqpVq9SGv+69cPr0aTRp0kR6/S1evFib1YawsDC4uLjA1dVVajM0NMTHH3+ssZxRUVFo3LgxmjZtmucwS0tL1KpVC8CLQxIhISGoWbMmjIyMULZsWQwePBhPnjzRqGH37t349NNPUbp0aZiZmaF169a4cOHCG2uPiYmBra0tPDw8kJqaCuDFruWffvoJ5cuXh4mJCTw9PfOc1uPHjzFmzBjUrl0bpqamMDc3h5+fH2JjY6U+qampKF26NL766iuN8W/fvg19fX213bR2dnZwc3PD9u3b31h7QeGWZwFLTk5GYmIihBB48OAB5s2bh9TUVLVvksCLYyHt2rVDjx49kJGRgfXr16Nz587YuXMnWrduDeDFrpw2bdrAzc0NU6ZMgVKpxLVr19TeXDk5OWjXrh0iIyMxaNAgVK9eHf/88w/mzJmDq1evIiwsTPYyPHnyBL6+vujUqRO6dOmCzZs349tvv0Xt2rXh5+f3zvPt2rUrFixYgF27dqFz585S+7Nnz/Dnn3+iT58+0NfXx4MHD9CqVSvY2tpi3LhxsLS0xI0bN7B169bX1u/s7AwA2LRpEzp37gwTE5N8+6ampuLTTz/FpUuX0K9fP9SvXx+JiYnYsWMHbt++DRsbG9nLGhkZia1bt2Lo0KEwMzPDb7/9hoCAACQkJMDa2hrAi11xR48eRbdu3VC+fHncuHEDixYtgoeHBy5evKhR89ChQ2Fra4sff/wRaWlp+S7PpEmTMHnyZHh7e2PIkCG4cuUKFi1ahJMnTyIqKgqlSpV67brLS24YlSlT5rX9nj9/Di8vLyQkJGDkyJFwdHTE6tWrceDAAY2+Bw4cgJ+fH9zd3TFx4kTo6ekhNDQULVu2xJEjR9CwYUO1/p07d0aVKlUwbdo05P6qYkBAAC5cuIARI0bAxcUFDx48wN69e5GQkAAXFxdp3GvXruHzzz9H//790bt3byxfvhx9+vSBu7s7atas+dplevLkCfz9/dGlSxcEBgZi48aNGDJkCAwNDd/4Je7o0aOoX7++RnuzZs1w5MgR3LhxQ6ozKioKAwYMQMOGDTFx4kQkJSXB0tISQggcPXoUjRs3hp7ei22fwYMHY8WKFejbty9GjhyJ+Ph4zJ8/H2fPnlX7P169ejV69+4NHx8fzJgxA8+ePcOiRYvQrFkznD17Vm0dvezkyZPw8fFBgwYNsH37dhgbGwMAfvzxR/z000/w9/eHv78/zpw5g1atWiEjI0Nt/H///RdhYWHo3LkzKlasiPv37+N///sfWrRogYsXL8LR0RGmpqbo2LEjNmzYgNmzZ6vtQfnjjz8ghECPHj3Upuvu7v5Wn2c6I6hAhIaGCgAaD6VSKVasWKHR/9mzZ2rPMzIyRK1atUTLli2ltjlz5ggA4uHDh/nOd/Xq1UJPT08cOXJErX3x4sUCgIiKipLanJ2dRe/evaXnERERAoCIiIiQ2lq0aCEAiFWrVkltKpVK2Nvbi4CAgLea76tycnJEuXLl1KYnhBAbN24UAMThw4eFEEJs27ZNABAnT57Md1r56dWrlwAgypQpIzp27Ch+/fVXcenSJY1+P/74owAgtm7dmmedcpcVgDA0NBTXrl2T2mJjYwUAMW/ePKnt1f9/IYSIjo7WWPe5r6tmzZqJrKwstf65w+Lj44UQQjx48EAYGhqKVq1aiezsbKnf/PnzBQCxfPnyPNfVq9Pbt2+fePjwobh165bYvHmzsLW1FUqlUty6dUutf4sWLUSLFi2k5yEhIQKA2Lhxo9SWlpYmKleurPY6y8nJEVWqVBE+Pj7SOs5dJxUrVhSfffaZ1DZx4kQBQAQGBqrN+8mTJwKA+OWXX167TM7Ozmqvqdz1pFQqxddffy21ve69MGvWLKlNpVKJunXrCjs7O5GRkZHvfDMzM4VCoVCbR65du3YJAGL16tVCCCHu3r0rAIhDhw6Jp0+fCn19fbFr1y4hhBDnz58XAMTPP/8shBDiyJEjAoBYu3at2jTDw8PV2p8+fSosLS3FwIED1frdu3dPWFhYqLX37t1blC5dWgghRGRkpDA3NxetW7cW6enpauvM0NBQtG7dWu3/7LvvvhMA1D5X0tPT1V5/QggRHx8vlEqlmDJlitS2Z88eAUDs3r1bra+bm5va6yrXtGnTBABx//59jWHvA3fbFrAFCxZg79692Lt3L9asWQNPT08MGDBAY2sp99sc8OLbbXJyMj799FOcOXNGare0tAQAbN++HTk5OXnOb9OmTahevTqqVauGxMRE6dGyZUsAQEREhOxlMDU1VdtSNjQ0RMOGDfHvv//qZL4KhQKdO3fGX3/9Je0SAoANGzagXLly0m653OXfuXMnMjMzZS1DaGgo5s+fj4oVK2Lbtm0YM2YMqlevDi8vL7UzR7ds2YI6deqgY8eOedb5Nsvq7e2ttqvOzc0N5ubmauvv5f//zMxMPHr0CJUrV4alpaXaayDXwIED33h8c9++fcjIyMCoUaOkrZTccc3NzbFr167Xjv9y/ba2tnBycsLnn3+O0qVLY8eOHdLu4vz89ddfcHBwwOeffy61mZiYYNCgQWr9YmJiEBcXh+7du+PRo0fS+kxLS4OXlxcOHz6s8Xr/8ssv1Z4bGxvD0NAQBw8ezHN35ctq1Kgh7XoGAFtbW3z00Udq/x/5MTAwwODBg6XnhoaGGDx4MB48eIDTp0/nO97jx4+lM2hf1aRJE+jp6UnHMnO3Fj/++GOYmprCzc1N2ruU+2/ue2LTpk2wsLDAZ599pvZadHd3h6mpqfRa3Lt3L5KSkhAYGKjWT19fH40aNcrz/RkREQEfHx94eXlh69ataiei5b62RowYIb0vAGDUqFEa01EqldLrLzs7G48ePZIOOb382vb29oajo6PaZTznz5/HuXPnNPbUAf+35+PlwynvE8OzgDVs2BDe3t7w9vZGjx49sGvXLtSoUQPDhw9X272xc+dOfPLJJzAyMoKVlRVsbW2xaNEiJCcnS326du2Kpk2bYsCAAShbtiy6deuGjRs3qn2wxMXF4cKFC7C1tVV7VK1aFQDw4MED2ctQvnx5tTcI8OKF+/KH1LvOt2vXrnj+/Dl27NgB4MXu07/++gudO3eW5t2iRQsEBARg8uTJsLGxQfv27REaGvrGY6rAixNAhg0bhtOnTyMxMRHbt2+Hn58fDhw4IF02ALw4jpd7LCk/cpe1QoUKGtN4df09f/4cP/74I5ycnKBUKmFjYwNbW1skJSWpvQZyvXz2ZX5u3rwJAPjoo4/U2g0NDVGpUiVp+JvkfgHcvHkz/P39kZiYqNUZvTdv3kTlypU1Xjuv1hMXFwcA6N27t8Y6Xbp0KVQqlcY6eHX5lUolZsyYgd27d6Ns2bJo3rw5Zs6ciXv37mnUpc3/R34cHR01Tk7K/X/X5vpa8f93Mb/M0tISNWvWVAvIevXqSV+omjRpojYs98sr8GLdJScnw87OTmPdpaamSq/F3HXcsmVLjX5///23xms2PT0drVu3Rr169bBx40aNk8FyXztVqlRRa7e1tdX4gpCTk4M5c+agSpUqaq/tc+fOqf2/6unpoUePHggLC5POf1i7di2MjIzUDue8ui5ffX29Lzzm+Z7p6enB09MTc+fORVxcHGrWrIkjR46gXbt2aN68ORYuXAgHBweUKlUKoaGhWLdunTSusbExDh8+jIiICOzatQvh4eHYsGEDWrZsib///hv6+vrIyclB7dq1MXv27Dzn7+TkJLvm/LZwXv4geNf5fvLJJ3BxccHGjRvRvXt3/Pnnn3j+/Dm6du0q9VEoFNi8eTOOHTuGP//8E3v27EG/fv0wa9YsHDt2TOsLu62trdGuXTu0a9cOHh4eOHToEG7evCkdG30TucuqzfobMWIEQkNDMWrUKDRu3BgWFhZQKBTo1q1bnnsZXt5SLWgNGzaUzrbt0KEDmjVrhu7du+PKlSvvdDF9rtzl++WXX1C3bt08+7w6n7yWf9SoUWjbti3CwsKwZ88e/PDDDwgODsaBAwfULgPR5v9D16ysrKBQKPIN6GbNmmHx4sVISkpCVFQUmjRpIg1r0qQJli9fjszMTERGRsLd3V06EzgnJ+e1N12wtbWV+gEvjnva29tr9Hv1BEalUgl/f39s374d4eHh73RlwLRp0/DDDz+gX79+mDp1KqysrKCnp4dRo0ZpvLZ79eqFX375BWFhYQgMDMS6devQpk0bWFhYaEw3d13a2Ni8dW3vguFZCLKysgBA2kW5ZcsWGBkZYc+ePWrf6ENDQzXG1dPTg5eXF7y8vDB79mxMmzYNEyZMQEREhLR7MDY2Fl5eXu/1G5ku5tulSxfMnTsXKSkp2LBhA1xcXPK8/vKTTz7BJ598gp9//hnr1q1Djx49sH79egwYMED2PBs0aIBDhw7h7t27cHZ2hqurK86fP//acQpiHW/evBm9e/fGrFmzpLb09PR3Ois298vAlStXUKlSJak9IyMD8fHx8Pb2lj3N3LMePT09MX/+fIwbN+618z9//jyEEGrr6cqVK2r9cndpm5ubv1VNr07r66+/xtdff424uDjUrVsXs2bNwpo1a95purnu3LmjcWnM1atXASDfE26AF+Hk6uqqccODXM2aNcOiRYuwb98+nD17Ft988400rEmTJnj+/Dl27dqFf//9FwEBAdIwV1dX7Nu3D02bNn3tF6rcdWxnZ6fVOlYoFFi7di3at2+Pzp07Y/fu3WpnUue+tuLi4tReWw8fPtT4grB582Z4enpi2bJlau1JSUkawVerVi3Uq1cPa9euRfny5ZGQkIB58+blWWN8fLy0FVsYuNv2PcvMzMTff/8NQ0NDVK9eHcCLDySFQiFdjgG82AX06plkjx8/1phe7jf13F2XXbp0wX///YclS5Zo9H3+/Plrz8x8F7qYb9euXaFSqbBy5UqEh4erXQ8HvPim+erWwavLn5d79+7h4sWLGu0ZGRnYv38/9PT0ULlyZQAvztiMjY3Ftm3bNPrnzrsg1rG+vr7Gss2bN0/tNSGXt7c3DA0N8dtvv6lNe9myZUhOTpbO4pbLw8MDDRs2REhICNLT0/Pt5+/vjzt37qhdcvXs2TONa23d3d3h6uqKX3/9Ve2Ydy5trsN99uyZRi2urq4wMzPTare+trKysvC///1Pep6RkYH//e9/sLW1hbu7+2vHbdy4MU6dOpXnsNxjmLNnz0ZmZqbalqeLiwscHByky8Nevr6zS5cuyM7OxtSpU/OsNffLl4+PD8zNzTFt2rQ8zxfIax0bGhpi69at+Pjjj9G2bVucOHFCGubt7Y1SpUph3rx5aq+tkJAQjenk9dretGlTvnep+uKLL/D3338jJCQE1tbW0hn9rzp9+jQaN26c57D3gVueBWz37t24fPkygBfHwtatW4e4uDiMGzcO5ubmAIDWrVtj9uzZ8PX1Rffu3fHgwQMsWLAAlStXxrlz56RpTZkyBYcPH0br1q3h7OyMBw8eYOHChShfvrz0hvriiy+wceNGfPnll4iIiEDTpk2RnZ2Ny5cvY+PGjdizZ4/aTRt0RRfzrV+/PipXrowJEyZApVKp7bIFgJUrV2LhwoXo2LEjXF1d8fTpUyxZsgTm5ubw9/fPd7q3b99Gw4YN0bJlS3h5ecHe3h4PHjzAH3/8gdjYWIwaNUr6BvzNN99g8+bN6Ny5M/r16wd3d3c8fvwYO3bswOLFi1GnTp0CWcdt2rTB6tWrYWFhgRo1aiA6Ohr79u2TLmV5G7a2thg/fjwmT54MX19ftGvXDleuXMHChQvx8ccf53kShra++eYbdO7cGStWrNA4eSfXwIEDMX/+fPTq1QunT5+Gg4MDVq9erXHZjZ6eHpYuXQo/Pz/UrFkTffv2Rbly5fDff/8hIiIC5ubm+PPPP19bz9WrV+Hl5YUuXbqgRo0aMDAwwLZt23D//n21Y9rvytHRETNmzMCNGzdQtWpVbNiwATExMfj999/feNlP+/btsXr1aly9elU6TpqrQoUKcHJyQnR0NFxcXODo6Kg2vEmTJtiyZQsUCoXa9cotWrTA4MGDERwcjJiYGLRq1QqlSpVCXFwcNm3ahLlz5+Lzzz+Hubk5Fi1ahC+++AL169dHt27dYGtri4SEBOzatQtNmzbF/PnzNWo2NjbGzp070bJlS/j5+eHQoUOoVasWbG1tMWbMGAQHB6NNmzbw9/fH2bNnsXv3bo2tyTZt2mDKlCno27cvmjRpgn/++Qdr165V22J9Wffu3TF27Fhs27YNQ4YMyXO9PnjwAOfOncOwYcNeu84LVKGc41sC5HWpipGRkahbt65YtGiR2undQgixbNkyUaVKFaFUKkW1atVEaGiodFp+rv3794v27dsLR0dHYWhoKBwdHUVgYKC4evWq2rQyMjLEjBkzRM2aNYVSqRRlypQR7u7uYvLkySI5OVnqp+2lKjVr1tRYvt69ewtnZ+e3mu/rTJgwQQAQlStX1hh25swZERgYKCpUqCCUSqWws7MTbdq0EadOnXrtNFNSUsTcuXOFj4+PKF++vChVqpQwMzMTjRs3FkuWLNH4v3j06JEYPny4KFeunDA0NBTly5cXvXv3FomJibKXFYAYNmyYRk2vrvsnT56Ivn37ChsbG2Fqaip8fHzE5cuXNfrlvq7yulzn1UtVcs2fP19Uq1ZNlCpVSpQtW1YMGTJEPHny5LXr7E3zys7OFq6ursLV1VW6ZObVS1WEEOLmzZuiXbt2wsTERNjY2IivvvpKuozi5deZEEKcPXtWdOrUSVhbWwulUimcnZ1Fly5dxP79+6U+ue+JVy/XSkxMFMOGDRPVqlUTpUuXFhYWFqJRo0Zql8kI8WK9t27dWmN5Xq39de+FU6dOicaNGwsjIyPh7Ows5s+f/7rVKFGpVMLGxkZMnTo1z+GBgYECgOjevbvGsNmzZwsAonr16nmO+/vvvwt3d3dhbGwszMzMRO3atcXYsWPFnTt31PpFREQIHx8fYWFhIYyMjISrq6vo06eP2nvo5UtVciUmJooaNWoIe3t7ERcXJ4R48RqYPHmycHBwEMbGxsLDw0OcP39e4zWbnp4uvv76a6lf06ZNRXR0dJ6vl1z+/v4CgDh69GiewxctWiRMTExESkpKnsPfB4UQBXiUnIjoA+Hh4YHExMQ3HhN/nalTpyI0NBRxcXEFcivFD0XHjh3xzz//4Nq1a3kOr1evHjw8PDBnzpz3XNn/4TFPIqL3ZPTo0UhNTcX69esLu5Qi6+7du9i1axe++OKLPIeHh4cjLi4O48ePf8+VqeMxTyKi98TU1PStrrUuCeLj4xEVFYWlS5eiVKlSajejeJmvr2+eJ5a9b9zyJCKiQnfo0CF88cUXiI+Px8qVK/O8HrUo4TFPIiIimbjlSUREJBPDk4iISCaeMIQX9328c+cOzMzMCu0mw0REVLiEEHj69CkcHR3VfokoLwxPvLhf5dvcMJ2IiD48t27deuNP7jE8AZiZmQF4scJyb5lHREQlS0pKCpycnKRMeB2GJ/7v9+DMzc0ZnkREJZw2h+94whAREZFMDE8iIiKZGJ5EREQyMTyJiIhkYngSERHJxPAkIiKSieFJREQkE8OTiIhIJoYnERGRTAxPIiIimRieREREMjE8iYiIZOKN4YmI3kKHNVcLuwR6RVjPqu9tXtzyJCIikonhSUREJBPDk4iISCaGJxERkUyFGp6HDx9G27Zt4ejoCIVCgbCwMLXhCoUiz8cvv/wi9XFxcdEYPn369Pe8JEREVJIUanimpaWhTp06WLBgQZ7D7969q/ZYvnw5FAoFAgIC1PpNmTJFrd+IESPeR/lERFRCFeqlKn5+fvDz88t3uL29vdrz7du3w9PTE5UqVVJrNzMz0+hLRERUUIrNMc/79+9j165d6N+/v8aw6dOnw9raGvXq1cMvv/yCrKysQqiQiIhKimJzk4SVK1fCzMwMnTp1UmsfOXIk6tevDysrKxw9ehTjx4/H3bt3MXv27HynpVKpoFKppOcpKSkFVjcREX14ik14Ll++HD169ICRkZFae1BQkPS3m5sbDA0NMXjwYAQHB0OpVOY5reDgYEyePLlA6yUiog9Xsdhte+TIEVy5cgUDBgx4Y99GjRohKysLN27cyLfP+PHjkZycLD1u3bqlw2qJiOhDVyy2PJctWwZ3d3fUqVPnjX1jYmKgp6cHOzu7fPsolcp8t0qJiIjepFDDMzU1FdeuXZOex8fHIyYmBlZWVqhQoQKAF8cjN23ahFmzZmmMHx0djePHj8PT0xNmZmaIjo7G6NGj0bNnT5QpU+a9LQcREZUshRqep06dgqenp/Q89/hl7969sWLFCgDA+vXrIYRAYGCgxvhKpRLr16/HpEmToFKpULFiRYwePVrtOCgREZGuKYQQorCLKGwpKSmwsLBAcnIyzM3NC7scIioG+JNkRc+7/iSZnCwoFicMERERFSUMTyIiIpkYnkRERDIxPImIiGRieBIREcnE8CQiIpKJ4UlERCQTw5OIiEgmhicREZFMDE8iIiKZGJ5EREQyMTyJiIhkYngSERHJxPAkIiKSieFJREQkE8OTiIhIJoYnERGRTAxPIiIimRieREREMjE8iYiIZGJ4EhERycTwJCIikonhSUREJBPDk4iISCaGJxERkUwMTyIiIpkYnkRERDIxPImIiGRieBIREcnE8CQiIpKpUMPz8OHDaNu2LRwdHaFQKBAWFqY2vE+fPlAoFGoPX19ftT6PHz9Gjx49YG5uDktLS/Tv3x+pqanvcSmIiKikKdTwTEtLQ506dbBgwYJ8+/j6+uLu3bvS448//lAb3qNHD1y4cAF79+7Fzp07cfjwYQwaNKigSyciohLMoDBn7ufnBz8/v9f2USqVsLe3z3PYpUuXEB4ejpMnT6JBgwYAgHnz5sHf3x+//vorHB0ddV4zERFRkT/mefDgQdjZ2eGjjz7CkCFD8OjRI2lYdHQ0LC0tpeAEAG9vb+jp6eH48eP5TlOlUiElJUXtQUREpK0iHZ6+vr5YtWoV9u/fjxkzZuDQoUPw8/NDdnY2AODevXuws7NTG8fAwABWVla4d+9evtMNDg6GhYWF9HBycirQ5SAiog9Loe62fZNu3bpJf9euXRtubm5wdXXFwYMH4eXl9dbTHT9+PIKCgqTnKSkpDFAiItJakd7yfFWlSpVgY2ODa9euAQDs7e3x4MEDtT5ZWVl4/PhxvsdJgRfHUc3NzdUeRERE2ipW4Xn79m08evQIDg4OAIDGjRsjKSkJp0+flvocOHAAOTk5aNSoUWGVSUREH7h32m1769YtAHjrXZ6pqanSViQAxMfHIyYmBlZWVrCyssLkyZMREBAAe3t7XL9+HWPHjkXlypXh4+MDAKhevTp8fX0xcOBALF68GJmZmRg+fDi6devGM22JiKjAyN7yzMrKwg8//AALCwu4uLjAxcUFFhYW+P7775GZmSlrWqdOnUK9evVQr149AEBQUBDq1auHH3/8Efr6+jh37hzatWuHqlWron///nB3d8eRI0egVCqlaaxduxbVqlWDl5cX/P390axZM/z+++9yF4uIiEhrsrc8R4wYga1bt2LmzJlo3LgxgBeXjEyaNAmPHj3CokWLtJ6Wh4cHhBD5Dt+zZ88bp2FlZYV169ZpPU8iIqJ3JTs8161bh/Xr16vd3MDNzQ1OTk4IDAyUFZ5ERETFkezdtkqlEi4uLhrtFStWhKGhoS5qIiIiKtJkh+fw4cMxdepUqFQqqU2lUuHnn3/G8OHDdVocERFRUSR7t+3Zs2exf/9+lC9fHnXq1AEAxMbGIiMjA15eXujUqZPUd+vWrbqrlIiIqIiQHZ6WlpYICAhQa+PdeYiIqCSRHZ6hoaEFUQcREVGxUazuMERERFQUaLXlWb9+fezfvx9lypRBvXr1oFAo8u175swZnRVHRERUFGkVnu3bt5fu6tOhQ4eCrIeIiKjI0yo8J06cmOffREREJdFb3xg+IyMDDx48QE5Ojlp7hQoV3rkoIiKiokx2eF69ehX9+/fH0aNH1dqFEFAoFMjOztZZcUREREWR7PDs27cvDAwMsHPnTjg4OLz25CEiIqIPkezwjImJwenTp1GtWrWCqIeIiKjIk32dZ40aNZCYmFgQtRARERULWoVnSkqK9JgxYwbGjh2LgwcP4tGjR2rDUlJSCrpeIiKiQqfVbltLS0u1Y5tCCHh5ean14QlDRERUUmgVnhEREQVdBxERUbGhVXi2aNGioOsgIiIqNmSfMBQeHo7IyEjp+YIFC1C3bl10794dT5480WlxRERERZHs8Pzmm2+kE4P++ecfBAUFwd/fH/Hx8QgKCtJ5gUREREWN7Os84+PjUaNGDQDAli1b0LZtW0ybNg1nzpyBv7+/zgskIiIqamRveRoaGuLZs2cAgH379qFVq1YAACsrK16qQkREJYLsLc+mTZsiKCgITZs2xYkTJ7BhwwYAL+55W758eZ0XSEREVNTI3vJcsGABSpUqhc2bN2PRokUoV64cAGD37t3w9fXVeYFERERFjawtz6ysLBw8eBBLliyBvb292rA5c+botDAiIqKiStaWp4GBAb788kuoVKqCqoeIiKjIk73btmHDhjh79mxB1EJERFQsyD5haOjQofj6669x+/ZtuLu7o3Tp0mrD3dzcdFYcERFRUSR7y7Nbt26Ij4/HyJEj0bRpU9StWxf16tWT/pXj8OHDaNu2LRwdHaFQKBAWFiYNy8zMxLfffovatWujdOnScHR0RK9evXDnzh21abi4uEChUKg9pk+fLnexiIiItPZWN0nQlbS0NNSpUwf9+vVDp06d1IY9e/YMZ86cwQ8//IA6dergyZMn+Oqrr9CuXTucOnVKre+UKVMwcOBA6bmZmZnOaiQiInqV7PB0dnbW2cz9/Pzg5+eX5zALCwvs3btXrW3+/Plo2LAhEhISUKFCBandzMxM4+xfIiKigiJ7ty0ArF69Gk2bNoWjoyNu3rwJAAgJCcH27dt1WtyrkpOToVAoYGlpqdY+ffp0WFtbo169evjll1+QlZVVoHUQEVHJJjs8Fy1aJN0MPikpSfrxa0tLS4SEhOi6Pkl6ejq+/fZbBAYGwtzcXGofOXIk1q9fj4iICAwePBjTpk3D2LFjXzstlUqFlJQUtQcREZG2ZIfnvHnzsGTJEkyYMAH6+vpSe4MGDfDPP//otLhcmZmZ6NKlC4QQWLRokdqwoKAgeHh4wM3NDV9++SVmzZqFefPmvfZa1ODgYFhYWEgPJyenAqmbiIg+TLLDMz4+Ps+zapVKJdLS0nRS1Mtyg/PmzZvYu3ev2lZnXho1aoSsrCzcuHEj3z7jx49HcnKy9Lh165aOqyYiog+Z7BOGKlasiJiYGI0Th8LDw1G9enWdFQb8X3DGxcUhIiIC1tbWbxwnJiYGenp6sLOzy7ePUqmEUqnUZalERFSCyA7PoKAgDBs2DOnp6RBC4MSJE/jjjz8QHByMpUuXyppWamoqrl27Jj2Pj49HTEwMrKys4ODggM8//xxnzpzBzp07kZ2djXv37gF48fNnhoaGiI6OxvHjx+Hp6QkzMzNER0dj9OjR6NmzJ8qUKSN30YiIiLSiEEIIuSOtXbsWkyZNwvXr1wEAjo6OmDx5Mvr37y9rOgcPHoSnp6dGe+/evTFp0iRUrFgxz/EiIiLg4eGBM2fOYOjQobh8+TJUKhUqVqyIL774AkFBQbK2LFNSUmBhYYHk5OQ37hYmIgKADmuuFnYJ9IqwnlXfaXw5WfBW4Znr2bNnSE1Nfe0u0uKA4UlEcjE8i573GZ6yd9u+zMTEBCYmJu8yCSIiomJHq/CsV68eFAqFVhM8c+bMOxVERERU1GkVnh06dJD+Tk9Px8KFC1GjRg00btwYAHDs2DFcuHABQ4cOLZAiiYiIihKtwnPixInS3wMGDMDIkSMxdepUjT68XpKIiEoC2TdJ2LRpE3r16qXR3rNnT2zZskUnRRERERVlssPT2NgYUVFRGu1RUVEwMjLSSVFERERFmeyzbUeNGoUhQ4bgzJkzaNiwIQDg+PHjWL58OX744QedF0hERFTUyA7PcePGoVKlSpg7dy7WrFkDAKhevTpCQ0PRpUsXnRdIRERU1LzVdZ5dunRhUBIRUYn1Vj+GTUREVJJpteVpZWWFq1evwsbGBmXKlHntDRMeP36ss+KIiIiKIq3Cc86cOTAzMwMAhISEFGQ9RERERZ5W4dm7d+88/yYiIiqJdHbM88yZM2jTpo2uJkdERFRkyQrPPXv2YMyYMfjuu+/w77//AgAuX76MDh064OOPP0ZOTk6BFElERFSUaH2pyrJlyzBw4EBYWVnhyZMnWLp0KWbPno0RI0aga9euOH/+PKpXr16QtRIRERUJWm95zp07FzNmzEBiYiI2btyIxMRELFy4EP/88w8WL17M4CQiohJD6/C8fv06OnfuDADo1KkTDAwM8Msvv6B8+fIFVhwREVFRpHV4Pn/+HCYmJgAAhUIBpVIJBweHAiuMiIioqJJ1e76lS5fC1NQUAJCVlYUVK1bAxsZGrc/IkSN1Vx0REVERpBBCCG06uri4vPbOQsCLLdLcs3CLk5SUFFhYWCA5ORnm5uaFXQ4RFQMd1lwt7BLoFWE9q77T+HKyQOstzxs3brxTUURERB8K3hieiIhIJoYnERGRTAxPIiIimRieREREMjE8iYiIZNLqbNuUlBStJ8hLPYiI6EOnVXhaWlq+8RrPXNnZ2e9UEBERUVGnVXhGRERIf9+4cQPjxo1Dnz590LhxYwBAdHQ0Vq5cieDg4IKpkoiIqAjR6phnixYtpMeqVaswe/ZsBAcHo127dmjXrh2Cg4Px66+/IjQ0VNbMDx8+jLZt28LR0REKhQJhYWFqw4UQ+PHHH+Hg4ABjY2N4e3sjLi5Orc/jx4/Ro0cPmJubw9LSEv3790dqaqqsOoiIiOSQfcJQdHQ0GjRooNHeoEEDnDhxQta00tLSUKdOHSxYsCDP4TNnzsRvv/2GxYsX4/jx4yhdujR8fHyQnp4u9enRowcuXLiAvXv3YufOnTh8+DAGDRokb6GIiIhkkB2eTk5OWLJkiUb70qVL4eTkJGtafn5++Omnn9CxY0eNYUIIhISE4Pvvv0f79u3h5uaGVatW4c6dO9IW6qVLlxAeHo6lS5eiUaNGaNasGebNm4f169fjzp07cheNiIhIK7J+VQUA5syZg4CAAOzevRuNGjUCAJw4cQJxcXHYsmWLzgqLj4/HvXv34O3tLbVZWFigUaNGiI6ORrdu3RAdHQ1LS0u1LWFvb2/o6enh+PHjeYYyAKhUKqhUKum5nLOJiYiIZG95+vv74+rVq2jbti0eP36Mx48fo23btrh69Sr8/f11Vti9e/cAAGXLllVrL1u2rDTs3r17sLOzUxtuYGAAKysrqU9egoODYWFhIT3kbjETEVHJJnvLE3ix63batGm6ruW9GT9+PIKCgqTnKSkpDFAiItLaW91h6MiRI+jZsyeaNGmC//77DwCwevVqREZG6qwwe3t7AMD9+/fV2u/fvy8Ns7e3x4MHD9SGZ2Vl4fHjx1KfvCiVSpibm6s9iIiItCU7PLds2QIfHx8YGxvjzJkz0rHD5ORknW6NVqxYEfb29ti/f7/UlpKSguPHj0vXlzZu3BhJSUk4ffq01OfAgQPIycmRjscSERHpmuzw/Omnn7B48WIsWbIEpUqVktqbNm2KM2fOyJpWamoqYmJiEBMTA+DFSUIxMTFISEiAQqHAqFGj8NNPP2HHjh34559/0KtXLzg6OqJDhw4AgOrVq8PX1xcDBw7EiRMnEBUVheHDh6Nbt25wdHSUu2hERERakX3M88qVK2jevLlGu4WFBZKSkmRN69SpU/D09JSe5x6H7N27N1asWIGxY8ciLS0NgwYNQlJSEpo1a4bw8HAYGRlJ46xduxbDhw+Hl5cX9PT0EBAQgN9++03uYhEREWlNdnja29vj2rVrcHFxUWuPjIxEpUqVZE3Lw8MDQoh8hysUCkyZMgVTpkzJt4+VlRXWrVsna75ERETvQvZu24EDB+Krr77C8ePHoVAocOfOHaxduxZjxozBkCFDCqJGIiKiIkX2lue4ceOQk5MDLy8vPHv2DM2bN4dSqcSYMWMwYsSIgqiRiIioSJEdngqFAhMmTMA333yDa9euITU1FTVq1ICpqWlB1EdERFTkyN5t269fPzx9+hSGhoaoUaMGGjZsCFNTU6SlpaFfv34FUSMREVGRIjs8V65ciefPn2u0P3/+HKtWrdJJUUREREWZ1rttU1JSIISAEAJPnz5Vu1wkOzsbf/31l8Z9ZomIiD5EWoenpaUlFAoFFAoFqlatqjFcoVBg8uTJOi2OiIioKNI6PCMiIiCEQMuWLbFlyxZYWVlJwwwNDeHs7My7+hARUYmgdXi2aNECwItb6FWoUAEKhaLAiiIiIirKZJ8wdODAAWzevFmjfdOmTVi5cqVOiiIiIirKZIdncHAwbGxsNNrt7OyK9W98EhERaUt2eCYkJKBixYoa7c7OzkhISNBJUUREREWZ7PC0s7PDuXPnNNpjY2NhbW2tk6KIiIiKMtnhGRgYiJEjRyIiIgLZ2dnIzs7GgQMH8NVXX6Fbt24FUSMREVGRIvvetlOnTsWNGzfg5eUFA4MXo+fk5KBXr1485klERCWC7PA0NDTEhg0bMHXqVMTGxsLY2Bi1a9eGs7NzQdRHRERU5MgOz1xVq1bN805DREREHzqtwjMoKAhTp05F6dKlERQU9Nq+s2fP1klhxZHLuF2FXQK94sb01oVdAhF9gLQKz7NnzyIzM1P6Oz+86xAREZUEWoVnREREnn8TERGVRLIvVSEiIirptNry7NSpk9YT3Lp161sXQ0REVBxoteVpYWEhPczNzbF//36cOnVKGn769Gns378fFhYWBVYoERFRUaHVlmdoaKj097fffosuXbpg8eLF0NfXBwBkZ2dj6NChMDc3L5gqiYiIihDZxzyXL1+OMWPGSMEJAPr6+ggKCsLy5ct1WhwREVFRJDs8s7KycPnyZY32y5cvIycnRydFERERFWWy7zDUt29f9O/fH9evX0fDhg0BAMePH8f06dPRt29fnRdIRERU1MgOz19//RX29vaYNWsW7t69CwBwcHDAN998g6+//lrnBRIRERU1ssNTT08PY8eOxdixY5GSkgIAPFGIiIhKlLe6SUJWVhb27duHP/74Q7ol3507d5CamqrT4gDAxcUFCoVC4zFs2DAAgIeHh8awL7/8Uud1EBER5ZK95Xnz5k34+voiISEBKpUKn332GczMzDBjxgyoVCosXrxYpwWePHkS2dnZ0vPz58/js88+Q+fOnaW2gQMHYsqUKdJzExMTndZARET0Mtnh+dVXX6FBgwaIjY2FtbW11N6xY0cMHDhQp8UBgK2trdrz6dOnw9XVFS1atJDaTExMYG9vr/N5ExER5UX2btsjR47g+++/h6GhoVq7i4sL/vvvP50VlpeMjAysWbMG/fr1U/sFl7Vr18LGxga1atXC+PHj8ezZswKtg4iISjbZW545OTlqu1Fz3b59G2ZmZjopKj9hYWFISkpCnz59pLbu3bvD2dkZjo6OOHfuHL799ltcuXLltffYValUUKlU0vPcE5+IiIi0ITs8W7VqhZCQEPz+++8AXvyGZ2pqKiZOnAh/f3+dF/iyZcuWwc/PD46OjlLboEGDpL9r164NBwcHeHl54fr163B1dc1zOsHBwZg8eXKB1kpERB8u2bttf/31V0RFRaFGjRpIT09H9+7dpV22M2bMKIgaAbw4UWnfvn0YMGDAa/s1atQIAHDt2rV8+4wfPx7JycnS49atWzqtlYiIPmyytzydnJwQGxuLDRs2IDY2Fqmpqejfvz969OgBY2PjgqgRwIub09vZ2aF169av7RcTEwPgxY0b8qNUKqFUKnVZHhERlSCywjMzMxPVqlXDzp070aNHD/To0aOg6lKTk5OD0NBQ9O7dGwYG/1fy9evXsW7dOvj7+8Pa2hrnzp3D6NGj0bx5c7i5ub2X2oiIqOSRFZ6lSpVCenp6QdWSr3379iEhIQH9+vVTazc0NMS+ffsQEhKCtLQ0ODk5ISAgAN9///17r5GIiEoO2btthw0bhhkzZmDp0qVqW4EFqVWrVhBCaLQ7OTnh0KFD76UGIiKiXLLT7+TJk9i/fz/+/vtv1K5dG6VLl1Yb/rpLRIiIiD4EssPT0tISAQEBBVELERFRsSA7PENDQwuiDiIiomJD6+s8c3JyMGPGDDRt2hQff/wxxo0bh+fPnxdkbUREREWS1uH5888/47vvvoOpqSnKlSuHuXPnSj8LRkREVJJoHZ6rVq3CwoULsWfPHoSFheHPP//E2rVrkZOTU5D1ERERFTlah2dCQoLavWu9vb2hUChw586dAimMiIioqNI6PLOysmBkZKTWVqpUKWRmZuq8KCIioqJM67NthRDo06eP2j1h09PT8eWXX6pd68nrPImI6EOndXj27t1bo61nz546LYaIiKg40Do8eX0nERHRC7J/z5OIiKikY3gSERHJxPAkIiKSieFJREQkE8OTiIhIJq3Ott2xY4fWE2zXrt1bF0NERFQcaBWeHTp00GpiCoUC2dnZ71IPERFRkadVePLm70RERP+HxzyJiIhk0voOQy9LS0vDoUOHkJCQgIyMDLVhI0eO1ElhRERERZXs8Dx79iz8/f3x7NkzpKWlwcrKComJiTAxMYGdnR3Dk4iIPniyd9uOHj0abdu2xZMnT2BsbIxjx47h5s2bcHd3x6+//loQNRIRERUpssMzJiYGX3/9NfT09KCvrw+VSgUnJyfMnDkT3333XUHUSEREVKTIDs9SpUpBT+/FaHZ2dkhISAAAWFhY4NatW7qtjoiIqAiSfcyzXr16OHnyJKpUqYIWLVrgxx9/RGJiIlavXo1atWoVRI1ERERFiuwtz2nTpsHBwQEA8PPPP6NMmTIYMmQIHj58iP/97386L5CIiKiokb3l2aBBA+lvOzs7hIeH67QgIiKiok72lmfLli2RlJSk0Z6SkoKWLVvqoiYiIqIiTXZ4Hjx4UOPGCACQnp6OI0eO6KQoIiKiokzr8Dx37hzOnTsHALh48aL0/Ny5czh79iyWLVuGcuXK6bS4SZMmQaFQqD2qVasmDU9PT8ewYcNgbW0NU1NTBAQE4P79+zqtgYiI6FVaH/OsW7euFGB57Z41NjbGvHnzdFocANSsWRP79u2TnhsY/F/Jo0ePxq5du7Bp0yZYWFhg+PDh6NSpE6KionReBxERUS6twzM+Ph5CCFSqVAknTpyAra2tNMzQ0BB2dnbQ19fXfYEGBrC3t9doT05OxrJly7Bu3TopzENDQ1G9enUcO3YMn3zyic5rISIiAmSEp7OzM4D3//NkcXFxcHR0hJGRERo3bozg4GBUqFABp0+fRmZmJry9vaW+1apVQ4UKFRAdHf3a8FSpVFCpVNLzlJSUAl0GIiL6sLzVT5Jdv34dI0aMgLe3N7y9vTFy5Ehcv35d17WhUaNGWLFiBcLDw7Fo0SLEx8fj008/xdOnT3Hv3j0YGhrC0tJSbZyyZcvi3r17r51ucHAwLCwspIeTk5POayciog+X7PDcs2cPatSogRMnTsDNzQ1ubm44fvw4atasib179+q0OD8/P3Tu3Blubm7w8fHBX3/9haSkJGzcuPGdpjt+/HgkJydLD95WkIiI5JB9k4Rx48Zh9OjRmD59ukb7t99+i88++0xnxb3K0tISVatWxbVr1/DZZ58hIyMDSUlJaluf9+/fz/MY6cuUSiWUSmWB1UlERB822Vuely5dQv/+/TXa+/Xrh4sXL+qkqPykpqbi+vXrcHBwgLu7O0qVKoX9+/dLw69cuYKEhAQ0bty4QOsgIqKSTfaWp62tLWJiYlClShW19piYGNjZ2emsMAAYM2YM2rZtC2dnZ9y5cwcTJ06Evr4+AgMDYWFhgf79+yMoKAhWVlYwNzfHiBEj0LhxY55pS0REBUrr8JwyZQrGjBmDgQMHYtCgQfj333/RpEkTAEBUVBRmzJiBoKAgnRZ3+/ZtBAYG4tGjR7C1tUWzZs1w7Ngx6TKZOXPmQE9PDwEBAVCpVPDx8cHChQt1WgMREdGrFEIIoU1HfX193L17F7a2tggJCcGsWbNw584dAICjoyO++eYbjBw5EgqFokALLggpKSmwsLBAcnIyzM3N33o6LuN26bAq0oUb01sXdgn0geqw5mphl0CvCOtZ9Z3Gl5MFWm955masQqHA6NGjMXr0aDx9+hQAYGZm9g7lEhERFS+yjnm+ulXJ0CQiopJIVnhWrVr1jbtlHz9+/E4FERERFXWywnPy5MmwsLAoqFqIiIiKBVnh2a1bN51fjkJERFTcaH2ThOJ4Fi0REVFB0Do8tbyihYiI6IOn9W7b9/1TZEREREXVW/0kGRERUUnG8CQiIpKJ4UlERCQTw5OIiEgmhicREZFMDE8iIiKZGJ5EREQyMTyJiIhkYngSERHJxPAkIiKSieFJREQkE8OTiIhIJoYnERGRTAxPIiIimRieREREMjE8iYiIZGJ4EhERycTwJCIikonhSUREJBPDk4iISCaGJxERkUxFOjyDg4Px8ccfw8zMDHZ2dujQoQOuXLmi1sfDwwMKhULt8eWXXxZSxUREVBIU6fA8dOgQhg0bhmPHjmHv3r3IzMxEq1atkJaWptZv4MCBuHv3rvSYOXNmIVVMREQlgUFhF/A64eHhas9XrFgBOzs7nD59Gs2bN5faTUxMYG9v/77LIyKiEqpIb3m+Kjk5GQBgZWWl1r527VrY2NigVq1aGD9+PJ49e1YY5RERUQlRpLc8X5aTk4NRo0ahadOmqFWrltTevXt3ODs7w9HREefOncO3336LK1euYOvWrflOS6VSQaVSSc9TUlIKtHYiIvqwFJvwHDZsGM6fP4/IyEi19kGDBkl/165dGw4ODvDy8sL169fh6uqa57SCg4MxefLkAq2XiIg+XMVit+3w4cOxc+dOREREoHz58q/t26hRIwDAtWvX8u0zfvx4JCcnS49bt27ptF4iIvqwFektTyEERowYgW3btuHgwYOoWLHiG8eJiYkBADg4OOTbR6lUQqlU6qpMIiIqYYp0eA4bNgzr1q3D9u3bYWZmhnv37gEALCwsYGxsjOvXr2PdunXw9/eHtbU1zp07h9GjR6N58+Zwc3Mr5OqJiOhDVaTDc9GiRQBe3AjhZaGhoejTpw8MDQ2xb98+hISEIC0tDU5OTggICMD3339fCNUSEVFJUaTDUwjx2uFOTk44dOjQe6qGiIjohWJxwhAREVFRwvAkIiKSieFJREQkE8OTiIhIJoYnERGRTAxPIiIimRieREREMjE8iYiIZGJ4EhERycTwJCIikonhSUREJBPDk4iISCaGJxERkUwMTyIiIpkYnkRERDIxPImIiGRieBIREcnE8CQiIpKJ4UlERCQTw5OIiEgmhicREZFMDE8iIiKZGJ5EREQyMTyJiIhkYngSERHJxPAkIiKSieFJREQkE8OTiIhIJoYnERGRTAxPIiIimT6Y8FywYAFcXFxgZGSERo0a4cSJE4VdEhERfaA+iPDcsGEDgoKCMHHiRJw5cwZ16tSBj48PHjx4UNilERHRB+iDCM/Zs2dj4MCB6Nu3L2rUqIHFixfDxMQEy5cvL+zSiIjoA2RQ2AW8q4yMDJw+fRrjx4+X2vT09ODt7Y3o6Og8x1GpVFCpVNLz5ORkAEBKSso71ZKjevZO45Puvev/KVF+Mp+nFnYJ9Ip3fb/nji+EeGPfYh+eiYmJyM7ORtmyZdXay5Yti8uXL+c5TnBwMCZPnqzR7uTkVCA1UuGxCCnsCojofbEYpJvpPH36FBYWFq/tU+zD822MHz8eQUFB0vOcnBw8fvwY1tbWUCgUhVhZ0ZCSkgInJyfcunUL5ubmhV0OERUQvtfVCSHw9OlTODo6vrFvsQ9PGxsb6Ovr4/79+2rt9+/fh729fZ7jKJVKKJVKtTZLS8uCKrHYMjc35xuKqATge/3/vGmLM1exP2HI0NAQ7u7u2L9/v9SWk5OD/fv3o3HjxoVYGRERfaiK/ZYnAAQFBaF3795o0KABGjZsiJCQEKSlpaFv376FXRoREX2APojw7Nq1Kx4+fIgff/wR9+7dQ926dREeHq5xEhFpR6lUYuLEiRq7tonow8L3+ttTCG3OySUiIiJJsT/mSURE9L4xPImIiGRieBIREcnE8CStubi4ICQkRHquUCgQFhZWaPUQUdHi4eGBUaNGFXYZ7wXDs5jo06cPFAqF9LC2toavry/OnTtXaDXdvXsXfn5+hTZ/og/Rw4cPMWTIEFSoUAFKpRL29vbw8fFBVFRUYZf2Rlu3bsXUqVMLu4z3guFZjPj6+uLu3bu4e/cu9u/fDwMDA7Rp06bQ6rG3t+cp7kQ6FhAQgLNnz2LlypW4evUqduzYAQ8PDzx69KiwS8tXRkYGAMDKygpmZmaFXM37wfAsRnK/hdrb26Nu3boYN24cbt26hYcPHwIAvv32W1StWhUmJiaoVKkSfvjhB2RmZkrjx8bGwtPTE2ZmZjA3N4e7uztOnTolDY+MjMSnn34KY2NjODk5YeTIkUhLS8u3npd32964cQMKhQJbt26Fp6cnTExMUKdOHY1ftpE7D6KSJCkpCUeOHMGMGTPg6ekJZ2dnNGzYEOPHj0e7du2kPoMHD0bZsmVhZGSEWrVqYefOndI03vQec3FxwbRp09CvXz+YmZmhQoUK+P3339XqeNNnyaRJk1C3bl0sXboUFStWhJGREQDN3bZPnjxBr169UKZMGZiYmMDPzw9xcXEFsereO4ZnMZWamoo1a9agcuXKsLa2BgCYmZlhxYoVuHjxIubOnYslS5Zgzpw50jg9evRA+fLlcfLkSZw+fRrjxo1DqVKlAADXr1+Hr68vAgICcO7cOWzYsAGRkZEYPny4rLomTJiAMWPGICYmBlWrVkVgYCCysrJ0Og+iD5WpqSlMTU0RFham9rOJuXJycuDn54eoqCisWbMGFy9exPTp06Gvrw9A+/fYrFmz0KBBA5w9exZDhw7FkCFDcOXKFWn4mz5LAODatWvYsmULtm7dipiYmDyXp0+fPjh16hR27NiB6OhoCCHg7++vFsTFlqBioXfv3kJfX1+ULl1alC5dWgAQDg4O4vTp0/mO88svvwh3d3fpuZmZmVixYkWeffv37y8GDRqk1nbkyBGhp6cnnj9/LoQQwtnZWcyZM0caDkBs27ZNCCFEfHy8ACCWLl0qDb9w4YIAIC5duqT1PIhKus2bN4syZcoIIyMj0aRJEzF+/HgRGxsrhBBiz549Qk9PT1y5ciXPcbV9H/fs2VManpOTI+zs7MSiRYvyrenVz5KJEyeKUqVKiQcPHqj1a9Gihfjqq6+EEEJcvXpVABBRUVHS8MTERGFsbCw2btyoxZoo2rjlWYx4enoiJiYGMTExOHHiBHx8fODn54ebN28CADZs2ICmTZvC3t4epqam+P7775GQkCCNHxQUhAEDBsDb2xvTp0/H9evXpWGxsbFYsWKF9M3X1NQUPj4+yMnJQXx8vNY1urm5SX87ODgAAB48eKDTeRB9yAICAnDnzh3s2LEDvr6+OHjwIOrXr48VK1YgJiYG5cuXR9WqVfMcV9v32MvvU4VCAXt7e+l9Crz5swQAnJ2dYWtrm+9yXLp0CQYGBmjUqJHUZm1tjY8++giXLl2SvV6KGoZnMVK6dGlUrlwZlStXxscff4ylS5ciLS0NS5YsQXR0NHr06AF/f3/s3LkTZ8+exYQJE6QD+cCL4xQXLlxA69atceDAAdSoUQPbtm0D8GI38ODBg6VwjomJQWxsLOLi4uDq6qp1jbm7gQFIv42ak5Oj03kQfeiMjIzw2Wef4YcffsDRo0fRp08fTJw4EcbGxq8dT9v32MvvU+DFezX3farNZwnw4vOoJPsgbgxfUikUCujp6eH58+c4evQonJ2dMWHCBGl47hbpy6pWrYqqVati9OjRCAwMRGhoKDp27Ij69evj4sWLqFy5coHV+z7mQfQhqlGjBsLCwuDm5obbt2/j6tWreW596uI9pu1nyZtUr14dWVlZOH78OJo0aQIAePToEa5cuYIaNWq8dX1FBbc8ixGVSoV79+7h3r17uHTpEkaMGIHU1FS0bdsWVapUQUJCAtavX4/r16/jt99+k7YqAeD58+cYPnw4Dh48iJs3byIqKgonT55E9erVAbw4u+7o0aMYPnw4YmJiEBcXh+3bt+v0ZJ73MQ+i4uzRo0do2bIl1qxZg3PnziE+Ph6bNm3CzJkz0b59e7Ro0QLNmzdHQEAA9u7di/j4eOzevRvh4eEAdPMee9NniZzptG/fHgMHDkRkZCRiY2PRs2dPlCtXDu3bt5c9vaKGW57FSHh4uHQc0czMDNWqVcOmTZvg4eEBABg9ejSGDx8OlUqF1q1b44cffsCkSZMAAPr6+nj06BF69eqF+/fvw8bGBp06dcLkyZMBvDgGcujQIUyYMAGffvophBBwdXVF165ddVb/+5gHUXFmamqKRo0aYc6cObh+/ToyMzPh5OSEgQMH4rvvvgMAbNmyBWPGjEFgYCDS0tJQuXJlTJ8+HYBu3mPt2rV77WeJHKGhofjqq6/Qpk0bZGRkoHnz5vjrr780dhsXR/xJMiIiIpm425aIiEgmhicREZFMDE8iIiKZGJ5EREQyMTyJiIhkYngSERHJxPAkIiKSieFJREQkE8OTiIhIJoYnERGRTAxPIiIimRieREREMv0/6t/is0Y+KuAAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "totals = [\n", + " df_grouped[\"pred_baseline\"].sum(),\n", + " df_grouped[\"pred_scenario\"].sum()\n", + "]\n", + "\n", + "labels = [\"Baseline\", \"Scenario\"]\n", + "x = np.arange(len(labels))\n", + "\n", + "plt.figure(figsize=(5,4))\n", + "plt.bar(x, totals, color=[\"#1f77b4\", \"#4fa3d9\"], width=0.4)\n", + "\n", + "plt.xticks(x, labels)\n", + "plt.ylabel(\"Total Predicted Ridership\")\n", + "plt.title(\"Baseline vs Scenario Ridership (Weekday)\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "a9392504-ad1c-407f-9204-1663043528d6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "95.9632200069897\n" + ] + } + ], + "source": [ + "ridership_change_sum= df_grouped[\"ridership_change\"].sum()\n", + "print(ridership_change_sum)" + ] + }, + { + "cell_type": "markdown", + "id": "79bdc190-3bf0-4fc8-ac41-4df7eefe99ee", + "metadata": {}, + "source": [ + "## Querying NTD Ridership Data for Burbank Bus Service" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "21b9bd94-53e9-4086-9350-3b85e6206ece", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying NTD Ridership data \n", + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name, mode, unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_mode_time_periods\n", + " WHERE \n", + " state = 'CA' AND report_year = 2024 AND mode = 'MB'\n", + " \"\"\"\n", + " ridership_data_bus= pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "500102af-ee48-45be-8f4c-00b79b58572e", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying NTD Ridership data \n", + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name, mode, unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_mode_time_periods\n", + " WHERE \n", + " state = 'CA' AND report_year = 2024 \n", + " \"\"\"\n", + " ridership_data= pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "e3d6c322-f0ef-4b7f-ae29-6791743a322f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5777028.0" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_ridership = ridership_data.unlinked_passenger_trips_upt.sum()\n", + "total_ridership" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "9b2cc358-7dd4-410a-a96d-3661c0d13671", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3953615.0" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_bus_ridership = ridership_data_bus.unlinked_passenger_trips_upt.sum()\n", + "total_bus_ridership" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "2f48c87c-4e8c-472e-9a27-f6a8f127c163", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "68.43683291824101" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(total_bus_ridership/total_ridership)*100" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "060a0281-b5ed-47a6-ae89-857f5c07bc19", + "metadata": {}, + "outputs": [], + "source": [ + "# Querying NTD Ridership data \n", + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name, unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_agencies\n", + " WHERE \n", + " state = 'CA' AND report_year = 2024 \n", + " AND agency IN (\n", + " 'City of Burbank',\n", + " 'Southern California Regional Rail Authority, dba: Metrolink',\n", + " 'Los Angeles County Metropolitan Transportation Authority , dba: Metro'\n", + " )\n", + " \"\"\"\n", + " ridership_data= pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "4574dcbd-a09a-4f30-a13f-5e5e414e4e9d", + "metadata": {}, + "outputs": [], + "source": [ + "# City of Burbank UPT\n", + "burbank_upt = ridership_data.loc[\n", + " ridership_data[\"agency\"] == \"City of Burbank\",\n", + " \"unlinked_passenger_trips_upt\"\n", + "].iloc[0]\n", + "\n", + "# City of Burbank average daily ridership\n", + "burbank_avg_daily = burbank_upt / 365" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "da312c75-80af-4dfc-8297-68cabdabe6de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "579.5698630136986" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "burbank_avg_daily" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Pyproject Local (use-venv)", + "language": "python", + "name": "pyproject_local_kernel_use_venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_blue_new_stops.csv b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_blue_new_stops.csv new file mode 100644 index 000000000..8d95e4974 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_blue_new_stops.csv @@ -0,0 +1,60 @@ +stop_name,direction,change_type +Metrolink Station eastside terminal at Front St,eastbound,no_change +Verdugo & Ikea Way,eastbound,relocating +Verdugo & San Fernando,eastbound,adding_existing +Glenoaks & Providencia,eastbound,adding_existing +Glenoaks / Alameda,eastbound,adding_existing +Alameda & San Fernando,eastbound,adding_existing +Alameda & Lake,eastbound,adding_existing +Alameda & Victory,eastbound,relocating +Alameda & Main,eastbound,new_stop +Alameda & Mariposa,eastbound,new_stop +Alameda & Reese,eastbound,new_stop +Alameda & Keystone,eastbound,new_stop +Alameda / Buena Vista,eastbound,adding_existing +Buena Vista & Olive,eastbound,adding_existing +Buena Vista & Verdugo,eastbound,signage_update_required (nearside in NBR turn pocket; allow buses to proceed through) +Buena Vista & Clark,eastbound,new_stop +Buena Vista & Magnolia,eastbound,new_stop +Buena Vista & Chandler,eastbound,new_stop +Buena Vista & Burbank,eastbound,new_stop +Buena Vista & Jeffries,eastbound,new_stop +Buena Vista & Victory,eastbound,new_stop +Buena Vista & Pacific,eastbound,new_stop +Buena Vista & Empire,eastbound,new_stop +Buena Vista & Thorton,eastbound,new_stop +Buena Vista & Winona,eastbound,new_stop +Buena Vista & Tulare,eastbound,new_stop +Glenoaks / Buena Vista,eastbound,new_stop +Glenoaks / Cohasset,eastbound,new_stop +Cohasset & Bloomington,eastbound,new_stop +Metrolink Station eastside terminal at Front St,westbound,no_change +Verdugo & Ikea Way,westbound,adding_existing +Verdugo & San Fernando,westbound,new_stop +Glenoaks & Providencia,westbound,adding_existing +Glenoaks / Alameda,westbound,adding_existing +Alameda & San Fernando,westbound,adding_existing +Alameda & Lake,westbound,adding_existing +Alameda & Victory,westbound,relocating +Alameda & Main,westbound,new_stop +Alameda & Mariposa,westbound,new_stop +Alameda & Reese,westbound,new_stop +Alameda & Keystone,westbound,reactivate +Alameda / Buena Vista,westbound,new_stop +Buena Vista & Olive,westbound,adding_existing +Buena Vista & Verdugo,westbound,new_stop +Buena Vista & Clark,westbound,new_stop +Buena Vista & Magnolia,westbound,relocating +Buena Vista & Chandler,westbound,new_stop +Buena Vista & Burbank,westbound,adding_existing +Buena Vista & Jeffries,westbound,new_stop +Buena Vista & Victory,westbound,new_stop +Buena Vista & Pacific,westbound,adding_existing +Buena Vista & Empire,westbound,new_stop +Buena Vista & Thorton,westbound,new_stop +Buena Vista & Winona,westbound,new_stop +Buena Vista & Tulare,westbound,new_stop +Glenoaks / Buena Vista,westbound,new_stop +Glenoaks / Cohasset,westbound,adding_existing +Cohasset & Bloomington,westbound,new_stop +N San Fernando / Lima / Avon,westbound,terminus_nearside_stop (on San Fernando facing west; parking modifications) diff --git a/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_lu.ipynb b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_lu.ipynb new file mode 100644 index 000000000..ad2a503c1 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_lu.ipynb @@ -0,0 +1,1062 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "637b9436-a2bf-4b0b-bbaa-91dc53262f3a", + "metadata": {}, + "outputs": [], + "source": [ + "# pip install shared_utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9a00c1eb-3468-453b-abad-a48437995b4b", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "pd.set_option('display.max_columns', None)\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "import numpy as np\n", + "\n", + "from scipy.stats import skew\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "fs = gcsfs.GCSFileSystem()\n", + "import matplotlib.pyplot as plt\n", + "import statsmodels.api as sm\n", + "from shapely.geometry import Point\n", + "from shapely import wkt\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a3952793-8ad7-4cdc-be40-159d621e4faa", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df.parquet\", \"rb\") as f: \n", + " stop_route_df = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4e2d8850-85ca-4f63-abfc-f7a6769afe35", + "metadata": {}, + "outputs": [], + "source": [ + "df_burbank = stop_route_df[stop_route_df['organization_name'] == \"City of Burbank\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c5f7e694-4b9e-4640-ad29-d538bf1dddea", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.11/site-packages/geopandas/geodataframe.py:1528: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\"\n", + "]\n", + "\n", + "\n", + "df_burbank[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_burbank.loc[\n", + " df_burbank[\"stop_name\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1\n", + "\n", + "\n", + "X = df_burbank[[\n", + " \"total_pop_adj\",\n", + " \"workers_with_no_car_adj\",\n", + " \"total_seniors_adj\",\n", + " \"inc_total_lowincome_adj\",\n", + " \"has_rail_connection_dummy\",\n", + " \"total_youth_adj\"\n", + "]].copy()\n", + "\n", + "X = sm.add_constant(X, has_constant=\"add\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "78c4751f-ed62-406c-bfd7-c0c7279f8a31", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 45\n", + "Model: GLM Df Residuals: 38\n", + "Model Family: NegativeBinomial Df Model: 6\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -104.94\n", + "Date: Wed, 06 May 2026 Deviance: 27.211\n", + "Time: 20:04:08 Pearson chi2: 21.2\n", + "No. Iterations: 15 Pseudo R-squ. (CS): 0.5257\n", + "Covariance Type: nonrobust \n", + "=============================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "---------------------------------------------------------------------------------------------\n", + "const 0.5006 0.626 0.799 0.424 -0.727 1.728\n", + "total_pop_adj 0.0012 0.002 0.671 0.502 -0.002 0.005\n", + "workers_with_no_car_adj 0.0282 0.018 1.605 0.109 -0.006 0.063\n", + "total_seniors_adj 0.0076 0.004 1.862 0.063 -0.000 0.016\n", + "inc_total_lowincome_adj -0.0053 0.002 -2.267 0.023 -0.010 -0.001\n", + "has_rail_connection_dummy 3.0179 0.651 4.634 0.000 1.741 4.294\n", + "total_youth_adj 0.0026 0.008 0.313 0.754 -0.014 0.019\n", + "=============================================================================================\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + } + ], + "source": [ + "# y_log = np.log1p(df_burbank[\"average_daily_boardings\"])\n", + "\n", + "# model_ols = sm.OLS(y_log, X).fit()\n", + "\n", + "# print(model_ols.summary())\n", + "\n", + "\n", + "model_fe = sm.GLM(\n", + " df_burbank[\"average_daily_boardings\"],\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(model_fe.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4103d0a1-b043-4cd2-974f-c154928969d6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# observed values\n", + "observed = df_burbank[\"average_daily_boardings\"]\n", + "\n", + "# predicted values from fixed-effects model\n", + "predicted = model_fe.predict()\n", + "\n", + "plt.figure(figsize=(5, 4))\n", + "\n", + "plt.scatter(observed, predicted, alpha=0.7)\n", + "\n", + "# perfect fit line\n", + "max_val = max(observed.max(), predicted.max())\n", + "plt.plot([0, max_val], [0, max_val], color=\"red\", linestyle=\"--\")\n", + "\n", + "plt.xlabel(\"Observed Average Daily Boardings\")\n", + "plt.ylabel(\"Predicted Boardings\")\n", + "plt.title(\"Observed vs Predicted\")\n", + "plt.grid(True)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f0350547-5f03-42f2-be51-91a478504bcb", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"burbank_orange_new_stops.csv\")\n", + "df[\"stop_dir_key\"] = df[\"stop_name\"] + \" \" + df[\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e940f252-0e70-4746-82b1-b679ec764d97", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords = {\n", + "\"Hollywood & Jeffries eastbound\": (34.18141305368438, -118.34903738211447),\n", + "\"Hollywood & Victory Bl eastbound\": (34.18508535157502, -118.34929119735641),\n", + "\"Hollywood & Pacific eastbound\": (34.18825119276962, -118.34886491064228),\n", + "\"Hollywood & Valhalla eastbound\": (34.19012427165374, -118.34916328937923),\n", + "\"Hollywood & Thorton eastbound\": (34.19656151035557, -118.34876716762236),\n", + "\"Hollywood & Thorton westbound\": (34.195980179882646, -118.34894014653726),\n", + "\"New BUR terminal eastbound\": (34.19359656711031, -118.35357055101639),\n", + "\"New BUR terminal westbound\": (34.19359656711031, -118.35357055101639),\n", + "\"Winona / Ontario eastbound\": (34.199490557715684, -118.3443711434909),\n", + "\"Winona / Ontario westbound\": (34.1992091874645, -118.34484346690523),\n", + "\"Ontario & Thorton eastbound\": (34.19593202043652, -118.34444331137956),\n", + "\"Ontario & Thorton westbound\": (34.19541510602419, -118.34460558501739),\n", + "\"Empire & Ontario eastbound\": (34.192108542580186, -118.3443394102755),\n", + "\"Empire & Buena Vista eastbound\": (34.19195822628478, -118.33787457476522),\n", + "\"Empire & Valpreda eastbound\": (34.19194945024493, -118.33285175184913),\n", + "\"Empire & Valpreda westbound\": (34.19179144771815, -118.33244032844016),\n", + "\"Empire & Grismer eastbound\": (34.19175476406717, -118.32509312643347),\n", + "\"Empire & Grismer westbound\": (34.19154206721876, -118.3254365921081),\n", + "\"Amherst Dr / San Fernando eastbound\": (34.19012800601128, -118.32086710181368),\n", + "\"Amherst Dr / San Fernando westbound\": (34.189934438443714, -118.32176619076398),\n", + "\"Glenoaks & Bethany eastbound\": (34.191647095345786, -118.31754103475315),\n", + "\"Glenoaks & Bethany westbound\": (34.19168659607283, -118.3180498038794),\n", + "\"Glenoaks & Fairmount eastbound\": (34.18922976877985, -118.31426181767534),\n", + "\"Glenoaks & Fairmount westbound\": (34.18869054389077, -118.3139580922512),\n", + "\"Glenoaks & Cypress eastbound\": (34.18708018484801, -118.31127153444093),\n", + "\"Glenoaks & Cypress westbound\": (34.18677382226348, -118.31135025143384),\n", + "\"Glenoaks & Magnolia eastbound\": (34.18566039664216, -118.30935620418528),\n", + "\"Glenoaks & Magnolia westbound\": (34.1853950731641, -118.3094180753144),\n", + "\"Glenoaks & Olive eastbound\": (34.18338784687265, -118.30666291160377),\n", + "\"Glenoaks & Olive westbound\": (34.183750381812565, -118.30682928383196),\n", + "\"Glenoaks & Verdugo eastbound\": (34.1810536128531, -118.30348086446116),\n", + "\"Glenoaks & Verdugo westbound\": (34.18130060913145, -118.30290962506388),\n", + "\"Glenoaks & Providencia eastbound\": (34.17964641863243, -118.30103491619572),\n", + "\"Glenoaks & Providencia westbound\": (34.17927416886304, -118.30121771535951),\n", + "\"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + "\"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + "\"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + "\"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + "\"Flower & Alameda eastbound\": (34.17106795233713, -118.30268518471172),\n", + "\"Flower & Alameda westbound\": (34.17166407022795, -118.3032739880033)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "03fbf510-a825-46f5-971d-2417b95c5605", + "metadata": {}, + "outputs": [], + "source": [ + "df_blue = pd.read_csv(\"burbank_blue_new_stops.csv\")\n", + "df_blue[\"stop_dir_key\"] = df_blue [\"stop_name\"] + \" \" + df_blue [\"direction\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "ecb01671-94b1-43c2-8917-5a9db3636eee", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords_blue = {\n", + " \"Metrolink Station eastside terminal at Front St eastbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Metrolink Station eastside terminal at Front St westbound\": (34.1928297181839, -118.35258351675843),\n", + " \"Verdugo & Ikea Way eastbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & Ikea Way westbound\": (34.17714663954148, -118.3074729252067),\n", + " \"Verdugo & San Fernando eastbound\": (34.17878489736103, -118.30541531103879),\n", + " \"Verdugo & San Fernando westbound\": (34.17851879621711, -118.30606420445262),\n", + " \"Glenoaks & Providencia eastbound\": (34.17962336385441, -118.30104441612727),\n", + " \"Glenoaks & Providencia westbound\": (34.17927459077334, -118.30121849159424),\n", + " \"Glenoaks / Alameda eastbound\": (34.1769213295822, -118.29787237592716),\n", + " \"Glenoaks / Alameda westbound\": (34.17636895964169, -118.29776384800448),\n", + " \"Alameda & San Fernando eastbound\": (34.174365721132396, -118.29952381900989),\n", + " \"Alameda & San Fernando westbound\": (34.17430732460237, -118.30025580257688),\n", + " \"Alameda & Lake eastbound\": (34.16893683695737, -118.30550179211235),\n", + " \"Alameda & Lake westbound\": (34.169039897393205, -118.30583857000296),\n", + " \"Alameda & Victory eastbound\": (34.166763977999786, -118.30764556757374),\n", + " \"Alameda & Victory westbound\": (34.16653844596177, -118.30776671277157),\n", + " \"Alameda & Main eastbound\": (34.05882507328523, -118.2372783904341),\n", + " \"Alameda & Main westbound\": (34.05926978274522, -118.23693452367304),\n", + " \"Alameda & Mariposa eastbound\": (34.16232050313561, -118.3156158302872),\n", + " \"Alameda & Mariposa westbound\": (34.16231163244352, -118.3163406121734),\n", + " \"Alameda & Reese eastbound\": (34.160989586571944, -118.31959642185599),\n", + " \"Alameda & Reese westbound\": (34.16116470453852, -118.32011647018618),\n", + " \"Alameda & Keystone eastbound\": (34.15960879667507, -118.32369063587736),\n", + " \"Alameda & Keystone westbound\": (34.159809285768965, -118.32415899113134),\n", + " \"Alameda / Buena Vista eastbound\": (34.15830550275982, -118.32847444534262),\n", + " \"Alameda / Buena Vista westbound\": (34.158061055695796, -118.32827576408872),\n", + " \"Buena Vista & Olive eastbound\": (34.16071171372398, -118.32948693260309),\n", + " \"Buena Vista & Olive westbound\": (34.16108254215271, -118.32933331481632),\n", + " \"Buena Vista & Verdugo eastbound\": (34.16511269756838, -118.33111018379287),\n", + " \"Buena Vista & Verdugo westbound\": (34.165299805818485, -118.33167323237512),\n", + " \"Buena Vista & Clark eastbound\": (34.168565005129715, -118.33283674907685),\n", + " \"Buena Vista & Clark westbound\": (34.16866971383002, -118.33328130798998),\n", + " \"Buena Vista & Magnolia eastbound\": (34.17195186709472, -118.33452224880612),\n", + " \"Buena Vista & Magnolia westbound\": (34.17211056589883, -118.33495282578686),\n", + " \"Buena Vista & Chandler eastbound\": (34.175468005263646, -118.33584132009098),\n", + " \"Buena Vista & Chandler westbound\": (34.17564123355154, -118.33666600223994),\n", + " \"Buena Vista & Burbank eastbound\": (34.178999088200214, -118.33829343490339),\n", + " \"Buena Vista & Burbank westbound\": (34.17876464082475, -118.33765850526345),\n", + " \"Buena Vista & Jeffries eastbound\": (34.18121005878122, -118.33854591221447),\n", + " \"Buena Vista & Jeffries westbound\": (34.180900571549294, -118.33814871081255),\n", + " \"Buena Vista & Victory eastbound\": (34.18449938252548, -118.3380410337855),\n", + " \"Buena Vista & Victory westbound\": (34.18466457669643, -118.33870399111125),\n", + " \"Buena Vista & Pacific eastbound\": (34.188461988919315, -118.33840245172041),\n", + " \"Buena Vista & Pacific westbound\": (34.18806979207031, -118.33819315186547),\n", + " \"Buena Vista & Empire eastbound\": (34.19198270314381, -118.33837161247952),\n", + " \"Buena Vista & Empire westbound\": (34.19177371161881, -118.3376321369762),\n", + " \"Buena Vista & Thorton eastbound\": (34.19573279798583, -118.33806248639054),\n", + " \"Buena Vista & Thorton westbound\": (34.19545983217905, -118.33766900330374),\n", + " \"Buena Vista & Winona eastbound\": (34.19971384309687, -118.33802251372927),\n", + " \"Buena Vista & Winona westbound\": (34.19955262101271, -118.33759639149243),\n", + " \"Buena Vista & Tulare eastbound\": (34.20288213768749, -118.33803238893368),\n", + " \"Buena Vista & Tulare westbound\": (34.202779515064044, -118.33757227833074),\n", + " \"Glenoaks / Buena Vista eastbound\": (34.205108109416635, -118.33787452049432),\n", + " \"Glenoaks / Buena Vista westbound\": (34.20469583946896, -118.33746105567633),\n", + " \"Glenoaks / Cohasset eastbound\": (34.206545468267606, -118.34143554899393),\n", + " \"Glenoaks / Cohasset westbound\": (34.2067229265355, -118.34135508272895),\n", + " \"Cohasset & Bloomington eastbound\": (34.2065471711793, -118.34523843199325),\n", + " \"Cohasset & Bloomington westbound\": (34.206793697966674, -118.34551974845968),\n", + " \"N San Fernando / Lima / Avon eastbound\": (34.19149816424647, -118.34706760310583),\n", + " \"N San Fernando / Lima / Avon westbound\": (34.192392404649915, -118.3479249843664)\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "d748a39c-d82a-400c-abc0-4c7ded9b34d7", + "metadata": {}, + "outputs": [], + "source": [ + "def apply_manual_coords(df, manual_coords):\n", + " # filter rows\n", + " df = df[(df['change_type'] != 'no_change') & \n", + " (df['change_type'] != 'relocating')].copy()\n", + " \n", + " latitudes, longitudes, geoms = [], [], []\n", + "\n", + " for key in df[\"stop_dir_key\"]:\n", + " coords = manual_coords.get(key)\n", + "\n", + " if coords:\n", + " lat, lon = coords\n", + " latitudes.append(lat)\n", + " longitudes.append(lon)\n", + " geoms.append(Point(lon, lat))\n", + " else:\n", + " latitudes.append(None)\n", + " longitudes.append(None)\n", + " geoms.append(None)\n", + "\n", + " df[\"latitude\"] = latitudes\n", + " df[\"longitude\"] = longitudes\n", + " df[\"pt_geom\"] = geoms\n", + "\n", + " df[\"stop_id\"] = [\"new_\" + str(i + 1) for i in range(len(df))]\n", + "\n", + " return df" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "2758415b-a18c-484b-b15c-3142d2dcce28", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
6Hollywood & Jeffrieseastboundadding_existingHollywood & Jeffries eastbound34.181413-118.349037POINT (-118.34903738211447 34.18141305368438)new_1
8Hollywood & Victory Bleastboundadding_existingHollywood & Victory Bl eastbound34.185085-118.349291POINT (-118.34929119735641 34.18508535157502)new_2
10Hollywood & Pacificeastboundadding_existingHollywood & Pacific eastbound34.188251-118.348865POINT (-118.34886491064228 34.18825119276962)new_3
12Hollywood & Valhallaeastboundadding_existingHollywood & Valhalla eastbound34.190124-118.349163POINT (-118.34916328937923 34.19012427165374)new_4
14Hollywood & Thortoneastboundadding_existingHollywood & Thorton eastbound34.196562-118.348767POINT (-118.34876716762236 34.19656151035557)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "6 Hollywood & Jeffries eastbound adding_existing \n", + "8 Hollywood & Victory Bl eastbound adding_existing \n", + "10 Hollywood & Pacific eastbound adding_existing \n", + "12 Hollywood & Valhalla eastbound adding_existing \n", + "14 Hollywood & Thorton eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "6 Hollywood & Jeffries eastbound 34.181413 -118.349037 \n", + "8 Hollywood & Victory Bl eastbound 34.185085 -118.349291 \n", + "10 Hollywood & Pacific eastbound 34.188251 -118.348865 \n", + "12 Hollywood & Valhalla eastbound 34.190124 -118.349163 \n", + "14 Hollywood & Thorton eastbound 34.196562 -118.348767 \n", + "\n", + " pt_geom stop_id \n", + "6 POINT (-118.34903738211447 34.18141305368438) new_1 \n", + "8 POINT (-118.34929119735641 34.18508535157502) new_2 \n", + "10 POINT (-118.34886491064228 34.18825119276962) new_3 \n", + "12 POINT (-118.34916328937923 34.19012427165374) new_4 \n", + "14 POINT (-118.34876716762236 34.19656151035557) new_5 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = apply_manual_coords(df, manual_coords)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "dec21895-9345-4f7a-8bfb-42d49ccc8e89", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_namedirectionchange_typestop_dir_keylatitudelongitudept_geomstop_id
2Verdugo & San Fernandoeastboundadding_existingVerdugo & San Fernando eastbound34.178785-118.305415POINT (-118.30541531103879 34.17878489736103)new_1
3Glenoaks & Providenciaeastboundadding_existingGlenoaks & Providencia eastbound34.179623-118.301044POINT (-118.30104441612727 34.17962336385441)new_2
4Glenoaks / Alamedaeastboundadding_existingGlenoaks / Alameda eastbound34.176921-118.297872POINT (-118.29787237592716 34.1769213295822)new_3
5Alameda & San Fernandoeastboundadding_existingAlameda & San Fernando eastbound34.174366-118.299524POINT (-118.29952381900989 34.174365721132396)new_4
6Alameda & Lakeeastboundadding_existingAlameda & Lake eastbound34.168937-118.305502POINT (-118.30550179211235 34.16893683695737)new_5
\n", + "
" + ], + "text/plain": [ + " stop_name direction change_type \\\n", + "2 Verdugo & San Fernando eastbound adding_existing \n", + "3 Glenoaks & Providencia eastbound adding_existing \n", + "4 Glenoaks / Alameda eastbound adding_existing \n", + "5 Alameda & San Fernando eastbound adding_existing \n", + "6 Alameda & Lake eastbound adding_existing \n", + "\n", + " stop_dir_key latitude longitude \\\n", + "2 Verdugo & San Fernando eastbound 34.178785 -118.305415 \n", + "3 Glenoaks & Providencia eastbound 34.179623 -118.301044 \n", + "4 Glenoaks / Alameda eastbound 34.176921 -118.297872 \n", + "5 Alameda & San Fernando eastbound 34.174366 -118.299524 \n", + "6 Alameda & Lake eastbound 34.168937 -118.305502 \n", + "\n", + " pt_geom stop_id \n", + "2 POINT (-118.30541531103879 34.17878489736103) new_1 \n", + "3 POINT (-118.30104441612727 34.17962336385441) new_2 \n", + "4 POINT (-118.29787237592716 34.1769213295822) new_3 \n", + "5 POINT (-118.29952381900989 34.174365721132396) new_4 \n", + "6 POINT (-118.30550179211235 34.16893683695737) new_5 " + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_blue = apply_manual_coords(df_blue, manual_coords_blue)\n", + "df_blue.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b5529430-6cab-44b4-af60-d7eb0508f4e8", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert your stops DataFrame to GeoDataFrame\n", + "gdf_orange = gpd.GeoDataFrame(df, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "gdf_blue = gpd.GeoDataFrame(df_blue, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "\n", + "# Project to meters for accurate distance buffering (UTM Zone 11N for LA area)\n", + "gdf_orange = gdf_orange.to_crs(epsg=32611)\n", + "gdf_blue = gdf_blue.to_crs(epsg=32611)\n", + "\n", + "buffer_distance = 404.672 # in meters\n", + "gdf_orange['buffer'] = gdf_orange.geometry.buffer(buffer_distance)\n", + "gdf_blue['buffer'] = gdf_blue.geometry.buffer(buffer_distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "2581293f-64c3-4c66-9eea-8499c29a767f", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)\n", + "\n", + "acs_gdf = tracts_ca_acs.to_crs(gdf_orange.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "9112a322-1f88-4528-8aba-f63259edd383", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange = gpd.overlay(acs_gdf, gdf_orange.set_geometry('buffer'), how='intersection')\n", + "geometry_intersect_blue = gpd.overlay(acs_gdf, gdf_blue.set_geometry('buffer'), how='intersection')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "dd2400b6-5ef6-4b0e-8b0b-e89fef91f4e0", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_orange['area_2'] = geometry_intersect_orange.geometry.area # area of overlap\n", + "geometry_intersect_orange['area_ratio'] = geometry_intersect_orange['area_2'] / geometry_intersect_orange['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_orange[f'{col}_adj'] = geometry_intersect_orange[col] * geometry_intersect_orange['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "69719310-f09d-4adf-a2c6-e43aeb78566a", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect_blue['area_2'] = geometry_intersect_blue.geometry.area # area of overlap\n", + "geometry_intersect_blue['area_ratio'] = geometry_intersect_blue['area_2'] / geometry_intersect_blue['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'public_asst_pop', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect_blue[f'{col}_adj'] = geometry_intersect_blue[col] * geometry_intersect_blue['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "0128a9f5-b8f4-498f-8ea0-c7491d13ea18", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['STATEFP', 'COUNTYFP', 'TRACTCE', 'GEOIDFQ', 'GEOID', 'NAME',\n", + " 'NAMELSAD', 'STUSPS', 'NAMELSADCO', 'STATE_NAME', 'LSAD', 'ALAND',\n", + " 'AWATER', 'total_pop', 'poverty_pop', 'non_us_citizen', 'male_65_to_66',\n", + " 'male_67_to_69', 'male_70_to_74', 'male_75_to_79', 'male_80_to_84',\n", + " 'male_85_and_over', 'female_65_to_66', 'female_67_to_69',\n", + " 'female_70_to_74', 'female_75_to_79', 'female_80_to_84',\n", + " 'female_85_and_over', 'male_15_17', 'male_18_19', 'male_20', 'male_21',\n", + " 'male_22_24', 'female_15_17', 'female_18_19', 'female_20', 'female_21',\n", + " 'female_22_24', 'median_household_income', 'income_less_10000',\n", + " 'income_10000_14999', 'income_15000_24999', 'income_25000_34999',\n", + " 'income_35000_49999', 'income_50000_64999', 'income_65000_74999',\n", + " 'workers_with_no_car', 'households_with_no_cars', 'public_asst_pop',\n", + " 'veteran_pop', 'county_name', 'inc_extremelylow', 'inc_verylow',\n", + " 'inc_low', 'inc_total_lowincome', 'male_seniors', 'female_seniors',\n", + " 'male_youth', 'female_youth', 'total_seniors', 'total_youth',\n", + " 'disabled_pop', 'area_m2', 'stop_name', 'direction', 'change_type',\n", + " 'stop_dir_key', 'latitude', 'longitude', 'pt_geom', 'stop_id',\n", + " 'geometry', 'area_2', 'area_ratio', 'total_pop_adj',\n", + " 'workers_with_no_car_adj', 'total_youth_adj', 'total_seniors_adj',\n", + " 'public_asst_pop_adj', 'inc_total_lowincome_adj'],\n", + " dtype='object')" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "geometry_intersect_orange.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "39b6dab0-7446-487b-b011-4786c3043d1f", + "metadata": {}, + "outputs": [], + "source": [ + "agg_orange = geometry_intersect_orange.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_orange = gdf_orange.merge(\n", + " agg_orange,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "8f54ade3-5989-43bb-9f97-4fe4d6e60bb9", + "metadata": {}, + "outputs": [], + "source": [ + "agg_blue = geometry_intersect_blue.groupby(['stop_name', 'direction']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_blue = gdf_blue.merge(\n", + " agg_blue,\n", + " on=['stop_name', 'direction'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "9e7aba97-e9ca-4fce-8c12-f589a1e1fe32", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Alameda & San Fernando', 'westbound', 'adding_existing'),\n", + " ('Alameda & San Fernando', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks & Providencia', 'westbound', 'adding_existing'),\n", + " ('Glenoaks / Alameda', 'eastbound', 'adding_existing'),\n", + " ('Glenoaks / Alameda', 'westbound', 'adding_existing'),\n", + " ('Glenoaks & Providencia', 'eastbound', 'adding_existing')]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_new_orange = gdf_orange.dropna(subset=['latitude', 'longitude'])\n", + "df_new_blue = gdf_blue.dropna(subset=['latitude', 'longitude'])\n", + "\n", + "orange_stops = set(zip(df_new_orange['stop_name'], df_new_orange['direction'], df_new_orange['change_type'], ))\n", + "blue_stops = set(zip(df_new_blue['stop_name'], df_new_blue['direction'], df_new_blue['change_type']))\n", + "\n", + "common_stops = orange_stops & blue_stops\n", + "list(common_stops)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "7914ce29-5ef6-47e8-a31e-b472ee022d7b", + "metadata": {}, + "outputs": [], + "source": [ + "df_new_orange['source'] = 'orange'\n", + "df_new_blue['source'] = 'blue'" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "9e9879c6-8c1c-4eb9-b25b-d59522f73a40", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined = pd.concat([df_new_orange, df_new_blue], ignore_index=True)\n", + "\n", + "df_combined = df_combined[ df_combined['change_type'].isin(['new_stop', 'reactivate']) ].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "76ef01e0-a551-4890-9f34-c1e425264444", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['key'] = list(zip(\n", + " df_combined['stop_name'],\n", + " df_combined['direction'],\n", + " df_combined['change_type']\n", + "))\n", + "\n", + "df_combined['is_common'] = df_combined['key'].isin(common_stops)\n", + "# REMOVE duplicate rows for common stops\n", + "df_combined = (\n", + " df_combined\n", + " .sort_values('source') # keeps orange if duplicate exists\n", + " .drop_duplicates(subset=['key'], keep='first')\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "5aa6bf86-c817-4f64-9d4f-ccfd79247bbe", + "metadata": {}, + "outputs": [], + "source": [ + "df_combined['stop_group'] = df_combined['stop_name']\n", + "\n", + "df_grouped = df_combined.groupby('stop_group').agg({\n", + " 'total_pop_adj': 'mean',\n", + " 'workers_with_no_car_adj': 'mean',\n", + " 'total_youth_adj': 'mean',\n", + " 'total_seniors_adj': 'mean',\n", + " 'inc_total_lowincome_adj': 'mean',\n", + " 'change_type': lambda x: ', '.join(sorted(x.unique()))\n", + "}).reset_index()\n", + "\n", + "\n", + "rail_stops = [\n", + " \"Universal Redline Station\",\n", + " \"NoHo Station\",\n", + " \"Metrolink Station\",\n", + " \"Hollywood Burbank Airport RITC\",\n", + " \"New BUR terminal\",\n", + " \n", + "]\n", + "\n", + "df_grouped[\"has_rail_connection_dummy\"] = 0\n", + "\n", + "df_grouped.loc[\n", + " df_grouped[\"stop_group\"].isin(rail_stops),\n", + " \"has_rail_connection_dummy\"\n", + "] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "9ffb473b-180c-43df-bf62-9a7258f2c99a", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn = df_grouped[[\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + " 'has_rail_connection_dummy'\n", + "]].copy()\n", + "\n", + "X_scn = sm.add_constant(X_scn)\n", + "X_scn = X_scn[model_fe.model.exog_names]\n", + "# df_grouped['pred_scenario'] = model_fe.predict(X_scn)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "2f058aba-b761-40d2-abcf-7012c60b54dd", + "metadata": {}, + "outputs": [], + "source": [ + "log_pred = model_fe.predict(X_scn)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "41a6b604-e2e4-47cd-b206-86d72364a7d7", + "metadata": {}, + "outputs": [], + "source": [ + "df_grouped[\"predicted_boardings\"] = np.expm1(log_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "8f482e52-ae0d-4041-b9fb-a1f78cd61a59", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.430541955643188e+32\n" + ] + } + ], + "source": [ + "ridership_new = df_grouped[\"predicted_boardings\"].sum()\n", + "print(ridership_new)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "716f0eb4-cfe0-48d7-8234-37ae3803a631", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "225.40909090909093\n" + ] + } + ], + "source": [ + "ridership_base = df_burbank[\"average_daily_boardings\"].sum()\n", + "print(ridership_base)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "b93e716e-d188-4aca-9ac9-2971cd92ec54", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.430541955643188e+32" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_new-ridership_base" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c061725b-8365-4262-b826-4fb9c7f0ff3e", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_orange_new_stops.csv b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_orange_new_stops.csv new file mode 100644 index 000000000..c12902ec8 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/Burbank_Ridership_Exploration/burbank_orange_new_stops.csv @@ -0,0 +1,55 @@ +stop_name,direction,change_type +Burbank & Clybourn,eastbound,no_change +Burbank & Clybourn,westbound,no_change +Burbank & Pass/Maple,eastbound,no_change +Burbank & Pass/Maple,westbound,no_change +Burbank & Hollywood,eastbound,relocating +Burbank & Hollywood,westbound,no_change +Hollywood & Jeffries,eastbound,adding_existing +Hollywood & Jeffries,westbound,no_change +Hollywood & Victory Bl,eastbound,adding_existing +Hollywood & Victory Bl,westbound,no_change +Hollywood & Pacific,eastbound,adding_existing +Hollywood & Pacific,westbound,no_change +Hollywood & Valhalla,eastbound,adding_existing +Hollywood & Valhalla,westbound,no_change +Hollywood & Thorton,eastbound,adding_existing +Hollywood & Thorton,westbound,adding_existing +New BUR terminal,eastbound,new_stop +New BUR terminal,westbound,new_stop +Winona / Ontario,eastbound,new_stop +Winona / Ontario,westbound,new_stop +Ontario & Thorton,eastbound,replacing +Ontario & Thorton,westbound,replacing +Empire & Ontario,eastbound,adding_existing +Empire & Ontario,westbound,no_change +Empire & Buena Vista,eastbound,adding_existing +Empire & Buena Vista,westbound,no_change +Empire & Valpreda,eastbound,adding_existing +Empire & Valpreda,westbound,adding_existing +Empire & Grismer,eastbound,adding_existing +Empire & Grismer,westbound,adding_existing +Amherst Dr / San Fernando,eastbound,new_stop +Amherst Dr / San Fernando,westbound,new_stop +Glenoaks & Bethany,eastbound,adding_existing +Glenoaks & Bethany,westbound,adding_existing +Glenoaks & Fairmount,eastbound,adding_existing +Glenoaks & Fairmount,westbound,adding_existing +Glenoaks & Cypress,eastbound,adding_existing +Glenoaks & Cypress,westbound,adding_existing +Glenoaks & Magnolia,eastbound,adding_existing +Glenoaks & Magnolia,westbound,adding_existing +Glenoaks & Olive,eastbound,new_stop +Glenoaks & Olive,westbound,new_stop +Glenoaks & Verdugo,eastbound,adding_existing +Glenoaks & Verdugo,westbound,new_stop +Glenoaks & Providencia,eastbound,adding_existing +Glenoaks & Providencia,westbound,adding_existing +Glenoaks / Alameda,eastbound,adding_existing +Glenoaks / Alameda,westbound,adding_existing +Alameda & San Fernando,eastbound,adding_existing +Alameda & San Fernando,westbound,adding_existing +Flower & Alameda,eastbound,adding_existing +Flower & Alameda,westbound,adding_existing +Metrolink Station (Olive overpass loop),eastbound,no_change +Metrolink Station (Olive overpass loop),westbound,no_change diff --git a/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Saturday.ipynb b/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Saturday.ipynb new file mode 100644 index 000000000..a9ac85227 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Saturday.ipynb @@ -0,0 +1,1225 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8f2fa784-6182-4039-b267-3ad12c5640f5", + "metadata": {}, + "source": [ + "# UCSB Ridership Modeling Saturday: Analytical Summary and Interpretation" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2747aae9-f823-4183-a212-3143323b787b", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "pd.set_option('display.max_columns', None)\n", + "\n", + "import statsmodels.api as sm\n", + "from scipy.stats import skew\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5f76fda9-0401-45c9-aa94-bd2f92aeef26", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df_saturday.parquet\", \"rb\") as f: \n", + " stop_route_df_saturday = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7f180892-b53d-460a-808c-013b58d4d6a1", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert n_arrivals and n_routes to integer\n", + "stop_route_df_saturday['n_arrivals'] = stop_route_df_saturday['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df_saturday['n_routes'] = stop_route_df_saturday['n_routes'].fillna(0).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "52b16972-eed4-492b-b4bf-6a683789c5cf", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 12315\n", + "Model: GLM Df Residuals: 12307\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -45084.\n", + "Date: Thu, 07 May 2026 Deviance: 22353.\n", + "Time: 18:37:06 Pearson chi2: 1.79e+06\n", + "No. Iterations: 100 Pseudo R-squ. (CS): 0.8679\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const -3.9238 0.056 -69.998 0.000 -4.034 -3.814\n", + "n_routes -0.0472 0.016 -3.026 0.002 -0.078 -0.017\n", + "log_arrivals 1.9336 0.019 102.563 0.000 1.897 1.971\n", + "total_pop_adj 0.0004 3.83e-05 10.594 0.000 0.000 0.000\n", + "workers_with_no_car_adj 0.0022 7.79e-05 28.504 0.000 0.002 0.002\n", + "total_youth_adj 0.0003 4.98e-05 6.417 0.000 0.000 0.000\n", + "total_seniors_adj -0.0018 0.000 -16.407 0.000 -0.002 -0.002\n", + "inc_total_lowincome_adj -0.0006 6.39e-05 -9.235 0.000 -0.001 -0.000\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "# Copy the dataset\n", + "df = stop_route_df_saturday.copy()\n", + "y = df['average_daily_boardings']\n", + "df[\"log_arrivals\"] = np.log(df[\"n_arrivals\"] + 1)\n", + "X = df[['n_routes', 'log_arrivals',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'total_seniors_adj', 'inc_total_lowincome_adj']]\n", + "\n", + "# 4. Add intercept\n", + "X = sm.add_constant(X)\n", + "\n", + "# Same X and y as Poisson\n", + "nb_model_extended_final = sm.GLM(\n", + " y,\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(nb_model_extended_final.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "93c61846-9db3-49ac-9690-10783900ac25", + "metadata": {}, + "outputs": [], + "source": [ + "# observed values\n", + "observed = df[\"average_daily_boardings\"]\n", + "\n", + "# predicted values from fixed-effects model\n", + "predicted = nb_model_extended_final.predict()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "77568d91-4330-4569-9560-eac02e473d63", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAIjCAYAAABLZcwsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsvXecZFWZ//++sWJXdZzpMKEnMgwTCEqQDCoqOYji6ooRf66CcV3XrwIiumtYM4I5gIFkYFkVRBRBQQnDzDDApJ7QPdO5K4ebzu+PU1VT1bl7uqcHpz6v1yh9761zz733nOc85wmfRxFCCKqooooqqqiiiiqqOKRQ57oDVVRRRRVVVFFFFUciqkpYFVVUUUUVVVRRxRygqoRVUUUVVVRRRRVVzAGqSlgVVVRRRRVVVFHFHKCqhFVRRRVVVFFFFVXMAapKWBVVVFFFFVVUUcUcoKqEVVFFFVVUUUUVVcwBqkpYFVVUUUUVVVRRxRygqoRVUUUVVVRRRRVVzAGqSlgV08YNN9yAoij09/fPdVcOORRF4YYbbpjrbsw5zjrrLM4666zS37t27UJRFH74wx/OWZ+GY3gfx0MqlWLevHnccccds9upOcDVV19Ne3v7XHdjXPzpT39CURT+9Kc/zXVXxsVUxtRwvFRlxxvf+EauvPLKue7GPx2qSlgVFXjuued485vfTFtbGz6fj9bWVv7lX/6F5557bq67VsUwFBes4j/DMFi6dCn/+q//ys6dO+e6e1PCX//6V2644QZisdic9uOrX/0qNTU1vPGNbywdK2425s+fTyaTGfGb9vZ2LrjggkPZzTGxb98+brjhBjZs2DDXXSnh6quvrhinuq6zcOFC3vjGN7Jly5a57t5hjUQiwc0338zLXvYyotEoPp+PxYsX84Y3vIH777+/4tqiPLj77rvHbbP4Hd75zneOev4Tn/hE6ZryDfbHPvYx7rnnHp599tmDf7AqStDnugNVHD649957ueqqq6ivr+cd73gHS5YsYdeuXXzve9/j7rvv5uc//zmXXnrpXHezimG49tprefnLX45t2zz99NN8+9vf5v7772fTpk20trYe0r4sXryYbDaLYRhT+t1f//pXbrzxRq6++mpqa2tnp3MTwLZtvvrVr/LBD34QTdNGnO/t7eVb3/oWH/7wh+egd5PDvn37uPHGG2lvb+fYY4+tOPed73wHz/PmpF8+n4/vfve7ADiOw44dO7j11lv53e9+x5YtW0rj9IwzziCbzWKa5pz0c7J44IEHZv0e27dv57zzzmP37t1ceuml/Ou//ivhcJi9e/fyf//3f1xwwQX8+Mc/5i1vecuU2/b7/dxzzz3ccsstI971z372M/x+P7lcruL4cccdx8te9jK+9KUv8eMf//ignq2KA6gqYVUAsGPHDt7ylrewdOlSHnnkEZqamkrnrrvuOk4//XTe8pa3sHHjRpYuXTqHPR0Jz/OwLAu/3z/XXZkTnH766VxxxRUAvO1tb2PlypVce+21/OhHP+LjH//4qL9Jp9OEQqEZ74uiKC/Z7/C///u/9PX1jelyOfbYY/nCF77Ae9/7XgKBwCHu3cFjqorxTELXdd785jdXHDv55JO54IILuP/++3nXu94FgKqqL4nxM9tKouM4XHrppfT09PDnP/+ZU089teL89ddfzwMPPIDrutNq/zWveQ2/+c1v+O1vf8vFF19cOv7Xv/6Vjo4OLr/8cu65554Rv7vyyiu5/vrrueWWWwiHw9O6dxWVqLojqwDgC1/4AplMhm9/+9sVChhAY2Mjt912G+l0ms9//vMjftvf38+VV15JJBKhoaGB6667bsQu6sEHH+S0006jtraWcDjMUUcdxX/+539WXJPP57n++utZvnw5Pp+PhQsX8u///u/k8/mK6xRF4X3vex933HEHxxxzDD6fj/vuu4/6+nre9ra3jehfIpHA7/fzkY98ZMr3yufzfPCDH6SpqYmamhouuugiOjs7J3yfPT096LrOjTfeOOLciy++iKIofOMb3wCkBebGG29kxYoV+P1+GhoaOO2003jwwQcnvM9oOOeccwDo6OgADrjTtmzZwpve9Cbq6uo47bTTStfffvvtnHDCCQQCAerr63njG9/I3r17R7T77W9/m2XLlhEIBDjxxBP5y1/+MuKasWLCXnjhBa688kqampoIBAIcddRRfOITnyj176Mf/SgAS5YsKblCdu3aNSt9HAu/+tWvaG9vZ9myZaOe/9SnPkVPTw/f+ta3JmzL8zy+8pWvcMwxx+D3+5k/fz7XXHMNQ0NDI6674YYbaG1tJRgMcvbZZ7Nlyxba29u5+uqrS9cNDg7ykY98hLVr1xIOh4lEIrz2ta+tcA396U9/4uUvfzkglfHieyx+i/KYMNu2Z2W+TAXNzc2AVNDKn2F4TNhZZ53FmjVr2LJlC2effTbBYJC2trZRZVFvby/veMc7mD9/Pn6/n/Xr1/OjH/2o4priGP3iF7/IN7/5TZYuXUowGOTVr341e/fuRQjBTTfdxIIFCwgEAlx88cUMDg5WtDE8JsyyLD71qU9xwgknEI1GCYVCnH766Tz88MPTejd33XUXmzdv5pOf/OQIBayIV7/61bz2ta+dVvttbW2cccYZ/PSnP604fscdd7B27VrWrFkz6u9e9apXkU6npy2bqhiJqiWsCgDuu+8+2tvbOf3000c9f8YZZ9De3j4iDgHk7qi9vZ3Pfe5zPP7443zta19jaGioZLJ+7rnnuOCCC1i3bh2f/vSn8fl8bN++nccee6zUhud5XHTRRTz66KO8+93v5uijj2bTpk18+ctfZuvWrfzqV7+quOcf//hH7rzzTt73vvfR2NjIihUruPTSS7n33nu57bbbKnaqv/rVr8jn86U4n6nc653vfCe33347b3rTm3jFK17BH//4R84///wJ3+f8+fM588wzufPOO7n++usrzv3iF79A0zRe//rXA1IJ+dznPsc73/lOTjzxRBKJBE8++SRPP/00r3rVqya813Ds2LEDgIaGhorjr3/961mxYgWf/exnEUIAcPPNN/PJT36SK6+8kne+85309fXx9a9/nTPOOINnnnmm5Br83ve+xzXXXMMrXvEKPvCBD7Bz504uuugi6uvrWbhw4bj92bhxI6effjqGYfDud7+b9vZ2duzYwX333cfNN9/MZZddxtatW/nZz37Gl7/8ZRobGwFKm4FD0UeQVoDjjz9+zPOnn34655xzDp///Of5//6//29ca9g111zDD3/4Q972trdx7bXX0tHRwTe+8Q2eeeYZHnvssZJV6uMf/zif//znufDCCznvvPN49tlnOe+880ZsYnbu3MmvfvUrXv/617NkyRJ6enq47bbbOPPMM0vuvKOPPppPf/rTfOpTn+Ld7353aS6/4hWvGNE/wzBmZb6Mh2J8keu67Ny5k4997GM0NDRMKp5uaGiI17zmNVx22WVceeWV3H333XzsYx9j7dq1JUUkm81y1llnsX37dt73vvexZMkS7rrrLq6++mpisRjXXXddRZt33HEHlmXx/ve/n8HBQT7/+c9z5ZVXcs455/CnP/2Jj33sY2zfvp2vf/3rfOQjH+H73//+mP1LJBJ897vf5aqrruJd73oXyWSS733ve5x33nn8/e9/H+Eangj33XcfwAjr4UziTW96E9dddx2pVIpwOIzjONx111186EMfGjH+ili9ejWBQIDHHnusGpoyUxBVHPGIxWICEBdffPG411100UUCEIlEQgghxPXXXy8AcdFFF1Vc9973vlcA4tlnnxVCCPHlL39ZAKKvr2/Mtn/yk58IVVXFX/7yl4rjt956qwDEY489VjoGCFVVxXPPPVdx7e9//3sBiPvuu6/i+Ote9zqxdOnSKd9rw4YNAhDvfe97K65705veJABx/fXXj/k8Qghx2223CUBs2rSp4vjq1avFOeecU/p7/fr14vzzzx+3rdHw8MMPC0B8//vfF319fWLfvn3i/vvvF+3t7UJRFPGPf/xDCHHgO1111VUVv9+1a5fQNE3cfPPNFcc3bdokdF0vHbcsS8ybN08ce+yxIp/Pl6779re/LQBx5plnlo51dHQIQPzgBz8oHTvjjDNETU2N2L17d8V9PM8r/fcXvvAFAYiOjo5Z7+NosG1bKIoiPvzhD484V3x/fX194s9//rMAxP/8z/+Uzi9evLji+/3lL38RgLjjjjsq2vnd735Xcby7u1voui4uueSSiutuuOEGAYi3vvWtpWO5XE64rltxXUdHh/D5fOLTn/506dg//vGPEe+/iLe+9a1i8eLFpb9ner6Mhbe+9a0CGPGvra1NPPXUUxXXFsf0ww8/XDp25plnCkD8+Mc/Lh3L5/OiublZXH755aVjX/nKVwQgbr/99tIxy7LEKaecIsLhcEluFcdoU1OTiMVipWs//vGPC0CsX79e2LZdOn7VVVcJ0zRFLper6FP5mHIcp2LcCSHE0NCQmD9/vnj7299ecXwysuO4444TtbW1I46nUinR19dX+hePx0vniu/urrvuGrdtQPzbv/2bGBwcFKZpip/85CdCCCHuv/9+oSiK2LVrV8WYH46VK1eK1772tePeo4rJo+qOrIJkMglATU3NuNcVzycSiYrj//Zv/1bx9/vf/34A/u///g+gZKn49a9/PWZg8F133cXRRx/NqlWr6O/vL/0rutaGm/XPPPNMVq9eXXHsnHPOobGxkV/84helY0NDQzz44IO84Q1vmPK9iv2/9tprK+7zgQ98YNRnGI7LLrsMXdcr+rN582a2bNlS0Z/a2lqee+45tm3bNql2h+Ptb387TU1NtLa2cv7555NOp/nRj37Ey172sorr3vOe91T8fe+99+J5HldeeWXFe2hubmbFihWl9/Dkk0/S29vLe97zngqLydVXX000Gh23b319fTzyyCO8/e1vZ9GiRRXnFEWZ8NkORR9BuvuEENTV1Y173RlnnMHZZ5/N5z//ebLZ7KjX3HXXXUSjUV71qldV9PmEE04gHA6X+vzQQw/hOA7vfe97K35fnD/l8Pl8qKoU167rMjAwUHLrP/300xM+32iY6fkyHvx+Pw8++CAPPvggv//977ntttsIh8O87nWvY+vWrRP+PhwOV1iFTNPkxBNPrMgC/r//+z+am5u56qqrSscMw+Daa68llUrx5z//uaLN17/+9RVj46STTgKk9ancRXrSSSdhWRZdXV1j9k/TtNK48zyPwcFBHMfhZS972bS+TyKRGDXm6hOf+ARNTU2lf29605um3HYRdXV1vOY1r+FnP/sZAD/96U95xSteweLFiyf83ZFISzRbqLojqygpV0VlbCyMpaytWLGi4u9ly5ahqmoppucNb3gD3/3ud3nnO9/Jf/zHf3Duuedy2WWXccUVV5QWlm3btvH888+PiEcrore3t+LvJUuWjLhG13Uuv/xyfvrTn5LP5/H5fNx7773Ytl2xqEz2Xrt370ZV1RExQkcdddSovxuOxsZGzj33XO68805uuukmQLoidV3nsssuK1336U9/mosvvpiVK1eyZs0aXvOa1/CWt7yFdevWTeo+n/rUpzj99NPRNI3GxkaOPvroikWkiOHvbNu2bQghRny/Ioous927dwMjv3OREmM8FBfJsWJMJsKh6GM5RMFNOx5uuOEGzjzzTG699VY++MEPjtrneDzOvHnzRv19+fgCWL58ecX5+vr6Ecqg53l89atf5ZZbbqGjo6MiIHu423mymOn5Mh40TeOVr3xlxbHXve51rFixgo9//OOjBoGXY8GCBSOU9rq6OjZu3Fj6e/fu3axYsaIkU4o4+uijS+fLMXxTUFTIhruui8eHx/MNx49+9CO+9KUv8cILL2Dbdun4aLJqItTU1DAwMDDi+Hvf+96S+3YmXJVvetObeMtb3sKePXv41a9+NWqc3XAIISa1gapicqgqYVUQjUZpaWmpEGijYePGjbS1tRGJRMa9bvgEDQQCPPLIIzz88MPcf//9/O53v+MXv/gF55xzDg888ACapuF5HmvXruV//ud/Rm1zuGAcKx7njW98I7fddhu//e1vueSSS7jzzjtZtWoV69evL10z1XsdDN74xjfytre9jQ0bNnDsscdy5513cu6555binkBaV3bs2MGvf/1rHnjgAb773e/y5S9/mVtvvXVMLp9yrF27dsQCNxqGvzPP81AUhd/+9rejUjIcDtlPh6qP9fX1KIoy4UIL8nudddZZfP7znx9hXSz2eTzC17GUmfHw2c9+lk9+8pO8/e1v56abbqK+vh5VVfnABz5wULQTczlfFixYwFFHHcUjjzwy4bWjfXuYnNI81Tanc6/bb7+dq6++mksuuYSPfvSjzJs3D03T+NznPleK0ZwKVq1axYYNG+jq6qKtra10fOXKlaxcuRJgRrJIL7roInw+H29961vJ5/OTImMdGhoac1NUxdRRVcKqAOCCCy7gO9/5Do8++mhF5lwRf/nLX9i1axfXXHPNiHPbtm2r2O1t374dz/Mq2LlVVeXcc8/l3HPP5X/+53/47Gc/yyc+8QkefvhhXvnKV7Js2TKeffZZzj333IPaZZ1xxhm0tLTwi1/8gtNOO40//vGPpSy8IiZ7r8WLF+N5Hjt27Kiwfr344ouT7s8ll1zCNddcU3L5bN26dVTaiGKm2tve9jZSqRRnnHEGN9xww6SUsOli2bJlCCFYsmRJSbCPhqJ7Ytu2bSUXFMgMu46OjooFeziKVqjNmzeP25exvsOh6CNIq9CyZctKGaUT4YYbbuCss87itttuG7XPf/jDHzj11FPHDd4v9nn79u0V82dgYGCEMnj33Xdz9tln873vfa/ieCwWq1Dopzp3ZnK+TAeO45BKpWakrcWLF7Nx40Y8z6uwhr3wwgul87OFu+++m6VLl3LvvfdWvKPhSTmTxQUXXMDPf/5z7rjjDv793/99pro5AoFAgEsuuYTbb7+d1772tRVjaTQ4jsPevXu56KKLZq1PRxqqMWFVAPDRj36UQCDANddcM8IMPjg4yHve8x6CwWCJSqAc3/zmNyv+/vrXvw5Qyloant4NlLKFiinuV155JV1dXXznO98ZcW02myWdTk/qOVRV5YorruC+++7jJz/5CY7jVLhWpnKvYv+/9rWvVVzzla98ZVJ9ARnvdd5553HnnXfy85//HNM0ueSSSyquGf6+w+Ewy5cvP6j0/8ngsssuQ9M0brzxxhG7fCFEqV8ve9nLaGpq4tZbb8WyrNI1P/zhDydkuG9qauKMM87g+9//Pnv27BlxjyKKnGXD2zsUfSzilFNO4cknn5zUtWeeeSZnnXUW//3f/z0ik+zKK6/Edd2SC7ocjuOU+nPuueei6/oIyosidUk5NE0b8fx33XXXiDilsd7jWJjJ+TJVbN26lRdffHFCBXmyeN3rXkd3d3dFjJvjOHz9618nHA5z5plnzsh9RkPRelb+jZ544gn+9re/Tau9K6+8ktWrV3PTTTfx+OOPj3rNwVgBy/GRj3yE66+/nk9+8pMTXrtlyxZyudyoGbdVTA9VS1gVgIyl+dGPfsS//Mu/sHbt2hGM+f39/fzsZz8blUOpo6ODiy66iNe85jX87W9/K1E6FIXrpz/9aR555BHOP/98Fi9eTG9vL7fccgsLFiwoWd3e8pa3cOedd/Ke97yHhx9+mFNPPRXXdXnhhRe48847+f3vfz8i0HwsvOENb+DrX/86119/PWvXri3FhBQx2Xsde+yxXHXVVdxyyy3E43Fe8YpX8NBDD7F9+/Ypvds3vOENvPnNb+aWW27hvPPOG8EIv3r1as466yxOOOEE6uvrefLJJ7n77rt53/veN6X7TBXLli3jM5/5DB//+MfZtWsXl1xyCTU1NXR0dPDLX/6Sd7/73XzkIx/BMAw+85nPcM0113DOOefwhje8gY6ODn7wgx9MKt7qa1/7GqeddhrHH3887373u0vj6v777y+V1znhhBMAGXj8xje+EcMwuPDCCw9ZHwEuvvhifvKTn7B169ZxrW5FXH/99Zx99tkjjp955plcc801fO5zn2PDhg28+tWvxjAMtm3bxl133cVXv/pVrrjiCubPn891113Hl770pdL8efbZZ/ntb39LY2NjhUXlggsu4NOf/jRve9vbeMUrXsGmTZu44447RjzbsmXLqK2t5dZbb6WmpoZQKMRJJ500blzSTM2X8eA4Drfffjsg3Zu7du3i1ltvxfO8aVuLhuPd7343t912G1dffTVPPfUU7e3t3H333Tz22GN85StfmTDx6GBwwQUXcO+993LppZdy/vnn09HRwa233srq1aunZekzDINf/vKXnHfeeZx22mlcdtllnH766YRCIbq6uvjNb37Dnj17RqXLueeee0rWv3K89a1v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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(7, 6))\n", + "\n", + "plt.scatter(observed, predicted, alpha=0.6)\n", + "\n", + "cap = np.percentile(np.concatenate([observed, predicted]), 90)\n", + "\n", + "plt.plot([0, cap], [0, cap], color=\"red\", linestyle=\"--\")\n", + "\n", + "plt.xlim(0, cap)\n", + "plt.ylim(0, cap)\n", + "\n", + "plt.xlabel(\"Observed Average Daily Boardings\")\n", + "plt.ylabel(\"Predicted Boardings\")\n", + "plt.title(\"Observed vs Predicted (Negative Binomial GLM)\")\n", + "plt.grid(False)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ecda0370-e7ba-44e0-b528-6332ea239a8c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_code
0dcc58c96c33532e549faf9bd89c8542d172026-04-30 03:00:01.083850+00:0091201230284[27][3]82381a59b4772fdc3485a5e160292802NonePOINT(-119.856187 34.410741)Embarcadero & Sabado TardeNoneNone1054
1dcc58c96c33532e549faf9bd89c8542d5772026-04-30 03:00:01.083850+00:0091201230284[27][3]ace4501aacc7cc4014049f82071c69a4NonePOINT(-119.853462 34.41089)Ocean & Sabado TardeNoneNone834
2dcc58c96c33532e549faf9bd89c8542d152026-04-30 03:00:01.083850+00:0091201230284[27][3]382b6a77ef2d0a8bd29fe88d035168cbNonePOINT(-119.857582 34.41187)Seville & Embarcadero Del MarNoneNone1052
3dcc58c96c33532e549faf9bd89c8542d162026-04-30 03:00:01.083850+00:0091241230284[27][3]81b4f17f371ce36097144c19c3cd188bNonePOINT(-119.85734 34.411753)Seville & Embarcadero Del MarNoneNone1053
4dcc58c96c33532e549faf9bd89c8542d182026-04-30 03:00:01.083850+00:0091241230284[27][3]76b24f95f4a726a64073f85a704a7523NonePOINT(-119.856298 34.410651)Embarcadero & Sabado TardeNoneNone1055
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 dcc58c96c33532e549faf9bd89c8542d 17 2026-04-30 03:00:01.083850+00:00 \n", + "1 dcc58c96c33532e549faf9bd89c8542d 577 2026-04-30 03:00:01.083850+00:00 \n", + "2 dcc58c96c33532e549faf9bd89c8542d 15 2026-04-30 03:00:01.083850+00:00 \n", + "3 dcc58c96c33532e549faf9bd89c8542d 16 2026-04-30 03:00:01.083850+00:00 \n", + "4 dcc58c96c33532e549faf9bd89c8542d 18 2026-04-30 03:00:01.083850+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 9 12 0 12 \n", + "1 9 12 0 12 \n", + "2 9 12 0 12 \n", + "3 9 12 4 12 \n", + "4 9 12 4 12 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 30 28 4 [27] \n", + "1 30 28 4 [27] \n", + "2 30 28 4 [27] \n", + "3 30 28 4 [27] \n", + "4 30 28 4 [27] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [3] 82381a59b4772fdc3485a5e160292802 None \n", + "1 [3] ace4501aacc7cc4014049f82071c69a4 None \n", + "2 [3] 382b6a77ef2d0a8bd29fe88d035168cb None \n", + "3 [3] 81b4f17f371ce36097144c19c3cd188b None \n", + "4 [3] 76b24f95f4a726a64073f85a704a7523 None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-119.856187 34.410741) Embarcadero & Sabado Tarde None \n", + "1 POINT(-119.853462 34.41089) Ocean & Sabado Tarde None \n", + "2 POINT(-119.857582 34.41187) Seville & Embarcadero Del Mar None \n", + "3 POINT(-119.85734 34.411753) Seville & Embarcadero Del Mar None \n", + "4 POINT(-119.856298 34.410651) Embarcadero & Sabado Tarde None \n", + "\n", + " stop_desc stop_code \n", + "0 None 1054 \n", + "1 None 834 \n", + "2 None 1052 \n", + "3 None 1053 \n", + "4 None 1055 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# SBMTD data \n", + "feed_keys = [\"dcc58c96c33532e549faf9bd89c8542d\"] \n", + "feed_keys_str = \", \".join(f\"'{k}'\" for k in feed_keys)\n", + "\n", + "# Query only those feed_keys\n", + "with db_engine.connect() as connection:\n", + " query = f\"\"\"\n", + " SELECT \n", + " feed_key, stop_id, _feed_valid_from, n_hours_in_service, daily_arrivals,\n", + " arrivals_early_am, arrivals_am_peak, arrivals_midday, \n", + " arrivals_pm_peak, arrivals_evening,\n", + " route_id_array, route_type_array, stop_key, tts_stop_name,\n", + " pt_geom, stop_name, location_type, stop_desc, stop_code\n", + " FROM cal-itp-data-infra.mart_gtfs.fct_daily_scheduled_stops\n", + " WHERE service_date = DATE('2026-05-02')\n", + " AND feed_key IN ({feed_keys_str})\n", + " AND ('28' IN UNNEST(route_id_array)\n", + " OR '24X' IN UNNEST(route_id_array)\n", + " OR '11' IN UNNEST(route_id_array)\n", + " OR '15X' IN UNNEST(route_id_array)\n", + " OR '27' IN UNNEST(route_id_array)\n", + " )\n", + " \"\"\"\n", + " df_feed = pd.read_sql(query, connection)\n", + "\n", + "df_feed.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7d7fbf2d-f2aa-4009-a4e4-14abeb56239e", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords = {\n", + "\"San Benito Housing\": (34.41949395025939, -119.85428516794293),\n", + "\"UCSB North Hall Inbound\": (34.41543823819993, -119.84793921762432),\n", + "\"UCSB North Hall Outbound\": (34.41528964133994, -119.84781297568064),\n", + "\"UCSB Elings Hall Outbound\": (34.41487045037956, -119.83962136296098),\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3676f5ed-e262-4a07-aa26-73a6fc412cd1", + "metadata": {}, + "outputs": [], + "source": [ + "def create_manual_df(manual_coords):\n", + " rows = []\n", + "\n", + " for i, (stop_name, (lat, lon)) in enumerate(manual_coords.items(), start=1):\n", + " rows.append({\n", + " \"stop_id\": i,\n", + " \"stop_name\": stop_name,\n", + " \"latitude\": lat,\n", + " \"longitude\": lon,\n", + " \"pt_geom\": Point(lon, lat)\n", + " })\n", + "\n", + " return pd.DataFrame(rows)\n", + "\n", + "df_manual = create_manual_df(manual_coords)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0a1c7b85-ce20-4b53-8f7c-142827589776", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert your stops DataFrame to GeoDataFrame\n", + "gdf_29 = gpd.GeoDataFrame(df_manual, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "\n", + "# Project to meters for accurate distance buffering (UTM Zone 11N for LA area)\n", + "gdf_29 = gdf_29.to_crs(epsg=32611)\n", + "\n", + "buffer_distance = 404.672 # in meters\n", + "gdf_29['buffer'] = gdf_29.geometry.buffer(buffer_distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "35139b8e-ed61-4988-b1f8-3cc63a249d5e", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)\n", + "\n", + "acs_gdf = tracts_ca_acs.to_crs(gdf_29.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4d6cd5c1-774b-48a4-a8b8-940af8d4371e", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect = gpd.overlay(acs_gdf, gdf_29.set_geometry('buffer'), how='intersection')\n", + "\n", + "geometry_intersect['area_2'] = geometry_intersect.geometry.area # area of overlap\n", + "geometry_intersect['area_ratio'] = geometry_intersect['area_2'] / geometry_intersect['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect[f'{col}_adj'] = geometry_intersect[col] * geometry_intersect['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "77f1a2d7-707c-48fd-88a7-b723bfbb81d2", + "metadata": {}, + "outputs": [], + "source": [ + "agg = geometry_intersect.groupby(['stop_name']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_29 = gdf_29.merge(\n", + " agg,\n", + " on=['stop_name'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5fc7a5a3-bfd2-41b5-9039-d2290c854ade", + "metadata": {}, + "outputs": [], + "source": [ + "df_existing = df_feed.copy()\n", + "\n", + "# convert string representation of list → actual list\n", + "df_existing['route_id_array_parsed'] = df_existing['route_id_array'].apply(\n", + " lambda x: ast.literal_eval(x) if isinstance(x, str) else x\n", + ")\n", + "\n", + "# compute number of unique routes\n", + "df_existing['n_routes'] = df_existing['route_id_array_parsed'].apply(\n", + " lambda x: len(set(x)) if isinstance(x, list) else 0\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "ff5c254f-919c-40cd-bbf8-036f85f17eb3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_coderoute_id_array_parsedn_routes
0dcc58c96c33532e549faf9bd89c8542d172026-04-30 03:00:01.083850+00:0091201230284[27][3]82381a59b4772fdc3485a5e160292802NonePOINT(-119.856187 34.410741)Embarcadero & Sabado TardeNoneNone1054[27]1
1dcc58c96c33532e549faf9bd89c8542d5772026-04-30 03:00:01.083850+00:0091201230284[27][3]ace4501aacc7cc4014049f82071c69a4NonePOINT(-119.853462 34.41089)Ocean & Sabado TardeNoneNone834[27]1
2dcc58c96c33532e549faf9bd89c8542d152026-04-30 03:00:01.083850+00:0091201230284[27][3]382b6a77ef2d0a8bd29fe88d035168cbNonePOINT(-119.857582 34.41187)Seville & Embarcadero Del MarNoneNone1052[27]1
3dcc58c96c33532e549faf9bd89c8542d162026-04-30 03:00:01.083850+00:0091241230284[27][3]81b4f17f371ce36097144c19c3cd188bNonePOINT(-119.85734 34.411753)Seville & Embarcadero Del MarNoneNone1053[27]1
4dcc58c96c33532e549faf9bd89c8542d182026-04-30 03:00:01.083850+00:0091241230284[27][3]76b24f95f4a726a64073f85a704a7523NonePOINT(-119.856298 34.410651)Embarcadero & Sabado TardeNoneNone1055[27]1
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 dcc58c96c33532e549faf9bd89c8542d 17 2026-04-30 03:00:01.083850+00:00 \n", + "1 dcc58c96c33532e549faf9bd89c8542d 577 2026-04-30 03:00:01.083850+00:00 \n", + "2 dcc58c96c33532e549faf9bd89c8542d 15 2026-04-30 03:00:01.083850+00:00 \n", + "3 dcc58c96c33532e549faf9bd89c8542d 16 2026-04-30 03:00:01.083850+00:00 \n", + "4 dcc58c96c33532e549faf9bd89c8542d 18 2026-04-30 03:00:01.083850+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 9 12 0 12 \n", + "1 9 12 0 12 \n", + "2 9 12 0 12 \n", + "3 9 12 4 12 \n", + "4 9 12 4 12 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 30 28 4 [27] \n", + "1 30 28 4 [27] \n", + "2 30 28 4 [27] \n", + "3 30 28 4 [27] \n", + "4 30 28 4 [27] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [3] 82381a59b4772fdc3485a5e160292802 None \n", + "1 [3] ace4501aacc7cc4014049f82071c69a4 None \n", + "2 [3] 382b6a77ef2d0a8bd29fe88d035168cb None \n", + "3 [3] 81b4f17f371ce36097144c19c3cd188b None \n", + "4 [3] 76b24f95f4a726a64073f85a704a7523 None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-119.856187 34.410741) Embarcadero & Sabado Tarde None \n", + "1 POINT(-119.853462 34.41089) Ocean & Sabado Tarde None \n", + "2 POINT(-119.857582 34.41187) Seville & Embarcadero Del Mar None \n", + "3 POINT(-119.85734 34.411753) Seville & Embarcadero Del Mar None \n", + "4 POINT(-119.856298 34.410651) Embarcadero & Sabado Tarde None \n", + "\n", + " stop_desc stop_code route_id_array_parsed n_routes \n", + "0 None 1054 [27] 1 \n", + "1 None 834 [27] 1 \n", + "2 None 1052 [27] 1 \n", + "3 None 1053 [27] 1 \n", + "4 None 1055 [27] 1 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_existing.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "1bb00808-d6da-46ce-b04c-3f59b1f046c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['stop_id', 'stop_name', 'latitude', 'longitude', 'pt_geom', 'buffer',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_seniors_adj',\n", + " 'total_youth_adj', 'inc_total_lowincome_adj'],\n", + " dtype='object')" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gdf_29.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "953f95be-4664-46e1-a87e-d0b2b681ce0b", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged = gdf_29.merge(\n", + " df_existing[['stop_name', 'n_routes', 'daily_arrivals']],\n", + " on='stop_name',\n", + " how='left'\n", + ")\n", + "\n", + "df_merged[['n_routes', 'daily_arrivals']] = (\n", + " df_merged[['n_routes', 'daily_arrivals']].fillna(0)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5e539e68-8b2f-419c-9a5b-dd041773186f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_idstop_namelatitudelongitudept_geombuffertotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjn_routesdaily_arrivals
01San Benito Housing34.419494-119.854285POINT (237676.247 3812365.404)POLYGON ((238080.919 3812365.404, 238078.970 3...1902.74055632.5762096.8024401702.7975621539.6955600.00.0
12UCSB North Hall Inbound34.415438-119.847939POINT (238246.997 3811899.058)POLYGON ((238651.669 3811899.058, 238649.720 3...1537.6986890.0000007.5620651357.8633271260.5017382.050.0
23UCSB North Hall Outbound34.415290-119.847813POINT (238258.139 3811882.247)POLYGON ((238662.811 3811882.247, 238660.863 3...1543.6674980.0000007.5914181363.1340771265.3945654.0138.0
34UCSB Elings Hall Outbound34.414870-119.839621POINT (239009.950 3811814.601)POLYGON ((239414.622 3811814.601, 239412.673 3...560.6123120.0000002.756968495.048155459.5521852.054.0
\n", + "
" + ], + "text/plain": [ + " stop_id stop_name latitude longitude \\\n", + "0 1 San Benito Housing 34.419494 -119.854285 \n", + "1 2 UCSB North Hall Inbound 34.415438 -119.847939 \n", + "2 3 UCSB North Hall Outbound 34.415290 -119.847813 \n", + "3 4 UCSB Elings Hall Outbound 34.414870 -119.839621 \n", + "\n", + " pt_geom \\\n", + "0 POINT (237676.247 3812365.404) \n", + "1 POINT (238246.997 3811899.058) \n", + "2 POINT (238258.139 3811882.247) \n", + "3 POINT (239009.950 3811814.601) \n", + "\n", + " buffer total_pop_adj \\\n", + "0 POLYGON ((238080.919 3812365.404, 238078.970 3... 1902.740556 \n", + "1 POLYGON ((238651.669 3811899.058, 238649.720 3... 1537.698689 \n", + "2 POLYGON ((238662.811 3811882.247, 238660.863 3... 1543.667498 \n", + "3 POLYGON ((239414.622 3811814.601, 239412.673 3... 560.612312 \n", + "\n", + " workers_with_no_car_adj total_seniors_adj total_youth_adj \\\n", + "0 32.576209 6.802440 1702.797562 \n", + "1 0.000000 7.562065 1357.863327 \n", + "2 0.000000 7.591418 1363.134077 \n", + "3 0.000000 2.756968 495.048155 \n", + "\n", + " inc_total_lowincome_adj n_routes daily_arrivals \n", + "0 1539.695560 0.0 0.0 \n", + "1 1260.501738 2.0 50.0 \n", + "2 1265.394565 4.0 138.0 \n", + "3 459.552185 2.0 54.0 " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_merged" + ] + }, + { + "cell_type": "markdown", + "id": "e7554a2c-acca-4af2-bf15-fba4e43fe810", + "metadata": {}, + "source": [ + "Day: 20 arrivals" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "676ff0d9-c1a8-4596-b9e6-25c251142ce5", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged = df_merged.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "ae7b763f-9404-4575-9b20-6790aa74aadc", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged[\"n_routes_scn\"] = df_merged[\"n_routes\"] + 1\n", + "df_merged[\"daily_arrivals_scn\"] = df_merged[\"daily_arrivals\"] + 20" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "fbabd8fc-8937-4ee0-bdbf-9729c3f886f2", + "metadata": {}, + "outputs": [], + "source": [ + "X_base= df_merged[[\n", + " 'n_routes',\n", + " 'daily_arrivals',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].fillna(0)\n", + "\n", + "X_base = X_base.rename(columns={\n", + " 'n_routes': 'n_routes',\n", + " 'daily_arrivals': 'n_arrivals'\n", + "})\n", + "\n", + "X_base[\"log_arrivals\"] = np.log(X_base[\"n_arrivals\"] + 1)\n", + "\n", + "X_base= sm.add_constant(X_base)\n", + "X_base= X_base[nb_model_extended_final.model.exog_names]\n", + "df_merged['pred_baseline'] = nb_model_extended_final.predict(X_base)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "8565382d-37dd-489a-b30f-e4ec17a7726f", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn = df_merged[[\n", + " 'n_routes_scn',\n", + " 'daily_arrivals_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].copy()\n", + "\n", + "\n", + "\n", + "X_scn = X_scn.rename(columns={\n", + " 'n_routes_scn': 'n_routes',\n", + " 'daily_arrivals_scn': 'n_arrivals'\n", + " \n", + "})\n", + "X_scn[\"log_arrivals\"] = np.log(X_scn[\"n_arrivals\"] + 1)\n", + "\n", + "X_scn = sm.add_constant(X_scn)\n", + "X_scn = X_scn[nb_model_extended_final.model.exog_names]\n", + "df_merged['pred_scenario'] = nb_model_extended_final.predict(X_scn)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "8907b88f-a7f1-4b31-88b6-d790144cb716", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged['ridership_change'] = (\n", + " df_merged['pred_scenario'] - df_merged['pred_baseline']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "9f407e44-a573-4c15-be59-657507ce688d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "157.45167406906438\n" + ] + } + ], + "source": [ + "ridership_change= df_merged[\"ridership_change\"].sum()\n", + "print(ridership_change)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "31629603-bab4-47b1-aecb-15ccec4f5b82", + "metadata": {}, + "outputs": [], + "source": [ + "## Querying NTD Ridership Data for SMBTD" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "626d10e4-cb01-483d-8de0-14d941d9fe2f", + "metadata": {}, + "outputs": [], + "source": [ + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name,\n", + " unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_agencies\n", + " WHERE \n", + " state = 'CA'\n", + " AND report_year = 2024\n", + " AND agency IN (\n", + " 'Santa Barbara Metropolitan Transit District'\n", + " )\n", + " \"\"\"\n", + " ridership_data = pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "584b4bff-2f6e-4942-b3e8-63ed5f5a7dc0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
agencyntd_idreporter_typereport_yearprimary_uza_nameunlinked_passenger_trips_uptagency_voms
0Santa Barbara Metropolitan Transit District90020Full Reporter2024Santa Barbara, CA4684415.071.0
\n", + "
" + ], + "text/plain": [ + " agency ntd_id reporter_type \\\n", + "0 Santa Barbara Metropolitan Transit District 90020 Full Reporter \n", + "\n", + " report_year primary_uza_name unlinked_passenger_trips_upt agency_voms \n", + "0 2024 Santa Barbara, CA 4684415.0 71.0 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c3b3410-d75e-4c7f-8b12-801cc3b67d56", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Pyproject Local (use-venv)", + "language": "python", + "name": "pyproject_local_kernel_use_venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Sunday.ipynb b/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Sunday.ipynb new file mode 100644 index 000000000..d2b4dd336 --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Sunday.ipynb @@ -0,0 +1,1174 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8f2fa784-6182-4039-b267-3ad12c5640f5", + "metadata": {}, + "source": [ + "# UCSB Ridership Modeling Sunday: Analytical Summary and Interpretation" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2747aae9-f823-4183-a212-3143323b787b", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "pd.set_option('display.max_columns', None)\n", + "\n", + "import statsmodels.api as sm\n", + "from scipy.stats import skew\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5f76fda9-0401-45c9-aa94-bd2f92aeef26", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df_sunday.parquet\", \"rb\") as f: \n", + " stop_route_df_sunday = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7f180892-b53d-460a-808c-013b58d4d6a1", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert n_arrivals and n_routes to integer\n", + "stop_route_df_sunday['n_arrivals'] = stop_route_df_sunday['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df_sunday['n_routes'] = stop_route_df_sunday['n_routes'].fillna(0).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "52b16972-eed4-492b-b4bf-6a683789c5cf", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 12315\n", + "Model: GLM Df Residuals: 12307\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -45084.\n", + "Date: Thu, 07 May 2026 Deviance: 22353.\n", + "Time: 18:37:22 Pearson chi2: 1.79e+06\n", + "No. Iterations: 100 Pseudo R-squ. (CS): 0.8679\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const -3.9238 0.056 -69.998 0.000 -4.034 -3.814\n", + "n_routes -0.0472 0.016 -3.026 0.002 -0.078 -0.017\n", + "log_arrivals 1.9336 0.019 102.563 0.000 1.897 1.971\n", + "total_pop_adj 0.0004 3.83e-05 10.594 0.000 0.000 0.000\n", + "workers_with_no_car_adj 0.0022 7.79e-05 28.504 0.000 0.002 0.002\n", + "total_youth_adj 0.0003 4.98e-05 6.417 0.000 0.000 0.000\n", + "total_seniors_adj -0.0018 0.000 -16.407 0.000 -0.002 -0.002\n", + "inc_total_lowincome_adj -0.0006 6.39e-05 -9.235 0.000 -0.001 -0.000\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "# Copy the dataset\n", + "df = stop_route_df_sunday.copy()\n", + "y = df['average_daily_boardings']\n", + "df[\"log_arrivals\"] = np.log(df[\"n_arrivals\"] + 1)\n", + "X = df[['n_routes', 'log_arrivals',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'total_seniors_adj', 'inc_total_lowincome_adj']]\n", + "\n", + "# 4. Add intercept\n", + "X = sm.add_constant(X)\n", + "\n", + "# Same X and y as Poisson\n", + "nb_model_extended_final = sm.GLM(\n", + " y,\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(nb_model_extended_final.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ecda0370-e7ba-44e0-b528-6332ea239a8c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_code
0dcc58c96c33532e549faf9bd89c8542d172026-04-30 03:00:01.083850+00:0091201230284[27][3]82381a59b4772fdc3485a5e160292802NonePOINT(-119.856187 34.410741)Embarcadero & Sabado TardeNoneNone1054
1dcc58c96c33532e549faf9bd89c8542d5772026-04-30 03:00:01.083850+00:0091201230284[27][3]ace4501aacc7cc4014049f82071c69a4NonePOINT(-119.853462 34.41089)Ocean & Sabado TardeNoneNone834
2dcc58c96c33532e549faf9bd89c8542d152026-04-30 03:00:01.083850+00:0091201230284[27][3]382b6a77ef2d0a8bd29fe88d035168cbNonePOINT(-119.857582 34.41187)Seville & Embarcadero Del MarNoneNone1052
3dcc58c96c33532e549faf9bd89c8542d182026-04-30 03:00:01.083850+00:0091241230284[27][3]76b24f95f4a726a64073f85a704a7523NonePOINT(-119.856298 34.410651)Embarcadero & Sabado TardeNoneNone1055
4dcc58c96c33532e549faf9bd89c8542d3512026-04-30 03:00:01.083850+00:0091241230284[27][3]149fbb1a9107d0e466ab56f4eff9be35NonePOINT(-119.853316 34.411008)Ocean & Sabado TardeNoneNone490
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 dcc58c96c33532e549faf9bd89c8542d 17 2026-04-30 03:00:01.083850+00:00 \n", + "1 dcc58c96c33532e549faf9bd89c8542d 577 2026-04-30 03:00:01.083850+00:00 \n", + "2 dcc58c96c33532e549faf9bd89c8542d 15 2026-04-30 03:00:01.083850+00:00 \n", + "3 dcc58c96c33532e549faf9bd89c8542d 18 2026-04-30 03:00:01.083850+00:00 \n", + "4 dcc58c96c33532e549faf9bd89c8542d 351 2026-04-30 03:00:01.083850+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 9 12 0 12 \n", + "1 9 12 0 12 \n", + "2 9 12 0 12 \n", + "3 9 12 4 12 \n", + "4 9 12 4 12 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 30 28 4 [27] \n", + "1 30 28 4 [27] \n", + "2 30 28 4 [27] \n", + "3 30 28 4 [27] \n", + "4 30 28 4 [27] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [3] 82381a59b4772fdc3485a5e160292802 None \n", + "1 [3] ace4501aacc7cc4014049f82071c69a4 None \n", + "2 [3] 382b6a77ef2d0a8bd29fe88d035168cb None \n", + "3 [3] 76b24f95f4a726a64073f85a704a7523 None \n", + "4 [3] 149fbb1a9107d0e466ab56f4eff9be35 None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-119.856187 34.410741) Embarcadero & Sabado Tarde None \n", + "1 POINT(-119.853462 34.41089) Ocean & Sabado Tarde None \n", + "2 POINT(-119.857582 34.41187) Seville & Embarcadero Del Mar None \n", + "3 POINT(-119.856298 34.410651) Embarcadero & Sabado Tarde None \n", + "4 POINT(-119.853316 34.411008) Ocean & Sabado Tarde None \n", + "\n", + " stop_desc stop_code \n", + "0 None 1054 \n", + "1 None 834 \n", + "2 None 1052 \n", + "3 None 1055 \n", + "4 None 490 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# SBMTD data \n", + "feed_keys = [\"dcc58c96c33532e549faf9bd89c8542d\"] \n", + "feed_keys_str = \", \".join(f\"'{k}'\" for k in feed_keys)\n", + "\n", + "# Query only those feed_keys\n", + "with db_engine.connect() as connection:\n", + " query = f\"\"\"\n", + " SELECT \n", + " feed_key, stop_id, _feed_valid_from, n_hours_in_service, daily_arrivals,\n", + " arrivals_early_am, arrivals_am_peak, arrivals_midday, \n", + " arrivals_pm_peak, arrivals_evening,\n", + " route_id_array, route_type_array, stop_key, tts_stop_name,\n", + " pt_geom, stop_name, location_type, stop_desc, stop_code\n", + " FROM cal-itp-data-infra.mart_gtfs.fct_daily_scheduled_stops\n", + " WHERE service_date = DATE('2026-05-03')\n", + " AND feed_key IN ({feed_keys_str})\n", + " AND ('28' IN UNNEST(route_id_array)\n", + " OR '24X' IN UNNEST(route_id_array)\n", + " OR '11' IN UNNEST(route_id_array)\n", + " OR '15X' IN UNNEST(route_id_array)\n", + " OR '27' IN UNNEST(route_id_array)\n", + " )\n", + " \"\"\"\n", + " df_feed = pd.read_sql(query, connection)\n", + "\n", + "df_feed.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7d7fbf2d-f2aa-4009-a4e4-14abeb56239e", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords = {\n", + "\"San Benito Housing\": (34.41949395025939, -119.85428516794293),\n", + "\"UCSB North Hall Inbound\": (34.41543823819993, -119.84793921762432),\n", + "\"UCSB North Hall Outbound\": (34.41528964133994, -119.84781297568064),\n", + "\"UCSB Elings Hall Outbound\": (34.41487045037956, -119.83962136296098),\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "3676f5ed-e262-4a07-aa26-73a6fc412cd1", + "metadata": {}, + "outputs": [], + "source": [ + "def create_manual_df(manual_coords):\n", + " rows = []\n", + "\n", + " for i, (stop_name, (lat, lon)) in enumerate(manual_coords.items(), start=1):\n", + " rows.append({\n", + " \"stop_id\": i,\n", + " \"stop_name\": stop_name,\n", + " \"latitude\": lat,\n", + " \"longitude\": lon,\n", + " \"pt_geom\": Point(lon, lat)\n", + " })\n", + "\n", + " return pd.DataFrame(rows)\n", + "\n", + "df_manual = create_manual_df(manual_coords)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "0a1c7b85-ce20-4b53-8f7c-142827589776", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert your stops DataFrame to GeoDataFrame\n", + "gdf_29 = gpd.GeoDataFrame(df_manual, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "\n", + "# Project to meters for accurate distance buffering (UTM Zone 11N for LA area)\n", + "gdf_29 = gdf_29.to_crs(epsg=32611)\n", + "\n", + "buffer_distance = 404.672 # in meters\n", + "gdf_29['buffer'] = gdf_29.geometry.buffer(buffer_distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "35139b8e-ed61-4988-b1f8-3cc63a249d5e", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)\n", + "\n", + "acs_gdf = tracts_ca_acs.to_crs(gdf_29.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4d6cd5c1-774b-48a4-a8b8-940af8d4371e", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect = gpd.overlay(acs_gdf, gdf_29.set_geometry('buffer'), how='intersection')\n", + "\n", + "geometry_intersect['area_2'] = geometry_intersect.geometry.area # area of overlap\n", + "geometry_intersect['area_ratio'] = geometry_intersect['area_2'] / geometry_intersect['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect[f'{col}_adj'] = geometry_intersect[col] * geometry_intersect['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "77f1a2d7-707c-48fd-88a7-b723bfbb81d2", + "metadata": {}, + "outputs": [], + "source": [ + "agg = geometry_intersect.groupby(['stop_name']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_29 = gdf_29.merge(\n", + " agg,\n", + " on=['stop_name'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5fc7a5a3-bfd2-41b5-9039-d2290c854ade", + "metadata": {}, + "outputs": [], + "source": [ + "df_existing = df_feed.copy()\n", + "\n", + "# convert string representation of list → actual list\n", + "df_existing['route_id_array_parsed'] = df_existing['route_id_array'].apply(\n", + " lambda x: ast.literal_eval(x) if isinstance(x, str) else x\n", + ")\n", + "\n", + "# compute number of unique routes\n", + "df_existing['n_routes'] = df_existing['route_id_array_parsed'].apply(\n", + " lambda x: len(set(x)) if isinstance(x, list) else 0\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ff5c254f-919c-40cd-bbf8-036f85f17eb3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_coderoute_id_array_parsedn_routes
0dcc58c96c33532e549faf9bd89c8542d172026-04-30 03:00:01.083850+00:0091201230284[27][3]82381a59b4772fdc3485a5e160292802NonePOINT(-119.856187 34.410741)Embarcadero & Sabado TardeNoneNone1054[27]1
1dcc58c96c33532e549faf9bd89c8542d5772026-04-30 03:00:01.083850+00:0091201230284[27][3]ace4501aacc7cc4014049f82071c69a4NonePOINT(-119.853462 34.41089)Ocean & Sabado TardeNoneNone834[27]1
2dcc58c96c33532e549faf9bd89c8542d152026-04-30 03:00:01.083850+00:0091201230284[27][3]382b6a77ef2d0a8bd29fe88d035168cbNonePOINT(-119.857582 34.41187)Seville & Embarcadero Del MarNoneNone1052[27]1
3dcc58c96c33532e549faf9bd89c8542d182026-04-30 03:00:01.083850+00:0091241230284[27][3]76b24f95f4a726a64073f85a704a7523NonePOINT(-119.856298 34.410651)Embarcadero & Sabado TardeNoneNone1055[27]1
4dcc58c96c33532e549faf9bd89c8542d3512026-04-30 03:00:01.083850+00:0091241230284[27][3]149fbb1a9107d0e466ab56f4eff9be35NonePOINT(-119.853316 34.411008)Ocean & Sabado TardeNoneNone490[27]1
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 dcc58c96c33532e549faf9bd89c8542d 17 2026-04-30 03:00:01.083850+00:00 \n", + "1 dcc58c96c33532e549faf9bd89c8542d 577 2026-04-30 03:00:01.083850+00:00 \n", + "2 dcc58c96c33532e549faf9bd89c8542d 15 2026-04-30 03:00:01.083850+00:00 \n", + "3 dcc58c96c33532e549faf9bd89c8542d 18 2026-04-30 03:00:01.083850+00:00 \n", + "4 dcc58c96c33532e549faf9bd89c8542d 351 2026-04-30 03:00:01.083850+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 9 12 0 12 \n", + "1 9 12 0 12 \n", + "2 9 12 0 12 \n", + "3 9 12 4 12 \n", + "4 9 12 4 12 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 30 28 4 [27] \n", + "1 30 28 4 [27] \n", + "2 30 28 4 [27] \n", + "3 30 28 4 [27] \n", + "4 30 28 4 [27] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [3] 82381a59b4772fdc3485a5e160292802 None \n", + "1 [3] ace4501aacc7cc4014049f82071c69a4 None \n", + "2 [3] 382b6a77ef2d0a8bd29fe88d035168cb None \n", + "3 [3] 76b24f95f4a726a64073f85a704a7523 None \n", + "4 [3] 149fbb1a9107d0e466ab56f4eff9be35 None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-119.856187 34.410741) Embarcadero & Sabado Tarde None \n", + "1 POINT(-119.853462 34.41089) Ocean & Sabado Tarde None \n", + "2 POINT(-119.857582 34.41187) Seville & Embarcadero Del Mar None \n", + "3 POINT(-119.856298 34.410651) Embarcadero & Sabado Tarde None \n", + "4 POINT(-119.853316 34.411008) Ocean & Sabado Tarde None \n", + "\n", + " stop_desc stop_code route_id_array_parsed n_routes \n", + "0 None 1054 [27] 1 \n", + "1 None 834 [27] 1 \n", + "2 None 1052 [27] 1 \n", + "3 None 1055 [27] 1 \n", + "4 None 490 [27] 1 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_existing.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1bb00808-d6da-46ce-b04c-3f59b1f046c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['stop_id', 'stop_name', 'latitude', 'longitude', 'pt_geom', 'buffer',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_seniors_adj',\n", + " 'total_youth_adj', 'inc_total_lowincome_adj'],\n", + " dtype='object')" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gdf_29.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "953f95be-4664-46e1-a87e-d0b2b681ce0b", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged = gdf_29.merge(\n", + " df_existing[['stop_name', 'n_routes', 'daily_arrivals']],\n", + " on='stop_name',\n", + " how='left'\n", + ")\n", + "\n", + "df_merged[['n_routes', 'daily_arrivals']] = (\n", + " df_merged[['n_routes', 'daily_arrivals']].fillna(0)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5e539e68-8b2f-419c-9a5b-dd041773186f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_idstop_namelatitudelongitudept_geombuffertotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjn_routesdaily_arrivals
01San Benito Housing34.419494-119.854285POINT (237676.247 3812365.404)POLYGON ((238080.919 3812365.404, 238078.970 3...1902.74055632.5762096.8024401702.7975621539.6955600.00.0
12UCSB North Hall Inbound34.415438-119.847939POINT (238246.997 3811899.058)POLYGON ((238651.669 3811899.058, 238649.720 3...1537.6986890.0000007.5620651357.8633271260.5017382.049.0
23UCSB North Hall Outbound34.415290-119.847813POINT (238258.139 3811882.247)POLYGON ((238662.811 3811882.247, 238660.863 3...1543.6674980.0000007.5914181363.1340771265.3945654.0133.0
34UCSB Elings Hall Outbound34.414870-119.839621POINT (239009.950 3811814.601)POLYGON ((239414.622 3811814.601, 239412.673 3...560.6123120.0000002.756968495.048155459.5521852.051.0
\n", + "
" + ], + "text/plain": [ + " stop_id stop_name latitude longitude \\\n", + "0 1 San Benito Housing 34.419494 -119.854285 \n", + "1 2 UCSB North Hall Inbound 34.415438 -119.847939 \n", + "2 3 UCSB North Hall Outbound 34.415290 -119.847813 \n", + "3 4 UCSB Elings Hall Outbound 34.414870 -119.839621 \n", + "\n", + " pt_geom \\\n", + "0 POINT (237676.247 3812365.404) \n", + "1 POINT (238246.997 3811899.058) \n", + "2 POINT (238258.139 3811882.247) \n", + "3 POINT (239009.950 3811814.601) \n", + "\n", + " buffer total_pop_adj \\\n", + "0 POLYGON ((238080.919 3812365.404, 238078.970 3... 1902.740556 \n", + "1 POLYGON ((238651.669 3811899.058, 238649.720 3... 1537.698689 \n", + "2 POLYGON ((238662.811 3811882.247, 238660.863 3... 1543.667498 \n", + "3 POLYGON ((239414.622 3811814.601, 239412.673 3... 560.612312 \n", + "\n", + " workers_with_no_car_adj total_seniors_adj total_youth_adj \\\n", + "0 32.576209 6.802440 1702.797562 \n", + "1 0.000000 7.562065 1357.863327 \n", + "2 0.000000 7.591418 1363.134077 \n", + "3 0.000000 2.756968 495.048155 \n", + "\n", + " inc_total_lowincome_adj n_routes daily_arrivals \n", + "0 1539.695560 0.0 0.0 \n", + "1 1260.501738 2.0 49.0 \n", + "2 1265.394565 4.0 133.0 \n", + "3 459.552185 2.0 51.0 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_merged" + ] + }, + { + "cell_type": "markdown", + "id": "e7554a2c-acca-4af2-bf15-fba4e43fe810", + "metadata": {}, + "source": [ + "Day: 16 arrivals" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "676ff0d9-c1a8-4596-b9e6-25c251142ce5", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged = df_merged.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "ae7b763f-9404-4575-9b20-6790aa74aadc", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged[\"n_routes_scn\"] = df_merged[\"n_routes\"] + 1\n", + "df_merged[\"daily_arrivals_scn\"] = df_merged[\"daily_arrivals\"] + 16" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "fbabd8fc-8937-4ee0-bdbf-9729c3f886f2", + "metadata": {}, + "outputs": [], + "source": [ + "X_base= df_merged[[\n", + " 'n_routes',\n", + " 'daily_arrivals',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].fillna(0)\n", + "\n", + "X_base = X_base.rename(columns={\n", + " 'n_routes': 'n_routes',\n", + " 'daily_arrivals': 'n_arrivals'\n", + "})\n", + "\n", + "X_base[\"log_arrivals\"] = np.log(X_base[\"n_arrivals\"] + 1)\n", + "\n", + "X_base= sm.add_constant(X_base)\n", + "X_base= X_base[nb_model_extended_final.model.exog_names]\n", + "df_merged['pred_baseline'] = nb_model_extended_final.predict(X_base)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "8565382d-37dd-489a-b30f-e4ec17a7726f", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn = df_merged[[\n", + " 'n_routes_scn',\n", + " 'daily_arrivals_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].copy()\n", + "\n", + "\n", + "\n", + "X_scn = X_scn.rename(columns={\n", + " 'n_routes_scn': 'n_routes',\n", + " 'daily_arrivals_scn': 'n_arrivals'\n", + " \n", + "})\n", + "X_scn[\"log_arrivals\"] = np.log(X_scn[\"n_arrivals\"] + 1)\n", + "\n", + "X_scn = sm.add_constant(X_scn)\n", + "X_scn = X_scn[nb_model_extended_final.model.exog_names]\n", + "df_merged['pred_scenario'] = nb_model_extended_final.predict(X_scn)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "8907b88f-a7f1-4b31-88b6-d790144cb716", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged['ridership_change'] = (\n", + " df_merged['pred_scenario'] - df_merged['pred_baseline']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "9f407e44-a573-4c15-be59-657507ce688d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "115.36056904949186\n" + ] + } + ], + "source": [ + "ridership_change= df_merged[\"ridership_change\"].sum()\n", + "print(ridership_change)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "31629603-bab4-47b1-aecb-15ccec4f5b82", + "metadata": {}, + "outputs": [], + "source": [ + "## Querying NTD Ridership Data for SMBTD" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "626d10e4-cb01-483d-8de0-14d941d9fe2f", + "metadata": {}, + "outputs": [], + "source": [ + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name,\n", + " unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_agencies\n", + " WHERE \n", + " state = 'CA'\n", + " AND report_year = 2024\n", + " AND agency IN (\n", + " 'Santa Barbara Metropolitan Transit District'\n", + " )\n", + " \"\"\"\n", + " ridership_data = pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "584b4bff-2f6e-4942-b3e8-63ed5f5a7dc0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
agencyntd_idreporter_typereport_yearprimary_uza_nameunlinked_passenger_trips_uptagency_voms
0Santa Barbara Metropolitan Transit District90020Full Reporter2024Santa Barbara, CA4684415.071.0
\n", + "
" + ], + "text/plain": [ + " agency ntd_id reporter_type \\\n", + "0 Santa Barbara Metropolitan Transit District 90020 Full Reporter \n", + "\n", + " report_year primary_uza_name unlinked_passenger_trips_upt agency_voms \n", + "0 2024 Santa Barbara, CA 4684415.0 71.0 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c3b3410-d75e-4c7f-8b12-801cc3b67d56", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Pyproject Local (use-venv)", + "language": "python", + "name": "pyproject_local_kernel_use_venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Weekday.ipynb b/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Weekday.ipynb new file mode 100644 index 000000000..fb7b7617b --- /dev/null +++ b/ahsc_grant/ahsc_grant_cycle2/UCSB_Ridership_Exploration/Weekday.ipynb @@ -0,0 +1,1804 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8f2fa784-6182-4039-b267-3ad12c5640f5", + "metadata": {}, + "source": [ + "# UCSB Ridership Modeling Weekday: Analytical Summary and Interpretation" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2747aae9-f823-4183-a212-3143323b787b", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing necessary package \n", + "import pandas as pd \n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import os\n", + "import google.auth\n", + "import gcsfs\n", + "fs = gcsfs.GCSFileSystem()\n", + "from calitp_data_analysis.sql import get_engine\n", + "db_engine = get_engine()\n", + "credentials, project = google.auth.default()\n", + "pd.set_option('display.max_columns', None)\n", + "\n", + "import statsmodels.api as sm\n", + "from scipy.stats import skew\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.stats.outliers_influence import variance_inflation_factor\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5f76fda9-0401-45c9-aa94-bd2f92aeef26", + "metadata": {}, + "outputs": [], + "source": [ + "GCS_FILE_PATH = 'gs://calitp-analytics-data/data-analyses/ahsc_grant/ahsc_riderships/AHSC_2026'\n", + "with fs.open(f\"{GCS_FILE_PATH}/stop_route_df.parquet\", \"rb\") as f: \n", + " stop_route_df = gpd.read_parquet(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7f180892-b53d-460a-808c-013b58d4d6a1", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert n_arrivals and n_routes to integer\n", + "stop_route_df['n_arrivals'] = stop_route_df['n_arrivals'].fillna(0).astype(int)\n", + "stop_route_df['n_routes'] = stop_route_df['n_routes'].fillna(0).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "52b16972-eed4-492b-b4bf-6a683789c5cf", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/jovyan/data-analyses/.venv/lib/python3.11/site-packages/statsmodels/genmod/families/family.py:1367: ValueWarning: Negative binomial dispersion parameter alpha not set. Using default value alpha=1.0.\n", + " warnings.warn(\"Negative binomial dispersion parameter alpha not \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "===================================================================================\n", + "Dep. Variable: average_daily_boardings No. Observations: 21264\n", + "Model: GLM Df Residuals: 21256\n", + "Model Family: NegativeBinomial Df Model: 7\n", + "Link Function: Log Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -82793.\n", + "Date: Mon, 11 May 2026 Deviance: 38268.\n", + "Time: 18:34:44 Pearson chi2: 2.85e+05\n", + "No. Iterations: 51 Pseudo R-squ. (CS): 0.8306\n", + "Covariance Type: nonrobust \n", + "===========================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "-------------------------------------------------------------------------------------------\n", + "const -2.0873 0.037 -56.166 0.000 -2.160 -2.014\n", + "n_routes -0.1204 0.009 -12.712 0.000 -0.139 -0.102\n", + "log_arrivals 1.4387 0.011 128.208 0.000 1.417 1.461\n", + "total_pop_adj 0.0002 3.31e-05 6.058 0.000 0.000 0.000\n", + "workers_with_no_car_adj 0.0033 0.000 28.562 0.000 0.003 0.004\n", + "total_youth_adj 0.0008 4.45e-05 17.017 0.000 0.001 0.001\n", + "total_seniors_adj -0.0010 8.54e-05 -11.163 0.000 -0.001 -0.001\n", + "inc_total_lowincome_adj -0.0004 5.63e-05 -6.765 0.000 -0.000 -0.000\n", + "===========================================================================================\n" + ] + } + ], + "source": [ + "# Copy the dataset\n", + "df = stop_route_df.copy()\n", + "y = df['average_daily_boardings']\n", + "df[\"log_arrivals\"] = np.log(df[\"n_arrivals\"] + 1)\n", + "X = df[['n_routes', 'log_arrivals',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_youth_adj', 'total_seniors_adj', 'inc_total_lowincome_adj']]\n", + "\n", + "# 4. Add intercept\n", + "X = sm.add_constant(X)\n", + "\n", + "# Same X and y as Poisson\n", + "nb_model_extended_final = sm.GLM(\n", + " y,\n", + " X,\n", + " family=sm.families.NegativeBinomial()\n", + ").fit()\n", + "\n", + "print(nb_model_extended_final.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c67c366b-c2be-4e98-bf09-bda67d8b7cfb", + "metadata": {}, + "outputs": [], + "source": [ + "# observed values\n", + "observed = df[\"average_daily_boardings\"]\n", + "\n", + "# predicted values from fixed-effects model\n", + "predicted = nb_model_extended_final.predict()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e5e5443a-91db-4c78-acfb-219a49bf7b80", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAIjCAYAAABLZcwsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnXecZGWV9783VuyqjjPd05N6AmGYGaKCZEFFBUkiimFFV8F1FXVNr+sqQdRdXBXDKmBChVVJBkQFjCgCBsLMMMCknpme7unclatufN4/nlt3qjpN9wTG96V/n8+IXXWr7lP3Sec553d+RxFCCOYwhznMYQ5zmMMc5vC8Qj3UDZjDHOYwhznMYQ5zeCFizgibwxzmMIc5zGEOczgEmDPC5jCHOcxhDnOYwxwOAeaMsDnMYQ5zmMMc5jCHQ4A5I2wOc5jDHOYwhznM4RBgzgibwxzmMIc5zGEOczgEmDPC5jCHOcxhDnOYwxwOAeaMsDnMYQ5zmMMc5jCHQ4A5I2wOc5jDHOYwhznM4RBgzgibwz7jmmuuQVEUhoeHD3VTnncoisI111xzqJtxyHHmmWdy5plnhn9v374dRVG49dZbD1mbxmN8G6dDoVBg3rx53H777Qe3UYcAl19+OUuXLj3UzZgWv//971EUhd///veHuinTYjZjajz+X1073vCGN3DppZce6mb8f4c5I2wOdXj66ad585vfTGdnJ5FIhAULFvCmN72Jp59++lA3bQ7jUN2wqv8Mw2DZsmX80z/9E9u2bTvUzZsV/vznP3PNNdeQyWQOaTu+9KUv0dDQwBve8IbwtephY/78+ZRKpQmfWbp0Keedd97z2cwp0dfXxzXXXMOTTz55qJsS4vLLL68bp7qus2jRIt7whjewcePGQ928f2jkcjk+/elPc8IJJ5BOp4lEIixZsoTXv/713HfffXXXVteDu+66a9rvrPbDO97xjknf//jHPx5eU3vA/uhHP8rdd9/NU089tf8/bA4h9EPdgDn84+Cee+7hsssuo7m5mX/+53+mq6uL7du3861vfYu77rqLH/7wh1x00UWHuplzGIerrrqKF73oRTiOw+OPP84tt9zCfffdx/r161mwYMHz2pYlS5ZQLpcxDGNWn/vzn//Mtddey+WXX05jY+PBadxe4DgOX/rSl/jABz6ApmkT3h8cHOTrX/86H/zgBw9B62aGvr4+rr32WpYuXcoxxxxT9943vvENfN8/JO2KRCJ885vfBMB1XbZu3cpNN93Er371KzZu3BiO09NPP51yuYxpmoeknTPFAw88cNDvsWXLFs455xx27NjBRRddxD/90z+RTCbp6enhF7/4Beeddx7f+973eMtb3jLr745Go9x999187Wtfm/Csf/CDHxCNRqlUKnWvH3vssZxwwgl8/vOf53vf+95+/bY57MGcETYHALZu3cpb3vIWli1bxkMPPURbW1v43vve9z5OO+003vKWt7Bu3TqWLVt2CFs6Eb7vY9s20Wj0UDflkOC0007jkksuAeBtb3sbhx12GFdddRXf/e53+djHPjbpZ4rFIolE4oC3RVGU/2f74ec//zlDQ0NThlyOOeYYPve5z/Hud7+bWCz2PLdu/zFbw/hAQtd13vzmN9e9dtJJJ3Heeedx33338c53vhMAVVX/nxg/B9tIdF2Xiy66iIGBAf7whz9wyimn1L1/9dVX88ADD+B53j59/ytf+Up+9rOf8ctf/pILLrggfP3Pf/4z3d3dvPa1r+Xuu++e8LlLL72Uq6++mq997Wskk8l9uvcc6jEXjpwDAJ/73OcolUrccsstdQYYQGtrKzfffDPFYpEbbrhhwmeHh4e59NJLSaVStLS08L73vW/CKerBBx/k1FNPpbGxkWQyyeGHH86///u/111jWRZXX301K1asIBKJsGjRIj7ykY9gWVbddYqi8J73vIfbb7+do446ikgkwr333ktzczNve9vbJrQvl8sRjUb50Ic+NOt7WZbFBz7wAdra2mhoaOD8889n165de32eAwMD6LrOtddeO+G95557DkVR+OpXvwpID8y1117LypUriUajtLS0cOqpp/Lggw/u9T6T4ayzzgKgu7sb2BNO27hxI2984xtpamri1FNPDa+/7bbbOP7444nFYjQ3N/OGN7yBnp6eCd97yy23sHz5cmKxGC9+8Yv54x//OOGaqThhzz77LJdeeiltbW3EYjEOP/xwPv7xj4ft+/CHPwxAV1dXGArZvn37QWnjVPjJT37C0qVLWb58+aTvf/KTn2RgYICvf/3re/0u3/e58cYbOeqoo4hGo8yfP58rr7ySsbGxCdddc801LFiwgHg8zktf+lI2btzI0qVLufzyy8PrRkdH+dCHPsSaNWtIJpOkUile9apX1YWGfv/73/OiF70IkMZ49TlW+6KWE+Y4zkGZL7NBe3s7IA202t8wnhN25plnsnr1ajZu3MhLX/pS4vE4nZ2dk65Fg4OD/PM//zPz588nGo1y9NFH893vfrfumuoY/e///m/+53/+h2XLlhGPx3nFK15BT08PQgg+9alPsXDhQmKxGBdccAGjo6N13zGeE2bbNp/85Cc5/vjjSafTJBIJTjvtNH73u9/t07O588472bBhA5/4xCcmGGBVvOIVr+BVr3rVPn1/Z2cnp59+Ov/7v/9b9/rtt9/OmjVrWL169aSfe/nLX06xWNzntWkOEzHnCZsDAPfeey9Lly7ltNNOm/T9008/naVLl07gIYA8HS1dupTPfvazPProo3z5y19mbGwsdFk//fTTnHfeeaxdu5brrruOSCTCli1bePjhh8Pv8H2f888/nz/96U9cccUVHHnkkaxfv54vfvGLbNq0iZ/85Cd19/ztb3/LHXfcwXve8x5aW1tZuXIlF110Effccw8333xz3Un1Jz/5CZZlhTyf2dzrHe94B7fddhtvfOMbOfnkk/ntb3/Lueeeu9fnOX/+fM444wzuuOMOrr766rr3fvSjH6FpGq973esAaYR89rOf5R3veAcvfvGLyeVy/O1vf+Pxxx/n5S9/+V7vNR5bt24FoKWlpe71173udaxcuZLPfOYzCCEA+PSnP80nPvEJLr30Ut7xjncwNDTEV77yFU4//XSeeOKJMDT4rW99iyuvvJKTTz6Z97///Wzbto3zzz+f5uZmFi1aNG171q1bx2mnnYZhGFxxxRUsXbqUrVu3cu+99/LpT3+aiy++mE2bNvGDH/yAL37xi7S2tgKEh4Hno40gvQDHHXfclO+fdtppnHXWWdxwww38y7/8y7TesCuvvJJbb72Vt73tbVx11VV0d3fz1a9+lSeeeIKHH3449Ep97GMf44YbbuA1r3kN55xzDk899RTnnHPOhEPMtm3b+MlPfsLrXvc6urq6GBgY4Oabb+aMM84Iw3lHHnkk1113HZ/85Ce54oorwrl88sknT2ifYRgHZb5Mhyq/yPM8tm3bxkc/+lFaWlpmxKcbGxvjla98JRdffDGXXnopd911Fx/96EdZs2ZNaIiUy2XOPPNMtmzZwnve8x66urq48847ufzyy8lkMrzvfe+r+87bb78d27Z573vfy+joKDfccAOXXnopZ511Fr///e/56Ec/ypYtW/jKV77Chz70Ib797W9P2b5cLsc3v/lNLrvsMt75zneSz+f51re+xTnnnMNf/vKXCaHhveHee+8FmOA9PJB44xvfyPve9z4KhQLJZBLXdbnzzjv5t3/7twnjr4pVq1YRi8V4+OGH56gpBwpiDi94ZDIZAYgLLrhg2uvOP/98AYhcLieEEOLqq68WgDj//PPrrnv3u98tAPHUU08JIYT44he/KAAxNDQ05Xd///vfF6qqij/+8Y91r990000CEA8//HD4GiBUVRVPP/103bX333+/AMS9995b9/qrX/1qsWzZslnf68knnxSAePe731133Rvf+EYBiKuvvnrK3yOEEDfffLMAxPr16+teX7VqlTjrrLPCv48++mhx7rnnTvtdk+F3v/udAMS3v/1tMTQ0JPr6+sR9990nli5dKhRFEX/961+FEHv66bLLLqv7/Pbt24WmaeLTn/503evr168Xuq6Hr9u2LebNmyeOOeYYYVlWeN0tt9wiAHHGGWeEr3V3dwtAfOc73wlfO/3000VDQ4PYsWNH3X183w///+c+9zkBiO7u7oPexsngOI5QFEV88IMfnPBe9fkNDQ2JP/zhDwIQX/jCF8L3lyxZUtd/f/zjHwUgbr/99rrv+dWvflX3en9/v9B1XVx44YV1111zzTUCEG9961vD1yqVivA8r+667u5uEYlExHXXXRe+9te//nXC86/irW99q1iyZEn494GeL1PhrW99qwAm/Ovs7BR///vf666tjunf/e534WtnnHGGAMT3vve98DXLskR7e7t47WtfG7524403CkDcdttt4Wu2bYuXvOQlIplMhutWdYy2tbWJTCYTXvuxj31MAOLoo48WjuOEr1922WXCNE1RqVTq2lQ7plzXrRt3QggxNjYm5s+fL97+9rfXvT6TtePYY48VjY2NE14vFApiaGgo/JfNZsP3qs/uzjvvnPa7AfGv//qvYnR0VJimKb7//e8LIYS47777hKIoYvv27XVjfjwOO+ww8apXvWrae8xh5pgLR86BfD4PQENDw7TXVd/P5XJ1r//rv/5r3d/vfe97AfjFL34BEHoqfvrTn05JDL7zzjs58sgjOeKIIxgeHg7/VUNr4936Z5xxBqtWrap77ayzzqK1tZUf/ehH4WtjY2M8+OCDvP71r5/1vartv+qqq+ru8/73v3/S3zAeF198Mbqu17Vnw4YNbNy4sa49jY2NPP3002zevHlG3zseb3/722lra2PBggWce+65FItFvvvd73LCCSfUXfeud72r7u977rkH3/e59NJL655De3s7K1euDJ/D3/72NwYHB3nXu95V5zG5/PLLSafT07ZtaGiIhx56iLe//e0sXry47j1FUfb6256PNoIM9wkhaGpqmva6008/nZe+9KXccMMNlMvlSa+58847SafTvPzlL69r8/HHH08ymQzb/Jvf/AbXdXn3u99d9/nq/KlFJBJBVeVy7XkeIyMjYVj/8ccf3+vvmwwHer5Mh2g0yoMPPsiDDz7I/fffz80330wymeTVr341mzZt2uvnk8lknVfINE1e/OIX12UB/+IXv6C9vZ3LLrssfM0wDK666ioKhQJ/+MMf6r7zda97Xd3YOPHEEwHpfaoNkZ544onYtk1vb++U7dM0LRx3vu8zOjqK67qccMIJ+9Q/uVxuUs7Vxz/+cdra2sJ/b3zjG2f93VU0NTXxyle+kh/84AcA/O///i8nn3wyS5Ys2evnXoiyRAcLc+HIOYTGVdUYmwpTGWsrV66s+3v58uWoqhpyel7/+tfzzW9+k3e84x38n//zfzj77LO5+OKLueSSS8KNZfPmzTzzzDMT+GhVDA4O1v3d1dU14Rpd13nta1/L//7v/2JZFpFIhHvuuQfHceo2lZnea8eOHaiqOoEjdPjhh0/6ufFobW3l7LPP5o477uBTn/oUIEORuq5z8cUXh9ddd911XHDBBRx22GGsXr2aV77ylbzlLW9h7dq1M7rPJz/5SU477TQ0TaO1tZUjjzyybhOpYvwz27x5M0KICf1XRTVktmPHDmBiP1clMaZDdZOcimOyNzwfbayFCMK00+Gaa67hjDPO4KabbuIDH/jApG3OZrPMmzdv0s/Xji+AFStW1L3f3Nw8wRj0fZ8vfelLfO1rX6O7u7uOkD0+7DxTHOj5Mh00TeNlL3tZ3WuvfvWrWblyJR/72McmJYHXYuHChROM9qamJtatWxf+vWPHDlauXBmuKVUceeSR4fu1GH8oqBpk40PX1dfH8/nG47vf/S6f//znefbZZ3EcJ3x9srVqb2hoaGBkZGTC6+9+97vD8O2BCFW+8Y1v5C1veQs7d+7kJz/5yaQ8u/EQQszoADWHmWHOCJsD6XSajo6OugVtMqxbt47Ozk5SqdS0142foLFYjIceeojf/e533HffffzqV7/iRz/6EWeddRYPPPAAmqbh+z5r1qzhC1/4wqTfOX5hnIqP84Y3vIGbb76ZX/7yl1x44YXccccdHHHEERx99NHhNbO91/7gDW94A29729t48sknOeaYY7jjjjs4++yzQ94TSO/K1q1b+elPf8oDDzzAN7/5Tb74xS9y0003TanlU4s1a9ZM2OAmw/hn5vs+iqLwy1/+clJJhn+E7Kfnq43Nzc0oirLXjRZkf5155pnccMMNE7yL1TZPJ/g6lTEzHT7zmc/wiU98gre//e186lOform5GVVVef/7379fshOHcr4sXLiQww8/nIceemiv107W9zAzo3m237kv97rtttu4/PLLufDCC/nwhz/MvHnz0DSNz372syFHczY44ogjePLJJ+nt7aWzszN8/bDDDuOwww4DOCBZpOeffz6RSIS3vvWtWJY1IzHWsbGxKQ9Fc5g95oywOQBw3nnn8Y1vfIM//elPdZlzVfzxj39k+/btXHnllRPe27x5c91pb8uWLfi+X6fOraoqZ599NmeffTZf+MIX+MxnPsPHP/5xfve73/Gyl72M5cuX89RTT3H22Wfv1ynr9NNPp6Ojgx/96Eeceuqp/Pa3vw2z8KqY6b2WLFmC7/ts3bq1zvv13HPPzbg9F154IVdeeWUY8tm0adOkshHVTLW3ve1tFAoFTj/9dK655poZGWH7iuXLlyOEoKurK1zYJ0M1PLF58+YwBAUyw667u7tuwx6Pqhdqw4YN07Zlqn54PtoI0iu0fPnyMKN0b7jmmms488wzufnmmydt869//WtOOeWUacn71TZv2bKlbv6MjIxMMAbvuusuXvrSl/Ktb32r7vVMJlNn0M927hzI+bIvcF2XQqFwQL5ryZIlrFu3Dt/367xhzz77bPj+wcJdd93FsmXLuOeee+qe0fiknJnivPPO44c//CG33347H/nIRw5UMycgFotx4YUXctttt/GqV72qbixNBtd16enp4fzzzz9obXqhYY4TNgcAPvzhDxOLxbjyyisnuMFHR0d517veRTweD6UEavE///M/dX9/5StfAQizlsandwNhtlA1xf3SSy+lt7eXb3zjGxOuLZfLFIvFGf0OVVW55JJLuPfee/n+97+P67p1oZXZ3Kva/i9/+ct119x4440zagtIvtc555zDHXfcwQ9/+ENM0+TCCy+su2b8804mk6xYsWK/0v9ngosvvhhN07j22msnnPKFEGG7TjjhBNra2rjpppuwbTu85tZbb92rwn1bWxunn3463/72t9m5c+eEe1RR1Swb/33PRxureMlLXsLf/va3GV17xhlncOaZZ/Jf//VfEzLJLr30UjzPC0PQtXBdN2zP2Wefja7rEyQvqtIltdA0bcLvv/POOyfwlKZ6jlPhQM6X2WLTpk0899xzezWQZ4pXv/rV9Pf313HcXNflK1/5CslkkjPOOOOA3GcyVL1ntX302GOP8cgjj+zT91166aWsWrWKT33qUzz66KOTXrM/XsBafOhDH+Lqq6/mE5/4xF6v3bhxI5VKZdKM2znsG+Y8YXMAJJfmu9/9Lm9605tYs2bNBMX84eFhfvCDH0yqodTd3c3555/PK1/5Sh555JFQ0qG6uF533XU89NBDnHvuuSxZsoTBwUG+9rWvsXDhwtDr9pa3vIU77riDd73rXfzud7/jlFNOwfM8nn32We644w7uv//+CUTzqfD617+er3zlK1x99dWsWbMm5IRUMdN7HXPMMVx22WV87WtfI5vNcvLJJ/Ob3/yGLVu2zOrZvv71r+fNb34zX/va1zjnnHMmKMKvWrWKM888k+OPP57m5mb+9re/cdddd/Ge97xnVveZLZYvX87111/Pxz72MbZv386FF15IQ0MD3d3d/PjHP+aKK67gQx/6EIZhcP3113PllVdy1lln8frXv57u7m6+853vzIhv9eUvf5lTTz2V4447jiuuuCIcV/fdd19YXuf4448HJPH4DW94A4Zh8JrXvOZ5ayPABRdcwPe//302bdo0rdetiquvvpqXvvSlE14/44wzuPLKK/nsZz/Lk08+ySte8QoMw2Dz5s3ceeedfOlLX+KSSy5h/vz5vO997+Pzn/98OH+eeuopfvnLX9La2lrnUTnvvPO47rrreNvb3sbJJ5/M+vXruf322yf8tuXLl9PY2MhNN91EQ0MDiUSCE088cVpe0oGaL9PBdV1uu+02QIY3t2/fzk033YTv+/vsLRqPK664gptvvpnLL7+cv//97yxdupS77rqLhx9+mBtvvHGviUf7g/POO4977rmHiy66iHPPPZfu7m5uuukmVq1atU+ePsMw+PGPf8w555zDqaeeysUXX8xpp51GIpGgt7eXn/3sZ+zcuXNSuZy777479P7V4q1vfeukoeOjjz56xobwgw8+SDwe3yfpnDlMgec9H3MO/9BYt26duOyyy0RHR4cwDEO0t7eLyy67bILMghB7Uvc3btwoLrnkEtHQ0CCamprEe97zHlEul8PrfvOb34gLLrhALFiwQJimKRYsWCAuu+wysWnTprrvs21b/Nd//Zc46qijRCQSEU1NTeL4448X1157bV0qNkGK9VTwfV8sWrRIAOL666+f9JqZ3qtcLourrrpKtLS0iEQiIV7zmteInp6eGaWZV5HL5UQsFpuQPl/F9ddfL1784heLxsZGEYvFxBFHHCE+/elPC9u2p/3emaakT5duLoQQd999tzj11FNFIpEQiURCHHHEEeJf//VfxXPPPVd33de+9jXR1dUlIpGIOOGEE8RDDz00IVV/MokKIYTYsGGDuOiii0RjY6OIRqPi8MMPF5/4xCfqrvnUpz4lOjs7haqqE+QqDmQbp4JlWaK1tVV86lOfmvHzq8onTCYxcsstt4jjjz9exGIx0dDQINasWSM+8pGPiL6+vvAa13XFJz7xCdHe3i5isZg466yzxDPPPCNaWlrEu971rvC6SqUiPvjBD4qOjg4Ri8XEKaecIh555JFJf9tPf/pTsWrVKqHrel1fjJeoqOJAzpfJMJlERSqVEmeffbb49a9/XXftVBIVRx111KTfO/73DAwMiLe97W2itbVVmKYp1qxZM2EsVsfo5z73uUnvPX4+fec73xFAKPlSbVPtc/d9X3zmM58RS5YsEZFIRBx77LHi5z//+aRtnM3akclkxHXXXSeOPfZYkUwmhWmaYtGiReKSSy6ZIC1Sbf9U/6oSI3tbP4WYesyfeOKJ4s1vfvOM2j6HmUER4gD5NOcwhznM4f9xfOpTn+I73/kOmzdvnpKgfbCRyWRoamri+uuvn8DPmsMcDhWefPJJjjvuOB5//PFZi8/OYWrMccLmMIc5zCHABz7wAQqFAj/84Q+fl/tNpjVW5RzWlsWZwxwONf7zP/+TSy65ZM4AO8CY84TNYQ5zmMMhwq233sqtt97Kq1/9apLJJH/605/4wQ9+wCte8Qruv//+Q928OcxhDgcZc8T8OcxhDnM4RFi7di26rnPDDTeQy+VCsv71119/qJs2hznM4XnAnCdsDnOYwxzmMIc5zOEQYI4TNoc5zGEOc5jDHOZwCDBnhM1hDnOYwxzmMIc5HAL8f88J832fvr4+Ghoa5oqOzmEOc5jDHOYwh4MKIQT5fJ4FCxZMKCg/Hv/fG2F9fX0HtCDzHOYwhznMYQ5zmMPe0NPTw8KFC6e95v97I6xaqqLrPd9DmFE0RcEH0lH502Omjq4qOJ5PpuxwZHuKj7zycI5oT/Ff9z/Lxt4cy9oSdV40IQTbhooc1ZnmI+cczrP9OW76w1bGig7tqShRU6Nie/TnKjQlDN51xnJWLUhPaNvTvRm++OvNjBVt5qUi6KrC0705irZLImJwVGeKqKbRn6vQGNc5/+hO7n+6nx2jJY5sb6izsH3f55n+PEubE7zrpcvoaknybH+Onz7Vx7ahIrbj43g+lucR0TQMTcU0VJa1Jbjg6AUT2nfvU73c+OtN5CsuuqqiKoKyI4joCsmIwaoFKRrjZvg8chWHnaNlzljZwp+3jtKUMJjfEIXguQkheGpXhpG8ha4qHL4ghampGKpKIqLRPVwKn+dvnx3kunufxheCZNRAVxVcX1C2XSK6xtLWBAL491cfQVdrEoCNfVl++lQf63uy9GfLWJ5PRFdpSpgsa0lwzup2OtJRbn5o2177qXu4wMfv2UB/roLn++EYcX2fYsVFAdrSUW64ZC3L2yaWQlm/K8N/37+JxS1xNFX+/rGSzca+HLbrETXkfQ9rb6Di+NOOkervqvbhZH22t2s29mX3aXweSGzsy/L1P2xlw64sjufTGDdwfSjbLqausaqjgdGiw1Gdac5b284tM+inqdA9XOAz9z1DX6ZMwXJpiBrh/LUcj2zFpuL4JE0dH8G8higtiQg9YyVs1wv6GwZyFmXHx9AUGmMGBdvF90FXwfEEuqagqgqrF6S56NhO1vVm9/SBrtDWEOWkZc0c1Zmid6zM13+/lXTMYHe2TKbkhO2yHI/Rko3nCaKmyryGKIe1JenPWwesf2Y7BrqHC3zmF8/SGDVIRCduE8WKS6bi1M3B5wO17bI8j3U9WZJRPexfx/OxXZ/jFjdiuT6P7xyjMWZQdnw83wcgb7kIAZqqEDc0TlrWzOWndB3wOVD7zOc3RNg8VGC0YKEoEDX0cA0dv5+o6j9uxGY242im146/zhU+j+8Yw/cFmqoSNTVs18f3BaqqEDNU0jGTT110FHf8bRd/2z6K6/nkK154TUNUQ9dUXrS0Zcpn6vuCHaNFChWXZFRnSbOsu1rd9+c1mPx1+xglxwvGC7iewNQVIrqGpqq0p6J8+uLVANx//dd5+/dvwHRtNi9cxgm7ts2oVNb/90ZYdXIasTi2GsUFGqI6L17WQvdIkVzZpez7uIogkYxy4YtX8OLDFqKqCm869Qi+/JvN9BRsOtJRYqZG2XLpHiuSSCQ546hFJJMN3L95FwXf5MglzeH94kBTk2DLYIEHNufD76zC9wUPbO6hhElXRwpDV9k8WIBInPaUTqbs0J0VrF4Q54jGFFuHijw97PLeV67lK7/dwq7injb1Zys821/E8zX0Enzh97toipsM5iq4vqCjuQnL8Vi3K0PB8klENdYuTBPVNTaPlvn2Xwa46uwUqzvl5NnQm+UP3UXamptI2B5l26Pi+Pg4+LrGss5G5rfIAYsQ5C0XW1FJpwyOWdHJukGXztZEaIAA5MoOJREhlY5ScXwakimak5Hw/cV6nJ6CzbCtsm7Qwown8YUgGmxUBhBLCDIlm+6sz6vXdLBmaQeqqrChN8u3/zLArjGLEVuDSJwIkK845HKCXYUif+3bTjpuENVVuuY343oCV1NpatJpakrX9ZOf8RiyVDBjNNVs4AYQjUuDM+cqYMRJpVITxlxHm0oy1YCvm8SjOkIIeodsPD1KU9LA9QXC8GlraSIZ0accI9XfNVr06GhukuPP9ur6DNjrNScdsYhkQ4q7H9/FlsECYyWfiGFy/MoWLj6uM+x33xdsHymSr7g0RHWWtiQOyIbg+4L7N/cwYmvo0QQJQx4Cap9nX0lh5fwWevIOd60fnfV8qkPWp0QEWxM0pOS9QBpgOcvG13UMTaAaGrqqkHVhcMTB0EyaGyPhPRuVKE7eQihgqRqtTUmyZRfL9VB10DSVpS0JPnHRGtYsbOT1wfN7qifDnzYPM5i3+MGTw4z9uQ8EVFyFnoJDYywGpkHWE8RNnWhCIYKJ6/lETZ14MkpJNTl+ZWtd/+wPTkqlZjQGap+h0GOkG+vncRV6VDA2XJxyDhw01LSraLmYcQ90FT3oY00InIoLZpwdY3kUM44WMUFxiesqYyUHPSLwgYimoGoqj/fbeI/1876XpQ7Is4Y9Y746jvMVlzIO6cYYhqaQLTv0FhW5jioKi7UYPQWbUUdjWdvzZ9TOFjMdR+N//1Tz+IQVnROvE4K2AgxkKxQcj5KjMK8hjq6quL7PaMFGiRjokQQnHb6QX2/OUbY9UrEopq5iuz5DZYeYqXHi4Z00Nk7s0w292fA3WI5PxFBZMS/JSV0t7CrA4vZWLMfFUksophwriqKgC/B8QTJpUnY8hiwFX49x9M9u5+jvSFmZZ44/nTuvvBquOHtGFKhDboT19vby0Y9+lF/+8peUSiVWrFjBd77znbAgrBCCq6++mm984xtkMhlOOeUUvv71r7Ny5cpZ3adWhyNhaDQnTJoTJrvGymwfKTJWtDEjOg9s7Kd7pMhrj1vI6s40V529MuysbcM2YyVbfp8Ptz22kweeHmDbcJGFTfEJD1xRFDrSMTYP5tk+UqybXA9uHOD+jf3Yrs9A1kIgKNkecUNjtCRP6gXLpWS5NCdN5jdEeWpXhhOWNvLa4xbyyLZhtg4V2TZk05+roKsKRy1I0Z6OUbZcHt02gu36nNjVTDKi8dxADlcI5qUi5CouO0eKHLu4iRXzkmwZLHDP472s6pCL6d2P72K0aLN2YSMK8uRoOx6bBgsM5y2G8xZLmuOMlRy2DRfIlhyKtkcqpvObZwZwPJ+y7ZGsOUE7no/nCwxNQVMVDL0+Th4zNQZyPpsG8mwdKnJEe4qtQwVyFYe4qaOpCp4vEAJcX3DSsmZUVcH3BXc/vouRgoXrCTxfesAyJQdQUBTQg8/2jJYwVIXBvI2qyHakYjpdrcm6fsqVHSzPJ25ok/apqamUHI9c2Zl0rC1tSbBiXpJ1PRnmp6NkSw6jBZuYqaEoULJdWhIRGiI6TDFGqr9rtGizYl4ybEcyqrMiIvvs7r/vApj2mmq/ru5Ms6ojNaWRNdWiVJ0H+4PtI0W2DBZoihkMZKUntPZ5xk2dbNnFE4Js2SFvOSxqSsxqPtWiIaqjqeC4goS5xxObt1x5ulbAQ0EAUUOjbLvYro+i1JYpEnhCMD8VJVO2KTs+muIRN1QaYwaGprCgMcZHX3UEaxY2AqCqCiXb45cb+hkt2sRNjUzRpux4KEjPi4dgd7aCAFQVSrYHAuKmxsuPnM+5axfQno4eUCMY5HiKmxrnH72AXNkhFTNIx4wp79EQ1YkY6oR5XEXZ9ogYKg2TvHcwUduuhqhOKqYzWrRJBYcl1xdoqvQujhRt0lGDsuMRNzWyZQffFxi6Gq4jDVENX8g+ufvvu4gaKkXL2+/nXx3zHekYiqKE658c+9Ux75APPLXV9S9fcQ/sAzsI2NtaAhN/fy1q5/HDW4cnXqcodLUk6B0r4wlQatb9ku2RjhkkIxr3PN6LQNDWEMH1BLmKS9Hy0FSFBU0xdFXhqZ4sr1m7YMLh9su/2cxo0aYjHSOWlgfX9buybOzLUbBcOtIx8paD54MeGGBB0xBCtqd2H1BPOw0vkeR3p7yGW87/F5pmMWwOqRE2NjbGKaecwktf+lJ++ctf0tbWxubNm2lqagqvueGGG/jyl7/Md7/7Xbq6uvjEJz7BOeecw8aNG4lGozO+l+dDIq6jAUXHCwwXlc0DeQqWSzJqsCbwDq3flaV3rMxVZ68MB9yDGwf49sPdKMhNNh7RKdseG3fn2J2t0NoQITnJ45xscm3ozfLth7vJlV2a4gaGplKy5QnbcuQgMjQVzwdNUxjMVdg1VkYBvvq7rbQkTFa0JXnjiYv5xbrdKCqs7kihBOFJoYACqIqcDLqmkCu7xE0dRVHDTS9fcUnFjLqNDZgwKRqiBkQNDldVyk6G3bkKmwcL7M6UKQUbTDqms7ytgZ0jJUaKFpbrSSOu6kXSVDQVCpbLvIaoNEBqUF3UQcFyfJa2JoiZGt3DBXJlFy9YXFuSEUxNpT0dA/ZM9lTMpDdTCRdbzxdEdBU/mLymruD5cgLprk9bg4nrSwOmaGVZtSCF5fjhM4noKpbrETM15NOsQmC5HhFdIxUzgMk9SMcsauQ3zwxI7yZQdjwqroeuynBuV2siDNVONkZmsoit682iwF4Xuu0jRZa2JKY1wKZalGrnwb4iX3GxHJ+WpIkWhJYNbU97qwZ2oeKiBv9fPveJmMlmtbQlwbK2JNuGiri+j6FpOJ4IDC2wPBmW8h0ZurBcH18IGcryfFRFoWS7RHWN1Z1pPN/n8Z0ZWhImUUMjHTNYOb9hggepznBuS/B4TwbL82lOmAghx5rt+SiKQAgFFYiaGqqisKg5zjtPXxYadAcS0xnYUxkZ1YPE+l1ZVkSSdeNLCMHubJm1CxtZWvWIP0+oa9e8JF2tSYpWNjisaRQtl1TUZDBvoSsKC5qidA+VEAJsV6BrqpzNwWaqIPcGQ1O4f2M/63qzaIqy34eQ6piPpeU4luvfnrGvqwplX+C4cixOZ9QeLA/1/kBVlWk9duN//3hU5/FQ3pr0Ol1TiRoaCnK+5i05H1sSEbpaExiayvreLAJY3tZAIqKRr7g4no+hyedYtLxZH2439GYZK9mULRdTVdBU8DwfXZXtE0KurYoKdtkhYhhyHzj8aLSnN9CuN3LU47vYuGNgxs/ykBph//Vf/8WiRYv4zne+E77W1dUV/n8hBDfeeCP/8R//wQUXXADA9773PebPn89PfvIT3vCGN8z4Xicua2LxvBZGSg7rejKMFW125yqUHY8FTTG6WpM0JyTHabwXAeDR7hE8X7C6M13XccvaEuzKlNkyWKAlYU7YDMu2F3hmbJ7qyZCIaNz9910ULZdkRHpaFEXBDDxDvtijGyJds2AHG4iuKSxuimFoGut7s2wazFO0XNqSUUZLTjj4HNfHF5CISGMrW3JqTmF7Nj0n2IzGb2xTTZ7mhMnahWme6smwfaQoeTURuSktDZ6fEFHKjkfB8kIjImbKyeQLOYiXtsRDA6Taz9VF/bD5yfCk25wwaYo31U0uBchWnHCxqk72SEwNPGVKuNjKZyi/33blb6vyy1xfLoypqEGu4rBlsEBnYzT83gXpGLszZbJl6Ymrfq5kuxiqSkc6SjpmTLrBVUPByYiOqijkKw4lW1BxfKK6xuLmOE3BWAvHyLgFOFt2yJScwJAUNNTwXqp9VrY9UNirwfJkT4bvP7pj0k14VUdqrx636jyY6cI/ftNIRDQihoquKKHnIh0zqBq30sCWvLnD2xsYyFX2ywOjqgqXn7yUv20fZbRg05Qw8XyB6/u4nkBR5ByIGRqpqEHGF1iOjxsYglFjz2LflDApVFyO7GjgnactozFuTroR+r7gj5uHeGJnhqa4Qd5yw4OP9MhKL63rC9pTMTxfYLk+axamaW+IsGWoyI+f6OPI9hQ7x0oHbMPdVwNbVRVee9xCesfKdfO4bHvszpZpTphcfFzn824MTNauVQtSbBnIM1K0UVWFdNxgXkMELzCypFfUl0ZXyFGV66sAfCHoHStTcnyWt2p0NMb2+xAy3pM43mtX9dhJr9zURu3B9FAfTMzUk9rWEJn0Oic4DDUlZNjviPYUjXEjjB54vqDkSC+yjDAo4aEY5Jrv+j4jBZtn+/PhPNrb4XZpS4LRkk33aJHFzXHipk4p8JRX901DV2ndvZPP/eA6vvXGD5OOnSi/YMkSVgOrOlKs397EHe+d2bM6pEbYz372M8455xxe97rX8Yc//IHOzk7e/e538853vhOA7u5u+vv7ednLXhZ+Jp1Oc+KJJ/LII49MaoRZloVlWeHfuVwOgPZUDEVVieoaK+cnec3aBfzgrztpikeYn4rUdch4LwJM9A5VkYoatCRMRgoWuYpDOiaJlvmKi+16bBsuYmoK3/jjNmxXhjh2Z8ssb01ge344KQGUcLEWOAiihkrZkWRDRSEMoVU3yMe2jbA7WyFmlAJDTg7E+aloyOPwfAHBpiNPYZIb4wu5CQghJmxs002eqK6xsCmG7fo0xU1SMaPOQFAUheVtDewaK7GkOc5gwWIgJxePlyxrYSBfYaRoY+rapIv6stbkhBN4dXIJIbkEtYtVdbJ7vvyNky228jlIz6AIvsf3BWjVcJjGSMHiuMVNLG6Ks320yMKmGPmKg6JAvuJRDhbN5riJrikcu7iJouXyld9uqd/gxoWCmxMmuYrD+t4cubKNoij0Zso0JQxSUQMBExbgDb1ZbntkBz1jJXrHypi6GoZNqweFsu2Fxu2kfSUEQ/kKmbLNbY/sQFFgQWN8wib82uM6ZxQ2mC78V4vJNo3lbQma4iZ9mTJdLQlKlhcat5oChYqDrknD9vKTl3LPE7377YFZu7CRD77icD7/wHOMlRyUgMsB0hA3NJVUTHqhW5MRKq6H8GFVRwPNyT2h4tp7nrayLQyB1xqZRcvlnid6eWLnGFsGiyRMjYihYbkyDAaSyO94AlVR8AVEDOmdMzUVRVXpSMd4YucYH7lnXegd2N8NdyYh7ekM7PF0jOo8XtOZ5qRlzXi+YNtQ4Xn3zIxvl+X4dDbFOG5JM0ta4mwfKTKQLZMtOfRlypKOEKwD0vgC1/Mlf8jz8YRcc5MR6d2uXWP35RACk3sSa712ni9oTUZQhNxbJjNqD7aH+mBipp7UU5a38vtNQxOuGx85WdQUqzu4lwPqjmDi+jdatOkeLkjPs+vz7T9189fto7z2uIXy8DONhy4e0WmKmSRMnYFshVRUDx0WtuejoHDSzg18/kfXkSrleO+9/0P7566s+w5VVWaVrHJIjbBt27bx9a9/nX/7t3/j3//93/nrX//KVVddhWmavPWtb6W/vx+A+fPn131u/vz54Xvj8dnPfpZrr7120vfqPC7tDZiaRltDZMLmA1N4h1Iq+YqD4/oYuhou1CvnNfDXHaN0DxVpa5BGxVjJpmS7OJ6gIaLT1hBjaWuU3ZkyubLLtqEiS1oSFC2PXKXKLZKxZgGgSL5KruzgC4GhqUR0FTdYTXaOltidq1BxZdaPpqo4nkLF8SVhVVfIV1wiuko6ZpCK6QzmLXzPp+xIr9qzu3PszpTRNYWTlrWGG9veJk9nY5yBXIWOxtikpN2YKcnQb37JEtIxo+5Uv3F3bsKivnZhY11oZyYn8KrnYSBXIaarDBcsUlGd4YIVtFU+Q9fz0RS5CZq6GnpEfCGC05KgaMkw2JKWGJ/+5TNsGSwwWrAZKzloqsLi5jjpqE7BdoMQssn5x3RwzxO9Eza48aHgpoRJKmaysCnGuqJFxZFh4IIls+PipsbCpni4ANcuvI0xg3zFwdSVMGy6ujNNU1xm2K0Nntf63vq+GivabB3K05+z8Dx5gutIx7A9n6Sq120w963bTcX29ho2mAlXpbbt7akorukzlLd5aNMwyYhGzNQZKdosa0vQF2QIVhzJ4XvJshbeefqy0NN8IDwwFxzTybLWBLc+vJ0NfTJzUQTzSoac9/zmqC4zsLIVh5ZkFE9A2XIn3HO8kel4PiNFi2REZ34qRiJSQQu9nx4R3SMR0fF9gS+kIa8GJ/kq7QCg4nh0jxSpOB4r5jUckA13ryHtVJR1uzL86ul+jmhvmNSYGs//6c9WeGTbMLc9tvOQemYm4yUVLJev1hyK1i4yWLcrS65k4wWnMdv1AMJ+0AKjGkUhHRwo657RLA8hVUzmsUvHDJa3yax1oYCpq2QqzoT1D/bfgJ4OByK8ubfvmKknVdfVSa+bSeRkTWcagWBDby5c/0aLNht6s1iuh+dLTmdHKlpz6Fy4Vw9dc9LkzScu5tHuUZ7cmWGs5KCqCvMTES575vdcedt/onsu3cuOwrrjHhZo+6d5f0iNMN/3OeGEE/jMZz4DwLHHHsuGDRu46aabeOtb37pP3/mxj32Mf/u3fwv/zuVyLFq0iGLFZWd+z4kjbmqzIp46ns9fto9ScfxwAU3FdJa1JokaGl0tCZoSBk/1ZLFcn6ihhta8qipsHSoQM+Xin4xolALi6OLmGM/szlO0XYLoIAqS9Ge78pQWM7QgrAGGrjJatFi3K4Pj+qiKXCw0VcHxBJ4vF5l0zAgWfulha46bbB8uSn6UJkNmAH2ZMjFT4+hF6XAS7W3ynLe2g9se27HXZ1cl/m4bLvBsf45n+/McNj/Jx1915LQhl6lO4NXFautQgY/c9RR92YoMLwECEXo2UDyZwYY0ijyfkBsmBCEPyPGCfoyamLrCY92jWI5PRzpGRzpGSzLCs/05Ng/k5WINRHSNqKHxvUd20D00MSFjfCg4X5F8tp0jJclzEJLj4LiC0aKNL0zOXdvB6s70hIW3JWHyZE+GbNkhZmhUHJdNA3ma4wYtyQivPV7qz/Rm9vRVxfFYvytDwXKJmhq+qhANkj2KvdKIaw7C5h3pGH3Z8qSnyanmwVSobXtLwmRdb5bhghWGvAHaGiIcv6SJTMmhOR6hMWayIB3l3LUdvHxVezgG9tb/s9ns1yxs5HOvO5pfPb2bzz2wiWLFxRdVj5T0gJRsOQ4jusay1iSZsj3pPcd7JqIpNQx5ep5gUVOcdMwIDeiy45Et2ySChAyZ5q6iqzLZpSUhQ5sIwebBPL4v6GpLhP0w3YY7k410upD2WNFmy1CewZzFV3+7hZakOaUxVeX/VA3Q59szM9VvreUl+b7gU/dtrDNakugcs6iR7qECvZkyrh94wJGeyLZkhGREY/NgkXRMZ2lrcoKxurdDyHT9MNU4PndNBycta5k2AWOmxPbZGocHIrw50++Y6Tye6rq9RU6q619fZjNbBgu0p6JsGypQtl0UBRKmzvK2JMmYwYqozEJ/dNsIK9qSEw6uUO+kefmqdl6+qj3Mdn74uUFOu+0rXPCLWwF4+pRz4NZbOWpF+4yf/VQ4pEZYR0cHq1atqnvtyCOP5O677wagvV3+wIGBATo6OsJrBgYGOOaYYyb9zkgkQiQSmfB6pmyzZH4rp6xoIW5qLG6Kz5h4uqEvy0jRCvklcVOj4ngM5iwyJZvWZIQXL20mW3FojBu0pyLomsrTfTl0VcXQFMqOx/bhAscsaiQVMxjOW2G4SFOhNRkhW7KxXB9dhbgpQxS9mTJxQxptLYkISVPn0e0jWK6PoSv4vjwkeL7ULZJhD5+xkk1Xa4IlLXHGig7dI0UMTSVuKoHXTBogCxpj6Fp9Fslkk8LUFZa0JDhlRQvL5yVY3paoO4FM9uwKlsv7fvgEj3WPULSkcZiK6bxoaTNXnL6coxc1Tjk2psrAuXddH9f/fGOQkmwQialUAp2lkbxFSzJC3JAkTQ9AyPCTpssMJUOXIWldU1jWkqA5adKfrVB2fCzHrzt1djbFiBoKj2wbRQOOXZSmLRml7Pg805djd64iF/IaA8XQ1bpQsON6bB8tUXE9WhImjudTsj0On99AOm4wkK2Ez7524R0rOXQPF7Fcn4ojP6MqCpYnw6ZvO2VpuIiFfTVQYNNgPuQ5tsRNtgwViRrScMxVHLYPF2iKN6EoCrGAFD4vFWF3trxf4b9q2+OmzhM9GTJBFrEZnBJtz2cwZ7FjpMi/nrlyrxmAM8nAmilUVeGI9hQLG2MoKPTnyvXJHgmT+akYAsH7XrYy4PHV33Myz0Su7FB2fJqTJiXbY/tIia7Au523XJIRnVzZYaggM0JNXZXhbcslYmjhpp8r24wU5TpSpSZUMdmGO5NNcLqQthK8X7RdTF1lSYtM/5/OmDqYnpnpMNMNfyqjpcor7WyKM1qscMZhbWwbklEEFRl1SAVJRc01PM0qpjuEzKRt+zqOZ0psn0025YEIb872O2b6+6e6biaRk+r6t25XloFcBVNX6zidsGcebRkq8OYTF9cdXKfztC9rS7IsZXDhf30I5Rc/AmDs/R/iyM/9J6o+ed/MFofUCDvllFN47rnn6l7btGkTS5YsASRJv729nd/85jeh0ZXL5Xjsscf4l3/5l1ndqy0ZYTBX4Yd/6eHHT/SyYl6SYxY17tVdCvDjJ3pJRmRsWHo2pBfFF4JcRVCwPOKmzpahAioKmZKD7fqUHZkNpygKugrDBZuC5dHVmqRQcRnKW0QNjdYGE88HU9fwBUQNaSQVLZeGiM5Q3iIdkxl1BdtlrGBLnStPGmCagsz2kXYOtueTNg3eevJSLjymkz9uHuKLv95EU0eE+Q0mBdurC6kWJskiqZ0Uoe5RzfNripvoqjLlszt6UZqP/3g9z/XnCbz9AAwXLH69cZCBbIVPvOaoaSd99aRbPW0+0TPGV36zmbLtMS8VQVFULMej5PiBgeIzVrZ56WFtLGpOcP/TuxnK20R1FRTp/dI1hYaITtnx6M9b2J5P1JDPffwCLoRg+4iUtTA0lUTEQNNUkppKV1uC3kyZzYMFWpJm+AMbIpKAO5S3iOgqti9CgrYQUpKgJWGyqFl60DRFDZ99deGtGB5P9WTIVRwZVg0IxkIIhC84eXnzpAtd2M8Bz7FguXSPlAIu4MSs2OoG85q1C8KFbl/Df/mKS8X2yJRtchVHenOD7CaAiKJScXx6Rss8um2ET5y3agKxfbKF+kBpJtVyVI5d1EjB8sJkj2REY+tQkbULG1nWmpz0t062ye+RHdCIm1L7ydBVVndKwd9sWXLdTF3+a0yYZEsOqqKwvDVJOmZQqEhqgq4odcZNLWo33Mk2wZLl8tfuUTb25Xj7KV10NEbDsNzEkHYGTVUoO25ogKZjUt5hOmPqYHlmpsNsNvzpjBZFUWhriFC0XM4+sp33vywdjrVEROO2R3ewoTdXxyWF6Q8hs2nbvozjAy0RciCM6H39jpn+/smum4kRV73mV0/v5qu/28qS5jiNMaMuhAl75lF7OjY7T7thoHguGAbccgtNl1++198yGxxSI+wDH/gAJ598Mp/5zGe49NJL+ctf/sItt9zCLbfcAsjJ8/73v5/rr7+elStXhhIVCxYs4MILL5zVvTYPFTiscx6xQFqiOlnOXdvBkz2ZKTtj21CBzQN55qdiaIrKaDGP40kOlha4xC3HY2NfDl1TSERk6Mfx/MD4kKFC2/WwXMFIUXqoFjTGGC5a6JpCoSJlKeanIjQnItLrVrQZzFssbIrRHLjNDU1lIFemaLuh7pkCeAKEL9BUQUPUwPdhYWOMYxY1oqoKjXFzD/9NVWiITq7RNdmpavNAnh/+tYei7dLVnAifX1/AJVvQGGWsVB++uejYBXzjoW08N1DAF2CoSsDDCsKCnseTuzLc8oet3PiGY6fd4GtPmwPZCttHSgGhVoCQHjA/yPyscuY2DxbJVlya4hG6WpNSmV9XcTyf7mEp0Ov7MhvvuMVNnLKihR/+pWdClmG+IjlgiYhOxfHDdHLYk5AxXJQJGalYcIpWpMbNYM6Sv9X1cD2pup6r1HtAxj/7hqiOqSts7MuSKdkogKHvCWVZrofl+vxifT8XHbtwwkJX18+KEhqE1WzE2qzYetf7fDqbYvsV/muI6vjAcEEajoa+xwCrjtSqh3Bdb7Zus34+MsBqOSpbh4p0pGM0xk3KtsfWoeJejc3JNvla2YFayYHmZISmeBMDOYuxksX7X7aShU1xipYnOVVbh9nQl2NDX5a4oXHkgpT0Vk5xsi5ZUkOtZ6zI754ZqtsEqyTkXNlh+0iJa+99mnTcQEEmJ7QmI2zozVKyPWKGRt5yqTgeMV0lHq0PwU1nTB0Mz8x0mO2GPxujZfxmf8nxi8KQ1kwOIc+HV/BAS4QcCCP6UBjiMDMjrurtbkmY6Ko6wQCD+jGwrC05cw+lqsL3vgfr1sFJJx2onxXikBphL3rRi/jxj3/Mxz72Ma677jq6urq48cYbedOb3hRe85GPfIRiscgVV1xBJpPh1FNP5Ve/+tWsNMIARvIWzw3mWdaapClhhpPlqZ7stBylp3oybB4ogCJV311PEDU0YoZO1FDJlCxcRUFVpOxB1XsRM3RKjovt+cQ1qehsez4D2TJLmmMULZfGmMnxixvxBKG8hKIoLGmJky077Bgp8Z6zVrCoKcY9T/SyZaDA1uEifo3yrIIcgCLI/sqVHaKGxvJ5yQkZhLM5VW3ozXLX33t4YOOANESC0hHjn19LIsJVZ6+sEzjcNlzg0e7R0DhyQm6aJKz7gezGHzYP8eDGfs5Z3TGhTdU21J42K4509bmeL8t/BGEioyqmJxQcz6M5bjBasMNFUq8hTjbHTbkR2R6DeYs3n7SYdMzgx0/07lVgVteUusSMFfOSjG0fY9tQkRXz1HDxHinaHNHRwLyGCH2ZCrbngwMtCTOU8pjs2S9tSTCvIcpfukcByVup7WhNUfAVwTO7c2wbLrBiXn1JjLCfLRehSH7a/IYoxSAb0dRUVBVs12dDb5ZEROfErmZg/8N/S1sSdKSjbOzLSs/duI+5QRkpTVUo2164WT+fGWD7wzWbbA7Vyg7EDG2CCHG+4nDc4mZOXzkvfI6ampVea4AgCScV0VnUHKMvMzEkPFqweKIng64p3PyHbnrGSjTGDFqTEUTw/GQWpk6TplKwXLIjDsmowVjJoTlhysNkjd6e48lxcURHakIIbipj6vkWb53thr8/Rstsx8XzZYyc1NXCxr4cG3qzddqU+yIRciCM6OfbEJ8tZjsGpjXuHngA7r4bbrpJGnTx+EExwOAfQDH/vPPO47zzzpvyfUVRuO6667juuuv26z6moTFatClVM8wSZjhZdo6VJu2MDb1Z7np8FyXHI2aowQlfeluKwkVTDWxPco6SUYNM2cF2pUiookg+jOT0eCiK9NTkKg5P9+VoDoQfdVWV2XuuVMhviOhB+FKlJWlyRHsDy9qSHLUgzR83D/GFBzZRCUoJqWo1g0RaZapCmIr9TyctCSfobAdndWPsy5QDKQojPHWPf35bhgqoilLH79o0UKBouSjI7EPPl5tN7XIhhMw4vW/d7jpSdhWTnTbjFam7pWuyhpfvCaK6Gv4eXwS1xUydeERnd67CcMGmPV1jsCuKrNknZHbS7myFhqg+KVmzNk06FTXYPFgvHBs1VOanIqzqSNVJcVQX71UdKbYNF7jx15vZPlzkqAWpunqf45+9qiocPj/Jz8QeY7XqBXM9X2ogRQwKliTojzfClrZIKYhHt42E2UVa4CHUDI2xsoOhKmwayIeGwG2P7eDR7pHQ67S3TWM6kvRr1i7gT5uHKVhOqPNT/YymSikQNxBibYjqk/axEDLM3xQ36MuUufvvuw4oz2h1Z5oj5jfw8NZhhvIWbQ0RTlneiqoqbBsqTGmATjaH9sgOSN3BtoYocUOjUJmYVQn1BueCGo/LhsCLPj6835+t8NSuMXwByxsTxAwdFXkQWL8rg65JQeGqWrwQAoFU+PZ8P+T/NSVMjo83kbdcRgsW63pzLGqKzYoD9XyLt852w99fXbPZHEJm27bZZiPWeoYLlstYyWa0ZNMUM2lOmvuUoHIgjOh/1CoKVRwwbbubboL3vAc8D170InjHOw5quw+5EfZ8wdBUYlGDbFkSnpviBjFDZceIw+M7xgDqJkd1g7Acn/ZUhKG8JBprqhJKHuQrDq7nk4joxAyNgu3heh6uXxUJlB4URZEGiK5I4nxXa5J3nt7FN//YPWHDTMV0uloSjARlg2qt9sa4iYAw28nzBQrSyxRQh1CAlqRJQ41w3WwGZ+3G2JGOMpCzpEhqkMJd9/ymPPmIYFMANzAKA9qabGdNu/qylUlPjJOdNttTEeKmRsFy0RRpdInwjtLD0xDVaU9F8YU0hvuz5Qk6cLXehe/8qZuoqdEUN9C1+k2w2i+OJzPoijahcKvj+QznLZqTEd5y8hJSUWPSRXbFvAbedcZyvvybzWEYbLqFYVFLQhrxEIjPymcpFzcZZio7HjBxIdm4O8dgroIdZM0mgqoEVe9sR0rWVkOhLrQ8U6/T3sKGL181n9v/kubPW0aoOL7sc0WqX6ci0gBTFYW1nelQwb+2j/eE1qShKxDcv7Gfk5Y1T+ktnS0m+w13P74LUBgr2VOGQ6eaQ6amhqHexrjB9pHSpF6UmYSwOhtjNCUMtg4V6c96bB8pYrs+MUOjd6yCEIKK65GK6JQcD6vs0JrcIxBdDYuCLK1Vy/+rPXykYrI27cJZcKAOhnjrdMbJvmz4+5tVO1Pu0mzaNttQ+3jPcEdQhq57tEjC1HnziYsnPbTuDQfCiP5HraJQi/0aA54HH/4wfPGL8u9/+id4y1sOeptfMEaYxJ6aXbvGyvSMlciUHb77yA5++lRf3eSo3SBakxFylTGKtosanOpVFSxXeifipo4nIKqr6Aq4vtxAfV+goNCZjrKwOQ5CUHZ83veyFVQcf9INcyhvMZizOKKjYcKiVuUzgEJzwqRgyTJHipD30VSFiKGQjpkTDKOZDs7a313VNdpTZqa+5pmCMunJ57D5DaQCEUv51PeE6CXBXP5/TSEQQ53ovp7stKmqKkd2pHhi51jAawJP+AhfynnoqsKRHSkUVaFc8ViQjhE3tXHehTLrdmUBOKK9kfZ0dA/HLcgWreW4ndTVzF+2j1GoOEFFAEHJ8mTyQ1BD8Nt/7Oaql61kTWd60sVxNgvDYfOTpOMGFVvqS1UlNQxNGrWZkk0yqnPY/PrNwvcFd/29h4LlckR7A/2B6rwvpNFeDUOZusqCVBShyOc/Ux7LTMKGALYj5VmqRpiqygV6rOgQMTRWL0jx2uMln622j2v1fWoN3bGSw7cf3k5nU3y/w5KT/Yb+bIWHNg0DsHZhmqWtiSkN06n68aRlrVx47AKSEX2/aumNlmzee/YKVEXhwY0DfP33W4kaGsmoET6Pgu0yWrJJRvRwDkjIg0LVuzVSsFAVpU4iRAjB7lyFFy1ppmS7szamDqR0yN6Mk33d8A9kVu1UmGnbJhVznubQM6WhHjNYvSDNlsECj3WP8fJVs5dFOBBG9D9qFYXx2KcxUCjAG98I994r/77+evj3f5+UW3ag8YIxwmzXQ0eeFPOux7P9svJ6WyrKEe0NVBw/nBzvOWsFu8ZKjBTlYtcUNzhmUSOPdY9StFx8vxqukmruru/jWB4tSSmNMVKwiJlyQW6Om7y4S1aHD9XemxN8+pfP4PqCE7ua6R4phqf/ar3D+Q3RsGRSFUtbEixvTbB1qEBC0QLJAxm+URQo2y6pmEk6pk/qEp7J4KzdGFWFCQVyqwRk2/EYLTmTLoTLWpMc2Z6iPyhUXOW/1PwHTZGaSUIwaVunOm0uba2GTDMULA/bFWiq9IAd2ZFiSUsiXAiPXdzEhccu4MdP9Iabxq6xEpoKK+clScWkYnsyojE/FWHbUJEFjVE+ee4qSo7kuPlC8OE71zGownDRDjc1TVGwfUHR9vj9piF6sxXWLkyHpYDGP+OZLgzLWpOcsKSJhzYNB4WH9VADrmS7+AJetKSZZeMUmR/c2M8DGwdkfURkzbOYqdGeitKSjNCfrbC+L0vC1BjIWXU6d7Wh+cm8kjMtJi6C8PMpy1t5pj9frxOmwLyGCB8/98hw46kmIgzmKmwbLlCy3SD0XS05pZAwNYq2u19EZ98XbBsucNMfttI7VmJxSzwQc/Tpz8oEEyEEAzmLzsbYtIbpwZYcKFoeazrTrO/N4vqCeQ1m+DxMXaM1IesiFmw3qIcoqQ7VWpfVcZErOZQcL9AOFHUb5TtPXwawT8bUgTByZsoD3NcN/0Bm1U6GmRgjFx67YFIx5+nG1gRDPSg6X+WgdqSi+8U1OxBG9IE0xA8mZjUGdu2C17wGnnwSIhH47nfh9a8/qO2rxQvGCBvMWcR9g7gp5QlUBZriJofNb0APZAdWRJKs25Xh/9y9npihsWu0xGCuQnPCZFlrkhO7mnlyZ4ZSID2hKgoLG+NsHZJFmttTUSK6Rq7kkClKcuyK+Q2UbL9u4dg5VgonWzKq05QwJ9RHHC3ZEyabqipcfspS/rpDCkQ2J030oNB3yXaDhAGVw+anpnQJ721wjjd+6gvk6gHvRNCXq7AgHZt0IVRVhfOO7uCx7SOULA+fPcYXyFpuzXGTsuOzIB2dtK3TnTaXtMSxHBdT18hXHGxPcPj8BuIRfQIfZ3VnmtULpGfzwacH+NbD2wDYOlRi+0iZSECktlwf2/XZnauAovD2U7pY1pbkqZ4MtucjAgNZimtCtmxTseU4iJoacUMWfn9md455DRHGSs6kJ/yZZPlccfpyBnMW24aLlOw9XkJVUTiiPck7T19WFzZ/cGM/X/7tFjIlh5aEiaGpsg6i5dIzVkZRFHaMFmWpFk0nEdFxfVHH8UvFjClJtduGC6zblQ3116oJJNXyXDFD46/bRzF1lc7GOMmozsnLZbmmbElWg5Bt8kOPL0DRchkt2uwYKYWFs6WoqCygXrJdqffTnNjnzafqcan2jScE3cMyw1ZXFUqORyqqY+p7PLwNwYFjKsP0YEsObB8psjtbIWqoQY3TPddFDJ3mBIyVrEBzTIama3WRhBA0J02Srs9o0WKkICVuxm+U+2pM7Y+RM5vMwn/kDX9vbav1wM+UvF9rqI8V7bpkCllKSSOia/tFfD8QRvTz4W18XrF9Ozz9NLS1wU9/Ci95yfN6+xeMEWYaKhXXp2hLL0BHY5zD2usF+sZKDiNFh5LtcvziRuanoowU5CJWsjwWt8RD0cuiJcvB9GVLHL2wkXTcYKxkky07dDTGsFyPiK6RLTlUDK9u4XiqJ1N3Kh5ffNTzBYN5a9LJtqamJl6m5EgxWF3yPWKGWlcCZ18w3vipZldV0+ALlicFV5c089rjp5YQOHpRI52NMXrGypRtLzTCdBXSMTP0+p27tmPK0+x0p83WhmgYAqsuhIN5a9JFWlUVSrbHb58bpGTLRANDUynZHruzFUCKOqZiOrmyyzN9Ob78m81cdfZK4obGUN6ibHs0JQwMVWW4aAEKMVPqlNmuT0NMJ25qPNY9yrahIi9e2kwspTFcsHl06wib+vN89FVHsHZh4177YHVnmv84bxV3/b2H9b25sE7k2s503TOvzWDNlJwwfNcYlyV5qsXJn+nP4XsyXKupkt9naPUcv8PmJScNLW/ozXLzH7ayeSAfGC5S9LMlkFLJlV1c3w8L1bckIyTRAw6hSTqQ7vB8wfbhYl1W5Fd+uwWQYXwZ2pfJGrZrEzFUkqZOV6vkrg3kLbJlZ1ry/HjUelw8XxrZigK+JNyhqjKMnS07NCeCkG2NDMmBzPaaTXhtfW8WFXlIHCvt8UKH7TJU8qrKqo4GFFUaq1WOX6HisnUoT8GSoUlZUxXaUhEuPHZB3Xw92B6jyTDbzMJ/5A1/uraNX+PHY7KxVTXU+7Nltg0VKQcHTUOThcaH8xaaqtKfrXD0on1v94Ho90Mxdg4aTj0V7rgDjj4aurr2+WtqOY44pRl/7gVjhDXGDMpoWK5PRNc4YUkjeo0ujxCC7uECnu8T0VRZwqQtScmWJXCyFYenejKYukrM0GiIGnQ2RnF8gWmovOO0rjpOyOKm+JSyF/ubZXLBMZ10tSa49c/b2TZUwPMhHdM5bH5qVifEqYixk9U8O2xeA9tHiixp0Xn7KV28fNX8kMg/2XcULJdywFdrThiUHT8sG1KwpEjiqStap+U3zPQkvLdFunr6LlouyYgWZLZB2XHDpImS7aAoOooiN6yRgsU3HtqGqshqC74PTk56Ku3AYxlWAw6yIrpHiigKwWccNg3mg5OsT2+mzP+5ez3/9do1rJmhITbd7xqfwdqSMMmUHMqOx2hR0JwwieiSOJ4rS+HYuKlLcdqQkC05fpmSTfdokRcvbanzSob3yJbDca8osDtbYftwkYghExoMocnCuK7Pul1ZjlnUOCHzrnZM13pD1i5spDdR5u87x4JEE3B9nygqR3WmaEqYFAIv8fcf3THj4tau6/OdP3XTM1qiqzXOxt0yI9TQVNQgscZ2BboaSLtUHBKmVicxsS+CmFP112z4NA1Rnaip0WHqlGwv9EJXdd4KFSlD847TltHZFN8zP/Iy/FuwPJIRnUVNifAeO0dKfPW3Ww560ee9ZQLui8zBbDf8A1EbcX+xL2v80pYEK9qS3Ld+N5bjgQKlkhMk58hlJmYoPLptJFx/Z4t/hGdzyCEEfPWr8NKXwurV8rVZ6o6Ox3iOo+KWZ/zZF4wRVnE85rVESUUNtgwVGC7atKdj4ftVYU5Tk5wsQ5fZaKs703QPFdg5VsJxfWKmVqf3JIRgy2CBnzzRx3+ce2TdgJ5q4Rh/Kq7e3/GkovtAtsLRi5qmzTJZu7CR/77k6AkTCpiRt2BvxNjJjJ8Xd7XUGT9TfcfFx3bWVRmwAiNBILW38mWHhKnzjtO69roAjDdGEhG5eBctj21DhRkpq1dP30tbEtieH+o62a5Ukvd8QdHyKNlSVHVTfx414PC1NESI6hqO6+EKgWO7gQyITIbQVZmJlgvGT9UQf64/h6CaTalhOB49YyX+81fP8rFXHTmjjXCq3zVVBms6buAVhfTulBzaGqoFywVpXWPl/AZ2jJbqNnUhJK9tqanXeVBr77G6I4Xt+mEB+JLt4QnwfDfUqZvXEJEenUyF7prSSDDR07N9pMjmgTwNUVlnsSGqs7AxynBB9otAZqUamooQIvDsSArBgsb4XgnOG3qzfPvhbn773CAqCkMFi5LthX2t6WpgfPnomobteZRtl9ZkhIYgXDrbbK+ZlrCZyaGidn1YvSBVxxnVVJlt+pJlLWGWXHV+ZMsO3390B6oCK+c3PG+lhWbzDPZqnFiytmdvprzPfLOZZCMeCGNkunut6kjNOrFAVRVOWtbMPY/vomR7KKqCocrspSq3UlUUnuzJ7Fdo/mCKIv/Dw3HgqqukDMWSJfDUU5A+8Ak/2czMvecvGCOsisaYQUSTLt35qei4EiQ+jhC0JqPhYtycMNHVJCNFC0dVOXx+Q1hyBvZNnK/2VLxuV4ay7UkSrStwfZ/GuFFXUHu676m9XzjJBmTJFFVVWN6a4PJTltZ5X2ZKjJ2JJ2ay79g0kKdkeSxva8D2/DrZAU1VmJ+O0Rgz6vhBM/mdG3qz3P7YzikXkerCmi075MoOqZgRhtwsxyee3sNxq5afAiUolA6mKvtbVeTG7biCpa0a2ZLUhhOB6j+A5QpihkJMV1HUPWK5eiCGqiiySHp1nEQNKXY7WrDDjRAk32rTQAEQHDa/YcqyObWYKoM1oms0B6VxLM8nU3IQCHRNZX5Qq3FZW4KBbIVcZY8MRCqm8/aaWpTj76GoKq3JCDtHSjIjD5lYIZBcRD14vyGiM1a06R0r0xQ3Wdwcp+L4Ezw9tQLIvi+lWUxdkbpXnpRksG2PbMmmP1uhENRhnIlhUR2XPaMlVBTSMckBrWbPguwfLeiziC61tkRwrSekIVBt84ldTazvzU7r3Z6N4OxMwmu168NI0eaweQ14QlCoSM2ojnS0jhdYnR/bhgoM5S0WNMZnzEM6UJjpM5guLDuZdMxsjISZtuFAGGozude+JBbMS0WltFEwwTxfeq1jpkYyomO5Pn2ZMtmyc1D65/9VzMiozmbh0kulEKuiwPveB6nU5F84w3sAk3IcE7PQSnvBGGExU2b55QLOTHPSrJscjic9NnFDo6s1UZea6noCIRRiEZXGmo21iqihkplCb2wqrO5Mc+7aDj7/wHOMlRyMoNB3OhYhZqrct243ywNOxExQnWS7xkqUAjFXxxNsHSrw1x2jfPAVh3PBMZ2zLrmxN0/MZN/xVE8mfC8Z1WmKN9UlHsRNjR0jpQNafLZafurJnRn6MmWsQKF9QTrGstYEjid5S1WO26b+HEXLxXJlmr+mQHMiQtTQsYPXFEVy8yqOlKSI6NIzU3akIVJxJM8oomv0jpXwfJ98RYq1NQTkd9/3w7GgayrtaZnh9ODGAe5b38ffto+RKcuQQ9zUOXl5C1eesXzafp8ugzWia7Q1qGRKDivnJRgu2qDIJI/+bAVdU2mIaqyclyRqSLHaFy1tnhAWrgsbCcFwwSJqamiu5NdVOX4RQ4bwesdkkoOPrNG5vleWAlvUHOO4xc2hp6dWALkhopOISv2wki0lT+KmTsmWlSbKjs+SljieL1jYtHfDYmlLIhyXXW0JxkqONK4DXk3Vu6YqMhHDD2pytiUj0gutqkGYVaWzMYYQgm/8sZuS4wXq9oKoLsuHVTfuiwKv72jRZnlbgoLlkSnZGJrK8rYEW4eKE7xPMwmvjfeaVY2F8d7oKftsEhwsRfPZrimTGSdTScfM1EiYaRt8IcK6mns11P6+i3W9GbJlFz3wOL7tlKUctSAd3mu6Pv+Pc4+cdWJBruzgIxOXdE3F90UoUQMKQriUHI/cLIywQ1V8/WBgMkOotsj3lEb19u1w7rmwcaNUv//BD+D882d836kM95O6WqbkOM4ULxgjzNBUohGdwZxFSzLCR15xOD95qi+cHKausLApDgga40bdZzVVpoJHDQO5GovQSBst2mzqzzFWdvjeJHpjMLUF/WRPhnkNUdZ0pnE9ERbUFjCriVGdZLvGSqEXJG7qJCLSjT1asPn8A5voak2QjOizztoZ334/CMG2p6J1xlU1a649Ha1Tqx+feFCouJi6QqZk81RPZq/hgNpFZH4qgu16CAQNEZ0V82RG6+cf2ETCVBktyTp7cUPDcj12Z8pUXC8wuGSChPRwNGN7wwzkKiiqQtzQwlCn51cLMyvSQNakgSxPpXtU7KuGSDKika24FG0XTVHRNYVM2cbxqONzzG+I0paM8PTuHF/57Wa2DReoOH74XWXH5r71u3mmP8eNrz92yk1nJhmsqgojRZtc2aExZlCypadXVeSYzZddmpMmC5vioW7XVPcQyCLkUV3D9fxQdFc+CwVNUejPVTADPTIF0FCoOB4DOYu1C1Ohp7JWAHms5BAzpVFTTSKI6AoNkQjL2hp438tWkC07XPOzjZQdN8ic1OtJ6jWGRa33LhHRaoxTHVNXKTvyGTQlzaDMlsFRCxoYzNus6UzzppMWh/Udv/3wNrqHS/hC4AYhWCEgFTM4bkkTUV1mw27qz1Oy5Xc90ZOp8/imYjrtqX33Ps2WlH6oFM33hWw/3jjZlZEZq8cuaqQ5kPqpGgmbB/J85+HtYYmxyZ7BjNowkOfWP2/fqzEihODTv3hGevRtWfsVYOtQgT9vHeGfT13KlsECcVPfa5/Ptg9TMSP0zsZMTW4+IUSY8FW7nh7o/vlHxWSGUFPcYDBv4XpiaqO65xm44AIYHIQFC6QW2HHHzeq+UzkANvblKFguHTXUptniBWOEOZ5PseKSjBqYukpDzOAT566qmxxVcb3xJ7Rn+3O4vmCs5PC37WOk4wbLWpNB7bZMwL+RemPlGr2x8dl7U1nQ4xdMBaacGJMZdNtHimwZKMgkgkBEtKqobuoazUmTTMnmu3/ewZtPWjyr0/JkA78xZtA7VqZfrQRhvT0LUFdrkrZkZEq1+irHBxS++cdumShhqKxoS3LSsmba07EJC9X2kSJP7swwVrLZNVYed78EJdtjrGihKhE83w+yyUDTFPJll7LtkTB1CpbH5oG85BWZGvMaIvTnLBQhPaVCyPDaaMnCC8oQeEKqvKeiBhXHoxhsxipSiFRB1saUpar0MPFAUSRXDEWGCoWQSve7c2XGijKLtmxLj1o1TCaQJZ62DhW54f5nufXyF0+6WM8ogzUwPNoaIqxd2MhYyQnDwqoipRlaUHjvWSsmNfZq79EcN8Li4Z4nsxg9X44w2/WoOFK/DCHwhBxDVe/SWNHmCw9uZllbsu4AUC0snS07oTirqakM5CzWdKa58oxlVByf/310Jz1jJXrHZHJAdYxVif+1hkWtJ2hPSaEsuUBGww5kSDJll1RUZ0lLgsG8TXPC5LXHL2TFvAZ8X/CtP3XzXH8BTYVExCBTskFRUJFVMjb153nJ8hZWzJNe34G8RVSXCRvV31KVAClYLk2TiCfPFLMhpR8qRfN98cDVGifP9uf41p+205GK1lX6AJmxPlq02To8wOaBPOm4MWnocCZt2DHikLccFjUlpjRGNg3kuPHBAht6c1iOh6oqRIIELtvzGcpb3PSHraSiBpYnx9Pe+nw2fZiOGSxIx9gdhBxrv7tkuxiqSkc6GqzxM8M/es3HmWAyQ6hkuTy6bRTb9TmxqzncR8cb1UfddD3K4CAce6w0wDo7Z3zfvXkRN/RmGSvZlC2X5Cz6pBYvGCPMdn1amkwWtyTIlhzyFXfSyVF7Qts2LDkpWuCK7s9XqNgeQ3mLQtlBURWyJYd0zODw9ga0Gr2xLYMFvvHQNkq2y1jJmbUFPdnEqLrI1/dmKTkecUNjTWeaNQvTwaYuxT3Hl7TRVCktsHUoT67szKrkxmQngI27s/SMlYgZGo1xs24BKlpZlrclJ1WrL9seW4fyYc2+xrgZGrr3rd/Nz57qoz0VpTlp1i20T/Zk6B4poilyU6y9X7YsC2qrihoQ92UGYL4i63j6QlDKesxLmiSiOktaEwzlZZ1HVVVpDuQqfAFjJZuS7aGC3LQ9GYaSGWfS6K240hMUNTRakga5ssfK+UlakxEUIXi0ewRNVfD9ar1Hlaih0hAxKDsuG/vyaIo0yAQExFv57BUUFFUWgv/r9lG2DhZY2d4woY9mksF67poOHtjYT1NcGsHNCbMuLOx4AsfzpuTlqarCxcd2smkgz5ahIkXbRfgCU9fwXB9Fkcappio4jiwf5Qn5fjomJRWmOwAkVZ3VnWm2DuUZKzq4Aek8ami89viFAHzpN5vZnSkTNzS5AWlaOMZWd6ZpihsTCP+1Y7veOHUlMV/Ivm2MmQjEhNDQtuECf9sxiqJAY9wMnpPA1GQ9WMvxGCpY5CoO6ZjJ/FSUrcMFPE+jJbnnwGFo0nDPlGzGsEMv68HEoVI031cPXHX9zVdcNEUhPm4s1lZRUFGY3xAhauqThihn0gY1yC6NmVMbI9uHHXbnKtieFxZkrz6tmKpRcTyyZZeiLdffWnrKgejzpS0JjlnciOV6Momp4lEODp0yRKlw7OLpk7bG4x+95uPeMJUhJJCZ6IoC20dK8mA2CVd7x41fZ+mK/4ZPfxqSs/P07c2LuLQlwWiQXb56QXqfQpL/mE/9IODYRY20NDdStDwqhjdhwFU9TJ4veNOJi/GF4Mu/2YICYeHltlQ09DZkyi6uECxIRzmiXabSV6EoCh2pKH/dMUpzXG4Es7Wgx0+MDb1Zrr9vI9uGivjV+JUCO0dLPL5zjIorOWCJyMRB4PkCQ1fwfOnunslpeXFTnE//8pn6gS8EvvBDzpTleAghU/1VVSEV1clVXJ7tz3Humg4uOq6zTq3e1CWvoeqdURRFihIOFfF8+Z2255OOGuFC+96zVvCnLcP4vghPyXZQLqohojNcsKm4LnFTx/dlKHGs5OD7kpCuowRGmUvB9rjitBaOXdwUZlre/uhO1vdmmddgsqEvD0g+RsX1GMx5KAqh0Vcls5u6zET0hYKpB6T0qE5fpkzZ8elqSTBatLE9QdzUiBhSUFcIKb+g6ErIQxtfAlJRFBQEluPzpy1DkxphMHWmXZUz5PmCn6/bXbfh1IaFx+t2jceG3iz3PNFLyfLIlm2coAio53gyI1KRtTstd0/9TjNIDIjUSL9MdwCQQ1gaoYoiMyIjqiQh3/LQNp7qyUhvW8APq7gW6aj0ym0ayNMcN2hJRkLDYjJPUNX4zFUcuoeKHNmR4l1nLqNs+5OGhjYN5ClU3NCb7Pt+WL9TgVCiRB6+TKKGCkK23fV9fH9PmalqGPr5xEwzMA+kVMG0Hjjfp3ukwLKWBL4QIcepFpMZCVXJIMv1iBmSsxsxtSl5TDPxAi5vSzAQlPOayhhxfCEzEwXoNQZYFYYmNe1cz8cNDPNa7G+f1xrSo0WbhU06mqLgBcLI+2JI/6PUfNzXMTeVISST6SAZqRda1hybNY88yN9PfTUDOZ9stAG+9KV9avPevIjxiE5TzCRh6nUHn+IsvIovGCMMph5wk4Xc5iUj9I6V6WqVgzYXkKdXzEuCgL5MmS1DRY5ob6gzwKpwg2ym5a3JWVvQ49vp+4JbHtrGs7vzYYikahgULYftw0VSMQPH94P6gPX6ZyVbDs50TCcdMyaclqOGynDBpr+m5Eatqn9oLA0XGC3YZCvyWdg+9GXL6KokO+syPoepqZy0rIW1CxtDtfp8xSVTsvnmH7v3nB6FLCdTcT0aY2agcWVTsF1WtCXYMlTk1j9vZyBbpiFqMFSw6sofCSHDfI4PJctDVfd4mMxgAfWFTOtORDQKlseft45y0bF7OFCvPX4hvZkyO8fKlGyZhecEshrpuEnF8WV9TkVqS+nBadfUJF+sITj5bh7IhyT+4aJN3NSJIg3UQkWeqluSEYSAouVMuVBXi7CDJP5Ph9qQTm1GaNzUZAHzWZ5+q4vkUz0Z7gq4Wwub4rTEDR7eNiITEgRENOkh8HxpLIJsc1PMqDPAQEi9I6BsyXZUN4MW12RDX66mVqQMPXm+4Kbfb2X7cDHQzJJZtBHdI1O2yZQdIrrKWMnmuMVNvK0mq3M6T9BgzmJRc5y3n9rFYfOny4iqn6uqqlAtRj/ZIbdoeUF2qs/ubAVVUVCVwPjUFBKBt6RoedP25Uwxk41sJpnNB1KqYDqy/bP9eZmF68O1926c9D6TGQlVyaC4qVGyPVoSe+RDJuMxzcQLePnJS7nnid5pjZGOdIye0VLIeZwc0gsc0dVJQ4bx/ezz8YZ00fH2q1LAP0LNx/0Zc1MZQoamogVtrgotx/MZ3nTDB1i28e+omTF2n3bxfnn4ZuJFbE6avPnExTzaPRoefBR35okTLxgj7G87RjEGbZa1JuoG3NQhtxy7s5JsPDZgTyBftiYjqIosvdKUiEy4X6EiO2F8xwkhhSHHig4qcsnf0JulKW7IQr2Kwu6gVFK1nVsG83UhkupGYWgKjXGT0aJN2ZEGxFhRljPSVLlJlmyXiK7WlTNSVSWc5PXZhBpRQ+PHT/SytjNdV0JjQ2+WiisNHekRk4aQ7wOqNHYqroepqTQ2GLSno0A9H+KpngxWoLUGkLfkQqsHKvRWIOi6fleWvqRJeyrK1qEihYqD7Xr4vgi4OTLUV20DgOsL8CWvSoVAHV6RpXp0FdsTtCQjDOTKdTy76oJ38x+2snNEqhzrqhpqwSEET/ZkqLjSlZWK6WTKLpmyNEgcT0hyvwK6Ij1jpqaGz33FvCTxgHyuUBV+Ndids/BBFl+vWe3lb5TtP6Jjci9YLarVAH76ZG+duv7qBQ00xU36MuUZnX6ri+TmgTybBwqUHI/2VITWZISIKTlWulr1+AhwZag1EZHFul1fhiOFEEGmsUfRktIgmqbi5X1uf2wnZxzWxq7REk/0ZHAD/qInIFdxSZg6qxY08LftY5Rsj4VNUVQ54DB12Sf5iks6ptMYN3nzSYsnLOAz8QRNZ8gcNl9m9BYtN0zIMHUFy5Eaco4vMFSVdMxACEFftowQsr8UTYoX+wJc1wM05rdGSUQmr+U6W8xmI5uKh3SwpArGP/daKsdRC9JTZjtW+2JNZ5pN/fmQs2m5UlbE8QQxQ5+QsT4Vz2xvfa8oyrTGyEXHdvJ0X5bRoo0frPfVdc4Xcn2qGmBLWhLkKg65skvZ90NdwHkNkUDQe9/7fDJDuiqRMpNkpvFY1ZHitcct5N51ffRly6hA1NSelxJQ+zvmpjKEGqI6qZjOcF7qJC4Y3MmV//1+5g30UI4leLahnZXzGvbLwzdTL+LLV7Xz8lXtdYr5d7x3Zvd4wRhhEJguNWN2OtLdsrYEO0ZLrO/NEje1CeTLbCk4kZcdOsdtpEIIxsoOyah0JVcxWrR5ZneO4YKFHaTIDxWs4PSsBPXBZEmgd56+LByY40Mk439V1R37mrXz+c2zg9OWMwIClX3Bi7ua2dSfpzlh0p6WmXvVxIJNA3kp62C5obcqGvzeWgeNohDyFVRVnlrKjjcpH6I6mUqWi0AWOi/ZkqMkRBDGUaQXa7RoU6y4xCI6mbIML7Y1RMhXXFlEvcaVpCA/43pS78sHSraHHghbqopCxJCaQ1U+YC1Wd6Z538tW0petEDdk5lFtFt4xi5vCDFgUmfWHEKRjBnZQQN33BGhSG8z2/DA0O5SvcOziJoCwgPtr1rbzxm8+RtnxQ0Ms4LWHv2dhU5zTVrRNOZar2NCb5fqfb2TbcBCmDtAzWmJ+Q4REVN/r6bd2kWyIGqHExljJYUNvVm6AgKqqRAJeTTpmEDE0dDUQQ7Wkp7NguQGPShrJmiIPC82JCDuGi9xXcXlxVzNP787hC4VC4Emq1j7UgxItKFBxBZrqhfw+Efy+oYIdeHYnJ8JOJ/B7/4bdPLptlC1DkxsytQXUq9mmyYiO7dqUHckHbElHUBWFzQN5ChWpxWa5IuCnyFBkMmLgeD69Y2VevaZjv0M9B8J4OthSBdXnvm24wI2/3lxH5ZjsPkII7gnoCpYjvfiW67FrrCTlXRA0RU0OnyTaMBWPaW9ewL0Zaqs6Uvxi/W7u3ziA5UrxbM8TwQFD3sPUFVob5MH7uEWN9GYq7BgtUbJdSpbLcyWbRU0xCtb+Ed1rDekNvVk+/ctn9smTNEHNHWhPRzlvbUco+DtbzDS0eCDG3FSGkKIodLUkGMxZrNn6JB/44XWkynn6Gufz7suuZXTRSj44A73N6TBbL2K1v3I5dbqvrcMLxgh70dJmmhvTbKnR7ZmOdNcQkYriRculOSHJ21AlX0qpi3mpKO2p6KSdU9Wn6stUSEblhvbEzjGZaQVIxXWpQQaCmKHRnooggKI9fvLObBC9qKuFi45byHce7uaZ3dKISscM1namecnyVjYN5Pn2w90M5ipYjk9vtozrifq08JrEAsv12DZSIBsYdaMlJ0zXrkXF8XB9QVzXZEuFNAKkDMCeCbq0JUFT3ODRbaOoiuR2VReqqC41cSKGRszQiJuShO340rPlIUnbiiJ1qBRFPjvXl3IMTXGTgu1SCAwsgTTGqunci5vjshzVFATUZa1J1i5Ms35Xls6m+vHQFDdoTpgcu7gJ2/UxtRwKgkzJpezIbMN4RENRpSfMdwSjRUfKcJQdBnIW+YpTV1T8PWet4MZfb8KZJGIR1VUue/GiCYvH+IVvcVOcWx7ayrP9eXRNmRAW6Rkrc/TCRo5sT7BlaGqvUO0iKT0AkIhKr+hYyWbzYEFmcAZyDQQHBoBcxSEV0YnpKpmKG0o5QMB5Q3rO2lNRlrTE2TJYYN2uHJ2NMkPS9/dIs6AojBYstMCwz1dkeFIIaUwrioLn+VRcn5EgC20qTCbwO1qw6c9J78wR7Q0sbU1MashMVkA9YmiA9PSmogbZikNj3GTLUAEzkO7wg4OE4/pkfSdYMwQnLWver43A9wV3/b2HvkyZjnQUX0iDb7bG0/MhVaCq8kCZLTt0tSZDA2z8fZ7YOcZzAzksx68zKndny0QMlYuP7eTPW0bYMVqaIBk0HY9pOuNgPO8XmLBGAVx5xnK2Dxd5tj+/J9wePC55qJDCqbqqsK43y2jBxvFlJMH2fBKmXF8OVJmo/THAp8oq7B4u8u2HtwPKrEsgzcYjO5sxV02uGd930xlCI0Wbyzf/nn/94ecwPJd1C4/ko2+5lkpzG0lj9nqbk+FgF5J/wRhhyaiBoqp1nT4d6S5veWHMuVDxUGNq3QaXjEh+1euOX8Sj3SOTdg7Al3+zmc0DeSkUG4Qoa3Wmqv8t2B5bh4qBwrvLNx7axhdffwyqqkwIkYz3uhUtl2RU57D5SSqOT2PMJBnRKTkeFcfjL9tHeaR7hIGche8LWhImHY0xqRTvC57uy8lss+C0WZ0cu8ZKUqnbkjUWHVe642sRRM/IlW0cT0NTFSqux5d+sxlT0+omKMBg3goLKUeDOn1CQMX1MTW5GUsOjjRSReBxKtse2bKDpkqCtOR7yYw6Sf5WmJ+MIHxB2ZHFpKu6XiXLZctgHl/AS5a1TOqV2NuJpylusLApxq829NOaiLC0NU5vpszTfTmSESkHUbRk5pwZ6PwUbdm5vWMlTl3ZVjdhzzhsHr/c0M/m/jyOt4fcrgTP/xfr++nLVsKFrTZcmC27sihzIsITPWNSsLWmyHNtltbmoTwfP+8IdFWddGMav0hWx3zJlh5Ny5EhH0UJOBgauJ7k3kUEtCQizGsw2TpcZFFTjIrtMpC3A8+uzP4UikJvRj7D9lSUvmwZBRn2Tcb16kAmX3EoBmWhoroWZIgF8h9IXpEbGGTJiM5Pnuhj9YKpT7q1G1B7Kkp/toIQAs8XbBsqEjd1mhLmBENmqgLqaxakeMnyFtoDHbIbH9yM58O8BhPbFeQtNxjb1QoGCu2paF15tH3Bgxv7eWDjALbrM5Cz6uRgmhPmjI2ngyFVMJnRs7f7RA2Vvoz0Ihy9qHFS78jTfXneespSvjpOMmg6HtN0FUMURZnScBj/zFZ3pvn0xWu46gePs2usHPIBDV1lXiBFNFK0mZeKkC3blIL1xheENIamuHFARFD3x5M02WdHi3aYXLZ9pMS1P3+aR7eN8NrjD2xVgipmOuae6snw/Ud3TFntZSpD6Ewxwrv/9z9RheDvJ76cb7/jkyyLxcOD9oESoj2YheRfMEZYFZIw6vFsfx6QbuaS5U7Qp3E8H4T0iKXiBhXbD1KFoSFq0JaUpO15qUioNzaeHL20JcFVZ6/k2w93s3mwgBuocquqguNNdIH4QobRDF3wpy3DPLhxgHNWt9eFSLJlGzPwOAmkTpMv4EVLminbHl+pUYOuuB7rdmXDkImhqTTGDfKWS2FAhiSb4ga5ijwZNcWN8MhXFdF85RFt3PTQtqAETj2qbRBIEnk0EEj1BDTGTOal9vBAdo2WiJk6ric4sauZ7pEiIwW5WXtBOE5VFHRNwXY9CpZUqY4ZOomIzoLGGP25CqMFG08IlGBhNDXJrFNVBSsoqSM1ueQJVnM8qekTZHQO5Cts3J2bdMGZaqInTJ2tw0Ue7R6VEhYKPL07y7yGqGx/QFDPVRxsV4Yim+MmBcuhGBDSLzp2QV1m2t2P7yKqa1x4TCdbhgoynOgLUjGDku2SKTl11QDuW7dbVkOwXPKWi+MKnvFyWK6gOW5MespMBGHqLYNFXr2mY9L5MH6RbAj0xfqrhpKmBp4XBcuRocPWhgirO1KYhkbS1NjQlwNgVXsKy/Mpbx8jZsqM0LItqxLszpYpWS5NCRNDVVg2L0n3SIEFqShlx2cgXyFXdnEDORAt6Nsqt7FqUKuKFL1d1Z6a1vAYvwHlKy75QCfQ0KSnpjrmpxIUnW7R3TZUYHeuQtRQcX3pKTN1FacanhYCOxDc3B9ukKyDuZ1c2ZXF0jW1Tg5mdWeadMyYkfF0oKUKplMRn+4+wwUby/NDIeda1PZFMqLP2AMxXcWQh7cO09YQIaJrM/YkJSM6C5sSzGuIYgVlrjpSUZldHMiv9GXKxE2d45c0Y2hKnWA1TK31OBvM1ntZaxRXE4aqn62V/IibOk2aStnx+OuOUXozB64qQa3BM5Mx53g+dz2+i7GiPW21l8nmpC9W8cPfv4dmu8RDb34vqXGe1wMpRDvbQvIzxQvOCOvPVujNlvn2n7pRFYXd2TI9o6W6kByArsmMp5ZEhBOXNlOwXUYKFv3ZCmXb5bl+aQx87fdbeO9ZK1EVhZ8FCvzjT1pvOWkJ63ZlGMoTZtPVZsHV/tcXAkXI7Lyfr9sduoqvOH053UNFtgwVyFXc8HSmqwor2pL882ld3BOUT1kxTw6U5wZyUiE8YcgTdODNSEVldpkVeLbiZn2KL+xZkJe0JAiy8AHpjq8S4muNMh+Z3QayHl9fpkzEkJIFVUmO0ZLN8YuaSMZkeG93tsL63iyKAhXbw/YEIwVbCqUq4KkKjifDeo7nc9yiRvKWy/rerKwMEBh8MUMaCqMFC9sTaApBkW1JnM+UHdpTe06w052Mxk/0v3SPcMtD2yjbntQMUjxcHwqWR8EqBqKtSsg3lERuadD4AhnaBH78RB9HBV6b+rqMCnnLRVOVsNakoiiUHY/5qQgDOYub/7AVIQTDBZu85YYPvuqUzJSdQApjquk8ddL85IukCP/XcuQz1lRJOPc9mYVUzRzdMlQkEVR5iEV0hO0GyvkyVOn7svKA50vx3JGCFWiCKewcLbFloCDHvELIR0tFDUq2R9HxaYkbmIaGUxXGNDSO7EgRi+gM5K0pDY/qM65WdRguWIHcgTTax4/5ybxA0y26+YqLIgQJUydTlhw1U1MxA++u78vvWpCOzpoPVlsD9bZHdlC0XBJBckSVc1atMLB9uMDKeQ0zMp4OpFTBdB6RXaOlaZNC+rNlWV4rOTGhCeo9ckcvatyrB2K6iiG26zGQqzBacjjzsNYpBT3HrwdP9mTYPJgP5Uc0VaFguSxrTdKUkPqG1XJWy+dFwvD8VL9jXzEb7+V4o9j2fHZnyqxdpJMQWij5UfWaCyGoOD4LUlFG97Iuwr6Fs/c25voyJSxXcgH3Vu1l7cJGOSf9IggL2hbzVE+Gn5x1GUtbEwetD2YL35fyKjPFC8oIGy1YrNuVIaKrdKSixIJU/mf78/x52wjHLGykozFG2fboz5SlkKUCeUuKSfaMlinYLq7rYwVaVY9uHWH9rqxUiTcmP2m99riFNMZMMoF+leuJUBepOmzCcJSiUHF9EhGdvmw5jJX3jpWC7BtNboaBd8LQpBfoz1uG+Wv3KI1xg4LlyizMclU/S17r+jLbyAjCOZZjk6+4NMaMMMUX9izIazrTPNo9QsTQUXDC9qmI0MiphWCPITmYtyjaHqs704FWk8nO0RJuyD5X6EjL0NRo0aa1IcJo0ZZSF0H7SrZLzNTxfBGGklbMS3F4e4p1PRlKtgcIkqZKtiR1uXRNygmoosoH0ykFBmVzwsTUtb2ejKqbr+v6fOyedZRtj3TcYLRoI8ZR4nz5wMK+NAMeUK7iEjE0ulqTmJpad8/ahXVPKv6eE7SuKpSDcdIQ1dk8mCeiaWTLjtyEValBpQbZmb6QJYo6AqX4am8UwjD11FmW4xfJfMXFduV9s2UHV0jvk6GpmJqC7XuMlRwe2TZCe0qW3DppWQu3PbaDsi3rQaZiOjtHSyBkCEcEXiyFwDPmCZ4dyBPVtZDAX03qaE9FOaIjRbHi8Nj2UXKWSzIIQc5riNLVmqApYVKouNMaHvmKKzlg2Urwm3yKljxhN8Zk1YxyzZifrReoP1umL1cJTu4+JbsSjjddVSlUZOLOuWs7JhgM0xkUtRtppuTQM1aiMWYQNTSK9p7kHEXZY0huHyny4q7Jw+y1OFBSBTPxiFRDvVPdJ2polB2fpDaRwDy+L/bmgZiuYoiiSG+q6/tsGihwlKaGa2BDVJ/UcKiKYpdtj2REJ2FoofexFHgfDU0lbmiy3NhBFEGdqfeyP1sJ+6S6Bw3lK2wdKrBuV5aV85IT1pnqYcg0NDrS+l7XxX0NZ5/U1cLGvhwberMsbUkQj+jhWIgaGp6ATMnea7WXz12SRt34NJx3nhRdffjhfzgh2ur83bhjYMafecEYYf3ZMs+MSM2aoxemcXzBc7sygUQCFG2Px3eOsaRgETE0LFeQiuoM5Cwe2jwMSOPEDTZHmfFloikKu7PTn7Qe3TbC6gUpdo6WKAaZgaqi4AtR56MQSN6VgDAz8ameDN97ZDsPbBwgV5Yn4rip0Z6Ooqsq/Tm5oH7xwU24QmCoComIQSKiBW5nDZequGYggaDJTc3UJZeqGoNXVYVCxQ0XypOWNXPbYztZ0hxnMF/B8WRYaGq/ivSCQVXI06N7uICmJKWQpYB8QGgGQFFY1pqkZMnyNXZQgzKmSde5DENJ75vl+gzkLSCHoqq0JE1J3i/ZjJVlhmXUkL9JqqMrpONSt0pT5Wt5Sy5CMz0ZPbx1mL5shYaoLHkkjdk9Hqi6jgvg+kJWZwi4Ic0JE88XdfesXTik4KAISxdVv6Oq1u35AtvxpWaYomBqyh5jTVHQFJkRWnF8qVFk6qF+nAjC1Mtap97Axm/MMUPD9X2sQBMsaqhhYXBf+OTKcq7kSjbzGyIIBB2N0T2G3Lwk8xui7BgpBan9Isx+HQxkOYIBgqkr2K6cB6oq+y6iyyoGzXGDXZkywwWLw+cnaUpGQvL+3rw2vi94qmeMnrESCgrpuE7c1HE8T2rRCUEqaoTPeCaCorWQRch75WEKaEua5CqO1IhzfRqiGrqm8pJlLXWF0fdGaB7vXYoEhdHzFQdNVUPCezUBQwhBwfJY0qLPWOfpQJCMZ+IRGS3ZE7STqve58NgF/Hgvel2zEQ/NV9wpK4bUZgz3ZyuS34oS8uqWtCRC3iPsMTArjkd7KspoySZqSGqG5Os6bBsqkIoZrOlMIxBs6M0dNBHUmXgvV3emuX/DbnpGSyxrS5CMaKAEfMRUhN2ZCjtHpSC2rlYNKMltruqveYK9rouzNXhqx3vBchkr2YyWbJpiJs1JU+pIdqa49eHtM6r2MnDnT+l45z9BPg8rV8LYGEsXL/mHEKKt/t7q/G2JzryE0QvGCHtqVwZHjRKP6Dw3UKBse/jIUFzcjBA3PXIVB8f3MYRK3NToSCdZ1CzDX0N5S6qcqwpxU5MbUxAmURUpFrd5oEhzYk/pkuqCtGWowJtPXMyzA3me7pMhwsmEAKtraDXDsDdT5tZHtuN5UvQyGZEnr0zZCesT2p6PGxSc1lQl5JXZQfgmorkYhlR29gIPHMj2Rg2N5fMSbB4ooGsKIwW7bkGucp1akibJiEHRcrA9GYucjB8GBIRkedo0ddg1Vma0YON6PhXH5YmdGcqWLPWjqCpNCZOjFqR4tHtE1vZzfArUetWkIWBo0kC0XSlV0ZwwedHSJhY2xXlo0xCP78wEBG6ZoZiK6qFwaNWz5Lg+ZWZ+MhoKCsNqpoId8EKq2Zq1DrEgcZCGqI6hqRzRkaI9tYfvMn5xql1Y56UigdinNOzHL47FICnCqxLUxw0cU5elVARQsFyZbatI0vvK+QneefqyvW7OtRvzul1ZKrYnNd90yYczNAXb88iXpUdY11QMXSUVM9nQm6Mvs4Vz13bUGHJSl871BJUg+UOteU5VQzZfcUFRiAbjBSH1wqohwpXzGsiUHUZLDs3JKJ6AsuVO6rWpepie7Mnwx81DPLZtNCw+DrLaQjpu4gbyMGMli0VNcbJlm790F6YVFK31XiUiGnf9vYexos2xixp5ui9HxfVoSsi6pZmSg+MJDpsX559P69qrHmHVW/6es1bw4xo6gRIc0kxdxdSlFlzClJug1KUSCKRu3dtP6ZpVhtb+koxn6hFpT8cm1OcNM972otc1G/HQhqge8GwnVgypHnaltJ1AV2R5pD1lz2TIuDo3qwbmgsY4tudT7M2GUiWaKuub7s5VaEtFwvJafZnNB00EdW/eS11T2Dla5PGdGVSkgHQqpodh0+VtDeTLLiMFySV2PJk4UrJdoroW6q+Vrek9yzC7cPb48d6RjlG2XLpHiyRMnTefuDjU1Zqq72BPtZdX/OHHtN/zJfA8OOMMuOceaG5GhUMuRAsTvcN2uTjjz75gjLAVbUl6i7IkykC+gu8L5jVEMDQVIeTJV1OgL1PB1BResrwFy/XYOVqSIYsqD8oXRIIMRRGcmqshulxFalDVVrivXZD+49xV3PyHrfz6GalBUyW2w54aWAhZ2y5iqJRsj92ZCktbYkHozQu5YLbro2kKUV2DwDjUA9Ku7/sowe8aKtgYGmER6aGCLP3iCUFD1KBiexy9MM0lxy+iPViMqgvltqECEUNFUxRakia26+H4eyQIqlCQXCghpGAnyMmTLzt4QmbI5S3JYyvaHn/vyfDMQJ41nWnmNUTpGStJUr4qY1aut8fK83yfsi0TKBRARXqNOlJRnu7Lsztr8cYTl1ByJF+oIdDFGi3ZYbmZqmdJ15S9elBqN1vH8wFB0fLwA0/eBC8YkIjogWyG5IZVxwdMfhqrXVgHshVihkrekkWmy44XLo4CueE1JUz6sxX2mKZ7IIQgakiP2byGKFFTC2uKzjTjCfZszPc/vZtP/fwZiln5my3X3hMyF5IrGQ2MXUNTWDFPenuf6sny3rNWhIrkvpBikGpwMEhGpOivHzxAVd0zn0Q4duXBoRoijBoaXS0Jutr21PuczGtTPXE/uVPWGHVcH0/sSXIoBnzD5oRJOmYyWpS8tILlsn5XDkWB5W0JlrUmQ528KmEbqPNe+YFA64q2BpqTEVZ3ptk2XGCkYFOyXVxfoHgKmbLLj5/oRVVk3dm9he++++cdDOYqdd6lqhjlaNEmZmhYrs/qzpQ8fDkefbkKL1rSzMtXzZ9RH9dipiTjycKns/GITHWfqkzLrX/eHugWQjqm71Pa/9KWBMtbE2wdKkyoGKIpokbmBMxA5qZWashOmCxuigP1Bma1vmm19qjnSzmcuKFxSY2RfjDlC6rParJ7dDbGGMhV2J2poKKQjkmPVm3YtClhsmZhI0/tGgvq4zokTC3U5WtKmLPyGFVDi+t3ZWhriEodNV9mx1dLiAGTj/eYweoFabYMFnise4yXr2qftu+EEFQqFh/+9bd43R/vAmD0ksvI3PhVljY2UQ1kH2wJiZlgOu/w3vCCMcLmp6IMBLpD1ZoUeavqQQgyMoL6hSXgoS0jiMA7ETd1VNWRtQmBkZKNYblEA00rCDIFRZBVWYPaBalke7QkTZa0JOgZLWEHhZR1BbQgC01TZc0yXVOJ6LJu3tahogyB6iq6KknnVZI0wkPXVISAZMQI+Gt7sgN9IbA9Aq+GRt5yGQkW9XkNciKfu7ZjUq2Y2pNPV0uc4YIFtoehScOmapBUOUMCWVvQdn38oLRHlR8Fsg2qIkNnZdvj7zvGWNAYxdRUmuIGliNrt4E0KhVFbgJVWQxFkbW68hUZ0q0aAH/pHmVtZ5r1vVLjq6stWXOC1Shaklu2bahIc9LkomMXTPitta7z0aLNWMkGIZX5i8E4mQwKso8iuvTWWa4kxHq+mHAaA5lVV93Qqt6PJ3dmGCs5ZFyH1kSEFfOSGJrKlsECzQmTlx81ny8+sCnIQJVhYyGqBcKVgNSv88nXHElTPDKlPtLevB4bd+f48RN9oUdWgPT6iT3mn/TYyfFZlUtpT0V5aleGE5Y28qYTFyNeBF/67Wae688F9SL1MIxdnSe6Kp9XxfGwfYGpBRxJJeCRBRvDsYub+PdXHcHOsdKUJXiqJ+6xko2mQCSqh0ZRQ1QaYhXHZyhfCSopAEJhpCgN9YSpsWuswkjBpj0dDRMivvHQNkqOx1iN92p3pkSu7LJlKE/MlIknXSTIlh0iukajoeL4gtZkpIYT2rnX8N3WoTyeJ0hGdUYKVshZ6mpNUrSylB0P30caCKbOaMlhQTrGa49feNBO+ZPJoixrS/JPL9n/ENCG3iw/fqKXoZyF78v5Pr8hWpdFPFOoqsLlpyzlrztGGS3UVwzJV1z5fHxRdzCqlRoydZWdYyWWtSUnGJhTFb4/elFjeP+DKV8w1T0SEY3bHt1Bb6ZMV1tClvwS1IVNq9m/UUPj8PkpXr5qHvet76dou3Q1J4hF9Dr6yXQeo9r1cThIUNs8VEBTpPbigrTcR1Z3ptk2VJgVgX+qvivZLu//za2hAXbHhe/irrPeQuRXmyd4q5+PPpgOe/MOT4cXjBGWjOikYoLBnAVI70zF8bCCcjhOwDSvdlnJcgNPlYYZSB9UIYTMfrIcaXT5yBCQoSuhqKu8bg/B/bmBPLc+vJ2i7bKyLcnipjgb+rL05yohudtQZRi0NRmhKWGwZSBPwZYaNDFTxXYFmq7KUjdUjT4ByIU5EdGC9HubguWHdeziph4YQFLZXira60QNjd3ZCrc9tpNHu0cniO1VPTbP7M7xRE9W8tUEMiQZwFADsr4i5WernkXfA6HsIaxH9IB/I8DUCTXK+rMVorpKMqpLo24Pbz/47x7NMEWRBoftitCtXhvu7c3scUmvWpBiS1DPUfK0ZDgyamjc80QviqLUeVKqG3nc1MgUbcpBoWpD16i4U/MkDE0JtKwU2pImiiLDcNuHixM04z5138YJfKCLj+3kLSct4ameDH/aPMxg3iJbdqi4Xp2K95+3DPPIthEs1wv4QXLBleU6FV60tJnTV86b1ricTlix6k4fKViyzJKuhKHN6lgDuVkWbZfFTTEaotJLs22owECuwhce3EwyorO8NcHLjpzHUN5id9bC1PcQ80VgiekqoQGpQlhBIhnVUAShAXrxcZ3ourpXGYr5qQi7xsokIgZCyH5xPRkerE5JOVfkoapku2FZGssVOL7DSNGnNyM5gMmIxo6RIvPT0brarum4ScLUqNge24cLNMUa6R6WAqAtSVNqvrk+qZhBZ1OMLYMF7lu3m4rtTRu+K1Q8RooWPWNlVEWWSkrFDLpapVxGtWLDYN4iHfcP+im/VvKhbHuUHA/Hlfpqf9s+yutftIjmaYj3e9vQ60JVQTLUjtESX9lHgdM1Cxv54CsO5/MPPFdXMSQWyOYkYgZxU3qsy0G/tyQiLG6OyyzZ4KA4WcitWvheCBFWvagamOMPOGs690+hfTrUehW3DRXYOlSkI9Csq3pMq5mP1aSNXEWKRa9d2MibT1rKcUua93iM8taMPEbj18eKLakKui+pH0ta4oASCqNWaSwzJfBP1XcNUYOfnP5aTt/wR25/zTvpe8UFLDWnlhc5WBISM8HevMPT4QVjhFVJ4NmyFIQkINhXdaoURZLK5WYQcFdUWQMu40mDpuoPURTJCdKDsKChSY5DVXai1guiqwrDBYtP/XxjSKy3XZ9lrUmOXdzIo9tGsD1JFF7V0UDE0GiI6OQtl+eC4rdVPsJo0cYJsjKrsczAqReKnEYMjbgnM49ihoauKVKxW1El2d/22NSfo1BxMZrkadvzYV1PZsKg9n1B71iZQsXF9f2wjp7jg4II7+d5PrYnEEJy3ZIRnYItw49+YLDZnsD2AvJr1dBChi99ZGWCqhYU/p5C1tU0AAWCDM+AtB7srLXh3lqXtOXITJuK6xPVVZa2JmkNtN1qJ3BtqGh5a4K/bB+laHsyy01R6MtV0FVwJ6mlXe1rXZPp1M2JCB991RH8X/b+PMqy6y4Php+9z3jne6tuzdXd1YOkVktqDR4kW7aJDQaMDZ4I+UIMMQSTl4VJXiAEzPB9+AVeY8IQHAgLkhgTM8eyIbax8Qi2ZUm2pVYP6m71VNU1V9268z3zsL8/fvucuremrm5JwFrKXstDd1fde8a9f/v5PUNeonXJbuz8SueGBodvvm8K90yXcGmNGHG3jxVwpJpPJ/Sf+rbj+KVPnKdnIorBOCGLCmM4PLIz9+tmjBUTOL2Y0bHUcjGU1dFxqb3GQWhfMoQARouZNNao65Kooml5aPT81N/n9XeOYaFpw5FSfoVzCBaDg1qUkKrdgqmkk2/e0NByg30VGf0tAD+MBgQOnDGEpAyAynlfS5VoAwojriDnMoEhJoPYKBbwoxhtJ0bPi7alJxQMFaWshposlle7Xqo6EwKSz6enflETpQzlS2J3Fd2VtS4WmrbMnRSysKdMTsuLcPdkEUM5HQ8cGsI7HjqIUkZ7QXf5A5YPTgAvlLYBOimsGz0ff/H1RfzE62/D6cX2TbWAXsjopDffN4XD1dxAi1NXaK48NpLHVDkjPfbiNKWh5xH/sV+JuV+O0fMdhH4zox95YYyliGnCX+NybbpWs3BgKJse834Ro602KQ3Lx7GRHJ5aaMGLYgzldAiBlIJz34Eyrso0mu998MBNKxb771392gIauQqKpoKmNo4f/bkP465DVeSfx2fl+R5bi/ebGS+eIgxAJafjvgNlPDHbQNcJSBrPhPTbIqQo2fknBQ7nDH5ESi4hWNrOjAUQ80014LHRPA4NZ9G0abea9uy7LmY3LPhhnBpDJj37u6aKGM4bqHU9RDH1wxOfrryupI7xTMTgjAxAux4ZgiaIkcIJETE0Og43CNG0A8RChndrCq7WLByp5jGc0/FkvQk3opy2K+u9NLOyaKpwgih9qM+vdPDIk4v42/OrVDwa1HqdKqtY73qIpJcZZ9Q+TVp2eZ0Qtp4XpgHlCRG7H01MXpk4pnPMmirswJeLKE32/Zw5VaE2kh/GGC0Y6Qvc/0IfGcmnE0wyeagKTYwMSCfgpN300aeWYD7IpaRewRPXG1huu2AgNaYiA5k5Y9C45NX1nYOsI2CqHKau4e0vmcbJ6fLAM7efRecP/v4qFIVJRIW4MbeNFbZN5mNFAwsNGx1XpMf14JEh/PBrjm6b9G92sUsmdSNDrYCCqUJVeJrbmIgkdOmDltE4Zjd6sLwQjh9BVUiVq/JNf5/Pnl/DAwfLmKvbZMoaxrhWo98J5W45QaLGSxl8/ysO4eWHh/fdSuhfiAREKnBQOUv5eQJU6EexGOC2KdJKZDCGi3iDYSSg64TotuwAKRETSDdzlhui7YZoWSQ60RSW2pLMVDevd0ZXwBnDaNHASnu7b1a96+LcchtCAEM5HV25GfEiASWOEAuBUwst3Dtdwg88PPOCL+5xLPDlyzU8db2JjkOKz1JGT49ZUxRUcjqato8vX97A+992ctdW8U5jR+6MEOm7WTBVXF67dXPNk9Nl/Pp33zvQtvuTx+dxdqkNAaTzK33tzq3T/XCMXqgg9P2Ondqm/fy1hBJyYrKIH9gi3LgRYrSbTUpGU9INB9mkQCJuIXpelLYZAdxSu/rkdBm/rs0Bv/QOLPzab2PuNd+J//7lWZSzg58BPH8xW8/X2Fq8D2s75NHtMl5URRgADOUMvHymgq9cqcMLIkK4IoFAxPBJrJWiYxCEdMQCcAOaxMkQjtoapsZhKByRAF57fBRvOkmu5JYXpS//ksx7W+t4KYcm6dnPbdg4XM2lE3rHCZCTHipXa12azASw1vWhKWSCmdWVNEsPggjrpsrRsv1Uwh7LBUdRCI6vdT1YXoQj1RzqPR+uJBjrKpeWBAIN24fCOU7NN/HZ86t45KklLLedtHiMYlqQHF9+ju2jYflUFBVNzAwr0jk/wmqbhA9MtoFkV2ugqEraUwkq5snoDy+IMZTT0HZDiQwQ6hZK24CMvrnIxXGM2Y0eDlfzA9YCR0byuFbrYb3nYaKUQcsOcK2PXKtwunen5pt46UwZDctHy/Jh+VHq9SUA+AFxQBKDWoA4UozLlnRaqHNMlEzc18cTScaN5PxxLPCZ82tQORU3msrQcyk3s58cnkz4DxysUJSUS5Jvx98heUEupKfmm6hktxti7jSBJZN6JPk5pHJVYORJuWh55DivcC4Lp5g2EwGpdIdzRopObvr7BHB8ygZMFqsTkyVcWetio+fB1BVMFE3cM13Gv37loW0FbP/57LRzL5gqDJWj1nXJ2qRP4BDFArrCU3uMGLRh0VUOEUYAAzg4PBERwVcQ6srlc+WH1D7veeGAiTFAm7kjIzk8u9ZFRwbWCxAPLLElSUaySfjOk5PpwjZRyiCjcdR6Lp663kIkBEZyOnKmBk1NCt9YxlnFyBsqvvslB17wAixZfE/Nt9KED10l5N7QNltLmsKhcY6rNSvlUu13bOXONC1/4N2UezA8vdB6TvmV/b/7tgemcGm9i9MLLYyXTIzkDThBvGfrdC/E6IUOQt/P2KltmvDXOm6A2ZqFE5MlvP9t90BV9x8mvZdNyrNrlEec1fuED5yAiSCKUc7qWOsQenvTikUhgN/8TfCf+ilACBz67MfR+s63wQtjZPTnL2brhRz9xfv/8QnbYVhuCNWkNmHDCjBdNjFXt1N0I21/iU1vma1qOMbo34QgjtPBoSyaFtlFfOHCOp683sTRkRxecaSKSMQ4s9TGRNGEwObCRjYEmz17TeE4OprHlVoPdhBhbsNCEFErZCSvw1AV1C0PIhaw/CjNjzQ1jiAmBdlQTkfLCdByyBsqo3N4kUAcAz2XPMCcIEIUx+h5AaKYTF8zA0ohcuBebjn4+OllNCwfk0UTS00HbYdk93Ecw/IAL4rxskMVVPMGLq50CFWrufDCKLVT4IwyBpPLl5Cy0yEXRlWiiRSPE8ED4IYCGVVB2w0GlJhCCIwXTJQyGpaaDi6udlLC91ZrgWSy99QI51fIRqA/4Lrr0vWar9tUzAQRChnijAhIsYHKEESUV8hBJxALMkklvp1AGEtj0F0CpfcibDZ6Hi6sduBFMXKmjpKp0ud5oWz/2XjkyUX62S0Tfjmrp5yjR55chKkRGrnadvD4tQZOLbRwea0HU7ORM1QcHMphuq+1tnUCSyb1MwstFE0VDZv4Jcl1p/QIjdrSKket68ENYiiMoZTVBxZpYNPfp255+JFvOpr6RXlBjKlKBg8cGsLDx4Zx34HynujJXi2fWIiUR2VIYYsbRCnSxrCJRMWCjDdNjSOy5Tuscbhhn+iib9OV0TnKmoamFcAPIqCvCGv0PDy71oPKOSHEugIRCxwazg4UYP27/tefGMNUJZOqOJfbDhw/ImoEADuIoKrRQOFLhRiJecZL5o7X5/ka/YtvJavBVDl6EjFv2D6G+u5xMo/Fkvh+M2OrR965pfbAu+kGFFn2yJOLuH2ssGPhuV+hSXJeHz21BNuL0LB8rHRcGCoRye8/WNmzdbobYvQPEYR+o7FX23S94+HAUBY/8PDMTRVgWzmWfhghjKkLpKtkLJ2krNA6hnRTqyl8W1di34rFIADe/W7gD/6A/vwjPwJ84AMoNN1/Ukas+xlJ8X52roK//LH9/c4/naN/gUfLDdCUZOl7pkrY6Lm0Uw9imggF7ZQZ2LaQakBaSGCTg5W08xTGMCJDXVc7Hv7m7Co+fnoFpYyGjZ6HjhPgSDW3jTiZeFf5QQTbj/BtJ8bxrx46iK4b4sOPXwdnwG1jBcm7aVFUkYyQ4ZxB5VSIDeU0VHI63vrAND55ZkXaMLhQggie5LcxRiTljS6ZZeoKTxfYhBBNLTcGy48wV7dxuJpHy/alNQakIo4QBssL8Y3rTXDpU2b7EfyQfk7ITqmqkJtW0Nft2drKYwzSuJUmu7W2g1CQJULPC8EZQ9ZQUMpoKJgqal0P1xs2Wk6AthNA5Qx3TRYxXspsawUkKMml9S7cMBpwYtYUylVs2QGevN6A1FWQ+SlnKc+Psc2wdYUjPRepsUIc03PBOX3mx55akmrM6IZy/kbPw2PX6nADKvosl3ITC6aWFsROEOP0YgtcTuw7TfhZXcXfnl/F2aU2JT10XMp3zOuIhUDXi9B2Qqx1PMw3TNw5QfyinVzJk0ndCYj837AoBiqxjAgjIp9/30OHMFXJ4gOfv4z1jjewM05GGMVgjBbpSAA/94Y7b9i22rq49rwQv9OXhdrf8rmw3Emr+qyuwgtCyTuMIWNfCdVU6R6pnGJnvFBmlQrA1Dksn973xE8qigVypor7D1TgBDFsr43ljgtDU2XurIsziy0AwPHpEsZLGVSyOs4stvG12SZOTpcxXjJ33PXfPVVCLAQurXYxlNWRLSu4ut6DExJX04+81BhXUxhUXUHLjqHwF3ah2YbsAJiVGbMqI+5s0/FRYTp0hTymCoaWvpc3Mw5WshjNGzi/0oHjhwPvphB0/8ZLJtw+asRuiQK78bCS5+jUfBN/8vg8bD/ERDmLoyM51K0Aq20HWV3BW25BiQm8MEHo+xlb348TE8Xn1Zphrm5JpbaPxaaTIpNeSGbRBVOFF/roukHKCUs4kHmDaC/9bcZ98c9aLeCf/3Pgc5+jyfY3fxP49/8eYOx5jdn6hxycE0dvv+NFU4T961ccwsTIEEoZDbEQeO/Hz+P4eBFPzjel8o74SUxyxPoRGJVLVAxExk8Uem4QY6Sg447xAtpuiKu1XhreG4sYuspR73mw/RCjBRMty0fL9pE3icQrILDccVOp+bHRAq7Veqh1PUyWsynEfPdkCU/MNghRU0h9VyhquH2sgEpWw5X1Hi4sd5DRFDQdcpofzhmw/AhdacvBGYMvVYaqwiAgUJftRCGScxbQVYpFymgcz3bd9Fok743CgJgRkV4IYLJkYq1HRra6DJl0gghhJGCSDFIS+WmkHC/OUJHxJX4YYyiromNznBgv0O7b8nHbaB6GpqYkZxHHOLvchu1FmCiZuHuyCCYDW7e2An72DccxWjDw9GIL5b4CDKDzJLsQA+tdX7qpx1jpuKlSNog2W9OxEGlLNbkOERnYIyPdtIsmFUNnltpQGBtQP26dSJqWj6cXWrB9strQFCr+vCBGEPkYyumpgo8zCofeCZJvWD6u1LroOCGODDO0HbqXXkCE3ER1a2okOFnvuojiGHdPllC3fNwji4LTC61tk/pXr2xg1vZTsntOV1DK6MjoHF+fa+Llh4dwsJLBfMOG7bOBOBQ3IBsUAAgiDx/8yiy+Pkfq23t3aNkCOyyuKqFoAHFF+ls+R/UcvvhsDRACL52pQGEurtQ2RSuCJW0tKqhVXUE5S672obQPgZD5jxLRLGdUBLGAoSm4b7qMSk5Hfb2HVx2rkgqw1sNqO8JS24GhctzXlzU7Vckioyk4tdDClVoXjk/2NYeGs3jVsSpFjcmN3cdOLcELY9x7oIyeF2Kx6cCLBAIBhEGMeuTJDEqFTGzjGEdHci/oQnNtg6JtspqSLpZ3jBWw1nbhBCS2Cf0IQeSBSxFQRucYLRqpg/x+OHzJPb62YWGx5VCcmExJUDhPOaz9UV/XNoi32nVDrLYdfOSppQHLkK2bLwBpS/XSWgdeGENXOGo9H8N5HYeredx7oIwr6z381all3D1582rGf4yonL2Kz90McW92PL1APnsKQ8rvDGNKPnHlDlTlBCA0LD9FmseKGVytWTu2Gffkn1kW8MpXAhcuALkc8Gd/Bnzndw787j8FI9YXerxoirA/euw6Thxy8fYHpgec4E3ZkguiWBqaioGCQWXEAaHiIkYk3emTYmKynEU5q+Gp+WYajhrGVKDlTRVNy0fd8tG0gtTOwA1pcSlndbzs0NCAqWbbCdC2A5gKh4BAwVClZxhHRjcofy+IcNtILm19JAosJyBnZM4Y1noeoigmXhVkMLg8J9cn9E1hJDGGPH8h2zFuGOFqrYdGz0fJpCxKT6IjseShRRF5mnU82hUCQBwQUZ8z2daRUHUgW0OcUSHLAGR1OifbD2GoCr56lVAhxgE/3GzbHp8obiYQcI7RQganWk3MVHNpAZYMBpogn5pv4tGrG3jlsWF8/uI62U1IlCvxnzE0BcdG81hru+B8M/Cb8jg321LEE4JMAYglJ4xDVRh5DClkqrvUcmD7MY5WlVRynywO/W7yE0UTV2pd2H4Iwl0FVMmz4pwhCON0pxmEAlqWMurSCV+SmP0gwuX1Hlw/Qk5XoMp2Qc5QqdiIyWFfgIjmqsIRxzF6boRTCy0cHs6ibvl478fPpyakEyUTbzo5gfd823G8xz5LhPICZaLqUk0mAJxZbOE9Hz0HXdpArHc9mBrFUcUx0JDFk6EpGCuamCiaexKWdyI517ouFpoOsrqKph0MtPl6HiGvbhjja3PNtP2oqxyGpqQ+do5PaHAUC2R0DkBFywmgMbruQoAEKSGpe4fz5NFmqEpqkfGu1xxJd/MXV7v44FdmMVE0kc8MxpIM5Q08ODOElY6Lbz4xhktrXax1XPzZ1xbw0VNLODaax0OHhwbaWAWDFvPA2oSL4xiAAjhBiJ4rMFIw8c5XzrygXmC///dXcXmtK2PMOIoZFcM5IzWITRsDQkCA0HLF8nGtZuF9f3NxX6rA/ns8XclCUxlOS9ubWtdHwVRRzQ9GfV2r+fjtz11Gywng+lQAh5HA/QfKO8bD/bcvXYPth1hqOVjrehLR5jJFJEQk+Up3T5WeU8vwHxqh+YcQAcSxwFeubCCOBYpZLeV3agrDcN5AveelHZNyVk/b6OWMDgFxa+hbLgd813cBnQ7w8Y8D99+/7Uf+KRixvtDjRVOElU1twDzR0ChklzPydwpjcmePBeCHFGEUx8QH6jghTI2jlFHBGd9UIMYCbkBmdx2Z6UatRsCJBQqGhtWWiyCKoSgcFVNDHAu0nQC6yvEDr5zBv3nVprXAuaU2Pvz4dcw3bSw2HYrfkRNiLJAGyRqCnJ+TkdHJab1p+WhLXhhjgMIYFIUhkhMpB6F6AtQ2DIUAiwUURgT+REW21nax0qIJL6PTAhxEMdwgQgz6nEQZ6MsCTFIEEPcVqL50LgeonSdALU9NocKMArsZXJ8MO02VyNXNKEAUxVhqOWg5Ae4cz2M4T27+Cqe2mLqlNZcQfNt2AMuP8Fufu4Sj1bzkNsSygE78gWiy1yWCZXWoqJkoGghjQr4IAYxR7wVkRlg0ULMCqIwCbxNORNsJyGYjIlf4YoYyCfsXh9ML7dSY9exiG+sdj7I7BUBtTWqeEUrJJcoaIYxjnJgoopTRcHapjeFQx2zdQscJ4YXEfQIDJooZ6LLAVBVCaXWVFp9SRoMTkFoqjAFTIp5uGGO55cj8TQ8tO6Ag+6t13HughKYV4NhoYdtOnzYVAXpugHJOg6lxdN0Ith/D8V2o0q7F1DgKhoajI3nkMxqOySSDrS2m/lbY0ZEcel6Elk2oFp1TTH5c2Uq62BG6HKXFAUUOCTgxnZemMDDQjt2UObBtm4QtB4eyGC2YYKCF+UdfdxSXVy08NltHxwnQsnyYurJtkk+C1zljyBg7T5sZgxTGX7y4jigWAzv3s4ttnF8ma5iJUgZA0jJlm1QHibomm0FF4bhjvIC7Jm99odmLP5Us7sttJxXpJOrtpaYDTWGYKJlo2WRTkdEUKJyhJ2PRpsqZNIx5r4JgJyJ7LEyUMzY4p5i1oqnh/gPldGO12nax2nHBOHB4OI/QiDFbJz+2Z5Y7qRs8IHlYRRNfv97AUFanPNZISENgUtEkQfduEGJug7y+vFtsGf5DIjT7FQEcHyvclEp165irW1jvuBiWCt2i2R+RRp5dTdvHQ0eG8CP/7FiK8vVTL/b9fUEAaHIT8//+v8BP/iQwMrLrj7/QRqw3wzF8IcaLpgjLmSoqlZwM1G7g6EhO8poSqwUZnRLRi5kiN5IPRK2iAHmZ55fwxq6sW5jdsAEA1TwRFBMvq64XwNQV6BGDE9IuzNQUTA9loXKGlbaXHl8yIdZ7HioZ4mNoMsi6LS0nwpj4V0muYDJW2w5W2+4AN4eBCLQJCqVKVWci3eeUdgSdszTeJZSLN9lWUIFBix3FdagK/W7WIEQhlgIFJ6QkAS7EprmqXOxjkSBfChiTiI/kGYwUDEyUTFxY6cAEKR8tP6KiJiYUqu0E+PpcE6WMhmrBQNHUyEagr1/ctPyU4KsrRJauZA1cb5BHVU5XcOdkUQavb7YJrqz3cGg4h54fwXJDdD0iCHOQsacXxihlVJRzOipZHXWbCPMZXUEQEaKmSLUUgG0cmX6Sbt5Q8QtvPIFPP7OK3/nCFRwcyuBazcJ614MvojSbUgAIwggNS2CsYOCdD8+AM4YLqx08MdtIfdhiQUUWk+1fR9o9EKJJhbUvW+OljJYSvU9MFHBpvQc/jDFeNNPsw6yuomDQPT8134IQwEjeGCjChBCY3ejBC2gRttwI5ayBghmjaflwpKKvZCoYL2YwU81CVRgaPQ+ayjFRNLehDwnJOaurOLXQSlVyAgJOECNnKGg7YRoHJoQgg2NBhb8QSN/FZHMQySImiokb54YxbhvLo5o30tZ2FAs8s9TGx55aRssJ4AU0B4xLNPD1J8a3TcQ3bEPJkGIGWji2LpjnlttoOj5sL0Qho6VE56EcGSi7QQzEQE5XUcnpmK6YiIW4ZYL3Xi2sfn+8uyeK8KXatSStCNp2AMYUicArGC0SSnh5vUfzhlQQb91w7MTj2onIXjDJby3hyTpBhJ4foWASYntxtQOVM9w9QZSDes8DAyVDdNwwdYNPrENCqRieKJrY6JGpqCfNpclwleYcQyUu6IbMyb3VluE/FEKzHxHAqfkm/uNHz6DW9W7Zr6wrc3mPjRVwfrkzkJcZxQJOEEHjHG+4ewL3H6zc2skIAfzKrwCf/jRxwEyTCLV7FGDJeKGMWJ+L19vzVby9aIqwrhNgOIM+h/VDuLjSxVUZR6HIXWjCX0omeIAW5ETunpDbgSQzkRaBMBKo9TyM5llq/ufIHR4goPsR7hgroJwlEuN618dT8w18+XINDx+tphPiJhmfokqyuoKeS1FEjR6RWJPQVQCIoyj1GTo8nMF6x02jf/q5bbrCEAoGJlVhALnIe1EML4xAlhsKKlkNbSfERMlEEIk0IojFgGlQaDMDyD8JQNePUk+1CAATIlUXAlT8VfM6HjhUSc0Rk/iPtuOjJeM2oigir6Cor/0hRywAyw8Rd4C1tovhvI6uG2KsSAXmtY0e3DBC0aQJejinY6xoYKxowPbJw2at7WKynKVCz9vcsT58bBgLDRsnp8t4dq2LWs9Lo6c0haNg6FA5x3e/9AC+eHEdX7q8gdWOC1NTZLC5iivrFkoZegl7W8wg+0m6nDMcHy9gOK9DUxSKV5LCBz+K4ErhBUAFxeFqPs0eHC0YuFaz0tgnIS1GioaKUAisdVwUTRW1nkfGoDLUm9zA6f6Myaw3TxZgs3Vrm2ghb2qwvQBuGOPyeg/DeT191rrSRiUxbi1kKLBcUzgmygpaToCmRZzHmeEsZjesAVuQvKnAkG3T9L10QzR6PpoO8RM3Fawxel6IlkNZd8k96UpLCC6TGjwpCOFyoRWygM9oCrwoRkdOkNW8MZDpuhVpSVo8K20Hjzy1hKlKdtskfKM21GzDSn9upwXz8FAODcvHXN3C3VMlQmxi8mTL6ZuK1LuniiiaGiIBzG1Yt4TW3KiFNRClxDmOVPOwvbYUvPBUfERZgyruGCtCVRhcnywz3CAeiGjbSxW4E5G932A0iWRy/QgMDLMbFKh+Vx/nU1O4VJgn3lTBgHVIz6X5yFDJ5y5rqtDVMLVwSbJz204AhTPMbfTw2uNje7YMb7TI/kNE5dxIBOAGEb3HQYRjo4VbblUmGwxTVbblZSqckLByRtuV03nD4XnAu94FfPjD9OePfQz4l//yhr/2QqJUz6XN+3wa9b5oirBTCy0M9QQODefgJYpIIPUUCoVAMqckyj1VImFRLBAgHojrAZIgbQqGZQCCUKDWczGSNzFeNHFlnUiOXS/CcE7HgSEycz210CLnfi/Cb33uMv769DJmaxamK31k/L4XAeCIEaOQ0VDMaGhaPhqyJbPSdtB1Q2R0Bc+s9FKid1J8JcccCiqIFEZoXc4gv7GuF2JmOI+lFqF5tZ4PP4qx3HLTUHEOEgQUMzo4Y+g4QeqXE0QCmgIgIr5XeoWkPK2S1XDvgQpKGWodFDNkgkk+aZRekERExQKpUrH/SjNGnC03CGFqKg5UctA1MlktmCradgBd4ei4hEwNZXX0vBAFQ8XRkQIWmzYOVXcOgc7qCj52agmulGMbKrUoE0+3rkvtzXrPRzVvYKpsYrXtSpuLkFqaGRVjBTNtFSYTVzGjYrxoDuy4BxbyUYqkubDSwVqHeGtcEH/pttEC6paH3/7cJXz3S6bRtAO8fGaI/MtC4jrNbVjouIEksfuYqeZQ73kIwph8saQqMJBEdNsPMVcnOwdD4wPGi8lQpFFTMaNhw/LQcQMU5b0LQspY9QJCdPUBTh5DVlPQll51Ty+20rSHhOCb8BVX2y7uPUC/lTNITOL6EcrZQVPQ4ZyO9Y5HAdyS29WR701JFikdJ0jFExyMOFWMQtXhU8E20mfuC2BHpAW4sc/TjdpQOV2FiAkp3mlkDBWVrI6cocpnVwPntJD6UYycruLOiWJ6vR0vvCm0pt/l/MOPX0e952G8ZMIPo5RfmuStplFKRfIlE0LgcDWHta6LhuWTTY+gouZwNYeKRK0iaU/Qn1qRnt8uqsDdEMRkntsayXS4mocAMC7btslnJArzgkFZpIlqVwiBphMgb1I8W2IHZKoKem4oTbnlXkIiYm0nwL0Hdiflb11kdZVhtGjiVceqA7YqL3RUzp7oqxC4vN5FHAscHsntyJPbr1/ZzHCOukNzTUyUTBwbyQNMUj8UhrW2i3sPVG7Ic9uxaGrUgbe9DfjylwFFAX73d/dVgN1soXMzBdtz8XrbWryZRY6Nno/Hr9ZxabWLn37DccwU928N8qIpwnSVU2vPCTFZMvGVKxsIY4HXnxjDUsvB0wstOP4mEhHG0paBE8qVeIcBtLgZMgeRQrgJVY1iItaOl0yUszoEemg7ATKGiplqPkW4vKRtpiuoZFU8vdBCrUtS/7yhAH3Ge9SyiCj/a6qIT51bxeV12ikCSOOWhnM6vDBGR8LvCY+LMdoBKlLJByFS+X9GU2CqCvmKhcT5CiQPrJzVYPvk2SMEPbQ9l1Rf5axGnCVJbubgYCoQSXK/AF2PckbFnRMlVLIaOk6AQNpZrHUcNCwflhciiEh5qCtADJrUEnfzPj4wOMgU9dhoHjEEvvuBKTw+28Cp+RYsP4IueWYcwMW1LvQNC6WshkNDOWgKx/c9dAgl2QLaarx4bCSPT55dQRTHkgDO5PdKYUEY479/+RpGCgaOVvO4a7KEjZ6P1baDclZHNWeQKpIPqorqPQ/rHQ/fdPsIZoZz6SRxz1QJl1a7uLzWxXjRBAQpELn0STE1FUstFwoHtSvDGK5PjtRtJ8D1BoVIW36YqlQ5A2Zr1EJlyRmwZDEicn/PC6EqHJPlTBoTpW6ZYIhXxjFTzeH8cgfXahaOjXK4AfmtdT1a1MJYYMPyUJCWCsmzqKvE8VMYQ7VgpNdS5ZCtaIbHr9W3BcYnG5/+YWoKTKks7DgkcCGzSI47xgoIY3KTj2PaQEWCjHUVhUNRqEhIroflRWnBtBPSkowb+Tzt1YZ68HAFf/zE/J6quaGcjnc8eAiPz9Zxea1LKk2f2mhHRvIpz+lmCd79C1bbpvBmMGCubm+mYmRUHKnmUyGP5YX42lwDbh9fsphRMV0hYYkTUMF9eb2Hta6LsYIJzgDLC7cVtsn57VQ07oUgVrLatkimRL3efx37kbO23ARyztIA6slSBkeqOSy3XBRMBU07QBCSvQck15eB5rGiqWKsZOL0QhvfeXLyhousq0W4stbFmcU2vnBxHYeHc7jvYPl5jSfarYDY69p13AB1izaHRXNQKHKzfmXnVzpoWAFW2i7m6jZMjaOS1TFRysC2QgznjRvy3HYqmh70a3jX+/8djOuzQLEIfOQjwOtff8PrcbMo1c0WbLfq9ba1eGvaAZ5d68jNN/GYf+aRs/iFbz10w3NMxoumCNMUDtNQsd7x0DUVrLUdTJQy4JzLFqEGjTO0k/YbkBJ8ozgiSwLQYmFoisyKFDAYl+Z1PCXT9rxQLkhkJ3H3RBGVAQUltc1yOi22bZt4Ik/ON1HreThSpck4CY7tuQx+ZONvzq3CDyJUMiosGagbxbTwdr2Q+Bw6h+3HMFSgmtex0fNTL7BEEJCTxUrD8lHJ6QhlcRRG5IxdymhpIdfPcbtrsohKToeIBda7Hpggkn05q0NhDFw6ybfsABldwSuPDuHSWg+rbQcdWUzaPu3KqTBkaXFLXYPtRQFAdhlDssgsZzR03BDjpQx+4Y0n8OXLNfzCX53DepfQKbIcYAgUkla3bR/DeRMrbReljLYtYJdzytb836eX00B0hSNFXRLDwq5H+Zl+RLmf4yUTY0UDV9Z7WLV8yYOjBT0pHunlpj89s0ymkckkEUQxWo6PaxLNSlq6qkLXNKurCGOBnhvg9GIbExKBu1rrwQsjKvRkGz2CJB37EbxYQNeIgO5ID7pYcgPLWR3VvI4j1RyeXe+SoW68abwoRIyeG6BgatAVhsPVHI5Uc7i2YREpOopTxRxnxJMMI3qGEpVo3tBQD4jr2H8tE0XqkeEcziy18elnVnB8vIiuG6KS1cEEiUr6kTPbD1E0VBi6glJWR9MOAJBH3rNrPUyWqCiIJYcxUQIrUuxQkW3pu6ZKAyjoTkjLwPN2A5+n/jZU2wnQcQIUJR/w2EgeZ5f2Vs29/sQYXn9iDHN1C6cXWvjIU4vwAlLy9efO7kTw3mmx3ppN6oWUhygEECq0sSDfN4pLu3OiCCeI0LB9WG6ISk5HVifRz3rXg+NRdIipKlTsMBJDtG0fQUzP2taW615F440QxOG8MRDJFMdix8KD7HqKOLXQgqpQJm9ik/PGkxOYKGfwO1+4klq/JObJKX2EUZrDnRNFVPPb+YnJd29dZM8vd+CFEcpZDZYXomUHz6sy8UYFxG7X7lrNgsrYAJLTP/brV9Zf8Nw1WcRy20HLpoKsYfl41bEq3vWaI3ue505F08TZb+Cd/+n/huF04R84CP3TnwJOnLjh9YhjgUeeXMRy28Fk0aRIMrY7StX/3QVThWkSRWOve3SrXm/9xVs/qELzlgItiLDQtPFbn7t8w/NMxoumCAuiGJYbIm+oUBhDxwlRzMSktPJCBGEkvaCouEo6NJwzWmBiepU5SPVHwjaREq/COAJngA7a8Y8VTXzriTF8bbZBflyRLIJk24wzcrG3fGoJJYZ46x0XtpRRV3K6nNxs1Loe/CDCWMlEEAE9P4ahEg+m50Vo2j4MlSOra/AjcoDXFJaGYhMpnUleloxaEVSIbXRdygdkQE5XUmRDkwVBEFHRVs5qKJgaGj1P2hPIwoFvChKcIETRJDL7kZECHr1SJ25cRpMeTXHa9s2aKiJBSGNSuPTbfwCQRHQNnHNa0IVId9ucM5Rl28wLE2sRgYhRJqAid8o9L8IffmUWpq7suDsaL2UwXjThS1EG2VNQFIfCGSJBSI6mKJu5n5NFeCHxltY7Lu4YL6LrBQPtSOKmkZfWr376IrwgTieo1bZDmaIR+RhxxhBQkGYqejBlQVzrUTzRxZU2YpCtQt3ypeGoQo7ujCFrqOBBCFWh+3d8jEj4XTdELAT8MMJKx8Xr7hxFxwtpQ+IGKGc1OH6UJi7EscCT8z4OVDJ4xysO4sOPz8MNIhweySGMYjx6pS5JziRkadukIDVUDl3hCLM6hnMaum40cC2GcgZWOy7WOi5+54tXMZzTMZo3oMvUiNWOi44Twkl/x0BOV3C9YaOme8Td0unaPTXfwrnlDsAEGFhqISIEkNFU3DaahxNEuPdABT/7huMDyrGdkJb+sR+fJ84ZbD/C/z69PLB4VrIkHNmPau7ISB5HRvK4baywL4L3Tov10ZEcGlYwYLR6dllahKgMUUzzw3BOSePSLq934YfE7VI567NwAaIwRhALZDSOk1Ml1G0fHSeZr2JU8wZGCgbqlk8ZovtUBe6HyN7fTj08nMUzyx2cW27j8FCOlKd+hLrl497pEl5+eAinF9tYabtYabv44yfmcWw0jzeenMDTCy184cI6Gj1/IP1CV0ndudBwkDc0uH6Ei6vdgYK2f5EFQEIUaT3EGEPOoOvVnz/7XOKJ9ov47HTtTkwWCS1Wdy4k9vMc79SWS4LO/SDCcsfFUE7HiYniTX0GAMQjI2AKx7OH78LH3/t7+Injd2I/TbrPnl/D355fhR/GWGt7AyhuJacPoFQzw7k0bD6IYszVrTQ/tpIlwdlO9+hWvd6S4s0scjy71hl4NgCasz0Z3bff8aIpwvwwxnDFwMGhLObqFlY6LlY6rnRqokigWFA7xY9E6vwusOkhleAaycLCOCPOWN+/V/MGKhkNcxsWvCDCm+6dxNMLLZyab1KmpE4xQ65PRHRSNBLx0Q99AAyWT8avx3mBDEQFcbtKWR2MUbyPECL9fs6oFbracaFxToaqAFpOAAiGvKFQEcOY/KwYngwBJ9k5h8KJnN+yqQAgNSPAGbVkBRjato9YABs9D0EkkDdU5E1VWiqE6cI5VjQgBO0aRgpGSvBNCr/EPiMShORwlaU8poECDNRGJRl7SAHmbpjutuNY4AOfv5L6lIERQRvyHkVRogwFqgUDKuc77o4KpoqhvI6SqaXqxEvrPQACpqZgQ3KZdJUjpyhY73r4u0s1GedDyMDFtQ5OTpVw2yiZzSYqzCgWeHa1g6GcjnsPSNNRqfBTOGAwmgjCmAq+UJCKsW6RaafKOXH5OD2XTBLzfWlMGoQxmGzztSW3h0cC1+sRaj0PnFE6QH8kzOPXGnjtHSPwgghnFttY67gIZdRUUV4DU7bpfv0zl2B70YBdxcnpMs4stuBHsQw7J3J/MUOcp7IfYaqcoWspr0UYxTi3TC7puspxaCgLlXNcb9ioWx68MMIDB8ro+VEqbMhpHF+8tLGNuzVVzmBuw8JKO4LCCD3yoxiGqqBoqnADun/3TpfwtgemoKp8G9rxXH2edls8l1sOVM4wWc6gafv7Us3th+C97fuKHLWehy9d2kDD8nHPdDHlMLp+BFNV0k0ExR/FVGgxYL3jIm+ouHO8giAWA6HPXiSQ0UgVaegKDplZ+JGgTVcMBFGE73voUBpDdTOqwL3OMykwn55vYbnlwIsIbVWkZUYlq2Mop+PkdBn3Hijhk2dWKFptiw3IUtPBj/6zo1hs2tjoecjqHLqiQFH4gK3MM8ttAMAHvzILzjbNlU9OlVKEhIQo4YARcZJ0EkbiOccT3Qwv6cREEeaDB3Fpjeal28cKmBnK4Vc+deGmnuOtSGosxPa2HKP1CKYGQ1Nxpdbb8xx3a+1tTM7gv/0//wPXyxOY7yFFv28UM/XBR2fRcUJUpF9ZGIt083v3VAnFjJaiVInL/1rHS5NvktHzqNt0ar657fhv1estKd42ev62ZwMguxVHmm7vd7xoirAHDpYxXCljqeVIN29qiVWy1PbpyHxEhTNwMIikvRELRHGMJIJLSKSMiMDSXDEZArD8CM+u9VI+T0ZT8GOvuw0HKxn8xTcWMV40EMYCT11vIRbUekiMRDMaRzlL5qhrHWqfnZwuo2SquLTWgyEPgpRg1LIJJIrEIGXjAnBDmnDzuoYjI1lMVbLI6yqWWg4urXVheZt5eU4YSRmyPAEATdtHx6EA45G8gSPVHBaaNi6tW3CDzsB1vXO8AE1V0oUzryu4UrNwaDiLtY6LoyMF5A0FC00bpxfbZKAo0SXHpyDlJP4nIeUnRyJA3LzVjgdDpXzL/t32lfUuTi+1ABB8HEYCkdjkpUFeF8454lggn90Zzt5Klu95VOjkDC1NQDBVmsR73iYPi9y+GdwghuNFODXfwgOHKjjU9+Ju9Dx4MooleVm7Hk3uOYOUs44fkZXIFlWrAKkcE/7hUE4H50DTClJBhKpwhHGMKNq0WUmK7CAiG5BEqOFHhH5cWG7jynoPBysZjJcMLDcdCE4oqMLJD2+mmkclq+H0QitdJJIxU6U4pktrXXTcAK5PxscvOTSEt9w/mfqhJQuLECJtxTMGDOcMSjFgDMeMfKpgvbzew2Q5i1KWYpWeWenuyN2ibE2BkYIBP4oxXc6i5fgyj5BC3FWF7Rp6fSs+T/2LV85Q8JEnF3ZdPC+vdaFyhn/xsgPgjOH2sTyOVPN7oiV7Eby3LtatPh6K41PA+JnFNoksBG3IihnydQoj2tw0LE96IZJ9h6rE8CJCthLu6UbPw6W1LkyVo+VQy62fT3ZoOAfLEykV4FZUazudZ1JgLjZt1C3y3ctqCryQwtUzmoK8oeIdDx7CNx8fxa986sKehcv/fPw6bC/EaMFA16M2eP9CqTBGIoCMhomimaJsZxfbuCRDqpNsy628SaJmIDUBbtsUoXYrY7+8pM+eX8Pjs3VcWeulfLij1Rze+fDMtufYlAXCqnyO33L/JudtJyS1nNHQ6Pkp8gcgNYROEii8YO+WZoIOFU0f3/ObP4snX/tmXL7/YQDAheoMrtV6A+j3blyt5Dm3vBB5Q5HWItSNSVDc2Q0Lt4/mU5Qq4ch25XUhQRUktSRGxwkw37C33aNb9XpL1orHr9ZlXbCJQnpBiIblgXPa+O53vGiKsLxJHkMXV2mCvG+6jPMrXXRcqmbLGQ3rPR9OQMWVqvCUS1AwNWgKw0bPR8FQEMTEN0oy6tIhSfKmNFVt2T4+c34NV2o95AxS9iy3HACQO3cOBnKgd2SEx20jOaiqgut1Gz/4qsP49rvG8eXLtdRaIKNTMaCrDD1XIktyfSpndaicpe0nQ2O4bbQAReGpmWnD9gePWQy2ADmoDZmXBUgQRWg6PjK6gqKpoZLVkDc19LwAZxc7eGJLXt4VGV/xqmNV/NnXFihuhxFvTFd4yk9LzBN1hSMUcYomDhxb3/BDsrR448mJ9OW9tNaFG8REamcMqgLEISGbyYgh0RhZwO5Eutz6QmY0Qm40haXIjcI5RCzQtIOUCM8YKTqTHXYQxbiw0sHBShaMU/Gx2nZgqApGZMQNAATh5uQuQAibJ5FAJi+CAHGuuGzBthwfh4dzmCxRq+DsUhuGymH5IcKIOI+RIPuRxJ4iEkCt68FyQ0nSj9GWGwvOI5gax2jBhICDnK7gtjHKlUy8tAASmax0XGz0/IEQ6eG8gYdyOtY6Hpq2hx//ltvx6ttGJIeIDUxuYRynyrqcrg5YrDDGdlWw7sbdSq6faZBf22hBx1TFlBMtIb8NK9gz9PpmfJ62Ll6xEFhuOzg2Uti2eDZtag1e3aAFtpTVblm6noz+xboleShp6LWiSQ/CEE8vtHD7aAGKRE6Hcjoalg9f8gI1hfJmE5+0M4ttil/K6al9x5X1Hpo2RZ0lkUJuGGOt46LeoxZ1QgV4PlSBycJb73m0iYrjtL2T0RWylJDH+8RsA0dHczcsXK7WyNR1J8+rMIolYgzcNppLkw/6izgvjLDcsjFWMlOlJb3jgvibAC6uUks3hsCHH78OTeE3fX/3w0u6tuHjg4/OouuSZ2Oy0bha6+Hr1xv4yW+9I32O+1FEQ1VgaqT8TroDOyG3s/UeVjsuhvMGpiqZdJ3o9+vTVT6gaN46CqaKUbuJd/36T2Pm6jkcPfsEfu33PoW1SCWrJTmHHqxk4IUxqQjXuviZbz+Oe6bL6eckz/nMcA6+jK7bbPURT7Zl+5htWHj5zDBmhnP40uV14v7JtXfzWaA/OwF1nNrOdmTqVrzekrXi0moXSy0HmlSKB1GMDRnVNpzTIaQ1yn7Gi6YIW+s4WF0jpdnJqRKGCybu5jx94JLWSsIhSApg4lYLWB4hLJYfQeGAqSrkuh3QxSYEbROliuMYYURE7vWuh3JELaTUdwtAGMeI5e4UjFqOX7/ewj1TJQzndRwfL4BzhoePVjFZMjEvVSuMcWQ0lXYnshWpKeRGbwcRcqYq43F6qPU8jBdNXNvowfYjRFtsNvoAsPTPCcqjcDLaZDzCgaEM7pospj5fRVPHy2cqeHqxneblCWySZI+O5vHRU0tpz71gUAZkxwkQSyI572sf7jaSf2WMJq3Pn1/rUzQRaVhTOPyQ2smJUWz/OQVRnMrZgZ1Jl/0v5NnFNnlhBdReHsoZmG/YpM4LKUuP2tJEpM/rGnp+CAHiiC21SDWZ7KhMTYETxMgnUSB9MnoAMi6GAsK3FqGkuI0RhjFaWeL6nZwqYbmtE09QmryGsYCiMNje5jkxUJFoS/Ie44DCyJ4iiImj6PoxVGm82bB8zAxnB2SKI3kDhsqx2nYwVjS2LXxdN8ADB4fSAmzrtbyy3kNdikPGiiaO9ikA++/HTgrW3bhbyfVLCvpL670BhV+i7LqRtcMttQFLClZapE69UusiI+kFkNcvIepyMIwVDJi6elMk7p2I9+liLXkoW0OvTZXD9gVcP8Ja102tHIoGXUNdJU4e5xyOH6KaNxDFMVbbHmb70gjyhpK2dvO6As6Ahh2k+bK9KIQQAt1bRH52GsnCW8zoWGq5W9o7tPB23BBTFdo4XVrr3rBwiSVatZPnlZBCoIKpoloYLNKTIm6xacPUFKy1XWQ0jq5Ukne9kFq9ehKNBZRMHdc3LHzg85dvmqS/X/NfN4hIdBORj17OIFPmRs/Hb3zmEn7ne+/H2+6fwqW1LoZyOsZLJkbyBpwgxtnFNhYbNjK6OoAeJt2ciaKJ5ZaDCyttmCrD+ZVuWuArjFq3YSTwkScXMFXJ7Hh+M8vX8Mu/+kMo11ZgFcr4k5/6TfhGBrN96HdOV0mE5IQIoxiLLQc//cgZ/OrbT+KkLMSS5zxbUlMlbH8BLQTRhmZ0NUWpSL0v1fRCbGsrJn/f88Id361b8Xq7e6qEn37DcfzMI2ew0HTgy7WFMyZTRBQ0evv39nvRFGFPL7RgZPMIohjLHQdZg1ypX5KtoOMGOLvUQRgTH8fQFOQ0BZrKEYQRar0AjIEKINDClijEEqhala1ALh+WrhcilArAZALI6go500seUUImV6R8nzEKxn56sYXX3TGa9qNVlePfftNR/PInzmO946GY0cBlSHEUI4Xs/UikkTxFU8VCw06d9DsOPazxrldokPNm++TJVclRSG9OVwYczZMWxfGxAjYsHzmTisKUJDtC7azllpP23O8YK2Ct48INaCJUFLajOWtyLADVAwybqNPjs3Vc2+jh2GgBt4/lkZffGwWysEts0/uGpnDM1S3Z6o3QkVFDOWNwIk9eyGsbPfznz13G3IaFuyaL4Jy8w5683pSCDPoeU+Momlqardh2A9heSJ5rjLhTSXvuzEILYyVzUyBhEsmfMfLX6jC6j+hrRQKbbVrOGaJIoOZ4OLPUxnjRRFMGsCuy/SZigTCmoi7J7UzulReSG7uqMfm51N7teWGqOt1qgAlQXupkKYOsrtwUbN8/ue2VuQhskmBLGW1X7taYMOjaqRx5XUXBVLDYdGQRL1JrkNRQWWyq4/YaN9MGZKBWqACjNrQfpZFKwCaJO6MRQmfoyk15Nu2mknvo8BAMjThgW73dGGOpsAcg/tQdowV07ACrXQqkr2R1qArNPaZOrWYGoOc2sdp2sdbxMFIwUOuSBYjKGWLGULd8mRhCVi4JGv9rn3kW73nDnc+LPUOy8BoZvqNlSsLBUhiDFRBv9UaE6lJGw0jRwHzdxrHRPCoHqd0aRLRJOrPYIouNHVpGyYbg7S+ZxtmlNp6eb6FpB2iF0gxWo7nA9iMYmoLbxwqoZLWb8uRKxr7MfwUQRtQ67jdV1lUFQ3kdLdvHhx6dQymjwQviTd4pgLzCKalhqY2G7eMlB6jYblj+QGEaC7IdeXy2AYUzlLMaopie9Yyh4u6JIuqWv/P5ffrT4N/zPSh3u1gdP4hf/r/+E9iR2xA6QZ+vHB8QoWV1BW4QYbHp4Ff/5gL+9SsPY7xkoiXFZYmVy7YCGgLFjIof7FPSckZioEh2V2QUcpqkwTl5Yy41XfzSJ8/vqkC9WVT35HQZ73/7Sfzqpy+iIRMarjdsaApH2wlScdt+xoumCFMYQ05XEAug3vPh+u1UgcgY7aqLpgYvjFEwyRHaDSKJXAkwAcSCsuxMVUHBVGXRliTMx8joKjSZ3eeHESBRmVhQAUY5cQwZjZRGsdjMYBSRSK0bomh7qfTm+6YAAL//91ex3HZl9c2QNziOjRQwUjRSMjhjpAqcLGeQNRRcq1nwAlJE7jWShV/htEAfquZgKByPXq3jet2GAAYsBBqWn8bVCCFwbLSQchIev1aHrnKYKk8X71JWx8GhrCSXQkbLbMZD7dSKFLLgiWP6365LiqZjowUcqebx0kMVfPHZWvrzWy+doTAUDAVLLRcNax0CZI5ZzGj448eu4xVHqxgvmQM7oGOjBfxf33QUH/j8ZVytWcjqKlbaTurODlAblQKY6WUzNAW5KEIcK3jd8VG8+rYRPHy0ClXlmN2w8PkLa7i83qM8O5VyDb2QJo1iUcVqh0FVgSgSaVuScyqWEkHFwWoOG10PhIBQ+7nthnIzwOEGMfm4ZVTatQex3PVSIRrI+0RtS1ps8oYKL/BhBxFUxgYQw4Sgev/BSlpM7he279913j6Wx91TRZxb6uCYqW5bbPayNrjvQBmfv7CGZ9e60Di14jP6JscnjgVyhpqigU4QoZTVkDcU/NWpZdw9ubsh543G1jbgZpuGskjDOAbrsRRRpQJJ2RYtth/Ppr1UcotNB5WshstrPYRRPBBPRuKQGONFA7rKqT3sBpgoZ5BxVKx3XERS7JFs0BLk7p7pMs4stdC0PVheCD+KkDc1zAxn8OxqD54UawjBYOqqfFYiNHq7LMi3MBI0KIqxpfVHI7HHSVTRt4/l90Wofsv9k/idL1xJ719O8r6WW0QPmCiZ243psLkhuO9AGW+5byq1EfnUuRV8bbYJzmh+33otb4Wkvx/zX0+PUzSo31QZABROwp3zKx3kDXXXFm0lq2O+YSMUYgCtTebyJBfYTRNaooGM3aGcDl1Vtp/f7/4u8O/+HU3O/+yfoflf/hAjs9YA+j1aNBCEApYfDhSRhkZ5xxdWu3jvJ57BdDkLXaUCsW55ODldHvDK9MMIK20XL5sZwutPjKfnd/tYHqWshp58B4OIcmQTiyWAujpfulSDF8Z7KlBvdtwzXcZ73nAnHnlqEWck3xkgzutUTscT+/ycF00RljfJfDQIY1mZh3h2rYvbRokYHEojsGpex30Hyuh5EZaaNp5Z6UiFHkfJ1NCVkS6RIKsAMk1NpPGKJEBHaVWeFBlhLNIWJ7XNdj5OxgBNVTDfsLe90G++bwpvvHsCj17dwFrHxefOr2Gj52G8TAhLMvoXz7feP4n//NlLuFLrIYh2+dIto5jRYAfkQzNeNBCJGH7IMJzfbEdpCkPRJJ+zWAjMVLPwo3jAuM4LY1TzOu6aLKHlkFIsb2qo5qnw9YIIlh8Repi4X2+5FrEkGgtAiiQifPirczg4lMXJ6TJ++DVH8cxyB1dl3mf/FCRALd6VDvXqex79O5H8VfzNuVV8/MwKxksmhrYQRpOW2h986SoevVyHE0YU0cOJCxgLoOkEGGIMhqbADcJUtn96sY1n13r4u0s13HegjE+eWUHeUEnm75O/mx1HyBsq7hjLp9YQkPwyFpHyVWEMnIl0ITIUjqMjBTRtDz/06sMoZjT8z8fmcGm1i5yh4vJ6D+UM2XkADI7vpa1ThQE+AD8WaQFJpFdOnDcAnmyf7+RVdfdUCXdPlvYF2++E6FQkX/Fm0LRzS+302imMWu1BKOBYPnKGitGCkVonRHE4sHDoCn9OyjVgE6XxVDKqdYIQukrFa1YDWjbZeiy3bAznDalCFMhog7w3YG/Ppv2o5LLlDCo5DYstB25AKEy//9rxiRI0zlDMuPg3r5rB8fEiwjjGez56DllNSX3M+hdpU1Nw+2gBP/TqwyhnCVX571+ehSq5Y1mdri8RnsmqRlU4xks7e2zdykjQoDMLLRRNim5K5lHGpcFtVkfHCTBTpRD1hw4PYfEGhOrd+D4vmxlCXXJzd2pf9W8IEpT0yEgeM9UcVtrPYKxowJCbcLbP+7vXuJH57+/9/TXULR85Y/t7FsUCmkpFlB2QGfFOI0EMu46P9Z6/zVYhQePdgFIrbhvNUxoCI2ujjhNQFmf/+QkBPPUUFWDvfCfw+7+PO3Udv3BCDKDfBVPBhZXetiLS8UPYfgRTJZ7wcJ7i4RqWj1rXw5nFFo6OFJDRyZOzaQeYLGfw9pdMD8wTyUb8S5c2pFm2mnZ0/DBCGJE5uRfGN+2Mv9/7l3RPfvtzlzFbtyiL1bX3/RkvmiJMUzgypo56j+TwsQA6ro2W5QOMWhdFU8NMNS/bTwxnbR9xTJyKOKb22VBOT/Pr2g4tumNFA65EGbpumOb6aZyRJxiHDMQlVCzu88VSGLWPErVjRvKDltvujqobVeX4pjtGAdBu4jc+8yyu1CyonINzQmgyuoIj1Rze9gChZ4wzmCpHGEU7ok39w1CpLSQEOTLPbljQOAfnbNvGMUyUowpF4MzV7W3GdbWej4bl4/tfcQjjpQxyhoI/eXweZxZbyJsqzi11wBnFz4SxGLQD2YWs/8xyB+/+06fwk996B77z5CSGcjqu1awBRaQijWP7686krRlEAtc2bGQ1suHwwxhlU9u2MzoxUaTPZICpUmGT1VX0/CTjkmwhjCBEww7AGMOh4SwOD+fgBDHOLLTw+QtryBsqTk6X03ZWEMYUBdLxcGQkj9fcXsX/76+fSd3xYwCIBAKINEg+oympL9Nah4xX7z1QhqZwfODzl7HcclIkgYkYbhihnFEB2X6IkbR2BfKGIicpMgUxVI68qcJQOTpugLWuh6ym4J6pEt7+kk1C+Y1ad1vNR9Ndpxfi2kYPEMBYwUBrH9YN/YVJP2ckiOjaXZME8lffVpWS8HgACY5icUuLYv8oyGtyab2LnkfPZ8+L0sVbVRjCSGCp5YC6vQIVU8cd44VtvLe9PJv2o5Jr2D6+/6EZfOALl7HYdKT9BE+LzqQldu90Gd9+10SaBnFyuoSzi21MVTK7FhwJny+OBf7uUk0qvyh/cfN3qOAbzhkYyRuYq9vP6domox8NakjT6v65Uk/FATRnv+9vLqZ+bJkb2IDsxvdJzG1vZkNQymgoZzVkNPWWveV2G7sdJwB85pk1XK31EEQxdHUQAbV9og6UMlq6wdvp2BRGIetrXQ9dd6utAn1OKauBu0x6SMZpKkdCZyDlfh/PkjHg934PeO1rgX/1r9INRzJHzAzn8PW5Bh6/Wt8BvY3RcugeV7IaLD9O1euJ/Q3ZJW3e23umSnjoyDCiWOBarTcQG/XDrzmK9Y6HaxvWQJ6pwjmmKya4fIduxhn/ZkbSPfm3sntypWZhWPs/xPxdBoOpqbAShEBsmo2qCW9GrvxdL0THDmT7SoBzUjvq0osobxAvYLqSwbtfewyPnFrCSttBJaMhZ6g4s9jGaocM2xQp82YAIgwWGgAkkZ/4EIWMhjgWsAPiLu02+lGCMBJo2n7Kr9IVjulyFkIIfPTUElp2gNtHC3hqobUtl3HryOpK2k+PpJJuKK8jlmaz/e3IjhOCgZy1F5r2jsZ1fkgqlydmm/j5N47TpPuSaSy1nNThuOP4UBU2kM25G3ctqyuo5PSUlLrWdnG1ZkFTCfJRFcLD3CAa4JopjI6HMfJyCaIYscpQzhhUODOkuXrJzuiz59fw1St1xEKgYG7GEUVC0OfHFOXUA81BGY2jYVFu4pFqHmMlE5fXe+Ag/yayleBpC5wzjiu1Hh48PETxV0kB1jcENhWeQRTB8dnAZJ/spD/y5AI+c35NBi4ryOn07xTbI2QMF939huVD4YmUmxSLI9KEc7ntpupMccOSffNZfOSpRVxe6+LyWg92EGG8aKCaNxA4Ma5tUJSO5UdoWD4ePEJE/v4Mvq1jp8KkP4B7opzBatdDfRcV5F6L4n4z5maGcxgtGPj6XCN9t/rwZgA0d2R1Bf/2mw7jixdquN6wUc4O8t5u5D22X/fuiXIGv/r2k3j/py6iYfkYL2VQzetwgxhX1nvbCoibleHvpvxK0gtMVcHhKm0wbiXTcq8g7DeenMBvfKYDsCR5Q0DlHHGMtEU7Xcmmx7/cohbtOx48tI1O0D922jjciiruVn2l9jt22+C88+EZfP16A42ej6E8JR+EkttGqnDg5FQJjLFdkxpWOy5edmiIvDHbHioy3aX/vt4+VsDVWg9LTRfPrna2UE9i1LoehpvrKPzcnwG/99uUAanrwDvesev5vPX+KZxeaMEOyMg8a6iIBWRWKVDJ6oghc0j71Ov9aH85q2O17eDxaw388RPXd+Rz3T1Vws+/6QQ+8uQCzi514PiECp6cKuGe6RL+PFHp7zBuFcHcafQ/V+evr+37915URViyexACqGRUxILh+EQBpYyOIIzwtbkmnl5o4eUzQ1jvurD8TeRIV8js1A0ieGGEgkEFxuHhLL71rnFMD2UH1GC2lKgKEPISxVGqBOSMOA6yA0XxRxqXcTEcnSCAofCBRad/9KMEBypZtJ1O6q6ucnLyPrfcws997CzCWOBoNQ83jKCr1FJITqp/id1UgxLHReEM1bwBAYG8oaFoqtsczSs5Lf0d24uQNQYh+jDeuX3RXzg8ca2BtQ4pRxNV425LfwI36yoVYk3bxx89dh1eEGEkZ6DpBNJ+Ads+RJWhw2kupaDimoKhY7RsUj4WTBWX17q4ttHDx88swwtjjBaoaAoiKr4kpgbG6GA5Ayo5HUVTGzAWPDCUBQCsdV30ZqlgTQQNh6t5lKTp4J987fqAanbr+VOLW+Brs01MlAy84ujIwGSf7KRfcWQYH3x0DvUe7XjDOE7VuoBIi1yFkeIyFki9eCw/RNgWA+aX55Y6WG7trfoajAzRAAYUDBVNO8BT8016XgUFeetSMn55rQfLi3D7WGHXFsCNCpO9VJt7LYo3kzHHOcPBYZLVD7TJ++5RLASWWy68IMY7H57Br376Ik4vtAYUajfyHltqOeQZ6IV7ChcKpoojI3m85zvuTM/het3es4C42YJjJ+WXqnAM5wwcruZQlojbrWRa7na941jg6YUWRgsm7pkqIQhj+LGAxoDLNQu1rgeVszRXt7+V9MRsAz//xjtvupV0s6q4W/WV2jpuJmQaIN7RT37rHfiNzzyLlk2b8iCKUxV/LEjB+s13jmKptbtf2L959WGstFy89xPPwAmIx5yYax+u5lDJ6bC9EIsNyhQdzht98WERHqxfw3/641/AUKcBMVoG++Vf3vM8zy218bFTS3IjLFC3fWlOrqJgUqclq1N6zHDOQF5X0nxhhZM3WTmrQ+EMjzy1dMNEgd3u51zdwsf6VPpbx3NBMHcayXGcnavgL39sf7/zoirCgkhINRnZAYwWDByoJJJ8Mka9Uutiue1grm4jBrWhqFACIiCN3fGCGIpEVc6vdAYegs+eJxJ2ziDOWILKxIKKl6zBYXkRBYFrKop95NSOS744QzmyOCjVtIEXNY4Fvny5hlPzLVSyKmbrFrwwSoOnvZBQHi+M8exaV6owI0yWssgbFOMQCVqIo1ik+X6awpHVVdwzVYKhcmgqBxNk3Jo1FCw0HBwboby4RKWW0xR88VIthYAHlU03bl8wUIszyXtM1tEwGlRxsuSzGUmmE6UpB9K4JkXhslUcwA3ibb+vSLPPRA1EfLEY611CK0/Nt+gzpRzz8+fXsNJ2YWpcuiDTxJWcK2NEh6AWJ6laTY0inxJjwet1C25IULvKKFYoKdIsr42jI3lEIsazqzZFP6kccUx8w62KUc7o2RBC4J7p7fwFzhm+7e4JTJYz+OlHzsCRu89eQJw7gzH4Es2JQejsSN7A0ZEcBTR3PLz2jhHJJ9sfZ2Irl6lh+YhjIGeSR9Fy2wEDMFnKAIxyQlkQY6JkorGb2kqOG8r396HafMv9kwOTcs8L8TtfuLLvUOA4Fji33Nlxc5BuWkA+bh95chF3jBdge4T2rXRcGCrHZCmD+w9W9vQec/0Iy20H8w0b9x8oY6jPU26ngvJmC4ib/fmtyq/+gnInxG23sd9Inn7Us/9edxx6l0syL7Zfuft8tJJu1uvsVhC0rdfjZkKmk/Hm+6ZwuJrDf/7cJXxjrgkmRWYUsE0WE588s4I3npzAqfkmnphtYK1NWboZfdMv7G33T+HbTozj69cbmCya0DWFxCOMFP1NO0DBVJEzEmEabca/8+oTeM+f/jJ038PC1FGIt30vDt7gPJP7fqCSxUhex1MLLdgyU3m6bOKSH0rUXsVwjv59qzfZcsvG1+aa+0oUSFqTW+/n84Vg7lY87/b3h6v7f65eNEWY7YdQWZhW2rrKMVMd9EQiw9EQ33FyAn99agmmziknSlXQcgjd6ifUD+VIndbvETMznMPZpTbCWKQIiuVF6HmBRMQo8sJQideQN2iCSRQppE4J0XYDfOjR6wMvKgA88tQiTs03cWXdgqESKblokurECyM0LXLJTnx/Om6IWteH65NbeiQRECLpi7RA0VWOat5IVUNCCNmbB3o+x0rbxWLLwXBOx22jBTAwXN2wcGQkR6Z/GxbcfbYvkpe03vPg+KTIyeR0tCVPQJUFQ88jj5kkMiWUx+yFPpo2FZKMM+QVlTIQMxqqeQO2H2FDmj8mO8YwiiFipAkDyUiKHctPEE4NkRD45LlVhGFMcHXbTa1JksU4+T0BgAmBMCKY3cgTdyyjKdjoeUgY97o0ySRBg4aOG+Diagd3TRQlfE7kUSL5U1s8QUoBQsIYqL343750DUdH8ilXqn/kDBVDOR2jBfKGY4wc3uu9AFlNQSgEIskvKZoqylktDVHveRGKmX7Dw70Xuq0tQ00Z9D9LrlUgFW8Jv0RXFUyU1D0X0JnhHI6N5HddMPpVmx99anFbG+K+g+VUzekFZIxctyhT8eR0+YYTenJ+6x1PKshos8JSawi5MZMF9jPLHXTdEIerpN5LUIisruAt908OoD6fPb+KDz46B8sPMTOUI0pBHONKzcITsw2cnC5hvJTZE2W52QKi/+f3g8b0K7+urPcwdwPEbeu4mUie3VDPxLE+YyjkTxgONuszGsf1eoCnrhPiul/X/ucybsVXCth/Qbrr906WcGgoh/Wut+P7cGW9hy9cWEccx1hpufBCmosLJvkzJt/zxpMTKRVkrMCx1HLQcQJYfohyRsNo0cRdE0USwQQRvv1v/wRv/vMPgAuBi/c9jPd9/y/iJ0Ymdy3C+u/70ZEceh51hGaGcljr2GjaIa6s96ApJDw6UMngeqOfS0yGx1Ek8OHH5+H4EaYr2Vvmc+2IYEq7l9W2i6G8jrf2pQrsdu92Kp7vO1DG0wutHYvqg4X9P4cvmiKs3vMhPCIkK6AFfXbDAgNLSbSONOIbKxrQVQV3jZdwfoXMERkoEkZh1GZjAI6OFnBoODswoczVrRRBCZNVGySj5/KF8cIY40VS5LlBhKlKFgoHWjaF6zIwHBvJpxPx2cU2Lqx0yDMmFqhkDeQMl4wVQ5IwqwrxjhJflkhQv9v2qZBxwwh5hctdToScocD2QhgZFV5E5zdWNChOyAtxtdZFrUv+QQcqOYwUTFxZ66Ju+fj69QYOD+fSHX4Yx/jJvzyN1babwru7tS/6X9KxkomllguVM3RcgqKTcPScpsDQyHbBC7ezk+IELYoFui7lXTpBhHJGR0bnUBmQMOoS0YN/A4pTGFPe5liRzCxJtUi/JEDXfutHcEhPGiFgeyFs6YMj5DOWiC5sP0JWZ5u8slhAMOC28TyenG9KB36WKkGTSSEpaDSFfrdgqFhsOnj/py7iPd9x50DwcdcljzI/FCjkFfpfkziGkUhyLgUheGGExRYVCUkftJ/Umoy9OBNbF8+CqaZGoYayWczFsYDgCTKqSyNW7MnFOL/SQd3ysNJyMbdBJsXlrIbJUga29BFKhSdJaUQgJuo9D3/2tfk03y9TUlDrulhoOsjq1Cod6iPOb53QkzbGU9ebNCdoCoIoTHNPIe958mwwBvldZorkjJdMjBUNXFnvpVYZ51c6KXev44TQFYbFpiNVsGS27AQRLqx04AY3Fi7cSmzQzaAx/cqvS2tdAJsRTDca+43kmatbg6inoaTiFT+K04igft4QADQtHxdXO2g5Af7osev469PLzzmZYL/jZgvg/lSAsZIphWGk2tvKQ93tHs7VLVyp9XB4OL8NGSavOAVfvrIBgFT440UTkaA1xfVj3DVJXl+nF9p49+uO4Tf+9ll88VKNbHcEoCgcTiEiK48gRkkF3vyHv4qXf+6jAIDHvv3/gz//3p9A7Md7tu6S+57VVZxaaElqTigtSKjjEgN4+32TuLxu4cxiG6H0QIsE0HEp7/GuySLmGzYadoDbRne+1vvlc/UjmE/Pt7DcdmjDq1C6zUdPLYExtuNzs1vx/MS1Oj5xehkjBYNUnFuK6h98+diex9Q/XjRFGLWN6GHLqBxZXRkIBS1ntRSavH2sAEPjMDRyXL641kHHdZM9MEyVkKMhSbDun1C6bggOIKspWO24iPqQF84YdIVBALhtNI8fes2RdLfec6klYaoKRYnIlkTeVHFMz+EL0gvrtXeMgDGGpZaGWteDwijGpdlnrBjGgvLSpJovieuw/BC3jxWwIvMzOeeYqmRwcCgLAWrtzW1YafxDNa9jppqDF0bQFY6XHx5C1wsxW6Odx8982x344qUaPn5mGbpCCko/ipE1FAzndFhegMWWjclSJt3JX6v1cGW9h/GiieW2g44bIJLInapQWLgfkd8TkxPSjejhYRRjKKujLR2mex5H2Cd+4IyufT/xf7chQIjQSw7mUOs2YXlhqoj1oyj9zAGOkORmBDEVAFYSDSMNYY+NFrAhjTYTPl01T75OJ6fL+MSZFdheCF0lhZOIyWQw6oNdGSODxqyhQiBM23mJ+CJZVCOJEgVRlJpf2iGlNyTPIOcidZyfb9qIpfO/lhROQgwshIY6yJnY5DLZiGTxWciQICNxurZ9is4iBJHiXgxNIaNQxuB44a5cjP6J767JElbaDpq2j9W2h6YV4FXHqnjXa44A2BLFotPG4vHZBvwwxoOHh9IFS1c4DIUjiuPUYHUni4HTCy18+PHruLJOYoK1jkvFKUNKKUjvibwvjAEZnQ+o1+ie9ef/reKRp5aw3CKeVU4nlDqQ8VjDOQOcK2mk1zcfH8Xr7xrbsbi61bbWjguKF+Lrcw2cX+7gBx+ewetPjA983/mVzsB36SrDaNHEq45V9xRW7Fds0HVD3DNVwrHRPJ64VkcQxei69OxyRlQKL4xxoJJNfdealo+ziy20nQAjRRPHxwtwpTv8c/F9eqFGEjLdsn0stdwBs+vD1fwNEZ04Fri42kHd8pE3VAzsBgBAUIyWG0TIaBw5k2xqOJBSI+bqNm4fzePyehdPXKvj/EoHABn5miony52ej3rPRxAKvElt4r4v/w1izvHJd/4UHv2O78XSPriAXTdEo+ej6ZDS1Qup86IqDFEUwwdROp6ab+Nb7hzD+ZUOYsHQ84g+UTA0jJdMqArHWJEi02o9FzlDS/OJEwTwZvhcd0+VKF1jtYuhrD4gatmLjrAjmmsoab5oGNMcz7ZwFf/36ZV9Px8vmiIsZygYrmTRtAlxsf0QOUOF5YV4drWL4bye7q6PVPsMAUfzuH20gI4dIqNz6UsUpTt6SLPEuuXj/EoHOZl31rB8+OGmxQBArYtkEb5nuoST0+XUeynxVRkvmgADGj0vfeB6frSlZaShmjOw1HQQSI5T4EdgkIiJwpE3yAyvmtdxaDiH2Y0eVtpeStS8/2AFDx8bRjVvpB5CAGB5EVq2j9/67CW0nQBPXW9tmzSOjRZwrdbDj/zJk3h6sQ0vjAmpyGhwg0jm/3lkd5HVcKRKL20ymVyrWeg4FMGTdBg4Iy5AIliI0v+68Qhj8rgayeloOQHCKIbCGMp5sspou8GA0eqNhhuEWOt6yMmEg0BKrBNUMSHjC8mv4vI/ZPgA2D7ZlRgqxx3jBUxXcjg0lE0Lm4Rv13IDHB8v4KWHhvClSzVp7ssgGF2HpKvHGZmxFqS6SOEc46UMTs038exaZ8AOwvZCLDRsXFm3oKsU7m37Ydo+i6XqTGEUUu8HMUIhUFRU5A1lIDsuceo+UMmk7vNbC4CVtoOFPi5T6nRd68LywrRw6Td+3IuLsdPEN1k2Bwwbh3I6jo8VdgxyFiC0L4oFLq138WBWB5MoiqpwcAa0nRBdNxwQviSBzf32GqbKMVu34AaDxPwk2SAWmwrnoZyx42KQ0RWstiN84syKLH5MrHVcOAFZ2WR0BUEYo+uFqOZ1VHI6al0f55Y7eNdrjuxYgN1KW2un65rc67YdYM638d5PnMdj1+pp8PnW73K1CFfWujiz2MYXLq7j8HAO9x0s71j83ZDT17eAJqa8nzi9DMen+c2UwqdkY5HYg2Q0jourHbSdAKWshtvHCjTfSXf45+r79EKM0wstzG5YUBW2zeza8to4MVncNSQ7ed/OyPih9Q49/0eqm/FfXS9Eyw6gK1RMDXJz6TvbToBQij/+9Alq840XTTC2iS6aGsdKy0Wt6+Gr46PI/ej7oOsKnrrnVVjZJxcwZyhoOj4c+e5HAlDlJliRannGyKH/7GILU6UMqgUDLcvHqnwvrqz3oEghRiwETi+0CUGTIEMxo+LwcA51aV+zH4FIHAt89KlFtJ0A05UMdFWh77gBHWEnNLfrhei69Jx2tswlm/mlzRseUzJeNEVYXu4OihkNlhemrvhxDGxYHmaqWbz9gen0JvT3kQsmOeELAThhlO7oExfthuXD8SP8f//6HDgY2q6PIJKEcAaIZOGW5q0KB5mcSsTjyEg+9R67uNZBr28nmNEV4nJFpPoLIkK95hu2PCYl9dARoEKvYPKUXzQjWwdJ5iGXW/cgivH3l2po2sG23XTD8jFXt3edNKYrGcxuWLjO6DtH8hrckGwyvIBQM1JPGrhrooBrNQs/88gZjEme0pIMMe9/l0lAMIj8bCWn7zUUzlG3A3hBhEgAusqQ1TUcn6BA469c3kBnnzLkMAYurnaQldYNAkSKZ4CE7ql1RJYmmxtTDqBkqpLLAowUDDiyIGOMpaTihMNxcrqMI9U8fvg1R7DedXGtZtH3R5uB5hz0DFQyOnTp4zWc0zGc03B+uY2hnD4QVVLIaLj/QBmPX6unJsR+GEHjnPIw6QhgB/T/g0hapEDga3MNOF6EIKYAYDCkVhe/84UreOPJCXwyLSaoADA1jjOLbclloiB3XSGl750TRWlmTHydrKGi54Z7qsl2mvgYY3KS02BqKq7Uenj06sa2n2taPs6vtIlbCHrHHp+r4/hYEZWshmJGRb3ngcvnPxlCCCw1LXTcEG4Q4fBIDn4Y4cJKlzJh2eB+IAbApLiFrGeYXNC2L06OHyEGsNJ2MVHKIJabDC8k2gADRZ4lRq8ALYbLbQfXNnrgUq1cMFUcrGT3zbO60XVtSud0V6LcOZ0Kpm/MNbHccvFjrzuGj55aSr+raQc4v9yBF0YoZ2kObdnBrsVfvwnrZlzXJmrRX4Qn6siRAkVTddyQhEuc4cBwFkFESRAt28d1J0BLImC3jxX2bCs/HwHjz3XEscBXLm8gEgIFTU3R5n5u6JX1HqbK5rYifqAILproOAHqPQ/1ngfbi9LEF1+Khqp5PUVn+lMHkuinnhvACQkwKGa0gQIMAO6eewaHBcMTI8cwlNPxlROvoLXB8ffNBUyGHwm4YZQK2sA2zcoVzjFS0LHcdiFAG//5pjPg4h/GAutdD7YfpghzTiKhta6H9Y6H4xOFfQlEAOCz51fxmfNr8MMYax1vAFQYyuk7Pje7chVD4iqahgJLZin3j4yuwA/2CggcHC+aIkxIgjRNqgy3jebJlK5uoWkHWOt4+OMnruPx2Xq6s0uVMGu91NB1vGTisMxeO7fUhhOEkrcUSfuCzQk7YYRpXLan4hiaymBqCs4ttQdu+GrbxWrbTT2pojhG2wnRsH15/ATp2n6I9a4HN4wwnDfIVNUJyHuFgRzFA0IvkgLs3FILbTvASMHE/QfKmK3b+OKz62CgHehMNbcZkdKwUw7RbpPGhZUOwohI67qioGETSuHLJAHGBPIyl/D8ahddN0DLoYSCRNmQIEk7DUUWd2yPnxm4t6AwdEPGJHXcEJWMBssPcW6pjbGiCWsfOYLJYNj83lAIFAwVh4ayeHqxBS/YdPaPxeax0jlRgTteymKsSP5jhiZjm4omQkETYdMJMFnK4K1SvRfFAj/wyhk8drWOc8sdbFgeah26x0VpxhgLDLT06lYAL4oxXtq++A/lDdx7oIILK204QQw/EtAUMnwN4xi+5NipCgkIGKgNUOv6EIKUp7HAgBHo5bUufv/vryGrKwMFwFQli4xGuaJJkLupK7j3QCXlbCXI2XrXuyG5u3/iS8yP+41YkzZWresNTJBJUWH5IXGspB1JywpwbokoB0eqeXTsgEjHUiTj+BGu1rpo2gF6bghN4TI0mXDNYkaD40dgUYy+PQIYIIUNBnpegKbt72qIOlnKYK3jSvdv8rpr2QE0hch49JyTYMKLYlSyOhw/xG9/7jJazuYmaTRv4NqGdUtE5YEFRQhc2+ih51OoseVFZFkCoO34iIXAh746h7UOFY7AZi5m4gOY1UmIMlkmdd4jTy6mxV/Srq5kdSy3HVxa60JTFGgqObNndAXTlWz6fCRq77GiibGCga5c2JJ7bnlR6htV63r4o8eu4/g4IWBbx/Pp+/R8jLm6hfWuh+Gcjp4Xyiidzc1FVldQ73l44GBlANHZCbk8MpKHLQVElh/iaq2H47yAZanEPVDJYq3rUnh7n19jktbSdAIMZXWyNVEHr93rnvocfuov3o9eJo/v+Te/jW+58068dGbopjmHlkfZqbXQJcBBcl0B4k0yBmQ0BoVxcEb2P1+bayIWYuCYNU6taAaGao42Xx2X1JOGbJ+OFUycmCje8JjOLbXxwUfn0HFCVLIaNIUPgAp3T5VSu6D+52Y3NFdTeUrnUHgfjUMOx4+ga9ufzd3Gi6YI2+j5yMJDRiMY0glizG5YtGhoHIeGs1A539E1fa5u4emFFh55chFuEMEPQ1xZt9BxA3DG0uIroymIBBVByaC2Gk0ohGpp8IIItsylBOiF++pVakcJAXhBhK5MfTcUQjAiIRBFwOW1LoUDSxUdY9SCOTScxWjBxPnVLrwgwkTJRNFU8Y25Btp2gFJGw0TJxOnFNhYlL4Ux4OxSG1ldwVDe2Ax7tfxdJw1NYWjaIYazOtwwhuWRG7vKN+Nxglig6ZBdQRhFiAQjbypBpqHpJ+5SZMUSbWIQuEHc5eZ1jgSqJVJGci+Cwjk0xrBheVjruPvtbKajnNFw91QJC01btkFCVLLkTRZHZKYLIFX7xUKgnNFw38EySiaRTN3Awnc/MI0vPlvDN6430nyzvKliOGvgv3352gASeXQkh3e9+gjGS8SX+8DnL2OpSb49W93RTy+0YKgKRvrsDPpHovS9/1AZH31qSUq/Ac+l41Y52VSIOIauqTg4nMWG5aOc0XHnRAG6jGYBIJ9ThoWmjZccLO9Y9D04Q2aQP/Cqwzg+XhiYtG9GTZZMfKttF6sdZ8C1u2AqKGV0hDHtRBMOXd5QcG2jBzeMUMlqVFwF1J43dYoom92wcP+BEobyOoYABFGEOemw3fOIfO8FMUoZUqlaXghVYXD9WH4OhXIXTRVghGjfM1XCaMEgGoKh7mqV8aaTE/jjJ66nk/nBoRzWOh78SEDnm5s1J4iQMVQUDBXXGzZJ3Yfzacvx/EoHK20X1YKB/A5Tt6lxtHZRC/YvKAIC9R6h1kK2eMApAL7thPCDGOfiNnRVwWQ5i64bpsHhSdxYxw3gBHRMCmf42/OreOjIEKYkWvf0fAuzdQtBGMtjEAhCYMP3URE63nhyAgDwS588n6q9c7qCpayGI9U8hvue6/6UiANDWfz16WW4QYz8DkXY8+379FxH1yVe1O2jBZxf6WwzvLa8EJwzPHxseOCd2AkR7g+1blg+1jouShkNLzs0hHrVw3LLxeHhHCwvSvMmFU7Fsq6QXcqrjlVxdpkoJBmdYkW+77N/hHd+5kMAgLMHT6CXL2GsaN4SkpiTNBhdVSBkhyZpFWiSD02G1zTnvfzwMB671pBrA0X9hVJsBTCUsir8CLh7Ki+9GuMUQW7Y/g0Rz6SYtfwQOZk5u1WlPrfRw22jhW3PzW4K7YKhomAqWGm5mKxkBn4n2XjdfhPX7p/Gk/oPMGIArh/B9iNUczqu1y3YPoUfD+cMlDMawNiOsH6SH6Zwht//+6u4vN6jl4exlBRiagq9RIKBMyIjyrkNnJECMysncjAi7ic377PnV/HZC+uIBO1K2w7tGAwZCc8YgyqNSlsOWV3o0kg2ifYYzps4MJxDxlBxZqGFlhOibnXRdAgBmyiZuN6w4fibuwmCgkM8vdDCfQcrMjCVwl7vqZZwvW5vmzRsL5KO+uTanLTi4nizUGPShkMIilbqupS76Ev3dsjdEYfYseVIOwsBf/80LhRMlUxNwyjlb3khtXV3EP3tOXSV49BwDkN5UskuNm0cquYQC1JPMg5U8wZ6HpHPPSki8ELyUTpSpew1QyPvNccPMZTVcbRKyqaeG+C0tP+glkwWtZ6HJ641cHm9h5/59uN4w90TmCpn9nRHNzUFzh6Lkakr+J6XHoAfxvjy5Q00pEWDqRE/Ko4FxW0hghdQyzKIpX1FRkPD8jEr+WFuEMH2QlytWYgEPb/9JNmMVP9OlTPbJsWbUZPNDOdQyWr40qWNgXa47UdYaDqY3bBRymj4uGyLNiwfh6u5tEjww00bGDCgZQUyIsrBk/MCQzkd73x4BreNEgXgjx+7DoWTMvjJ6y1EQooXZDs8KbZj+fempkJVgLZN12Sj56OS1fB9D83g8dn6jv5RJyaKeHy2nnoVTVcymG8YWO96iCQRX1c5RgqGRFzbUDnD3RNFMOnbljMUjBYNXG/YuLDSwcNHh1NPN4Bc5S+tdtB0AvzPx67jr59exmjBwKtuq+LeA2UcrGRTnmslK/0CZXGb+BgyBqlQjuBFMQ4NE0Luh/QucYa0AEuuUz4hy9sB/ssXrki7DaImKAwo5nXYPrUWjwznMJTXsdbx8IUL6/jE6WU07SBVeyuMDYil+lXryQL5QjvXP98jKX4TkVfCt0y4wUVTRzmr4b4D5YHf260VloRakw+hjR981WF8+13jaRRT3fJxdCSfillcac/y0JFhvOs1R3B8rIA///o85us2CiLET37k1/Gtpz4HAPjzb/oX+JVXfz8OVgt4+Gj1OZ23rjAoXIUbxsQJkwkdvoz3q3V9vPzwMO6ZLmFcKkZ7btR3XYi6kTcICQ1jgeH8Zus5ku3KGyGeSTF7eCiXprckQeKERKpSuGDh5YeHB56bvRTaCaiicrKg2rrx+q57x/C+fV6rF00RllhLCAB1qSQEBExNoZvbxz/ZCdZPYoIymoLbRgu4UutC4xQs2l9IcMkTiSOxGdTNBCnNOIPlBdAUyuWbGc7hzGILv/t3V9G0ApQyKnSFp8fnhTE0hYoxhZOnyqW1Xko8VjgpNRXOMd+widCqKrhtLI93vfoIal0P//Ox67hjLI/TS214IUHFtgzNBoCI0fckirEEduUMO04ahsZh+cRpYek5kxFnck0T0rJMyaFWMGNgnIEJIdE7atPGcYyttRZnSPkxSdtyLyBL48Sr6bgBTF3FwXIGZ5Y2U+1vBgQrmpTRWLc8HBymmBRN4fi+hw6hlNHw9EILX7mygatrXVxY9RHGAllNQTmrg3NaRCy3hVJWw4OHh/HYtQ007QB3y2gRCIGrtR55TjGG63ULK207nXTnGzb+7798Gr/xz+/FfQcqu7qjv+X+SXzs1NINF6MjVeL5feHiOtyAHPQViXoQmsShKQxrXQ+aQu3sIKLJ6px8ZrK6CgaBngusdVysdwlRNjUFxYw6UHQ+PwgES88DoLZE2/GpnQEgpysoZzSstknl23EC+CGJJlq2T/FQKoPGqe3g+LEUtrjQFY4/fWIex0bzeOjwMNZ7HpmEGkpqr5HVlXTRiOJNm4ScoSAWMTa6AbxQ4NJaF1EsMF3JYrJs4hfeeGJXxG+rV9Ed40W4QQs9N0DJVHHHeBFDOT1tT981uVmAbRbDZEGz0nbwxGwj/R26V5uUg7GigcvrPTy92MLnL67jcJUI9PcdKGOp6WBWIoCxwIBiWAEASaYmdJDjaq0L249geREsn6K6hJB8VUODrnIEkUBOJy9BhTO89FAZi00HOYNaP0WT3s2G7eNQNQcOhq9fb2Aoq6ct6aWWJtto1Haa3bBQyWoQGOSP3axzfb+VR86ggsbyoptqsT2XMVA0jubxkoOVbfmxOxWNewkbaFPOMZzXcXycUie2GsmWMxqKGSoY3nRyAq8/MZae67/9pqP47T97FL/yh+/FSxfPI2Qcv/jtP4q/uO/bkddU/PA3HYGq7r+d1j8sL0IlQ8WS7YVkCi7RsCiMU8V7zlDxtgemqAuT01E2NUmnIeGSEAJPXm/t2fLbz3yzWczSPGV77QFgQQgSfBwaVgeem/0otP/tNx1NfcK2brz+j0/YDkNXOFxZFEQxEaVNVYGqcMzXbRRNLd15beUV9PfnbxsrSD8mBwICisIRh+RvleRT9b/XAkAogA3LB7eInH+kauCtD0zhmeU2fuaRM5hv2AijGC07gCLjdQyJPOkKqQ69MJYTiYpYBDK6R4PGyXqh6wZ4drWDoayG+w4O4eGjVTx6dQOcM8w3bXTkgwfQS5y0ATknu45EMZaEvTadAFOV7MCkoXDgG9eb0BQKGU9igGhS3izEOEtc6plE8miHndEUOKAXjTMBkSCJYifbBwZdWl7sNVSFQVd4qlidqeahcgZDJeQtjPdfgk2VTZgaEeuT68EZFZ6ljJYiot91chI//cgZdNwQth8hEiSwSMx2Gz0fisLx8iND+NMn5gdaCl2PWjs5Q4MfRljtuNTylehiFAvMbVj4kT9+Ej/zhjvx5vumdm3nccbSxYh8gSjLsmmTCi+ZVHKGiuGcgTgG1rsegkjI8yJ4nXMGx4+hqtS6UzhwtdbPAQI6TgSwxHCVEFhNGSw6HzpSfc4IxFzdQtP2cXK6hNWOi7YdoOMGCCPiqmV1FZYf4ZnlNmyfeJhuQBwi5oWAoDiUYkaHoVIyRcPyIGIgZ2g4MVlMZennlzvoeSHxnhhLJ+kEuaHCju6rymkxqfeo8DZUDgYqwAGB//KFK3taI2xdJL0gxlQ5Ay+k+KUwFmi7AQ5X8xAAxiUXa2sxPJxjqPU8qbCMcc9UEVelnUYpo2GibOLCSlcGuGtwgggtJ8CZhVZq1vmRJxdxeb237RgjAcQRJYEwMPihQK3rwfYjaAq9i1Hf+5TwipIgafLrE2kLOVHpbSIO9E7F8jk9Wt3cPCTWJh03hK5wtGxSy3XdcFthdfdUCe9+3TF86KtzuFbrIYqBUkZNNydZXcHphRZW2y4eu7aBqzUrtU0AKLNwKKc/b75ie3m27VQ0ZnUVDrYXjVsLxmMj+V3zIHdC/PZrJHt0JI+feOzP8dLF8+gYObz7re/BY0fuh8oZpssZHL2FNmS/bY2pKziSzWGx5aBp+XClRQ5t4hVkdQU/+PBM6nHYX6QykyUnecOW334Qz/5itiLbuf3AgoBAMaPiBx8+PGCovB+F9neenMR3npzc8Xp3Op19X7sXTRFWzmpwoCGjKWjLYqOYIeJ52wnSnddO/iNzdQuX17oomLRbUxXip2z0CHKPGaSlgEjd6JN2Rv9IVFVrXY+ywJwAC00HRVNDj8m4nZB64wnXKIxJvl7O6HCCkCY+UyNzVidAGCdRSgI9z4YXmvjmvIZf+dQFXF7rYqXlEL9MCAznSBSgq4z4ZICEyjl6LrUdmnaAlx0agh1E2yaN2TpNeHeOF7HYcmAHdC1iWdgmgyKIqNDlfcT1vKnCjGlijwUQSRVgYu8AkABAUzkiP0wLqKStSxYLqbcoqnkdP/SaIzi72MbchoW7JovgnKPe84ifJgtZzjYVaDsNzmhnZmpURCfFZXI9tr7s800b6z0Pd0+V4Udx2rJL0MmRoolyRiNj3i0thURZo3KGVnKOYZyq5BRO7amWFeA3PnMJR6o53DNd3rGdlyzsf/Clq/jG9eYA56z/57uScP7QkSF8fa6BuuWnWY663GHaUYyMrqGcpU1Jw/IlkZ9MVpMIFGr1bZrq9hedN3Ke3s9Idq4z1RymyhmsdFycXWzDUAn+d4MYDYuudTGjoSrzKN0gSifapN2QRGfFgtCzKI5hSwuEhP/YtP00s7F/kq73fNnOjjFSyGBSFjd+FEPl9B5V84OGxDeyRthpkTxYyWK+aad/joXAez9+Ho5PhspbCfEAUDQ15E0FDSvAqfkWwjjGSMHE7eN5Sq4Io4GWi+NHGJsoYL3j4en5FtS+diuwabOR0HcAIK+Tm3opo6Gc1dCwgjRDM1GF2j5dn4ymkhDFCaR52ua7l6j0kneK/JU2n9Nk9POd2g6FvTftAA/sEvn0sVNLqHU8xDF99ljBxMnpYuq72LB8rEpkbrqcQdPx4UoKBxPEeX0+fMX249m2n7ijnT6nkqV5/mayKm/U+k8KjEtv+1Ec9Dv40ze9C97IQbxSUzBW0HFtw75pi4+txz5ft9DzQmQ08o7M6VKMUc7A8iO8bGYIrz8xnh7vbsjmjVp++1FGbm1fV3I6XpIlYMEPIizLcPPXn9g0V92vQjvplD1XFe6Lpghzgxi5PPWZs7Ia73ohiiZP+8JdL0TeULdV2acXWrgsFZLJS6+rnOBMSIl/LOB4JEcHo2IL2GxPQrbqdIVDCOBrsw0ojKUTOqm5fATSz8oLY5gqFXQFk0Kwr6x3EYgY1byJoZyGM4vtlGBPoBO1UD706Fzq5HvygIqnrjfRsn1s9DxU8yYymgrH9yEAZDRVxvsIrLRdTJYzqRHmI08u4uxSG3YQIaspODycg4iBY2MFVAsGvjbbINUhIxl0IuevZHWsdT3EMfFLyhkdbkCy86xOyFu/JL+/NAoigSDa7PMrDChn9VTVRxyvGLrG8d4334XvuGcyhY6v1ixMlDLUDhYilQ4bKocmPaJ8aR7Y//nHRguwvDCFqYUYvB5bX/Z+vkaeq6hkK30qPlps5psO1joudIWh1vWouFR4GiROQfBxKsbQpUoxjqmILWVUNG0fH/rqHP7Td9+752TjBDGGcjqOVnPImxpUxrDcctI4rWQ3uN71IUARPA3LhyqfY0Pl8KIYd5RNfM9LD+Cz59ew0HQAQYVhErhLKKyQHm8xei7lZSZFZyIhfy5jaxtGV7jkYlEh23GCdPdK3kGURzkznMMFqcRN4k/cgDI/Ncktc0MKai+YRDCfGc6hYfuYbVi4e5Laxckk3XEDnF/pgnNgvGCg60ZQGMNkKYMDlQyGC0bKhwOwb2uEnRbJ/j/3IwOjRWOAEJ8UldW8gfsPlLHWdbHUpHzOew+UYQdR+vNJaZUUP0l6wJnFNhaaFrWkt6hVEjRaCCAnVYl3jOUxXSGPu8Wmg4urlNwRC0rrGMlncMd4IS0WADIITVq7STGYbFBUhaHpBMibKpStAg/Jd1rreGjaHn78W27Dq28bGXj2t3qXTZQpVeTCagdfulzDSMHAkWoe8w2LWlkKw7NrXWgKw1DOAGOUP7vW8XD/gRKu1Kxb9hW7kWfbj73uGHKGmhbYP/eGOwcK7gQ12e1zllsOVM4wWc6gafs3nVW5bfzd32HuxEuIUzo6hD/7j78FBuBI34/crMXH1mP3VOIX+qFAGFGyha5y8uNc6+H4eAFvf8n0wLXerUh96EgV9x4o7dry28/571bkMTA0bFKpbz2emzEafj7Gi6YIi6XyIkltnxnO4txyBx03oB1/FGG17ZJDel+e1LmlNj7y1CLsIELBUJEzN9EBzhjKGY0yAoFNbpNEazioAEhCSSMBOGEMRU6KGY3Dj6hVpyucSNseEEsTUy+ineRtI3nomgIvjJHVFMwMZzFbt5CR/fTEhDMWhCR17E0n37yp4iWHKvjabAMdl3xmyjL4NYhiuEGEjhujnNHwspkhvP0l0+nOjI5683w0uWg7Ptlj3DlewNOLLQRSekzxNAQ5H67msCGzIS3fS4OzOy4R70m9F6HtBvCl9l/p250ny4PCiEjOmZLex55HbdnbxwoAtr/Erh9RK0oKGhIpu65waJxabrGglkvRpOvJGEuNKy0/QjGj4mUzQylv4fRCK504txYKyS6pafm4LHfhfhjjL76+gPWOR0okjTShWV0BY9SOSfxjE7WPkAohQ1OQ0Sh26Mp6D1+6vA7bj9AfG8M5QxjG+MOvzGKxYePISI7IrHJhO2aqKTrzs284npLdGSOyqxdE8KMIlhfD8oCJcgb/4VtvR8Gk5/n8cgeVnIbxookgEjg134LKGRjjKGd16H6EO8YKKGdJcHJ9h4D2Wxlbd679eZQC5D1kqkrKEUkW9+G8gYJJruG2H4KBCnEi2TO0HGqVPbvaRa3n4XA1j1JGQyWjI6dvVzaudTzcNppPF9KnrueoQCEAAQAASURBVDf/QawR+heN2RoVEhmNpwbTSR4r4wwjBRP1ng/OqRDvR1mTkVyfBFVoOz4sL0LRpPgmQFqr9P08ABgqeSDl5TNVMDXcOa7C9kPUuh6yGocTCNw2mkMlp0PEcfo5eWOQf5PRSDFXMDWstV1MljI4Us1hueWm70//6LoBHjg4tK0A283BPGcoCCOyG2naPp683sSG5VGcVSgQxAJCJPdsk4zd86Nb9hW7UTbmmcUWfvqRMxjK6fBDMYCQ3dtHwt9PxuZwTse/++Zjt85li2PgPe8Bfu3XkPmpn4N35I3PS4Gx7dgBPLtGgffjRQN120fXDZHVN9/XseJ2W4k4JqrBd907iY4ToJghW57kPHdr+e133Gzw+s0YDT8f40VThAmINLX9cDWXth5mN8i/yPZCXFrrpoTjj55aggDwsVNL8IIY40UDTTtIidqJvDWJMFJiUoQ4QZSSW1WJiiQTW5IdyRmDgEhbZS3bp8ifMFFVMqiceCeljIYgFmARBZlCLkT1ng9DfjdAu7uCqaaO0/1OvsN5Aw8eHsKT85SFN5LX4IQxLD8m9QpnOD5RwFv7oPFkdzPZtzDNNx3ULQ9eGOFAJYv5piNFA9QSDSIBLouk0byBUkaD60cpugOQW3slqyIIYxSklxggUhfytDUpqzA/JnsRxsg1XuU0QZUzOixvk9K/tdWz3LLx/3ziAtY6LsIohioRyFAWvJwTihIKwI+onXPHaAGzDQszuooffHgGE+XMQCRQMpG+7f6pbQqtxKeKnNAJDWhaJOMPolhG31AxwOTzKARxBJMCNoyJW1YwVGmpIXC9buM//K8zaSs1b6p46aEKvvnOMfz9pRq+8Ow6OEggkpDkK1vjtBoW2k6QKuISVa/oK3gtL8RP/OVp9KRhqRvGWGgCtaKHQ8O5tBBSOWD7xL87METFa8/dPYJot7Ebj2brznW8SCaW9Z6XcjkTdEWIzTzK8aKB5byBlbaLO8byyBsa6paHs0ud9NpnpEdV4g90dCSPobyOdzx4EI/PNm44Qe9ljWB7ISIhsNSynzPpO1k0PvjoLFY662g7ZBWT5LH2qwZLGQ0jRQPzdRtjRWOgDdh/fRK/LVXhKUfLC0Xq3A8AYAzJqYWxQN5UofYXSClvjnyqFM7ghjEWGxaaToAjIzlAIEWk75wo4vI65c2qcsPa7x/3gc9fvqlW264O5m6IuuUjFAJrbS99tlVFdikEqYAtP0Te0FLz0iCMUcrqt1Q875WN2bIDNHo+7CDCWDGDybKxa6rB1s/Z6o03XjRxpUamvfduUVDua9g28H3fB3yUMiBNaQ3xfBQYW4+96wYpEqspHKMKtayPjxVQzulgYrutxF7t3H5e3XNt+d1M8Po/tAL3H7UI+8Vf/EW8973vHfi7O+64AxcvXgQAuK6Ln/zJn8Sf//mfw/M8fNu3fRv+63/9rxgb2384ZjI0lYMpHHdNFtNJbCinQ8RZrLRc5A0V906XUS0YKXH30iopg6YrWVTzBs4tDSorNM6w0vFgagpedWwIfiRwdrENzkFIRyKVBxVkpJRkaZRREkXkhSJVkCTtAAFAiWO84e5xfNd9UyiYKk4vtvBbn72EuboNP4wJ5XEVqApDXlfphV23YBp8m5PvUN7A/QcreHKugesNB7EghGmqnMFEKYOOE+J3vnBlm1P21p2Z7VNxd2q+KcPEdRkpEqJgcNw2lsOltR7Wuh6KJi16w7qaSuAdPwRjlGLPLD9VZ8Xpf20fsRBgAvCiCFA5xgomcqa6baLof1nvPVCGG8b4hb96ZqD4SJCVnKFAV3najp3bsMi3ZmZ4YJHYrdXwxpMTmxB30cSVWjf1jdNVEiNEgiwR1jpeGt+hyL9XOAfnAkFIbR3irSnIagq1TGwPnuQHZnVFFh5ULH3hYg1fulRDJauDg1qXkcA2eX+yq/3chXU8Pd+ii8QGg8g5AwqGgp4boO0EUBjDUE5HVqfPW2q5sPwIOV1B1w1Scm2SAXkrk9K5pfa2Vvc9U6UUhd26c9Vl4aAqDNk+oYfth+mxcM4xUcqgYflouyGGsgYFsEsbFF36AukSReu4AS6udvDGeybw+hPj+ObjY3j06kYaWv/w0eqAQmyvibnR83BqoQVVYfjQo9f3neW47TnfUpj+6lvuwXs+dhbnVzrbkM7+6/6W+yfxX75wBdfrNjgDOg6ZddrBZroHQCrDExMFdJwAlheilFFTfyZFamQSi8MDFRMjhQyWWw6O9aFVlZyOuyaL+Pr1Bhw/wqn5JpLcvCPVHF57fBRfubSBqxsWYqkcfcmhCl51jKwy+he+m0EngN3bRA3LTwsXAKkoJ4oFYiZS8+WepJsknFtNovq3gmrs2rKSRriBNI/WJP0gbygYKxq4VrPwh4/O4v1vOwlV5QOf028Js+mNRy35W0JYV1aA7/ou4BvfAHQd+OAHUfqX34tjnzz/vBQYW6/BViRW4RwMMbKGKg3IBdb6bCVuNYLrVsd+i7mbVeA+1/GPjoTddddd+NznPpf+WVU3D+nHf/zH8clPfhL/63/9L5RKJbz73e/G2972Njz66KM3/T0/8+3H8alLFIKqq0oa9vv0YhsKZ3jZzNBmaLbMITu90EpT3POmuk1ZEYsYDAxHR3IYzpsQQmA576Bh+dAUMpZLiKyJVQOXPDJV4RBxnCqtonAzn46UhYQeffbCOt58/xRsP8Knzq4ib6iIpUcK2VhEABQcHM5iKKdjdsPeVdZrSBuBYYN2AYkhZ7KYXlnvDThl7+TKfXSkgCvrXXhhTMWmjBcZLZg4XM1RsYmeVHuKVKaejDCKUet51Lrcco/6CcL9o2BqaXHiBBEWWw7eeM/EDSeKt94/DQbg/Z9+Fh2H/KJMjRR2GY1jupLFu193DPk+3kbymb/0yfN7tghOL7Tx7tcdw8dOLeGJa3XM1226r5wBUNDzfBSk6pTJZ2Aop0NhDG4YoecG6bn6kYACIBYkjohtQsmEADSVwr5TJ2mFYbntSmNRDbrKEAlqaSZhvYnIxJFt2c+dX0XPj6AywFQp0oqKfvqP5ceS64gU3RjO6VAVhrrlUxqDkN5ujOGobOXtFEG0l1IMoIn3lz95HtdqFm1CpMpivmHjwmoHP//GE2kh1r9zXW07eOxqHZ+5sIamHSAvQ+JnhnPQFIZ610XD9vDw0WEM5XR843oTKy0XpkpiAk0hlC1p+UaxgGDAQ0eGt4VUGxrH312qDRRRu03Mq20XZ6Tn2/HxEsZLxFE6s9DCpdUu3v6S6T2DrvuvS/8xxEJgomTi5HQJHS/EWscDZ3zHxQAAMhpHw/bRdohAb/sRRgoGTkwUoSs89Zb7gYcPI4wFvnRpA14Yo2hSi9ELNxH7g0NZ/Ox3nABjbEe0aqFpQ2EM4yUTk6VMyu+6st7D0wstDGV1RIKep9GigX/9yhmcnC5vO+ebQSdoHtihTSQLh2RDyxlSrm0YiwEz6CSQ3vEjDGV1xHGM2Q0bJyZLOFjJ7npv9n0s2FQ/G6oi6SF8II/VD2OsdNbxHz96Bj/48OEBc+JEkdzvy1jveWCMYbXt3BwSduYM8KY3AQsLwPAw8Fd/BbzqVeDYbpdyqwXG1muQOMknSGx/KxwYRNn204b9x8wAvdkW5nMZ/+hFmKqqGB8f3/b37XYb/+N//A/86Z/+KV73utcBAP7wD/8Qd955Jx5//HE89NBDN/U933JiHLcfGBu4qJEQUBWG4+OltABLBmMM46WMTHH3MF7KDCgrgjDGRs/DZfkgJ7+TSK3J02jT6DEWlP1IBRYpRlp2ILlcQirjgDCiyWs4Z4BzalV+6NG5lOh6croMIQSemG2gZQfIm6QYq/d8HKxk95T1ztUtMMZwfKyIfF94cXLsFDxKPkWT5Z0npYx0Ha7mDRwaziKOxYBpZ6PnpXmKoRjkp6RqNflyJsR8hs2syK2vGwOgMibDqAcXz/28nG+5fxpHRvLb5Oy3jxV3fZmu1Xq7thr623x5Q8Vb75/Ck9ebUDhHKaOSD5tMPEjVWCA/tkR63nNp0VOVTZVaBHL9T845WTtMVRk4BsnlB+Oc0EfZ0t2MkyG+S8cl8vHBoQy+crmTqi+BzWQDlpC2Y0ILNFUBB6RoIqZzMlQ4YYzRgoHvffAgrm30cLVmpcjhPVMlPHRkGFEs8LfnVlNLgP4UgFccqWK8ZCJnKPj9L13FxZUuFE6WEZvO4QEurnTx3750Db/1L+5LW5P9yObrT4zjFUer+OCjs7A8iiC5utFDyw5SU8rhrCFb/dTaNxVqgzFGZrqJ3101bxBh2A933I3vVERtnZhX2xGW2tSSv08GmAPU3u66IS6v93ClZuH20TyOje2OjPUjAlldQcP20LIDXFzt4qtX67h7srgrORvYRGwfOFBBJARW2y6uN6yU3D2U0wcWjx9+zVGsdzxc27DIBkdVZBtS4OBQFr/0lrtxjyyati1E0k7F1DiqOR2KwlAyVTQdEra07QAK43jZTAVOEGO+buN39rDvuFkj361oZNcLpZKOniPG6DM1cMRi01KDMaQxVqZG9/0rV+rgUhj1K5+6cFPI5W7IaCDtGMAo9iuMYjyz3IEriytT4+g4IS4sk7nqu193DEdHcvibs6vbo3sUSBoGw+PXGnj9ifH9FSTtNvDa1wKNBnDHHcAnPwkcPZr+8/NVYGy9BgVDTdeppLhPWuFCCCy3bMxU82g7Ab58uYbLa90bzrH/mBmgN7tJuNXxj16EXb58GZOTkzBNE694xSvwvve9DwcPHsSTTz6JIAjwLd/yLenPHj9+HAcPHsRjjz22axHmeR48z0v/3O/XsfWiLrVsfOjR66knz9ZRzeswFNqljCUBvZKkKoTAUsvZxpvol1qvtgWCBEaWOzRTuqgnbSbL24SehWDI6PT5tJOKwRjDU/NN5AxKjk9iF+4YK+DphRZ6bgRdZWjZHta67p6y3pyhkiJyFxVbRldkgYQ9OQOkLiGOVj47+DOayqUjPp1vv0w9iAQVH3KBTVqR/dL4beiYbNtSK4yni+d4ydzxHHYaJ6fL+PXvvnffL9N+1TFtJ8D/Pr0sJ08VuqpIF/MIQoi0u5p8jR/FcLokCkgUpZFsBe0Wq9RxQ+iqj6I0QIxjqnApixQYL5pYaDppTEmiAL1Ws3BgKIs7xov47Pk1mBpHKK1T0sqw/zojUfFSoduwKXYqlsXMeo9I1D//HSfStp3th7hWs/DHT1wfsAQ4Pl7ETDWH1ZaDj59exkefWsJY0UTRUHFxrQvOGYYzBoJYtmI5Qzmjo2H7+Pr1Bq5t9HBstLDtWnDO8G13j2OqksEffOkaHr1CaI6pcUyUTBQMNU0iODaaRzFD7VU7IETwttE8kYRVDiYo/eArVzbS3Xhy7+s9D3Xpxr9TEZXMIRdXu/jgV2YxUTTTTU2/r1feUKk9o7BdWyz9iMBwTh9YsAsGcT0vrHZxcqqIdzx4COMl84aIbTmr4/axPJ5Z7uBwNY9//y3HUjEHQPPgz7/pBD7y5ALOLnXSd/pkX0s4GVvnzE+dXcEfPTaHMBZYaVMYekbOaUEco5LT4chYtoKpPa+oxk5opOtTDqiicPCQOhNCcm01hfhgQpAoJwbdCzckLmw1Z+C20TwMTbnpFthuyKgv8z9zOt2j2fqgZUgQxdBVjsMjOax3PPzVqWU8dHgY//v0CkLZYtdk+932Q2Q0FUdGcgOWCDccpRLw/vcDf/ZnwEc+AlQq237k+SgwdroGh4Zy6NgB1jse8qaGgzJG6WqtKxNGgPf9zUX4UYyVloOTB9QdI7j+qWSAPh98tBuNf9Qi7MEHH8SHPvQh3HHHHVhZWcF73/tevPrVr8a5c+ewuroKXddRLpcHfmdsbAyrq6u7fub73ve+bTwzAPjK5Rq+9d48VJWnF/VGKgg3iDFZziBrKDtCtxMlytfaypsYympQRnIII0HtPlB1n+TZAQxDOeqRaypHEMYE6XMuCxbKZ2vYpLJzghAqI+J+cuyzddrFemEE26eJZq5u4Z7JEt56/zSWWjau1qyBXc6Dh4cGMuwADBBBk2y80ZKJ+bq9O2dATlI7GQnmdYUUaQopD1tOuClTl2aPWV1JrThuNGIBdDyK/bltNI9yRkPLDW6aw3EzL9N+1TEdJ9gWiVE0NeK9YRPRStoSKgN8WWxpLKX3UGEtNtuzya4+lt26huVDVzlMjYxVwVja+hzOGyhldczWemjYPlyZB3hgKIMfe90xLDRtQsg0smRJWuTpl4nN6yMEUh8wCPKp44wjiMnv7I++Ooe/e7aGpu2j0SMzTYUz3DGehxdGKXfvaq2Hlu3jaq0nxSYCi00beUOFE0RQOTn0J0a/TPLoTJVQwktr3R2LsGScmChiKEdZqBMlk9rqhoKnFlppEkHHDVIFYOLCvt718MDBMgSAK+s9HBrOpq33ph1gVvqDdV0iq+sqRxBGOxZRR0byqZlvsqkRQgz4egFU1OkKccR2KkZScnPRxLPr3YEFGwDyZmLq6+GJ2QZ+/o13pr+7F2LLOcfhah4tx6f3ccviejOLcPLu/PXTS/iLbyzAC+M0xSOWXKuuG6KS06EpHG4QoGUHqfv5RNF83lCNrShO2w4QQ2AkZ8DRFbScAJEQEPFmQLbKyZ7i3ukiAI6Lq9s5dsf0HM6tdPAHf38V/+5bbhsoWvd7LAlSeKBCm3pVYQOWIf1CiaKpQWEcl9e7GCsQghpEMeoWzYuawjGSN3DnRBHFjIa5DWvvgiQMgbU1YIrQUfzQDwE/8AOAsvNGEnj+CO9bTYgnyhl4YQRDVdC2A2xEHnoebUqmK5RCUutS+/XMYptQ5Jw+8Ln/1DJAX8jxj3qGb3jDG9L/f/LkSTz44IM4dOgQ/vIv/xKZzM7o1I3Ge97zHvzET/xE+udOp4MDBw7gP3zkNA78/Txee3wcx0bzGCkYeMXh4Z3JtkKg4wa4VrNwYrKI73/oEP7q6eVtROK3PTCF5ZaDDz46h3NLbYwUSLG31KbgYZUxjBYNOAERm4+NFqSSkMizQzkdcSzwtevNlDQOkES73vM223MCiBSKjGk7gbSkoIw/XdFg+REsL8RG18eVWg9NJ8CxkTze8eBBjJcyAzvn/gy7puXj2bVu6mLty7bTq2+vYrXt4On5JkpZDQWDAqk7jo/hvIGHjgzB9iNcWu/uWJwmKqmOG0BlEVq2D0OlNh2XxPAIDIo0U9srXJuDeGQNy8PF1Rgjhf8/e/8dZll2loej71o7nnwqdoXu6Tya0NMTBBqNlWxhESwwgsHXxiBfguFnrg02GC7BlrEuYF1jY9kEXZOxERjbCIGFhIwCSJqRZpAm9/RMx+rqyuHkc3Zea/3++Nbe55yqU9XVPT2C+4zX80gz0111zo5rfev93uDcFmf2/cZB1DH3zVfQCWPUehGKDiluvZAk8lFC6F+Y9E/M4ETIT4dp8Ey0IdXwBeCcwUQ/UkYooOWTJ5eZqimFxFjBQsk10fRi+HGCjrb74Ax4+lod/+GTF/HwsfGs/ULXcoCLp1TGV0sd4hNd+ZlpgLpGFcYLtBAsN3zcNVNEN6JCRUiFixtdveGg9iKhYr7ODuXgjGxaPL0TjoSCULTLT9MbwlgiTKT2jtp/8btW6+HKVg/HdRYngEyZVXCo+Gn7CU5NF+FFck8X9jefmsR/+4slBInA+dU2gpjaxIzRIkgGyGQEO6qI2lms7wy6jrVLuGXyPVssKeqaOGqXxxc9N4R4juXtPX83VzEApTKaREoPuBGacDOLcJJI/PJnriCMhc4F5JmJMkwOL5b0vnPiRb2w0iSRisFR0nFsL693bktbZ7CAbPkxfvuJRSxu9zBZJANeLxYUx8UZemECyzRwcqqArz0zhw8+uYhT06WhzVXK2ar3IlyveVhpBTh7uHKg9uSoYrYbksjpqrYYcQcsRgZFLTnbwNXtCB89RyjYWN7OaBphIpBIwtJHFSSD3Mty4uPYP/6HYBdeBp58EpjUuY/7FGCjPudW78t+JsQtP87yWQfR2pmyi5myg7VmgAUdmZf+3ZczA/R2nP8rHX+lysxqtYo777wTly9fxjve8Q5EUYRmszmEhm1sbIzkkKXDcRw4jrPrz/1I4MKmhwubV+GaHK5tYK7i4p1nZzFesPvwdiyGZNWuZeDXH1/o5xfqf251A/zHT1xEzYtR64SoeVTQCM2vcS0DR6YLODqWx5XtLrphgqYXZRl7qVRbKYV//LtPo96NMF60IQSRMYWixZEz8uyJJe2iPO02bWnFjFLIrC7AqOVXdS28sNLCSpN27oMTbQofP7lQw0YrQKyNWjWNAStNH+//xCWYBkcsBMQWLfquaWCqZKPomPjgk9cRxsQbChOB5YaXndcgV+VDTy/j2etNrLZ8agkZHIZjoBcJMq3lBiEzMi1Ghu9ZRtTXooamtgi5Hc7swMFtEnYWmURYD/Gbjy9iue5hs00xFndM5LHc8DMi++DpBInEoEwiEQpS21TsFigwjYaJ7JqEcQIvJK84k3O42oB2tenjpbU2Gl48lFpQ8xL8+ctbePJqDQYntawCsnbkIBBWdAwoMHqe9J/7UWoCzDCWtxALIEgERJTg2aUWIiHhmhyVnI1umCDUCE4kJLohBTwzUMHFdXpCyTHQ0/K7zBUB0EUPgxdLGCbDqen9J95R7eJBZZYCMsR1Pxf2vG3QDn6jQ7mqtgkvimDxPnIkhMR6O8CxicKuImpnsR6LQXVYinpoU1eMbrGkhVw3iHd5fAF9n6+ia2YoXfrsNr0IkZC4utVFWxeh6c+Xc6SWvl1owuNXtrHaClDN2+hFdP0tk2coP9dzz2aH7GSU6mfAdkLigf6iDvi+VfXo4BgsIC2D98Orp4tYbfloejF6IbWhH9Hh1ULuTrBIrWUCnasLkJn3C8stLDd8fMtD80Mb2f2QwsHxA191Gr/5mLYY8UhVnHcM3DFOAfUA4IcUMTaWIz++uhehbJHYpuAYaPkxrm51Uc5ZQwXJoIijuLGKH//Aj4CtXIF0c+DPPQd81Vcd6BoexO3/Vu5HOk5MFXF1q5vlsw6htVrk1fETrLcCbLRJlfxqKRBHjdt5/q9k/JUqwrrdLq5cuYJ3v/vdeP3rXw/LsvCpT30Kjz76KADgwoULuH79Oh555JGb/mwhkS2CsZAoGyYWtnv49c8t4F0PzsMxKax2tRVASoXJooNT00WEscRnL24DAM4eruDkVBGXNzv40/MbkJLk0GQGSAozqShQOogFLqx30PQi3D1TRq0X4ehEHt+ug6AHX+h//tWvoxgjj3ylhJ7AGCf+l0Rq5Nk/n3SXlA7GmEaMIiiGPdsfZ+Yr+Lr7ZvD5P9ymwiAlxOsFl4xXFaESHCho/hpAisx6T8f4TBY08deDaxkjVWCDu9W2H2O7G+L3v7SELy42EQsBw+BZ223Uq5YK+ADtu8bJCHKnM/ut7GZu9ALuRV6dr+aw0Q6w2gwwW3bR9gm1rHVDeCEp0tZbvo5NAhyTLB3aPiFHaYtRQsFgDIxjRL6l0l5xTIe1a/Q0SFDJW3jL0XG8/e5pPHu9iY+/uIaGF0FbYWUIDtPWDH4k4Vj967jrq0DqyJS3N3TtFZGDx/M2rupgaaUozUFIhZ4UiGWIomPCiwn57IVJ9pxypkUJ+vmRysh84Kj1SYG+SoG88EDF2ErDx6kpakcOPj+piWPBMXa1iweVWQAyVVY5Z+3pwi6lwnTZxXNLTRRdE2EstX2ILsCkgmsa8COKDsvb5lARtbNYL7kWuH73qUglY9W05TUK0UgLuS9eq2cocXovBttXBmPZ76bP7qWNDq7XemgHlPc5lndQcs1MVbfZDvG2O6duC5qw1QmRCAUnx8G5hVhEOoSaUjrSB0yBFLimvq9RojlbjDImz8yV4WsLoNtlQ7DzXR3PO6jm7GyTnRLar251h58bbSeRtoBjQT6G5ZyFvG3gmaUmXlxtYb6Sg2sbN7VAn5mv4N8+ehbf+8Ev4ZnrTYDR/b+82cVmJ8DxiQJWWj4Ays2MpUJvpZVxOw1OKOJaO8BU2ckKkkERx8PbV/GPfu6fodSqoVGewAd+8OfwjXd9Bc4c4Jp9uewh9uPXjhVs3He4iudXmmh4IXph8qopEIHhdWK95eP3n15B48tkj7Hf+Estwn74h38Y3/AN34CjR49idXUVP/mTPwnDMPCt3/qtqFQq+O7v/m780A/9EMbHx1Eul/H93//9eOSRR25aGblzCAU0vBhKKgSxxH/9wjWcnMijERCX5/RUERNFG5bBsLjta48vhY12iJxl4OJGB0KTnCNBuX9KDrbVGHI2RySocBGihZPTRWx2wiwIenB84wPzkErhP/zpxSz/TypACQUBhfgA55QuPl6UIIyJV5CzOJ5fbg4RnaVU+NylbXDGcKjkaJ4QxSkFmqeVohRCEt/D5Ayx/vyyy7HR9jFXdVF0TZw+VMKljQ4ev1zD8ckCrtV6Q4jSsQn6s2vbPfzBMyto+uSgrBQVenJg8h4cDP28SAVCBZVS8JNhJOFWdjMHnYDumS3DffgOXNzoACCE5nefvI6Vpp9B6yemivAigTAR6IYxOmGsSfMSjmmgkrfhmAZKjoWGF5EQQ1eXtsUhFZBEw/y4OJFQBodpcNgGQ8GxUHQM/L03HMFbTk9lfJV758r4iwXKgmSMNgSh5mBxXVQL/YwPrJMZ+gR9XROpoKRCzgRiQcWFBCCFQpIoXKt5Wes0Ra2UJjxHiUTABAxGRWLa4hz8rvT3gljCNNhQm1UJpQtNBcaphfufPnUJH35mBQDDUt3DatNHKIhvM1fJ4YEjVYzlLeJi6nZxyTFRcg1sdSg3dDxvo+j0J/5RLuz0fOYRComgEwGMCi8hhou4KCE3eh+7i6jBAuDSRgdQQCdKMFN2MFPOac5ljKJtjGyxpIXccsPHZjtEJ4hRzVsQEv321UQB6+0AZw9X0QsT/MKnL6PeizBTdrNYHCGBlh/B4Db5Mw1WRvuMJJH7+qOlY6rkwDRIYZqzTYwX7Kz9LWXfXoda21wbpqpsXkqTNl4Nwn56H27EcduJXHbDfvtYKWQFb6pojIWEVAyTJQcm5ze9QL+8QT6TKdeyqDeP2x0qkA+P5TCWs5F3qOhKUdsU0eScULlv0XPZoIjjG68+gb/78/8CdhRg7Y7T+K0f/wU8o0oQB7ieX057iBvxa13LwJ3TJfzDtxxHNW+/ai3BwXUiiIgylAiFB49Us+P6y7LH+EstwpaXl/Gt3/qtqNVqmJqawpvf/GY88cQTmJqaAgC8//3vB+ccjz766JBZ6+0YsegvFokE1rukBguFwAurLcpz1J5OVdeCbZto+RFeXI31RERKwkCTVKWGDhhSz1EGW/OAvJiS18fy9lABkVbmzy418aGnlpG3qE3q60X5xlPo8EgRq/PrbQhBXKpISPzHT17CP3rbSZyZr+BarYerW11ynzc4hCT0JCWQc9YvJtPHj2u4TCnAjxNsd1nmxt/wYtR7Ea5sb+DSRgeVvJUVQQCyxenSRhdeLDCeJ98wizMkMoaNPk9p8HypCGOkaNJO+ZFQ6GmbB+DWdnNJIvEbjy9gqe7h+FQBBcfIzCYHX0Cl1C63/Omig6vbPRwey/dFGANq2K1OmGUXWkaaJKDgR/02n2OZkJJ8umKhAKVg8b5JJtP3gYoAhoJjopIz8fDxCbzl9BR6ocgK3V5IxZ+StMgRV1DpHNHdk0cKdtkmh6ETA4KY2pQCgABBV7GW+iuNkgohs2Oje8GQaGWnUoCv1Xwilpn7enoeqTdeitClBXXeNrKiMdB2HWXXIj4c5/jsxe3MQ48xWozCRGCt6RPxPUf8s4xGkAh4kUBXt10Zi/H09SZmKzl4UTKyvXFupYUnF+qwOIfi/UB5Mg5WGMvT4phmHu7FUxksAJ5bauK3Pn8Na60ADa+dKVE5YzgxVRjZYjkzX8E//arTmeJzqxPBtTjG8jZmKznUesQffdeDc0NGyiSoUZgoOvDjhHihXUImy66Fw2P5XQ7lg+OPnl3BL3/mClZbARJB92Cu4uL/ettJfOMD80M/+6aTk5jTgh3X4nBMA06RIxYKQRRjqxtnNIxkwCSaMwbDSP3wqJgFXh0bghtx3HYilzmLI9F5r+2gX/CmisZq3kI3EBBSoZq/uQU6LXQSofDw8XEs1HpZcTUY4RMmIitQ0uzMQaFULETmD5aKOL7+xc/g3b/0EwCACw++Gf/th34WYb6I2SA50PXcz+3/dt+Xg7rP74yoOug4SBdk5zqROBILGtl/cbWdmVu/Gud/kPGXWoT93u/93r5/77oufumXfgm/9Eu/9Kp8v54foUD9+VjzoiSASCSZdcBGHNLuVO/aUx4ENKcn9fpKP5NQAloM0wWy4VGYbbqLzirzjS4ubnbgRwJjOSvj9dxsAZaORAItL8ZY3obJOYRSOL/axvs+9hJ+9Ovu0rsyMgGNE5mp01LrgyEYA3oR1q2iNMDcixJEiUC9pzI5Pgcha65t4oXlFl5aowUokUTYBgNKDpFWg1iio9GXVEa4g5uuo4tSl3umXa5JEagkcHmzg//8mStYbfq4d66srSH2382cW2nhNx5bwCdf2gAAbHVDjOdtHJ8qYnwg6ueZ6w1cWG+jFcQYy1mYKNowGcP5tTbWWgEmS86QrDqdPBdrHp5bbuK++QqUUnhprYNaN8oyDHM2R8E2YBgmkYYjod3yWUZoThEn26SMxpxFEVnXaz388P98HlIqVHIWTh0q4o3Hx8n0d9RDjd3XNL21qTlvlMghbpZUql8M6kJwSDTAoIUB1CoJlYTUfELbYIDiiCUglMyOI+W3GZxCfaUCDIPjkRPjsEwDL6y00AkSVHMmOiGJXjbaPgAKAE6kxFzFBWNp9mGMRFASxXw1h7GCheeWWljY7kEohemSA5OzbONT70V486lJfM9bT4y0hghjibmqi4YXI2/bCCKJdkjf4UUJEilRdin1YNAc9epWd9fEn6KiKbcou7CD92aPcWa+gv/4dx/AJ85v4CPPr2KtFYADUFBZeyZvG0OLZ8pBK7kmDE5FfZyQAbQfC6y3gz3d1v/o2RX89B+fz2LOnBwVxNdrHn76j88DwFAhZpoc/9fbTuKn//g8NtshyjmLvPuERMvX7VnNAeOMhB0m5/Aikc2jnJFIIX04EylR60V4eb39ZSNEDyKXLywTtxExeXodmyxSQabRMSH7iCjQX6AvbrTxuUtb+yI3g4VOWmANCidSi5Tp8rASPc2hTc2zB4v+tLV37fVvwvbMHbj40Jvx0e/4YUhjb87hqPHlDKh+Nd3nD9IFGYX61bqUKzqWJ9X0wnYP1ZyFbkT3h3OGMP7y2WP8leKEfTlHuiCl82IssQuNSREhBWpfpmogpaDNWKnNkv5OlnuI/kLHGNMqHYG5iotjE4WhyrzkmoAirhOFWctbLsDSESYC9V6EWGcmtgPiY/3Yh17A93/VKVRyJroBybkBZG7o0O2rdKT/Fulz5QwwDFJrhYnEetsjQrNlIBYKjk2B4afsAj59YQtQCq8/NoZ6j86rmrOQsw1sdkIkGoGB3FsLx3XrK9ZEqor+/f/06UtYbwW4uNGBbXJEQuL4ZDGTOY/azaRO7RRFlcDQ5p3dMEHTj/HgHWMYL9hwLY7FWg8AIYQbrTAjOk8XHSw3/SxUd3BXx7SIwzY5okRgrRXCNBgmizYYgFAbePZCsmhwTAapmEatqIVzqOTCjwX8WGCq6GC67MBgHBc22uhFApa2MGkHMWq9EMsNH3NlB1e2upQ1l5Kw9NipupTIal7daukrJRWoFYmBn9ml2mRkSSBTHybeV4BahgGhBCaLOVTzFlYaPvxEZArKKCG+1VjOxmzVRd1LUHJJFZmzDDQ82v0niURPH0jqWZdI4qZBhy+3gwTzYznUvQj/5G+cQse/giAWfdsBUEEbxQKrWjSxMzR4cJFMI8m8iBA9y6QsTi8WYIyhmreGBCc/9dHzIyf+e2bLhH5Ihb/xuil0dXSYZXAUHQNXtnr7oiipD9o77jk0cnf/3FJzaPFMI7i8SKCtif2MAUXbhGHwPd3WU6WjHwlMlx0wRkVGzuZwLY7Ndohf+cxVvPPM7FBrMi3KUvSsrekbBudwOHEc02PwYwGlqBUXC2Tt8pJjDqkRo0Ti1x+7hi9eaxyIb3UQ5ONGP5Mil1e3u3j/Jy7i4kYHR8bzMDlDFIvMu68T9s1G0xEkApc2unj/Jy/B1mKkQUPi9Pt2FTraXzIdaYTPm09N4uPB+o0LlCDIWns1p4Rf+tnfRVAYfqYPauvw5Q6ofjXc5w/aBRmF+qXvTSKBvG1iuxviyYUa/FhqtJ7sadZbAe4/clsuwb7jNVuEAcOgz0EKH6mQ7erCWIBrZGaIAJMWbkrqxYMT4dDkeOfZWQAYqswbvQhSAQXLAKDQ1LvKVGF0K4P4DVTk5G1OgdUArtd7+O0vLMK1aGK1DQafEXnWNnmmUhz5maDzNiShOomQesdo6EDnvgqsqxGeIBH44kIDUkFnWSpUNem1O6DEGyxidxbCiYbvp4oOxgsWFrY9nF9tYyxvweIUypwGMp+Zr2SF2OBuTkqFX/nsVby81gF0e9PQooc4IQuNl9faeOTkBBa0H0/ONlB0jczRnb5DoORQmHQ7iFHJ9b1tlFJo+xFmyy6u1/0h9+swEfB8kQWJp0a60CjfuEs8Hi9KsvbFP3n7aay3Avybj72Ejh+jlLN08Dvxm6it42GmkkPRoXgklbbDFaD0YphSg3S3HAAV6boTuvfQi2YUSwgQAmZw6Ba2yj7fNMj5/l/+rbvx6YubWNzu4fShEg6VXVzdJh+nKCEDyzsqLn7275zFVjvCR55fxeVNUg27lqGLFRIxBLpllSgFKahlmqIRafiywRh6scClrQ42u+Eu24GSawGuBccyh4wu0wX66cUGml6MmbK7K5JMSIWibSBnGXj3I0fxt++fw7GJAs6vtfed+B996HA24XPOUXJZ1lrqhiTLP0ibY7CtNlhQkNVLf/EsucSDW2qQHQgJORgMg4p1xka7radKx3LOygqw7LYz4sGttHw8fmUbb3vd9NDff+MD83jnmVk8fmUbG+0An3hpA9ttyhdda4eIhIRIhhF1pf8vFhKLdQ/Xa14WdH+o7GK27B6Ib3UQ5OOgHFHOGYKYUiHqvRhrrTpci6PgmIiFQMuXyDlmZicBkF/f88tkgTGWtzBVcrHeCvCxF9bxkefWMFNxMV6wcWq6iDcen+gXOo6xyz4kLXQeOFLFnYdK+xcoV64A73wnjv2zH8Sp+TfjheUWCtOlYZD1JmwdBluEh5SDRPRTTxTwqthD3E73+ZvhtI1C/Upu39k/RYqFVCjnLBgMGdr++08tYX4st2+ROKrgB4CF7e6Bz+c1W4TdKtqUtmtSFKecJwPKVOXHQZEeUUIomGOSp84jJybwjntmqDLf6KLk0o4w1DmP9PssQ9PId/3WRiqcZAC6YYwgFllsx7mVFpGjtcLNYAwCtNDtkZ89NCKhYBkK7SDR8TYKOcscUoHVuqR0USDkrGwbiAUhPHUlYRvGUCs4HYO1LGfA62ZKGMvbpFxKJD53mXhCJiclnh9LWCYVO+0gxrUBv5nB3dzV7S6+tFgHY8B43sF2L0QYS9gmg20ZCGOBrW6Ilhfiyha9PJMFG0y3OC2DZbmMec0VvLrZxWw1P+T7NlF08LXHxvCfP3M1C0Y2OdDUhYhjGSg7Jpp+rNWoVNh2ggTVvJ3xqYqOhfvmKvjtJ8iJnnHWL7K0sWkrTNAOE6w2AxRdC71QUCszLd5ZX53IeD8iCsCQyjadAnfeB6UXTc4pczSW1AKs5jgsk4qmMBZQiuOtp6fwt87O4thUYShr8IHDVWx1Q6y3AowXbfyd1x/GR55byxZIUxfRjNE7U83b+r1JwKAy5a4fC70rT9vSDEIpOBYHGRsfrLUyuEC3vBhLDQ/dIMadM2WM74gki4REIhT+9v1zWfF2o4n/j59fu61hzDsLCtskD7ZaL8TZw1UwxnConMP1ug+lW8muRq5afryn2/qg0nHUsE2OdpBgqxOO/HvT5Hjb66ZxdauLjzy/hlLOQc0jY97Mh26gDuMMWUrIi6st4olxBtc2cGKqiFLOQtE19+VbHQT5AHBgjujg5907V85sLWrdCIkgzu+Z2XK2qVNKYWGri14QY66a05YSMa5sdTM6SpRIsgdabmG57mEsb+PyZgexkOhobhk9BxQin/odcs72LlAeewzqXe8Cq9UQ/5v34a99+M+xXPdeUWuPc4YHjlTxqZc2cGGjkyHsOdtA3jZweCz/qthD3C73+ZvhtI1C/frxgk1sdyNIJVFy6T53wgQ5x8SZWXI02A+5HlXwj+VtAAobteaBz+c1U4SNnm5GL0IH/kzetwWIdRvRNBgc08BU0cJ4nvrMY3kbf+s+8jZ7dqmJi5ukoiICNnSMhkDeIhIyuxFKsc95ABgqphJJKIZUmjMiEnBGMR5CKcRSwjQ5DMaRRGJXYTRqxAK4sN6BZXAcKrtULKWOx4qy6xQUDM5hGwYY46jkbUSdAH4s4UXaK2rgM1N/pJS8LXX7seRaWGn6uLTRRSQkxvM2Sq6FRFIrsd4LYXJHZyYm2SQ2uJv7+Itr6AbauV+3BRJBrZAUmYoSiXOrbSgFFFwTiSbPSZkSy6kV5kXkDB5LhWeWGkRo5tR2fNvrpjA/lsNMhQi33UCgqxf0nG2gkrPIskHRrisRJNrohVRgTRQdHNFttsevbOPcSiuL9bE4y+wc/EhkeY9F18JdMyUcn8jj3GoLcUL+WAopGkpFclqIS0WKxr6VA6FGpPDcaXsCVPMOTk0VcXGjg3YQk9GqFBopM3B8qoDveesJcK3uGtV2eOTkJO4/UsFHn18bXiDDBGutAE0vxkTBBsBgGamSLtFtciDWNgeWQXzEcS1wOXu4ijsPFQ/UWllv+fjQ0yvZ98+WXbSDGFudEJFo4sw8uXankWQ7+TgHmfhXWz4YcFvCmNMiYbsTwDINKCXRDihjsx0IKNXAqemyJslzhFrZbOhneaLg4PhkYaTb+mTJBtftNhKRpA1oGvReMExpJ/e92nudIEG9G6Hh07tUdgldGERdLU6JCpFQ2OpEOufUzDhY+1EI0jFYAJ+cKqAbisxz8eRUAVe2evjQU8tQUAdCRwDsKqjnq7mshX11m0xWt7shbNPQDu8h1tsBio6JE1NFKGAoHSGRlDwyaA8UJQpbnTDj3bmOQQHezQA528D9RypDSt1dBcrv/A7kd30XeBTh6tG78P/9vp+F/+wGxvI2crYxlCVKGa7jEFLh6lZ3X5Tp3EoLH31+DUXHzGK94kTB70WQysY7z86+6vYM6TO1037mIOjYzXDa7puvZKjfSbswRBE4NpHHZieEaXCNimLoubRNY0/ketSmYL3l47MXtwAAd00cvLR67RRhnMGxGBJBi2DRMRHECaJbgJvSQiXRxM2iY8DVAdNhIhHFAm3t8WOZHLYh8MEnr+OjL6xjsdbTELWJgmUg0QrLIBKZTB96N3mQgig7P7a38zzxf4Y9t/xE9qfdRGJmLAfRDrQitG8dMWqk7UwwIGcTZyYdnTAhMi7nukAdvG7kwj76o+mMB9uwL693kAgFPxJDqr+0MJko2NjqhNjuRZgs2EikRNuPsaF5QP3d3PBL7ZgGxgYk9kIq3T60YfIEfiKw0Q7A0pApjT4VbBO9MIHBGQ5Xc7hjPA8vSrDS8LHRCfEbj13DbMVFK4hxcqqAyoyN7U6IixtdVPPUmuwFxMMzdDtEaATViwWEjvIpuxbW2wE222GGJDDO+hzERGXXyNDF0FTJxXw1h3NrbZyYKOBdD83hlz59FTmLwzA4gpjOyQsT+Iyhq5HKiYKNomuj4AhstlPzXhpjOQt3Hiphvuqi5Uc4VHZo5x3LLDXiRlmDqXv2z/zJS7sXyJyF09MFfPFaE60ghm2SYjdnGfCjBJxT/E4i6V1SSsHiHKbBsvt7YrJ4oHSDJ67Wd33/XTNlvJA00fJiXNzo4CuOjiGIZeZ9d2a+nClRDzLxcwCHyg7+4lojyxNNJBU1TG/YDhLGnBYdlzY7aPRibWuiMgNUw2DYaAOu5ZFRM6cC5shYPsvGLDkmwBi6QTLE7zm30sKfv7yFRCp0exE6fgTLNJC3TTimAZMrtP0YRycKeNPJyX3bewXHQMOPEERCo5iEbpoG18icgskY7hinYnCx1sOzSy3cPVPCHToHd+c1HEUITwvgvG3imaXmCFPaHF5YaUEBmDsAOgJgd0GdcrZ0C3u54eHoZAFbnRAbbYlIkJnvWa2ka/vxUDqCyQFfkjCCuQyzZRdPLTW0T52NtuaDGpxhbiwHkzM8t9TCN5wdYTytFPDe9wLvfS84gCfvfyv+xw+8D9VyEY4OZR8r2FkiynorwBeubmcm2vvZ9OxUh5NYSmj+MMNGK9j7uG7TSJ+p1Mg7TCQcg2OumsMDd1RvyA0sOAaEUlhr+ihrsdvgPR/sgqTCgJdW2/izC1tDPFeh1df3z1dRcEnRPvhZez2PI1FxpXSMGz1vW53gwNfjNVOEmQZDLGhizttEoA6S/YqCvcfgz293oozHlD4GBifium0ZeP1MGbPVHPwwwRNXawgTgWrOghcLuBbB0hMFGzVEkFJmrTipbo4XJtRoTlX6d/udR6KAa3WfJvh0ThrxOQChFAzQPAeB7U6ESxsdzFUpE6zlRehFAmXXBANJv/O2ibYfE1LIASG0YSf6YgYhAc5VFmotFWBxDoOnCzAQK+idC6PFWLezQiHR00WsFwvcr/kU98yWcVW3C1yLwtLTcNxUYh8lpNAyuEIoSFEWCzLe5Qa14gB6sb2Q0KSiQ/5oTS/GpY0uAi06SEn1SSLxwnIbDx8fx2TJIZ8t3ZoMBUXzNL1oyNTUNkhptt4KUO+F+M3PXUUniDN1qinJy43MexkYo0U5b5vECfMitPwYjmFgpenDiySCmAjbKefB4EDeMTFbtXCt5qEXxAgTBUdI2AbHeMHGdjfUmwtqvb+83sbFjQ5OTBbwE++8G0XtS3UzDuL7ZRxOlojMHGipPmPUnp+tuFBgaPtRpiLN2SZmKy4eOFLFG09MQOjd9Dc9OL+v+uqNJybwwScXd33/WJ48+65sdVHrhnh5rQ3T4Jl/3e/9xRI+/MyK5viM3xBxc20Dbzg+ji9crSMSEludCIkOQJeKJvyjh24cxnyt1sPnL29jpRlA6KzPtACTirzVvIiexe/4a0fx+cs1LNY9zI/lRhahKaI3uHu/61AJ51ZbCIVCJITeONGEU3BMfO/bTuDljc6+7b1v0kIFBW32zBm49ijjnBIfmO6Jk3CFWkOOZYy0UNmLEL4TcRtEF+s9Qtccy0BOo1ajxs4Fdc+CWqs2QyHx9rumcddMCT2NvP3a5xbg6F3lcDoCsjZ5qv5MlEI3SHBysoj5sVzGDUwX+l4oRqMsSgHvfjfwO78DAPjDd3wbnvyeH4atI4gGkb0nFxp414O5rCA4SAv2Nx9bwKcvbIKDxCflnInjk0VMFAn1TPMsXy17hvQZXG54qHfp/chbFHy+2goQXq3tyw08t9LCh55axpqOBiw6Bso5KxNm7cmNGyLQIaNrGJzBMFh2/oNjr+dxFCre0Z5zaWxaq+sf+Jq8ZoqwvGXAY1QAGIyBM4ayYyEwyFvoVsdgA2cQIQMAJALX9eRIUn6akBOpYGuVW+qOTAHLCienChASWKr3HcoPWiSm6reDjp2FVurrRBMqFUY7f56h75gupEKXCTT9GFJRdJFUCuWciVNTJeRtI1NB+bGAwRhs04QyFPxEZIRxQxebJueQsl8UR0Jmyk3GVXaxE6GgpEAI+j2DM0hD4YEjVfyrb7gHJyaLOL/WzlRsQUQqvW4kIFVEBExd7HWCWEcBMWx3QgSxzNCn1GySgb4jTojIe/ehEqCAC+ttaq/kzKy4C2KJ0zMlvLjSxrNLTXzlsXEUXQO1bkT32aaWRBj1SfOmQTJ40wC6QYI4Uri83Rsyso2FglSkkEyd9zmjQuILV2vY7kSIZd/P6wN/dhkrDV9H3ljZotXVId4Fm/ycqjkTQSLhazSQCPDkGTVYkPe9rg42MUtJbuQXNzpY3PbQ7JFoYecoOSYmSzbWWwHunCmh6PR3pEqRj8+xiQK+5SvmUcnZ2GwHeOJqHR98cnFo1//Os7N4dqk5kty8V1xNSsRPNFJsGmTJkbeNoWIujbCp5iwsbHf7oeFumn3Zn/jvO1xFNW9hveXryCami2yDEKxWgGrB3pcX1vAiXK97kFr8AP2MgwFMkSVILCS8MMGLqx18x5uO4Rc+fXlfnpCUaggBEYK6AS0/0ZwmKu5ci+PIeB4nJgs35MD9yfNrqOYsMEUctLS1mUZ0GZzBMSkjNRWuzFWoIDlUViMLxqMT+SyuJy3ydyJufZUbecs1vQiJUBgbs/Yskr0wgZASTy/WSQWuJPwwQTHXR/F3qjZ/8/FrWYbkW05P4c8vbmWIa19h12+TD4mTNOI96liAfWwgGAPOnIEyTfz63/8RPPc1fwfFHRmQGbK30cFvff7agVqwqahkqe6Bg6GSMyEUdomabpc9xV6E9fSZioVEohSqeaIhuIrymtO2/Sgu1uAm4tRUEVc2yXtyuxOiGyY4NVXa5Qk46Nf29tdNoRuJTCBRsDj+7OI2Lqx3yAaH90lL+wkdDhKbJvdrJe0Yr5kirBMmcPIOiraJKJGo6Gy1F9dawGj+6c0PRgVeunBLCWx2Aiw3PFyv+5mkO4wlJooW8vpYBt2Rv+nBw/CjBB/48yuZCOBmxs2geoPKucHfV6PgNP1HKW8o9QPi2oIjb1N00dnDFXzwiUWcW2ljruri9XeMYanh4dxqG0XbyMxtky4VOByKDDI1V2nwHBIhUclZGSKUKlOBfoyR0EiRUAphLHBls4fnl2m3FMSCELqKgZxt4unrDcre1G0hpZSW0uuCMuyftFTEzeMGqWlIgEDZjQ0vxrn1NlZbQVaU2iZD0TEhpELBNnH2cBWXtzpYbwdwTEMvxoTwdPVzkHICTYPr8+9vBtIWh9BVuAIVxak7ucGAnG1iuemjFyYAI++ulCB8Sbv85x0j4/yki1Y7iCGVwnjBxmTJobgdABc2ughjgfGSjRNTxay1VbQNXL6BvcLgOLfSwq989iq+tFhHN0hDuwW2exHuP1zt8wf1QzhXyaHRI27IRIFanr2Qioi5ag7/6K+T0TC1MVb23PV//9tPZQ7yg0jdzriawbzAtHBQULhe8yAU8PDx8V0u2s8vNxHEEk0vwjVtWJqaqQ5O/K7F4ccCtmlgomgSoqo5hQAtesqLMsPhUePyRjd7v4SiFn26u6KcRiqaUs5KwTH3tQAAgB/90PMZAlLXgiAAODqeg59IRDpp4Y0nxrHVifBbn7+GjXZwQw5czjYxWXSw3g7Q9qlVnxbtBe0EHwvi2E0UHbzz7Cw++vzaroLxylYH3ZAQ2/d97OWhllpKf0gRt+FjgUbYGY5O5LFU93e1pevdEF+8VkeYSFza7NL7roCF7R6+8ug4xotO9kzsp9oc9LuaKROCSzw/DImTlFJo+DGKrolukODKZhd1L9JoOMN43sZMJTeMsqQESAD40R/Fha94G/70MnBsH2RvsUYJHUfGdrd2B1uwV7e7WfFzYqpAObOKuMw7RU23w55irxb2G49P6HgvE8sNfyisnjFtP+MnmK/md3mx3TGW37UpyNtmpsBu+wkub3XwNffMDFEkhlArzlFyh9nhd82U8eJqC+fW2jg+UTyQ0GEU2X9nbNrNtHJfM0XYdMmB6TrY6oaIhYJrcixse4iTm21G7h7p5VYKUIw+L50wokTi/BoRvg29KxaKSNMFm5Ll8zapqVaaHv7o2RUs1f0hR/9Xa+ws1gnxoeLxRvWf0r8fCYnJooMgkTi30sa7HpjHt7z+CFabfZVcSSMxbd0WkzINDVcZWXzUCBKJpBdlhdfOn0uROoMBJ6YKWKh5eO9HXoRQxCObKbuIhESRm5gfyyFncTx9vQHGgMmiCwbg0lZHG+4CYMNcPAWK2inYwHTJxWTBxrPLTby83s4Cqm1tlhrGElESZW751bwNP0rwnW8+jvlqn7dB4dfE4zGAbLeWhnmn94GBwbY0b2ygJ60AmJoXZHJkge4c0ApbantRBigVqClKkaJhQhJC8w8eOYrVVoDLm100vRjdKMFUabfQoq139Z+/so3PXtrEW09P7+nN9OxSE//l89dwbbsHzklVCgCbHYnNdoCnFut4/dHx7POVlKh7pFCbKNqag6N2yfQPok788DOr+JfvvHvXsQ25dtuFobxApShuqewSRUAmEtdqHhHG9Xc0vRj1bgQvFrjzUAlNP0LTi4fMYL/7LceRtw2cX2tnHoIm52ADmZyphciNRmotonQBvnOBTakKjskzU8n7j1RHKuwGERCmgLzD4ccUsm5whkiayNsmcpbSdi7AbCWHK1uExM9V8yOPMWfTxmK67GC9FeChI9UMZfAigfW2j/V2iLxFyujBe3lyqjhUMJKFB/FkD48RrcELE3xxoY7zq228/XXTGMvbYCra9Sx7UYK8ZaBasPGW01P4+Llhz631VoCnrzcQxCITxwDQhPAEj1+p4cE7KlhrBehFyb6qzX/5zruHit2UHmBySkMo5yx0g4Q2D5UcJvI2nrreRCK1KbIutLphgtVWgK+6a5pQlk9+EviZnwE+8hGgWKQN1f33wVl8cd/2N9do/o1asBc3+nQAat+RgKKSs7JipuUnaAcxNtvhK7Kn2E/Fen6VOgdzZXdkWH3anehFMRa3vSEvtlFpJWMDiuaWF8GPJb7tjXdkEX3AjUn8MxUXtW6I4xMFNP3oQB5mo1IASg7ZXqTim0ru/xDzdw3bNKAYI38jEAcKSiHe2XPTY9B4decYVRwN8rcGF3GlgDghJ+9tRUoZkilbCGKBrU6AoxN5XN7swuJA248pqsegxXkvPtdBx80UcoyR8eJ4wSRbhRt8OWMAh8JmJ8Cdh8oZl2CnSi7U2YVBTMauRZdMV7e6IaKBIngnBy4W/XbgKHDO1P18kzGsNQMIqSj7UPO26l6E3kofah8vOnj4+ATW2gG+803H8NmLm1QgQ7d70G//Dl63OyZyeN2hcgbR+7HAeNFGqBWxDGTuGCQSpiFRtMkp3LUN3DVTwompIu4/ArzjnkP43KUtvO9PXsJGO0JRRyZJjeTVexGQtqAYPbNphFU6X3GQ47yUxAtKA74HmY1pG4uDSNIlx4QfU8vR4NB+OAzzYzl85187jusND08vNvBfv7CIu2ZKMDQPrtGL8NJaW98nMt784f/5PP7ayUl871tPDEX1PHZpGxudUJPJI3AGTBYd2CZNfpO6wEo92d5wfBzr7QAvr3e07xjd+0MlF28+PYn7d4TBv5KolSyfse7hqesNbHYoAzZKJPxYwLEMHKrkcGWzA9fk2O6GWGsFmK1Q+/TqdhexJAR3vGDj9HRxyAxWKYUPP72Cy1td1LpRZs9S7w23vr2I/OeqOZt84vYYh8ouXJNimpQa2BgM0AUMxsA5cTRT1GInF2+wcJ0o2lisefBjoQ136e+bXoRDZXeI05RGshkcN1SdfsPZOXrPt3qYreRQyduwTeJGTpddfMtDh3fdy0HxRsuP8dtPLIIz4PShEhhjA/YeMa7VPCxsU8zaTMXN8h59fbwTBQeHyg4UsMtza70lsNL0IaREwTEwWXSQbpknixz1Xogwkbiw3kUQk1fijVSbO4Un6y0fT1ytE89vu5ct4O96cA4/96cXKBZMKTiWAYPxDLFPmCKz7F/9VeAf/7+IJ/O+91ExhoPF/ZycKmRiG6IsyCFyeXqPgIF2PGM4MVmEF7aygpZrsGBhq4cj47duT3GjjdK5lRYaXoTpkj3Qyu1/TyqQurrVQ5jIzIvNj8SeaSWpoCJvm7i23dv1Xh3EmHa8aOOf/s3T4IwNqTXz+j3YeS32SgGYKbvYbIcAFKaqu6kXe43XTBEGAEJn9pkG0NNmoXuVGfshQTt/Rw38IRtYvpVGS4oOPfxFbdKXTqo5y8B2N8R2J0QiFfK2ic1OBKQokf58A7fuGXbQAiwDaRWhJGWXAqdH1WEs+z+ySGgHQk8ufS7Bzon2Fz59CU9da2TEVds0UHZNbHfj7DMtg2mCOgV168MhbpIuVgYPxzZ5RhRPJBnBNnyC2l3LgGsZu/zD8o6JIBL4+Atr+Oyl7ezz+upL7OLhkXwDuFbvIW8bGffL5EAQJ5oDQCcRRAJPXmsgbxuZD1B2jTnDW05P4c8ubOJjL6zDj0nezgxOBqwDJGwpJbpBTG1MnUGpdB9ytuJQOHw72OX5lSKLSgESCo5UOHWoCMc0UNOeXZ0w2eVU/tDRMfzRc6vwY4miwdHoRXj6OhmaksqVZy3jz17cwsJ2F8cnC1iq+1lkUDlHVhgAIMFQ92KM58mA1bVMjOepTbPZCfHkQh0dHQ5/z2w5a91c0FYYpw+Vhia/2xG1krNNNLwY3YAUvBbnmCrZuGu2gl6YaHGHhJDACystrLZ8HCq5aPsJHNMgsQjJnzIlXZAoPH6lhtmqi+MTRRQdE5udAGFCCE8vTDJfrImCjUPlHBTUvu2eN52cxJHxHBa2e1mrPCW3c0bXtuCYSITCvXOlPVGLQVXhla0OJGiRIxSJfobyNgmhTjlN3ZBQwqmyMxSpk45Bvsw77jmE+bHcTbuhpwXj1S3KXJ2rEsJR64Z4dqmZ2XtUc+TDKKTA1a0e3nB8DLZpZLyetFWeojeDnlsvr3fwgT+7TBYxlqFjs2QWhVbO2eiFMaFDLoltUnRov2drsNi9/0g1838cRCCvbndxabOLnG3ohAqyA2J6HVBK4h3/5efAP/s/6Eu+7duAf/Wvhq7PjeJ+vuOvHcOvfu4qnrhapw6LVuuXcyaOTxRQ60XaxqU0VIiM6bzblBMZJRQ/dvdsGV9z78yBbC72e9722igdmyig7kXY6kQouQYaXqyRSWrh9sI44zvOay82MMr1PTFV2DOtBNibRH/Q7MqUR/y/nlu9odEvsHcKwNvunIL6Pz5ho0csJHwhwBkRu1MSu5Wq8fb4vfSWZcqkgT/nrN+WUxjtRWZwwNGO4GFCHCfToKgRKRVC7VbvmISeAKSCI8d9+rZbLcDS9iJAL0FmpDhicM2virXiCOgjQoxpdWnSd2Hn+jNtgwqStaYPw+BDXJfBiTYWCvcfGcN6288k5nHWtgE4I5QhZxnohTH8TjR0IikCkCJlnAEFh6MXJZAgkjHxxOiOpU77O/3Drm51yaQzTIYSAtLCRfOfs+uU/vPyZhcF28R0ycXcWA6LtR42WsGwwtEkN/kN7Sc06AM0eE2++aHDeOZ6E1e2eoiTCK7FsuSEdBiMZUHarmFAGgpxojBTdvHG45NYb3tYbwbZd3PWt/dI9EWSAHphgkubXcxVcliq+3tyXv7J20/tatm1gzjLAUwEKUwnChZqvQgXNrpYb9F5mgZDyaJi2NNecyYjTl/TjzFtMkRCwYspvQBMoemTUOHEZAEbnQCXNskuBAxYa/r4lc9cwX/8ew9m1++VRK0Mtkjumy/j+eUWGKP3PpFkybBY62UEdZNTq6/ei7TRroCpVcyDn59O4mEiMaed95Xm2tV7pHYuu2TDYZlGFl10o3bPYE5jN0wyJSzjgJTU/horWJgoOvuiFp0gQRCRcCZMJCYKNpoekZ8560eUNXoRporkK6bQd0x/14Nz+MUbEP5Tf7hbdUMfLK7r3RB/sVCntiBjiJIYlkFcyrtminh5vYvnllp4w7FxVPI2/Ejg8lZvF3cnnXc6QQIJsmVoDfDeGAjxK7m0oWIsFa/wXYt0J0jQ9mMIpfbk8Y3y+Lq40UE3SFC0DRg6w9fQqtFSEuBHf+dn8Nbzj9MPv/e9wHves4vwdqO4H4DU4lEiM9U2AGx3Qmy2Q9w1U9rTxiVt5bWDGFe3epiruii75i7By0GipEbdy1Ej75gYy9koOCZtBhjTKRCkjmRgiAWlkpyYKg5dj7JrkYvAHmklgyT6naKAG6mnv/mh+RumYYxSa+713APAC9fW8D++/0CX7bVThEWJxFTVQSIVEZmhWzyaXwOxuxBL3e5TwjiHyhbKnG3AMcn9ejC8u6+mA3KmAaUoUNuxDBRsAwosa+0oQO+wabEtuSYRZhm12eKbUFjsHAzAeMGCxTlqvQiuZQAm4EcJRtHghCTEyTZ5dh56A46CYxLK5JFqyDI4Sbn1ucVS4eKGQLVg4XeeuL7LOyp9OY9NFjBXdTO5dq0T4vmVFiyTQ2hj1FCHSg+if2nhNdiqVArY7sY08Sqg5UXgBse0NphMOQ9pK6jWi3BxvY1rdY8UiTxGNNDqTP+Zqg7Twjr1sTx7uIqHj4/hg09eh2saePBIFU8mdX2dJKSiTE0whkNlMo8d5bdzbqWFDz+zAs7Ie6wbJGgHaqi4BzDk10VGnAymwVDNmVhvB9Di0kyxmrarhBzmEnIGtHoxttoBOKdifxTn5cNPr+ANJ8ZxfrWNp643sd0NoaSCoZFJzon3wEAFmdCbCoUk48GVckAnjCFlH7lLZIL1lspcxRlnyFm02MVC4dmlVqbIJAUoPXd/en4Dv/7YVXzPW08COPiOdmdxs9MXqeyYmCgSl2ssb6EdJHhpvQ2DIfOdA6Nr7Vgmal1S9o4XjKEIm/S5bngRXIvD1tYFfTfuFvxIoRPGMAwOzhiujCgY9hqDOY1LdZ8SLSRxEI+M5/CmU1M3zN0ruSYkSG2Z3qOxAkMniBHEUnMR6ZiPThRgGRyXN7vZMd5M5t+tuqGnxfV6K8CF9TbZyJg8U0wH2s/QMo1M7LKm/QxvhLhRLi/Z1kiQspTea4U4lPB1e/joeB7HJgpYrBPqBwDLDR+LtS66QQI/lijnTHzwC4v4lq84MhQOvVfheV3fszAR5I+o3/djURs/+1//JV63fBGRYeH8T78fD/zYP97z+uy30P/UR89nMWcLtV62uU0jvg6V3UxIsxeqttEOUclZ6EUC51bbBy5A9ruX2UZJqV2h5eNF8jd7YqGe+YR5sYBjcFTyFlpBknmxDQ3GcHq6hC8u1rGw1cOpab6rmHr4+Bj+6NkVPHZpG5sdajUfRD19z2wZP/XR8wdSmY7aVI967o9PHvxdeM0UYXceKoI5DjY6gQ4i1kXGAJGLDXC6JFLSNZmxkikfKeE6vg6kzhPhPJX9p0WLwRkqronpSg7bnRCxkDhUcbDdCTOYPW9TKLhSQC8SGDMpOsLg0BPuKyODmZzBjyWYRQo7y2Ao2AZMTejuhRKxlEPomGMZOFR2EAtASKEjHWgh92OBas5Gw4sySb9UCgmQFQenpop4YaWFlebwizv4cg7uJos5U7vVU1Ha8lNfLDmE/pmcdsOxkEOh6hxAyTbQi8knzDIUJosOkaw15yFNBri40YYXJoAiTpStC+idfLPBf+cAHrpjDO979D6c0C/VEwt1vLDcgmtybGpzVZY2oRlxn954fBK9aLcP0CAic3gsj9PTRby42sRL6106F9dCmFD8UGrOmYoGGOg/Xl7vgvNehrqaBsvUoaPsTMq6vRIEEpYJCpHfwXnJ2wb+9/l1PL/SQhAJNLyI3L8BcM1nIfNPYKMTZryiXpggTKiwswwONRDplSo/paLQY6WgUQ06Tz9KIEAIdSwkDIMW3tSCI0gkfu2xBTx8YgJnD1cP1J7ZWdzs5Ys0WXDghQLtgNIjvDBBNWchTCSqOZLph4lEIoi/aWjlaTU3vLB0wwRBLDFbcTNrAgAYT9s9W11stAMs1j1MFOybDizemdOoFHDqUBFjeftASNOxiQJmKy4urHeQuoOk/nixkGj0YgBkFdH0YxgG23WMtzPzb69jPDlVwMdeWCcTZoZMYckYwIQE4wyb7QBnD1eHxC43OpY7xkhUkHJrGRtGulOB1Fw1l9l8PL/cRMtPsNEJIPTcyBngRxIfO7eOl9c7+Jdffw8A7GliCwCfvbCZUQsck7ZJYSzR7QaYaG2jka/gx979XvzId/2D7Bj3usajFvpB772ia2K8YO8qeOpelM0/exXU981XUOtFWG36N12AjLqX6UZpIrGHCsO0a5TG96Ut3EEOVtuPh7zYdg7XMnB8ooDjU30TXcfimK9Si/8/f+ZqRo2YKNi4c7oExzIOpJ6+Vb7p7RivmSLs4noHoRFnhp3QqJaQA6ZteqHP2yaE9gsSiqDQWBCcrRQy1/DD1Rz+P++6F5c3u/ivn1+k8OcwAQdxpQ5Xcpgs2HhuqYmXVttwTI5KjhbaTkImdYfHc3h6sYmWH2keicrakLcyDE6eREIIBLFALARsg2mVkkLJtTR5k0QJtW5IhHKNGJGqjtpH1ZwNoShX0jQAP6adYzdUEPpaWCbHTNnF3bNljGmzvJ0vbvpyPnm1hkSoTCVpUPQfNPiXKSYHT9/VaKQfiz7ig7RNytCLBPGmdEu31o1wdDyPM/MVXNnqYL1NpHL6Pg4FQkJjwciwNxbg+gPTIoaD/nuy5OA933DPkNomdV9+drmJKJGwDR0ErqGzRBDhtpyzhngko0irSil0QpF5SSkAEwUHnTBGGAuEyQBCxgDbMrQFisz8zFyNXPrRcPYnBz3X986VieO03IJlkhq3PADlN3oRrmx20Q4SnJggJNExObpBC4m22yjnbERCoqH9fbLP189MvRdhosAI9WEMEoTGifS+6pNIpMKEjiZ5aa1NxHOkBqS68GZMt6gZemGC//L5Rfy7b6nsG4s0qrhJC97RvkgCR8fz2O71+ZiJpAL+UNmFaxF6vKULTs5pg/CJ8xtwLCLrxoKoBEJqfteOyXu8YMPiJZRzFr77zcdw10z5loqXNKfxZke6qN83X8Fjl7bR8OJMpZxoUUclZ+H4VB5+JPFdbz6Ou2ZKI4/xdmX+jRqcMzxyYhIfeW5NdwSYFpawLPC+5BKlYLsbDYldbjSuNzzYBqUwpPNVep+UfkYZqBC7d66Cd56dxb//0wvYaPs0J4Ha6vR+SxgJw8vrHfy7j1+AbRFvcidytNzwkbPI8He27GrzZwWL0yZkqTiB7/m770WcL+LkG+/HicnigUPHB8eu1l/KU9RDSIWNTjjEkRxVUEul8N6PnL8tBQjnDN/04DyeXmzg8SvbmltMCGwvJKuajXaA82ttnJmv7Po8KdWQF9sotPvBO8bwE193F643PC2MCPD7Ty1p6kCUUSO6YZJ9TxojtZd6+nbwTV/JeM0UYUEi4Nocsd61k68ly+I1oBQEqB03VbLBGcNGhyTWm50AfiR2kdSfvt7AP//vz6GmXZtjQfYLhsnR9OPsIbhvvoInFmrwIoFAtzZTjxbbNOBoN3ehxJBaZOcYbDONGnmbo+hY8MIEoUZQpAC4SRw0P5aYLPLMhNSPBYqOBdMQGfrQCRO4poGJgoNjk3l0ggQvr7VRdkx4MeULFmwqBio5CyenizhczWWT26gXNw2M/ePnVrMcNdNk8GORtXoNDLRAB05USPLPkugrBA1dNHMGWIaBkkYo/EhgsxNoHycDZZfakUt1H65JnllENGeZKtM0iMdlmyy7f7bJMVly8M+/+nU4e7g6dI3vmS1juuzC3uxkGYwGJ+f+kkPO7wvbPdw5XRziKI10WQ6SzKk8zfzjOYbJooNYEFG11iPhgpO1aAjxck2GIFHoRQJHx3Jom+TqnT4fhGAyrLcCTJdzyDkG4oRCuLOhyFDViwUck2G56aO70ckEAkL27Rs6QZy1OmIhtDcSVdFeRN8tlIJpcDBGO9+0tZyiCbbBcddMGfNjOSzWe6h7fR5cquak71VQmud2ZauTRQddq5Ftwrc9fAcAoBeKkWjIYMG7ly9SrRfioSNVLGx7eHGNPO2iROHSJinlfC0wyFkGcpaB6bKLK1tdnQBBzuzlnIO2T5yaqaKD8QHXbaUoxuT+w1V87b2zr1oEzKgxuKgHEc0p3TBJHZnAGFDOmTg9XUS9F+Ps4Sq+9t69Y5QOMvYy5zwIgjZTcbO81dUmiRosgwQdJb2Id4MY6y0fj5yc3JdPN3gsTy824EXUeeBcZJwwgJ4t1+LgnKGmTVqfXWqi7JjY0kicrb2fFMiMUypKu/jiYh0nJgs4M1/ZrQBcbaHei/DQkTFMamXfux77EDZKE/jTu94MMIZz0ydwz1wZ3/PWE7fERQJunSO5s6B+bql52wqQcystfPjpFaw2fVLEM2SgxlTJwTEtFtivtTeEdpddnTwQo+HHmKvk8M0PzcM0OU5MFSGlwh8+u4KGF+NQxcVKM8ja7rbJ0fJjLGz38NAd1X2LyVfCN70d4zVThJmcSON526DAUgFEOoMvfZHSBWGq5ODNpybxK59dQK0X7YlMJRI4v9YBY+RcHgvaNcdSQSUSXSRY2O5hLE9cGjAKpc5ZBhgDelGCK5sdUEsAsHjfsHTUSBezUYeTkrMbXoR4R7UohIQX0+TUCWJYhpHJu6dLDi5tdsEZ4AiJ182UYHGOIBG4uN4hiFtI5B0T985V8IbjY3AtA7/9xHXcNVOCaeyWI+x8caNI4KPPrxICaStqaUqVye+JCE3kTG4QKd2xOEzO0fSjTESR+hk6lpGFbgN0XjPlnJ7wYzy33IRtcsxVXOQtkmuPa0WNZ0qEscjI5qYu5lzTACCRzxl4y+lJfM09M5it5nB5swOgv+BLRcf/yPEJPLtMLc+iY6BgExrCOZFNF+o9vOHYRLZgjHRZFsR3ccx+USh1H8/SLvoAFZ1SAWFCxY1jcZQcC90wRstPcL1BwdGDt52BnrW6F2tXdOJwDd4u8teh4irQ0U+pn1H6FEaCigmhVbOxIIiAM4acRUansZDkks7oKXVMA47FUc4xjOUtrLdCuCaD0CgyYwxHxvJYbvgDx8t0+4YQUgbtaSYUnl1q4refWByJFIzanQ8WvPv6IulMxumSg6W6T/YMloFOQC1Speh9dEyOtaaPnMnBOUfJtXBmroxyzkKjF+HJhTqeXWriDcfGkdMK6P3MHm809mtN3WiM8mkio2JSo7oaGeoECZ5dauHEVOGWLQkGv3MnkjOWJ9Vbw4tuiO6UdDut6lqYLedwQW8EUuQu0Ju/g1zPwWNpeTFWWz4SQe0pw0jnDOJnUYuQqB8XNzq4vNmFa1H3Iy3AAI2IGeS959gM7ZDyOLsD7b+SQ/PMWM7Spr8Kky7Hz37mV/E3PvU/4ZsOLs2dxubUHAzG8B2PHHtFXKRb5UjuHLerAEmfu9WWDwUqrIVGXE3dDRnXljX7IWsp2j1o9pxekxOTw+cy+J6nqHTfeyx9z+MsqH6vYvJ2XctbHa+ZIizvmNS6AvGLlNKLoFYepcR0i3N0g4QKAqYyBdHgGESk0tZYy48zCJsxhUQQZ2qz7WO7w4YMN20tcy+7PCuauG7L3chTYq9OpVTYFb+U8iq4ziUkLhxweiqPMc2dUiCIeLVJi8ZWJ0StG5GrulZRjRdtTBVtrLcDPHa5hkcfmkc1byHQdgY7x+CL+0fPruDnP3UJizVvKG6n6FJgMPHAFCIh4ZgGKjkTBqciJEokWj5x2CwDiEW/66OQTowSXgSsNCn7suxauHu2BMc0sNUJcXW7lznrW5pcHguZkc0TIZGzDYwXLOQdC6+/YwwtP8YHn1xEw4vR8EilOZazMV60UclZWG36WGPE3YsSiVos0LMSlHMWOGPohAkmpYNjEzk8t9xEJWeh4BhDk51SKssotE0DkUgyn5wUqWzrCcPs+4dAafQWDFkxAQXsnFrSNmAsBPxIQoHUWV9abOLOaUIn11s+mn5EKLCimCLLNPotRJUglmlkksquvcXpOar3iJResA20/CRT3Q35LeUtPKUa2OqEGXcMoALR5Czzoks5kKm7vNCcw1hIfOipZWrvHBApGCp42Y19kQo2FWlKo6mUotAXSUgA3TCBxTkqea7VaNSGHi86N00Yz97ZEcXW+bX2TbemBj9vlE9T3iY0L4wFYqXgDKLtr4x6OrLoW28F+OzFbQDA2cMVHJss7HvPhhbBKVroFus9nZRB6O3R8Ty+/Y1Hh+wTgGGkrRsm+MVPX86OZbbsotYjW5aaF2Gy6GTZfgCZGJccK7NJCGOZ+drtHEyj0ELzNFcbPlYawVCQ+InJIoq6JZg0WvjWX3sPzjz/eUjG8J//xruxOTkH1zIwVXRw/5HqbfG+uxmO5KhxOwqQweduruxioxXqYoghbxOfeGG7i7GbiEXyowTjeRsnJ4souiYMxrDaDPDzn7qUPT+D77lUapf3mMlZFqruY+9i8nZdy1sdr5kizDI4cq5FE7FpZDyhwYJK6ELmpfUOLm12hxRq6UgLm0GlnlT94iglYwLkth7syB7a7pLr83jBRtEhgnjbj8nlXO5tlXEzI+XrkCcQBV0HIo33SfDscgvVvI1jkwWM523KLjQ56l4M5pEaLAXkhFLYbIcIYoGqS8q86IsSEwULS3UvM1hMx+CL+9xyE//moy+hqwnQaatRKspI5Dn6PYNDt8qkLsBooY71QTBGfy/1BRaSWnhpVmWUyKw9OVlwMJa3EQuFimtiQUiYBkMvjFHN24TQ6PYakcIVLEnFTRAn+PCzK5Ca55O2GxmABiJMFB28tNbG9Tq1O8fyNlyLo+UnCBKBoB2CcTIEXmp4+Pd/ejEzmXzDsTGM5S2sNDy4toGluodeSO1IQi5V5kXV0dcrfecTSWgZ11LNKJFkgaALo6JjoKetIfRHQSpSxZkGIbAG4zg5VcByw8fnr9YG7leqAlWwbTMrPBij4lDGAjmb0J9uQK3ckmtBKoWWn8CPk6z4t0wGroUsxyYKGfn/2EQea60ASCR6YYyCbWCtFQyJT9LnXmlVpWWQ3CFMKIh88DkbRAo+9NQyXIsPtSZ37u7HCjbunS/j4noH7SAhR3sG3DNXwVffM40PPnkdZw9XsN4OsFjzMoFNejHS51ApWjzytjFk8jxTcW+KMA7sjR5tdkIkQu1bcO7V+vvcpS08c72BsfxAGLFuOafohB9JvO5QCdW8nVlmHJR4vXPsxXNcb/swDfr3jXaI+WpuX3QnXQRfWmvj0xe2tIluojfAVNT7icCvfPYqLO2gvhNpsw2GtTY9U3fPlVHQRshn5ipoejH8mFrm0yU3c9pP1fHTZQenpguEvjOmW+4SBu8XZCkKH8QkS+7pHMvBIHEvbOH4VB4ngxp+/H3vwYm1qwgsBz/9934cnz/7NuQ1r9LghKIptU+QOG7cCrwZjuRe43YUIIPFpNJedFvdSCuk6R1fbgSYLvsY03PwXsha+kw1vHio3QtgKL3gntny0Htecs0M8S67hHinVBHTYDcsJm/HtbzV8ZopwmgQROlp/pb+o8wrTKi+8eooBEz/1VABdisjFgpb7RCiSIVHyhDlN2R9HWxQsdIPDx7MZEzbPOvtAJudEGN5C4+cmMBk0cFzy030QjlkAJq2wlo+OVUDwGrTRzVnw9a8rpNTpV0v7jc+MIsf/4MX4EcCEyUb250ICeiYiIyv0PTiYf81Sdl81bwFIYizZnDdNgY0IsYRaSRLaG4SM9I2Fqnanlps0gQAUg0yxeBqq45EUJB6LPrnGQuFrU6YkfKrOQub3RBSUqvKNsn0db3tk5pWIzR0PITo9cIE290Q0C3OUMvihUzQ0XyW8aKNRi8i9ArQBosDqQiJQJmZmB8jG49elGSFVZhQTIltcFhaUBCLdNfHwDmHyQAThO6lxrZCEN+Na9VtEAttjcIxnrew3YsQJXQMcSJh92E3ikSxDP28kwXHdNkGY/2fSaQkR3LbwMMnxnFutYNaN8KXrjdwarIAoYDrdVJzMgDPLrfAWUt7gjGYUEOWKQrI0A/XNuFaRmbkOTjStuL/Pr+OF1ZaGQJ1arqIb3pwfmh33/SIG+Lr1lMiJWaqLt79yB1U6Gn7lJJrYqsTZgkGTH+P1O+kApG4LZPDNBjafr+Qdyx+YML4KPTICxM8cbWOKJEjsyvTxUcphT94ZmVk6+963cPlzR4KToCVpoXjk0VYBkPbp3aMwRkYUyg4Jso6vueVKL/24jmm3wcgaweV9MK47/cp8pajJAiAc7LCiRKB9VYAL5I4e7iCMJZDSFslb+Gl1TbW2j44o3i0iaKN45NFjBcd3H+4imeWGvBjiVo3ok2fJP5nnJBD++8+eR1jeRsrDQ+TRQqUD2NByDCoawJts2KZVBianNBQyyB+bNOLYHzpKfyX//aTKLdq2CqO4Se+82dw+Y67ITQHt5K3UHQM/OEzq/j7Dx95xa3A26FefaUFyCAi1fKirH3smhxMo+aUTNDGVMnZZWI9OK5ud/HCcgs53e4lVbZuC+94foZQvOliZg3TDmLkbZqTy66NjXZ4oGLy1VYC7zVeY0UY9AKZoBcRH8c1OSLR98QaRMX2G6NijfaLOto5Uv+ew9UcALbLPPSVjrQtlAg1lFmnQKpHhdRigF6O7V60yxrDYMh2t/S7GhzQba5IMAARHNPLdqjpi1vrhlhtBWQHoTloKkHmA5Jea84BpduMUtIL3QsTMEaFQ9am0jwkgzE4BkekJBKlY3w0OhMmEr0oGciWIxsBPxKYKTnotYMsuDhDO4CMjN/yYpgGQyRkhsg0/QTTJTJ9rfciQAHVvI12kKDpxSi6FoyBDEcFKjDTa8X0fze8GC2ffM36CJfKgsltnfe43SH1nq0d6qs5Qm+FIpQoUOT0nm4SLN1qThKJGMjMdNMhAQQJwWNXtz0ApPhSCjC4gZJjoZZQy5U8mRS4/nyDkzM72X8ABVcvNJwQyJ7OCnRMDsci7tHJyQLOr7XQ9CI8dT3Wx8hw90wZJ6eL2OqEeG65CQYF1+IIYomcSYVjIgeeMQCVnImCJsHvHPVehMtbHbT9BCcnOWar+SHU6J1nZ7HS8PH8chP1bqRjhwwYBkPJsuAYHB/4syt49KH5bCFMhMqUsUoOX8fU3FQBiGOJS+sddEJy2A8TicNj+cx/cL+xV8tQ6WecMezKrkwXn2euN3Bho40wliNbf6emi5lohlSgLdwxlsu4Mlk00QCFYBTaclBO2l48x0FuTjeR2O6EAICSY+75fR96ehmxIENZhQg5i+aMlhfBi6XeKEssbneReuYppbBY85BIiV4oYGhlbZSI7PzPzFdwdLKAgmPg6etNFBwTTS8CAzBddnFqugjXNHBupQ2TU0eg6JgouRZ6UZJxjQxGVi4AcHKqiI1OqBd7M/MiVAr46+c+i3KrhoX5k/jR/+fP4HphEiJIssSEY5NF2AbHJc01vdVW4CvhDY4ar6QASREpL0ywUOuRXY2mVHDOMqPtbpggZ5t414N978TB81hvBfjIcyu4uNHJVK3lHAWjWwZHnEhwzrJkllEo3j1zZVze6KDWi8A5QzVv3TQy+Gopgfcar5kirBNEKNs5HU/SR4b8WOJWSp/b0TYUEqj1IpyYLODF1fYtO+OPGkpzi4R+AVLUhwFZHJFUAIsl2tovyzIYLJMhTEniClkBlg69OUXBtRAntGM9PlXAu994FBVtP8A5w+9/aQmJUHByPGthUfyIPr7sOFOSLLICCQywDUJ3PEHH5mh7BiG1HxtncDk5P4/nLFJ/KpVB0QApJysuObwvNTzkLAOVko1GL9YRNPRlCtQ6TpGpWjfK2pBelGCzo1DJWSTQUKkIQ6GoW5ZRIhEmFJzt6fYz1wUstbUo31EoQAmF6bKDbiSAmFRgtGiR43WoFVyJEMhbHOWcDdvkaHhx5kWnpETeNhAkWl2qBQ4ZSnuDBzpRgBQSXhRjZ6S0nygYTCBnm6jkiGSes0h1W3SAixshYpEMfUXBJAy31g2xVPdpwcnbaAUxTM7hWhwbnRBTZRcFx4SjkwVirYJTCnAsE7ZSGlkDqjmTArYZ24UUKKWwsE3Kv4JtoJKnLLpB1Oi5pRb+8V8/iR//8Ata/UlFbboQjuUtXN7s4omrdZycKuDcShuHyk52z9K2ebYBUcPmuVu9iGxflELeMgAo/MKnL9/Q2HIvHhAVL/QMpOhRGskVC3o2lxseSq6Fk1MF7fw+3PprBzEqeUu3ZEy0gwTrnRCc6cSQWOxy/d+JthzULiHNnYyEwFYnzK6dZRCh3YsS9EKBUFCA9LWah3LOxEzZ3YXupNeknLOx0gwyG51YSMRSb1AkUDQ46r0440MqRQi2qz8v1M7xiQSqlgE/FllkmWuZuHumhJxjYLnu4/hkHtBdAakUTk4VcGWrh/lqDnfPlPH5K9vw6omOM6MN7XjBBuMMpw6VMFV2db5lkm1YJooOPvTN34evOHsMP3v6HTg6P4WpSOzKdKRUDSocb6UVeCuWFgcZt1qApIjUFxfqmedXmNCcFWlPwVT8lLN55uw/eB71XoT1VgAFKtxSAc9mJ8Rq04djUmC8Am2Y11sB7j+yG8ULY4n5sRweOjqON52awAM7ckv/Ko7XTBG23Y3RiD0iqnOd9Yf916ubaQ6Oiiw6yEiz2zi7Mfp2M0MoZF5Sg2On+FIN/JPaW7v/bujnNTfCYIDtWPCiBIvbPbR9yjlMYeKpkgPTIE5PztbK1NCAFw77Wdm6LbbVITJnziLfqwcOl9EKpM7PI16XY3JEgmXZlienCmQZ4Bh4erGBan5n7hsVoeMFCw0d19IJBOV0Whw520TbjwklEBKK6X+qAe4fqJ1b60VwTVJlhhr9OT5ZQCIo2mSp4QGKVKgMhM6NqockaKdObUKeFX69iAo5qfvhBmfIaV5D0bVQ1BYhqcz+vtkS/uJ6M5OC3+g53nk/pQJqvRg7pyaKkKJil5AdhgcPV7DU8HFN86UskyFJ+vzFdpDANhgWax4iIVHN23Scfoyia6Jgm1mG5x3jeQhJ1g9+LDCet7XAIUVsGSwDODFF3mzTZQdrLX8IKUijZBSASt6CUgr1bpip1NKWRdOfxLjOa0zVpulCCFAr7vJWF9/+8FGsNgNstENYZh/VSK8Xpw569n4KkOJYmhyTRRfHJwuo6qLuRvyqvTyJ0uIF0BuBToiLG51skQ8SkSHXHY2suBapHAt6UWv7CU5PFzMjWtsgvqnBqEAe0wVohr7tQFtGtUlHcdKyxXOji7VWgKtbPcyUXRyfouKWFkkfQlIebjVPG5iaDkZ/8EiVzLI1UpJeEyfHh1A0qTlFJueUuwhCj8GQiTpiKVE2TNgmh21ShBoDzVOZCjaIsdkOcXQij412gKmSi8tbvaECigrEHOpehK89M4OLGx1SGOdtFB0TUgGbbR/r7RDrLR/zY3mM5cfgdX285U9+F5/7ur8PaVpoBTFqP/DPoR5bQBDLrO07OAYL3xNTRSoinlrGCysteLFA3jJw33xlV/IIMLqVfSvu9rdzpP5gTy020PIT5G2pI/j6RtupGGmjTdmgXiT651F2sdbys/zeOJHoqAQFx8g2uQwMk0WbBHBC4fefWsL8WA5n5itfljbi7UYeB8drpggD+kjBkTHK0bsRmsV1ZSUOAHtJkNfVzQ7X5Kh1w9uCrO0cN1vTKQCJuHHxaXIOQxP+k4QKpfd/8hJs3ZI8NV3Eu+6fw1zFxfWaB9fkSPSkGCVkD6JAXLwJnbOXquTaIRHMv7DQgGsaCLWNg4TCqek8JgpOtth29U77jScm8Mz1BgkcLNp1MpAqh2tkQ8q+OSNj6U5rx/nLvnqT6/Yo4/0JHxYhNCvNAI5l4MJ6B0QVIaVjIvtCgtTBfvA+pNc1SpRG9KjoSxf3lKfIGZm++hBQKsRkiYJs87YJ1yLfnOVWiILFdVG2/32l67f3PU95eYM/T8cicXa+gn/y9lP47t/6EhJBxWcs1K6HJBYK270Q43kHAMvI7JbBh2whIqG0I7qONRJKq9PoeqfxRgXHRCIl3nnfLD74xCKeW2pippLDRMHCeitAy0+onRmJjAOYLqZHxwsIY4mtTogoUZirOlmBMzjS1thMxc120+RHFWqxApkRU1QTKSZTcUjqDXdsMp9FrByEXzXYuqGNDz2vqZVG2rq7qj3R8rYJISUaHhG5IyFRcqkFVutFCLQFQMEx4UsymD4zX8FLa21sdoJ+zBhow+dHAiKndqEtAEa2SXdy0oSU+NmPX0C9F2GmksPZuQqFnTd9tIIE982X6ZnO2tmGfuYFerrle261jff+r/M4dYjQm/SapAHUqcItXeRiKTM1OwnL6WdScYRlEuOw5FqIkjBDt0zGhlSwbz41iV/73AIaPsWv9WkLRKzvhgnGcjY++sIawkTigTvGhjZ10yUbW90tXFjvkP1Nr4Pv+Xc/hJMvfhHHtq7j337Lj+Ds4SredHLyhqajO9uMxGClZ0vp/9459mpl34q7/e0caRRbyrdtePSu2CaDaxsouRYc00AsBJpejMcubeOF5VZ2Ht0wQTcQmSWJkJQyU+sRPcbWFJGWHyPnmDgzW97lN/ZqthFfLeQxHa+ZImzwkdzqBNRWOwAath8Jf2exInFzvDAGaj80/ehAhd6tjptB9G50GKRcowKsE8ToRuTIP5Y3MVXK7eLl/NrnFrDU8MFSNEH0jyVVhvqaLK4jKSEVIXa9SMC1aHccxgLX6z4miy5KrjU0mR2dyMM2ODphgq7m5RiMI+8YSJTUajjieyhJasqtTgTLINJoJCgxgHEGriEQzgGpuUExU6QyVGRoK5TS8VMGXJuc3cO4b+abFjRp0TeINgJEkCcRyO67okCIS7rr74UCQhK3ztU2A2EiMetSjFYnFFkB+0ruaXqcBmPIOaSSzFkGvuvNJ9D2Schiah+7lLe189wSQVmJDBLdUICDECNozyWhJ1TH5FhrE1LS8mN4UQJbc3GCWKDomNjs+Dg5VcSTCzX0wgSbHVIuCm2YGQsStaRxWiXXzBbTthdjtprDVMk5MPH5xFQR98yW8ZmLm/jB//4cPC2KkAqAogwANnC/LP28vbhChsyp/H69JfDyemfPHfOxiQLG8haeuFrXKCiy4nEib2OjFSDSk0HaAq/1ogwhTEUyBgeimFDdrW6IbpjAtQxYmgeaSCq+HNPA2cMVKKVwYaOLF1dbqHVDjBeHY5T2jW4BUHINfOqldXz0hVX0AkrOSGOgTkwVsdUNsN4O8cz1BoSk3ELLIOf4phdRsDujVj5nxOkajJM5NV3E80tNlF0TdY8UbkJSMRdLQkgafoy8ZaCSN+FFCRJdwKaHm3ITHVAx3/YTSCjcM1fBd77pGFyLo+FT4VrN2wO0BULWm16ELRHqKJzdYhDOyWz4xdUWas+fxw/+2o/j0NoiAjePP737zVlBa5r8wG3GQWRrbuDnzq20sdq8NIRsvRJLi1drDB7/yckCemGM5Yav1epkCeSYBpQiz7CJooNrtR64Pl7GaMOWIqCMMZRzNtpeBCFUZqskFaW93DVbxnjBvqHf2KtxfhnyGCb44rU6zq+28V1vOoZ33PPKjI5fM0WYY3EkmpAcxKQYkxqt2KtIuVFhxBktcIOIx82gTwpA3YtftQIsPa/b2OXUBHqF7U6AjrYmUAbDSjOAbRoUEpy3MjXaZEHnBCqtBBz4HM6QOZMb+mDTa0nWqbT7NQ2u75vAla0u7uIlrLUDjBds3H+kgj94eiXjo5iauBkJidDrX1gG6Ky8/vWQihzgg1hp3zDavUMpSEkFiWHQZGJr7pZlcBwey8PgQL0Xo+ElEJI8y2Qy3P7d69oPih0GxyAqle6KhQK8WCAQEiYDDM5xbKKA73vbSfynT12CVOSen2gUabCNdtCRfm/FNQEwnJgsYLrkoN6LMVNxcWmjAwWgmrNR60V7Im9KAV4o0NNoJgBsdkK4QYKcRehpEEt4UQIhqLBNi7NemGhrDso8bfkxat2ISPkKUKDdsFQKzGSZjxxXDO2AWsqOZaDsmthsh4gSiUeOTxwYkUjbDbVuRPYkOqaMKZl5Qw1er3aQEMIrlTZkJoRupeXjNx5bGFJrDu6Yz6+1sdkJtdcYMn7MdifEZjvEdNnNkg+6ISVZcMZQLVjwEwEvEvCiBKZBVi5CEc/Sj0S2oC3Ueghikfm1zVVpsZuv5nBurY0TEwX8wN88neWhXt3q4unFBlpejNk0ZFLf0OWGj0ubXdR6AfSrmkVsldxUACBwZq6Mw2N5rDR8gAEP6LzPth/h2aWmRjxN2KaBjm6VDsbJfNOD81hp+FoRTbms6bwB6GJYK4m7IbXlDV3UeZFAzqK5pGibuHe+DJMzXN3q4Z65Mv7tN98H0+SZ8bICdqHgaUtfKeIq7hSDKEW0A9tkeMv6y/iZ//oeFLotbI8dwn/4gX8P9/UP4Qd2ZG7eSHF4s8jWX3a8zs4x6vjnqjmstUIw0L1qBwkqjFT0jmXg1HQxe0bSa2zpTVqKgBpaoeKYXKObAnGicHgsB1MT/b8c5zrq/Bo6XaHlxbgWeXjvH5/HF67W8C2vP3LLqNhrpghLR0q4pVBRhmQPqOsg6JHcZ8E7KPr0SnIibzRejU82BgonBSLQV3J2RqBM43cSoXBlqwvH5DgynofBGTbaobY9IE+yIJaI0zbhQPFhMOIZIFMPMriOof1eAhic4d65Mv7BI0fxh8+uoqF3Yc8sNSmtYMQ95UC/ANTHTtmGhM5IpZAQaINyzkLZtXGo7GCiSK2mth+j4cVwLI65Sh5RItAOmnBMSmFwLU75Zf6NJ4WCbaCts9R2DqX6aGr69wZn2eTjWBzf89bjeMfdh/Cbn1/Q7bs+SrPXc2fyfmj9qGFp/l4sSHFW70UYyxPClPH7RB8F49rVnq4jfehg29U0GISgibgXUfFQcAxc3uzAjwTGCzZytomeRi/TsGTTAA6PueiFAo1ehKYXk4u5pEXXMY1MvGDqgjmRIFK6fjaLLvGSllv+gRCJQYPUtZZPBGGmKINVL8qDz1FatIbatHW7G2Kp4eHcCuXDzpbdzDl/kKtzz2wZH3p6GYlQePj4+FDAcdoynK24qOYsTJYcSKnQixJcWO8g75gwDfJDSxW1nJNamKxf6B16eaONXkjtINc2hjhgjHMcnyii4UfgjA2dd9OLsdTw0A5i3DVTBgC8tNbGWssfibT6sciCksNE4Fqth7OHq9juUr7oWssHwLDU8LDdpaDwWk/B4AmZ9pp8CL0pOmZWtDx+aQtb7SDrLJhGmqZAogilFA6VXdw7X8Zy3cfCdg/NJMZkwcGp6SJsw8Bay8eR8Ty+803HYWrblV4oMJa3wVSUGff2szQT5C0DeceEYQyLQeq9KCPhv+OpP8W/+qP/AEskaJ15ABu/9Xv4h3fMj+QI3YirdLPI1u2O13mlPKdRxz9RdDKPxUgj1bbBMVHsK0NzNtl+pOdRcsyhVIuMF6g5um29Obu40YHBecbfu9G5vpIorez8NroouSYaPUJzr253EepWtm1SpvGXrjWw2gyGfPwWtrsHvo6vmSIsiGXG8QJIIWZyQhGiAZKxrd3VyzlS8+00Wx0cexU5unMFAHsS7o09/vyv+hi8HAy0eCsorRAUYKCdDOdAnBCStd4KNfeFchHJSBaZG3060ms1OCFJRW3Lu2ZKWGn68LXaaL3l4xf/7DIWax7mKi5WmwEt1nr3zAbuAQNxuyD7BqgpYsS19Nzg1FYkdK06pLJMCaXHJ4vYaAdwLY4LG20IqbI4JABD0v/9RqhhdoORX9HgGETPUsQBoIJxrppD3jbwZy9v4dmlJtperNupKvt5zsksduejJQb+zADADfKlS2Tqj5d6HlFhvd0JtXFsjEMVBwXbxFrTz9rG2T0aKHjT4pHakMPHoECTbhBLTJcd3DdfxViechxfWG6i5dPirBSd58trHe1tJnWBTrmUVJACYULFqcUZgkRmGZxTJQdHJwpoeTE6QYL7j1T3RSQADBGEV5seOAeEZJCKVKixjsJQugI1GNMWH7RIdAKBF1fbAIAHjlRR1By3nYiG+zDvxynpqJ7OQPQNU8BaO6BilHMU8yZMnxDEVO7PGV1/IYFIJMRbBB1LLCQ22yEMzjFbcXFisgCTM9S6YSZKSBGE55aa+JNz61mbZabsohvE2OqEeCqsgzFCMUZtEpmu9GNBFjCVnIWWTxFt290AQgKLmtOW3vv03gZ6A5fyuQYRjfuPVHHnVBHfudbG9bqfZXSm/NNYSnT8BEXXxFw1h3/6VafBGcNzS008dmkbm50QLT9GkIiRtgRpPNJEgdI/2n4CP1U2FhwcKjtQCpgqO7he83DKKaLhxTi30kKYCMzEXfzIxz4ASyT4woN/Hb/zfT+FfzQzM9QOG7XwpzmH12o9vLDSyv58P2RLaaVwrRvh5fUOjk0Ubmu8zivlOSWJxGcubGKl4YEp2lgyTu3HiSLxfCt54u2+bqaEI+N5AMDlzS7O6s9/YaV/HmmqRdOLoBQwXrDhRQIbbdp0VwsW8nafcrDZDvG2O6f2PNfRZsg2ALILOsg5P7vUxMXNDqBoHepFpJadLDiZUTiLJWYrLuqao5b6+J1f3LjhNUzHa6YI2znShSLFLXg6uTJifwSxQLhPAbbfGCyu5B7tzlEF2M3wyf4yh8HJv6obkmForRtRAQCKZ7IHfKyEJD8yBYod2uyERFyXKlOoErLCUHZNnXOowHQLiDNgpuxiqe6jFxEX5VDZxWrTx2YnRJBIbLQCxJqUbHJqSwqpMsuLtMWXIm6OaWR8k7OHKxjTFgeLtR5KrkULGeO7UJOvPzuLDz65iO1ulBlSphNhmIh9ofEUQaFWiEJZ51C2/GTPYl4q4mVV8+TVdajkQCjgc5e3MZa3SF2G/jOTWiqkqNdQVvfAcXCDoZLlYBL3ietC2jYNBIlEJU/+Zz/435+DHyeo9+LsexIJcKa0ihJD1xjASKsVxyQzWQGasMe0kpWBIRbI3MfThcnTGyAFZBshaUjYoKIE0L5eWnih0FfTpRNsukveC5EAMJTd1w0T9EKJsbyDdhAjSiSCiJQqLH1QQQkFsVBZYSskFfP3zpeHQryBYUTj4kZ3eNHV1i3pSNH5QUXooBO4rTmMrkkInRJ0L3O6DdvVJtSTBRszZXcIaRtUANomw2OXtne1we6cKSMSTWy2QwzW2On11cAjteo1fzOMJZRLz//L623kbRN3ThfxzFITkVY0EseRUENbG91e3Ojg9DQVY9R2MnFupYXffGwBz620NDpFaBsZvXLYBqfsX80R7AQJHrxjDCemivjGB+ZH3t+rW93sz+4Yy2dFzENHquhqnzvL5CjaBi5vEZr3rgfn8IufvoxLGx3UexHCRCBnGVhHEe/5tp/E126ex2ff/QNY3/aG2oU7g9MlCNm8/3AFK00fV7Z6Q3/+hmNjZHi9A9lKkbd6jwQEv/HYAv5ioYZHTkzi7Hwly7m81XidV6qw/KNnV/DLn7mCxZoHPxa4XvdQdC3cM1vG0YlCVlD1wgQmZyjnLPTC/jE++vrDkIryOlPBzWTRxompAl5e72juKEdLxDAMjpzFh+KkRnU6bnR+6y0fn724BQBUqN4gSuvcSgsfemqZ7o1jwuYMnUBpClGE8YJNG2nOYJsGZivmkI/fhLtbFbvXeM0WYZbJaQJB3wiUMcA0DNw5XcSV7R7ULRZhg+NmwK7/fwHGcpahScOgeBFB1VL6coTaGwYYRnakIn4TA+Vn2iYhMYkElFAwOOUQerEAZwqxAAq2SfmHMcnyC7aJa9s9REKinDMRdSKtTCSitlTU0trJ+QD66JjSnC+Tc1RzFiaKDrpBgomig29/+CieWKiNRE3umS3jiYUanrhSg5ASpo41UUqi2aM2zF6FdPpnnJGSsGADze7+rUsFIFGULJBI4OJml5zyE5kZ8JoGG4rXSvkuBmNgikwmZyoOaj0qKqRUWskYD31XoL3hRESKJNc0UO9G6GkvrmrOxHY3GuLopCaMqZhivyGkgmSkBm5olKqcs4bMPVMz0VhSVFGqVFUDnxEqqSONqJXPNGeQK4W8Y6LhxdjqNHftkkepp3aS0VOCcMmlNlXTj+FHST/aSRe3fiyz6kRB6Y2Bg5lKbuS5p2gPoA7UTvqGs3PZYj5byRGy5ydoepHOmJVauctgcorhcixDh8fHSJTCCystmAbbpQDcbId4/dExbHbCXW2w8YKNE1PFLFkifZ8Njv690D5XMnsOyAm+FyZwTAMPHqnC1NxMrlWMCoTWWpze50hIrDQDNHt0rEfGKGP1T15Yx1Ldg8E4TIMK0jCWiEWkPfREZlkQCYXffmIRlsFxZr6y6/7uhfQ8cKRK7emtHmYrOVTyNvxI4PJWLytiUj7Xbzy+gPq1FdzTXMfFY/diouAgfNvfwGcLXwNgWA07aLmQt000fcqdfWmthf/94jpKjka/wgQNL8KF9Q4+f6WGii6wzx6ugjHi2KXIm5DUds1bBj72wjo+8twaZioubIMjTASWG7tNsm8lX1RpRfJYnnJxP/TU8p4Kyz96dgX/+n+9qIO1VcZbbXkxvrTYAAAcnSjg3rkynllqwtSoumsbQ+jzh59ZgRcJ1L0Ia+0AjsExV83hnffN4o0nxiEU8BuPLSBnc2y0wyHUcrLo4lDZQd2Lhoj5UlJE1y9/5gpWWz7OzJbBtLHlejvIEPyNto+5qrsn9y69RkEsMFN2UfciONqEytb+dW0/gm0ame+ekCrLX77/SBWR39v3PgyO12QRZjIqJCJdhClFlgJ6vw0hFWYrLjrBwfu6QD/i51aLqf1+z8BohOEvY5icI0pUFgoMqKF21177MAVtmM9oB1xwTJQtA9vdUKu+IuRMA0Iocn/Xv7PU8GFw2i0rRWHfZa2QtEyyKVDoh1jvbKEMLuZS9f3TFICLGx1wRnL/s4ereMc9h/COew7tyRt49KHDuLjewUrThxWT4qvhxZoYvfucd6KgUgFSEAIm97lW6e/G2gk/bxso2Aa6Abnnd4MEVa00y9kcUdLP+1SK3OgN3ie1U0tL7FssMaRh4Qp1j3bhnAMFzUeyTQEogTChotJM1az7nEN/KChFZ0u+YAKAlfljJZJaiuN5Gx0/7hOlkYo4aHKUUIiSfuZr6szt6hiZKDn427ezHTRIEHYsA5MGQ71Hk3salaWgkyR0ixAKUBp1XWt6qOTtoagVoF9cnZ4qYbro4PxaGyemCii7VvZzg+2kd9xzCPNjuaEiYq7iomlxrLYo9YEB4AqwDehWqVafFRx0gghCKRg7LkVaVMWCitxRSQR5y0DBMhAb5LEXJeRWH0ulkTrVt3BRVBh7YQLL4HjgSBXjRQcLW134MbmbuwaHkGRLI5RCQxeSnDFIUFGmlML7P3ERRcfEiakC6j06/kTnvqZZqaSeo9+t5iwsbvfw85+6hO9/+ykUtLHtqCDvnUjPO8/O4tml5r4RPWfmK/iecR9jv/HPUAp6+Ll//Zvw7zg1dF/T4rrlx/hfz62i3oswUbBxbrWdqafDWCCUEt0owfm1NlxtwFx2kaVodIMEzy83cWKyiKtbXfhRAsbo2kwVHVzZ7mXWLVEicWKigNWWD9cy8OjrDw8Zkt6I57WTxzXId0uj3v73+XW88cQ4vubM7NCzkSQS//GTF9HW6lzbJDQ91Ju7KJF4frmJ8TwJeB44UsWjD81jptLPUz2/1s6K1cNjeZyeLmKrSyHrecfANz80j/sOV/HcUlMrKPM4XM0Pte1LjgmhgGvbdJ5SKnzi/AY+8vwqFrZ7WKp7sE2y7zkxWdQRY0kW3t7yk2wTOIp7l16juWoekZDorbRoMwbadHDO4EcSOdvMOJfb3RChILubnfy+G43XZBEmFE3AGTox4AcWCYXza+0sif2gw0x5MlK9Klwvzg/mV/blGJ2AEAIwMvXcebpp64Yzal3suhwKUFodU7DNLFooTBTCJMk+w7WouIiEAmdkedABUNbEz05IbuI3uiyDpH/99QBoAVlp+Nhshzg5XcTDx8cB7O8cfWa+gh/9urvwYx96HtdqHmJNEid0T/uJjWgD7hyx6PuW7fUzWQuRkYouRZw4p3MKtMKO2rYMnBFCIUHPcY4DfiLBggRSE9sZhgUQAxGqmcu/VIS2DG5QXE6IiB/RDzNFbcmDviZCAq5FKQgMwForgGuZxPuxOLY6ISo5C4fKLs6vUYRMhH6cWHqx0v/mLOUZKX2NCBGcKDgo5yws1nv43KUtvOX01J6L006i806CcNoOztkGVjM+HMuOwTEZpOJIhMBai8xeycHfwonJIsYKdlZczVdz+J2/WMTV7R7WWgGWmz4mCjZOT5fgWsYuz668beBv3z+XOZCvtwP89uevoRcmWSSLyQm92+6GcE0DBdfEbNVFbSXEqakCepEYiSB4etMyCpGzdN6fzRmKton1TpAJB6QkexYoev5MzlB0TBwezyMRErPVHJRGHZRWHlOAsgkJkfEEKa2DiorjkwWMFSw8dmkbBuMoORYqeQthIiAVy9q+UhH/NBaE0t47V8ZYwcbzy0386Ieex3jBRqRTK2o98lpL0SUAu9IU/sXX3Y3rDW9vgvYnP4k7H/0WGO0WtqYPkw/bjsU1La7bfozLm13MlF1c3OwgTATKrpWh/I7JESSEhJoG02sFKf/CWGRt89WWj412oFWtDo5N5LFQ6w19XidIoBhw+lAJlze7OLfSxrsemN/VDt2L8zS48RhE3VLElCKfYvz8py8DYHjHPYey6/LYlS2sNMneydWu3pwxMLOf59sLBRZqPTx8fGIXMreXGnSmksOhspspZe+dq+x+N3e09/wwgWORKfCvP7aAxy9vI0zIRy4SEjnLyELVD4/3o7uIPkC2KalHX942EA4oLQevUZGbODNfwcJWF0HTR5jQxsA0GI5PFDCu3/H1Frn6T+2gIxxkvGaKsHSxSHfXwwHdbOi/hQLkTeyo08/YazXlbNhx+1bGbeiM3r6hd7FCjDYKTREvnnHs+u2qdPFPX+x6L4IQlB8YCpUZV8ZCwU+0PQW0YavedTWlzDTlctQB7Bh7/Qi1+2iHd227hw8+sYgnFmo3JKeePVzFd7/lON7zhy9CKJXxvWIxrD5Mp+xRXz+IGnJGCwxnHELKLFMS+u9M/QB5sciuG2VGkv9ZoFu8XFdkZC6q0BYJTIOh6BjY7kpYhoFQaP8utdt2gTEGofqIbnrtGr0IvdBAJPqGkuk/1L5l5PDnR1p9eeehIl5/tIqr2x7CNjnsC0Vcq25IgecAsjYaQO8rgz42/Xl5mya9ad2y8WKBjVaApYaHXijw/k9ewp9f3MIDR6oZ8jG4OO0M+h5FEJ4oOii7JpYbPkzOUMlT7qQCRVpFgnh0nAG2aSAWZBLbCxKcnC7CiwRMg2GjHWCl6ePwWB6TJSfLt/viYh3HJwp48I6xrAD7qY+eHzrWas7EudU2trsRTEZ+dilZOI3BAQPOzJYzp/KZSg7VnLUngjAqiQAAijbFwwDAnYeK8GKBejdEJMTQXU4kULA53nJ6Cn/rvhl88Mnr8CMBqRSCmPz9YkGoQSJUFiifPi2OyWFx4Hrdg0IeJufwogTdKNH3QKAbxoiAzBojFlRknT1cwXjRQaMXod6N4MUCh8o5zFUdbHUCLDV85G1qTY9rI910lFwLT1+v4/Er21mBvmv86q8C3/d9MITA4j0P4V9/x0/h0NzhIdR6ELks5yyEsYRw1BBXNC1aZRq1BjLM3eyEqOZt2AaHr4gfBjC8/e4p/M+nVnB0PI+Ka2G9E6DWjeCYPCt6fUlqXeayPduh+/G8hnIet7tZgccYQxgLNP0EiSQD7vf+8Yt44motc+4/v9aG0By+wWFwBpsYwYgF8MYT4/gXf+vuXdf2ZtSgBxEhzFdz+J9PLeP55RakUqjmTQSRQE8otAJSywaJwEY7zBDu1DT4wnoHTHO6chZHVSvBsziuRGBxu4eKToB46I4qDpVdXFjvIEgELIMi87pBkm2gXMuAH0sUDyjQSsdrpggD+m7MO4cY8Wc3Uy9xUIEwaqSPDtcT56jvuplxsCXv9g1Dt257evds65w6pVfCQUJ2OtJCV0kFzsnbiikyXUzDXaXqm02mxZDUO+QgdZSXEqZpwuKGlsQTGhMlShPs2S0XtoPXkYEKHD9O9iWnpmjKs0tN/M4XrmeGpmlxuPNY9jq0gs0RRH0E0TI4LE6uz6ZhwBAyExVkuzehMFVy4Foc211SlQ4SVNPWHOf0rCWJtnxgjNBIpcA405y4/okzNfz7KZK280xSON4y6PPS9yhF3xigkwL2vuYpj+x63cepqSK+/eE7slZFL0zwoaeX8bEX1mjXahD/zzFpNxyl3DGDafTMwEw5h0NlQr4aXoyrW4Qa2AbPyP9PXq3hI8+uoJK3MVfJYaJow2BsV9B3ujiUc9YugrBQCuWchaJNhSghs3QBXZO+pxsKnJwsoOZFaPsxWkGCy1tdfPU9M6j3Qqw2g2z3X4SJiYKNdhBjYYtaID/xdXfh5Y3OCEJxgD+/sE2mtHkLZddCLOl+GIxMRg2N9BkGQ8OLUHRNmIztIv4DfQRhJ+9skOB9YqoAKPIwHM9bqHXDoWeZgQrgk9NFfOebj6HoUM7nwnYXMxUXQiK7J7G2KqBnpS+2KbsWii7FWW20fFgmQ5xQgTFedMhAdruL7U6IMBZgHJipuLhntgTbNFDrhri00dHB7Dzzl7INDscgdPLiepssK3RxfK3WQ8uPhwr0oQ2XEMCP/Rjw7/89/fe3fzu67/05WI9d35cIn7cNOBZHN0iGYpdSnuqgUj7djDR6EUr63hVdC7VuhENlFxN5G1udEC+uttHyyYPN5AxOxJGzKCnB0kXQqHbojfzGduY8pgVjGIuMgkBiIHIH+OJiHStNmg9zlrkLaxCSkguE6nc9zq20cH6tvWv+vBmfs1Hh3IPXfixvQQFYbwdINApX68aQUuoEE2p9TxQd+FFCyJgXwY9Elk1pGRyJpE2TUMBzy0389hOLeGaxgQsbnT6P0bEwUbRxYrKIB++ojuS6vevBOXz4mZWsaLyZ8ZopwoSioiAdt6OQSVGKjLOikZm0PZV9ly4u2L4MoH2+B/2F8ctZgGVjgAMSD6yyxg1apAp0XXIWtZyaXqzbl9rCQiugKGdRZarJVE3JQLLgas6GIQhFMRghY+mLttewDZoUhOpnhabSes77yGfWElTAajPAW05P4spWD7/5+AK+fSCUPPNU2uji4mYH3YBUnOMaxSFe243vjskZxgsOWjzKPJ+UUogkYOvHIxYKrmXANSnKpZK3cGaujHKOwplT6J0xwAAtPLEmayvGYDLAto0siSBFjgYFE8CAYhQDhfOIYxZpS1kXcJwDFqPcy7GCjY4foRdR6kDq7Tbqc6ho5bANhicW6vBjgX/6N+/MWr8528ALyy2YnCOIBao5C4lCVghJSZ5BY3kbXpTgwkYHK00PJdfMTGBzFnn3TBUdHCq5uLzZIVf+WFKOovYZOj5RQK0X4bmlFr7/7afwB8+sDHGEUoLwTCWHphfh1z63QIHiIE5VmEhcWG/DNg29OWCYKDk4OlnIsi29WOBtd07iNx6/tmv3zxj5652a5tjsBLhW740kTK+3/YwukRq8VvNWxg9KQ7nbfoKFrR4Oj+VwYqqI1aaPUwM5mcD+vLNR1h2//Jkr+MRKK9t8GRxwTEpqyNsG2kGMn/iDc5go2KjpQvN63QMAuBYVjA0vyt65NBvQNMjZnum5oR3EMBiRzVMQYaxg4/X5May2fHzpWgNjBQv3zpYzxWeUEM+K8maNzB7GMgml9GOJTkDxVowRamlwjrzdL9B3bbg+8IF+Afbe9wLveQ/uZQw/4Dgjr9O7HpyDa/Gsfb7U8GBwaNNREi0NPvt03zWKLRVafoQj43mYjIx9GRiWmx6W6j6UohYysbQoE9OPIsxWXOIcYnc7dPAZS81lYyFRci1c3GhnnKdHHzqM86ttXKt5GNNt5qZPwh3bILSXTKwl5sp9+4X/x1fOwzEpz9HgSvu2yaHNoMGAth/hfR97aRdf7WZ9zvYzvH34+Dg++OQiLM4onUM/V6ZhgAtCY71IwI0SMAVUKhZWdJ7pWN7O7oEXCVRyFJf0/k9cQsHmaPRi2AaHUtSV6IaEDra9GONFeyTXjWshSlo0TlgHZ3C/ZoqwVzrSthGQogZUYLxupoSNdoBeKGBxBsMCIqm0ukhqJ/O0WLm1EuovqxNJqIciiwDGYBsUTZPWYSkRPCtuBlAxxtJrxlB2jMxdX2h5e9WlVkmKfo0ieSv9800/QtG2wBipDyPRJ9nvNWIxQMaXA/cMo9pw9C+dMMHL6x1s90Jc3uzi4kYX1byFsbyNzXaARCvnoMhmoeHH2Nb8kxshnGnLEqAivZyzESbkn1Z0yU+HrBgUHNPAnYeKWGkGkEri7pkSKnlqq0wUHZydr+CppSYpHSWpBfMWSUJzJsfrZsuAAp5cqCEWBMELuRupS88//eO9TmGQN0bxRQxjBRM5y0QvSlDJ2QiSUAsg2Mhi1OI0SY4XHI12EjIxqMTqheSWfu98Bc8tNbHaDuheKQVkKi7a6JyeLuHKZhdeLNBtBvBi8gnrBFQQhYnEhY0ONjuR5i5SYZuSkXuhwMmpIi5tdlBwTLznnffsSWiWUvWd93WBVOuG0IlMaAcJJgpORsgv5ywUHFLx1rrRgXb/g7YDw0Hl1N4KY5mZ6TqmgfGCjaYXI0wkGr0YjCOL5wGA//TJizi30sJY3kbRNWEwhnWdMpHaGOxnJio1am1yKhYdy9Q8WboP9V6ERi8G5yHydj9P1AvIp8+LBMquiUM6AaDkmtnxuhYhV2Es0A4otszQ5/ylxSbumiljpuLCj4RWLdswOSf+kiCjTIMD3bAv0kj0bjBOpBZ+SKQlTMuLM5uMIEZm5ps69mfKuO/9XuAjHwG+8zuBb/3W7B6Nuk69MMGvfm4BX1qsZwhYIsi0zTHJMiSMZZYIkfI5zYF9uFTAdNHBWjvAfJUK4qYXU9vdoE1OEitESlIbeo+COm2Hps/YTrI915PPc0tNnJgq4sx8Bd/1puN47x+/SB0GTarPWcRndDRyaHAG2yL7hUubHZic4yuPjuHxKzWaq7QNzuC8P5a3ISR5gF3e6uHO6WKWEXrPbHlXizEtFqOEeJVfeWx8SNW81zP6wkoLYUyIogIp69P12eDkdxgJoK0NtmOhUHGtLH2lEySZP9yxyTwurHfQ9CIkwoCfCJRztNHpBAl8/TwpBUyA4fvffgr3Ha7uepcHi8b/4xM2YtgmA9ML/SCAclBvrnQtAJAhQwzkk0MvpUCiFAq2iUmHOCRgHGWXWnmpIu+v+hgka6f8m9RpPW1l7WxBMqUVbJxBat6Q0hNOIiS2e2RtYHGGI+N5KCh4ocjaFEC/oBs1hAQ6YYzD1RyOTRbw9GIjIxfvNRT652EafVk91cLDv5meSy9McG6lpX+HfMKqroUnrtYQJTIj7ktFRPleRPyCgwwJzYVjtHObLNhawchwpJpDL5JoaifzqZKDomvhkRMFbLQD1Hokh07h+FgqPHikAgaGc6ttGLxvG3Jsskg8GKVwZcvBts4VBG6ulZ3+7ODvKND7MlF08MCRKgBqPfQiMtB0TY6mHw+1/BmomM/ZBhzTQCcko8REUst5UImV7pTDuB8wSl0/ml3TdIX5ag7zY3nkbRPn11pYawZ0D6VC0TGQt010wxibnQCJUFn+qFJk/Ft2ySR2reWj4ppDWY/3abuDwZG2RpYbPs6ttjCmVVUKZPxYsE0cnywMKyJDQko7+p9+mGQmroMj3f0DbFexltp3FB0DtsnJN0v0MyGnSxyNXoRq3sJDR8eyeJ5zKy3kbMpgTJGpomviK4+O43veemKoTbSXCOVarYer2z3YpoGCY+1A8YjcHEsJlxu4XvMgQS3G8ZyFDR3LFEuF6ZKDMCYH/9S/j4HetVYQZ1YY1YKJqZKL9VaA55ab2O66mCg6uP/IGM4eLuPnPnERDV3MkcWM0p9JEVbXah7FpdV6sAyOWBA/qenFQ89v2ppPMz/Pept44brEx19cx10zJRz7k4+Dj+D0DF6ncyst/MzHXsLLax0whiyAvtGLEMQCPUn5rkJSYWPr5z7WG9iUEJ6qstM5cb0daHd5J1v4UwsayYCxHGWrrrfJI21nOzRt2+8k2wexQCdK8PtPL+P0oRLOzFfwjnsO4YmrNXxxsY6CZeDSZg/VvAnGqGLzov7GQihgoy3RCwV+5GvvQv1Dz+PSZgd6WsnWhLxtgnOGuhej6JgZfWAQcRxsMeZtE2stHw0vQhBLLaqIdrUyRz2jJe1z2I0EHNPoF+FimFMbS4UcaE5VUuHMfAVeLIZ4kp2QkGtC04VOfYlg678vOCQEOzVdhGUwFJy9y6a0aHzh2hj+x/fv+WND4zVThMWJgm2TvYLQK37aqhk1di5YKecFoEo7HettH91AZJ/jRwKuFWMsb6HoWGgHCQo2g2MqBFGC4K+4TX6mRgOGHub070xO1zAYqJokqBATO86NcXJvT3eGs1UXFdeCZXIs1Ska52aOK1EKM2UHtsU1Z0pByBsX0QzU0gr2q/QwXFiKROLiWhvOkWqGgl6r9XBqugiDU75huqDczB3lDPCjBJuay3JsooAfesedqOZtFBxagHuhGJJ0D8LxtslwdKKAN52awH1zFXzgM5fx8loHx7XlQdaOALWtFICWFyHn0GYgvonnj+uTM1KemSCT2dcfraKcI2Qu8wPiDOMFG9WcBcfiaPkJCo6BlUagF04yOZSSyNqW5hq2/QS/8fg1zI/laac8VcRHX1iDUGTLEAvaBAgpsd0JYRgMm50Ah8fzqOYtuDo2yosEGGeo5m0SICQCLZ+8jDJTVYLVwBj5Z211Q7T8KMt6lIqsab7+7OzIUN6cybHZDrGw1cuusWtyHJvI6x19jJJD6sqUN/LR51ax2qY23YPawiEdg2jGnYeKu1o1lkZDgiQNqqbcSEOrDsOYNn5zY7ksnmfQqPKhI2No+zHaQYxeRET3lYafeaHtF9mSSv8to5/pl45YkNcclMqSMAYDscl3j2xGVpuUE9gNE8xUXEwWHCzVe1hpBdn7ZjDyqdtoh+CMFHp+LPH333AEX3PvLD5xfj0zOa17MYA488cyOfHeWn6M9Q75SbkWRzekh3fnHA5GZrdBIjD2qY/jR/7bT+P3vuLr8YvJD2CiaN/QNV5KhQ89tYyrWz1C9PM2wkSiE+jNhxbHmJzB4AYsg1qls+UcelGCrk4hCBOy8Jir5vDoQ/P44JPXMZazsNEKUXLomSahj0KYkA8bQBFgDS/GQ1rIkcbkpAHonSAZItsDZK8yW3YRxnLID+vR1x/GStPHapNa3rFQYIza+q5pZBuLlEeYBt2/79Gz+MCfXcKfXdjSubocEwULsST6SFnzEHdmhKYUj0cfmsdHn1/D41dqGTI6W3ExWyET7p//1KUbGsYemyhgtuLi5fUOKq6JmhcR/WIUFYIBy3UPDS/GZDvE/Niwn1+tG5LqFACDjhBTRN+IhcysgEquibafoOXHQybAO98jzhmOTx6cF/aaKcIAQlsUk6RG46TG22tJ2vnneZt2owyKAmT1YhYJsev3/Fgi6US4Y7yA04dKqPUiLNa66IXDCMGo7/nLHin6kW4GB8A/In0zzYHDjYufvGXAMiiIdbsX6cw/aKf46KbarAxA209wfq2DuUoOV+MeQq0WHBXTMziEVLAsfkMO287RDBK8sNSEaXAUHFMv6kDJNbDU8AEgg70PcvxCASKDYWXGsavmLJRcEy0/ziwJ0jEIx2fxLO0Av/cXS/iwtYKxvI1KbrTL/3w1h7tmyvjE+XV4UYJk4DjJjgJQuohNuWHpvw/ef6HbuPR7jOKOhMR2N8J6y8dsxcVE3kLdi+laKOgduNTKLoZ2QAWYaVAx52geT8GmifsPnl7BXV9XwvHJfKb2TCRFFVHqggTX5rrtoJ9O0A4SVHSx6WmjWRhZBxOJpILa4EDTi+BFZA2gJLUaKq6JnM2x1grQ9GK8rE00P/rCGr73rSdxZr6C55ebeM8fniMln1KwOINi1PrqhAm+dL0BxzDgWiSi6AZUKD1wqIrZag55x8Lzy008uVDH2cMVzFRyu8jdJyaLu1o1ieae9SIqiMjIVqHtxzA52ZDcMZbHj33tXbsCoScKNi5udrKWlJASyw0Pzy+3cHyyOGRfMKrdU3KJbN8O4iyaKJ21Ut6r0pNFcQf3jAoQjtcdKsBPFL767kP47KUtBLFA3QuxOlCAAToSJkyQaGsG2+SodUN88InriITC7z55HX4sMVmwAUbxTFGiOYigcGgpgV6QINQCmxSB5VwHveviiDz2YvzDpz+Cf/qx/wwOhXs2ruBExQKz7Ru6xqfRQ1IpFBwLofYwkzKN1VI6vxYoOAaKjon5ag5Xt6lwnyo5WYvU1qpHL6J0lomiPRBkTWbWAKG3UMDR8QKEkvjBv3l6SNmZIrUX1zu4tNnNQuFj0S+oTkwVYRl8SH2Ytw187ZkZfO7SFrWXvRgF28BEwdHWIfbQRiFtE56Zr+CHvvp12OxEyFkclTz93FOLzYzon7YzLZO4wNvdEJe3iOJRyZmo9SKM5S2cmCzAtoysla+U2mWeOmpwzvD1Z2fx+Ss1+LEgJf6OAoyeQ/ofYwSevLzexmzFAU+JlkphrelDKIWcySEUPVPEe6X5ue0nKNgGhKRr+sEvLGKzGw4prb/5wfkhr7px6+Ar+2umCEs5SmlvPtI+TYPBzvsN7watp52ISCwVXlxt4e6ZEi5t9dANYqS4yc2iJ6PGEP/qNnze4Mi8pziDwWjy54xlipkwlru+NC3e0ussFe3gq3kXnYBgesek6JGWH+/bfhw1FAhBmiw6+LtfeQS/8OlLuLrdg5T96KlRg4RENBHnbXPfaKFRoxkkyGn1FSmBFGbKOVzX5FnGDtbQ3nl/YqGQs6hV8P2/9wxyloGmT5yZ1D36gTuq2a7ci8RQ1l9abK02fZgGw1zVRcOLMvJqwTbw0noHjR7tEAcXPSMtwOjSEOEe/XsIpEUMTV7QHEeTMzxwuIplvXsOhaQAaSGxxBkcy4CUCttCIdBBy5bBdWtFgPPUVoOI3i0/RjVvY6po4+nrDfy//+B5XN3qarROYVvL8x3TwFjBhsFp4QpimWUPkhqNWpBBTMT9ogJiQbFGgzdAKdoghXGYiWfuGM9jYctDoNs3JQdo+TGeuFqHHwm88+ws/tOnLmGp7uvniaJ3mP4sBR1/JhQ6YR85rhgcG50AecfE/FgOOYvjmaUmLm91qTgdYRC6s1VzeatDxY5GpNPv5JDI2YRU/NS7zmT8lNQCIG8beHG1nZ2TkBL1Hm0cW35MyFWOCo6XVtuYLtOzs3NROXWoiFovRJzIocDr1EbF0qR4kw+379Lkg1LORtSN8MaTE3jT6Un87MdfwtPXm7vQqZS+kEhq344XLMSCo96L8MufuaKNSw1wzrNWrLIV2gEVDQwKzSBBy4sQaducgmPCjxLtb0ZoKGMMpkzwE3/y/8O3PfVRAMCHHvo6/Pq3/nOcLeXBGBvpoD44OkECT7fLTU7tRCnJNDo9Fw5CMYuuhUQQ3y+RisKpFXVLKjkb986VUetFeOzyNmyTwWRsyKcufRvTtl6YCLzh+MRIa40z8xU8+vrDuLzVhdAbjJTzlBZUQqr/m733jpfkKs+En3Mqdu7bN8+dHBRGo5GEAEmWDGvCGlsGY7DXnxe8C/ban73GYMM6s5931wlHvGtYG7MYsLENJtlkAwIjECChOCONRhPupJtT58p1zvfHe6q6+96+aWa0gNH7+4Fmeu6trq6uqvPU+z4B8w2BRy+RCjC1QdE5rh8rYL7pAwzYV8khY+k99gur45D2D+Vx484Sjk/VMaG6vx1laGecGcYCT0w34IYROBhGCxaafoiLyw7sJG+yS8Hbzzx1vXrx4TF88vgs7juzlBr7xsn9RWWVUgfPQNOL6VpfauOJmQb2DeWRMTUsNj0sO2EaKq9JqPg2riwsKJJrKG9iru6gHRC47LYBuX9yGfc8OY9BlSlpGRw7tyGQ/I4BYZbBO4oxteho6JCyV1f3KS77/0hP9fv3ph/jGxdrXRQkmf7/lQIn0bu+XLWiJ0gOS6eAUjcg4qZtUTcoZ+mpF5IbinRUF8teoMsYIIRA1fHRDggEVJ1w2/mY3dwkAJiqOfjk8VmMFW0stXzlTRT3BXUaI5JsJKi/w4E0V1FKijcKt4DA3UjAa/gwdYblVoBKzkDWJB6Cu5UNrFNOGIO3Kf+SgcxpswbFuszUXDS8ECdmGnjNd+3BA+eqG0rQB3MWXv/CQ2j7MT726DT+9oGLabdgNU8+Vgt6v/NGgjyciEMlU+ECEbQN/Mizd+F9D1xAJWeiaOuYqbuotkmJRMpFA+WsgTDWsNT0EcWUGRjEErrsGMAuK5sNPxKoOT78SKLuBNg7lEcx44FDjeE4x8HhHIrKK6vmhMgYPFXDaZzB8SPUvFBFQgksNP01vDQhkTrNC/WZxhRpvOVHKGY6xPO8bSCIYkwutfH7n3kKSy3KUrS7QqiTqKhkexpkepw1dYyXWz7afowjE+Rr9dy9Fcw2PLzmzj24bqy4ZoyREHs/9NAlfPbEPBpuRCPhpIujOr5CHTfb6Hh6AR0LgBXHhxeR6ktKoO7SPS9jEIC9VHWxu5LFYM7E/edWcG6pjefurSBT0lNvqamqi+fuHUDBNsg1X9CotBWTGCRr6ihndUSxXDWu7CzAieovyW2cqrpKHQhEced7Sa7xhCBOhHZSsT4138ItO8sIY9kDTpKRsh+ROvTASAG2wbGoHjpcZX/DlfdgLGNk3Dbe/k9vwfPOPQwBht9/wU/gH1/wo7h5tJxeU5uBgIKtKxEMUgFAImRg6ZMN3UP3DmYxpxIOOAdafrwGGJm6hoWGj5GijYvLDvYN5uD4cQp6NUadO12jkV03GFptQHx0ZwnXjBSgazQiTDhPyfmz2PRQcwP8ny9PQkqy/BgfzMINBWbrLvKWngLy+aa/YRzSaguJgm2Ac3VMYgFb17B3iECPF8XIWcSbPqPGeH4k4Ecx7j+3gtv2VVDJdcb03VYVm9XdN47jzEIL7aCdWinpLDG1JoCX+KuVMwbGSjb2DuVQc+mBNYgFsoaGfeNFTFVdtFRaARm/MsTJ6ERKtFWOZPc9OIwF6ir5QOMcz94zAC8UODG9tOm+J/UdA8L8UEBoomccFaPjk7S6EkBxpRSu9VwLrmb3SuddNgJXWIbGMKiM51p+mBIVOaObcLLfCS9Opv/XAYac0XaCSKLh9YKU7So903GompctNn3M1RehsU5uYj8AxtQ+0v2HDPkmBjKYrjoAmJIpM5xe3FrGlwT5kx2frimXZLphWzpHFGzvU3FGQMcPBRp+hIyuwY8FBhUBOoxJMt70QszVPfzmx56AznnPxZ9+TrVonFlsqQVZ4gMPXlJqJw4JhljGa8awG50riRVCUjrnGMobKGdNfOrxWVTbASIhcHapjaoTpNtmQBp4XMyYGC6SoeaB4TzOLbfh+KScS9CLroBUyyeQ0PBCGBoRnVfUuGKlHeDxGYp78SMizlJ2W4ixkg2NM8zVfXBGXCSNA4stv+dEk0CXcgqAUiy7QYRl9SDhR8S3K9hGaoTrBjFqiseWKCvBgDjsjeiS6BWWCABBFKOcteGFMc4vtTCQHUDWIpXiuMqYPD5dX8MpOTJRgm1wPD7dwEg+xlPzLQWMWUqajhRAXm75PR2bhKxMQFVDEBGfyAtjpcojl30niMijbLndUXyrcU3e1jEYmXjkUg1PzNRRto2085OoPg8M5/Ddh4bwyWOzeGyqjpYXpl2eZPy1dzCL2YaXjrG+fHoRC02fOomcxk4JqExH4RKI4hhOwDFatJA3CeRpWsdEt7sjJyVRQ4byDO0gQt2VODCcx7GpGj1ogboYls6hA3jfB96Mm2ZPwTEs/OIP/Bfcf9PzcNuugTWGrhuBgL2DOdw4UcLFFQcNNyRxkey9pnSN+JHDeQvzDR9DeQt7BrNpx6w71ip5r7sODuEz3hyW2wH2D1MsUc0J05H+HfsHe0QVfd3xh/MYyBk9nnQACQbOLjYxU/PghR2/x4Wmn/pfJbytwZyJ17/wYA8vdb2RYLca8PR8kxTmQYTxoo39w524oIT7Sd1rCVMnmooEQ9uP8OilGm7ZNYAB9T2stqroV92fP4hoPE5jeyDmDLbqgHUrPWMpUcmZ+IUXHQJnDE2P8ljf+eVJDGQtlLMmJpdaWG4FRN8Q1FWzNQ3XjBWx2PSxcyDbuQdLyqr0Y4FKnjJInSBOvQa3Wt8xIExIGhEmpaHjn9SvVtslXPX9uapbuzqQLm9qKvKGpPCc0cmcVTfDpVZAYxxGBMakVn8WDgIs/cYOl1MM9MvJ06+t00iTANjaI8kAaBpLA4DpYpKYq3twVPTA3qyOhaa/5X3gIIVtGEssqt9jjPUch+19RlrQhQC8KAZA+WOxRGrwyBkwkCXeSSuOcVaNqQbWWTTqbog//+IZuGr0m4xht2Bf1vtZeUcJCxBwGStlwMBwYpa6UQkvJ14FdoSkbM5YkGrP0DRIKTGUtzAdCggVM8WBNHA9qVo7xAPnq7hutIC2H2OlHahtSZi6Ac6gvLooWmy57SOIYmjKosNQI07ZtU9JFy+1CRC0AHmRTLlbpnLA90OBKA7Sm3+gxq3dwHd1DJfoeh9SDdK/h7GEH1LHKMmq4wpg9+OUdJPB2z5xXOYbPglQJBBIAIgVEZo6i04Q4/R8p2OTkJWfmGmk6QSJdYLgAEvAJChwmfL0aIwbKhRZbQd4YqZBcWCSYc9QDvsZw/nlNnKWjp+4c18aZXNwpIC/vPcs7juzjMVWANvgGMiaGC/ZWG4HPWOsxaZPwh11jDTGkOibe46nGiHtHcojiGKlbAaGC2Zq4JpEMUlIFGwNowUbdS8k4AF6UJtveqmlihcK5CwNH3z+v8P4J/8cP/9j/w0nxw/hqOpQrq6NQEBCaH/wwgpOzNIDSKKUB9Q1I4GhggU3pLExAz3I5LPre2PdvKuMa0YLKbCoZC2UMyZ2lGzcvUoo0i2+6HHHV6HtOmep3YkXxjg+VUPdC8lGRwKaRg8NTS8k0Ku6td0Pczcp9fNmtZqz+qGHp+CHJCRxA/Jzi+JEEUoCDikBR9fghZTe4Yfk0J8YsK7moK2u1Z9/rGgjimPMNzyKydI5BrMmIgn4YYR2QOPEphfh6M4y9g/l17WfuXX3AJp+pDqylG5weEcRr3rubrzlM0/15K2SqpIsZDgD/CjCUovWBrPvnvev7xgQthrLM04fngZV1K7ttq64miO+q1n9Fvp+KQCXU67ikFw7WoAbEgeOMVoUIkEtZV+14MOut0xGEaG6yFd7qCZdKSnkZYWQJyOZrKlRXp6KL/G8EAZnsHWGUJEmk0ORjNNi9f6WrsHQOcrcRM2h7sras2L9YqqTwDl5pXUrBlNeyxa3RWCgs6+R8pBLvsdkAiXS7hCR2J0wTm9WPXYIXaaN55cdMDAlsxap6SOTcsuiBCnI9LITIUWeXiXbwHTNTfez32mXdDZioSJcLC1d5GNldcJZB7ClxxeApjM03RBPzjWws5xBww0JkIIW7qG8jX1DOYrxmW1gJG8jY1D+6FzTw0qLRlGMdexVGEgZC40hlgkgVd+ZGtMknTJT5yq6JcRIwULLo+MaSfpuOGdYTwLSDVqT49D2Q+QsTY3ZYkzX3HQktVm0TMuPsKiC7ZOHEDpmBKw0xRGqu2HaseGc4ejOEj7zxBzCmD6Pzmn0FwmAsSTPkSswJFOneUMZ9U0uteBF5M7f8oiKUM4TADqz0ML951bw4sOjAGgB/tMfvQWfOzGHTxybxWzdI4I0sGaM5QQRhXILiVCqEHCsvW5sQ8PNO8sYyBo4s+BjR8lGww0wWrRSA9emHyEIY8w0PFwzUsBi0+/xV7t+vKiMOCNkPAcrGnF1/vGau/DFg8/BrdfvxCgjc2bidXaupX5E9NV1eLyIfUM5TFVdNL0o7ehxBmQtDbrGsaRsOo5OlCClxIMXq9hRtNeQ0JP32j2QxfmVNm7dM4DdAxkMF21cN1boAQzA+vmL3dSEiXIGAzkDZxfaOLXQTB/K3DBGDAoGSI56FMeIZYBzS23ctLO05TFgdyUWEvuH8zjUBSTrTggBiayhQwLK2oGmEwVLRxARjcTUGWpOsMZ6o18Hbr3Pf+14CaGQWGkFCCOBmYaXcgGTichg3lqz3X7O/FlTBwM9BO6qZPHaO/f12IAk6uUwEqnoZUUZCJ+eb+HCsoMstv6A/x0DwpLFIamk/U1ZeTKV43+r19O5i7EgZdejl2pK/t75N50BQUSZfqsX30CRtk3OUtUo0AETSP67XUIYEhI5I96ZoG6clASwQiW1B4BQ0AhNVze3WHYEF4dGctg7RDl+55ZaxE8Ioh4AtVmZGj1hRcqfTEhARJuHh69XYT8Eo0qis6AHMSlwDY0ARBA5GC9ZGCtm0Ao6i9Fz9lRQzBgpRy8SUvH0FNdlnU+aHF+6WXWSH4oZXXn9kCjFDWOKrMLmHb8glrB0Eh2UMgZFLbV9WBpHLOK+jvrJuBcA6m6ElkfZboYSc9w4UaKMPfV59g3mcanqIBYSB8oZ7BjI4NKKgydmGyhYGlbaNEpPLnqNA1zS+RkK2r9IdEaHiQJNKl7PcN5CzWmhkjORs3TM1YmgztUNffUHWH1/Aagj2PRCMMYwU3PR8qM1nJJ+0TK7B7JwgygdcXaP7JK/x0l8khpDArRATVddZdkRIVZtu8StXuc0tts9kEUpYyjD0wgjBbvLLylSZP7E9JJGxutxpThn+N4j1KlZz+z28ek67j29RMo/FfmUTBq6DyMHcPu+Ckxdo25QzsSP37EHnzw22xNdw0BeVDtKGdx1aAjvf+BST4diIGfixh1FPPcDf4m7v/KP+LGfeCusPbtwaCSfdpVOzDbwv+45vWEc0XpjuPPLbVSdEHceGELNIV+rMCY/N9vU4IcCsw0Pw0ULN+8u454n5zFb83B+yYFtcJSzBnaUMnCCGJWciZt2lfDGDz6KBy9U0VIAKG/rePaeCn56la9bT/4iqJvV7Xk1XspgxQnw8y88iOmqi7d+/hQsnePJmUaPPU1yCgvQ9T1Xd7GjbG86BtysujtjdTfE33z9Ak5M12kk3nU8TZ0r0Q11Ot0wwmzdwx37B9OsyvWOfb/8yYGsgX1DeQRRAyvtQHWm6f5hJ+KRdW5aGznzr7YB6VYvG4o3vdwmvzvKoNQRCWCp9gwI27S6/aVieeXcr2/n6r65S5AXzeqbfiTpJqnx/qrMSHS6TsmioXGWhjAnxFUKHdp6EYmcth2LmLyT1M2cRl/0rqbOYYGnYxQuKK0gY2pgjKOSNXB+uQ0/EqjkTKWMIS5RsMmXrzHA0LXUXgPY2K2/u5PVr7pB1lYruYFGQYwvn15CxqQbSySoK7g85GOh4WG4YGGm4cHxSZ3Itf4LSfKqrlHHy4/i1HOp6YUQAmh5cQrMdM6xeyCLqtNApEbS65VEh9hqaAyjpQzOrzgUKbMFP49U6KHAtsZ4GhqcLDpcqfQ0ztKn03LWhK2rOBy1qCYiHAkCvqEa9SajMAY6P+NQwODE8WMgy4RylgQYuway8MIaGmqks953txpQCJBZ6GjRxrVjRZxbavdySpLvYhXAAaBibDagSwDwghj7h3Npx+ZzJ+bw2Sfn1ZicFjfK0VRGngrVDeUtMLDUgHk4b1KKQEBdHY3RqGUwZ/YsyBtxpdYzfU06FzUnxM27ynjkYg1hLPpeHzlbx1zDRyUvexbAA8P5dRfIrKnho49M93QotDDET737t3Drv3wMAPCqi/fj4M+8uEdV2C2COD7dgBvEyJgajiqV4UYeVYkAIlvSUcgYyNlG6lDf8mJwTvY8t++r4JPHZrHSDnDDjlJqTDpX91Fth7jr4BBecP0I/v7+izg510zH7QCB43tPLWKh6eHNdx9O9yd5b1+P8dR8I7Ug0TgpK/dUcvBDMlalkHANeVNl/6463sk5KiW932zNxXcdHF63A7jV6j4XDI3j9z79JKbrxEezDOoMO0EEU9dg6WReTSPb9TvNq499t6lxkhBQd8gTT0hgKGdidyWHSs6AqWvIWxrOLrbXVb1ulB6RfKY1WZY6R6BoGZZOVh2McRgaiay2Wt8xICzpEFCX4JsXBbReaeqm9H8bCyYE19U4hIGeVlIrANkhIK/ex+5xXPJvBDSSsGOmHMYv7/OlIy6J1Gg3uYTCSAKMCJepwaGg7LC6F6Kk/LcSI8fEx4ZI6/S5syaHswG5PukGJMkBW9nfrYKsy2nAxpLI7AYXGC9RisBMzcOHHp5GJW9iKG9iKnRJ+Sk6nYekdBUhJCVQyZnQOTBXp8ggS+dgtoHrxoswNYaaG+KpOSLGZyzi4yWL+ebHQGK8bON7bxjFY5dqqLthCt6kXL8xmng6Jf+mawwn55owdYamGpFJULj2deNFzNZdHLTy5LivkzVE4h0nQUA9+fzJYYglmcUOZI2UX5jwpSQDbpgo4XnXDOOTx2ax3A5w3VgBM3VXkXY74+5+1ywHYOj0oGBqDN99aBC7B3M4vdBEZp2b82qAY3BO49EuY+mkklQLxpDysx6fruOv7juPhksK1ZyppS7gkUdP6XQ9S8w2PAQxxWE9Nd/EY9N1GJyDMVKA+VGMgkpf6AaM/bhSqxV6q4ncaeeiaEMy4JrRPM4utqlL2VVZkzqejAGvvm13Dwdqs3il7g5FttXAq//wF7H/iQcRcw1/9SO/gNlX/QRe28fWAeh0iINYQPhk4SE3uXhXZyBWciYGsgNpViNFhUU4v+T0jM12lO2eiJ6BrIGHL6xgcqkNXWM9ZssVnaPmBDi32BvtVbBJnX5sqoZIylSkEAlSjzacEOPlTPodWQbHxRVnzf199b04Vh3TjTqAl1NHJkr41Zdch1/58DFMVV1FkufImbrqsNP5vaOcwb7BHB6fbmCmtr5Z6+pjv9IO0oQAuk9TZFEkJObVQ2niu7iZ9cV6DxLdn6W7Y1ZzQkDSCN3UufIqo5G7F24dYXzHgDBAjZC+RTte34z9osWZ7uYaeoGYqXNlDoke9U9yeXaDh/V2nSteTpJfpnOGUC2+2+089htfAUkMEVLjRkNjkJyUMpwBfiwQRcQViIWAzjUAUj190afZ7IIJhQCLWV8RQD9ey1aLuoWXp2zVQLxGy2CYKNuQACmFLB1hFKffU/c5rzEgqyxGwkggZxKZ3QloHKcxpIHQls5xfrmNpVaAlh/DNoCZqquk5tGW9lcCeP6hYdyyewCDeRNVJyBCdtJN7PM7nCFVtiUeb7pGuYdZU0PBNqAx8vKKmETbC6Fx4LhSxK0oXyuAuIo0tu5sO33YkUneJ8NIkm9oGciYGg7vKOH3Xn4EUyrw9ytnyCC3myx9ZGcJ7/nqeczUvDWfgSwkJI3wY4lPHJsDQJ245VaAozvLa8QVqwGOpgjWEVt7rSTmuaNFGztKmbTb1A7IVJIxBlvXYBsUttz0ImTVd111QsSxwFLLx1QYI2NwZAxNRbkQqPJEjBvGiz2qwX5cqdUKvX6JA00vwko7wGydkkWiWKTXkcY6DzhF20QYx5iquvjU8Tm8+PBY73nRZ4FMAODRiRJOzTfRevxJvPEvfhkjcxfh2jn88U/+D1x87vPw+j7AIiF3T1UdAgMqTWK6No8HL6zgTf/2WvzgzRN9zlBSSK4eTTFGmaGJ2eiewRzm6y4KNil8DY2+WwIEBmyDLFfIw0+mD4edYshZBpwgwvHpegocdpYyaHgh6l6IwbyZ2qoYGkPR1rHQIC7a7oEsOGcYyBp48Hy1a6vq++x6Jwm6Nl58eHTDDuDl1o07y3jLK4/i9z99EivtAKNFG1NVB7GikORMHQeG88hnDBy09Q192rqP/QEzh3NLrTQhwI/oAS1raqhkTdS9sIdDux3ri/Wq+4Hg4QtV/PXXLmC0aOHCipMKRjTOMFRYK/hYr75jQFg/zsa3UvVb1K4mTa3fxZd0uxKuRneXiWwpqCsRdz0Zbmd/QqVEY4xsJJJRR8YkUiZnFFeynX1er5pehHKWpREiQRQjioGViAJxT843wNUIJooF2sr/rN9YJOmYJuAoFoAviRMVrnpfroDCVrtk3Z/N1Bk0xuCKznHf6iZ0NTarOiGafoSCTaOzRy9WAUaLli47og2dA7fsKiNjGnh8uoamkIgkKewGsiZ2lTWcWWzDU2HKx6drqbJU5ySKqLp0LA1lmLpZSQn89f0XMJA3MVq0cW6xDUNZTQRR/yxV8pdTgIlTJ7bmBABY2kVq+hEylo4j40VcqjqouyGqTkjjR3TG5hlDgxcJcEXIJ284Dk0jg9lQEGgbyJkwNY5lJ8DRSgl3HRrEr/7jcUwuthALoKSCqO86NISbdnVAyGefmEtBWDL1leicT5Gk4160dWicYbHlY77h46ELK7h1TyUFYv0ATiVHcTicMXAme4E6AypZI3W2T7pN+yo5BMrBPfHTMnUNtiGw3A4AkD1A0iUmw2ANN06UMJgnY03Hp0V/cqmNobyFjKX35Up1K9SypoYVx++bODBX9zBX9yCkJM8mjaHqBHQ/ZiwVvJg6R87SsNIO8LXJZXzq8VkcHl/rpZbUagC48/xJ/Lc/+wUUnQYWK6P4kzf8CTK33IzX9/G4SkDrVNVB3QnTUPCcRerVlVaAP/7sKewbyuFon6BmzhleccsETs038dilGsZKNobzVuq3VcmZ2DOYwVdOL6YK6GRcuE9lu2ZMAr6uT/ehxI8qAVWAerCU5CdYd0P88+NzeP8DFzFbp0zU+boP2+AoZgxonMMJojSc/GLVUecSQ/fhW70OMvWepq7hWbsH+lyRV6eO7izj177/enz44Skcm6pjoenDVAkJiWcasD73sPvYJ2PBJ2aI/5UxNCXEINFL1tSUkIumIMn9cSvWF1up7geCf3psBrahp6rKhJ9nxh6+uMXtfceAsG/HuprNMTJJZPC7QE8sSR7cfZNLxrb0OwwaW6t23Mq+aSBifOK1kvixWQZlymicwdI4vGj9pxK2aoy2UdXdEF4Uk3t5ojLsQjVCECHbjwJ1LHjK70p+jINm+YwxZbAoYetaKgLQeG++wuqlYTsgKnn6FJI8wzwFSra6jeS9IyERRgJSkDN304+QM3UMK+m9E8Ro+ZFy7m5h31AO/+baEVw3lsexqQbOL7fRDiJM10MVdA2cWWpDKtHDWIky5ygTTldZqNqmICz5HDNVD//j4ydQzpqIpQSPBfImR0tK+H3aobFIFgbF/RPK0oCTW7wlycdur8pmm2v4aLi074ZGvc10zxiDrXMMZA2EUYyaRzwvjTPU3QhRHMENJYKGB0OjjtDeShZ/8JmnKBpIY+SX52lYcQI0/QiHRgvgnOHMAvkuJUkKyQdOzvXkk1k6R1apwobyZJ9AYKWB5+6t9CzcCcARQiJn6eCcCPi2QfwXIZF2kQSAA8M5CCnx6MUa6k5I/kx9/LSSMZnOmfLXo9GJpdN5fny6jjsPDmEwb2EwT5EuZxabmG2Q2rEfSbk7Hqnbnb87ccDxI2RMXalzoYQBBJQ11fEMYom8pat7E4HzhhfhrZ87hR3lTN8sx34WDcI4hGp5GAsjO/HUO/4GP3XLNesCuPPLbZyZb1FcUCx63OlNXUMlTwrq9371Av7wh9cGuj8+XcdHHpmGo2xUZhseLJ1jRymDW3YP4KZdJfzDg5fghDEFQNtaOi5s+3UcmSiRYlcCdY/Mgtt+BI3TOZx8b0Im55XEn33hDB67VIMTRKk6XEoyNPabZKsylDexezCHukOKWRIQBLhldwkPnK+mwpfkPpN4YXLGsKeSxZ0Hhja8pq+0ki7SZ56Yxdu+eBZ7KlmUM71Kb2Bzs9ZkLPgXXzpLAfXq4Wo4b6UxX1IJUdzk/rgF1et2q6cjOpLvcf732ms75OvVMyDsO6SERA8AS18HARSgc2EmjumxkBt2qtar5GFOk2QNoXNSnTFJ+Wq2oWGpHaC+SVs42Z+tjC6pYyU74z0FcDijwF4hRQrOOEh9VGsHEKuQTygkhBQQAmm0j6ExGLqG3QMZnJxvIIw7+ybV7yeWCP24dZwRoF3t4s4ZRwyZHv/kc2yliJROAcZOGOOpyQbmG75SGcZoeEDBNhRZnWOx5avorQiLylGejq3EYpMUp8MFCzvKGTw52yAXdJ1j32AOjFHno+FRJl/N23wc2f3vfhhjSdktOKGAE1J+q857TU7TY8MIXHIpYXIGT4kPbt1VgmUa6ZPsQxdW4AR0DmUMDVFM+wwAgXJN56CukqFxNHwaOTVUOLVtcIQCKJgaIkHcsQ8/PI1AAZZYECDyQ3LWBpx0THJqvoWWH6GSNdH0ydgx6Yb5suPNpmvUNSTQo6GSo7HsQtPHo1M1jBbsNXYO55fbqDkhjuygMVunI0bncmIvcbHq4L9//ARqTohLVQcNL8R1Y8UeP62WAjaMEUm/YBvwU+81AmNBLHB6volKjkK4x0o23CDCa+/ahwnFL+oGNN08r6cWmqk7fwJkksSBCysO2kGM60YLOLvURsMLAZVW0c0NzBg6/Eig2g6ItA9gpGCl0Urd9h09FgXDOWWgy6ANlPC+//4OPNFmuM638X2bhJPXXeqcZk0dWPU4RdcVx9nF3m6MEBKfOzGPv7rvHNp+lC7CSYZq1tTwspvH8U+PzsAPBcaKFqpOiIxJFjNFm7I4zy21oDHlB4fkoZdG52310KRrHEJd4xonnzUhJYbyJhaaAT0Uso6PYNHWcfOuMpxAwDPIaDUhse8dyuHW3cBDF2uIYwlNI5+2hLObMTX89PP3Q9fX8hU34/xttzhnuG6siMGcSYrFPgqfrXSsjkyU8AsvOoS5uoeM6gYCwEorwOQynWumxpXwSqRq26vJeetL1leCoItbNAEHngFhzxQ6GMTQKP8viimb73IVo8noR2PEpzI0DUVbR8snTkisczDZfxzVXUL2vUbXLU0tThLUjUj8YQyNIWOaWGmHEFJQKHQsO2arsiPXTmZJSVg58eIENEY7U8qQkiwZ5dL9k8YYCZjSu7qHyXiKoxeAWTrDcMGiLLogAhc0zkyI75sN+0JBnDCdc5yaa8JRHQZddfk8lZGYs/Q0WkmCrBcYA+49tQgpJfI2WUhkDA0tP8KZhRYAUhc1fXqaPjiSx65KBrM1F/NNP1VqJp28jUom/5NAJWcQ4IMad3M6/uEqcMrQGaOmwCaKcXbJwTVjRTDG0HBDVNukhNI4g65RBzMxuTV0DUEUI1bdAkOjLkPLj9KRqlQLWdbSUXeDlCRsGzwVLoSxQCzo+Jm6hlPzDaVglOo1jopuqhG4XKOedFU4M2PkMQcpybQUdJEMFy28/JYdPZ2eZPE8OFLAcMHCqbkmGl4EKen9TI2h6oaYrXk4OFLAWNFGywux2PRxPKrhxp3ldDyy2PDw2HQdXI0zE8PlSEjIkAw0OWNoeGQoW8zQ2MY2NfKp6kNUTvYvsmQqdukGMhonZWbO1DHf8JGzdRyZKOHcUgvLysySvjd6EKFuHXnCgQEmJ9PXfvYdCQDcnWH4sT/9VUwfOIwv/+BrAACtyggGs9GmuYMFWwfn5DeYs9beYGIhYSjrhKQb8/h0HR9+aAr/fGIODTdC3tIQxAL7hvIYK9kYLVo4s9DC33ztIhYaHsaL5GFXd4kTl8TnmBrHXN1DztIwkDVx/XgRD1+sUfJEIuUFECl1sRCUA2nrXKU5kIG2F8SQoMlG0TbghhQmv9Dw027P+eV2SmLfO5RHYrbsBDFC9RCWMTT8539zsC//ra8rf5/O5HarH6cuqe10rJL8yvsnl5XHGI12yUtPKPK+gSiW68YvXWmtZ29xw0QJH9viNp4BYd/BxUDdiKxSvbWDGNeP5bHQ9HF+2d32tpK1p9v6A7GEx2K4zRhgxMVp+vGWOj7J4r3V0jUK841lrILa6abW8pOOmwQD2RDsH87h7GILDAxBFMFR7rNSQhlY0lNhztBQ9wQG8ib+v5dej5VWiP/1+adwaqGV5sZBilStpjOgaBuouWEKYiV6O2ScAeWsievHCxRTFAnM1j1cXG6jlDVQdUK0/M2tHKJIYKXtKyAkUy5fEAt1MwL8KADngMFZysOZa3jKaoRhue2jbBMpuGQbWHEC+BF9Hp0zXKqSIpAADm2Xg54CTY2lCQQblRAJqCU7jEiQ037iop0xNPhRx06iG9iZOlNgSKLqhHh8msY5pEIi4Js1NWQNDY5O4IDCdxWg4xTTo3Ny615uBWn3lzIPOdp+mCo+aUzM0k6nqUBxIqtP3O+vGS0gr0xVKzkTVt5CENGNv+oqd3LQMdSUes0NqEOmaQx5S8PEQA4Xlx287QtnetRg3QqwSs7C7fvNlG+iawxPzDTAAOwbzqW2DNeMFRHENJZ8aq6J5+wdAANDW3H8fCEg0RlJxki6vmT8KmRi39FrIHpmoYlT800ADNeM5rF/KJ/uX0tZduirOgsdywRlt+CF2FnJYSA7gIYX4uELVXVOJV1PAU+FoUMCw0Uz/d3VHKGmF8FeXsIb/s+vY8/pYzj8wBfw2F0vQWOQiPxbIV/vHczhwBBd/2EsYOoduwMp6Xsu2AZKGR0FW0/HnzN1F0EkMJAlFWP3eLGSMzFeyuDsYhNtP8Zsg4QIYSwoJ7Hlw1Ked6bOUbAMHBimc+iW3WV89ewy2n7XPjNgIGsilgJBJOGGAuUsPaIUFLAIY3J1FxYJMM4ttrGrkk27PavBzp6hHHZXMphr+nD9CCtOgDsPDOEn79q35hit68q/qjN5ObVRB2krPm3d27l5VxmfeGwGrooLstWxqDsRTEPDq27bjR84On7FHbyNqp96t2LE+L0t/v4zIOxfQSULRmJFsFWrCwkaB7W8CMKkMGA/kjg4nMdMzUOgzEyTjsdG2+z3b8lryRhU55fZWttiRbEKVk72tWufk9EnA6kh5+qekpITmTOJH9I1MqgMFFGWCM3AStvHX947iRsnShgrZTHfClBzQtVRo2M0UrAAkNqwrMBUv04RY+Sj9cjFOoq2jpGihVhIPGffIIq2js+emN/S501EBVydALEgnlUiqEgJ3QLw1UhP02jxoP0kl+dlEULnMUw9AUQCVSdAEMaIJNkbEEhHGlxt0Ix1y92wpLvK1VjM0jW0gygdFSZxH1EsoGlc8TjI3TsZLTtBBCElJhfJFTxUnzUh4tLiFKTgWDLA5ARyBefYOWDC8cmk149Eh/MoOj5sQJI3qKX5qLpGAgEvpO5NEkh9/WgR959fwXLLh23o6fGMVx0QMsPtjCilkKhkDYwWrbSD0q0G69cpSPgmDTfAcjvAUN5CsYuDUsmZODJRxqm5BqpugJNzTZSyBp69p4J6O8BULQaEhC9lz3URS4AJCZ3TMUjGNmQg+hgevLCyykB0AP/pu/fj4Ege3zi/khoDJ6kZCYgZzJlgoJHnXMPHRDkDxjlKGRM37RrAwxdWUHMCcM7SaCpdYyhYOnYP5lBtB6kBaTewqpw/jd/9w5/C8NIsnHwR7/ult6YADNjaKItzhtfcuRffuLCClVaASt6ExnkKtC2dI2NwXDNKxrm//akTmKm5yJlaCjo574wXk2zQjKmh5UVYaPrQOEvFMpGQaHohDI1jVyVL0wCJ1GA2SaYoWFp6nw1jgX1DWUwuOchbwLITwgtjZEwdlq5hIGeiobq3TTcC1xgO7yjhtXfuTcHRemCnYBloeRH2DeXxilt3rhk3AtjUlX899WK/6jfS3IpB6la2++ilGoYLFiJFM2irRIqJShY6Z6g54dMKwJJard5tNBpb/t1nQNi3aXVzkkzF4dpufFFyWkqQNQFndNK6AXmuhHGcRsxcDfgUCTVui7eWZ0h8HuXjtAXbldX8tfWAYRCRRD9ZxIKwo6rTORGEk6d529BgGxxNL8KXTy3hiycXU6CWM4nIHgipIjLoqd4JYgjZX/GoeLaUVyglLqw4mFxqEw9PShweL+DASB6PT9fTUZEfib5AR+PUJRrImsiaHBdW3E58Ttc9J/lVjTGcWyS+UbeaM+mg+aFIwQg5rtO/Vdshaizs9RVKxoUKha136iXjxQR4JpUxOZTNDo3YlOKSc96Tz6hp9BkNk6f+bzM1F0Vbx+5KFvMNLw207ixOIdp+pOxLBPIWkcNn6zRKzZgahos2CqaGeZXhmDzASBCn0Iti2AqIEdiViGKJA8MFtPwIv/PpJ7HiUDen5cdouBFxAznrva4iAUuN/5LrlXOG0VLHtHW1GmzdToEf4eRcExLAeMnuYTIlROT9wzlcWnHx6tt349l7KxBS4qtnl6jjJEkw0/29JJ9XSCCMYxzdWcZNu0r4+wcu4uRsEwB1GoUE2l6ELz21iIWGjx+7bTemqi4WGj6aXohy1lDpCpSR6QQRHr7kweAMyy0fX3hqEdeNFTBWysDUOIYLFmyDI28ZivogUVCRP6fnWz0GpGNFcnIf+dqXMPZT/wGs0cDs8AT+9s3/G8s79/Ucg62Osm7cWcab/u21+OPPPoWaE0LnHIYKcM8YHDsHqKN0z8l5fPbEPFEEBPG4wliinDFgGVpPNigD0A4iEogwshhhjOwjKjki+19acXDnoSEsNLzU64pG3gTuWUJtSEbGIB6txkhkQ8CN+IXlrAkzIHuGW3aX8fuvuHENr2sjsHPTrhI++sj0mnHjc/dWcHyqjozB0fKjnsDxzdSLq2uzkeZGBqlJrcdLS0bTB4YLyFlaKkBJ7EDafrzl/dxurbdPyeuzi7Utb+sZEPZtVLRYdryfEiDDmYRtUVL96rVwNQjoruT1pHumc4m2H8HSiSfkhp2Inu0WB5QVQK8HcvdCvFlJEFgxNA2huJzUyXX2TV3jQSxQtHRURceeA6AnVCklBrImhJBYcQLEsYBpcMhYIoxoQTY0GrloQYS6J7DQ9DFSsBR51ltz3AzOUM7qaPokOY+FTO0/IiGw2PDxhboHXfHRQsUdWu/4C3SNWxnxXKTqzAnROe6MEbgMBIV8J/+SmKWGQkIXNMZzwzgFWMm5I0EcO+KykcVEpBbJBGB1KwLXHG9OoDUWSgGqeHqGRqM+aQIFy4Ab+ABDahCsc/ocmsZRUTYSK20fDAzff3Qc5YyBv/7aBUVkD5Cz9HSfGWPI6ByHxyl/zw1inFtuY5EBeUvHrbvLeHSqjlipQL2Qsg25+txCEFi3TU15W0kM5g3cdWgQf3bPaWW2SfE4j8800PKjlHyvc4GCZaAdRHDDGH7U8T2zDA5T16h713W+rR6hrV48J5cCVJ2ArichcWq+iaWWj/1DeUggdWwnPqHE/ZMrOLyjhDAWqDukHnWCXp5n0uXWOMOP374HL7t5ArsHsvidTz2JycW28hCkGCmpUhIkgKfmm3j0Yg2vf8FBvPPL53DfmSUsNinAO2voaPshqr5A3jZw484S/FDg5FwDT8w00mDv2/cP4eW37EDeIhuBP/vCGTx0fgW6JpCzjNSAdLnlY6Hh41cv3Yux97wFLI7Rvu0O/OGP/w9c5FmMe9FljbIA4AdvnsC+oRze89XzHTuSjI5rRot4xbOII9VtgGtoDGFMgo8VKVHJmjDUA3BiwMoYww3jpVSIkFXq0IQrGAmJFx8exQPnVtJOJ+V5JskiAkttH5wxXFgmD7OmF8HSSaWaqF41RhMMXeM4MJzDa+/c15dYn5xLq8FO24/wZ184s2bceP/kMj51fBYtL0LGIFBczOjYP5RPbSS26re11ZHmRgBpIxAXK9FMpqSlPm3ddTV8wbazTzfvKuPRSzWcWWih1WhueXvPgLBvozI08rla3UZyQwk/ivpaOmwHP8WCzE3p6UwqHsrGW9B5J3dQSpXFqQjj/ZzVt7o/yQJR96Ien7LLreSWzIGu6Azq/o2XbPiRQMuPUgl/IhNfcql7Yhk8BUMEDol7tdzye15veCGKGaMTvJy8r+K/OIFAztRRcwP6rqQCQrEEs4CSqWO5FaQb3AiyRgqXRspsMv3Zrv2h8R+BpSCWafcsGWPq6FLOMpGCZo0ReAIDjK5xZ7I9Pybyq6VzIO7EAPU77tTRo/co2HRcq+1QgVxBPC0pkbM0cADLESnkiHemIaNG5Ym1SN0L8dGHp5E1dXBGXYaWUrwBBNyKGR3P2VNBRVl15DMcRyZKODZVQ8uPezyGEoUdV2BVqAMUCUkZqkIiZ+r45X97Db54cgGPTdXBGUiNqrhUlayhskwNhJGAZWgoZHS4QYSmHwNKBGFoDEEkU5NSYO0ILXmajoXEq27bjdPzLbznq+fBAOypZHFqgQjuyy0ftXYIqE5dkhgxYJu4sOLgf91zGncdHIKjPPFMdf9IrFkgO3Ygt+wewP7hPCYXWzg+XUcQxWnHWucMTJ03gaAHta+fW8aP37EHf/qjN+NzJ+bx8WMzmK15uFRtIxQSOwYyqScWAIyXLDw+XcdIwcYrb53oCacWgnIXE9PTrlNY/V2CCwEWx8CP/zhy73wnfmLJu6JRVlJHd5bxRz98U9+R3G998kSPAS5jFE0Tt8gQteaGKGd0SEjM1j3kLAqqHitnkLH0FBgnXb3BvAVTIyuL7k7nWNFGwdYxr7pjjDGUczTK1DjDUsuHBMeBYRtNP0LNoSQES+e4Y/8gfmpVvmS/6h6XCSHxW588sWbcGMT0kNZ0QwgkkW9EX3AU920gZ25p5LuVoPHNRpqbgbhXPmtiTah2d222n5ej/Fxvn+6fXMYnHpvBcMHCgeECKkZ2w+101zMg7NuoNso4vJxu1eqSALwgQsEy4IUCZdvAcivAej0ouj1KNdpgnVxFAfhd7vIbdePWK10DDK6lXZcrKUNjMDiNVyUYdEaggeKaZHqxWhpDw4/AQwGNAQGjMa2ukXs1dZGoErPR5O9JV8kNBWIRpCq9BDNzToIAP5bw3ACx6CQKAPT9VduksMtbOlacANikw9Rd3WCt5+clEMUSkVpw626Hp5YCMZ0hjmXK3dNY0i2U4GApgRtAmlWpy04clcYZdBkjFh2X+lgBPXKPJ0K4oTEcGM7DCSI0/Qg6Y1j2qLPAAAjJkTE1mEoYwRVpu+HS0yxntI8MoBDkchauMmgcL9l4/jUjMDWGTxybw3jJRmHVkzFjDAeGC5iqOihlDVyquqnH0GjBhhvGZPIrEg4bBWSP5i388kuuRdbQcN+Z5VRVmgRihzFZC5QyJqJYIGtqaPoRShkDlqGnI9C2HyGMWU8m4+oR2pqnbJ1juU18uaM7y2CMYd9QDnU3hB9GaIQhOGMYKdg0rjJ0XDtWQDlr4MxCC184OY8wJnBNruxJF52+T08pZwsW7U/Ti9AOopQob2odYMQYYDLACykSpu6GKsB7DC8+PIovn17EWz9/CgNZ4rp1q95qbgQniPHIpSqWWz5KWSPtaGRNDVUnxNGdZcw13F7gkjMxWszg4zt/EN/9ktsw/iMvAxjDkQlrS6OsrVQ/N/7JxVZfA1xL11DJW6g7Afwoxkpbopwz8Jy9Fdy+fxDvu/+CElT0RhkZGimp616Igq1j/3C+p9NJ4Jyu4kqWkhsi1Smv5EzEQmK+Sdy6JLXh7q5kgu1UvxBsKaVyn6ds3ZV2qPJTTZQydO87t9RGOaOvO/LtBjU1J8Dp+eaaoG1gayPNrYC4r0+u4MAwRR31qCylRMMLMbnYxuEdxOtbXZej/Fx3nywNYUyinEjQw+QWdFVpPQPCnqmeCgUwudSmroPOyTCyTzsm6XwJxRsSspP1txo0XA6EimIgZ3YI8ldSRNaPFf9FotF1hbhBBFPnaLdDRfymPfaaQTqqGcyZ4IwDCDudRoaeCJ7kPkjcGnpNQvG2FOqJYgnRZf3RD1u6QYRYkE9RoIKOITvGituxDWFQPnBdnbHVTUXK46QOVzlD4FvnxEtxujKrks6klASqTI1jpGDi3z1nNx66UMWF5TbmGh6CSGUwMoYoilOeHldquYyhYaKcQdUJcGyqjjCm+KRSxkAlZ6Hlh3D9CIEislOiA1Tnks6Fgk18GI2znpvyfMPHS28ax6cfn1cGqWsr8Wz64Vt3qpELdTcKlo6qE2JSBQF7IYOuCXzXgSG87gUHcWRHCW94/yPwI4HhvAmu1LOmpqWGrQmpe6xkI1xxUXeVVxEnkHTGbQGQGC1mICTg+lE6Qnv5LTvwuRNz+Kv7zqMdRNhXySFT0rHYdHFx2YGlc0znXWQNLe2SeZFU3VAifo8WM6n7eLUdYKnl48lZP31gcMIIpkb2GwAplYlvxNBUyryCrafntaFsP1afVZzRudxwO/kRXKlPTU3DcKEXgHXn+3EwjBYs2KaedjRecmQs9bNK8hVzi3P40ff/KT7xM/8V7byN80ttLNzxfIx3bTcRMSQL//nl9lUjYXeComkU1/brWGkHsHRS+JazJpbbAfYN5fC67zmAQ6MFNL0IwwULF5baODRa6BmRJXFG3eCle0x4cq6Jt33hNFyVp9jyovTes3coD4MzzDY8vPbOvbhubG2SwHa6Ov1CsJtelNqN6JzB1GPonKUj1YyhYbnt4/HZBnaUMmtGvqtBTRALzNZcHN2lI98HZmw2KuwHFJNKQNyZxRZefdsezNS89Ge9kHhgy+0AOiNO7+98+skecHW5ys/19qnpR2h6pM5sKH7gUp84s/XqGRD2HVRb7UhlDOIonF+m4Nd+v7caG12NTlx3SQAtf3VI0OXXelS0WJDBX/KeOuvYEiS5l14Yo5TRlKs3/Z7GWHpMpASEAmVccbgs5T7PmUQIUsR5Um54/JnaVmL8mYyPErsJsPW/w36v9/u57qxLnnS8JMUg3TBWwDcu1uBHMlUG9hwrtUEmaXQx1/Tx6KVqqgIlqb9AEEtIQdwkAOkI/d8/dzeuGyvigw9dwsm5JhgjgnkkiNAcCR83jBcwVXUhhUTW0hDGUARlsrmQgsw082bn1tX9ZN1wh7Y0orhurIAbd5ZwfKqOCUU8HsiZuFXZKCRP0b//iqPQdY7JxRZm6x6lCkg6jkAn8sUNY/ghZXAO5i2UMibOLjYx1/CRVeKO518zDAmy2ji/1O4hSH/k4Sl89sQ8Gi6Nv4JIYChvYarqwotieJHAN86RGtHUNRQzBiydYbEVQAgJzjj2DmZTAPb4dB1uSPmpuhI3xFKm9iOaGr1Cne/Jsdo7mMPewRyemmsSSONd9g2gDiFjtIh2c3CEkKg5AYI4xmLTTzthnQ5LjIxB41LL1FLwfHq+ic88Pocg6vzetbNn8B9/7+dRWlmAwRne+bq39B0rPV0+VkCvTQjQEewkdjcaJyXny2+ewAPnq/i7By4pYYvActuHG8Y4MFzYlK+WdOGaXoS8ZeDweBGLrQBeGMM2NIwVKcGAIt8YJsrZNZ2j7R6H1SHYQOKHJ1Munm1oODSax3zDQ8ONEAky/d0/mMNPP//ApgkGi00XZ+YjPHx+BYcnSthZzvSYPm42KuwHFLsrAXFjJTvtKD56sYbJpRaiWKKUMbB3KIdKttfw9/B48bLHpOvtU6iEXLaloe3HWG4HOD3/jDrymeoqDjL21BjbcKSZ1HI7wLVjBZxZaEFjDLbJ0drA2+sq46+0YgFq7UYd1d7Vru6tcgZoGkcxY6LhhcrygsaEBie1U2LJIJXzN+fdo0AJ29ThRzGyJl2QfiRTvyl/E4ln8q9MSHCNoWgZ8OMYjjr2G1HjUvLvJp9XoAO8pBoXaorIf2y6noJPQ7IOyX3VcbJ0pkaZDJMLbSy1gzQTlDOgrkBZ4gOlhlm4f3IZZxepY8ZAjv6McRgaUrn/6cU2TI0r/hkJGRio+1Z3Qxg6vW9LeTklldyUixljS0aQ+4fyPbyc7g5Q04uwq5LtITvTOJShnDVQc8LUIZ4xWozDOIYXSpgaR9bQ4EKglDExUrTxw8/a2ZM52Y8gPVPr9aBaaPq4uOzA1KkryhjScZWQMs181ZgygQV1QgayBiaXWvCimIQKTPmExQJcEmWAQ4Ix3hHJMIa/+/pFWLqGIxMlvPSmHfjymUU4PoE/Qy1GkSKXF2wDO0oZdQy6QMA8AdXJxTbGijb2Deepm+JSgLgTxBjMWenos+qEWGkHOLvYhs4ZJpfaePnFh/D//u1vwQo8zO88gE+/+g19x19Pp48V0DEUvX9yOc2XHMpb5DKv8mk1xvD5J+cRC9mzD35ErvdTVQeGxrfEVysoleRDF6qK0iCVotfFvqE82bqsA0S3exz6WaB0xAEi/Z52ljOYKGdUlyyEE8Z4/YsO4eBIId1WvxFdtR1guuYhlhJVN8RD51cwN5DBgeECBnLmllSs/YBid3WDuP3DeVw3WsBPv+9B8GWGjEmWMpOLbSxlfOwbzGG5HeAjD0/Dvo1v2mFbb0y63j4Z6loMIgGNA3N1d1sUmmdA2L/ySkZSEIBkctNumK5GPydmGogEcb7C7Qy4NymNbT5SUzxwFCwNI0UbF5edq/b+G1XC29A5Q97SUXMkpOrnzDcD5G0dE2Ub01WPuiEM4JzDZB2OmKExRDH9Pcl+o4gQ+rfEe231Ieh+LQE+g3kT55bbfbM7k+LJL2NzANb9XmAdVSx14CRCAdiGhli5uvftpLHE7Zxa/WPlDGbqHoJYwItoDEH/rrzKOHVDTJ3j/LKDM4stHBrJY77u95h8MkaZeQ2XOE5ZU0cxoyOIlL0DoEwudQgpUXPCNCy3oEKmLYOjlDG2bAR5ZKKEu4+O4x1fOoszi/QErWsMO0o2fvyOPT2LV3ID3lHKwAtETzYj52QlonNSRz4510Qpo/ddeKNI4NKKg8Wmj6GCiX85uagWUBvzDV+NADtmspb63G4Ypxy+IJZYbvswNY5QCOicK5VhhLmmj4ZLyjZHcZOklFhs+qqrK+HFEhqLKRmAc1RyVkrkf/0LD+HFh0fx/OMj+MqZRbhBnFICDI1jKGcqg9GBlMPWDQJumijj2FQNMzUXdS/CnsEMAvUQlTF07BvKAYrsnY4oGcOB4Szu+Nj78PpPvwMcEk/ccBve8wt/gHOhvqaDdDVI35tVEtJ9z5PzqLuh8hIjF/1YSpSzNLo/v9TG91w7DKbG03mbvvczCy3sGczi1bfvoa7MJmPSth9hue2TdY6lq5E+lCFsDaWMgdv3D/WAlss9Dv0sULKmhozBsdj0UcoY6ffE1Lk/3/Bwk3p46a7VI7qkC0tRViZqboAglphv+HD8GAdG8ul5uZGKdbuu+vecnMdjl+pgQHpddvI6YxwYzuO0Mh7eSoet35h0vX0qWDoKtobZmoehgrUucFyvngFh/8qreyHtBgL9ioFutE4Qb6ljtt1KLqNkIe9XiUJN1zhu2FHGcstP44Wero5bzz4yunjJcgDI6KQELGUMxEKi6cXIWRq8KFZeX8SPSW4mDS9UfC6JMKaxIlNAhDEGWyciexIzlNTq7ymKaeHkYLD0/rmfgALYcnvjYNn1hoaaq0UCkFIgFDQG5TpHrBb+9Nio/ybAB2DpWC4dmyqPryjZMQU6Y0HbcsMIxpKT+iAlJp9Ax/dMgPhIN06U0kQBXWM4Pd/CXMNDGJPlAQNTppjE80oWKc7ZlowgH5+u45PHZpExNNyyayDNHW24AT55bBYHhvPpz3bfgG/YUcS55TYabgRXkEo0FnSO5G1StI0WbPzQqjiif3p0Gu/40lnM1D06Zxh1l64bLcBUnmTJE3QYE3AN1LnnqvMlUR8nY+vEZrjuhdAYR9sjm4pIkAp4n1o0a04ENwy6OIzUOc2ZWg+R/yMPT+Pw3UX89PP2ww1jzNZc2AaHqWmwDIam11lAgbWmnnlbx827B9JR7NmFNmIpUMlYuHas0wnpHlGKIMLrPvRWfPc9HwYA/MOt348/fdnPY580sGcwizsPDpJXmZA9/lCXS/reauUsHYM5CxpjqjvV4WkNF2ycnGsglhKtIEbB7qhdk31YUIBms30QQuKdXz6HljISXmqH0DlxVTOGhroTQuMcL79lRw9ouZLjsNoCxW8IlLMmYklEc0N1ozez/ugZ0UmZdmGTTrHGCUgaGkPdi3BmsYXvPTyGV97af1TazW27fV8FUwlQLNqIpETLC1F1wx5emhASnzg2u4avaWgs7bDP1l0KCwe7bEXlRk7/hkaiIgZ17a7hUq5fz4Cwf8XV3V3ReWLKKJW9Qu+qrQHQdN6J+3kaKtmq2RVdk3R9AOp82YaGUEiMFCxUciYWW9TW5sp/4+r15NaWkFL5KVEgM9kV0LE7urOEOJZ4YrYBXeMwpSQFmfoAOufgkDB16tR4YWfRlLFI1X4Zg9zdnSBW3R3yUkv5Vsm+AGgHMUYKFmpugDiOU7XhlRZnDIYCdrGgbSakfyEkAhA4sw0t9ewClDGrpNBgLxSo5AzMNz1YRkfF2u/MoVEqOe97IdDwKUA7iCl4mOKMmAqVZghi6izlLT29oQLAYM4k0QiQxr8EkcBszUPG1HDTrlK6SGxmBNndRUhI1En1c7HvvgEvtwNcO1JAJCXm6i7OLLZh6RquHy9irJSBG1B49Z91xRH906PT+O1PnEjjVawMR9OP0GoHODHbgKWTH9NKO4CljHw1TtcJT0zakDY9AYAMOzMGWgGpCRmILC8gUbJNXDNaUEq3QNFxWKqKZEm7mXV81boX7SMTJbyhe5EOBTTBeoBsoiBcDQIGciaena1gruGh2g4wUrCw4pChK9BNAqdu3T54uOH41yAYw6f+w5vw6ef9MAp1DzlTx0LDw/sfuISPPjLd1x+qX10tf6imF8HQOJ69t0J5i11GoCvtjo1M2Idwup19+NyJedx3Zknlq1pp8oITxPAjgcGcicGcifwqsclWeVPr7cN6/mEfUQauW7H+SEd0Pimel1skXkhK49SdvnasCCEknDDGq27f3TPSTKoft20gayCwNDx0qUrWGZI+10jBStep88vtvnxNoNNhrzoBihkD14zmryi3cj3z29v3D+GmXSV86dQivnBygcybt1jPgLB/xdW9IJYzBsJYIm/r8ELl8I3OImzodIPWNI7gaUA6CSFcSKwJqE720w1JGWTqHJWsidm6q7p3HIJLQDJoUiCIewEmW7Wdyy0G6iy0AlJBhpHyBNMZ/DDGpaqXKkEtXYMb0udgirAlGEMQxYCy7dAYAZdkjDSYM+FFND4i40cyfgXrdABpQaSnqUgQkTqIyDV7O0a3G5WQEmHU6Z4xUGg1ZwxRHKcO9KaupYaqDARcTF1TAc86Kf4WWsiZ9BTcCqK+XwID3Yzpu6WfDYVAFEo4Pi10prpx24aGQyMUNnx2sY3xUga2GpOcnG/C1DiG8mbKEeOMYahgIWNwPHapjpce7XQL+lkPJLWmiyBlms9o6BzjRXtNF2H1DdgLYsw3iXh/865yx5Ns1TjomuE83vGls3CDGCNFC4zRZ82aOlpeiFAQuL9+rIC64t5IIDW3bfnkHZUxWM8iU8kZMDQaW9XcEM/dV8H/+/z9+Nv7L+LCEvHDkq6TkBKDOQMLTVokB/OmUr9FPbE73Yv26kU6Z9Fi3/ZjTC62lE3GOiCAMQwXbLT9GC+5cRyfeXwuPd5+FPeMKAcnJvDeX387Bucu4snnfA/0po/5JhmWHhzpkNs7/lA7r8gfaquVAAwvFGuMQFOfN0ad4Y32YSPlohASHz82Az8SGCmYYIwjZ5GAIVb8rKzqTK0GU9vhTa1X/a6RG3aUtqy03DuYw0DWxNcnlxHFAg2PEgPaAY3IExA5XrIhJHB+qY12H3rLety2MwtNLDQ82IaGgm0Q3UEAD56v4nV/9zDe9G+vpf3rw9dMSuMUVbejlFnDBb2c3MqNHvDuPjKOX/nwMRw7N7vu76+ubxkQ9pa3vAW/9mu/hje84Q340z/9UwCA53l405vehPe///3wfR/f+73fi//9v/83RkdHv7k7+21Yfiyxo2Tj5l1ltPwID12ooqpiV8KY5O46p67N1VY60iKMlKy9nutELIn0rXGGJ+ea2DOYRd42MByTT48AEEc0gFHCLsSSAGSkMiOTSv5dJv/bwmcKY1rMVpcQEo9N1VXnQcd806dumJZ4WUE9/UkKAlegKxKAUC2uxOdnMGcijKl9nbc5HD9CEKtQbEatcp1z1Bx60q67AQIF1K7W1yJkZ1tZnSEGS9WejJECMZJAHFCeZGJNkXw/Q3kLe4fy5AcmBEIpUclb0Bxa1BPH/eQ96DMx+FGMcsZA04sQK+NYk5MPWeI4f3A4j5+4cz/GyzY++sg0Hr1I/CI3jOEGEWxThxfFqdGolOR1xQA8crG65RFUdxeh2g4wucpYM29rsHRtzcK32lbgr75yDuNFG/k+nmRJZ+mjj05jpu6hmDFSAAbQuETXNPgRydpPzrVSJWMiRrAN6nY1FAiqOhQ2njFofBnGgrzsGMP3HRnDrXsqsHQN/+ue00pwYKRWGW4Yp5mGhkbAqTt2Jzn/uhftZJF+fLqOv73/Yk+XYiRvkZWJT0kd3Z0ixlgKAm7eVcY1o4UUvNacEDdcOoFr2kuY/r6XYyBnYiF3AAu7DgBS4vRCE0LInoDyXn+oZRwczuP49Na6GZdjyglszEvKW1oa9J43e0Fo9z60/Ai/9YkTOD5dhxPGyBoabpwopeO47i5OJABDAwCWJkponKPmhChnzDVgaru8qa3WRg8vq+vEbAMLDY84sZJMuwECgG4Qo5wliw3GGFw/6gsK1+O25SwNUSzR9unhPGNqXXwvgZVWgD/+7Cn82vdfty5fM8nttHSOHzg6nnJBrzS3cr1jpOscr71rH/6oVtvS8QO+RUDYN77xDbzjHe/A0aNHe17/xV/8RXzyk5/EBz/4QZRKJbzuda/DK17xCtx3333fpD399q0wEurmQxe7UPwdCs4lX66Ux3MViwjaBDCgxlWWzlNOUEIMN3VFehUSGYNuQKWMQW7RksjIiWN710Mo5eUN5jDb8GgxkMSFSbLsGl4IP4y3NMbkq0QDCRlcqNEjY4lTPJCzKGRa08hLrTtqJ4j6iw9CRVDVOQHNlhelijPBqEMlJW3LMjQIIVIuWP9Ako35df2KeH/0/hrnGM4ZWGyrYyQ7Hbxk/8OY+Fk37Sqlcv29gzlkLR2LTR9+JJA1NIwWLbS8CKNFCyvtgJ7kZRIAT12/pCNmmxqMmJHyTtdgMCKsx1Jiuubib75+HodGCzg6UcRjl2rImBrytobpKtlAJIHSGYNjIEfhy00/QtUJ8dil2pYWkKSLMFd3MbnYhhfFPTfu5VYAzhjm6h5u2rXqmHfZCnDGkNnAk2y+ITBdcxHFElam91v0I4FInTcSgMbJULXpUYcvZ5IwZddAFk/ONVTmKAMDdVJrDv1cxtQwVDZx064ygN6O3cMXqmh6EWydrqeCbcAJIiREgERVG0Rxapi6etFer0txYcXBbN3FheW2yq9FmveYKNKS7XHOUvDK/uED2PneXwaEwDtvOIRL19+SvlfDC7HcDlBSyQMNN0xBHWMM40Ubx6frePHhUZxaaG7azbgSG4uNOECzdRf7h3IAA86oju3qfbhpVwm/qyKghJQp9+LiioMn5xp4892H6Z4Gyn+tOgGKttEDpjSWdHHsNd/LZvu3nQiny6kEPEVC4rZ9FZxbamNKqXwNjR7qMmqkKKXETM3B3qE86m6IycXWmgzINf5bKgWDKeVhJWemHUhDo5zYqhPgcyfmU9PW1XxNzoi6cPv+Qbz4cKd5s9Xcysupw+NFvOymHXjvFn/+mw7CWq0WXvWqV+Gd73wnfvu3fzt9vV6v413vehf+7u/+Di94wQsAAO9+97tx/fXX4+tf/zpuv/32K37vhIj7dFQ/Bdw3s2xDw1KL1FcnZuuoe1Gq3uvujFztihXhKGdrsA0djEnUHQrkTiJRNM4wWrQgJV14payJG8YKmFxuY7rmQWPEQ0rGRQmXTGMUCF7OGJhteKTmUT9rGXRq6xrDUtNDvA6xvfuSS7pnCfeq49VFYzovjNWIkW4uLQ+IlZFaLCUgVSzQBsdDgrIapZSp6jHZh0hQJIyh0WdaUd0wAGl3pHvbbNV/t/IdSgAjBQpErjkhltoBwlgg7EJyCVTgDChlDQxkTRzZUcIrnjWR8kUWmj5MnWHnQBaAxGDOxHnuQOPkk1Vt+3AC1cGTZN2QSOApOJ1io3aWM5hteGQQqXFlEqrh/sllfPDBKUhJ5H3i5MhuqyH4kUDVCVHJmsgYGmpRiK+cWcIP3rz5wrN3MIeDw3l88vgsYkGk5ORI6pzABGcMX59cxosPj/aE8yY37ZylbWkcNFHOQNfIZ0rXoAjmSM1OTZ1AqgSDF1L3y9SB68eK2DecxZmFFiCBZhBhvGhjMGdituGh6VGmY8MNUbQNtP1O1+7IRAlSSkyvODi72KZQcuXAzxlLuwVSUkj0bN3DjvJaE86NFHiDkYmTc00EsUAOSDlLS03Ke7xurNCzPc6A/X/5P4E3vxkA8Ogtz8NXszsw0JX/eGK2CT8ScMIIj16qd0DdUB4MwJnFJhYaPpwgVjmm8bpWEFdqYyEERUG95MgYvnJmCQsND/MN2fM+APp2VH7olh1455fP4eRsExpHTx5m2w9xcraJd947iZ9/4UHYpoZxU4cTxGvyJluqi3O36uKsrqvR1en3ubcCTrrBU97WMZAzMVq08dRcE6EQsHUOLxKYb/iYb7ho+WSG/XufOrluBmR3hXGitpZdkXwkeBKCXjM4x+RiGz/7/AOYqXk9fM2ExD9etPH9N47h+HS95/Nsp+O31WPV8iN89JFpnLgwv+VtfNNB2M/93M/h7rvvxote9KIeEPbQQw8hDEO86EUvSl+77rrrsHv3bnzta19bF4T5vg/f99O/Nxr9TdOI49L5+3Y7CpvVtxIA46CYlz1DOTw508BszQMgUxuAqhOkbuRXu4j/S9J9PyIyl65xZEyOlk8O3qGa81uGhmKGwQ0i1L0Qc3UPkBKRlIgC6tyJLsPTWBJ5/YHzVWUFQa8vNH0UbYGCTdmCGucAYhXHQ1Am4cJ1f0+xIG4UYwyeUgbGyh5BNfLUZ6ExYiwkfCHSG0QCsLZS3ZgwGZcyEGi0DK6sHZDmJYYqx6+7ElFD5wa1eWkM+MGbx/GV00uYrbkIVBB5t/o0ORM4Z7h2pIChgo0ziy3kLB3/9e7DfX2u5hs+bIOj6YXIKYl9Es1UtA1Eks43N6DvoenHGMyZaCtSeUnlbba8CF4YY6nlwwmogyMkS49v9+eMFSm66YfQOcNQzsJCw+8ZSa63oHDOcPv+Cj722IzqPsouZ/4IlqHhwFAeZxZbOL/chhPEazoqB4aJDzNTczccB/3QzRP4i3vPYmrFVV1c+jkSf9B5V7R13L6/oqKfOhE3r759DzhjeOxSDR96eIpGp8tOmtvpRzTiAmSPEODx6Tr+7AtnsNwOMJw30fQTrk6kumzEDW0HMeVs7q30Vayt16WQUuLcchumRvmexawBLyCVaNKtGC3aODxepF/wfcif+mmwv/lrAEDtZ14H7Vf/Gw4dm0vBQxgLeCE5tds6iXQSm4GaUyUSvAqa3zOYhc45ZmoObEPDK2/diZt3dbpuV2pj0S8+arRg465DQ6nnW/J7/Toqk0stPHhhBYyhB+AbGiULrLQDfOPCCqRAOlI80tXFSfJ4dY3yIV98eGzda/pqdnW20zlcLQxgjGFnJYucpafJE+0gxnTNgRcK5C0dOweyfTh+/TMgDY0eGITyDIyERLPlI4hkj8Ck7Uc9pq091+hQHhIS77v/4lU39F19rBKj3rylY1fO2HwDqr6pIOz9738/Hn74YXzjG99Y829zc3MwTRPlcrnn9dHRUczNza27zd/7vd/Df//v/33N66tPR02tXkl3gYHu8k9TY+ybWhJ0wXzXvgqqrQDnl9so2SZ01XlIooeeDuCoc9ructtPZfHUpqYLN1bWDclIzw2In/LopRqcUFBYtCKGUyeld/vp6EwmIIy6CsvtAA0/RN7UYWgchiZSTy1/HeFKknNoG1qa8xivGtFy0EUfio7f19UUkzJGOZfLLT8d50kpU08tAYk47uyRxgBD1xBGApGUm+6LoXHcc3IBMzVPcXhYGtq9urI6x6Wqi7xtwA9VfmOfp8dux+qaG9IojzPytwpiLLQIoE2UM3ACGjFkLB0jRRun51vImmR3EQsyO5ytuyRG4GSeGoUxPQ2jV4whgdROpJQxsEMFsSc8rs0WlLFSBmNFG0FMv9OdV7h3KI9SxsD5pTYevVTDZx6fW9NReXy6oexU2LrjoNv2DeATj8/C4GSUKgQD6RhoHB8LInZfP15COWulxzQWEgtNH20/xk27ytg/nMeBkTx+9cPHCCRqFCg/lLexbyjXYzFxneJfJcrPqhPi8emaeuhhqZnwcMHCXkvHT9y5d90Mwrobou6EsDUOCUnWJIylCsecpcMLBa4ZKcDUeSpsYBJYcehes5/7aN/9MuTu/ypiruGvfvSNuPfZr8TBY3P4oVsmlMdZiL/5+gVwRnyrqhOmEVNFW8eMeiAj2wjKM2SM4dAomUo/Pt3Ay7s6oFdi37DR+LX5+BwOjRb6ut5316n5JlpetIYknpy9yWc+vdjsUd1eM1Ig2wsvQtUh/7ifet7+TQHV1ejqbLdzuJ4wIEmemGt4WGkHiqIQbjsDsmDrKFg6ak4AXacIJSFIpMTA0i7ZcjvAXN3D9x4Z6wGjc3UPH3roEqpOeNUNfdccqyLHA+dXsNIKEAuJ0cy3gU/YpUuX8IY3vAGf+9znYNv2Vdvur/3ar+GNb3xj+vdGo4Fdu3b1WCEAwEDOgK5pcNSTYRTHcEPV5gTWzUz8dixDo87On987ibobIhbkZJwsZGEsnhYABiA1fKXqLKR+GAOMxlMZXUPdDeGFInUFD2MCN76UaYcy7iJadZPuMzqDG5HZaDIMpM8lUXPDVJkZbuFDxpKAmMEZTI2hlDHBGbDc8uHHEvUuovbVPmYSpBxtyBBhTCCkkjOgcfJuswyOQyMFhDHdSLxIIGtRrpula2h4AapOZ/+Ij9URRORUKPBMzUNL8eckJGSf89zQGIo5E24Q4/R8E4N5C9M1p+9TdveT+CeOzeLvH7iAlhdB1zQUMsqCQ0hcWHYUGZ3jiOqQJFEpUlIHqmAbcHyyL/AUTy1W8/JuH63OGUXXqRvEODHXgK1zPHaphrOLLXz4oSl4YYwd5WzfG3DB1lHJmyjZRl9iecujLMivnFnasKMyUc6gkjNxZrEzDpooZ+gJ/OsXcWqhCTeIMVyw0PJjZeTb6WIOZk3sGewNGe6nbMsr36rRog1T4x2/NrVPCbC47+zSGgCicQY/FGj51FF1Qg/ffXAIv/jia9ZdiB6fruNvvn4BF6sOpqouTGWjsX8oD6G+l4Rf2O33Big+XNNH04sw8+7/gx33fxVtO4f3vOEPcOHZd6G86rsoZQwsNn3sKGcxHAs8Pl3vGZkKxR/VNJ4SvYH1AdXl2jdsRBIfKVo4t9jGu+87j99/xY1pmkL/2moXiojir3vBQbznq+cxudhCLIBSRsdz9w1e9khxu3U5ncMNhQGg7+DgSAELDW/bGZDJw0zG5KlfHmMUp5TwZjkDLJ14nN20gf3DeQgh8Y+PTqPqrA/+LtfQt9+xanq0fg3kTLhhjIvL7S1v75sGwh566CEsLCzgWc96VvpaHMe499578ba3vQ3//M//jCAIUKvVerph8/PzGBtbvzVrWRYsy1r339P3EhKWQa7fTTdEMaOjmOGYq3uwdA5NUyOnb5G54uV2qhioWxDEMc4udp8YEpbOwMCuuhqyu1ZzmJLPEasWEmOAFwnwGKmqDugQwzlUrE4Xby0h5pPvGdKQaABIbKWE6IwIBSgTcqNKFIC0qEslECD41koUjIqD5q4TP9S9je1U93crQUatts4wkLcQRAI5g0PXKP5luubguXsqaLgham6Ekq0jbxuYr7tr9itxrdcZQ9HWUHdjaBzImhr8ZNwqZU/3V2fUmZGSVJIaY5iuu3DCGO+578K67fwkTLnqBNhRymB0t41IkfrzloamH+HcYhs7yhkwRtFYNC4mdWOgxAhjBQtnvAg5g7I6w4BAQ3KfXO86iGKJRhyiIYE//OxTMDSOKBZppyvP9TU34F//vus6i8hI/3HinsEs5jdZRFacAD//woPgqkPU/QResHVAEoAKYoFSRsdYyYbOOaZqDtpeBAmKSuoOe+6nbGt6EfxIYLyc65vtmQCLxaafApBuZ/rBvJkC/ZYXoemtn82aPOkvt3wMZIx0nLnSDuD4dewbykHjQMuPULQNnJ5vYcUJUn+9vKVjIGsiZ2l4581346YXHcPk3a/E4u5D0LB2MXzpTePwQwG7SEKYXZUsZusuxQCpjoeucewfyqOSM/t+7m5Adbn2Df06aCvtAOeUejaIBGYb8/iVD0u89q596wKka0bzyKtx/eogdCmJ+5m3dVwzSsrTjz4yjcWGD6HEDYnZ7+HxIiYXW1eNPL7eeP5yOodbEQbceXAQ73/gEjLm1jMgu7ltdxwYxncdAP72/gtk2RNSwgKBf46crffQBpJ9ezoNffttO8mPzJoaGGOot9wtb++bBsJe+MIX4vjx4z2vvfa1r8V1112HX/mVX8GuXbtgGAbuuecevPKVrwQAPPXUU7h48SLuuOOOK37/th+jqfxKNE5P63sGs1ho+ghiARbLpxWcbLcuF4BxxlKX7NXlRxIb08ivTiVjwASkMPWWTPG4kmsk6dhwzsASgCCJvM+6uGCJK3tS3X/WGIfGAbeL8McAaBpDHK0duyXdCM4YBGQPiHJDAT/yU+uG4bwFCcCLfLJIWAW6hOz4oW2nVo/YTI1hVyWHfUM5PHKphpm6R+8jJdpBhIa7gIMjObziWTtx7+klPHKxCiegm1PW4MShU5YdAkA5o6OpZrDdmYeGxsAF+TUlitXk36SU8KMYdTeEEMBE2cbeoVzfdn5yYz8518TxqTp2lDJrLBtKGRMHRzhqboBX37YbXz+3gjPzLYDRQj5WsrFvKA9DYzi37CBUBreGJuBFMgXt61WiLAUDHD8C58BwzsKKE6A9XceRiRIqOROMMYwVbTw2VcNnn5xLXblPzzdRzJg9rvmDeQt3HRzC36tFREoCS90ds2QRScaGq5/Aq+0AQgI5gzhODS9Ey4twy+4BDGRNHJ+qoa6y+bKmhqVWgDm1gK12SN8qsBguWLAMeohMnOm7VXeJtULVCfGXXzqL17/oEPYP5dc1sqVxZh1umGSiRri04kAoLl3DDeBGnYtSSonnPHovThy5Dafnmziz2MbSa//Lmn1eHbwexgIPnl/pyk6kB4bxrI0Ly046Kl7vc3cDqp4ujZlDK4jTUWne1Na1b1jdQesGsVlTR8bgqLsRTsw20pinfkBs/1Aez94zgHtPLa0h2zsBEdSfs6cCN4jxZ184k461xssds9/f+dSTGClYqDrhVeEzbTSev1wD3M2EAVlTw0cfmd5yBmQ/btvx6Tq+NrmEdkDKaClJzEIh3R3aQPe+XamR7UbVb9tJfmSkKA3kF7m12jYI+8xnPoN8Po+77roLAPD2t78d73znO3H48GG8/e1vx8DAwJa2UygUcOTIkZ7XcrkcBgcH09d/8id/Em984xtRqVRQLBbx8z//87jjjjt6VEPFAAEAAElEQVSuijJSV0/ojBFXo+XHaHkhsoamRk7fQgjsMssyeDreW6+DIDf4t6tVEgSkTA7KJ9Q5bJ2nMR05kzx3nDBCwSKVkMapk+F1ZTCmN/kN3iuMxZoxsgQtLP2KM1oMJNYH3UknRtdIVSZl5/XVv3IlE+xkW6bOO09nCWAFAEVSdcMYZxfa8KNZzNY8eKGAzqE6D9RxabiUmRYLiaYbgjGm9j9K+UgiFsqqgojvJdtAO4jhRUSeb3n0e6WMhomBrPLP6u1gCCnxUaWYXG4FmKo6qLkBDqqw3u5KbnwjRRuvum03Ts23cGm5jS+dXoIfUgxUxuCwDY6lpo9S1sBo0cLp+daGx5WAtJIWKOAZx0Ddi1DOGvCjODUkrTokj59veHjbF89iMGeCg/hLZ5faXfmRGdx9dBw3TpTwkUemMVf3MNdwe7zEihkdY8VMDwBY/ZTcfXM2NN7jyzWQM3FghJ7il9o+5drFApYipX/0kWlwxvpGJ20kBLjzwBD+5dQivnFuBSvtALoa+wNQ0VsUyVV1JP7l1CKm6x6O7iyli/vqz1DJmTgyUUq7QVIy1LwQz9pVxmNTddScEBpXggIp8HNf/Gv87Fc/gM89cSfeN/GH8CK56WK41PKx3Pax0gpQyZvQOY3Om36UZldSisL6nlzdgCrp0jw528AXnlrssYjgjGH/cK6vfUM30M1Z2hoQG8ZCXZ85zDf8dUdanDP89PMOYKHhY3KprWxBkH6O68by+Mnv3oePPDK9rvL0/nMrmFxs47l7K8iW9CviM23G91qPHJ/URsavGwkDhJDb8jLrx20r2DoG8xb2b0QbWLVvV8PIdr3KWRqElJitOShlTcqOtPQ08UJnDM4605J+te09+KVf+iX8/u//PgDg+PHjeNOb3oQ3vvGN+OIXv4g3vvGNePe7373dTa5bb33rW8E5xytf+coes9arUaZGPkWBsjyIhcCF5fa3VPeru5SHnyKwb+HnGXUHhNwcZCXcoadr9MoA6IzcvnWNYSBjwtTJAZ4ziRt2lGDqHCdnG4qIHoMxAso8QVRb3Ld01LmqItF/E0mHZTW7g4FMYC2VpRlLGqEJ0dtNezoAbKy4WueW2hAgk912EKPphoilRBCRiswLY2ia6jCCACJjDDlLw3DBhq2HWHHIZycWxP1KRiMspmilKJbKIkGgqUAxZwymriGIY+gMKGVN5M3OrSLpYDxysYqn5ho0IitlkLd0LDQ9LLcCeAF1n7qBmKuiX973tQtYaPnp0/hQntRjVSfAfENgIGtCSCBvUddB11gnUJxRt7Hb3sPSeWehVvwy4vbFqDpA0dKx3A7w5GwTs3UXYRSTwq6SRduP8dhUDQCp1AYypORsuCH+4RuXECnxwkPnqzB0viYceKHh4/nXDKeLyOqn5O6bcyljpN0QUruSTcezdw9gqR0giAR2ZQ0M5S0YnK9ZcNeMf9bJ09N1Mkj95LEZiixadX5J0HlQ1jWYOkfW0Hreq19XpJIzMZAdUCPRGPMNHz/0rAkcn65D19TY2/fwlo//Cb7vyS8DAM6P7MbJuSZ2DuY2XAxNneGrZ5aRt3TEMR2TrEmB6BlDw3LbR8bQMKbipHaUs1v3w1p9sfZ7vau6ge5I0VLxSroCD9TFGsxZKNoGOOMbjrSOTJTw5h84jA89dAnHpxuK46ThqDJrzZpa/5GZUp6yZHoA9H0A2iqfaSt8r/XI8bQ7mxu/ricMuBpeZj0PH+vQBlbv29NlZPv4dB0feugSZur0QJYzNZSyBvYP5bF/KI+WV8Ni08d2VoVtg7Bz587h8OHDAIAPf/jD+IEf+AH87u/+Lh5++GF8//d//3Y311P/8i//0vN327bx9re/HW9/+9uvaLv9ygnpJpjYEEgArafJpuFqFFMXI2cMnG0+KhUSEGql2ux0kFALWURkx81AvLYNwJaM+wSguCKGyvyjLk2iRBzJGzijkVN8LASYApo652AgTy0DctN92+gzblTdm02AVRBJhFGcROzBD0X65422e6XAzAtinJxtwI/I1iGICRTQ90P2CgajhwgZdRSRkZRYbHpoehw5y4Chc+i8k21nmTzlVukcaV5jrLIrvVAga2rImhqafkifHxIrLR8PX6pi/1A+BVUZg2Om7qKSJZPQZISZZBW6YYRzKjoH6t/OLjbR8sm1vftpfKbmYiBr4NW37cFYyUbB1vHYVA1v+8IZzDU8dDUxVEcCqDlhj9hGSlqoVtt1RLHAcjsAGNB066n/22jGRMnWcXYxcamnDtGhkTxWnBBNz8XphRbOLLYoyDiMISEV1yzprop0D5KR7HTNhZASrh/RSJYx7B/Kw/HrqXM9PUhJnFloYSBroO6FOLPQAgPQcCNMVb0ew9PuBTcZ//zlvZN48MJKalybt3UyDwUtFH+vJPnJSLq7dM5SC4ycqaOYMTAxkEkX939/266+XQTGGIoZAy2PoZwVWFJmvcN5C5VWDb/39/8VN1x6EqGm409++L/gE7e8GK4bopAxMFtf38Zjz2AOCw0PB4YLCGORphc0I8pOFOrcpCiv/r5gq7lTuweyqZHo91w7jJbfyX7MWwR+3n3febz69t001uqyLklAw7nFtkonIIsYskzRsG8oBzC2pZHWRl2ixy7V+o7Mmj4pT/NKedqd33o5fKat8KM2IsdfqfHrlXqZXQ6Q6/s7Bsdiy8dc3UMlb+KHVo37N6vubuLB4QLOLDbhBTEWmz7aXoQDI3lkTUqy6BdltV5tG4SZpgnHcQAAn//85/Ef/sN/AABUKpV1Pbm+FSvJZVvNL/qWLdVGj8XWuGrb+UwMaownt+aVttnPJCAkZ2rImgx1N0akvMBqQqDhMeWqTFLjr08uIxZCEcVpG6Ean2iM+FwmZzA0DeEVhPJuFRxJJFy1zvFOfpcWe+K1reP/uuF7bbQPSUdSSGC27iFjaLANE1XlQJ8Q5g2eMPk6o1eNd4xmnUDADX2VRSnTcXAQ0SgFUnlUaRwDGQ0rToicwTGYN9D2BWpOmFpCaAzKQd6H48dpd2uxRQvwWNeNnTGGfUN5tP063CDCcttHzQ1TP6eWTwvLek/j959bwZvvvh4nZhv4wDcuYbnld6xHFPBv+VH6QJJ8V0EssKqRkHrCRTEJDwyNqbE2CVHcMMZUzUs7HQDZMUzVyEHfj2KVfUcCBkPjcAIBJyAPQs4YsqaG/UM5XFxx8MsfOYbFpg8viDFTd3FxxcEtKk9yQI3zzi42MdegrMkwjnF0ZxnjJQt/8aVJCClRsJWhZywwV/ew2PSxs2zj1PzaBdcNIlSyJg4MEQFcYwwzNQ//857TCMIYJ+fIJFTn1AVm6gRLrl1dI2PYWMqUlpEs7gC21EUYLpKqff/8efzBe38DY9V5NLJF/OZ//B84duBmiuEAcPv+QTx8obol8nae67g1O4Cpqoun5mlf8pYON4wxlLfghjRG+uFn7Uz9uk7MNvBbnzyxJlJpcqmNnQNZcM5R7EorWGkHWGkHOLs0j9PzTZSyRg/XKgENf3XfOcw2FlB3I5g6x2DOwr6hXPogstWR1npdovVGZgnJW+cdEn8CHlt+DD+KUXNCVJ1gS6T9rfKj1iPHX4nxa1JX6mV2OUCu+3cevVjDTN2FHwlYGodtaPjII9NgXeP+japfNzFjampEH6LuRTiz2MKtuwdg6hzj2Swe3+Kx2TYIu+uuu/DGN74Rd955Jx544AF84AMfAACcOnUKO3fu3O7mvmm1zSnXunW1TV7XK8onJE+oVp8A1CspgY5x7VZBSnetBhbJny2Do+6GNApMAJaQ6U9MlCwEocCKs3F7izMaS+RMTQX/isty+d8qKNKUOABIArg73SYGpL5qtG/05+7OoM47x7R725wRGArX8eVKRg8SpPZryxhB7CESErbBkTV01LwQfhSvAczd75WoSSOhPNiYxEDORM0JFX+MPLyyKodRgtRc144Wce/pRRoFK04edcgIkHhRjHNLbZQzOqmItWSU2KmEP5Twri6sOKnvlpDAzoHshmqlyaUW/vLeSZycpQXYUE77jJG/VaRMVW2DU6cHSI1uEyNfxighAgAiEacHVQLIGhoKNgULX1xxEMXU/QMAJyZKQsIBAgAnjBUQp6Nr6Rwlm2whgljgUtWBq8bDB4fziCwdkRA4s9jG/edWcHQn+ZFRDJeJkaKdAojdA1n8wj882hPe3PJCVJ0QkXooqTkhbJOsP17/wkPpYlB1QhyZKPUcy7yt4/HpOs4tkYlq1jLQDgS4FD1dQ1JL05hVYwwtP0bRJt7YcjvAqfkmXnHLxKadB9vgKBkMv/U3v4mx6jymhnbi13/yLZge3tmjAHzR9SO46+DQtsjb800PQnVWya6F93Tsjk838IM3T6QE+dVcpxOzDczWPQwVLOS7lrluoj0Hw2jBgm3qa0a/RyZK+INXHMWvfPgYTsw2sH84R+eEOt5XMtJKar2RmaFzxEJgsRVB4xyn5pvpxCbhbwZC4Fc+dEzlgHKaJhSsvmay2+FHrUeOvxpxPlfqZXY5QO7IRAlCSpyaa6KSNTFWymAob8ILxbb4df26id0j+oYbwgljvOJZE/ir+85Dl8GG2+uubYOwt73tbfjP//k/40Mf+hD+/M//HBMTFN3w6U9/Gi95yUu2u7lvWl0t3PR/k0PmRxKQvQBs9fjlm1HrAYqGEyp+09piAKZW3C0dv5xB8Rehso64Wtw1BsDgHfuLfttlACA7YNsyOCLlDpvRNWQNjroXQXZ1zBKAxBlx+WJJoMEyNESRQBTHqSJTKosIUj8iHXdyTi96YRJWLhFJyhrsBoSM9Y+dSs6LgkVZoRlDw6E9eVysOsrtn7qfJqcb+Fgpg6mak2Z16hqDxui4xxKouiHKNnG+HrggUM4YGNdtcsLWelvvlZwJgxdQzBj4ybv24rqxIupuiN/71MlNpeon55qp0/hA1sSyyrU0tO4xMEPJ1rEchylATsArY1BdAx01N4TGGXQA+4dzWGoFyCrzXo2LlCwddZ2ExEfSUxK2zsljT8ok8xTQNOJS2VJguqbAQtbAUwvNlLhvcAY3jPHkbIPigvo8tU8utnrCm/0wxFLLp/fgBJ5jQWPwd993DnsGs7hxorThaMk2NHhRjIJtpeDU0jlCIXvEKTpjKOdMhBFx204vNLGieGnv+sp5HN1Zwt1Hx/Hopdq6nQchJG7ZP4Q3v/yX8DP3vg+/++/fDCdfQqxGd4kCMFFebpW83VLjOPIIg+JhmSkRuxuwr8d12j+cw1SNQOSgUsVKKVOifcbQSBVsautyrZIw5v91z2nMN3xwxq9qNuN6Y7aGE6IVxIhjYCCjQ9MYllU3XONkGwMAc3UPLS/C3uEcLlUdPDpVwz0nF7BvKIebd5fTzt52+VFbAUuXG4p+pbVdICcECYf8SKS0CQDIa3xb/Lr1uonJiD5n6Ti/1EY5a+LgSB4Pn57Z8j5uG4Tt3r0bn/jEJ9a8/ta3vnW7m3qmLqNWN8G+2QBsvWISWD047O46JR2M9YpDWVUwYLiYwUKTsvIsnQNRfNncsO59YVBKOkmSZ6EsLAQApnZOSkAqwFTOaLhp5wAuLLchJeCGEak3lZxeqO9GSrX/6k1MxnHtWBGLTR8tQVwmyCQtgP6cfN6En8g5QyVjYKkVUDcqkmgH4VrQqn63+3DEUuUfahzX7yhhrk7O1Yd3FHGdVcSp+SaaKjvUDSIwxjBbc3Bm0SFTRAAijJUJp+qIKW5VYpWhq309s9DATbsG1tzY5xoebtpZxktuoMy7ycVW79O4lGkWaOKwbhkci02vx2nc1jmJECKBSGVHxkLCUcaIGZ1joeWnfMaMqcPUeOotpTFgtJjBzTsH8PClag9BngHIWGTYLKVEzjLgBpFKJyASdl6pdSNJYLi7K0aO92SlcXqBFJwZQ4OuMYSxyr6LBF543QhefMPomoWq6UU94c11J0wtWdD1cJUxOIIwxl9+aRK/9YM3bDhaMjVqpwoJGIypTihg60xxq6iLmrd16JzDlxEmF1uIBIH70aJNIdmqS/C6FxxE3tJ7F1spgGPHwI8exU8/7wB+u+HjF/fdQMdFeY8lCsBut/etkrczBk8FEQ2PIqS6DVoTwH5qvrUuIC1YOoq2joWGh5m6ix2lTOrynzU1OEGMwZxFZrdYn2v1dGQzdtfq7c/VY0zXXeQtDRpjJBJxojTaLUnwMDWGSt5EO6TkBtugvFk3jFFzQxy7VOvp8lzNoO+EnN4tNrhxoogfvnXX/xVj2e3U1fIL22o3sZQx8Mpn7cS5mcUt7+O2Qdi6WYyMwbIsmOZaH5dn6tujUpLzFf7sekrL7eBFiSTomKHmBOlTvK5TrmLkRVfUzUzBoOiQ8NPX1Og06SZxBhQtDXsG8/ix5+7Ghx+ewsXlFpwQCMKYuGHx2m3HksBoKatjR8nGaMHC5FIL7SDudHCSrhbvCEQYgKGciYxpQIJhue33cAETfk93BygpChjn0DXANnTYuoaRgoWVdoATM3W4oezJHSxYOtxI4Nh0o2O9ofY9jiU4SDwRSyJGJ2a4czUPoSBxixcJHNlRTm/sSZ7fkYkiJpdaAAhwDBcsXFhqYyhv9WTkJWPYO/YPYrhAPKMgEmh45I8khESc+MSpfSxYOm7cWcZA1sBU1cXJuQYcP8bRHQUUs5QheXKugbypYXcli6oTYLRgo+3HXQR5hpGCTQHZAEYKFi5V49Q81tY1jJVs1N0QiIRS89KDQRgLNNwISeqmHwsULB0Njww9pWpDxbHAfWeXUzDS3UGoOQFsg8KbE6NTOhYyBVKMAQWbUhum6yQW2GgxsAwymqYRsqbSMkRq3MsYgwZS2EZxqBIJSIlsmxr2D+dRyBjI2zrOLLTwj4/M4M13X99ZoFst4Md+DPjiF4EvfxlHbrllQwXgVhflbjByfKpOatcQ6Si7skplaykj5X6AdKXlpw8aXhjjwfNVjBYcDBctRWeQyBh6SrBPaiMvrKdrRLd6+yfnmvirr5zDeNFGKCSOTdew0gqUKIt+Pul8V1UAfBgLDOQMmBpx+9wgxuh4AQtdFhpXC0w+Pl3Hb3/iBCaX2uoeRvelycUWHrlYw2+9/AiO7ixfleNyNepq+YVtp5vIOcPPPP8A3rvFfdw2CCuXy2sQZXft3LkTr3nNa/Cbv/mb4HzrCoFn6ptf2wVJ69XVGNGm4EJK+IqoGsYSdSfc9P3Xq9X8vW7slICfxFA2GRHqHBgv2ihkDNyyewAvPjyKM4tNfPXsEtp+vGY/uv+egJqmF+L+yWXkbB3DeQsHR3JpNqDjRwjVEy5jUJ0RAxmTOEk5S0c7jOF0BV5KdAxvV5dlaGqMKRBEIY5P1+nzSKDaDhEKiayhpbmDewezeGyqhsY6NyEBwIti6rapL8VTbUgJ4q7N1T2U7DZMXUMYi1TR9n++PImlVgAhZephNld38dR8C4ZGruo6pxtlLAmcJOOz5XaQdpwSPlfynqbGcPOuEkpZWph3VbLgjOHMYhN+DCy3AmRMjtGihZobppwajVP4umZoqLrkCWgbHM+/ZhgSwEqbhADNIMJ40cb+4Tx0jeG87sDUOOpeCA4GL4ihaxzlrE6h0xEZ5SadQp0zsgWRQASJx6Zq+NyJOUwoxV5CIDd1cqAHgPGChZVW0Dlv1Fg6Y2rIWRpiIdHwSJSw0WLQ9GLsLGew3PKx3AqUolD02NqUswYMjSGIpLIo4ciZOnYPZlHJ0nnXt0swNQW89KXAo48Ctg1cuADccguOTJRw3WgB951dwmLTx3DBwp0HhjaJ9VlbCRiZXGrhrZ87hVPzTeyqZNNYq2SkmCx414wW1gDSC0ttPDZVQxB1lMwcwELTx1KbwMxwzsK1Y2t97DYi2l+NbMaNKtk+ebgxZCwdecXNpBxWBs44hBBwFa8z6cTqnFP0mCbVQ1GMuhNirGj3fH9XCiaFkPjLe8/i5FwTusagcw4noIeOSEg8MdPAL7z/EfzP/+cW3PgtAsRW+76tNlvejrhiO93Ewzu23hHcNgh7z3veg9/4jd/Aa17zGjz3uc8FADzwwAN473vfize/+c1YXFzEH/3RH8GyLPz6r//6djf/TD1TPSUl4AUR3I2kiJsU6/PnflvTuDL9lNRRklKiZFPQ9GDewiueNYEnZur4wDcuIVQ3+fVGqgmoI3WaRMOPUPcizNQ87K5k8PoXHsJjl+p44PwKJhdbMDSOnKXDDSKUMp3FwQliBKtmrwlQTNz5k11gQBpHJEFE9bobIG8ZKGcM1NwAWVPDoeE8BguW6tyEaHjRhrYjQnbGnZyTf1Py2SVIaGAbHD/y7J34yCPTJGYQlBXpq65Qww0xlLfo8yhD0qbqGkEJFs4stPAnn30KQIenlY7mIFMxjc5ZSpwHkOZOfu/hMbzq9t1o+zHm6h7+6r5JrLRDhFIgp8ZOVYfA3c6BLH7qu/fhlt0DKRfm/HIbj12q4UMPT8EP6UbdbR47mDOxfziPrKHBCWPMK7UVOezTw4GlOrUSgIjJ3iCOBd53/0XEsUDVCSk4fJD4dCvtAItN8sHSeMIFI2K2pjGUs+ShFkQxdI1htGjj8I7ShovBj9+xB//ny5N4aq6JWJ0nCQYjDqHE7fuHUMlZ+KdHpyClRM0J0PYjzNVdHFBGuz1dgoceAl72MmBmBhgZAT72MeC22wD0d2L/l1OLl+XsznnSueNYaYeYra/ANjgGsibGSxQAnyx4+4fyPYC02g7w2FQNfiRgajR+tSyywOEMyCnX+lLGQDnbm+hwNYj2V6O6QYNUI3FdnROcKaqEaoVrjOyEmLrHNFs+vJDG8E/NNTGQM2FqvKfLcyVgcnKphQcvVFVmI0fVUYHanIygg0jgUtXFWz59Er/6fdcht3qM/X+BM7a6kg7W/ZPLFG3mdZkt2zp0jeH2/UPrfueruW+ve8HB1Jz6ao2mtw3C3vve9+KP//iP8e/+3b9LX3vpS1+KG2+8Ee94xztwzz33YPfu3fid3/mdZ0DYM3XFJYEUgK3OkNxqFZUaDiA7g4SwnGw/4VRJAdgWp66b6ubU3AiLTR+vvmMPDo8X8UsffIy6F2zzjp9Ex3NNKoTDGVBzQ3zy+Bxe9z0H8Pxrh/CuL5/DXMPDweEcHrnUUO7qhHJqbpCClMRuweQMmkZea8nIKjGjjWWH70b8KVL47apk4Kl2yIoTYI8axdTdUBHQyWV+s5F0okBMxnIm4/CEwNmFNr5yZgl+KFDJGrjv7DLJwXUOxigUfbHlA1LCUoHjZIvCIIVUodYS55bJ/iYRJ8gulJt0MoNYYr7hY7ho94CPV966EwdHCml0UCyA2/ZVcG65jeVWACegG7CUFMj++HQD1451CLn7h/PYP5zHodFCz9imYx6roZwx4UUxTs230PZCxZciAQpntG8S1JHgnCFnGWoktpLaWlQdyqrdN5TH0Z1lHJuqQUoJU6fQclMTZNdg6WBgcIMQNSfE3sFc2mHaaLR0eLyIjzw8RWBYtVg1JpExdeytZNOx7sMXVtDyY+KNgb6jVhCh7kR41p6B1Itr9IufAX72JwHHgbzhBlx67wdQHZlAYbGFth/1xO70C0q/XGf3G3YUMVN3UXNCzCpe410Hh/BTz9ufbrO7OzFbd5UNC4MQBDhKGQOWTiptgCFvG7AN7apwo4CrT1DvHntVsgYYoHwVBZkWK9CT8B2Tq6PhhYhjAamU5BlTw3LLB2MMc3UXN+0qX/Y+JXVqvoWWF6Fo62j6MYS6T6WqTo0oDheWHfzKh4+hkjMRRPKK45aupDhnuHlXGZ94bAZuEKOYMZCxNPiRwEzNRcbUcNOuUt/vbL2Yp1fcMnFVAea2QdhXv/pV/MVf/MWa12+55RZ87WtfA0A2FhcvXrzsnXqmnql+pWuMFKJbLE1dFxI0cmn5UV/glHStBICWH5MasYsTttD08CeffQpLTR9nl4iUH1xGZ44x4t5AAucWW/i1jxxHJWei2g6x0g7xoFODqVOLP2NotL+CHOz9LluLIJawuKRop0iAK+BlatQ1CiIisCfjGFPjaPk0QuMMaWxOMWOkd/HES2ozta2QtFhnTE0BNgaNA22lBDw4XMDjM3XV7aJxlK/ECwmAlgH5xhm6hljZjehKYRkHUQokDc4gwCCFUFmXHAZnaAcR5hoe2mqUsPpJtJuMm7d1SEk+ZxpnKFg6TJ1Un9+4sILp2lqg0G9s0/IjfPThaRybquHcEpl4jpdpZPnYpRoWGn4qtpCSRh9F20QrIId5PxKoZEnh54UCCw0fdSfEzbvKODBcQNXx8W+uHcb7vzEFLyT1bNUJEMUyzaMbLlo4Od9MLRTWGy398+NziqytYSBrpt9poDpx+4az+Nrksuo4UddS7/KPq7nEHxwp2njZ8kmM/n//iYQUz38B3v4zv4MnHm3BD5/sGace3dmlPLuKzu4T5QxFF4UxZhoeKjkTh8eLPd/V6194CO/+yjmcnGsoLinUiMmApRMXKGvqcAI6Tq+8dSeOT9evuJuxURbjdsFGN5hL8kxn6i4kSOwRxAJeKNIxfsuPUhENeSwSGEq6xHQfoYe3r0+u4MWHx65CJ4puDJF6aNI560NNohD7hhditJjBjrJ1RaD8cis5nnU3xL1PLWKoYCGKBZpenBpG7yhnoGsMj12q46VHe41bN4t5ev0LD10VYAtcBgjbtWsX3vWud+Etb3lLz+vvete7sGvXLgDA8vLyljMkn6lnar1SmCI1Rd0M+CihYfrncpayEJ1AKLPO3p8Feq0NEvCR/pzsgLO5uoc//9JZVHIm2URs87MwJJ5jAi0fCIUPKSRGCjZumChhMG/h5FwDLS+CANIuEoWvd1SUGqdFJvH7SjaekNuFAmtccaC4aru7QQTb0FBzAgAMdTdA0dZRyho01lAjWEMjgLJRRUIiigV0LVGxkYlsGBOBPuG1SCkRxKQmVILD1MIjjiQiGQGSwdA7402m/iBB37ee8mmpCxCp1t93XzOEu2/c0fdJtJuMu9zy8cD5Kto+5SU2BWBEBD52FG2srHKkT2r12Obx6TokSITgK9NbxhgYGA6NUMg1fU7aRtIBCyKRdg45p+irIJIQQqDtA/efX8Gz9wwgiCRecmQH8raBd3xpEnWnIzwxNYZ9w3m0/bgnNLrfaEkIiY8fm+nyHqNxsRAyVQVeWG6j5oawDQ2DOZN8yWIy79U1ssKZbXjYWcngWT/+g2D3fRDLIxP4jX/zn7BUFemitNj0MVV1kTU0VNsBdI338G2utrP7cJ5ii1Zv78hECa++Yw+OT9ex1A5g61xZoXS2oXOGVizTzsjLb564og7WVhbp7ZDdV4O5gayBfUM5rLQDFY+jI5ZS2VOw9LtM/islZfKWMjo4pw53xiCrjjOLa4/Z5dQ1owXkbR1NN4SUElKZWScK3DC9cYqUL9b2yZfv4Eh/UP50WF10H8+aE+JS1UE5Y+DasQIMjaeK7IKlo+XHa87RrcQ8befhYrPaNgj7oz/6I/zIj/wIPv3pT+M5z3kOAODBBx/EyZMn8aEPfQgA8I1vfAM/+qM/esU790x9ZxdT4ALx5qa4rOu/yY95ypU/jiNIsNQ9HFg7btuo+2NwjlAK1J2QMgwVK36z0V1SXH2WKO1mkeGsrjFMLrVgGRomBjIYL1l4YqaBSs7CYM7EV84sQApA8A4YTAj8yUwp4YfRVmXK3YpB6kbiNGmoKvDlBGQ++sRMA3MND+WMoQQ0NJaK5Na8P0I11uXqaThraihnDAKRUoKBhBSJXxrAwLkEA0v5XmSoLhEFEpyJFLglJUCAjxSqAprOU5XsE9MNvOymiQ2dyOfqHk7ONdAOojRIW6pOHgC4odgSUOhecCtZE/MmpRmstAM4fh03TBQxVrQx3/QAKREJwPEJRAVhDAkaHy21AmWUq0HXiGzf9iM8crGG3ZUs5uouHr1Yg61zCEuDrfhlQgJtL8LeSnZNjFF3CSHx5dOLOLNAwgcniOGGMSl/FbFd4wyu6rDmTQ22oaOSY2h6YfpzRb8NV7fw/GtGcGTPIMRHPoq3fe4MlqYbPYuSoZHQwQ1j3H+OuFuxQBpuvmcwBz/cXHmW1GolW7UdpBFGiYoWDPjcE/O4/UAnnuhi1cFs3UXB1hFEMVpBDFtqPSkKYSwQCoEDw7kr5nxdzUV6PTCXRHm99rv24vNPLqDtR9hTySKWEovNAFUnwDUjJp5/7Qj+4cEpRELADwWCSELjInX3L2YMnF9qb/k72Kj2D+Xx7D0VfP7EPPxIpJ1zAJ0HDUWNcMMYp+abuLDspKP31dfa1ewkdh/P//n5U5itexjImshbOjjo/H5iuoEjEyVU8lb68/3UkVfL1mKrtW0Q9rKXvQwnT57EO97xDpw6dQoA8H3f9334x3/8R+zduxcA8LM/+7NXvGP/t0pn2NBQ9PLp4P86a6vAY6u1GlyxrteT0QKwNf7Vmv1T3aCCpSNjaqi5EaJg62kDnZsMOcy7QZw+da725tps32Sfc0xKiWo7wCMXq7h5VxmDeQv7hvKouQFu2lXCfWcWoXGWPmEmY9JkO6EgD6kEWCRJht3nbRAL1N1A7TfZTXBGoODCkoMLoMUU6DUt7a5+ADgWgKUTIZeB4fZ9FWiqtZ+sO5FQ+8yY8lLjkH1AHoMi/yueS7dIQEJxAdVn0RjHeNGCH4l1F7q9gzkcGM7hU8fn4EcxNMbAIbvOJXqf+aaH8ZK9oUR99YLb9CLKM2XEN6q7Ic4vObhuvEDkaC+EpqxGYtW1szSGICZwlsj6kwWLMaDlhWi4Ib56ZgmzdY884nIWjNQEV9L7LDu4ZiSP0/NNfPn0IspqvJlE93z44Sk8crGKSysOIiFQd6VShGqp4CSIYmU1wtIRsKVrsPIcYSwxujSDP/jrX8dDu25A9t+/EwBwvhXhzGJ7zaJkaDwdT8dCImtayNpaGm5edyPsUFmgW6luUnoYCzw+XYcXxWloesML0XBC/PmXzuJjx2bIDy6KYekaDI1jtuHBC2jU1PBCZBURPxYC1XaASt7Ca75rb3qsLnfxv1qL9FbA3Gzdx5vvvh4feWSaondqLnwlbPEiiVMLLZQyBnaWM5AMPV0eMIaWF21J/beV4pzhhdeP4N5TC3DDzn0tfShkiY+egG3QQ1ksKaWg7ddxeEcxBeUbdRKnVhz88K270hzZrXbHEvXmY1N0D5pv+KlatNiV+JHk2QL9FbFXy9Ziq3VZ38y+ffvWjCO/HYvW196n7+5Kvver5dD+7VzJdXa1DwVnDIYagdDfO6PBRA23HTDcM47M6HBCgiYLzYC6AVvcFk9GfJI4ZUksUNxl1tUNiLayT6tfiwUtYF4U4IFzK7htXwWlrInJxQAffGgKTT/q2DQAqSO/oST7ZDJL9gLzDV9lI3Z3yujGVG2H0DRA13RYhobd5Qwml9pp1yaKxabHZbV6UoK6C5ahY6KcARhwfsnBQtOD48edjpxUfmMMYEyiHwZW92+l6CTuXzJWhQRk8rQtgXxGx+EdJRgaX3eh45zhjv1D+Phjs8rzTSIMZc+iYegallsBFls+LIMjZ2l9c/gml1o4PlVHxiBOYcHSUMzoWGkHKNoGsqaOuhvC0Dh2VzJ49JKvFKFITV9NXaMHPSnS79zUGXmgqTHwXMPDp5+Yx0Q5Q75d6neTUaKpcdRdyjw8s9TCWz9/CqamqdGViYUGxVsNZC3kbQ91h0ZGcWpjwNIDzZkaz/kRKjpHAt1vunQC/+Pdv4GBdg0530GbewDWX5TyyjojEjLN6iTuHlNGqT6CnIndA9n0XNxo9NRNSq+7AbwoTk17vZCiYbg6LkmgfVvlkR7dWYZt5HFsqo4gFEqMEyOMyKKjkrfwpn97DRhjVzxGvFqL9FbBXM7S8YpbJnBqvolKzsRYycZw3oIbClxYamO57cOPKIuU2Z3tXG3FpxASj16qYUc5g6IdYq7hI1bnr6VMlWNJD2dJh50DKNoGGiqkfqJsI2dp+Nv7L/YFn4ORiUcu1fDEbAM7y9ltAeTPnZjDfWeWIaVEXuWwhjGJTVacAANZE3U3RNOPULCNdY/PdmKerkZd1lZqtRoeeOABLCwsQIjeJ9sk0PvboTjrWlT7VHLTflr3AcBowcRsc+tZU1veNqNOUHiZKLJ7YdY4W7dTciUlpETe0BGLSHVDCNwkZ5WmFo3tOuQzAMvtEMWMgZ1lG49cqqevbw2EdfhWUnmVSdVZK2V0AkiiY7Da7/03fR+1ba4WxAcvVLGnksF804Op+FbpOE8dEwki5mcMDpsxhJFEoAkM503UvVAZb9K+J/49EkDO0Mn4cjCHc8ttxFJiKG9jvuEiiDsO+P0OcwL+Vn8+zhgMtYjO1DwUbB0ZQ4MbxmvahNStU0AbSrm5qgOagHwG4kGFSgkGsFRkcO1oHgM5E7GQmG8I1N2wL3gaK9kYK9lYbLhoer3fEQcQCYGGK/DUXBPXjxfxvq9dwNmldk9n5OZdZXzuxDxOzTdhahy6xlHM6BjKWWj7MRpeiIyhIYoFpqoOzi850DmHbnFkDA2cEbm+7ZPs1DYo+zQWEm5Ae6RzhqG8iVYQo+mFmK5JFcIerRol0vdwfIbO44GsheGCBdeP8PXJZQSRwG37KhjImTi/pGFFBLB0uvZpdMxTUFvJmiCDWbKmyFkGXnzsi/jlD7wFVhTiybGD+Ps3vw3/7fB+AOsvSgnBmavvMgmIj0QnbcDUOUVlBfGm3afEi+nUfBNz8z4Klq4yE2MsKwHAYM4kT7ZWANvgGClaaHgRLqw4eNbuMjKGhkcu1QAAw3kLusZwYLiA//hde3BkRwm/9ckTVzxG3O4ivR743CqYq7shPvbYDPxwbfTOodEC3JDI5ldL8bleJaDxwHABOUvDVNXFxZU2nICUkl4kwJlMVbVJJXSF5ZaPZ+0eAIC+4HOlHeDxmYa67zEM5k3onG8JIAsh8Yljs/AjuhcmHqWmTrzHxaaPukfegF4Qg4Gte3y2G/N0pbVtEPbxj38cr3rVq9BqtVAsFnt2kDH2bQXCNsMmCebQWYccfrVr71AOsdgmwthimWoxDi/jd7vHWgWLnuSF8qC6miUkqfU6vlMd8MIZ0pEPZ0Q8TTowsdgY5OgaS/kK3ePmjX6nGzgR4ZSARqA4RDqncN3rx4s4t9RGww3RVuNJnXfGl2G8OQBjSMAAwBT4WWkHWG4HyvWepfutKTsIJjsKwzAWGCrZWGlTR6CQMyEZ0PIj4p4pRaHGAQ6GG8aL2DuU68nlCwUR5wFA02jk6kdxypvrru5uVec1iaoTIBQSL75uFI9M1RDGAnmlRAu7OplAZ4TLWdd/k45d13ZDBQo1RiMzMnWlEeqg4nMkI6u/+foFLDb9NQt7wdZhcIamH6edwYRjKATSz73Q9NDyQhyf1nHdWAF7h3Jwgxj3Ty7jE4/NoJghpVnGoJEe8cBi7KlksdT2KW8xFpipeTB1jn1DWUwuOmQvodRq8w1KPJAadQycgPbJ1DmGcrRgWIKiaEIFnJsedScNNUqMVQRSGAvsGshitGjRiJElgJgWyYGcibGijemaBwmK40qEJHFM50QMOolGChaabogf++x78bP3vBcAcO91d+Bd//m38UsvvzVdmNZblFbaAdrK9gOMrFeaPo0Bh/IWdleyqLshHr1Uw2cen9tS9+nIRAk//KydODPfQiwlWl4ECQkOyrq0DdXhEgJFTQdjPO1GNv0IlbyF2/ZWMNvw8BN37aPvNOlqLq4fc7SdMeJ2FumNeE9bBXMNN9xwvw8MFzBVdbCnksVCy7/q0UpJdYNGxhh2VbLYOUBxUEsqpUAIAcvQUHfDdIwcKe4j5wx3HhxE24/XgM/uXM9SxkBLWWDks1sDyOeX22kOa+KNlxTxHoGaS6kUC00fpaxY9/hs15j1SmvbIOxNb3oTfuInfgK/+7u/i2w2e1V24ptRG5lTrq5IPj38sJGCCVNjmKy6V3W7CRhIJMyXWxJ0c3cC0TMWu9q1XscxcXo3dE6+P4ypE59ByjgdX3WXrTMUMyZsxZVqehFm61s/vj1jV0leVTGS7g0ptHYOZJE1dXx9crkDViW522dNjrnG5l3N7k7QaoCYjPCS6teBjAR1IkydwQvIgysWdDPrhIKTmkpIYKrqopQ1IYWAH8VpFzgFmyDSdsbUUz+x7g5q9/nPQBYAsZCIYjIqPbvUwnIrSN3ydU0DWIwo7oyXEzDUfd3145tZBkcla6DhUYRQU4awDA2jBRsFiywnzi42yeMKEqWsBStDpPAkM+/nvucAWRtEAhlDSz9PJEQK+Bgo4okx4g1NLraRNXUMZA2EsYAbxBjIGhjIGuTtZRvpQ8FyO8AtO0t4YraJ4YKFhhtivJSBBHBh2U293ixDx2AeWGp5ab6lBJBV9hGWQR5WSSzPQsNLRQ+sS3URqu8pCW9OruskhsdQIc8NLyQjXuWNF8QCkQA0SNimjlKGQrGbfoS8reM3//l/43n3fBAA8LEX/hge/blfxS89d0/PwtRvUfLCGKfnGwgjUskO5gxEsYQTxgAk9gxmiLcUxvjKmaVtdZ9u2lXGodE8DI1il9p+hKfmmsiayfdI36ChLFB0zuAqbz8AyFg6uLK36AZTV2uMuNVF+sRsY8PR58+/4OCWwFwxY2y634bG8eo79qCUMZ42g9R+oDEJsAaAs4staFzDtaMFzDc9NNwIrkiMUU2UswZuVrYOq7fTyfXUacTJWfr9bgUgJ4rscvb/Z++94yy5yjP/76l0870dp9PkoDCSRhqJIIExNhkLY0DeD2ubNcbZXgwOOGO8rOGHWS+wDmtgnbCxMTbRNhjbGIwAgSSQRpoZRmHyTPd07r75Vj6/P05V9b0db8/0CMnwfj4K03O76tSpunXe87zP+zwm5aaXlLGX5kijZgtu29XHG56/n1LGXHd+rrZnaHtsOgmbmJjgDW94w1M6AYMnB89roe4y3/AS7tNWxVaUUeNfL6QMZZi8CUL7VoVEIVo78hkultXCpsmlrru0qUUin0scrp6MhRGJM7q+kkeoO5ubDENTfK2MpaELQctTGlvFtMl1I0XKTY+T0zVsL0w6towIrdpA3SGJdt7W5Ual5an7g8RxlUq4RCVtYbQbtFIqyVhsuhw5v4ChazScILmfcakx6XKSyiqllFE8jvhz8VANLbL+0QQeYaRjBRfmmx1iqD5L8KNgySi9/VgxGtiekGpA3jIwdJ1SRqiuLz+Mdt4Z6k7AZKXJYtNDAAtNj0sVOykLZ02dcsvjL79yXhHyhUg0yVKGIPSWynt6lIimI2HUSsvj7FwDfVuOmq2EHat2wP5teZquanCwDNXYMFOzOT4JYz1ZXnrjMH97/0WyKUP5jLZxxuJSTIyMNR0fQxcM5EykUFICaUNn74BaWMoNN1lEQ7lUUtaEaqDoyVg4fkgtQjxPTteou34i63F8osL1w0X68xZzNVuVzAUM5C2yloEQ6rkZKaYxNY2LdzyP8Iv/yMRvv4Mbf/wneNkaC1PHojRd5/GZGo4fUkib+KGk7ijCvyrd+9x/dpHRnjTXjRQ5N9cgZy2JW8bJxlqL6+7+HAeGCio52ZbHjErBfigxNIUQ6VHiDFqioxYv2mtxdraS67PRIn1wpLhh6fMTRy7xysNjGyZzWUvv2jx6o269K5GEWA8BzKfU90IAYz1phZA5fpSkKzS4vYS3/DiquqHub9X2O8zVYeMEOb63o6UMthuuQOJqtpJk+a9P38HhqCS6UVxtz9A4Np2EvfjFL+brX/86e/fu3dKBPJljI3mEyz7uVeJZXWnE+YFALVK9WfWiJdJ9upojjoTiE7Si3PS4brhApeWz2HLV+aMBqMVJcVIG8haLLY+Flpccw9A1dARB2F0Xi66p39vdl6PpBfTlLGw/ZKZq059Lcc1wAYFa6OqOKqGakdSAqWsR/2aln+RqcSWJd3x/NCIZDk3g+xJ7ec1cqH/dOFrk1Eyd+YaHoStivxvKDnFWxw8UDy1UwraaUOVszdJo+SFCgmVqGG1+sJrQENGdilGnGPESQiWEy6onmFqbiwArN0N9OYvenEnNVlIaOcvA0tVxZ6oOuuZSdTzKLQ8/ynj16IaHUj0vmlCK+KWMRTFj4vpBlJiqfwxdRPdL1bRVF6JIylqVlqeSs5ROw1FaTDv7sjwyWWU+8sKUSHockzsPjXDTWImPH5lIFsk9A3kaTiXp0JNSaXD1ZJRae83xqTkhlkEiJRD7GI71Zii3PHRNYCCwdI1sSnmOji82ldCsFzJXdxhfaGFH982NukBrts/xS1V29WUpN1wcX+nDZS0j4WrlhHIHMHWNf7EO8x1fO8aumw5s+NzFi9KXTs7ynn9/nN5sCtv1OXKxnDw3elRrrtoe4aIkbeicmq1jGerZieUKYuRvtcV1OdI0XFRdctNVG8cPkmdstuaSNn10XetASdfi7Gw112e9Rbrb0mc+ZWyIuISh3JJxX6kkxEYI4N6BHAiSTtqsZdBiKaF8xeHRNkHafsYXmslxdE1E9AaPnLXSXH2jBLn93t4wWuTsfCNB4tS7TOP2vf288ODQhte5/JqvpmcoXEYSduedd/LLv/zLnDhxgptuugnT7PTgevnLX75lg3uyxNXKk+IygvtkgOWiiMu0GoBQ3oUCtVD5QUjKEIqkvsXnjROL5VPhh5JLZZvDO3s4OlFhumInZVIzWtgcXyEdPRll1BsIQcbQEMjoeCJCt9ZPIGPV+Pmmy3P2D/CGFxygZvt88N7znJ9r0JsxePBiWbU8Z1TZzgslGVOnL2tSiwRBY/QoHqMXcXLEKtd3uWEZGsW0QbnhEoaCXFqRvmNB25jPpmsqsclaBhXbU80FhoYWSUWYGol8gh9xE6UMmfEcAFW+QmB7AbqmdYxB05ZKt7bX9kwsg2LblyChaaQ1JTcR89viiL3crhkqqN1x1G6fMTQena7zvOu38bWzCzQd5VmHUDt7z1NHWepoVa35QSgpZkyEgB5TWZWUWx5mJFsQSnX98fh0oZLRmu0rRMdTxPOmG3BhoakQrLxqCnAD5Uf56aOT7B3oXNz7chY3jpU4O1en2vKoO+p5ec6BQV5xyyh/9dXznJissncwpzwwo8VGRijvQD7FtcN5LF1P5AYkUHM85moOpq4xVbWT7sGUETBbU+T/nKVj+wGTVZtsSqdia6QM5R+oa4LvnjzBmz72bj74W3/MzNAOpqsh5Z5BdnX53Gma8rO0dJ2BvMXD403Spk4olUm4H5VNlc1WyPmFBqYuOjh1Daei9Jpy1pok9iCU3HXrdr56Zo7Ts+rPrYhsWcqamLrGYsOl4QYYWkjvkBmhpGtzdq4G12f5Ih2GkjOzdR48v0g5MtFeLdqTz5t39KyLuGzFuI+Ol3nnZx5lvu5QzJjqPeUE3H9mnvGFJm98wTVdJWIbIYDAqn93845S4rm4JEir/EkXmy62G2AZGkEguWG02GGuvlqiuRqiF8/RfMPl2m0FfCmp2x6LLY/RUoaf+M693xT/yo1CyLX0GdYIbdmLuONgQhAET3zZar2oVquUSiV2/Pzfo6WefCXUq4WyXWlYkSeY68cEYS3Sc5KJh+ETFbqA0Z4M/TmLR6aqWLrG9t4MewbyFNMqMVpouGRMjcmKnSAbSsZBkksZFFI6Cw1VXttoujOmxvbeLN9/2xjPv36Ilhvwh58/xaVKi6mKnUhELEQq6X1Zi5RpAAppKDeVl6ChKbuUeNEOQ9mRhOksGStvZi4sQ6M/nyKUksmyrUjeujJ9jsuhcdearmncuquH0zONiF8TcM1QHscPeXy6FnlpyhVl1JQu6M+nosXCwfF8hKZh6VqCnrlBiOcvJZjL5zXmy7UfWtcgHZX0nLbf16OFWyma97J7YGlXX7d9yk2XwWKKC/NNsimdr56ajyyC2ho5iJC96P/zacUNijs2Q6kQmvh3NKHKl4YuyKUMKi2F5uVTKpHx/JDhUpqMabDQjMuLqpzXn0txeEeJU7MNDm3v4RWHR/mjdg9FS6fp+Jybb5BLGfzos/fwwoNDaJpYqZHUtqD2Zk0ylsGlcqujjAWwUHe47+wCuqZK33Fi03QVH0aV5yMfTiRP39XLeLlFLhJlffH9/8wP/vn/hx74PPjcl/EXP/k/Kbdc3vryGzbUs2pf8EIpees/ncDQNB6ZrGIZGqa+pMwfhKphQ3EMdXKWTsNVCaOM7kF/zuKWHT2cjubvzXdev7p+12CeZ+zt45+PTnJisoouoBqhpGEkweEFIfm0yTXblO/nRpyd1RChA9s2/r2Nov24labHhcUmvRmTa4aLCfLX8Ux3MfdbMe5j42V+9WNHOT/fxA9lwjnUNdU9mDY0viPadDacoKuy23plzeV/t8JftP15z1l8/61jDJcyTFVafPTBCRZX+VxfzkoaONZD9ICrcm83G3HeUalUKBaL635200nYUy2+nYRtPlZyhBRUrEjMRITsq1uWXB5xx2CIWjizlkExYyRcmuMTFSotj5YXsK1gIVGLU8rUuSXytXvg3DxzjbV7RdvLfLGeUm/W4vZ9/bzg+iE+9sA4956Zj4CeKAGQIDSlqm9Giu6uHxJIpQ6fMrWEBO9Gdjm5yPS5W/5YxzxokDENerImrhcyU3eSscNSGTm+f7oQ3LS9xMWFFmlTlUxv29XDyZk6Cw2XrKXj+yHzTRdL18mYqvzYn7O4fU8/Esl/PDarDJAjOY24HOSHMhJhVUhj01v5RMTc8jjpsSKB0BClTxbLfqQMLVkc+nIWh3f20puzkFJyaqbOrn6lKG8ZBnXH44Hzi8n3pn2p0CNXBF0T3BihC6AUvL22Z1YX0JO1Ir6jn6ByGUOjN2dRbnm0XFXqs0yFRsUJT9rQuXGsRG/O6lhMG47PX3z5LCemavhBSCljcWh7ibtuW1nuWW9BDaXknZ95lIWGy3Apw0DewvZCJiutSHFf46GL5aTEV8oY7B7IJ2is7QacX2hyzbYcR8Yr1Joub7r7r3jtFz8MwMPPfgkf+dm38mjFTxKgtRbcVRe8wTzzDYeT03Xm6g6FiPsG4HgBs3UnMoVXJen+nEUYKkeHuDzb8gKGi2lGezK84fmqFLpWYpoyNZpOwPbeLLmUTs32E3ukfEpnpuay2HT4hRdcw3MODHYt7LmVXJ8VibWpcf+5BeZqDqWsyY1jPUkiFj/TG839Voz7+ESFd3zmER66oDqX42abWPJFRJQFTSieVj5lbqnhdhhKfufTJxJ+3/JS6vJ52CjRXG8DEydqTwSPa6PYTBK2NWpj347LjidbAgad1aT4i6oLDcvQGCqm2VZI8dDFRTQhaLnBVZPvaI9AKuQoa6qOKVOP5QJUaeOG0SJfP7+IEwS0XNUmPVxMq8UpZ7HQcNfVS2v/ioYorbJAwnzd5V+OT3Hk/CK5lJ6YSNsRsqU6ONWuvBWVIQtp1ck3VXWUhk6kkF7ImOztzyGE4oxUW16i/dVNCBSK5AchCw23Q2RYY6k0GN8/gRI6TUeaVQ3HZ7CgJB7iTqSYyyalUDpflkE6Mguuu0rU8LrhIg9fXEwU+TNRG7jiXwlKWYsdPRmOjpc7UC/Fy1N8NYEqj/bnLaq2TyuS9oB4/qKETBc4fsCpmRo7erNMRabNu/oyfPnkHAhouJ1SKe3zF0Qq/RqqjBNIxYGL5SnUJkJ91tQ1CillCB5IiRmRu71AMlrK0JczeXSqRsPxMYTq+FzO4YrLSg9dLPOFx2b4+rlFqlE5s2r7jPauXo5ai090YrLKJ45M0HQDFpouk1WblK4x2pPh8M5eXnXrGGlT41c/doysqVPMmB1k90LKYKpiM121AcnBgsEP/s3/5HnHvwjAX3z3a/jCD/wsjYrfUcZabXFfs7tvooKRSJqEmF5A2lQehgsNxZnTNcW7C0KlsWfqGtlIJ80PVNfmnoE8P/XcvRuS2B+OkO747+JuvDgGCykajk9P1up6sd1Krs9ayvfXDRc55pepND0en65x284e5hseU20cqW7Hu/z+3BR5h673uVxK52MPjLNQd/GDaGMo1MZMIpOmHD/ih5abLjeMlrC9cMsMtzfrLrAez65ru6g7i1edx7WV0VUS9gd/8Af85E/+JOl0mj/4gz9Y97NveMMbtmRg3wqxWgnnyRbxl1QXihzZkzH4jv0DPHyxTNNVUgdpHTx/86U12BwSGLu4eIFSzC5mTJqual/vz1vcurOHICrR7Yn4NsquRXJ2tkbTDTB1kOFKq6rVhhDvFr1AMl62MTRB1tJo+gEaCr0h5i7pGpqQGLrOUEGV8V50sMR0zcWOFqmhgsWZuSY7+zJMVloEUqmZtyLl9BXnb5uf+K/VAge2F3QkPKslczFiF+tEhVIRWP1ARp1Iam6arq/KhObqLf/DpTTz9Sx9eYvTs/WEbyUEDBfTHBwtEYaKvxU3cCSdkKFE19UL1Ij4aXN1N+n4i58B5Xmn0ZuxaHlKfHOm5pCxDEIkf/u1caUXF3GN1goZ/UvoMFVpIgTctL3IiUs1pYWm64ShQv6qtodjxNY9GjeOlujPWR22L2lD54ELi+weyCsblejnccR6ZR+45yxn55uA0tUzdKWw/6XH55itOfzm91wfIaCdC8tyk/A46dnem+XAtjyzdYepiuJ3vfLwaELUPrS9xLHxCmO9S4vbYsPl9GyNc/NNNRGzc7zpQ2/huguP4OkGb3/lL/LRg8+jON/kxQeHE4RuNfRh32COhYa37oK3qy+LG4SML7Zw/YCmFyoOYsai3PQSvmRPRiF0GVPnprE81ZZHywt54wv2s39bYUMS+3ApzWTVZq7uMlxamdRupYL55SBkayUavTmLm7b38OhUldm6w388NksgJSlDJ23qfOLIBJoQGyY53RLql38uiLhU/VkrkqyJRKgFCJSVVxAubUBbXkjTVV3BW2VUfTmyIGslyE+0p+MTFV09te95z3v4oR/6IdLpNO95z3vW/JwQ4ttJ2CZiNQ7NE5mUtZewlocu4g43ZdkToHa3th/y5/ecoR6hPoFUyIJlaMhg9WRirdAifpPdpRx+y5O0PD8pFzbcgLSpsdhyObyzxAsPDnNhvsmnj09yfq7BnoE82ZTBbM3hUsSdyppK7X75PKyewHT+zI/ETX1fouugSZFATravuimvHSpQs1VH2pm5JiOlDEPFNC034Mxck76cxXMODPLYVF39nuujaxpN1+8oTwoU8d3UNIUmBQpR8IKI+Bw1SsTyDmvxshBK5uCOvf1MV23mGy6FtJJSsL0AN1CooaFp+CGYOitb/h2fjKXz6qfvIGtpnJtrMlFu8oXHZhkuZJSQqlBJqe8uib2qngg1Kk0T6JrGQtPF1ASeWBqzrmmkTS1qABEEUiEs1wwV2NOf42vnFyg3XdXNGKhnRqxTDpconbVyy2e4mCEdCZ7mrBgx0timqzkf68lwYaGJLgT9OavD3BdgoJAiY+qJPU57AhYThstNl6mqjR/ZM5UDiWUICimTlufz+HSNX/3YUfpyFq4vV11E19rlD0fPTyxpcMNoaU3drmPjZaq2ku7ozVlINFwJlUyBP/n5/83sDU/jcMuj6QX80O072b+tkBC249LncH8a2wv5+rlFJis2N4wW11zwFlsub3j+Af763vNMVWyChhtJcUQ3NpQUUjqaFguqKlPzlqeEMmMqwUYL9WA+RcrQmKq0EpHa5fdgKxTML7d7cL3x9+YsDmzLs3B2gWLaYPdALrEc6gZtWs9jsf13V/vcZLlFteXjRrp/iVZfMned9AUplzTYtiqp2UpZkCfa0/GJiq6SsLNnz676/9+OrY1vBioW61W1n1sQlbA0obgcMsTxVLno5HQ96aKLI0RJJcSef+3HWe+aNCGWymabGLMVLdiuH2J7AQVdcH6hye986gR1x0+6IGdqDtsKaUxDYBm6SkiCuKi25CO5mXP7odo6KjQp6OA75VMGuZRByw2467btHJuorNpBlLV0+vIWQRgyV3M6uEoCyKX0SCFeOQZYEV+q4fjs6suRsVQ32kMXKyoRk3E3ZPs41X8zps4bn3+AHf1Zjo1X+PLJOaZrDgilrj9cSrO7P8e5+UakbaXU7mOdnoW6w5GLZQxd8MefP0XZ9pSqexBSdwPOzTXJmDq6phbX5QKvKpnUEAj6cpbq0tM1jIjTk7UM0lGJ2QtC5upu5D1oMlxK0/KDSI9N1RIFcl0kLL6ngVScs/3bcpiGnthuxWblsZeiIUQiRBzbPbWH7YWM9mTIpvRVO9P8IGQ2uoexRIOU4HghXuCSNXVqtscFv8lQMcNoT2rVRfRyyjbLdbtaXsBAXtn45FIGUpj8zx99G36lSmtwL7em1fN5bq5Bw1FJ26997Cjjiy1ShqYEaSMJiZFSmnPzTSYrduQN2jmmeMEbLWX49Zdez/vvPs3dj88qTT1NSUa03EBZ2WhhhHaGnJ1tsKMv29HNt+FC7anzZK3V78FWKJh3m+ysFuuNP+Y9SeDgaJFiRpWx87q2IdrUbfntuqHCqp8rZkzyKT1yaBAIoRqVtMgGLHnnCPV9iKVb4tiKpGYrZUGeaE/HJyqeWqP9dmxprIb2xD8PQoVeCKFeBhKFkMT8gdVCF6oM5AXq/zOmniBmq0UpY6Jrgrm6sylxWS/yqFOlUlhs+jx0oYyuCwopg4yp0DXbV0jRqw6P8cmHJjgxWSOUymDWDdR1xdfbbchwqXwak85B/ezsXIOZmkMhbZCzdH7rzoNrchs04ORsY4UTgUQp4Q/mrUTNXUolezGQj7TKhFBdmrpGIFWpOB5DvN01NHXPTF3jnx6+xGzDxfGUcfS2Yppn7O7lC4/P0nQUyXlXX5ZKy2em6pBPGezsyzJRbnF0vEIgJaPZNHMNVVptOorIHnOu4nu82nMhpSpJGobG7v4s5abHtmKa07N1arbXwWeSqJ24run0ZC2VBDbcSJBXkjIUx0gXrNgIxOePd/amLjA1VR7tTxsrBFSbrhKsPb/YpBlZG52crrFnsNBBoJ6stDi8s5dXHh7l41GLfZxU3zRW4vRsPeqEFer5Ry1qpqGEhKtR6dbQVAehBtRspWV3dq7BRx8Y5+BI8bJ2+avpdr347o9Rv3CJv3rJ6zB1wWKhHy/bixvZ+sTNIlOVFn9173kuLrYopFQi7IcykZDYM5BTKHPTTQyP26N9wds7mOeNLzjApYrdwVMrNz3OzNUVGhN1bB4cLfG6Z+/uSGi6WagP7+zlFYdHE5mDrVQw75prtEZZbr3xV23lrjCQSyk5krbYCG3qNjG/5/Tcqp8rpI1IJy9EFxI0EXUUq+pG+8ZP09QmqT2B2YqkZitlQZ5oT8cnKrqa3V/8xV/s+oDvfve7L3sw3yrRjvwsR4GeDDwxQazjpBb0sB2pEZEHoFw5TteXlDIG1ZZPIFW5cL1ouX6EkmwuAql2x+0hUejUYtPD0LWkZHmp0uLMbINdfTmOT1QBMAwdIWRibryZaM+Z2vkUoOakbvuYuuCjD04w1ptddXEIQ8mp2fq65vE1x2d7T0Z5SWqClKmzeyCfcNyqLZf+nMVU1VZ6WZIE5VF6U0pmxPVDHpmqsX9bgXRRY67ucuT8Il89PUchpSx4pmoOKUNprvXnLFKR40Ds5ZY2NC4sNBVHTCxpnQlkh/3Xas+xIgMLrMhWJ2MZZC2Da4eLHJ9YEjTVNYHtBgRSkrG0RKzRNFRHbqzpFaLsobzQW7XRwtSgkDaTZHeqYjNUTHcIqBqaGosmlGl5T9YklMqEvGIHHNpeIm3oHYuEav4odZCeLy40+eqZeaX158uOco8qs8b6agplmK053H9uITE8FgIulVuM9aR5/vVD66IpszUHNwgoN12VxLdpSPVkLVICfvSjv89z/vlvALh37y2cue5WYv/KVihxvYCFpsdNYyXuPbPAQt0lpSv0zvVDNE1QTBtUbZ+Zmk1PxmSq6qhyVlsCsdqCt3cgv4Kn1puzuC3bS9X2ODPb4OBokXe+6iYMY7neXHcL9Y1jJW5suwdb1fl2pVyj9cZ/draBpgkObMuvQBNhfbSp28Q89k5d/jkhBHsG8tQdZQafjp6vGDpXm6gQGQqKKYWAJhuiLUxqtsoCaKsSuq3ujF3rHN1GV0nYkSNHOv784IMP4vs+1157LQCPP/44uq5z2223bWKY3zphrSPI+s1OuJaHoSvjZD9qZ17BvJGg6QIZZWEx8gCdbc9ilRKnGdnqhKHqzGl6IboIyVg6tCEqlxtJeVFKDEPH9QPqts99Zxd4xS1j/PujM9iueiHpmhIyDeUmrIZYnTsGS2r7UiqS92LDXXP3/OXTs8zUnI7jLj+e7akOMuUIINg3kFfGtpEXZn8+xUtuHOZ9d5+JpB1iOyeZjMHSBU4g2VZM4fgBj05VmK251B2PMIR6yucZe/oIpUg6tn75JddSTJt89hvTvPfuGilDI20Z2L4bdS6qEbY3VBia6BDCTRsCPyQZSyztMFW1edbefiYrSgNrSdDUxw8CGm5AytDY2ZejN2tCtGtXSaGMuhsVt2ytV2ac/GdMjZFShr68lbywD44WOTlVZaJiE0pFoB8spFXCB5yerTFVdTh6scyBofyKRSImDB+fqPA3913gyIVFxhdb+EEQzb0gJbS2hVw950Y0RycuVQik4rTpuoYfhrS8gP/7H6cYKKTWNMk+O1tnqmqTsQz+9Etn+cLjsx08paLf4tfe/2scPnoPAB//L6/nkX0347Qp9kskl6o2o6UMt+/t56/vO08uZXB+oUk14khqKE+/jKlTbfls782w2PS4VLVJmca6C956C+R01WFHX5bXPXvPigQsjm4X6quhYL4VXKO1xn9wtETa1EmZqx97PbSp2/LbYCG15uf6chb7BwucopYk1XVHde8amqBoWegRCmZF3axXw6h6qyyArjShu1LXgG7i+ESFv/nyo11/vqsk7D/+4z+S/3/3u99NoVDgL//yL+nt7QVgcXGR173udTznOc/Z5HD/c8byxbod8TA1EJrA81cnFn+zkjJBJF5paLjLREXbIylVCgVtxz8TqAQktvtpukEHEqZKTWpBHYq4PuWmi6EJ0qaOF4TrNgpsFLG8gZKMUD9LGRotL2S65jDWl2G0J834QouWF+AHS8mEJhIe8YbnXu3v1XtEJN2bri8ppI01d8/fuFTFj8zVjWjMcQNE+7OTMTX+2+27mCi3OD3b4NxcY4U/3bGJCveeWUAI8HyFrqQMDYlkpuZgahrHJ6o0HD8Rt4znp+4EPHh+kRvGetjem2GyYvMPRy7xm99zPccuVfBDybaChROjPMvmW9KZeMcoYfuGI06KQ6lkMXb0ZXEDmSzUN2/v4excg9OzdawIlXlsusZM1UYI5c7g+Ao5skNJxtSw9NV3mnE11vVVr+gz9/Rx123bkzKi44X051M0vZDRnjTbe7Md3Y5Py/YxVbVZbHr8xHP2rqo51c4d6s2myKVsglBT3YCBREpVKlfPgXqmM5YqywdS/X98RD1qZnD9kD/94lne/oobeXy6xsMXywyX0hia4OhElYbtkU8ZHBorkTJ1jo1XGF9s8f23jrGjMc++H/0B9pw4jmNafPTn3s7xZ7+YGxvuCsX+p+9S8xFEZceZaiua2yVuqBuENF2fjGlQtz1u2VEiYxlMVlpoQqy74F3pAvlEefUtj63iGq02/p29Wd7+mUcuq4TWbfnt2fsG+MLjs2t+run6vPjgMD90+05qtk+l5VJ3VGf7NUMFmm5wVcq8y2OrEujLfU6uhPfXbcTnmJ6rdv07my72vutd7+Lf/u3fkgQMoLe3l7e97W286EUv4pd+6Zc2e8j/dLF8ebAMDdcLCYh8866iONhG5cy4TNc+hBilylgGvRmTi4vNdY8XStCE6qCLEZA4ERvIp9jVn+P4RHnFuePPIZTel2PqbCukGevJ0HR8jk5UEu0hJXa6tNgvj1heISmNiaX/ylAmGlqaFhG+azatyIJpqJBShtKRgGrN9onFWS1D0FpFdDQe/9L5l/SmLENDF0qpK0Z/dCFoeMGqu+eW6ydk/mROV0Hjyi2fr51b5PXP209+FXkDgJ/8zn3RztWmN2sRRETgmq00vPpyJuWmhxPBfcuvbLHlc//ZeaVmDvzriSn2DGSZrNikTdUxqQnlntCe+MT/p9C/Tp7g8sc7LhvqmmB8scXrn7c/eekvzKrOQkvXuHasQMrUefD8IhNlG02onXw+ZeD6qn3e8UNler/KLUqQ0Gg+n7m3n5u293SUESfKTT5wz3l2D+SUz2HHAQSDhTQNJ1hVc2o5dwhgomyy0HAZKqSYbThKrDfypNSEIJvWKaZNdY3GEoKnXAokKVMna2qcX2zyx3efoukora1LlZYqEQrBWE+GvYP5RJus37c4crFMcP/9vOuDbyFVnada6ud//fTv8uiug4zYPqWMyTXbCpybb7Crv1Ox/9SMSnLLTR9dCNBk8vxJCWEAXuDjh00kUEyrZ2NbMcX3HhpNjrNaXGki9UR49S2PtZIdpfXmcXa2wcHREjt7Nxb7Xm38l1tC67b8Zhjahp+767bt7N9WWLMUdzXKvFczNvOchKHkzFyd9919mkvlFjeMFhPnn255f92eJ34/7B3svoS76SSsWq0yOzu74uezs7PUarXNHu4pHd0iN64fbpwdbVFseIpVnq+YTyWlpDdvMl5eWU5cHn4IuljqMLR0ZYB8x55+jl6qoGsaulCimmqxU2iIlJJapPdUTJvcvEOpuQ+VUphTGl4ok/JtEEbk77ZVPUFd6ETrZLT6qiRPXaQXaVFlDI2vn1sknzIS8ciYh9R0POpLlcGE57XWtetCDcLUtURgNAgkpqWQKFNXorZBVEYrN10evljueLFdM1xcSjDDJQuomPsUx3De4lK5xZ9+8QxveMGBVQUabxwr8cYXXMNHH7jI0fEK5+YaOH7ItkKKuhNE5tydCdjy59aNULm0qbPY9Pi7r4+rZyFrsdh0KaQMLEOjYXeWi9uPs96zspSwSU7P1smnDH7zpdfzpVOz/PmXz+IGIbfu6EGLarq5lE7DUYlW1fYoZUy292bozZo8PlNPrI5gpUhteyIWtCXi8Qv7SlCP1bhDMdfM8QMGcilsz2e0J0vTCxgppvn+p23nT790lolyC0sncVrwI15XIWUQREK/J6fr3DjWw/5teS4sNDk+USFt6ewZXBKHXWy4fONSFS8IGZ2+QG91nkvb9/M/f+qdlLeNMFpIsdh0ma6qJoxrh4s8e38/B4ba/A2lVIK3qO+GF0jccKUfbBCqjcDO/lzCkfvYg+OM9WbWRQy+GYnUZsP3Q+45rTTcBgspvu+W0U7JDz/g5FSV2bqbbPDe9s8n+P7bdmwaLbkShLDb3+3mcxuV4p7s9+xyIr7mY+MVHp+uKUAkEgqOG3C2So6j4/0Q2l3/3qaTsFe+8pW87nWv413vehfPeMYzALjvvvv45V/+ZV71qldt9nBP6Yj90jaKJ5E/t0qKRCenR0MRnhuOT932OzpnYt7UauBdEJWoUobGdcMFNCGUCGZLaSq5QUjLDRJhT1DoQMP1yVgGT9vdy4sODvOBr5zjwkKLUsZgruHiE4kJCqkEBaPzxWTnMOrusQzlZdiIOC0xKqdr4EUXkU+Z9OdTnJtv0p+z6M+nmK7YSdeahMT+xQ9UR+VakTY0bt5e5OhEtaMxwAslgeOrcpquyM1TVRsB/MmXzqzQhjo4UqSUUbpJ7aKxyztEH52pI4Tg7FyDiYqtLHCWaUudm2/w+HSNasvH8RRSZBkaKUMHRKSs33nc1R7HuuOTtlRXp+srOYyRUppy06Pc8kjpgvqy32kvQa4X7YKz8w2XIxcW+eC95zk6XuFk9GI8Ml5m70AeIyK5DxbSSpfND7l2uMhIKY0QgsF8miPjZRpuC0sXmIYecQzj8rJ6PtwgZLZmd8xTTKjfP5jn2MTG5aHlqEGl5eF4IemiRrXlJdY5N4wq5KfS8nADpeH2XXv6k8Wv1vJ42z8/ojYFqJd+ytST5Haqqsa5sy+bJIaljEnW0gml5Nxck76sWjDOzNWx/YCerMm/3vwCdvfnGP+OF9CTyTE3U6c/l+INzz+QyJHMVG0+fP9FPnFkInn+Liw0ku9S0wnW9IEtZQyCMOTCfIPDO3vZv211xGAjonP895WWl4gslzLmNw1t+YeHJnj/3ae5VLYT3uVwMcX3HR5loeHx0IUyJ2dUU4quCdK6zmzd4Z+PTfHoZI3fuPP6NZHpteJKEMJuf3e9zz0RpbgnW7Rfs6IxKL7jchN52Bo5jnZuod99Drb5JOx973sfb3rTm/jBH/xBPE/58BmGwY/92I/xe7/3e5s93FM6VqGtPyUitqtI/tz284W6k/xZj7hOqy3bmlAlwYyl89xrBvmJ5+zl40cmuPf0PH4QkrVMcpahlN1lO19IvfSGIvucD91/gbrjs9hwcfwQXQiCMETXNdK6SghEVCvJp/RIbVqLOA0R9pEycDyfpUZHgSE0BopW0qE233CZqmgYukYhrXNgW56MpcybH5+qMVWxlxJFiF5wCo2Lr97UNUoZC1PXVnRnhlLJK+SEgR8qA+PBQgpT18gYAl/K5IX3c8/bz3deM8hnT8zgeKsbimsQ8cYkvkCVay+WkxcmKKPahy6UOTvfIAwl+ZSOaWjkU8pwWpURl+7vegifH0pqtse2QpptBYsHzjdZjDh7XihpRll4nLDH17xRxPIZugYagrrt8zf3XkDTBFlTxzKWXoxNp8L2vgxBKMlaOoYucbwQxwuoO76SH0kZpAxtaRMRWeTETKu4QUGLSour7f57syaGLtYt8axmJr0tn6LScvn6OZuWFyq5DE0oba3+HG4gIw/DAx18sh98xi7+9v4LnJ9v0pM10TWli6Y4byp5zqUMRkoZoouIupNVolSJ5CU03+OHPvk+Pvmcu5i3+tE1wZHn3EkxYyKAkVKGU7N1Ts/U+czxqRX+evHzd9uumErSeQPbnw/FEVV8zUrLp2b7FDPmCsQgmd/peuJosG8gx488ezc3be9J/v6hC2UuVVo4fpjYMN2ys2dLCdHdxD88NMHbIj1BVWIP8SWcmWvwx/9xmp997j76sqoTNJ8yKKSNSMhYcauOX6ryxg8/xPaejLqWTRC7rwQh7PZ3V/vcZiU4lqOEz943sGZDxZM1ll9z3fExdNU0U0ybVG2Pc3N1erO9CCG2RI4jRtmbjo/TWtujeHls6oxBEPD1r3+dt7/97fze7/0ep0+fBmDfvn3kck8tbY6tCO/Kmvm+abFW+UgCDS9MFtogZjqvEpaucce+Af7L08bImDqPTdXY05/lsaka4+UWVduj6fjqZR4dO9LHRKBkCy6VbbVIGEqRPH6Jp02lcO54CkHLmBpuIKk7ATUniNA3VRe0DI1thRTlpnqxDBXT9GRNUobOdLXFXN2lGAmeZqLjLjY9Wm7IjWMlShmL0Z4s0zUHxwmw9JhrtiQ5oKEWQ8cPeOhiGdsLlVyC7EQ5FWIoSZsaEkMlTuMVpFRoWyGt03R9PnHkEj/+nL3MVB0em6pQtYMVaGkY35Dov2fnG+zszdDyAv7ki2doegGLDZfFposuoJg1qUWejGlDo5RR8hP5lEHD6UTcVgs/UKXU/rzFo1M13CBEoJDe2LQbVPfcUhOFSOapfbgd1yEVYqxr6ljxYnbLzl5qto8RaaHF452uOgqhcQPqtofthxwdL5MydQbyFiOlDD1Zk4WGQd0OcIPY/kg9WTEnTyU7YtXd/6WyMsIe7ckkpbv20g0sM5MuaszWHR44v8BERSGc/XmLfEonkEQ7a8XDun3vwApCv2Fo/PR37edtnzpBteVTzKgOTze6h0IIDo4WEZpgoe7w2HSNasuj4SpUWtegOTPHL//Jm7n+xNd4+rmHee2PvYe+Qrpj0chYOlOVgE8dnVx3wX10qtqGJoukHB3Ln8TPohk1SgThkpRLO2IQIw3ji02abhBZOKmS89fOL/Dqp+/g4YsVxhebyr8wDJV/ZBByqWLjnJnvQGGutnSA74e8/+7T1CPkPAyVzZgQYEQo+HvvPk3G1LF0Jf0Rz5+pqyaKStNjfLHJrr4MuwdyTwk0aTMSHMcmKgolrCgHCEMXjJbS/NRz9/F9t4x9k65g87H8mgupJa1AhTIbyeaikDa2RI5jd7/q6r73zAKh0+j69zaVhOm6zote9CIeeeQR9uzZw6FDhzY90G/Hky/auT2agN6swXxzfVg2nza4ZWeJP/r8qY4vbG/WpJhWVkFqJ6+BVEQrCRCCJ5U+0v7BLK4f8I1LFZqe8nV0fYml6wnvJ2uqkkwgg6RMKgHblxiaJG8YvPLwKNcMFbj3zAKnZhVyoUyCJfmUwbVDeU7O1JUieNpMFvyzcw16Mkohfn+0q9c0AVKgoxKvfNqg4QQ4nhIoXYx3OFEtLp47y1DSHkJA0/WZiVTUlcQEuIGG7QekdY0jFxZ5ze07efPLDvLRr1/kH49eYqHhJXy31RCmMJTM1l0sXWO2NsdQKc2uvizjiy1yKRNT1+jJCFpeQLnlkbV0spaB4ykvuMXmBjszAaM9GcYXm5SbHgJBKWvi+gGOrxbmQCp+Y8bSKaYNXF+hZ7qm7K1aXmzU3ZaQycjEO+LaGZpgpCerXozLRFSzlqG044Rgqmon8+CHEtsLqbQ8xhdtXnhwG6OlNP/+yCyuv+RaEM+fZejcsbef+88srJuM9Ocs3vD8/TScIFn0gQ4z6XLT47HpKvN1h3JzqSFgtuaQNg1KGYOMqbPYcNGF4Om7ezk2UVkhznvTWIn/dsdu/uGhCebqDlVbzctYbwZdV2XW83MNHh4vJ2gxKF7b6PwUv/X+t7Jn7iJNK837v+O/YqXMRDcujlbE85qs2OsuuBcWmkqcNfATVDz+aIKECfVPjPbFSuoxYpBL6fzNfRcYX2xSaXo4geJZ5lKqEWa+5vDeL5xhR28GPwzxpaQnawGCdER490PJfN3h4w9OEErJxx8c5+h4hUrLw9Q1rh8p8Lpn7+HQ9p71n90u457Tc5F9mbonVhu6Y+gaaRFJw/ghIz3L509G6Jnal/qBTN4P8fP0sQfGSZtax/P0ZCC3dyvB8emjl/irr56nFflHpjKqSerCfJO3feoEwIaJ2JOl9LzimoVg70CepqOer4yp44ch1ZbHdNXeEjmOE5NVZmqOEibuVveIyyhH3njjjZw5c4Y9e/Zs9le/HU/SSBbN6OViy/UfoLhU8b4vnEZISTplRNpQkslyK9LgEmhRiS5YBXpruAGfe3QWXdPwgqCj7Nf0woizoiyTUoaeoC1xd6eUYGoKRv7IAxP80Q8e5rdephTqH75Y5jPHJ5mvq5LcgxcqWIZCSRYaLqah1M1najbHLylE5Dv2D3Bmrk5K1zANPeIWhdQjRXk/Gl8QIS/tIKFAkds1FGJQbSkdntj6Sb20Q0KpkIZLFZtKy+Pwzl4OjhQZLqV51789RojAQOK0zVW8QAZSyTM0PcXXunYo32HEDcoeqCejyPSLTS9pRDA2eLEIFFJXbrrMVG2V/FoKTQMTL5AEQch0zcYPwfECFoKIYC5j8V6l0h+EIDTQpELzQqkI3hoSy9LJRIgWLIlJxiKqaUNT5Uc/6OArxmthIJXf5fhCix9+1i6+fGoezw/Q2iolUioj8pu2l/jiybl1k5FTs3U0Ibh5R0/yd+1m0uWmx/GJCnXHw/ZCQtr4bdFYXD9MlMlbXsCffvmskp6IylS37OjhoYvlpKw5UsqwbzDHDSMlbtnZwx17+nnHvz7KfWfmOT/fxPFD0olAreDm88d438feRl+rynRpkF/5b7/DI8P7ODxSTPgs6roVn220lGG6aivtvVUiY+m0vJDerIWhCaq2Ss5VQ4pCnvUoAYs3Mv2Rkno7Zw7g1HRddawGYfSsqHm2DJ1i1mSm5rDYcEGopp3470X052rLZ6wny5ELizxwfoELC01anuKQSqnuxVdPz/Pr33P9lqAwSvA2JAxDDH3l/CwlvuraLWPpM14gI5N59Z5r53PE1/OvJ6Y4NlFJpDy2Wn/qcqObZhRTh3946BItN2BbMYUQ6kuVsZSv60zV4f/dfYY7bxxZszTZUXout3CCkJShMVp64kvPq11zb87ixrESZ+bqiRNH0wu4eQtdF/xASeOcnOieW7bpQu/b3vY23vSmN/GpT32KyclJqtVqxz/fjqdexLv7WPah0YWhdiNamBxfstDwmGt4lFs+ti9puGHkI7i+obcXSKXZFa4sZUlUB2YQKHK2lNECEZW2VGKikoX5usMfff4Uvh9ycrrGh792kdOzDTShyMVEmlnVlk+15TFXc5mpuVRaHg034M5DI/zgM3YqqQw3IGUoZKfcVERs1cggOuyBYt2sWA09dhHwQoXcmEbMUVoyKg9DqYy4vYBqhKhpmuD6kSJp0yBtaMi2hEET6vixx6ZERJ6SEk3TMCOvQr9tkjNRolNIG7Q85d3n+CG9WTORxGjXRgO14Oas2CJIIZrK406VfE1dQ2gCwdI16ZpA09TLx/aUPVRfLqU6YaVaxQ1NYGjquUoZOnsHcoz2ZDoM2/uiF2PW0plruKqM3f78tQ3S0NRYH5uucvdjs4yUlNBqPm2SNg3yaZM9AzlGSmmOjlfVTjhORqRC7RbqDjXbI2OqhG85ETfZQZsaZ+bqtCIENIg6C7QoSdE1QdrUyFq60mWTkpanym27B3L0ZCzuOzPP2z51gvvOzNOTsdg9kKM3a7HQ8PjGZJX+fArL0nnl4TFVIvcCxRXTBBLBS49+nr/+29+gr1Xl0bFr+LVf/n88/wdezM3bS8w3XOpRc0nd9jk1U6cvZ/GyQyPJ4rNatNyArKnTm7O4fqTIrv4chbQR3U9B1tLpyZpoQlBuehiaxs7+HA0nSM7xqlvHaDgBlZanjmcZ0fdZ8fficrVAifS6fti2EVAblSBQiJOG5PxCg8en65GWnaI6pKKFfrbm8o5/fpRj4+VVr2czMVhIRZurVcXro6Yl9T2vOwHtb6Uwkr0JQhlxQ5ccBBYaLqdmVXNMxtSS+39sXJVrj09UrnjsVxKxBMdkpZVI98QRJ9a5lJlQN+IELA4hNIoZk4lKi3tOz616jrg0fd+ZeS5VbAIpyZo6fhAyWW5x35n5J3Qu1rrm3pzFrTt6GC6l+a5rBnnnXTfx5juvv+LksL382ZdPccsm0NtNI2Hf8z3fA8DLX/7yFZ1FQgiC4KlBlFqPpPyfNdZV7pcg9DZIbJ2QQMNVC+V6dzuQYOoRfB+tq+3zvvwsYpWf+xJExFNZSkaW2vyrtto5f/nUHC/9gy9StX1aXkjKEMo82PaT3XWsPWYZiuei0grJp49Osm8wz089dx9v+9QJZqqqOcEPwqRbzzQEu/pynJypJ4llnAzCyk5B25NoBAhNvdRjfo3rh2Qifz1QL/ea4yeSF/HLME50gKS7NAglthegocopHTyHtIkXKmsaQxfcMFLg4qJNb9ZM/BofvLCI6weRqKhCrCB2DVBJs6ZBKW1G3ZVLd7xme8mdMXRN8d8iCZAQtXilTZ1SxozMoNVOU9cU3+vpu/v48efs4eNHJlYVlQyizsFcStnmxIinQEScMg1NU/ek5YU8PF5he2+GqaodlUOj+6EJBvIpLlVaCIh4SmHiYRiX19KmRm/WWkHEjXfQs3WVtKtEwktK4XFZ1RSCIIRiWqPcUlZI+ZS6r7omyKV0/EBJT/iBappAiFXJ0FlLNZsYEWrq+SFW6PMzX/k7rMDnizc8m9/6/l+lWOzl5h093Lqrd00pgoMjRe49O7+uwOdNYyUkkuMTVW7d0UPdDZivOUxVbVpeQN0JKGVMpcRu6FSaHrYZdMgdnJmtRxp8ElOXzLXcyLpJrQNa9KzEvEo/lIQypGZ7uL4kCENAcOxShWrLS7TorKhhAUDTdBwvYL7h8BdfOcf//v6br6hc9Ox9AwwXU5yZa2AEIUabWXUoZVJqtzSBG0rKTZdcykw2Pn6oeJKD+VTipSml5OxcHdsNyFk6pay1okx5pfpTVxrd6I0dHC3yldPzSfK7PCxDo2r7zLY5fcQRo0DzdSdC58PEozVj6VRaHn6gqhBP1FxsdM2jpQw/+dx97N9W2JLzrVb+7DY2nYS1q+c/leNbLQED1pXTUKW2kLSp425hIi3D7rrz2sfRLp8BsSAohFHyJdt+HoYqsXK8gPGynehbpUydhmuzEHX4gdI+ExoYQkFBIkI0Yl7Km++8HoA//NxJzs0rwVo/UDyi64eL5FM6Z+caSSIrkSA7yczLr0VIqRC9MEiSqr68RSljJvD90XGlM+UFCh7XhSBEduijyYgALlCr2ompKllLZ6iQZrbmcLHchFASRsr9955dZKwnwwsPDvFvJ6YjgV2FsMSToQmFcum6YP9gjpYXMltVbftLLKu4FBMmaFTG1MlnDGSE+lVaKuEqN12GimmuHSpwdl6V+u7Y28+hHT1cN1xgb8Rhan8xpk2Nx6eqVJoevVmLXMqgZteTEmMYza0p4qRZRd3xOT1TT7hIRoQILjRcGrZPKWuybzDP6dlaB2fJ0GLxXsVZjEnacUfYdNUmY2pcWGhhe37UBRkhh3KJk+iFIbqmbF48P8QwFToSJ3U126cadRRWbb/DBLudDP3ZE9P809FLzNaUJ6SMkEMrm+YtP/67vOjr/8pfvuCHqdkBvRqJYfZ6kgXdCHcCXCqf5NRsg5FShh39uUjKZUnc9fnXbePCYnPVc+zuz7FvIMfJ6RpN1wNE0n2WoKOo72whpVO2PcWViZLgUKjkutz0VClUB0sTHUmjQG1eHD/gxKXqFWk4gWqQeP3z9vPrHz+G7YdYyGgbpmgYhiYYyFscGuthqmpzdq5B0/WTr4LaSCk5nnicNVuh6xIS0/lk/FukP7UVsZGO2HzdwdCVQ0XGWpmIub7akA5GXe3tEaNAxYzFRNkmaxlt9zEqPds+Y71P7FxslWdlN7FRyXe92HQS9tznPnezv/LteJLERgmQ8rUTNNytO6cvV0e4VoslUrDaSS/lILKDg9UeXvQhAWQtXXUIegG5lE7eMpj3XCVES6ymDw5hIjdRswO29+aSl8P3HhpFE/B7//IYpaxJb9ZipJRG05Q2VMbUcYNYl2zjq5LR4GJledPQuWmsRMPx+cPPn1IdeMV0QhC1Pb/NIFv9fhiVwVKGhqlr5FIG5abLFx6fJWXqiRYbKCcDKQUNx+fcfIMP3X8xknjwqLQRyzVVL8ILfdJSp+kGPHNPP3N1hy+dnOtAAVw/TFCtgUIKDZIyVNbQkFKpxoPaMVdsj/2DBSTwyFSNhy5WOjgy7S/G8pzLfEOVQfYO5tE0ODVbT+QZ1HMgE307L+K4KeSOiBelnjBTV6jbQsNFtuClNw3zu595lErLoy9vJaXblhdQyprkUzqfPHKJ07N1/uSLZ5IGEwSEYYjjSaVVtwzt1KL/BqHiTIVSkrb0DqK8FygJi0xKp+4Eyvy8LTKWzpk5lz+/5ywNx8fQBX2tCk8/d4x/vu47cHyXh61ezj//h5VcSRiyb7CQNA+sJ1nQ7eKz2mee0aZvBqx5Dk0T/PAdu/jXE9O4geIrCiQyVKhmytQi/qRGxjKYqSuTactQcg+xxI2ZMqJETIK+lPgvDz+8Mg2nOF5xeDsPXljkb++7gO2plFqgmiT68hYHthX4ie/cC8DHHhjn2IRqGsqaOqM9aWaqDvMNF8vQyVh6YgtVShuJ6Xx7bIX+1JXE8o7T33zp9asm1r4fMlpKc2G+SdrUOkqSUioC+67+HM/eN7DiHDEKlMpoq3JQYwP59VxErlY8UVZYy10XNhOXLYrRbDa5cOECrtu5Yn+7Y/KpHfUt/IIYQiVhm0Ud2xEg6E4QVAhoeUFSgpqqOIlierz8JUT6CBXSNKVyr2tQtwM+e2Ka4xMVzs41KLc8mtELw/WV52A+pZNLG1SiOVoN2WvnWUmpSJemLpACHE8ykDH54Tt28fEjEx2de3sH8zTdAMtQu6lQSixdS0qpxYypjLlNjZ29GTw/YLEZ0oyQHNV4oAakrHB0Ki2Xc/MNkCQitO3vHi9CEf1QyX+86tYxhBDM1h3OzC6hAIGM1N3TJoe29yAgKe+1QqWWN1Cw+Jnn7ufmHT1MVVp89MEJFtcRhvytOw/y2RNT/PW95zk7r3baJ2fqFNMG6bbEsj0R9TzVITtSShOEiusWl7van5X4j1lLpz+XQhciQrR8dE3Qn7PYPZDH0jXuOT3LJ46M4/lhR0fYQkM9P3ECHKIQVEtXpam4pGt7AWlT59qhTqJ8XH52ouTVXFbmaTk+i00XAYyW0vDoo/zfv30LO8rTOKbF5/c/Q5UyfRuhKc2z1z5rV9eLRzeLz5UuUIWMyVhPmgsLraSjUwhVrjY0SKdV9+iOvgzjiy0MXW1cdA2ylsFAPsW2Qor7zs3j+tFcLzuHF0oMvRNl3CjWk7o4PlFhquKwbzCX8PDCUGF2hqZx56GRJAFdbW7a9eOmq8perZgx2NdmK9UeW6E/dbmxnkJ+ezMKKJSwnY4Ry/q4vkrAMpbOTz5376qk/BgFUvdWbXRMfekZ8iP0M5Dyqs7FWvc93rDEf7+8e3mrztOOQPeb3VeTNj0bs7OzvO51r+Mzn/nMqn//VOGEfTtWj0101j4hkTZUmaPpBuuS/A1dvTDiz3hhsGpXoIbixgWhZLHhkrXUTvz8fIP3fuE0fqh0vkIpqbQUenSpbFNIG/TnLMI2o3HLUJyY9kQBYjK9SiZDVCJKCKYh+IFn7KCQNlfo9sQE9bNzdRZwablq/DHXqRGLS0rJ8ckquhD05y3mI92bjKm4F003IAxDao4qTQrZhuSwlKRIEXfBKf2j/pwqBe4dzPPmO5V0xtfPLyozZ8tARh1hhqZKNwci70TPD7lUtXn6rj5ec/suAD75kErA1hOGDG4J+at7zzNZtiPfUqXhttB0SRtKiyxGMNV51HulmDF59dO38y/Hp1lsKSJ/bEEVRBpkGUunJ2MxV3MxdY2n7e6jGXHDTF0tAkKo3f/FhSYyhJGedEdHWB+SyYqDQJVfY8RV0wRhIBOx1QNDBXb1Ka/NmA8FamEqpg0ulVuM9mQ6ylRSSs4uKB2h3X1Zsvfczf/+wG9TtOtc7BlivHckKbu7oSRn6PziCw9sWqqhG4HPKxEQrdk+pYzFs/dnI79SP9k89GRNdvbnqDQ9XnD9EJMVh6FCCl9KLE1gRY4BAOfm04wvKiFXIUTSUewFITKUZDMGh8a603BaL/E4OFJMBDxv2dmXXIMXcT+nKzYPX6woNLxt8W6P5YlrLqXzN/de4NhEpeP+w0oHhici4gTh4YtlPvrgeNKR241CftyBGuuEVW2F0O7qz/GTz927ZodqjAIdvVimmFZC0TEnDNR3si9rUbP9qzYXG1kybfT3W3WeGF0+cX6662NuOgn7+Z//ecrlMvfddx/f9V3fxSc+8Qmmp6d529vexrve9a7NHu5bMp7MTQFbNS5BlHxcYWhC4HShiuuvkj3GtkTtESdFhqa4Tk4Q8vhUFS+UZEydwbxFywuxPS8icQNSmW5PeD6OL8lZOoGMuzZJEqW4g7OUMfFD1Snmh0rrrJA2GchbvOzQ6Jq6PX05i95sL5WWx/n5Jk/f1cPHHpxQ5cxQCZ22XD8y1QYwkqTKjwQ1TV1ge8pxwNIFXhCR3qO1QdcEpiYSAnkoFRcwCGVnmUAoRC2UylMyZ2k8Pl3n4mILU9OSxClr6WzvzXLXbdvRNNEh8bCWNMSDFxa5+/EZZmoOliZwvJCW59CfsxINt/i/MY8xBHoyJj/2nD289MYR7j+3SH8+xVS11UG4789ZDBUzSKQilpsathcmjRDtcWGhietL+rIrO8J0TbkPhEFIKWtieyFN10/0oVKmuvb//l37GOvN8gefO7mCg2VEc2TogroTdHCzcpbi1D3zC5/kB/7iHRhhwLGdB/nv/+UtTKWL6FE3XilrsqM3syIBu9rCpt1EjIBkTIPb9/YnCU2c6DacANsMEgHljGWsypfZM5BjsakcMxw/XOrcjZ7Ba4YKyfO1XmxkzXPXrWMrns3250IXWlecpeXJ2V23bWeivDYH75WHR5+QexUnCCena5ycrtP0AoaLKQbyKfKa0ZWm2ffdMsadN45sSjG/HQVqeQG6plG1PayIz2dqmir3boEW11rXvd59v/PQCJ+OBIyvxLKpW+ungyNFjp3r5e9/rrvxbzoJ+/znP88//MM/8LSnPQ1N09i1axcvfOELKRaLvOMd7+DOO+/c7CG/JaKdF/VkTcC2MuJrXE6y7zZ0Ab1ZCz8ME8mC9ZLX1QC8tT4b62tpAmzXJ2XokdCkgaYJWp4qWwmIFOFlUroDxR8pWTozdZcY+JWRfQ4oJC1tmrRc5eV441iRhhMku8Bz8401SZxCCAxNIVOTFTtpmAhkLCshEEKR1SstH4n6L1LiS5l4fZqqxSGZhXju4sQrlp/QNbDduNxodLxoRqMFZarS4uh4BT+UFNPKcNrzJa2GSyitjhLORsKQthdwZrZOEEpKGZO0qWO6AQsNh9maQ1/OQheCxaaLqQnylsFoT5p8yiSQIQ9frPCdBwYT/sXhHT2KcxUt/vmUzunZBoe29/DsfQN84fHZNTsFZ2p2wiX0AkUaTxoCQql06AIY68mwrZjG9QLc6OeTFZun7+7jhQeH0TSxKr/q9r0D3LyjlOiEtXOznrmrhPerv8bL/uWvAfi3m7+b33jZL1AJNfw2g3LHC5gs2zx8sZws/McnKiv4SjeNlbjrtidWk6qDB7Mt35HQtKNAG92Hphvw/OuGCMOQ+84tJqhvMW3w9N19/MR37t3wurqx5vn00UlsN1j5bErVoWy7AZWmR2UTljOwPgfv0PYiH7jnHKfnlLVYKWOyf2jr9cPav7eFtAkCCimDxUjr7saxEr05K9I00/nXE1Mcnah0aNrFYzIMjedeu+2y5yDWCWt6ASlDZ6SU5vDO3i0nw8PG9/3kdI33332GrKV3Zdl0uedZfpw9A92jy5tOwhqNBtu2qRvU29vL7Ows11xzDTfddBMPPvjgZg/3LRObzUMEagl9qhd3DU11Qdm+XMH1Wi+0qCwRtsFpy2UgNhOCJTX6pQRRlT3GetIsNv2oc06JMmpC4EepnRGVLzWhyrXllk+lpdC0mKQdRuiakjQI0ITADRQCU7d9+vOpZBe4nMSZLEqRkviZ2QY7+rLUIyFNx1/dozSmMYcyTMYQRg+MkgQISEVaPbGkRBiG+AEsNJyoW1J1IPbnTHb2Znn7Zx7pfNFIGclAqJJvPm2wfzCPH8pVSzjrdglJycmZGkGo1Mpje6pcysDQiHTCVEkrCCXDxTTXjy6Z7EopOTVT5xNHLvHKw2NMLLY4HXX39WQtWm7A6dlGsuM2DG3dTsHenMVU1WGq5kTzpxJuKUmU7kNJpKNkKEcEYLHpMdqT6UBn1uNXfe+hlUgI//iPaFEC9v7veg3vftZ/xfNXbiYabojju3zgq+c4MKTa6d/26ROcmW0o0/LoIbiw0OTEZIUfffZehkvpJwQd60b6oJv70Jez+Inv3MvBkSJn5uo8Pl0HJNcMqY7abq6hG2ueS5UWEjqezcWGm/AbXT8kRPLBe89j6tqmEobV7v/D42Xe/dnHWWx6CXpctT3mG86W2hwtTxAWGi5hCLm0nkhEnJ1r0JtVzhmnZ+pUbZ99AzojPZkts15qn4MnSjF/o/tezFicnlvk8I6eDS2b1kM/N2P9tNny/qaTsGuvvZbHHnuM3bt3c/PNN/P+97+f3bt38773vY+RkZHNHu4pG1e7pCh56iZghZROw1EWKvGCa+nQ2kQS5oWSubqDZSw98JeDqMUhohKHpQtKGQtdQDMivQ8V0yw0ajQiInoYKnX0OOHzg1hfTMOPzMQjmheWruGFkjBUZO1MJFUwH9nYpE2N0Z4sLzs0wsGRIrD64mV7ASdnasw3XAyhSKwzVZuWu7rBdxyS1Xl8QQhSqBKrDTi+Qs1iDU9lqaQSDsNQZYnPPjrNsfEKGVNLDLNrjk+15ZNLKZSj2lIoRX+ker+8hLNegnmp3GK25pBPG0l5NSbwpkyDwbwy+PbDkEzG5KbtpUg0Nr6HSy+7fMroqgNwPZSilDU4Nl5mNW3iIFhCECcrNvN1T/mIaoKBnMWLbxhK7mcca/GrVv35972cuR//GT6hjfDuwdtw1qndhyGcm23w/+4+jRTw6GQNXYOUoScbk4bjc+RCmTfPHmPPQP6qK7bH5dAglNx163a+emaO07ONy7oP7Z/bv61wWdpN3VjzaEKwrZhistJifyqfOCLYfhDZ2EApbXF+rsEffO7kphOS9vt8dLzMez77OAt1l96chalrUQOMH3XKNjetmbVWCXp5ghA3hajvlxb5JHpqgzenypTtmnaXo2m2EQn+iYqN7rsecViNNXS7uu1e7db66XI6PzedhL3xjW9kcnISgN/+7d/mJS95CX/zN3+DZVl84AMf2PQAnqrxRJYUY0PtJ3MkJt0akc6VikBCwwnQtciGaBV1/LUilKp7casSXiVzoMocIZKq42PpgvFFBZ27rTB5eYVyCTkTqLEv/x7HMgWmJnCjOrMXSPpyFvsG87h+oHaes3X+35fO8NUzc3z/bTu4cay0Ar4/O6/KFQP5FPu35fH8kNMzdZSkZds5V7muteZH0xQqB3JVBDGQ6rquHcpTtT3+1788xlzNJmXoGLpGMaOaEeK2cwkdZs6w8uWzXoI5W3Ow/ZBUEBKG0Gq6FFMGuq5QAiVYq5Kz4VKKYnolj6v9fDfv6Omqu281lKJme/zc3x6JvD3lmgm+oUU2NqGkN2viBpLZusP77j7DsYkqP9lFqSyJ48dh+3bo6QEhGPiTP2b7sUm0v39IyTu0fbTjngqFAt57Zj66bxIZQNP1FHIX3ZcwKqv15UxMXb9qxtLLycmhlAwXUxze0cP23gxDxfSqPKKrKRfQjTVPytT43kOjydjn6g4tzyeXMpRTRsQ/682aVySyGoaSD3zlHOWmkkYxI4ukWEJFOQ0od49ukZP1COFBKDsShOWerLFERKXlU2kqj9rl3aabQXO2iuS+FbHRfQ/CyLt2jRJKt92r3T5fl9P5uenfeM1rXpP8/2233cb58+d59NFH2blzJwMDKzVE/rPF1UiIDG39rkTxJGDyt3PaVot2GYjqst1AjNbEPoCyLbHZqBtzHX3ZTUUsNSBQUhYtT3UfGrrGbM2hmDKoSKXsHJ+z/Xura1qyUMe3Q0o1Pk1TaukxKf5pu/t4+MIiZ+ebqmQUxcWFJo9O1njzyw4midh1QwV+5eNHsb2APYO5pKuo0nRVh2VUcTK0pfMtD8mS9IQZJUuS2FLIxzI0DB3i/ob4XpqaIG3pVFs+tufTcAJMQ1vqVGwoa6c4MSI6j+OHzNcdZWeE6hItN10evlimkDa4bqjAXbeO8amjk5yerXGpYhOGSkS3GRl0111Fum84qgycNjR0XcONlMyHS6lVVaeXv+y63Xm3fy4MJb/8kYdZjJwEmm7A/CrieBrKj1NH4vgh5ZbLtkIaU1dcm/vOzNPyAt7YTZLzz/8Mr3413HEHfPrTYJrJvTN1pZZfczqx7/h5jdHKmqOkS5a4iSrJcbwwkfPwA4W27OhLXRXF9nbuUdbSWWg6TFcdHrpYBqYppg129ef4wuOzqy7KVwspWROBpZOf9sKDQ4z1ZviLL59V3qEoR4xYtiQufV9JeencfIMzs3UMTcPQlhPalXhp0/WptLyukJNuGg7aE4TlnqyWrin+q+fTcHyyKYPeqFuxkDYQ0DUnrltyejexFc0lG933aktxW2u2z1Dx8rtXu32+Lqfz84oEO6SUZDIZbr311is5zFMqrgYipQmxYiccR8pQvKVgq7KRy4zNoFewOjrTrm26GX5X/Bq70rnXheJ2NRyVmPRmTVKmTjVSVM9ZBuVVXkASpZAe67XHpU1TEwQS8iklR+CHEtd3efD8AqdmGhi66FBzb7o+j07V+JMvnuE9r74FTRNcWGwyW3PYv63QscNaWJYUxHY5q0X7z32p7Iz2b8tzcaHFfN3BdsNk7jRUWTXmPPlByHTVVs0EUbdj0w0ops1k1x5IScOJBDURPDZVTfSeYl/KP/3SWRxfWR85viLk6gLm6krm4dBYie29Gb56ZoGJcitJTkOpzM+VS0OApSvrosem6mRNg778kkL3VrX8n5tvcHquEfF0NDImmCIq/8ulZzNubVjSulPNDEJoFNKmIs1XWhsnOX/0R/DGNyoY2Peh1UqSsPjIlqGhuUGUTC89Z2EExapkLIy4iao7U6B2+iFLDRmhXHqPbLViezv3qD9nceRiOepgDRPEWHX2NnD84KqgcGtFt/w0TRPcOFbiNXfs4vGZOkNFZc0Uy5bEsVF5ab0Eomb7BJEkzXLNLFA82Xqw1AyzXnRDCL/3zAL7BnMcn6gmCUIieTNbZ6pqk7EMGhG1wfUVd/LcfFP5nqJ4sBtx4jZLTl8vtgpN2+i+9+dTSXfkRs/FlZznSjo/N23gDfBXf/VX3HTTTWQyGTKZDIcOHeKDH/zg5Rzq24FahNbKRxxfrun3+M0MDejNGuhrPHPrjdgQSqyx28d1tDfNQN66vIe1LWLidcsPlAp8ELJvIM9N23voy1k0I6gobWgdoqYaJKKg7d2eMRes7vgsNF3KLY+0qXFhoYkmoJg2FVoU8TSKaWWi/bXzC5yZqwNtXANriWswX3c4OVNbUSJba07jccWLsuOrTkFQQpe6JpaaCIj0lySYhlK4jtEnQ9PY2ZcjZehUbS/iuOlKosMLqUdIjKlrqr3dVWK2MzUXIZSExGS5xYX5JhcXm7hBmEhMnJtvstjycCM5jLjcu/wZKKQMtvdkaHkB951dYGKxucKk+krb3Gu2r7ofdbVIKi6Lero0TW2KllR3l6yxgCR5NKIu096MmSQ5yyN0PSo/8TPwcz8HYYh83evgX/4FiktcsmuGVPLtBXKp/C2W0O9YoT/2NRRRMwWRkGwQRqXmtoejXR8vY+mrGpVfTiTco2KaR6dqlJteUpo2I228UELN9mg4QWIHFl4JmXMTEZf4b9peotxyOTfXoNxyObS9Z0UyWMqYSjbDNCLT6s7nab3y0vGJCr/z6RP89j9+g7d/+hF++x+/we98+kRiTl2IRGqzpk7T9VeYZntBiBeG7BvMbbiZ6IYQfmq2zh17B+jLWZyaqSfG7lYkFXLTWIkfeuZOerMW2egZKqR1QG1qpiKNO01THekxJ2652fZmyOnrRYymHRuvJMb2V2J4vtF9/75bxrp+LjY6z+uft5+d/VkuLjZ4ZLLKYtPZ9HGWx6aRsHe/+9381m/9Fq9//et59rOfDcCXv/xlfvqnf5q5uTl+4Rd+4bIG8mSPrSxDbhWy80REXAbT28phYVSCc7zwsroVhVBcKl0TyiZmg+jNphjryXBissqlcispjW024lOFvsT1fSq2T7k5w6HtPRyIuoqKaaUUHQQhs3Un8YfUNWVwIgWJjY4m1LxoQvHeALb35Jkot8hZOq4fKN6VUGUtU1edgJWWx+PTdfZvK5BL6YRSMlluUspaeH7A/WcXabj+ptDH9ikJQhmJR0JfzkxMd2N0J5BKKsIMFbITSmU0va2gFNBzKYOzUceYH4YEoUK7Wp7S/LE9peWkC0E+ZaBrMFW1AbCDECGg0lTdUaFUiVzd9Xlsukal5UYyGZ08rBg5XWz5yIUmlq74bMcnKszVVelrq2QY1CJpUrU96o6vkmVD4DlqIHGpecm/cuk+a9HiE6uA59Mm83V3RZJz4rFxjNf8INd8/UsAfPiun+WxV/wMd822uHFsqdlg70Cep+3q44uPz6ILlRTGaFcQwUuKt6YQnG9cqlJt+TSiDov4nsbcQcvQOszXt1KxPd4weNbSd0PlqyJB62Ju6GzdYe/Akh1YLM1ypVywjUpY3fLOLre81E057uBIkQNDBRYaLm4QLhMUDllsuPTlU/zIs3ZvOAfdEsKHS+lVGx9u3tHLKw6P8okjE7h+yK07e9UzZPvYcUeKgIrt0Zez1uXEbQU5fSvRtPbY6L5vBR/x+ESFTxyZYLbqEEbuAEOFNK88PHpF76RNfzP/8A//kPe+97388A//cPKzl7/85dxwww38j//xP/7TJmFbmTDFO97L1dB6IiOMdtleQGRJItAjpKDlhl0nCu1RTBtUnaBro3lLF/TmLJ69r59Hp2qcmKziXIG0v6WrXXvLV3Y9Xz+3wLXDBQQi2SkCFNImliFYaHgq8ZMhpqEh2xIIEclcGBoYuupWsyPOWRjJHQgBhqbQo3SyQEqOT1T46AMXuVRRgqOWLmh5AV6wZPPRHt1sBBRqp64rnzIIQlXKXH6fJEQIq/qblhew2HB48MIiewcL3LqzNzEnXmi6pE2NkWKGuuNjR9d2YaGJFV3PQkN5dDp+0IGyaShkTg8l83WZ3DfB0vPfXroOJYkafRAq3kzWMshY+hoF+83H7v4c+4fyzNVtmg7MNxxSkV1UEIJEYmgkti1qvALL0KPSkiot9+dSGJHOUnuSc3yiQvjqH+Dgw1/GtdJ8+Ofeztdu/W4mJ6pMlDu77jRN8JPfuZeZms3j0zVqLU8Zvkf3Pk50rxku8Jpn7ubdn30sSm5XljEkkDY1rIgQv9WK7TE5ea7uKJV5TfGpOnRuheK4eUGI7SvU8+GLZT547/mrrlYex3q8sziJq7Q89vTn+MZEheMTFXb358imjHXLS10nEHcWeeXhMR6fqtFylZWa7fn4gfLA7Mun+KUXXcNNXTggtBPCcyl9hSBue5K9lrF7O4KVTxvcOFbisakqVdtOrkETgr0bcOIul5zenjiXmy4np2sJmial7Lim4WL6ssrn3fDLroSPuDz5jqU9zi80+cPPn3pikbDJyUme9axnrfj5s571rKRr8tuxfgRSlQxylp74ED5Zoz1JtDRBytDVoioEurg8VXxfxhpd3f3ytoLiBUkpKUcJQRiGeGH3UiHx5xTZXXY0BLiB5LGpGoW0qfSvNGi6PgN5i8M7epio2Epbp+UpEcRYlDLKsAxNcTDylsHpSIg0iBZJESGIfhjSciVNJ6AnayIQyZd6/2CBkzNVFhpu4kkoo5QjKTPK1ROwpGwV/VkmnKKozOiLruZISuUveXGxRbnpc+uuXnqzJlOVFtsKac7PN5itOVE3nEIDm65PX049E7ExNqhnOwhVB6Shi6RsFoTK+1GIzoRy+djcQOJGNkVCKD/CkWKa4xNVLi1LYjZD7m1fgNOGxkLDo+b4SjsucjuIm0ZShp7YW8mojJ01tYTblzZ0dvdnmazaHUlOvFBX7/wJfm3mAn//87/L+P4bycOaO/0bx0q8+c6DfOyBce47u8BUxcb1A0xTY6SY5pl7+rnrtu0EYchszelIXIUgoQQEUfkyY+jUbf+KuSrLI0aPvvj4rJovVN1UfY1lYroen8n1ldXYZu1zVoutIITHSdxDF8pcqiibJA015oWmS2/Goi9vrZDNiKPbctxnT0xz79l5mm5A0wtwIsSpmDa4bqSH//7d+7l5R++m5vy+M/P4gaRqL7lDFNMGhi64fe/AusbuyxGs3pzFgaEClZZPxtLQhMD2ArIRJUJKiR+GzNddHp2qJd+py0EPlyfObhAyWW5xaIeB2wgTxD2+pkLawNK1TZXPr3a35tVC7+LYdBK2f/9+/v7v/57f+I3f6Pj53/3d33HgwIFND+BbNUxdRArrT53wQ4kpVSu85ynD3supR9qR0Xa3WFbTVQvl8UsVpqt2RwLV7dklJBZEMcldR5GxBWrhr9uKs5QyNFKmzu6BPELTGOvJ0HR8rh0uMl212dWfpZQ2qLsBnq/Qsbylc8+ZeRrRok50fSJUZS0pSdqkTV3jX78xyXzd4cBQIfGErLQWkTLEDaQi9moCy4g1f5TIqtoNe8k1CAlCE2isFJUNQmWYqzlCeT9uMF9BqLz7Ki2XYxNlSmlF5l1oulxcaAHKwqiUMQiloGpLFhoupYwV8dFkRPJdOk8QSkS0MMdyCnEJba2xOJ5avC1DwwtUcieB/ds6X3jtZsobvXzbF+Dz842kg1eVlAW6piGBHktnT3+Wiu0zX3cxdRCE+KEqwWUsg56MyVAxzVzd6RDhZWKCc1aJUzN1em64if/z+58k1LuTAdhI6PLEZJX/9a+PYfshlq4lCVgQKC6PqeuEET/ssekapay5ZjJxuRGTkx+fqnFhoYkfSgSSMKqFakJZYvnRJrPcdAilwAsMbhwtIqL6bj6lM1RMcWa2wV/cc5Z3vurQurY4W7EIxknc+GKThbqLH4ZkTT0xHs+YOvm0wWueuTNxQVge3ZTjzsy5/Pk9ZwlCyfbeLAN5ixNTVcoNj8WWx0zN4ZMPXULXuhOD1TTBLTt6+NTDl2i5AcWMSSalNsKXyi0yls7NO0rrLv6rIViWoUXvFvVSlEDT8Wl5AdMVm4Wmi+uH/PmXz/K1cwvJd2oz5PTVEufZms3p2ToPnl+MxKJlR/PSfN1BCMFUpbXCZHy9+7oV3ZprxdUUaoXLSMLe+ta38upXv5ovfvGLCSfsnnvu4XOf+xx///d/v+kBfKuG64XJDumpEqFU3Ke4jBReRgIG4Pqqmyvo4vIFcGKyRsNRHIbLmTFdRHwwucQLkyjUSMglqQyJMqTOGBr7BvKUIrX7uMvmrlu389f3ncfQNISmUUgvLRwX5htMle2IL7ekhyZR1xkjF4amFNc//+gs/TmLxYaLEZVv0oZGNqs4XE4gkyRdSqm014TqYNKFAE0hD6noRRq/gzWhSoKaynoiKx6FOq5Fv4v5XSqZUyjhbM0hCELyaZOm6yOEjMrSIYtNj96MSdZSorzlpkNP1qIcriwYSpaI7ZoWIWBREqaLTgeD+H4HoWoo8ANJylAJnBeEK9CGeGHe6OXbvgDP1V2aXpA0BeiaiBoNdK7Zlsf2Q0ZKaSxDie0Ol9IM5FJ8Y7LC6dkGLTfAD5Qe12gpw52HRjg4XGDuLb9D7//6/3j4f/0FZcYYKaYJ9ZWJxXq8mbXKJUkSUnfJmjopU6PuqOYSXVPIrqELbtvTy0zN5Yfv2MWtu3qvikr5jWMlfu2l1/GGDx/h4kILSfQlktEmQEb3W4P5hiozZRwfNwjZG1m5tCvUT1Zn+JWPH+VHn71nzcXyShbBMJScmavzvrtPc6ncwvUDfCnpyVqAIB25VCh+ash9Zxd54cHhVcexYTnO8VlsuohonspNj0cmazh+SF/OouUFVFo+Ry+Wu04QwlDy0MUyg4UUXhBSswPqToCuCUZ7Mhi66HCsWA0ZXg3BKqSUlth01Y4QQcHxiQotX3E649LgSDG94jvVjejuWonzcDHNcDHFubkmui4YKaaTphhTj6kbgnvPLKyZDLfPzdVEqOK4mkKtcBlJ2F133cV9993He97zHj75yU8CcP3113P//fdz+PDhyxrEt1oItk4Nv9ty3FZEgm5swQmDLkRbRfRPzVYv8ctJwNq/e8vHHSNWQagSggPbCoRScu1wnouLNsfGy8oHrD/H9948yvOv28a9Z+dXwPELdYeHx8uJv2S4ykBldC2FlIEXKt2tubrLdHUWS9cSsnzLDZIaY2xmHL9AglCihUs8KiAylG7TLYtkJCxDoWJxyUXoGqG/ksOn8gSRcN16simCMGSh7tLyQgKpdIMEGiEhYRgi0ag5PhlTp+kok3JvlWPHEY81Z+qEQLNND2v58ytQiKsUSiA2axlqfFFCE7/w/unoJebrDkOlNI6vOGqFtLECLQP42IPjzNcd/EAJzQogpSuZDtcPI+snyWzd5cBgjq9fWKQvZ3FzZHWy2HCptnzyKR0/UP5/ewdz1Gyfv/rC42R/9qd54Vc/BcDMR/6Bx57735hruNy8vYfenEV7XA5RPk5ChktpFpseuqbRn9PxAhk1OMjIYknQkzW5dVfvlmpxLV/Ybxgt8fv/9TC/9cnjCSKmmlDUOISAXMpkV1+Wi4stMqbOQsOl3FxUx5MK/UibGtWWzyOXqusq1F/uIhijn8fGKzw+XUOPmomUx6V6KpWXokG15TPWk10X0dioHHd2oZF8TqCSTdsPKEXnE0LQcgOGRgrMVJ2uEoT43u8bLJBP6dQixX3T0CikDOpOkIy56QZrIsOrIVj5lMEZJ0BKJUTsxM9TJE44WEiRz5jsTxsd36luSO5rJs5CMFzMcH6+iR9IbD8kYy5J+GRMg72DOU7N1r8pVkKrJbFXU6gVLlMn7LbbbuOv//qvL+uE34oRb4hj5Gf5onO5OY0G6LogCORTotMyDokqx1q6oOGuPvL2edE10OWSL+JmY6PmBxl9Jp/SqUdJRcv1ma46+GHIXM1hotzi3rPz3LKjp1MN3g84cmGRZkTAXX4N7WVXJXQq8cIlL0cJ2F6olNlDkkROtI3NjyRMNKCYMajZQSSvECYLoCbUS940NFIodKQ3a5FPGYyXFf9F0NnlKgAZgqErRMjzJbqAlh/iR6hX1tSTUqfrR3MZhjRd5RQwXEpTtZe69VabW6Kxm4aOJmTCB4yTiNihgHiuJMhA7c4bbsBI5IUI6oUXSsnp2Tq2GzBRtpc4MhmDPQP5Fa3yp2bqFDMWE2UbKyLgx2RyQ9dwA0kupakyoONTt332DeQS78x4Me3JWpG3aKiekek53vyXb+FZ548SCI13vugn+YfnvArR8pmp2jxwfoHbdvUlidjlEuXjJGSkP8tEphWVgM2EgB9KVUqfqrS4Y9/AlpDw41iPb/P2V97ERx+4yLGJKk3bww0lTcfHNDTu2NNP3Q2YrKjyUiltMlFRJe3RaNH0ghDL0NgzmFs3KbmcRbC9TJUxNSxdQ9egZqtuRUNTWmtA1LWoNjMNZ21EYyOtqJxlIEPIttl9xZuI9vP4gew6QehIQIVQ5txtESegD18s85njU+siw8sRrKmqTTFjkLeUY4DtKSHlbFo1J83XXXb1ZVdNaDYiucfj9lMhC3UnSRoRqvkpa+nYfqi+SxHq359LsWcgRzFjcm6u8YRbCa31rL/q8NhVE2qFLRBr/Y//+A9arRbPetaz6O3tjmz4rRTtbe1CY4W8wuUmYPHiHj4JNcTWCyEgZ+ncvL2Hpuvz0MXKiqQUOufFDyXBZSRgCuHo7rMSeGi8HDUeBNRtVYLLpwzcIORSxcY5M8/EYos7D43w0MUyJ6drnJyu03IDJQQrO5Ph5bynQILjB4kgavx3Icu0oSDyBlScqFjGI20qzTHLUHIXvSmLmZpa5HoyRuIBGSvh51MGh8ZKDBXTfGOySqXlJkbftI0tNjKXwGLTTRLjIJTUo7bY5Hei/woBlqmzuz9HteVyeq6B5i8ddzkCqa5JqFKukBFypRT3G25ApeUliSZRmdL2JW6gOjQXmx69WTNa7HROzdRXiOEuNFwaToWDo8UObSzHC0lltIQjF3e0xnMek/KDQKrmCyAfLXbLF1MlUBtQ+8aj/NEH38ze+XHqVoY3vepX+cK+Z6A5AcW0kiEpN10enazyjD19tLzwsojyYaiaUdxIMmXPQI6mEyRdo4YmcLwAxw/JmDo3jhUTSYgrLUXGicx83aGYsaI5pKOc9paX3cBnT0zxqaOTnJ1TzRtWKDkyXmZPfy6xz4n15oCO5pf+nEUxba7wIG2PzRLCl5ep6o6PHpXkNaE2F1XbY8DQoi7cqBs5ZENEY71y3DP39PLX912gFXFFY7uvOOLzmLrWdYLQTQJqGYIvn5zbsCz35juv5+CdBzk33+DRqSp/9uVzjBTT5NMGFxeafGOySiFlJFzMSks1rhTS5qYTmqmKzXi5yZm5OgKRbJL2DuQxDQ1D18hHgrApXetI0uq2v2kroY06RzeKjbhldx4auSpCrbCJJKxcLvPGN76RBx98kNtvv513vetdfM/3fA9f+cpXANi2bRv/9m//xqFDhy5rIP9ZYzltKtbRictTl5tCrfZ7V1qaFCzJBlyt1C5n6jxrXz9CaJyeqa/KIYJOLbWgTcz2apRf46+O40uQ6gXa8oNEbDVtKvHSmDj68MUKv/nS67nn9Bzv+feTBEHIY9O1rsaltMLMyNNxKWJOWnx9SvZCI4xU0vWIbF9Mm1wzlOHCQhPHD+jJmNQdHyeQ1F0lc3HT9h5u3lHivrMLnJptMFLKqDLbeTdBwNrn0QvCaHMg8fylOTE0ge+H+FEpWLCkJq9pqqPq6ESZ3f1ZpZuji4TnFUQoX4y+BSHUHQ+BiGQeBFKqcqsbhJiRbIgTeYVq0QA1AeWWx5ELiwzkLcZ6MoShJJCSgmlg6kIhaqHSI2t5Aadm6oz1LKFnKVOLFP5FoqXleAGmUNpvcVKmCWi4Pvm0kRj+Ll9MgzBkcHaCD/zZz9PbqnKpMMCPf/9bOL/9AKYm8CIR4L6sRdn2mG+qDrPLIcrHO/OT0zUmyy1Oz9YZLqbY2Z9lru5Qbfk0g5CWpxabUEo+fP9FPnFk4oq7w+JEZnxRlY06EMe0QcsLlBDrYcnHHpxgoeHSm7WUOntUfmw6ATv7sjQcJeobWy65XkBTyqXmFyGSRb7S8jgzW19R5toMIXx5mcrzQxw/pOH6UdkWGqEqfeVSetTla1Ftudy8o3dDRGOtchzAvWcXODZeYaiYajPRVglgnHQW0gYNZ/0Eob2Td7CQ4vxcI2niiSNOQHf155ip2ivLclIJSWdMjaPjZc7MKW3CvYN5araPLgTZlHIK6MlapI1YnkeJO7dCGZmNb67kFkvv+NH3spQxCCTRM1Hh4GghASaGCqmEE9Z+TYe297CzN7vqsxDHZjtH1+qk7oZb9vDFCq9/3n4+cWRiXS7c5UTXSdib3vQmvvrVr/La176Wf/qnf+IlL3kJUkq++tWvomkav/Irv8Jv/uZv8k//9E+XPZj/jBETk6GTkBwvtFt9rssNQywtsFcTW2u4AQ+cX0TXNBqOQh1W4wVp0RwJuYQQbTYBa0/clDTF6p9rLxkGUnKpaqMJgeu7WNEOLWPqLNRdCimTh8fLnFto0JO1sHSNBcdLBrmR9lvGMpKx6ZoqB4YslQcNTSQv7z0DOfJpgxOXqmRMDduT7N+WZ6CQppgxOTtXp9Ly0IRgqJhmMK/Iu/N1h38/MaM4MH7AxcUmk5UWaVMJw+qRZlnd9nH8MGpakEnZURH+RWJ+6wZL0g0isscxdCUT0vJDzi8ownNyHaJNMqMNeStFZP6FhhchZapk6geS3ozBXMPFNAQDOYtAqpKw40uCyGNyMJ/iVbdu50P3XaA/Z1FueciWcpRQaJbAEGrBuHXn0mK6f1ueoxfLFNMGC02XfEpXquWBJJSqIaLlBVi6xu7+HBnL4FK5xf60gZl0pyr0pmb7zJeGeGDfLQzNXeLH7noLc4U+0tFzZOgari8ppjXyKSUKezlE+eU780M7DI6OV5gs29RaPjduLxGEknPzTUIkw8U0O/pySXJypd1h5+YbPHShzHzDIwjDTsSx6aJrGkcuLFJuucniVbP9COlcMqqeb7jcOFrk8emaSoKk6hJe7tXYcgO8IOSvv3qembqzardrt4TwR6eqzDdc8imDhbrD8UtViL5bPiAjf9jFpoPj66RNdW0dna4bxFrluDhZnK46pE2Nmu11GITvjpoT1ithLS+LeUHIfMOh5QXsGyysSECfvb+fD99/ET9cKv15QcjZuYYSXA7UxuD//PtJfvq5+7hxrLQCYVtu+h2LEcdc0W5LbnFCs9j0OLyjh+OXqtQchSQX0gblpsfDFyvsHcyBhNPRJnH5Nd28o8TbP/PIup3Pm+kcXa+sno2Q9Y24ZfmUwW9FSOJWGtB3nYR95jOf4UMf+hDPfe5z+ZEf+RF27NjB5z//eZ75zGcC8M53vpOXv/zlVzSY/wxhGQLf7yxLxcmXQCFBcbda0wu2PBGDyxOB9aXyz7sc3a/VQkctxu3Hi7Wh5hteYtq8lgBpu3G1pmloMtx0Q4AmEikvNE2s6b+5/F7pQiFWSCWX4HiqG8kNQk7P1gml5Pf//SQvOzRKIJWeTtbUqfrhhvPecgOsSNhJRP/So7EKIRL5gSAimvdkrUQB3TJEIo7al7PozfYyXXVYbDrcsbePTx+bYrHpYUYlv5ShkzGVgnopbXJwpISpw8npOlXbTzwk/QgJy6dM+nImNdvH1AVV228TK43mMLpAVX5VeloCooXGx4tg3tisPcb7BDBczDBUTPPghUUqLZcgjH32JA1PoVH9uVSSqOZTBq4fUnd89g7kyFoGMmpYGC6lmarY+KFUBuWaRhB9p4RQO+FjExUKaYNXHh5jYrFFywvQNQ3HD8lZSuoDVFJgCsHte/v5ie/cC8AffO5kYtGTT+vM1xxSMsAwTKRp8Na7fpnFmkPdTINUTRVaVCqWcglB6MlamybKr7Yzz2Nwy46exAvw2ESVA9vyZEyNjJnm0PYe1cQSEbeHiimmuyB/r4UOVFoel8otAikTU3lQ34tiWrkNXFxoEsqQnX1Rx92yhTxrqbKsaWg8Y3cvlUc9pIRn7O6lmLGSY0opOT1bS7r+1ut2XY8QHi+0R8crjC80ma60Eh5uX87CDUJqtkfLDRP01/VDdvenuHVX35bIebQniw9dKFNueZSbHv35FPu35bF0bV37rbXKYo4fUHd8xhebmLrWkYBOLLY6Sn+hVB3SRmSVZuoCPDgX2RHFqv7LS7ztpt9BKBnIpxCSTdmFrSYMu1wLTNcFr3vWbsZ6s6sm1TfvKPHpo5Mbdj532zm6ZyDHH33+1JrHe8mNw11zy66GAX3XSdj09DTXXHMNAGNjY6TTaXbs2JH8/c6dO5mdnd3SwT3VIiY6L1+HM6ZOIa2TT5tYGpydb1FIq9LJ1SivbTYBi2MrFDNig2hDF4ladJyAalF2GBLxvKLWem+Zd2b8eUMo5EgT4ArlX7iZiLsIpaQreyRVOoscARBKUkGqDh4CtZPOmBpeKDk73+DP7znDVMVWC40muoLqbD8kF3WQxSUyVa4gkmVQNkF6lIxJKSmkdSbLNqO9maQcIKPW+qlKi5FSmk8dnWKx4ZJLqVKR64dUWj6agHTdwdR1dvVnOTffVLpbUrWh9+WU+fip2QY3jBbZ2ZfhyMVyVF4yKbc8/Ii/pkcoXW/WUkiaoxbCuu2TSRuqvT1UXZIdZu2oBFJZMakfCiHQxJKHpJQk9ljtd0QIJQa7rZhmvu4CgpShcXGxSdpS2lheoJod1GcV0f7Txy5xfKJC2tLZvy2f8PgeulDmUrmFE4QUMxb9OYv92wq87NAILzw4lCwy7ahLXvq86WPvREPyJz/1O5xeaDFta7hmuuNZC6UkcAPF04q4KYfGSpsm7K7V9dWeeC80HG7f08dnH5mmL2ex2HQT5CNe7NKmQqvWIn+vhw5UW8rUPmvqq6IDlq5RtX1a7pLv6fKFPGPq+EFIpeky5YVcM1QACTM1F13TE/TjUrlJ3fHJR8bzG0kNrHUtSfJSTFNtecxUbZpuEKG5ISlDJ5XTWBAuhbSSSnD9kF944TU858Dglsl5tCeLD10s8+VTc8xUbSpND9sM1ixhrVcWO7S9h1MzdXb1Z3nN7bs69OOWl/5m6y62F2JJVT53/JD+nMUNo0VOzzYSVf/lJd5SxmTfYJ5Hp6pIod7jZdvbVMltOVk+fmZjvpauCeZqDsOlzKpJ9c7eLG//zCNdyU501Tk6XeMDXzm37vHuOTWfOGZcje7HjaLro4ZhiK4vZYq63vnlXP5F/VYMCYkhsC5IzIuByOTZS35m15/c/YwaStdps+5AukBxiOQS+VnlJ6KDqB6XbiQhBiRWQDEymDKUgGbaUOTNhy6W8YKw4zMaq0t9rKfGvl4Ymko0LF3Z1ZiGprha0UEsQyVg/bkUo6U0959dJAzDRIW/W3/Rqu1jahquDBFIAqlQwYypM98Iot17yImJKrHwg6ErZf6GE2D7Aaema8w3XDQhmKraNCICbd3xE50tU1d8q5YX0HAD7j+3iBmR2bOWKi3VHZ+ao/ghaVNH07RkIXV8RTL3fOURmjLUznrPQI6TM3WylhElkhqD+TTTVUf5QrbxweL5SBuKJ+T6IaGUjJbSNF01rrSpKZ6QqxLHVMRNaefR6ELZA10zlGdbIcVD42V6og7BmBOmNMzciIMmGSikMDQtkSh41eExvuuaQfJR4tguhrp8AY4XiAuPnWPwv72B3LH7CXSDL156nOPaiPqes7L5QqI6XB0v4JqhPHfdtn3Ti3ul5VFpeqR1DYlMCMug3rOGLpiq2Pzjw5e4VLG5uNBMTNiLaTMpG9Zsj3LL46GL5RWJy0ZE5BffMETK0HD8IEqy2q9BIS1pU0sSqZgYLaUqo89UI8HPIKTlhclCDqxAP3YP5AklbO/NXpbUwGrJy97BPOWmR8MN8EPVcNGTFTRdn5xlcHCkmHTh9WStLddTi5PFvYN5XnHLWFclrG4kF2ZqTiSRkl+19FdpKVN1S1cI93zDTUq/mqZ1zOVaJd47bxrh9r39DEddyZspua3WSCCEiGRBoG77pC09SWiWJ9VnZutKjqWYXkG0X/4sdNM5en7eo+Z47OjNrTmn09UWQ4U05xeaV6X7caPYVGr3p3/6p+TzasJ83+cDH/gAAwMDANRqta0f3VMw1CKuSjWmrhKQZmzn0h1Y8k2PZHHZ5EAFoOsabhAmpT8jSmqUaTN4QYDrKwQMwNQ0hYhEyWtcGvMDSRAqUnSt5TGQt6jZXiKyqUjiIuHbwdK8bja9TekCL5TkUgaWoVS0hVClyLibNf5epg2d3QNZzs41CGRktqwpDsZaN1YTkZ+erwjulia4dqTA+fkm1Zaf8LEcP1DlSQFCE9RdPyGMF9IGg/kU44vN5NwDuRSjPWmOX6oQSig33QgBWdosxef1Q2g4Pjt7M4lyuSotGcxUHSxTo9J0GCqm6MtZSRmh0lQdlQgYKqbYN1hQwq9Rs0DNUUlSf85M5B+SRFskOp7UHB/hqs6nnKUzU3Nw/FB1rGGoZFdIbC/ADQI0odF0fcWj6c8xFdkD7R3I86z9/Xz2kWlqtk/WUuKlAJWGKi/251N4vowsh0IqLZepaYdT03UODOU5MFTYkLQehpKJrz7AyA98P6mL55E9PYiPfJQX7riJ+z/9CBciwroulNvC8lvvhSHbCulVj7vegnx8osIH7z3PhcUm44stLENLusp6cxYLDZej4xWaXsDugSwV20u4fVaExgmxZBZfbnrcc2qeV9yyVErqhoj8ldPzjBTTCdLbzglrumoTMdyTYe9gjkcnqyuI0YWUTimjSuBvfMF+9g7kk/MvRz8qLY93/POjCaLWHmtZ6LTHmbk6R8crZE09OWZfzuLa4QIPXljEjzYiVuT3uWcgR2/O6roL70qj2xLWZiUXzs03ODVdT8a/dzDH+fmG+q6hTN81FDoZc++WH2MrjK3b43KN0dvnYKHuMlWxE6pCu/xMKWMm4++mczSmUKz2bC3Nh+Q7DgxQOz51VbofN4qun76dO3fyJ3/yJ8mfh4eH+eAHP7jiM98OmXgaZi29Qz9pq/hWVzvijpHNljUlRK3yGi0vRBeKMxQ/uzHB3oi0qnQBRsTnabk+zWjXKom644RSbz8+WY3KdJ1IWuw92Y5AtXdV0vbZeHyrhWVoyECyf1uBgXyKM3N15usudcdfOoeAnqzJDaNFTF1jvu4qXkkk3tl0FRTefo8FMRKoNJHiMTl+SLnps7MvpxKvaGzzdZeCEMliF7duAyw2XM7MNTiwLY9dSrN3MEcxbbIQoWG6Fpkpt/EP4zmXqNKfQHUa5tNmolnUjLoBM5aOF0oeOL/AcCFNPmNyYDDP+YUmg4V00lpv6hp+GCJRLewZS5UKG57qKhWo5C4xL4/HINVVur4q78bj0yLFdyGEQgf9kPm6Ry6l05u1GCllmG+4yYvwxGSVe07PE6KS5KYbRHIeOhqCnpylukq1kJYbcGa2TtMLSEXjjpGx9UjrxycqPPjnH+Gud/wCqVad6cExPvLW9/Lc626jsdgkRIm9iggRWu25klJwYrJThHQjj7t2SYjejEnNUdy8uKvshtEiZ+caNGyP0Z4Me/pzqjRZd6NGCmWGnMprSAlNN6A/n2K62kpkK87NNzgxWeVrZxfUOaLFTLQhbSOlDDNVh73b8rhBmPBtWtGC2Je1MHTBrTt7uWl7kS89PruCGD1ZsclYOi84uI392wodc7Ma+rHaYrrQcDk7V08Q1OUWOvG9ev/dpzk5XUu4gfGCvb03w0zVZqbuIKXkuuEiO3ozEKGsVxvh2GxsVg/toYtlHp+pQdT8omuCtCHIWeo4pq5hu0uekKsdA67M2Hp5bLaTdXlMVVpMVW2klOTbUN1YfmbfYD4ZfzcJ377BHNNVe8M5vXlHDweGChs2flyN6DoJO3fu3Jaf/L3vfS/vfe97k2PfcMMNvOUtb+GlL30pALZt80u/9Et8+MMfxnEcXvziF/PHf/zHDA0NbfpcprZ1KvXrhR+RYdIRKuBtlk3+JAgplZ7S8qSiq99FcbcUuRxszydt6gm6pQlImTpuoAjVWctgsekmRNn4dIEEQyphP9cPkrJo8jVrgxQ7Eq7oA5pkhWbXWpHSNXb0KdSiJ2ty285eao7P+EKTE5PVaDem5uPsXIPerEq6wki6IJdSSUy15amSzLLjhxE5TRNg6Ypzlk8Z/PRz9/H867ZxYbHJo1M1/uxLZ1houNQcn96s1fFSiVGQ45eqPGN3X2IibhpKiNIR6ulW6ulL3Ko4mTZ0QdpQ/nhuJLuga+qFHcqQmarDvHCwA8m5uQa6rpEyNA6OFPi1l16PrmnqBTVdp9xyo3uk7ufJ6TpN11fcuVVCRBPS3nkrUQmzoSnVek1TvoOZrMlNYyXqTkDsatdeyoqTlMGcRdX2MHXV2ahpineWMbUEnTs3X2c+spFRArVKePX64SLzDXdV0vrxiQr3v/X/8No/+x30MODstbfw/l94F0dtg7//0IPkLIPJcisi4kd2TxHTTRciEv5Vf/Z81an68QcnkFLyh+uQg3/uefv5+BEl9XBgqMBi01M2Mp4S5q3ZHg+Nl9VikjLYO6h8TYeLaS6VlZ+qUoRXrgtuEJIyFR+u0vR4+GKZD957PvHOrERzl7MM+vOWQkuyKvGzI922VxwepW77LDRcxnpUcuVGcg8jpTSvPDzKx49MdG2ps1astpguNFyOT6iSeBBKhlax0Imfh0sVhRhmIv5avGDfOFZiz2Ceiu0r9C6qULScrTc334rYDIp0fKLCxx4YT56HXPSOrbs+fhiCr+gDRrRxWu0YVyu67WRdHmEouffMQrJBjKVs2ptBHp2qcudNI11Ll/zIs3bz8SMTXc2ppoktRQW7jauLw24Q27dv53d/93c5cOAAUkr+8i//ku/7vu/jyJEj3HDDDfzCL/wCn/70p/nIRz5CqVTi9a9/Pa961au45557Nn0u09CekCQsjrUWpKsR3XKRug0p1ReiP28x33TxNzlxMZIlUElp3VmuiRUwVkpzeFcfD4+XqbZWJi6gFk1diBWJ7Hq+k6vlvBvlkRXH57U3DnHvmUUevlhmuJRBF6qNXJUDBf05C0PXWGi4zNcdvCSh1KKXhcZgQSNr6UxXnQ6Jhvg7rDTHNLYV05i64L6zC7zw4FCi2+MGqrsvaxkr+AtmZLPTcHyCtjpxIWVQypqqKzDibgUyRISROKwXKj6ZEAgBu/uzydwJUGRux8cLJKalkRKCuh3ihcrb9Gvnyvz83z3Ez7/gGl55eIwPfOUcNccjbeqUm0oLKm3p2O7aIo7rzb8fKsSMQOIK6DM13vw9B9F1sUKD6Xc+fWJFkuJEtjDVloftK52pTMogaxmcm28iUeVfKVTTTM32OX6pyr7B/AqeUVym8wuDSE3jyHe8hI/97Fspu1BZKCs5kIJgIG8xvthSJuoiRkqXOv0UMqloCMWMxePTVT5wj7tu+e8DXznHdJvWU1/OYmdflkcmq1RbSmOr7viYusbB0WKiwt+fT1FIG0pqJHJQcPyQgbziAVm6xlzg8NEHx1lsuMw3PEKi7tYICQ2qknLTU9w8X3UMhkjuOT3PnYdG+Nwj03z9/CL1qISVT6sk8FK51bWlzlpcrnjBu31PP+MLzYQPdGa2Tsv1I3Fng32D+Q4LnY89MA4otOzGkSKuHyZOAvGCfW6uzi07eujPmfTnlBTKubnGE4ZwbDa6RZFA8epsL2C4mGah6ZI2dUxdo5RR8hJqA+CyrZgma+mJB277MdbS4NqoZN5NXE6Z89x8g1Ozda4bLnBmtrGiDB6EEing9r39yXG6SfiEEF0jc1ej+3Gj+KYmYd/7vd/b8ee3v/3tvPe97+Xee+9l+/bt/Nmf/Rkf+tCHeN7zngfAX/zFX3D99ddz7733cvvtt2/qXDlTJ2MYLNr+hrpRT6XQI0RoK7lmQoATSGZr7hUld/mUQWWZwrIW/VN3Awppjdmqrc7JSoKzLpR4Zvt9Us0PVzCoVUIA//DQJPm0yULTZbJiY3s+Qgj68xaOHyYt34W0wWzVTl4IaUNPGhBAoWK5lCqtxt1+CuWJeDppkz3R4nhypsaZuTqaEEyUm4ov54XkrJVfSz+UWLrAkYrcqgyIASHYO5Cn4QS0PJ8gUKR0t62cHEpJ05PghXz93CKWoZM2NWwvjOyDQkDxsewV0KdkfKHF//jHb7C9N0PK0OnJmMzXXcxI7uFyjWtDlB1VQuCXyiD+84/NcPve/o4Xd0zYbU9S2tvfNaGEbYWAG4YLPDpdIwhl4jLg+Yrgm0+pruTJSoueqBwXR0yM7rntDv7vOz/E1C7VDX7m0iJOENKXt7C9MCpxOGqjJZc2HWFUVtWEQiEE6v7P1X3qToMd6xDPT882CELJaE8WUMnFhYUmugb9eQuBpNoKCJGcm23Qk7HojYQ/+/MW83UHUzfxAslN20sMFxWye3K6lniQxjzLvqyJlBLHCyOeZkjTVe33AzkLX4NS2uL8XIO/XWwhUV1u+wZyqkQkBJfKLf78nnPUbZ+RUmZdS53Vno/VSrO9WYuMpTNRtpmuKoupdg5X+3wdnaggQD0PmsbegTxNp5Is3KrJxeUbl6ps783y+uftJ58ynlCE43Kim6Qi/i6M9mRxg5DGhOpGzVoGuibImjoVX3lk9mRMzs83O44BakOzWlkcWLdkvpnYbEITc+J2R3I0sdF7XAYfyKewDI3hUifXcqOE73KRuScqvqlJWHsEQcBHPvIRGo0Gd9xxBw888ACe5/GCF7wg+cx1113Hzp07+epXv7pmEuY4Do7jJH+uVpVQn4jaxmFlR9NTOeIERWxhFhYf80oOF0qSBCxOeg1decjlUgZTFZu/+9oEoZRkLOVAHZcx45AhuFf5TolorJMVm2f0ZblmW54Tl6o8Ol1VyagfokWoQSPqPPTCpUmfbzhUWi4ZyyBtqtJp3jLUbrzlqSRMaFiGRk/WTAQqg1ByZtbl9//9JOWWh+OFLDQ86q4iC+dSbQuaVJ1uGVP53y02XcZ60tQjexTT0LhhpEDd9qmHSuMnVptXJbKlMq8dNQcYmurYjU6AJqB9rYwfJ6WOr7hGj0/X2NGb4dycT7nlJZphoBLmbjY1yx/TQC49G3GH4599+Syfe2SmYwEIQrmCtNyXs+jJ9DBVdWi6PtMVh6FSiksRqVfXVOLhhUEigTFX9zA0mK07FDOm4sZMTsJrXoP367+D4wkyJZ2p3dcCULO9xLZIlUl8cimD64aLHJ0odyS6WpSAGbqW2BwFUWk4XI8cbKomBKRktuawrWBxdq4eoXxW4rOYS6nEZq7mcGa2zm3Z3jZZCJ9K02OwkGZbPkXDCdoEekm8MxXKqlFIm3iBSxBKbF+VfpHKqzObMrhmqEBPxuA/HlOyQ0/b1ZNIquRTBvvTeY5fqrDYcmk6flIeb4+1WvvX6sy8VG7Rm7N40cFttLyAXX1ZejLmEscgnq8IyUCQzGlvlJTHC3csULpnIM9PPXfvN32h3Uysp8h/ZrbOg+cXqTS9xHJouRaXpqkN8JtedA2Hd/Z2HCPmKa5WFn9ksgpSbfjW0+e6WtHOievNWdyW7e1AV4WEsu2t2kixUcK31Q0IWxnf9CTs2LFj3HHHHdi2TT6f5xOf+AQHDx7koYcewrIsenp6Oj4/NDTE1NTUmsd7xzvewVvf+tYVP5+ruxgpI1kELldL68kaV0P0dasOGc+35yu1bQkg1JddjxAkP1wJbz0R5eP4Gi1dcasqts9MzUaJaiidnULWoukGhBFckzENpFQvPD96adm+h0AlSp4uSZt6JBKrNOJ29uXY3ptJpBfOzNa5uKikBa4bKpApGaQMwb1nF5ipOfQGSqW86QZJg4DtqQVwtmbzb4+0VAksOr/jK32qeIGSgsizDUI0LKHo+hKlQF+NjqnU4Om42fF7KeZw+aH6TddXGk8ZS08aFmLSfbffp/jzsZhrzKXSiQSDNUXq789bHST6u24dW0Fajonb1ZaflNAOpHKkTZ0LC02kVBIdWtQgYkR6bI4fEHhKsHX3+Cl4+ffC+Dij0/O4P/2HzNZUl2iMoMW2RYmKuK5x3UiBhabDVNXGjdBDU1dirfmUKg/25UyqLZd9gwVm1iAHLzZcHp2qUm6qhH2qqkj5lahzzwskph5LdaTY3Z9VPpRVm6mqzWA+hesrtf9CxqSUNTnXhnzcOFbkw/dfTGQ7YvullKHTl7MoNz1cP0RoSwLB14+UIhsfDzcIsT0lb7LcA3BPX46FhpvIHXTTCddNZ+bj03X6siaGpq1IwEAldxlLiQS3z2m8cCv9PKURdtdtoxwcKXb3cD6JYnlS0Y4clpseFxebVG2P64aLK7S4vEDiBQGHd3aKBK8791aOz0cJ93dfO5hYCa2l1XYlsVa5czVOXIyuSik5NVO/Ij7bN6PU2E1805Owa6+9loceeohKpcJHP/pRXvva13L33Xdf9vF+/dd/nV/8xV9M/lytVtmxY0dS8hCAoYP3RBLEvoVirU7EuEsuCGEhIkuDKi84fqCQm3W4XlczDF01Cxi64ORMPbKoEWiaiJ4TJeVwqaJKp8WUQV0uicEmqBHQ9EL0QLJ/ME/V8ZivuzTdgLNzDXIp9XU7M1Pj3EITJFRbHo/N1BjIp5irO4pYbgfMNzzmG0u2TqauErAdvVken6nj+gqxQCoj5FBKDE1HE4JS1lQlOk0ZUTecAD0i5wZhSD5t4PkSYaljLzY9ZKRLktw/uXTPwnDp+tKGpgy/WVL5j4no3UTyueh3lU6a6ijWBAzkLbxAvajz2aUF4N4zC+wbzHF8osr+VL6DE5a1dLxA0pu2qNjKP3OsJ8Ns3aHS9NA0ET17S6MUwG3Hv4L4+bdAvc7s9j387g/+FpNVhzNzTYaLafYM5hPbIi+SOYi9/4QQXD9SwvGUGbRl6AgkWUslYIamJVY4r33WLj6xCjl4seFybFxxzQaLafYP5HjwwiLj5RahBNNVMgMIKKbMpCx3aHtJmWiXW5yYrOL4ISldYyTqmv2O/QPcsqMn6Yb8xJGJBMWKvQxBJWL5lEqyShkTIRRiUMqo0t98Q6FcQSgxMkpfLu5UazoVrh8p0pu1yKWMrjvhutLCqjpsK6a5ML+OblOEyByb6JzThaaXuApkLIM/+9I57n587op8NL/ZsRw5HC6mqdseszWHY36Zm7b30JuzKGbMdZOV9ea+7gaE0caq7gQUM0uqyd1ota0VyxOuhuPz8ch/cbVy55V0Vj5Vo6skLC7pdRPF4uZ2HZZlsX//fgBuu+02vva1r/H7v//7vPrVr8Z1XcrlcgcaNj09zfDw8JrHS6VSpFKpFT8PpOqYAwi/nYCtG/Ezfjlo4Vpcu5Alzaj2REsSd/OphRIhn3CunuNJhKLiUG0pyYZASmxPSSmEocRHJGhjueUhkZiRmGYYQX3xsGMu276BPLZbpeX5tFyfRyar2F5A3fYQqHKaZSrNrAvzSgE+a5nYXtjhImDqInnxzDWUJ52lQzFjKpV21UmheGgsSYBIKRLeV6yp1t6lmk8bVJpuRylb4WVLIcPOn+u6spqKf0VIuSYf0YiS6vjvBApx9MOQuKcwTvA0FJJh6DqhDBNpDiEEw8U0RycqvOj6IU5O13l8qspi01NCoqZO0w3ImAbXDhfoyZqcnK7hBaqxIG1qNL0A11+6Bk3Azxz9ND/3mfcjZMgjB5/G7/7o71AcGeJmL+DouFLVr9g+h8aKpE2NuZpDKSonxwtYb9akP2/RH3FVJiutRA5jpJTm8M7ehHOiLScHmxqPTilxzVLWVGry0fzqmrLYUigYSSIWz2Pa0BkppVUDgBAMlzIMRHy1C/NN/sWe4pqhQge60O6duWRDpEj8scH0QD5FsQ15mKq0ks5aKxLQNfUlX8hTM3W292Z4ze27uPfs/IZ8m+W+jm1kyiRiHtl37B/gX+y1dZvuuk3xlybKS3Nq+wFHxys0bI98yuDQWImUqT9h5bSrEWuhV9cMF3GDMpWmx2NTNZ6+u1chpOskK+vpkHkRvxFBxBHtjPX4fWvFWh6Y+ZShPDDXKHc+mflbVyO6SsJ6enq6VsQPgivLcMIwxHEcbrvtNkzT5HOf+xx33XUXAI899hgXLlzgjjvuuKJzfDtWj/gOK5Lx5R1jPZPseLGPP6J4KAoBk5Ei6GrctmjjfkXJ2XqUOQnM1x0uLLSiko1OIW3i+g5+KBXSEyqT6EDKqCyjypfxXPlBgOMvoQwzNYd9gzn2DOQ4v9Ck2nKZLDfRNY3erInth2Sj8rjvK/6K8JTbAKjES3G51AI4mDcpt3ylmJ0ysEyDuuPjByqpklJ1ALuqZS8RVFV/VmWbIEoUF5vKQFvXBAjlO9A+7+33Xi6bJ4FE13VlsRTNzVqhCYFmEAm7KiTlhrEi37hUpeH4aGjoETM/bej8/+y9eZxkaVnl/33vFntErlVZmbV39Va9Nw3NJjgsijT6E9BxAVlEGWYcYETcmVEEUcZBQFABEWSZQcUGVEBZmh16o5eq3qq7qrKW3LfI2CPu+v7+eO+9GZEZmRlZndXdYD2fD1qdmRFxt7jvuec5zzmFpEGlpdpuucRKy3F8oaa8fkKAU2l5LNQdLE2161aLt0f70kyVllQbd9U2mdLnf371b/iluz4PwPd+9Kd570t/nQO71D0umzS4dm8/JxeqzFZsjk6W2VVIEkjIJnQsXcMPZAwI2kXf5aZLpel2deJfvbicWVJu9sP5JJfszNGfNrn77DKOpwLFvcBX50EIrNDG4/Rijb5UHzPlJo4fkDJ1rtmzcm/O6lrX1lHELkTZmZWWq2xNPHU8I7Zz32BaTel6fph5qAC6EAJjVZxUytRZqLW4eGeGHfkEL7tReUTWbX9dE9r2XMf5SouBjBWb0EYV6ciu3dPHJT34NkXH9PhcVVmluD6jfSkODq+873a30x7L2ijC6sqxPvVA0lRGtoW0uSFY2ciHzDS0eAGILC3aa6vRPavZu2Re4/unixRrTviAEZDVjK7tzieyfut8VE9H9Otf/3r879OnT/M7v/M7vOpVr4rB0K233srHPvYx/uRP/mRLH/67v/u7/MRP/AR79+6lWq3y//7f/+Mb3/gGX/rSlygUCrzmNa/hTW96EwMDA+TzeV7/+tfztKc9bcuTkT/stRXQtJqdWF16qMnZbs2cjP/PSilTz7DlBWs+N8IFlqG8bhqOd86TkRvtjggnx84s1Ulbym8nYWgkTJ0ESlcUxe3omoYZ+tjEnmTh9iv9lNoHv+XyreOLJAw9tALwcYOoFa68lspNl2ZoOAor2ZiaUABGCEEiWvTdgKbr0XIlvu9g6FqcV6gLgWloyCDABWQglSg9UJ8lVl0fAkVCLNcdLFNpmBT4CzY8vrpQ2sqBjKXMQZ0Vrwst/P8xsxWCvFQoDLc9nx25BHv702QTBvdOlGiF+92ftqjaLssNl4xlcGAoA0JQrNncO1lS+X+aYG9/ClPXOTFfRQMu3pFhOJ8klzCQqNau6wfMVlosVO2u5zwIJBcXJwmE4P0/9hq++VOvZLSvM9KkP2NxQ3qA2UqL5YbLrz/vYvozFp8N2yjn+nTevrjcfWaZj916hstGchi6RqWpWtetsDWfMDRsN0AGEhsQgc9c1eaB6QqFtIkf6Iz29RbzszpUeroUMnYho7Z3IM34Qo17J8qxBkwlV4SGypqgWFfgMvJwqrZcXC/gzFKDP/nisY620oYRSWGu41LNZqlm07B9rhwr0J+xzsm3KTqm3z6+wLu/epz+tKkmQ9uOy6Npp61X7W22TEIxS+sB0EdTG7FXAxmLG/YPcGy2yiueto/r9/Vv+Nkb+ZBlLT22WckmOj9rq/5i3di7StOl6aoJ40ie0Z9WQxfdzs/50G9th/XG+aieQNizn/3s+N9/9Ed/xJ//+Z/zC7/wC/HPfuqnfoqrrrqKD33oQ7zyla/s+cPn5+d5xStewczMDIVCgauvvpovfelLPP/5zwfg3e9+N5qm8dKXvrTDrPVCddZWANNGAEy1CnvX92y12ttSKUtDExp+GLzs+X5Hm1JnxfvMlyC97gBhI4ar5+0K3yAKEa6F8UiWrgwg66FfkUCgEU4CstJN8UIxbPs2BQGhWa9qvcVTdKG42/MDiu0RP237EYErtW1qpxdqdnx8VOdAxnmbuiHC1wuMkNlQ+icZTzh27G/4eb5U+aZP3teHGwTMlFrMVVs0nc4pVS1ciLUQoJcbLglTQ9c0kAGGrkTeO7IJHp6rIoEDQxl25hMEUjBbbqjBGF1Qs9XE36U7cxybVTYS6YSOE6ioqytCD6xizeb2U0XqttK7JUyd8cU6B4eyHBzOMFlqMl9zODCcVTqgaCouUPmR67Gmnm7w2p/6HZ4x9zB3XvE0dvnrTC0KwXAuSd326UtbSuQ+Wuj5Jr7eDb99cfnnI9O03ICsruF4Pg3HQwYSy9RDZnOlfet4AUEg2T+Y4bmX7+D/3X42jPOxO7L1oHvrqB0ArmbsarbHO774EF65GWvANE2lLESh7a4fKPYy1AA6vsonHe1LMZxLrjtFt16uY8PxsT2fuuNxcqHGZVqOmZAd26pvk6YJ+tIWlq4xnOsEYFGdSzttvWpvsxVrDsuheXF/2mIgY52zpUO32sxFv+UG9KVNrt/X39Nx2khzdXA4AxJOLtQflR6rG3vn+kHcZUhbgnLTpRrm3cL2np9utVlaxeNZWxbm33rrrXzgAx9Y8/MbbriBX/mVX9nSe/3t3/7thr9PJpP85V/+JX/5l3+5pff9QSg9ZCceLYDYKghp/9tur93q9uginI7r8e8F6kmrL20pJiyQLNQcpAyjdUQEQtpASRDgrPMB2wUYY7AStl8kqp1Xs10Shlqk8ynli9UK3Wvd0DvMDmN4dLESTaUJSBqClqeaiopRUJ/TcgPlFN+GFLrth4A4uxJWrhlonyxVNzhDV6LrpKlj6eomt96xiXRRap/V8X/9cw7xvq8dV61WoSxdDE2QMHSCIKDhBniuYtWELtg7kMYydM4s1ZUFQtIknTR47uU7w5anQ7WlWhhPu2iYa/aoEPa1QcEDjBRSzJab/NPdUyzVHZquz7GZCjXbiycbo4imul3iwFCWXEL5tU0s1TldbIYCfQPpSfygPSoJrpl+mOecvJP3/MjLFWOWzPLVgzew09TRtd5jYnp9Ou/lhr+alXB8td2GrvzFXD8gaeoMZSzc0FTV8QJ+5oYxbDdgqtzk1FK9Y2Ixyghcr3XUbfuDQPK2LzyI50sGMxZSQsbS0TRBqe7QcJVFi6Grc3xoOM3xhTot12esL8XOXJJaGNm1M59grmJ3tP26LcjtHm/FusNcpUUhtXErbbPaauTPubIi7axe2jJYbjq0wocpIVVY9rlo0LYyMRiVlJLpUoP9Q1nKTZfxhdqm+7GZ5grWBqxv9bx0Y+/MUOsYDT01Q0PZqLba7txKbRZW/3hrBbe8x3v27OFv/uZv+N//+393/PzDH/4we/bs2bYN+2GvyKrg0Vb7O/Tq1QQr+q+tvKZbdXtttMiv/l0UDB614jRNcN1uFVHjBQFamPyog9IyhdVLC9IIP+/RHtEfOTTIj162k7+45ThTy00Shmr7DWaUAzlScufpotpmGeB7QWiz0LmdUirD2wg06YYWuv+rKbtetnM1SI7afIGMJhPVDwOpWpmWrsLjayGbYWrgtrOLIaNl6JHoXd38ZsstfKm0VWlL58RCXbX4pJpkDQIVMRWFdre8gPHFBhfvyPKiq0djINXuZ9RtQfnJq0fXXfiu2dPHWH+am++a5EsPzlK1lU4taSpPK01oIWC3KdYdEoZGywv4/pllEqbOYMbCl6olJFAxZY4PP3HsO7z7C39O0nM40z/KZ65Uxs+qrRZwcCjD2eIGU3hbHInv9Ya/mpVIGhqaplhV3yc2BqZNj5UydRZrDl96YC40XpX0p1X4eRzVM6oimXrd7ggk5ZIGk8tNckkz1gTl0xZOzabp+vSH+agVW8UY5RIGQ7kEd08sx/5UKjxe456zy3Fbab12WmSrUG66nFlq8MvPPMALrhh5TIKjz5UVaWf1LhrOcM9ECccL6EtbCAHlpstcxea6PQVOLNR71qBttj3rsVcnF6rUbI9AsqYlvNF+bKa5erR6rG6AOJc0yKcMinWHlKkrqxfj/Mcp9WKJ8nhrBbcMwt797nfz0pe+lH/7t3/jxhtvBOCOO+7g+PHj3Hzzzdu+gT+s1c5wbFdt5S2jP10PgD2aKCQZ/s9qAwHRz0AxYUII8kmL+apN0/UAgR96OglNi807ewWInlS5jNFxjdptWykB1O2Ai3dkGcxYjORTmLpY0+55+kVDnFyokUnonFyoU2q4eGFr0gyf9qTsBGUpQwVkR5qx9oqAVTS8EPlzdTv+KgtOWUT4viSQqr+cMtWgQCTWz1g6CIHmBWFLNGw3S4keTksqR3/l0XZsusJSw2EobZEMJ+EqLQXAzHDcMgByKZOUrxaeg8MZfv+Fl2MYa4W83Rijdiam25P/lWMFkqbG0akyu/IpzhTrGJpqYbZclS8qJfhC7V/a0lVmpeuz3FBRSn0pM45Q+q+3fZrf/ubHAPjaRU/mlkufhh5OjhqhFuX5V+zks3dPxUBEFwJfKnParY7Eb/WGf+VYgf/+nEP83fdO8+B0mbiprAlySQNT12I3e0NTE5ffO7nEct3huj19PDBdodJSRrK5cDDgnokS1+wubBpNE23vsdkqSzWHvpTSBbaHPScMBW6LdQdPShw3YLnukrIM9g+lObvUoBUykJGPWrWlBg7uPrsMwFSpgS9lV0NXJfjXGMxaXDaSe1SL4Gattv60yY0HBvjcvVPcfJeK/BntS2+JFWln9Wq2H5v4Ruc5balzUHP8njVovYL21eyV6wfUbJUbubs/He9rr+zORqzuo9VjdQPEK6bCJZbrDsO5JGlzbZzSdgOh9nMGK7rR6J6+3VrBc6ktg7AXvvCFPPLII/z1X/81x44dA1T80Ote97oLTNjjXNsJ6x6tXVcgwZVrmRwjZIySpnKQX6zZsSDdCMOtI7F5wtKxXX/FoX6TclbpsrZaCVNjptLi2GyVStNjZ07HCnPw2nUm6YRBLmnyuy+8jOWGzW/841EcL6A/YyGA+aqKNYraqgCVlouuCSxdwwnBRLS1lq7FeZCBJGZIRdt+SCCTMMgmVCSL2t+A5brSo+wbSJNNGhyfq6Mn1aCBoSnz0KWaoywOpAKrQaDMOWVA6IUW8NWHZpku28xXWnhh+0u1ObU4VUAIxVAO5xKM9SU5uVDnuycX+ZGLh7d089zoyT+apNw3lGah1mK23ArtNRTYjJjbUtNjOJtQQxJAIWly5Vge1w9YLlf5g399P//5vq8C8JEn/RR/8rxfQWo6QaAcxfMpg/60xWghxU1X7+KD3zzJI3PVuF2yuz/FLz1t35baFL14YLXf8O+fKvPZe6ZYqNiYmkYmoeN6yufN8SS1loeuqYgmQxMcHM7E+ZKRU/p4h1O6wNAFP/MkdR9eL5rmyrFCfA7umywzudxgpizCnFEt9rMD0DWVR7hvMIPt+fzCk/fyr0dnmFxWAKyQMuOr1NRVbNdSzeED3zjJrkIK21O2CRPFBtft6WMgu2IftN0MyHqttrG+FBL45G1neGS+StNRmYvOBhN63a7ndlav1HA6zG+BjjZbIW1tqnHaCmhfren75K1n0DXRM7vzWIrS1wPEVphtqWuCvlWmwufLfiI6Zy3T5+G5Sgdrm08Z6rp2z58WrZc6pwbsnj17eMc73rHd23KhfghrdUvNl+B4qh334Ewl/htfKud0J2zvpUwtNgM9F3i5mfatWyUNjYbt8vHvnebEQo3xhRpJSyebMNhVSKqw5IQR6xcKYexN5N5thQJrP1ADEO33uEAqnzSQ5BIGXhDQcFZamUIo2wspla2Epqmg6EpD6XICCbbr4/mShqEErQJ1w3vK/gF29ye5/dQyddslQKIJTeUXipVopvZjEwUUyHAhGSmk8aVgqWaH7vx+HMUTAE4g4/2pND2WamVsT/Lurz7CNx5Z6FngutmTf7szfrS4Ky80VhaN0JtMaIoZTGiCluszU25Rnpzlo5/6I55y5ii+0PjD572WT1z/ovgkaAJ2ZJMc2pFFArPlFp+64ywLVVt51YXHdKFq86k7znJROF0YBJLxReXmDpJLduY4OJTtWMg2mmQDJT6eLfscm61y70Spg5HZ1ZeiP5Pg6KTyfrp4p/I88wOoNB0GswmeeWiIT90x0RHV0x7tommCpZpD3fE2PMY3Xb2LLxydiacVS02HpZpDgKRYtzE0SJgGUiowPpCx8PyA6/cO8NLrd3PHqSJHJksqUqjtcUdKSSXUIs5VbfYMpNnVl1Hs5mSZ208VuXp3HyOFZM+C762Ch9WttkhruFx3VHtXqkifYsOhPlXmyjGVDtDLBGV7m61d4xTZ0sSJCobWk8Zpq6A9qplyizPFBrvyyZ7B/mMtSl8PED/14BA/fd3oY5bjmUsauH7A0ckyfhB0sLbFukO56TFaSJ4XLVqvdU6f/O1vf5sPfvCDjI+P8+lPf5qxsTE+8YlPcODAAZ75zGdu9zb+hy5D2/7A6seqVgOfqN2ma6rVGITeW3FrNGhjXPyAhNDYjlnNXvVXLTfgxHw9tsqQKCfppZrDVKlJPmkykFGamaceHGL/YIb7psr0pyyWcSg3HWxPLfQ+Ky3GqBXrhz9Imhq2JzD10BfPl1iGSg6IjlEhZbK3P83RhqsMM0OgJgS0HD8eBhjOJfnJa3ZxZKJMreVih2ygJtpMWjc4HhJIWjo78wkSofGp7fn4uqTpqunO6Jxomkbd9qi2lGBe10VHtNBmLZBenvwjZ/zvn17G8XwGMhY1OwpEV1eDaWgMpMw4j3G57mB7PuWmy9PGH+SGM/dRt1L82k/9Nt+46Ib4801dcMVonst25jixUOeqsQKfPzrNsZkqmpAkzZVYM9v1ODZT5W++Nc5rfuQAH/72ON8/s0wtfGLOJg1u2DfAa5+1kkuYSej4UjJTasa5lO2L5Gy5xVS5yd9+Z5zJ5eYaRmasX5m43jNRYrqsYqkSpsY1e5Tpa9rS+cw9U53ic7ES7VJreSQMje+cWFz3GB+fq/LBb46TtvT494eGc7Scsgp6t30Wazb9aZWR2u78/5LrxzAMjWdePMQtx+Zpun748BBlq7q4gcTS1WusEKiM9adJmTr3TJQ4sVCl6Sj/ttFCkpuu3rVurNC5goeonRYEks/dqwDYoR1ZlusOgYSMqZM0dSotl9OLNfrT/eEQTMBSGCPVDRi0t9kuGs7EGidlfkscLZUNdZWbMXy9gPaITWs/Fks1h8nlBqWmw6HhXIfPWrfXPV6i9CeC39fe/rSawm257MgnEEJJJ0xdpaDMV2ycjMXe/vRjtk2ra8sg7Oabb+aXfumXeNnLXsbdd98dh2WXy2Xe8Y538MUvfnHbN/I/cnnBo9NnPREqWthU7p5yce82GepEAesSAl+CDNjq97XdENbU1A1ZOcSHWq0urzHCiYFWiHb1EGB4IaCRKCuHeqg/Sls61+xR4upc0mAgdE0/W6xTLbVUNqLonPCMW4tChTrvzCcYzCSYWK4zW7HjgGkhFLC6fFeOk/M1AimxdIFp6iBV7JAUAs8LSFkGP3vDGF+8b5aJYp2l+or7fSCj9mx3CBqdE00oNqxm+51Tazg4YTsylzRwPeXIL4QgqQucUPc2XWpwcCjLRLHBR797ine+5OquGjHo7cn/xEKNl9+4j4dmqpxeatCfNulLWzi+rVg7XTCYSWAaGrWWRy5hMlNW+Y2mDndc8mT+14veyD07D3F85wGy4WRrQlc6w/60xYmFOgMZi6ccHOBtn38QPwR3pYYbA1fLUG3x751c5NRijbPFJloIjkHZmXzrkQXmqy3ectNhAG6+a5KZclOlLiR08ikznlgs1myOTpZIGBr5DRiZgWyCp+wfYKbS4lXP2MdlI/l44QoCuan4fN9gOm5ZCoj9vMywrZ5PWZxcXOa6NpPX9vDr+TAMveb4pE19jfM/qCGKA0MZSg2HphustHeSJoRAMJDEwmuAgWyCG/cPcHKxTiapWJCZcotP3n6W204V1wCr7QAPq6+3KIJKsVdaqOHymFpuMldtUaw7OF7A337nNHeeXl6zTe1ttpMLdUbyKWq2RynMw02b6mEmur420zj1OtE5W27FDy+7CimyCYP5akv5yjnl2Gdt9esyCZ3/e/vZx1WU/njnNZ5dboTxXEasn4yYsIajLIksQ+PscuMHRxP29re/nQ984AO84hWv4O///u/jnz/jGc/g7W9/+7Zu3IVStZ0ArF1jtNXXbfU1KVO1w9wwggUkjrcFsX0gVS5g5B6+QcVTnm3Ax5dq0jJlKqF50/XW+KQZWtgGXfUBfpeNdLyAvQNp0pbOkYkyP3n1aKcIdUeWYt3Bdn2EppHUFLsVhNorQwPT0Ll0JMeeAWW0OZixmC43edE1ozhuwLG5CgtVm7mKzXLTZSSfYqSQYKbcotJ08YRGShOkrQSDGZPTCw2WQl2d50tMTXR4lq0uQae5r66J0IzWB8yOqbWHZ6pkUgazpWY48KDMaiPdVNYyKDZcShMlkobOTGWe3/rMUX75GQe6LpC9PvmPFJL88jMO8NbPP6DYFpTeRgoYzCjGzvUDdE2BjBc98A2O7j3M6ewwnh9w87U/jqUL0pqgkDRJGBrllkvdVgL+60NQcbZYp9xwlR5Pqs8QWhjy7YZJA7aH7QVYhtYW9wMDhkap4XBqoc6HvnWSpqPe+9BwlpPzyrl9sWpTs1V81cNzVQCu3dMHsD4jI1QIu+MFNOzO9JHNxOcDGStuWdpudw1MX8pSesFVIDhqbZbCacWffdIY1+7tX+P8D4oRunZvH0cnSuwsJNV1F7bi750oYXs+Q9lknHoQVcsLmC43kVJyaEdujZi8PXngk7eeedTgYfX1pkCoYq8ibZLt+Tw8W8WXSqe5M59kVz65Lthb3WaLWHCAvrSFhJ41Tr1MdF41VuDW8U5mU0qpgH3doel6Hcan7To74JzanT9MVW15mLrSnZ0u1qk0PZrh92Ewk2DvQFp5lv0gacIefvhhnvWsZ635eaFQoFQqbcc2XajzWOfa3DuX16npOw1dBLh0CtV7/UwZMkGuJ9koECtimjpabVIBQF8GWOu0df0AVofbRGzS6vcTwFhfkoFMsuPmFS2MU8sNJbqH0MrBj73HIqE+BBTSZnwznam0uGZPP6982v6Y7Ygc1T9+6xl25hOcKTZouUojFdHoh3Zkma3YnFys05+2OL3UUJOVdLKBq0vXBAlDDQI4XhAau64aagin1sYGUjz/8h184FvjuL7EC8AUyjg1YahJTCmVZittaTScgIemK/zFLce7MhVb8XK6amwnt40vceeZIqP5JE03YHyxTstT1hVN1yepa/z85/+G1337U0zuOsAvvubdOMkMlqlj6gqM2l7AlWN5Gk7AcsPm1593cTxIcHqpruKiINTPifj8m0K1pz2prsH2KbjoasgklG3DbeNFduQS8f5KCWeKdeq2p7L95ioYmsZluwsMZBNUwyGN1YxMteXhBTKMonH5+K1n+Ocj0x0tuHYQcHyuyuklD12Di4ZzvPLp+8gmDD5+6xmOTpbwwu1u18AUa7ZqvXWzx2mbVnz2pTs2nJ6Lrvn5ih2DwUbYJk+bepx6EJeUHJ+vEgSSA8OZ+PxHwOroZInfufk+BjMWpabLxHKDvpTJUDbRwfJsBTysud6E4OBQloZdptxU0U0tz8fXlAVL0tI5OJwllzLJJo11wd7qNtu5Oub3AqqfenCAT95+tgNIrUwalmk6Hkt1m1LTxdC0Dp1d3fZ7bnf+sFZ0DSRMnSftXdFPRsxwzfZpef7jqgnr3jfYoEZGRjhx4sSan3/nO9/h4MGD27JRF+qHo1peQDM0mRRwTkguEqW346du9zdPrgVMQoRxSIGk7nb/8NU/VRrblQ9o/4IIIRAopqLlKIH1PWeXWarZ/PgVO9nVl4xDslVwthLrJ009NqF1vIDlmkOt5XFivrauQ/j1+/rRNcHRqQrFuoNl6PSlTTIJg6rtcXSqgu36oQN/2MpEgT1NCLrEvwEKMKkgZjX16Pnq9Za+ss/R0/TFO3JctbuPsUKKq3cXKKRUa3AwY4YMn9L/EL6PZWgcGM5QrDt85u4pglWIO3rynwnZkI7z0PaZ0SL20iftZrSQothw6UtbHN6VJ5swKDVd9JbNH336T3jdtz8FwH3XPwsjm8WT0cSaMpuN8jMXai329qcZ60/FnxlZpYQnt/NAhYa90Xk3NBEPTbRcH8cLFPvqS+q2R3/aYrmhrBmOz9dohq3bQsokYxkMZi1GwjH5iJFpOB6KXVTbuVR3uH+qxELVpj+lbBv6Usr88y9uOc79U2VAgYCXXDfGzlwy1FfCfKXFZ++ZotpUweY12yMf2lxE5zufNEJRuaDacjc9BxtVBAav2l2g1HQ4vVjH9X1296cZyFr0pTvtKCotl6W6GjCIQsKjWm64LNUV8DJ0wc58Ag21jfdPleMJ4KhSlt7TRFu36y1qvfanTcUs+0pYP5ixuHJUtYSjc94O9lZX9D29Zk8fh3bkOLQjxzV7+uLInV6r23EsNZXP2xueezEjhZQCUtZan7UrxwoMZhM4XsCZYoNSw2HfYJqfuHKEtKWTSehtQy5r63wapD5RquMaAHJJk4FsglzSRELP1/v5rC0f/V/91V/ljW98Ix/5yEcQQjA9Pc2tt97Km9/8Zv7n//yf52MbL9QPcLV3xs6VhXNCuwVTE9ihvUN7S211qQk3ZcHQ7py+UXW0adtf0EaH6RoU0mYssH7/146zVHOw/YCEoVFImliGhhc7aBOzTZpQiQBBAA/P1zD0jUezexGU5kLdkR+AZQhaXujCL1ZteHtFurLwV9F6EZl/rp5aS1s6SUs51g9mVQvE0ASOp2Jrok9wfGVdkU+a6ELrylT08uTfDkhXt35sN2BPf5pn90ne8P7fZ/DoXXiazjt+6o3865N+gsCJcg8l+ZSppjw9nztOFRXzGMBb//XBmFkqpCw1pdVUuqko8knKlSB1QxOh6NqnGYKvSDemayvMhC8l90+VY+d+Q9Nj3UnV9uKJufUYGU2DybA9WkiZXDqSQ9e1rqHcD85UeN/XTlCsO+xZ5RH1yJyKgsokzVgDE4G8huORS1kUUgYJU+/pHMD6E4rdhNd12+N9Xzux5r3HF+oYotNSQX3VJKcWa/hBQEJXXneGrmEZGpYh1uQMQu/gYb3rzdQ1CimLtKV0QpeN5CikTFa37B4rpmgjAfv4Qm1d9nggY2FqOfIpkx+7fAcPz6ug+0/dMcFn7pniouEM/WmL6VJz28yIf9Bqq/ecx6O2DMJ+53d+hyAIeO5zn0uj0eBZz3oWiUSCN7/5zbz+9a8/H9t4oR6HOhcN2HaWHrbWoglDTcCuQpLlpkvDUfYJupRhjuLaKdLIiFRNWq5qN7J23yQrrJds+//teCyXMFmq2TwwXVVB6L7El5K0qWN7PvOVVrhtK+kAsu2NEoYgbensyFn8yo8c2NBfqxdBaTZhsDOX4PRSnXzSpO74QBBbS6wugWIGW+5KNmS0z8fmKszXbAYyVgc4bBeDHxjMULd9qi0PPwjQNS2200hZOvuHsrGmab3Fa7PYlNWAdPUCNXDmBLtf8SuIU6eop3O8+ef/F7fvu5pCQscPAabrB5SbDnXbj33BsgkD21f6shU7jN3sG0hzttig7ngx8IoOViFlxd5oxbqtGKU23VjLVa3RQtJgpqSik9p1Y6auAsztMPdxuqRSBmrhpOeBoQyzlSazFVu1xlyf4VySS0dy67bgxhdrsUh7Zz4R2r0o25NDO7IcmShRarhctbvA2WKjQxM2mLHYO5ih3HD5met3c3SqvOk5uH+qzD/dNcF9UxWajk/K0rlqLM/PPGlP7Py/uiXY7fweHs2TNHWSRiejU215VJoelr4i5s8mOt3V23MGtwoeNrrebjzQzydvP4uhaWsAGDy2TNF6kVKBlBRSJqcWa1wxmkfTVihuKSWzlRa7+1J8/6wyQW0HGfdPVcKEDPGEBSCPRW31nvNY15avLiEEv//7v89v/uZvcuLECWq1GocPHyab/eEU9v1HrdWtvQi5PFpg1iu4i3BTBMD8QHK62OgkqYQS/wcShrIWU6VWpwwFGfthtdd6n28ZSnTud6HYBIrtuetMiUAqawTpBbHHUNLUmCo14zcPwte0g0nHkxhCZfH1pa1NRcW9CEqfefEQVduj6appNtv1Qx2c7DCs1cTKMY32ztAEmlCDC2lLgbqX37iP5x/e2dEejZ4kl+oOFw1nld7J8Wi5Abom2JlLctmufNzK2Wzx2uroescC9erfgVOnKI7s4Q//yzsJDl5MarpC1VZAtT9jsVC1adgKAKYsneGsRYCg1HBpOQFXhNE+t40vce2ePmzPx/VNlhtuPHTQn1ZWJId2ZLl9fIm67aNroXWJVEMjSkumk7QMluoOfenVbIqy+RjKJMgmTbxA8rWHF1Q4e6gV1ARcNJThP126g1uOzXNZyICtrgjYPjJX496zJZYbDpPLzQ7R/cGhLCOFJDOVFn4A1+/tp9ryOhzC67ZPy/S5Zk8f/9+1Yxueg/unyrz98w8yvliPA+UBJooNjs1UecuLDnc9j93O797+NH/8bw+tEaGrYOcAV8oVMX+75slVgy0tx0cgzgk8rHe9Adx2qthT1NFjXR0h4XWH2XKL+arNZSP5Dp+1/rRqqy1vMMQw1pdiIGNxYuGJB0DWq+02l30i2GWsV1sGYb/8y7/Me9/7XnK5HIcPH45/Xq/Xef3rX89HPvKRbd3AC/XEqHONuYy1Wd10wPQGyCIQ022bbE8tMHXHX/M5W02GCgIVh1NteWsmUjWhmDVDFyRNQ8UDaZKG4yvtkZQIBJq2Avwka6OTlNu7G4t517vZ9CoovWZPHxfvzHHz3ZPce7aE6wdUQgYqFQroG45Hw+3cI0sXpCyDbEIxNbom8PyA208Vef7hnR1/Gz1JRoxIylALupRwxa48u8NJT3VOelu8ehld73psPv5xar/2Bn7/2b+KsWMHA6Fz/KnYOT6IrUiyoSWDrmvoKHuJctPl9FKDS3ZkQzuMvUyVmhTrDrv702tii266ahcTxSaBbLDccON0ByFUgsHFO7LUWh6Vpkvd9sgkRAdjmTSUH9d0udmZ4iBW/pE0dS7blef7Z5dpugHZLiAsArYTSw1OLdXRBWQSZofovmGXuWxXjoShMVtusjOfIN8WFRQEAacWaxwYysagar1zEASSD33rJMdmqxi6WMPEHput8mf//jAHhtOcXKjTcnwCFFv9k1eP8vzDO9e8d7e2UDQ8sVrMH2meoiGF+apNIR2cM3hY73p7IraqVttz7CqkGMxYHJut8sB0maWazUDWCtm8AT55+5kNJyCLDYfXP/cQmhBPOADSrc6XuezjbZexXm0ZhH3sYx/jT//0T8nlch0/bzabfPzjH78Awn4I61xbk5ETfDuz1MGw9aDXEnSCqdXb4ksIvAANiRGGNp9rOYHEaXlhALRA01amGnNJg30DaaZKLUxdULfVwMFizQ5F28rscaOSoPy2bI/J5QYNx+ez90x1vdkc3pXvsL7ItYmZVwMdTRNctjPHd08uMldpMbnc5ORClfGFBhPLDRx/hRULCRgQkLV0kqaBrgVUmh5jfekNp85EmG6o6Roj+SQ126PYcOjPJNYsXjce6Oe+qfI53/CjG/HJ2TIX338nj1z91JVoo7/4MEtfeIj9oVg5stWotjzKTYeHZio4rgin/dQV4/oyHiQoN1UWou0GjBRSHa2Kuut3MAV+IHHamCRdE2jh+zp+wFy5RSqhM1JIhqL9oIOxPDCUwdQEyw2HgbTFf7p0mJrtx+xUNswfvW18iUPDakqw3fYhYhMju4JjcxWCQJJPrwRtm7qIAebJ+Tq7CikyVqfma7bc4thsBT8EqJE27iXXjalhj9VapMUa3z+zjCZY02LNJ1Xc2O2nllistRjMJJiv2ZQbLg9Ol/n28UWuvr2whlXt1hayDMHu/jQg14j5+9PKMuX6fQO8/Kl719hlbAdb8kRrVa1naDzWn2a0kOT+mQoHBzO84XkXc3Aoy31T5Z4mIOu2z1Vjhfh4nV6qPyogdr5ikM63uexjEd8UBErn2Gv1DMIqlYpyrJaSarVKMpmMf+f7Pl/84hfZsWPH1rb2Qv1A1HrQorPxslJtg3bxTb/bay1Dw27TJ3Wrbtqtbn8jET1nTG5WMtzAyMG/P2UiNEGp6SKRNJwgDumWbd5Zvfif+UDN9nnHF4/RclUA70XDua43m/We0qdLDZKmzpVjil6v2d4aMHfRUIb5qoNiWjRcX4a2GUFs3VFquuw09Vi4rWsqwHy1lmvNjdHSadoeD85WWKo7QJVswmzL6ZN88vazPT3FdrspPjijbC7qxTK//cm3c/Vd3+Dvfu0dfP6KZ8dartViZSEE+ZSJ5wdIKbBMpfNpOF4oqJehoF597my5STapXO0PDmfXbVWcmK+y3HBoun7Ybl25uFMoBipA8rSDQ5wtNtiZTygAFTKWErh/Wk017h/MbGhS+6yLh7jlmM3x+RqGpmEagrSpk7J0dveneerBAT5x2xkGMxZV2yOfbNcyKf3ZYt3m+n19vPLp++NrYnzBYbbSwtBUYsBIIUXT8bl9fIlbHppT5re61nGuzhYb1FpeV8G6EOq8uX6A40vuOrscxo3JUCsXcOvJJR6YrvCF+2Y6UgW2IuafKTcZzCZ49TP2r7l2tpMteSK1qjY0NNY0DgxmWW46atCnjTHf3PC1yefu7f7At9Xjdb6Yqq1kaZ7LuXks4puiz3jwzFzPr+kZhPX19RGloV9yySVrfi+E4K1vfWvPH3yhViphqGmzbmv4RlOAj2d16I00RWlFICSQnRqkbqUJxQpttmu97rrbNvF3LiVYYYg0TZAwdNKWRrGuolhSusZ8tUUQqBZo9FFBqA/qEHVvUlJKKg2Hmu3HTEu3IOG33HS5ekq/a5L7pso0XD+mDgMJf3/HBJ+49QxLdXsNmPv+mWVOzNcwDY2+tKXiOXy5ci1JNfFXt10SZjRBxxotV7cb43LdYXyxRq3lhV5hkoNDGa7Z08cdp4osN9w1T7GTxQY/86Q9jIQ5bRHYWnNTHM6yVLeRU1O888O/y+7xh3BNi0QYs6OijRRrdN/UWi2PoQvcIGAwYxFIqQLAUSa5ESvreD4nFuo859Idcct0o1aFlIpFq4YsqZrc02JbECEEz79iJ5+9e4q5Nt+smq2ARMYykAHYfsAjZ5e7hggXaw5ffWiebMJAE4Km4+N6kkXHoV9a3HT1LkYKKRxPcmhnjgenK1Rabsf0Y9P1MYTgmYeGuHp3H1eOKhf89371OEKDK3flEaGw2/UDyg2XctNF1zRu2NdPyw3ih4An7etb9/pV5svqO3C2WMcPCFuVxLYefiBxXAX0mq7PG9sYjF7F/OuxUVtlS3phP54oraqtRBlBb4avY32pOD/z0bJL55OpOtcszcd6u9e7nto/Y3CVDctG1TMI+/rXv46Ukuc85zncfPPNDAwMxL+zLIt9+/YxOjra8wdfqJVK6BpS+pihUWLL8Wn6El2o6JSG44eO5U+sitqJQbDCMMRC+k02VxMiFo9HLbJHs4fRZKQmVlqYW3m/6PM1AZamhTYOKkS86fo4vo/nK28ppw2ESRQo28rnADiB8ixqun6HW3o3fyIZLm1Nx6dYd0gYQgl080nuOF2kWHPWgLlCygxjhwQyHDbwA9lxnCXKoyltBezIJ6k0Ha7Z09+h5eq4MQKTxQYPz1Vx/YBcaMnRdJWNwNGpMtmEwdW7VyJxMgmdpKHx/TPLHJkssW8gQ9LS6U+bzFdtPF923BTvPFMk99AD/OXf/y8Glheo5fv5xG+/l7OXXYuAtmgjpeU6MV9TbcJYy+XSnzZJmRr1yHG+re/thVFMepdpuG5132SZuqN8tyKtnSaUuatlKC+mvpTF6Kq25uopvA98c3zdEOE4LklLqmMHsQbQ0AVzFZsjE2WuGM2TMDWShr5KB6cAXS5p0pcyuSZ05dfC1mmp6XJgMBsDMKQKI7f9gIGsRdPxaTg++ZQZPwQ8PFcjk9Cp2R79usD1WQl0D/x4MMEPJAldwwkn+bRQBOqHfnleEDBTam7KYFw5Vohb6gtVm+FcgmdcNLQmAmurbMnjEV79aGorhsawuQVDL8L9Xtml881UbRWA9lrt291tongr273e9fTi68b47D1T8bFxmmu95darnkHYs5/9bABOnTrF3r17u470Xqhzq6odicolE8ut0I4hwc688oo6vVRXU29byC96tKBms1pt3yBDW4bICXyjShphNIsb0PK650iea50rVo2mGTWUSacTCty9UBPm+mrh1TXtUW2riHRyfoCpq1ZP5JYeiaijm829EyX+/f5Zlmo2uaTJfKUV+nxJxhfqceunK5hDAV3XDyg1PTQhkJpqF7VPuXq+ipLSBaGWa6BDyxXdGG1DxeBMLjdxvABTVw8I2YSBQFBIW0wsN9GFFgPNYl3ps+YqLQUABaQsm739aW4bL+J4ATceGOhwT3/ByTv55Q//Pmm3xdzYAf7s9e9iom+EZKnJSD4RH5sd+SRP3t/P/7v9LI/MVVXIuS4YLST5uSfv4XsnlpgqlSmkTGwvwPFUCzma5tw3mKHYcDZ8qr5/qszffe80DdtXGZusDIk0QxPhg0MZMkljw7ZmEEjee8vxdT3fZssthBDsH1hpV7ZrALXQdw3o0An2t00/GrpgrtxaA6K7LWxVW9lCrLBo6j3U9akeAhYqNpfvKnDHqSLTpSbt3Hcg1XWkacSWCTEAQ8QSBDs85gnD4Z6zy5se69WL2zceWVgDltZjS2Q4TJEydY5MlhhfrNFyg8ctvPpcqxdma/XQy8Y2HJsL93tll84nUwVbB6C91uml+oYTxb1u90Zs2iOzVRqOMiveKjbasjD/a1/7Gtlslp/92Z/t+PmnP/1pGo0Gr3zlK7f6lv/hS6J0VIYuYiH4dMlmvuqQNBXzEjFLvbYnBzIm5aa3rQzaRsBOE2DqGhlLp9hw130PQ1Nj/YFUZpfRwvZEKBEutBHTpcw4Bba3wqI0HLVv8QOTVAAuzq7cpLTQ5FPXtRgU+KG+Jqqm45MwNL5zYpHJ5QaeLzmz1KDcctGEIIlGTXqcKTbwA5WvuRrMFdImph62uaWPFR5zdS2tbKiuqf0c7UuTsgw+cdtpyk0VhXNwOMvzL9+J6wccnSzR8nxczw8ZWmjYXqhrM8N8RzWJWWm5lJseD89WqLQ8gkCBNj9Axfg41RiUnV5qKK2VEAxPjvPf/uI30WTArQeu4zd+9vdZqCSQ5WU1jWgZHBzKIIH333KceyfLtFxf5TomdEbyKaSUHJkoc+PBQU4s1ECq1AJL10gn1HDFWH+KQMLpxfq6T9VBIONAbl0DgYYZelkFMgiBhmRyucFNYYYodG9rnV6qd3i+WW2msI4fkDJ1WqvOS3u1i6tXsx6ZhNGhn1o9zddtYXM9tf0RG6drIhb5t3/ekw8McM/ZZWwXhFhhUaVUAffR9yBoA/ZBGIYeEmJooS7v1FKdeydKXRe59sUtlzRIJg08KbuCpW6gslh3YlbQCxTgfs9Xj6MJHtfw6nOpjZit1VrQ9rbqerq2XoX7vbBLW2GqzkUAfy4AtJe6d6K04UTx5bvymyYwbMYCHpkoUWy4XLxj6+BzyyDsT/7kT/jgBz+45uc7duzgta997QUQdg4VsRaRwWb8xB0CKL1t6q8XTCVQLTRNbK+mTEK4mK5oiyJTUkMTFJIGmqZAhoA1AFBDATBNKH2MiPySNtmX6LPPd+UTBjXHx5fhdKQgZh/1cGNsT8ZWGO2gdDUAWw3SIs2ZoQkyCYN80gi9rfSORTC62ewbTHNyvsZS3VXGqLpADwGc7QUIIahIF0MXXcFcPmmGWrAWvhR4QYDvy9iaQKCYvat25yk1lKv7TLmpWlOu0iONL9S5Y3wJiaDcdEHI8Hi0QedAYhqBisgxlJbp6GSJpZpLy1sJXo8AhhsEeI4CAUPZRIcR58Lug3zzp19NaWKW3/zRX8UTBqLtwJZbLvdOligkDc5oAs8L6A+9uZquz2y5FXuAnVlqcPGOHKYusHQtFsrHruu211X/Fi0cpYbD0amSGsxIJ6i0XFxfGdMKoSZnPV/i+JKnHhzoyfNt/3CGY7NVKi0nNJFV5r37BtKcWqxTa6l4ptXVzgAcHM5uST/VbWEzDQ1dUyxp0/UZzFgdxyF6CDi9VGdXIYmbDdZ4qLXcINRIBkhEh41MJEmQMtIYqsnN755Y4qevXevGf/Pdk0wuN3D9oIOpyCV1Go7XAZZWg8pi3elIKjCleu+HZ6sU6w5XjBbOC2tzPqsbs+X6gTL9DbWgn71nak1btdsDwHayS+d7COB8uNsHgeQ7JxY3nCg+MV9jd39qw2OwGQs4UkgxU2mxULPjeLJea8sg7OzZsxw4cGDNz/ft28fZs2e3+nYXCgWylEmo3wE2PKlu4MZa26BN3k8xIIGU2wbAohrMWBiaxnLDoeX6cUtSCGXx0LI99JAVM0IbAFC+VLqmJhilVDmDNdtfd/IyqpCMYgu693MuFYkkYxf5phMo/Y+uzFW9IKDUcGNgu9GhXQ3SQLEHSVNjKJtg/1Ca+yfLLNUc+tMWLdej4fhUmipf76kHB/jGw/N4gYxbU1Gb0TQ03DDDcEcqScPpAuZQI/6uH1CqOzhuyFCEmjnTUP5UZ5ea4XUiablhALNlkLEUcFus2ji+gpHdTGwBWo5HxfbQhYqZgbWDEoFUANT3ZWyi6/kByUYda1nCLuVN9qVfeD2fOzKF50UPICs3vMj/q9T0MHUFhpbqLpahkUvotDw/9gCbqzTZmUtyptjgouEMNdtnqe7EthCrn6pXt8Mc3w+PTUA+dGpfbrg4bde8pkHa0vAlHJkorfvEn0sauH7AzFITQxMMZawOJmy21CRhaCw3XcbCSKSoujEAW5nm67awpU2dpKmxWLUppE125JMs1x3lVm/p8UPAXKXFRcM5sgl9rU9dy+O2U0vYXkDD8TruMxL1UKJr6sGm6foMZhPMVZprQE/UKirWnDWB48sNF0OIjlZmO6i8yMpwarHWllQA5aYXmhmnmCm3mCk3Ge1LPm6RROda7ef4yESJf7p7El0THcCkl7bqahAObNrCXq8eiyGA7bYMOb1UZ77S6mmieKNjsBkLOJS1SOgas+UWO/PJrn+zXm0ZhO3YsYOjR4+yf//+jp8fOXKEwcHBrb7dhYKwxdH9dxK2pAWDFaF8dE/ebiBmGZoKsfbUMIGuq1aR6wfKIgDAD0iaOhrKFiEAgtDJfTifJGFqlJs93gC3Yft1lD3ERhUxj4ahIaWybEib6ktne8pOYhkXKVVb1Q823rSoLWMZIo5RSho6ewfSWLpOwtQRLY/lhsOt40UMTbC7P8U1ewp85cE5yk0PTSinfVNXzJwXSEyhFlcvkOzIWcyUAoo1h+F8krSlU2spVmt3f5rX/MgB3v6vD1JqKjCvaRoJQyOfMrF0wWxFTQ9mLGXa2ukJpVpo8zUHTYTDF7JzkEKJs+HMYp2m44UsrIe7zsE2DQ07XLRz89P81d//AVo+z0f/6G/xrAQzlaZiG1HHWBFvEoSIW75R2ytpaCAJUwLUtpebLp5UOrdnXjzE1J0TfD1yqQ9LE4KDQ5n4qbqb1mOhanNivobjBRiaSzOMKEqG10MgJa4XsFhzeP/XTpBNGOs+8Uc5oDXb69CEASRlwHxFCdHzCZMjEyVGCkmGswmabrAuA7CVab5uC5sC/kqQ/9BMpc3BX3BwOMMzDw3xqTsmVHC0EB0aNYBUwmBHPglScmqxgQz8Nd8vTQjqjk8mqQTQ5Ya7BvSUmy7T5SZeEIQsYHTtKaai1HCYLrcUE0snqHxguhJHG7Wb4x4YyoSmyuphsV1vGdUPQni1pgn2D2b4xG1nsN3gnNqq7cfr6GSpg+lWx9zkmj2Fntilx2oIYDstQ6otr+eJ4o3efzMWsOUGjPalSCeUP9+g2bth5ZavwF/4hV/gDW94A7lcjmc961kAfPOb3+SNb3wjP//zP7/Vt7tQbB9IMjUF2FZ3jLazGo6P5weUW55qrVkapYZHw3Hiv1H6XMWs+CFlJMMWpqZBIW0wV7FDM9T1P0sAPXQsN6yItdroK6EJ5S7fnzYpNzyEkGSSFklDsRyVpkvL9XE8R7Egbe3IiKmT0XFnpYUa6pTRhWD3QBpDVwCo3HRZrNk0HMXogIgnz2bKLT787VP0pUw0EQnpJS03CFksoYxHQ88ryQooNjTBw7NVCikzfnJMWzr7hrJoyw18X+nHkuGiVWl5pEwjDpnOJNZ6QsXGmBLSpoZEYLe1GaNzM1NukTA00paurDS6nLVAKgbMMHSuOvMgH7z57QzVlynbQ+TmpnkoP8JDs1UkkNAhYRphTJB6L9vz295WHTehgSYVq1a1XZK6Rq3lkjDVtkQnw4+n9wSaLuKfr6f12JlPMFpIcmqxQbHhYOrKtgTU9ni+jCeDG47HlaN5mm0WD+1P/FEO6Hqh2glTTSGWmg7FusNMRR3L0UKK6/b2n7Np6Gpdzu//xOWcXW5QbXnMllt85DvjnFpqKIDaftolpK3NW08DaQvT0FioOSRNpUmM7GkivSdCWWNYhk7L9NeAnkrTjR3zOzdCvThhqOup0lzRmUag8gPfPMnZYgMkGLoWm+P2ZyyQyvx1tmzjeD7Q3ex4b3+a8YXa4+4Ptl5thxj+yrECN129i3d9+WGWGy6mpoUgN0HK0vjC0RkuGs72dI09VkMA22UZEoGnXieK16teWMDr9vbz4utG+cw9U+fHJyyqt73tbZw+fZrnPve5GIZ6eRAEvOIVr+Ad73jHVt/uQm1jbZUxW682EuAHEpKmQcuTSBlQbKxls6J2ROCveJ/Fi3YAD83USFs6CUM9RQm6G8JuB44UhPmNcn3TWU0IEoZG0w0wDKXNS1tqUdBQU4PFukPTVcyUDEGXLhRr5noBCDCEutn0hfYQl+zMYbtKd/OaZx7gxdeOMVluUm66vO9rJxhfqGHoIhaLun7AQrWF66tWjiY0nCDA84LYAsTUhZrfDNnTYzNV1ULVNIK6w2DW4lA+y09fN8qVYwWOTJSwdI0n7emPMyirLS92dB/KWNw7WcL1JEZK+UdFeiVTF532IULp+oQAsQocS6nauaahMZy1mK3YHb+LNEOB9Hn+A9/mf//rn5P0HCb3XcIf/sqfcl89jV0u4YUaMC8AI7xRRpYH7e1NQxPhqHnYGg4knu/jGQHT5RbPuniY28aLVJouhZTBcsNV50wTFFIGlabLZ+6eInmjpha5MAGgveV2YDjHfNWh3HQJgpVMUddXU3+aBoOZBC03oOH65JJm1yf+lRzQAmeW6h2LQMbSaTg+TVd5m10xWmCx5jBbbpK29Pg8brXunyp3+MulTZ2rxgq89Em7uWqswOfuncKXbOrgf99UmUNWhprjx8dmdcvyxv0DBEjumypTbbpkkgZSihB0SwxdrCuqzqdMZXHhByS7tGIdPyCha2uYrCvHCvyP513MbLlFytQopC2ylkHN8SjWbExDY1chyXLdZabcImkaa/RF1+wp8Mf/9tAT2r5iO2wbgkBy70SJHbkkV40V1pgJb3VI4bEYAtiu6gBPPU4Ud6te9WpXjhW4YrTAfaf7+cfX97aNWwZhlmXxD//wD7ztbW/jyJEjpFIprrrqKvbt27fVt7pQT9DaCPg0XY980kAgqTubx/S0V7vIvun4DOUS2K7f01ThuZYQygag5ihaenVpENPSiTDnbzZsf7TrU4SAlGkw0K96/6eW6gSBYkQiewRDi0SfaopuoWrTdHzqjs+n7jzLsbkqL71+N7mkwbHZSmjZYGB7PrZcsa8QIqBYdzF1JaCWciU42vECBtIGTVdi6OqzpJQkTQPHDyg3PY7NVHj/107whudeHD8JWobGxTuyqq0joZA2ySdNai0vjK1xma/Yqt0XLoYRCDN1geOr6B8Z2hPomoiDqJXWTadue3i+xNDVJKEX6v9i3zgp+eVv/yO/+c2PAzD/7OdR+uBHaX5rkoG6w0ghhanDLQ/N40toeT5JQ491Ye1nL23pChyF2xKxk54vqTRdRvuSfPG+2U21Rjfs71fsU7lJreWvGV+/ZGeWu88uo2kKKMiQ6TF0wUDKIh1G/rhep8XD8fkq44s1NCGYKjXwpfLTag/VNjTBiXnFwmQsnULawtA1RgpJduYTnJiv8bl7prlytLd2UVT3T5V5+xceZHyh3hEWfrbY4KHZCq9++v54IdE0jXyqU3Ta7sX20GylS+j4qpZlQjF7l+8qcP+UmlhNWwamEFSaHuMLdfYMpLuKqgspk9G+FNPl1ppWUcPxMDQFpgqpteaXB4eyXLW7wH2TZdJewN1zK0a4kaXIlWMFDgypfMt21uaaPQU+f3RGtdFSJoNZC0OIJ5x9xXYI69vZtNXvIeCchhTO9xDAdlU38LTZRPF61ateTdNUAH2vdc5H45JLLunqnH+hfnhLF5A0dJqhliRaFDdiztrL0EJNT8hKFevOui73EaukacTg6VywWhDIGCC01+qvnONL0hYcGMowlE0wHtLWUQ7gUDaBZWgcGMpwcr5KMhwsIDKclWoCMGloNBw/nFKUqg2V0OlPJzrcyMsNl0BKauVmPOIf7WM0WRbptPyQmfL9ADdQfkhJS5mENlw/1tIkpaTSUlNsSzWbz9w9xe/9xGX0p01uGy8qMBSyQfmUwYHBDEt1h8t25bhjfImGF5AwNAxdi02CNSRJy0AINbQQTTlKwmxQTcWn9CUN7FDY33J9TENDuj5SCKVRBH79O/+XN3zv7wG47Sd/iRs+/bf89ZcfwfYCrtkTGrxKyY5ckplKCz9QLchECiAwSQABAABJREFU2BaO2NSEodFwfWVGKlWb0w87ajtyCfozFkcmyj1pjc4s1ZkttwikGoBYPb4+UkiSSRjs7ktTbNg0nQDP97E9ScP1lFZNUxOHUaUsnfEFh/d+9Tilposdarsmig2u29PHQDYBqFZcpeUigb60paY3o+vzHCf4VPD2OMdmquha50h+3XY5NlPl/95+lpbjb5436PidX7o1LUu9Y9GNQrejlo/jBQRIDo/mefUzDnQFNfsHM1y7tw97fEkB6NYKSziQsTA0wXV7uzMV0QL70EyF208VEUKFtkfZrkGoF3zp9bs78jH39qd506ePcGSihADmyvaa70TEDAGPa5zRdtg2nC8T1POxreejtlPsfz4irnoCYW9605t429veRiaT4U1vetOGf/vnf/7n57wxF+rxrW5gShAxNKBrGn64OK+ehuqlVrdLN/IwSycMLF2j0nJJWXo4PRrgB1FLTsTRKRtVgNKxBXTGQ0Wv00LNVoAyyGy5yvZAsUYeICmkTDQEpZbL1WN5vntikabjd+jBvEAiAsV2uKEvViGlNECDGYud+UTMbnz1wXmabghi5YquLJq4jJhBy9BJJwxKDTfW10nAlZDVNSV6ThhEq6MQgrRldIRx33JsjvmqjRO2NLPhQr9YtZmv2Fw2kqMvZbKrL6WijbwAP/DRhCBlKjYrbRnsHbQ4vdjAd1YmE/3wQOaSJoO5JAs1B9cPWKq7SkQfnl+BYo6+dN3z+KWjX+KLL/lVrnnH73G2Yq/VuwjBNXv6sE8thbYIEDhq2zUgaWpcsjPHI/O12PdDk+ocDmUsnnXxEHUn4NRiTYGDtuOzUqHWyPG568yyslQJGUDHU4BXifwdzhYbDGQSTC43MMOBhkAaLFZtWm5Ay3XYVUh2AKjZcksNPGhwYCCDl5A4vq/afKeWuGZ3PyOFJJWmS832KSQNDgxlYvuMqM5lcVTB2wqQrAaffWnVVj82W2VPf3pjxiL0qfMCuUHLsshFwxnun6rEi24Upl5puZxaqHN4tMA7X3LVGuf7qNqZiqWazVh/Gj3UikaTwhsxFYd35dmRSzC+UEcgqdnKmLiQUt/hYsPls/dM85abLo/f40v3z/LdE4vrAG+fg8MZjs9X+cqDc9x2aulxbVduh23DY8VQnQ+LiXOt1XrIw7vyHL7p8LaAp+2OuOrpqN9zzz24rhv/e7264KL/g12moZDA6i6jEQo5dU35Ma0Xyr1RbcSWtbcpo//OJ414ajRj6eETsvq970sQK6aQq18bfVbE1jRCWwHlYSbjiKPodRGoODCY4eRClYbtUbXVayxDI5fUMXWVa/jZe6cVoNEEQdiKjAX6QIAkYWgkTbXNCVNn/9DKU+FIPsntp5Zi00uNNr3cquNihlOVkRu5CL3CvEBZf7i+YvnMtgfc9jDuWsvn80dn8HzJjQcGONWmR4qsLDIJ5bV05Wgfzg6fh+eqVFteuO+ClGXQlzJ53bMP8o93TvDtk0the1ZiahrDeYvRvjRnlupI1HYmDdW6CyQknRZNK4nwJacHxnjHe/6ZV77g6liv1u0JvT9jcdlIngdmyqFFi7Le2JFLkE0a2F5AMsz2VF5dASlL58qxPoSmkbJUhJGhiQ21RoYmWKi22N2X4uG5KuWGGxuMRteEJGA4Y7Fcd+IBAVMTGLqg6Si2M7LjEELpY4/NVjA05d7/8Hx15ZiH35+HZso0HY8AyKcMLhrO0p82qbbcDk3auSyOj8xV4+DtbuAzmzAoN13ySYOZcnNdxiLSe23estzHdKm1ZtGdr9jsGUjz6mfsXxeARbWaqajbCvBcs2fzoYTTS3WWGy6X7swxsdzAC6/dputzuthgJN/JJgaB5F+PTmN7ATtyVkd6QeQbNVNuYRkaH/nuKfxAnpPVwnbWVpicbiapjyVDtd0WE+dSP2hRVT19u7/+9a93/feF+uEpgYrsCQSshgOG3uZuf47eYxu9ZPXvJMoLKpvQVdzO6r8RnX8LqtUZgSZNKL2S4wUqozI02bTdIBaXR20/ZQGhon/2D6dj7yNDU5YQLU+j3HRIGIoVmim3KKRMkqamBNmOj64LRvNJlhsOyw2XVriQDmYs9g9llSN8WL5U+jMNNbEZtO3OaqDq+UE4Yu0jhAJgKUu1VjOWxnJTudMnTS1+l6iV44fTmjPlVqwFGQi9cqKFXkiYKClzzNG+NNmkwVMzVqxZMnU1YXhmqcFIIcUHf+kGfvPmIxyZKDOST6gWWtLgnomSAjuGjiMCHF8BxBvP3sf7//mdvPmmX+eewzcynEtQMleMDNd7Qi/WHc4UG+gho3H5rjwJQ1OATBdkTJ2ZSouGE2AZGsO5RMdxbjo+GctgZyFJse6uqzXKpwzqdkDDdULQpeMHCjy2vABL1ygkTZxAcvXuArOVFpWmSgnw2oZOFqo2t44vsncwzWy5Rcv12d2f4oHpamwiGrEtEhWA/bzDO3nu5Tv4v7ed5fZTS8yUm1TbNGkR8H/qwaEtLo69PQg/9aJB7jqzzPG5KvmUtYZ96rCo6FIRSzdSSG7LonuubZ5qy6NYc1huOjheQCbRmctZsz36U1bMJp5eqodCfQ0voOMBBhSTvNxw0EJPvivHVsxeH0+3/V6Oz0bg47FkqM5Hy67XOp8B4+ernrgmKeexetUw/UcqXVNZb5HbfXR8JKhoGF0jkMG2e45FgChiIEAxVa7v03KV7qRme8ggUJOOIQshpQytGtT7BDLUkAkNTUj8QInePV85xUcTmCJkLDQUuIwsECxd4ysPzMValygVwPUDTE393WLVJhGK0IUQJE0RTr+51GwvzF2sADDWn2ZnPtHJDkvJfKUVTwBudh0uVO021k7iofY5OleWrinrDD/A0nWkVABjIGNRaTqM9ik2o9tCKqWa9qu1lOt+w/bIpZRFRfskWq214ixvGBqvfsYB3vlvx1SQuGkQSJdiXQWIJ0wdTRNUmi4vvf8W/uTf3ocVePzKnZ/jDVfcyKHhbIfeptsTupQyNuAUAoazSfYNpEEIduYlJ+Zr7BnJkE+bHJupcmA40+FtFj3ZXzVWQCK541QRzw8otjm+D6RNDF3jspEct40Xabk+Axml03J8FXtDaF7bdD1832SkkGKsL8VkqcnDMxU0odNnmDTC8Ou5is1cxVaLux9warGOBIYyiQ6X7r60yULV4f6pCr/6Iwe5dm8fnz86TTMM0E6GAfEzJXXeevVwiuqSnVmySYO6rSYyV7MeddsjmzR47uU7GCkk+eA3T3JycTkcqBCMFlLcdPUurhor8Jl7pnpqYR0czvYUvr1ZnUubJ5PQWW46tByljVzxuFMt5VLDYRmHTEJ9B6otDw3oT1ssN5yOawdC5tzxyVg6+wcza7o7j6fb/kbHpxfw8VgyVNvdsuulznfA+PmqnkDYS17ykp7f8DOf+cw5b8xjVRcA2NqKFvtomq3dET5iBqK223aC2AiACQgXK6X9cn1J1hLs7k/z0GwFiUAIGfs9Re2faFsCCaZQnJnrK11PX8qg3PJigBdl/kXAzQ9NQU1do9xSU4PD+QSGpsVeXJqAakuxW7qmjCu9QBIEAVU7FB9LyVSphesvM5SzuGgoy5ligx25FVZJPXU2mCnbSt8mCTMJFfCIWquReD5oOyftx8qXEnxooEAYQKXhkklELTYNQxMMZhO86OpdfPL2MzTDQYFo2EB5ninRtC5UjNId9WKHaDy6FtpbFfdPlfnsPVM0HJ9iQ/lZaShAuKsvqQwgXY83f/sT/Nfv/gMA/375M/mtF70JgWIhLt6R61jAVj+he0EQg7qM1amVihbAk2EbrG6rtpcutDVP9i990m5AWXicXKiFFhcKnC83XC4azvJjh0e47VQxvgZtd+WcSinxAokbqP/fdHwyCZ25SosA4gXf1LUwckw9rGQsA0MLqLRcEILlhkN/xlLXX3jtJk2N6XKT8cUa906UGM4lYlF63fZVlmd/CkMTHJko85NXj65ZNNbL5js4lOWGff1865HFrgxgIOHJ+wZoOj5fODpD2jK4bk8fhhB4Ug19fOHoDAeHem9h9Rq+3UudS+Zg9N1YrYaJfPTaK5c0SFo6uyxDJVSsOka1lqsi2MLJ1271RHPb7xV8vOWmy7dNF/VErPMdMH6+qicQViisfJGklHz2s5+lUChwww03AHDXXXdRKpW2BNYu1BOz9La2yeqKROPb+ZXVhHpqMkPLAzdQ1guWrrMjn8SVMn6ib7k+fmyRoLRqXhDEYCWQqh1nGRppS8Wl6EJw7b5+Sg2XABhfqGGHL4g8Kv0goGaraCVlwhnaDaC+vAlTp277YEjSlkml6eD4oQeSJsKYqICluo2mCV719CGm7pjg68fmcQPFptmuj5SSfMpULvRVGz9QbVRToTEEoU9XdGzo7m3mo3RxUqrEAiOcFkzoapw/Mvg8vCvPbaeWuH18iXLDxQ5BmuMHKksykOimzlifMiW9/VSRq3f3MVJIdrhg33hggM/dO8XNd02qVltfip35BIs1m7mqjd906UuZLMyXeedn/ozn3/cNAD74jJ/jL/7TKwgQ9FkG5aaHH0ZZRQvYag3JUk21lXbmk0orlenMUtxKG+z+qbI6rkKooHIpYosFhNIN9acthHRYqtlxNp+uidjfCqDYcDi5UGX/UIZKU5mtipC1bThqP7QQ+DqeapEGEpKGsvaYr9pq+CNsdaYTOk3H45G5Kifma1w0nCOT0DvawLmkQd32uy4am2leXvusi5iv2Iwv1uPtU981wWUjWV7zIwf4zD1TaxZtIGYbP3vPNC++bmzTFtaDM5Vta/+ci5anbq+cw3LTXROOnjZ1+tKW+v7SOcF35Wi+Qyepa8r09bq9eWwveEJZLWwETrcKPp5IAGQ767GaAt3u6ukq+uhHPxr/+7d/+7f5z//5P/OBD3wAXVc76/s+/+2//Tfy+fz52coLdd5qNavl+msBWDQhiVSgYDtF+ZGpqx+iO9Vy1Ng7kOINz70YieRvv32ahWqTqi0wNY2G68UtvchDKmUqTy0hlMGqFyjAcfHODL94414+/O1TzJSb6EKEWZzK10vTiL3K1ILZAkKApgmM0IIgQCIR7O1PcU9NTREmDA0RPkFL1FN2NqHz9WML1EIXes+XMajVQ33brr4UxYYT/84LLRzaj5Eh2pIP1jmmfgD9aYPffsFlKvYmZVJImR036JdcN8YtD81Rbrr0Z0zKTS/+vISpYxoaDSfgKQf6uXeizImFKk1HWWCM9aWQwCdvO8Mj81Wajq/aaTUbx5OxH5PjBUxMLPA3n/g9rp58CEczeMsL/jv/dNXzkJ7E1ECEbeb29mZU7RqSY7NVPvKdU+zKJ8l28YZa3QZbT3sSsQOeL3nOpcNrzEZPLNT5zolF+tMmA2mT+6YqeH7oLyUFScsgZaoWby5hULN9xsMYo5Sp4fpBrC2DFR+ylhuwK5dgqe5gu0H80KCZGoTXXiBhrmJzttiMF43VbWDovmj0qnl5y4sO8093TXDfVIWm45OydK4OzVrTlt7Top1NGBsC3cO78rztCw9uS/vnXLU8uVDrmDA0xhfra8LR9w4oi5HoeuuYxqw7XLIjhy8ltTA+bFcI7j9zz9QTxmphM3D6RAYf58psnks9EX3Keqktb81HPvIRvvOd78QADEDXdd70pjfx9Kc/nT/7sz/b1g28UFurKF+v1+omim+vaNoQIGFqMVvQSyUNDRXWLOPJxg2d8cMWox8K4D9262l+74WXs28wzcOzFTIJlbeYSxq4gcT3lRt9IWVRSKlF+Wyx0eEQfu3ePu44tcxEOAIfVcJUbTs/kLR7uHa0AH2JzwoolahptqSphzmO4Htqoc0mDK7b24+paXzv5CItL1Ch2kK1OoVQru5122O57jCYtpirtrnKrzomuq4R+MG6bFj0moSh8eBMlbdcv7vrzS1l6WQSBp4vqdm+GgoQgqSlk0uaaEIoBsHIcuP+AWYqLV79zAPogjiIN5c0IBx6mC0rkDqQSZBLGkpn5foseSYPD+5h7+IE//XFv8dte69u0/lBseGSCUXPTzkw2LGAtd+oL9mZ5aqxgnJqT+hdndrbF8D1tCcd7ICmkUuune6br9jsyCd5ZLZKwhBYupoo1HVBytCo2CoM+pIdWSZLTYZyFrNVm3LTwzJUTM5AxuLEfC0Wg+uaYKw/RbHuMFVqxj54UqrcyWxCeb9pQoSf2/uisRXNy0bi6PWmUtuvmWjRvmZP37rvM75Q25b2z6PR8uwfzNCftrhvsowuoC9lxmbDvh8wvlDn2ZcMd1xvq9nXCNg85cBgzKIKIZ4QVgu9gNMnKvh4LKcUo1Z/X8rk1FKNK3flEdrKd/7x9CnbrLZ8VjzP49ixY1x66aUdPz927BhBsE25ORfqnGu73eeFUAyOEQZIR3qxXiqyEwiCgIazuacXhBE3Qk0Q3j9V4V1ffgQ/CGh56n+acDFDcXwg1YJxaKcKB375jXup2l4sDu5LmfzlN05SrDuM9iUp1pXQPWJvAk2xX8j1W3/t2yyA8YU6UsJg1qLS9GNX9yfvH2Agk6BUtyk3XRKGaoPYbrCid9MV6zZXbZEI3eijMkK0G4FA348c2OnKhkUM4Ei40J2crzFdbnYIo4/NVfngN08ytdzE1BU7pAkVq6Ru1kqP1gxUGHUhrbRLuwpJ/uXIdBzEu1x3CKQ6ZlGLtun6pC0dUxMMZS1m/YD/9YL/xvue+p+ZGRiJKVNDFxgCbF+17kbynb5P3W7U/WkT2/PXdWrvZQHslR145qEhHpmtUqy7aOFQCsCygHzC5MBQhlTCwNQ1Xvfsi8gnzvLgTIWD4UBAJYyA8gI1KTuYSZBPmuwdzCivsBAQ9KdNTF1TyQymzkVDWearLXbmkpwpNnpiXNqBJSiz1/b25WrQsx5A3a5Fe7sYmEev5VFscisIkI5PJBgVgjjFYnVtNsH3RLBa6BWc/t5PXLai31snYuqxBh+P5ZRi+z2kWHOYrbSYr9hcujNLNkwFiVjOxwo8b6W2DMJe/epX85rXvIaTJ0/ylKc8BYDbb7+dP/3TP+XVr371tm/ghXp8K5oeVIyWCuA2tLWi8W5Vt5XWItiir5gXKDbM9T1uPbnI3oE02YQeCsolji9pOKodmEuaoWdWwCfvOMt8pUW56aEJxfxYhsY1u/uo2R6nFuvxguAHK35h0eTkRiWAuuNRd1TgdbnpxB5hjh9wx+kih3fl49ZmNhFmT4YtUilXJhJdX9JyO9u0kfFpfAzagGH7LUOijr+mCYwQAB2fr/HaT3yf5aYbT7n1p5X2TBIGfIeh3Q3XptxyMQ2NhKHH7I0ZMjIJU6PSdDsWRTNkNB0vwDR0CO0/Xvjdf+Zpx+/kLS/7Q5Kmjk2C4o4xhB+gCzV8YHsBNoqhzSZMfvaGvfHNd70b9Yn5KtOlphK8R5Mg7QegrdZrd/QKNDKhKDtibNXJVi1txErElgKHFq9+5gH+4pbjKoBeKAuPlKmxULUppMx4kCBt6aQtdc1qmhYa10oGMhY7ckksQzBX8XjxdYNUH/B6Ylwi0NMyfR6eq3RkUOZTBvsGMx16u/WqYyp1k0V7IzbjiQDmTi/VmSg2sQwNz1EPCe0KfcvQOFtsdAVwm03wPZ5WC9A7OD273IiTAx7Ng8t21WM5pdh+D8klDUYLSVKWxsmFOneeVkbMuibIhvKFJ2JtGYT9n//zfxgZGeFd73oXMzMzAOzatYvf/M3f5Dd+4ze2fQP/o9cG689jVhKlP5Iod/hevjcaapIvWNXu28pnylCnNZS1qNkelZYXTxGqbVI5gXefXSabMGi5Xhym3HICao5LwlCL576BNANpi0YYGO72aBPRvj1BILFDS4hAQkJXACWQSut01+kihbSpgr3bbAksQ9AMUwbap04jAXH0/lHrt7392a09rIVjX8PZBHOVFmeLDUxNOaInUsq2YrLYQCK4YV9fHECeTyqdU8PxqTQdhrJJGo5quUU6qat395FPmR2LYi5hkLaUc7+pgyZ93vzlD/OqOz4HwDO+/xW+cv3zadgelqVj+2E8FSvXr6ELckmTkUISWP9GnUnoSivnS3YVElwyksP1ZYdTe3QDf3Cmsm5I9eFd+U2n+64aK3Dr+CKuH5ANdV9auHBZhobj+ZxarJFLGHHIr6aJzlZWRcUiRcDb1LUYaAcSCkmTS0bypMKg7rmKanFF06nfO7HETVfv4t6J0grjYmjsG0zzzENDpC091jjlkgauH3B0sowfBB3+Y8W6Q7npMVpIbgp62uN+Nlq0NxPd/9qPXsSObKKDGYwA0Ebtn9XAWckM1gdzDVsNdEyVGmuAULnphoAdduWTKmFBKsbX0KBqe0yXmiozdYNtWA9cPR5WC1FtBZzq2qpR0Mdx4dgKs7l/MHPOIDe6h0wuN3D9gMnlZjw9b3tqEKOQMrl6dwFT05guNfmLW44/4bzCtgzCNE3jt37rt/it3/otKhXliXRBkH/+SgsX6scLgAErrEC4Hb00nQOUBURwDg860UuifZ4sNlhuuDFgie43XiCp2S5RWy0I1GRh2jLQhaDl+dhuwL0TJQIpKaQtJpabuG391K0cV1+qm7qUEFsgScXyJAzVaqq1PPIps8OnKZcwqdt+HASuhQMOq9u6awBXG0iLStdFHKtzyc4s3zmxCFKyM59E09TN2tAVCHS8gIfnajxl/wD1lsdyw0UL31dNi9nkEoaKU1qox8zL6kxAhGDfgPIcM5p13vXPf8ZzHrkNgHf/6Cv49GXPxrQ9HF9iNzvZCjWQoEDvdKnJdLnJNXv61r1RV1sKbOdTJlVbmdQOZlcmJKMb+FcenOWj3zvN+EKtzU5EcLZY56HZCm+56fCmBpVPPTjAB745zlJdXUNxy1YT2GHrdWq5ybV7+jqYhG4MSd32+Mw9UzGQsgxlrwKSsf4Uyw2XU4v10LxVx/Ul/UmLM8UGXzg6w39/ziGyCYN7J0p858Qic5UWn7pjgs/cMxUzT5ftzGF7PvWWy3AuoYZJPGVEnEsYLFRtnIzF3v50bxf0Bou2lLLrBGXEZhydLPG7n70PS9eYKbeYLDUZzFhcvCNH0tTX1U51ZdbCxIDp0loH/2LN5p6JEoYu+LvvnlmjK6o01dRv2tTRNA1rVffR0tXkcKUNhP2gOKr3zOYmdP7v7Wc3jJh6LP2xegWP906U+MRtZ875PJxeqnPv2RLFmoMnZXjfh4Wag+NJjNBP0dA1skmTQ0njCekVdk5KPc/z+MY3vsHJkyf5xV/8RQCmp6fJ5/Nks09Myu8HtQKp2BRnu8VeW9kG6Lhhrxe6vboMQ+D5hJOFvVc7gwIwXbZj4Cfo1L0FgXp/3/GxXZ90Qidp6uhtWpCm43P3mVLcDnw05XjqZiElMeshA6X7SZk6QsCh4QzHZmuxB5EQK+78UiogFXQ5n6tZuQj8CglSKB1YNmEwmLUYLaQ4vdRQi3naigEYEPuoWYbKl1ysqeNXDcORo89oeQHDOR0JHVqXIJBrWKTd/Sma41X+6OO/y+G5cWzd5Lde9Ot86aofpS9pdgS6r96faFe9QPKVB+f48cMj696oXV9ZZ6QSulpMVvW9U5bObNnnk7ef5f6pCq7vI9qulgaS+6cq/M23xnn3z127wlrN1TizpHRfFw1neNXT9+MFChh6gSSXNLA8Fb7uB8qs1ZeKGXpxFw1QN4bkitHCGmD2vq+d4PhclWLdwfb8mIlMmQaXjuToS5ucmK/xuXum+enrRvn3+2dXmCerk3l66fVjJAw1nDJTaa0BURnLUO235UZPQviNFu2/+97pOLZIQEekkusHFGsODdfnSfsGGM4nOTFXZanucOeZIgcGM7FNSvtxW1cnNFVW2kFNdADm2XKLo5MlAC4bKTBSSK3RFeVTJglDU8fW0lmNJlUAvB5Pnm63Vul8Tv/1GjcExMdtvYipcwmCP9f96gU8un7AzXdNKo/BczwP5abLdLmJFwRxTqrKvpUkDQ03UDnHjhfpa7fHK2y7z/mWQdiZM2d4wQtewNmzZ7Ftm+c///nkcjne+c53Yts2H/jAB855Yy6UqtUtqccTgD2a8gOVbaiE9Vvbh43+Wg8jitpbe+rnyiLA9uwwV3BlktML8/0ebUlJbGyZTxromhazMJqQLNVdnnZwCBCML9bV4hUyNZauYod2ZhM8PF/fFJj2pU28AC4azrDcdKjbPoMZi2zCJJCSfNJEF4KEocUTYaCAgwiFyb7n88h8DdtVrTbTVNvr+hIzBI4vv3Efzz+8M76RdAvivWjqEd78V/+dwfIiS+kCr3vpW7h77HKSqKdNr8tQzur90wSMz9c4vVQnk9AJpGSm1KCQtlQAdmh+qodMVKRVa6+orfvAVBnb9cMEhRVvKC/0ZPveyUXGF2sKVErJ333vNFXbxQ8kc5UWn7lnigOD6TCMXt2s1TFUYu5UUgdUoPdwm4HtVuqK0QKvf84h3nfLcR6eq4X2KArwjeSTyodMqkXr7jNFJot1ig13XR3NF47OYHt+VzmACI+v429NCL/eon1yoY4fSNKm0aE/07ToHKiUCVODwWyCwYwVh3YfHM7yez9xWYdjfi86obG+FP0Zk5MLdWbLPlPlJglD49o2E+HVuqJfvHEPo4UUM2HLsb1F23A8TE155xVS5rZrlc43o9ZrIHbd9rfVouLR7lcv4DG6ji/emTvn81BputieYkEj8K0eQCUi1IJ5gYxB2Lkci+0+Nt1qyyDsjW98IzfccANHjhxhcHAw/vmLX/xifvVXf/WcNuJCddYTEXJF2Yyb4cEONidsa/Qi4t+oVn+kErmv+JdFbVI/kGooT8q2p58VwBYtVI8K0wrwQsCjaxqW0c64qWzDa/f2sXcozftuOc5s2Q0d9lUAd9I0mK0665rhtn0MCEHS1BgppLh4Z47jc1X2D2V5+kUDfO/EEsfmqnhSMl9zSJk6uYShvL90pWmq2y6BVBOZAuULJgHXC8gmNCxDZ75qc9v4Es8/vLNjW1ZPh43PV0k3qpwc3stv/NLbeTA5iA44gUSG2ZablR9IGq7PvRMljk6WmC43qTQ9MpZOIW1ycChLX9oknzSYLjUZ7UspcBYdn/AGnksZ1GyVhGAa2kr2ZvjfgetTbrocm63ScgPe97UTyng2ZZJNmhhCcN9kmTtOFWl5PkEglSeYCDNH/QDfluEUrrHGv6tb3T9VjvVpdcdDjyYiDZ3FaksBdSQNR+L6GrVWnUfmavhSoqFYyRMLNYayCYayiQ6T2ugJfqrcYLGmEhfGCinccOglMjsuNhyWGysRPetVL+2iSP94dLIUt3r8QFJqODQcpbextYBH5mtcpmn0ZywKKYtDOzTmq601bFwvOqFiw+H1zz2EJsSGfnHtjAbAtXv7sD3FrlRbPs1wWGEgbWHoguv29sfao61MYW7EeHRj1Bq2x52nijw4XeGXn3Gg48HmXKuXKc3xhdq2WVRsB1O4GXhMmBp+oDPal35U1ib5lElCV+bTyfCeHD2ABlIBf12w6h597nYd52vic8tb8u1vf5vvfe97WFank/X+/fuZmpra8gZcqB+MioT5m1UHkAi1QI+mBbjaOiIS7IPSGrVXN7JNypU2oFilXY2+mr1iRE0o77OWp4Tcpt7+hBdQabrsG8xQrNu8+6vHlZDd0EkKlUdnewFLNVu1KNv2p/394+2UimEaLKiQbCEEo31pxhdqzFaUyeeBwQyTyw1qLY8WqpU3kLZIhH5U1aYbD4oZuhog8MIw83xK2VE0HI+jU+WuN7xI+zS+WOM9KZM//K//h+T11zJMgsyZZVKmjq6prMim63c9Zu2gPBwQjNsQh4ZznFio0nJ8Fqo29ZbHRTuyGCFjaOiCWsvDkypOZrnpMlpIsX8ow7ePLyh39C6fp2sCxw+Yq7T48gNzHJkoIYC5sh1PEu4fSPP9s7UwfUHQ9Px4QxVQBd8QHBjKUtgEhN0/VebtX3iQ8YU6jufTcqNEAnVOB7MWpqY0in4Apq7YsEbYBtQ1SBg6ApVDev9UmSvHCh1ALGXpYUTWyjGNbE/U9Sd7TrLopV2USxqUGg7llstQ1iIIJMsNB8/v/Las3t71mIatiMwLKZOG7WF7AclNAsTrth8v+MW6w+5+pQf1wwimdl3aVrZhI8bj8K78GkatWHc4tVij0nQ5vdTgrZ9/gNvGl3jpkx49K7bZlGavbcvNLCq2kyncCDxeNZbvKRx+M7aqkDIZ7UsxXW61xU9FHREfQ1OB7BEIezReYedz4nPLICwIAnx/7Q13cnKSXC631be7UD8gdS4wytAFTffcAZilC/YMpDi92OjKXvWM7cK/MzRoX0NW2z9sVglDY0c+yXSpiesFKtjcUAL4StMlZem84KqdvPurxynWnHgRddriljxfMS1ayCwSDaYJdbw8byUXM23p7B9a+cInTTXhM5CxuGZPHwI4OJTlgZlK2HoVlFsu2UDdwNIJPQRzPn44FKCeAk0ShmoHglp0qy2v88lflxz40z9Ae9nL0A5eQbnpIp7ydOoCmnUnDlI3dZ1MQlJ3uoMwuerf5ZZLLmnEbYiUpceLV7nlcWKhxo8fHuHavX3c8tA83z9TpBbejLNJg4NDGfpTehzxpEFsAwIrNiACODZT4ZsPzyNRN2xT11YmCRtu7PgftDGrsGJZ4vmSwYy14Q07CCQf+tY4x2aqioH1g/hBQaLeWw2VqPOaCkX5pYarQL2p0XKD8PyqiKyG43NqsU5/emXasOn46JpGX8pUQvMuuZApS6cvtRLRs15ttmifXKhi+wFLYarDbHnFVNjQBW54fDVN5Y62b+96TEOvOqFP3HaGhapNueEysdyg1nK5ZCTPwKr4qtXJCe0Lft31u3p69Sp0ny234gW3G+Px0uvHOhi1Yt3h/qlyOHRh0B/6wd15pshUaXs8sTaa0uy1bbkZONju7MXDu/Ikb9zLI3M1QHLJzhwHh7KcXqr3HA6/Ue0fzCgWdHwpzl71AxnLMyLJRtrUqbW8R2W0ez5zKbcMwn7sx36M97znPXzoQx+KN6BWq/EHf/AHvPCFL9zq212ox7gM0Z0x2kqtFpB3Kw1wHgUA0wVcNpJjIJtgrmxT7yL83goGMzRwu2Qutf/nZv5nIvR/+vmn7OH7p5fDJzDVgtw3mOFXnnWA7zyyyHLDJZMwYs2CL2Ucs6RpQrEfQsMNgtAMl5A+XwGGGcvg2t19HYvPYs3B9lVuYqnhxoHcCUOjEQTKFd9XYGrfQJoXXz/Gvz8wy/hCnYShYxlayN6pm0jEUCoRdJPP3TPFfVNlqJR5y8f+EPHQHbj/+Gnq3/w+xbrDTLlJreXj+cqYtGZ7DGascBBCdIj+16tayyOTMOMb2UDGoj/dr6Yimy4N1+dlT91Lyw34/JFpBtIqED2bVAzHifkad55eDrcfmoFikqIgbS9s0RmG4KsPzVO11fGptLy4XVtImSyGWZHRGEikRYsQsPKRk7GVyXo1vljj+2eK6n2iwQsh8IQyqQ3aQCFCqFiwSJMXDq6YoSg9bRlUbY+UqVNuulRtj1zSjJ/gLxrOMFdpoQmN2XKTYsOJfcIGMxY78ykksmeLim6L9smFKgtVG8vQ4pZqzfFpOn442atanxJAqjZ72jIoN10qLZe5it2Vadg/mOHQcJY7zxQZzSexwvY5QsTAL7IIGe1LsyufpNJy1cSnX+LKsZXvQjdGoxdPr14Yo8i2ZCPG4wtHZ2g5PqmCirU6tVjD9nzySTP0BJS03IDRfJJi3dm2abyN2qPdmKdASkYLSW66eheHd23uYLCd8UebMYnbwdx1RFDVbMb60+jhg/ZsuUE9jFk7vdR41Ea75zMa6px8wl7wghdw+PBhWq0Wv/iLv8jx48cZGhriU5/61JY34EI9ttUrADNE52RbO/CKwEr039HvBJAwwPVXgsC3QqFF8MA01LzbyYUaE2EM0aPBjRIFCjfad0ODpxwYZGq5wdlis1PwD+wbyrBvMEOl6TBbtvmTl1xFqeF2ONSfXW7wse+dQaAmd9xwGKDdYiQIJGlL58BQhrNhKzEGflJpGExD42kHB2IxsvqVZLbcJGHoGJrg/qkyrfDJW9dMkNBwlI9aX9rkKQcGeOrBQaZLLSaKTVzfD7VCK4xRw/HQhGCskOSj3z3N+GKdncUZ3vOJ/8lFC2domkne/5L/Qd9ci9my0jXlkiamrsxNK02VTpBPmSTNlUGIbodZEyrfUwIz5Sajfcn45hvlJmYSBqdDQ91/OTLNcsONI2SA0AvLpRomErRcJdL3AjV4oesCgUQKQcJQtzYzZMls1+9o16Ytg7qtGJ7+tInjKx1hxIiZukbKVAa9Gz3dPjJXpdbySFsKOIlQVxaJ/LUQ0GlaFMm1Ejjveiqsvi+pwMVIPomz3KTp+gQBtBw1+Rk9wb/q6fv5zD1T3D6+RCCD0I8sADT8IGCx1uKpB4d6arV0bRcZWthKlUjXp+F4NF2VlBF13k1do5DUKTaUMXAgJYZQU2njC3X2DKS7Mg0PTJc5u1Tn7FKD8YU6aUunL20yWkjFgD6bMDqE2peN5LnPK1FuuDwyV+WGff203GBdRiNiiyKwct9UuQOs9MIYPfXgAJ+8/eyGjMd0uRmb+AZSrgp1J8yKlTTcgFzS4Pjco5vGg94E4REQ/cqDc/zr0Wlmyi1myi0+eftZbjtV3FQ8HjGFDVvdR9rTGIQQPTNUvWintoO5i/a5gwW11bF52kXD/PR1o2QTxrZMMZ7PaKgtv2LPnj0cOXKEf/iHf+DIkSPUajVe85rX8LKXvYxUKrXlDbhQT7zShVow2lmhdsClRT2csAxdhNqaCJzJ0DRva58rIJ6acwOJ4wZd25Dd9FSblbMRw4VioY5MLNNy18Yr+cBMqcmOfJKdhSSzpSYf+94ZnnP5DtIJg7H+FJqmMhgbjkfT8TpAansFqAk2XVcLVwfY09W0oiZgstQkYRprbk4JU+f4fI2W51NImdhewHJDhRYrZkXiBQH3T5eZLre46epdPDRb4diMsknIhkL3uu0RSLh0JEO5pUTs10w9xLs/9VYGasss5Af5H7/4Vu7fcYj+204jUQv+Uq0Vt3Q1jbi1Npi1MHUtjNKRHeazSVPDNDQGMhbVMEKkGnqBtdd6jv1AG+MQ0J9RpruGJqjZ3ooFhq9E7klLcNlIVjGAptJSGbo6NlVb5T4mdBFPlGYTapGJpliFUEMWA5kEGgpQjy/UFNvTdDuC0qOr0fECHF8ipTo4kf5NiJUz7K26mKNhkkrLVdYjuQT5tMUjsxWWmy7zVZtCOugUYS/W+dw9U9RaajBBhJ9da3lkkwbX7Cn0vNCsZo+OTCzznq8eD3V1yuMu2maJAtKuH6DryhYiYYgYhARIDo/mefUzDqxZ6P/53ine9eWHWW646oFNSmq2R8PxWK67XLunDz+Q7O7vFGr3Zyyu2t3HsdkKyw2HY7NV+tLmhozGZmBlM6G7H8hNGQ9NCHbkE2rYI23iBxIjPOa267NYt9GE4OHZijJWFnDvROmcQdhWBOEPzlTiVupoF5uTjVqjKofT5LbxohpgCog1lAcGMyzVnU0Zql61U2+56fJti4V6LJINtkt31622BMJc1+Wyyy7j85//PC972ct42ctetuUPvFBP/Io0Mt1KohaTqI3mBSvu8xFoWy2Y7/lzgZqtWC8lVtZid/rV2xB1jh5tRZsaAPUNkFrTC7jz1BJ9aYuW63N0usy/PzAbAkeDy0ZyGLrSk7ibKP29QPLwbBXXlyTClpSmKWPJjKmRTBhICdOlZhi4DQcG07zw6l185cF5vvJQjb4QwFRbESOhAKsAinWXpGnTcHyOTJT5vRdezoe/fYrvnynGzuHZpMGT9w3wY1fs5K3/+gDPu+/r/PE/v4uE53Js1yF+6xVvpza4A69qc3a5FftbRa1d1f7TcH0fkLzwyl089eAgH/72SR6YrpCyVItSF0pDlDR0LtmZ4+RCjdmyje35VJp0+FNFN7LVjv1qP72YcTA0QSA9NRWoa2hyJRpLE4KUaWDpyisubWl4gTpGyoRVhZjbrk/KUre/ctNVU5O6wA8Uo5i0VBZjteXyyVvPML5YZ7rcxPYCErrGaF+Ka/f28ZQDAyQMLc7X1IRiTJAy9tfTxQobutIMXhnAcLwAxwjIWgYI1aK9ft8AL3/q3hjsaZoykr3loTlcX6KH9hbxNRwC4q89NM9PXj0a/32vC1MgJV9/eAHbCyikTEpNN54mjr5/QbitxbpLX8rkitE8ui44tVDn8l15/suzD9J0AsYXavFnHZ0s8a4vPxxrJE1dJRFUWh4aSveYMlQ7tptQuz9j8ZT9AxybrfKKp+3j+n396+5Hr2Blo0W710nDn7x6lJvvnmS61IwfUFxf6Q0B+jJmHFtVsz1uvmuSS3bmttwK6wA1wypiqtxwMA2NQ8MZTrQZsQKb/u3Nd02SNDXqtr/mmnhwpsJ81VYZsYL4gW2xajNfsblsJLcpQ7UV7dTjHQvVrdb7zmyX7q5bbQmEmaZJq9Xa8odcqB+sCh/iQ02LAiiGBhoCHyWYd/2VtsrqKcNzHYZsv3yDAHwRYGgiFjW3v+25fEY3LdtW3saXUG44K23NwEfTBEs1m2+fsEno2roTP+2lbCMCTEPgeIo5FFK1b5dbHjkJth7g+AHLdRcvCJiv2kyWWorultB0ldi+6SgnfikVQ2npyges3PCwnYB7zi7z8qfu5T0/dy3jizUemasCgkM7MozP1/nQt8dZrNg8/75vkvBcvnLoKbzxJ3+TlkihLTfi7fWCIE4J8CQEXgSeDFxfslhzYpuLt/7rA2r7fOVaPZCxODiUpT9j0XR8Fio2d59dVixBWBqwqy/FlWN5Kk0VN9W+EEYmrpEHlO2pa0MZdQaghSPpmtrWuWqLfMqgWHcYSFtUbRc7bLU5no+hazzz0AASuP1UESecXIz0VfsHM0oYbvvYnq9cuQPlSWR7PmeLDUoNh2MzFQxddEwtCpRPUXSRRkL96N+6BqamzCRl+AvH9ZmrNqm2fAazCV79jP1rFmylP1vG0gXD2bURPeWmy51niowv1mi5wabtq3bWqNxwOb1UxwsCSg2XQCqBcyAVuPOClVazRHLZSA7LUMC5kDbxgoC3ff6hjs96yXVj/N33TlNquAxkLUxdx3Z9quFUqOtLWn7AHWeWGcwmaDqqZV5teR2tsKYbUEibXL+vf102abum13plPJ5/eCdj/Sn+6a4JvvzgHMsNFz9QAzdDmYSygwkHNUYKSVquf07asAjUpC2duydKa/JCR/LJGNQAG/5t1jL40oOz3DdVRhOi68Sn50tuPDDAqaV6/HozjGDbmU9uqi3bqnZqO2Khtsu76/6pMv901wT3TVVoOsr896qxPD/zpD09saiPmU/Yr/3ar/HOd76TD3/4wxjGORnuX6gfkGrXUHmBWlwUTb0yDm8ISFoGnh/QClHZuRJUctW/1cDdNtBddD7RP5pqPyYSxXL4rFhKGJtjMEABVtdXxzGha3FLt+UHLNYdTE1lLQohySYMHD9gutwi21LtykgTFQEwQ1cATAi1oylL+RZNLDco1R204SyHduQ4tCPH/VNl3v+1k3zzkXlqLY9ACP7HTb/BL479Gx+94acINB0hO/c1CCBhGgiUdsoL7RdyCY2WJxlfrPHvD8wgUDf8ctNVZqR0LmKLNZuUpa+I+CUhqPKxF+t8+FvjpCydYt1hutzkhn39aJoWC+e9cPIzCCSujPZdQ5cSF2UL0XIDlmoOh3fladh+2Lq1cE2fphswEIKs1z77IgBars90qUnSVOPsCUNjodqiZntkEiqv0ZOSvrQVhsVLmq5H3faYrSitXDah0/IC3ECG7VrZ0TaPGERNW7HVMDSBDP/DCyQzZZunXzS07g39kbkatdDCoVtETyahjvstD81z15lllmo2+ZTKE/UDODpRihkhoIM1Suoak8tNWiimMGmqa0kXaqE0A0HT9UkYGqamMVe16UsHjPWlmKu0mC611rBPj8xVWajYGJqGoWnYrk8xbJ0bmkAz1PlUnm+C+90SpqbFU266JsgnDQxdbKp12woD03D8DRftXhmPiMl52sFB/uobJzkxX1NTuGGqQMPxSJg6B4ayWLp2TtNz1ZZHse5QqquhnNV5ofWWR1/Y5gfW/dv5SouzrmK4LhrKsKsvvWric3e8v9mkoaQDthenJAgJxYaz6fafT+1Ut9ou7677p8q8/fMPMr5Yj6fGASaKDY7NVHnLiw5vyqKea235SNx5553ccsstfPnLX+aqq64ik+n8YnzmM5855425UE/sioT6QTjRpQsFyjw/wO3imN6NeTqX2q732e7yJbS8zonA5kbis1UV+Y4htPiLL0Jg4fqKselLW+pYhz5HKVOLw6UPDKUpT7gYhppYi4xZEYTtMWUd8dffOskbTT0U7c7yt989zezJSV5+5xf50FNfio+gaSX526e8ON621cc7QOL5QUd7uOlKpsvKKHai2OD/fOkRyk1lx5AItW2WrrFUs6k0XPqzFnVbeTddNVpgrmqzVLOZqbTQNWXdMF1uYejKv8z1Jct1hyvH+tiZT5AyNRaqNslQ4I8MzVlDgboCatBwAuq2sgxROirF9NQdn3zK4JmHhjv8m150zSgf/OZJTi7W8HyJoSs2LGXpjOSTPDRTJW0ZtFyfxZoThwR7Usbmv1IGGJpGIP1Yo6ZpgoylNI6OF8STpC0vwA9biklD0HQVsPy5J+/mlU87sMENvbdvwW0nl5irtvB8yVSp1QFomq7PzXdNAnSwRhKJZWhkMVj21FSvJlQbRkpwQ0bkuj391GyPVzxtH9fu7eOTt51hqtTsyj4dmSixVLdjUFK1FXg2dRF+JhAIkoaOFbbyNaCQtkgldGwvYLrUJGXpm2rdemVgjkyU+Lf2aKh1Fu1eGQ9NE/z4lbtoOD5/+m/H8KWkFgZqD2Ys9g9lGchYYVLD1qfnMgmd5YZD0/XD6VB1DExdUEiZFOsOss2gt9vfGlrofReo1I58ylQRaG0s4eePznQeP6EeAqPyA8lc1d50+8+Hdmq9FuFW2c+N3udD3zrJsdkqhi7WpC4cm63GMWhRa3I7Q923DML6+vp46Utfum0bcKF+8EoxQIJkQvmvBF0AGDyxwNN2sGDdqn0f5VY/R4LtSwLpg5Qdr5coZm2+ascCchnG6/SlDOXjVHNiawjPU5qwSHcUCKWB0gScnKvxOzcfZShr8cB0hYGp03zsH/6AA8szaALe95Sf2XQfkcRM56pdoOH65ISuAtSlWvC10O3f8VS7rOH6ZP2AwUyCXNLgnsmS8gZrqkQBK/Tw8gNJIW0ykLEoN5QJ7ANTZZZqSfrSVghwJOVQU9RyPDwZpSdErtnKjqTccNk3mGasL4kfSEYKSV73oxfx44dHOpzPv3B0hrSlc+mOnGoNI6i0HGYqNoWUGbZ9PZZqzhpjXy00BnV8ief79GeUaN3zJbYfYGqCoWySYsOh5vg0XB/Hk/E5tQwFngtpkx+5eHhDoHHJzhzZpEoLGDC06MyElhcBpVD/M1Nustz08INVzEnDQdc0bju1RCbUvEULVy5hkE8ZLFR9TF1dU9H/Iv3njlySgYyF4wekE0YHW9SNfRopJJkuN0mZGjXbw/FU+z5u3UZeTmk13asJwVDWwvYkNVtFUo32pTB0wZGJcqx161a9MDCWIfjO8Y3tJ6JFe6uMxzV7+rh4ZxZTV4kV7VOF0ec/GgZIHa/YNg6i/+7hb91w8leP9Irtf9s28SnC7Xw0DNZ2a6c2ajWmLX1b2M+kqfH9M8togthmBBTQzSdNSg0nbvMf2rG5F2oQqCGiXmvLV8RHP/rRrb7kQv0Q1GpA5QYBth3EInnkWuf57cI9TxQg160ezT77IbWoKzU3chWCEyHLGEgFMEw98iDykUIwlLGYq9hxRNNqzVzgq9cUGy6niw2khKeePcpff/Yd9LVqTOZ38KUDT950O1cnDXSrphfQ9AJySRNDE1RaLklT58rRbOy3VayrFt98pYXtB1ih1sTQ1Ph7dCyrTY+GHYq1TY2BrMVFwxne8LyLaTo+H/zWONOlWZzweBmaypjUhNIqBiFrs9x0OH28TtPxMXSlH7tjvMie/nQcVH7z3ZNMLjdwPJ9Sw8MLW2VpS8P1AqZLLRzfp9L0uh4Dt+2cKeAs6UsbgCArA+YrNpomuHQkx60ni4CKUdFDMBIZq16/p5+DQxs/XR8cynLDvgG+9cgCpYZDJmHiBwHlpoftquOX1QRnig0Shs5AxlqzoCgvrxY788lO/aIQHBzKUm+p6d5ACHJJI87xtAyNfFLn1vElEobGR79zCjeQzJSaXL3HINtlKRnOJkiGMVpIqUB8O5CQKkprd1+a43NVEuHwhuurazxpKiay7vibxgn1wsDsG8wwH4WS92C4uRXGY/9ghot35tTn79i+6bm67dOfsljG6cmgN/rbctPBMpSpse2pEOuo1b56Sjdpajiu8tQ6tVjjitE8mrbS697q9m+XdmqzVuMLrhzpif28d6LEv2/Afl6/rz9u83e7LqI2/yNzm4OwKL7s7hPTPe0jbAGEBUHAn/3Zn/Ev//IvOI7Dc5/7XP7gD/7ggi3Ff5BavQB1kCJtU1qrdV0Xam1F5qyghOASZXq5+ni1R0UFUi3wAjA0xU6MDaRZajicLTa62omo91BtTSnhpfd9lXf8+/uxAo+7Ry/ltS95C4uZ/k23N2IuNio/kLQcn0zol5S2DCpNpfUZzKp2zGLNZjk0GO1Pm1SaquUoxAqYFRC3qxw/oOVKhnMJpstqIOiq3X284bmH+O6JRSpNV4V861rcNlOMmGLhIv2argmEhPmqzRfum+Gh2QpvuekwaUvn3rMl5sot6q7fceCqtjrWxZqN66+1LVld0fGJFjwhVEs1mzSxdA1L00iaOq6vsiqj/TU0MHTlmbVZaZrgtc86yHy1xfhCjaWarQA5ShM4kDTZmU/y0GxFTTL6AYk2kaIQSjdYs1W25WrWI7KEODJZUjFSjo+la8rzyvZ4sOogBAznEvSnLdwg4ORCjaOTZRWyvdrV3g0YLaQIpGSuYndQxhIFxlKmhhcE8XVwfF4NFUQt1Olyk+FMguWWy7HZCnXb4zP3THVlNDZjYJ5xaJC/34a4nPXOzfmYnsslDQayFoPZBLOVZofYvptB70DWImFojC/WFXMbxlkJQWgromO2ZSkW605sidLyAop1h/mqzWUjeUYKyXPe/kerneql1fjdE+qBYENfM0PjOyc2Zj9vHy/2eDY2vgu0x5e5zXqP77kFEPbHf/zH/OEf/iHPe97zSKVSvPe972V+fp6PfOQjPX/YhfrhrI0uTQGxizGsjOVv9rof5tI1gRE2vjQBARqaUDYLQDyF5nXpbWpCtSkTps7Ds5U4j3C9UhYIHm/+1if5tVv/EYDPX/Yj/MYL/we2mVj/hUDSELRC4CdZm+MJnaHofiiyjzRsK2aiYTtIF2Fr0uPskhu3T7tv90o77PSi8vt6z1eP87pnX0TS1GJxP2Er0A2UR5hlCEBNTE4tt0iYGpmEGbfk6rbLsRml8Xjl0/ZxplinGoISQxPx9RkZwEp6s0IxdRFGUykPrIShM5ix2DuYYbbcYqnhcv3ePmYrLYp1J2bcBjIWI/lkT6JnUIvbj1w8xLHpckdUlJSq3born+TEQg3XC6i2XBLZlbYlqAGIlKWzfzDDTLm5hjXqS5uM9aU4vCuH4wfcN1nB95X+zTQEhaSJ6wc8OFPhirE8I/kEM6UWpxaqGFoOz5eYhkbWUpOT1+7pY7Fmc2apju0Rn3Ndg6ShEwCz5Ra254eTojI+Xw1HTaGeXqxj6hrv+9oJ6qGp60XDua56ro0YmLSl89ktxOVEjFs3f7huYOJ8TM+1M3zX7emjFk6WmrpGxtJ4cKbKgaEsgZTsH1A+X/dNljF01doVqAna5aarvPmSpkoqgDBuSZnhDueSXLdHXZ/HZqs8MF1mqWYzkLXOefsfjXaql0GLuUqThK5xx+n1fc32DaaZC9lPIPQxXAFruwoppksNkqa+ps2vSn2fs0mDS3auz4K1x5fpGrH9TS/V819+/OMf56/+6q/4L//lvwDw1a9+lZtuuokPf/jDHdTlhbpQsMJoSJSvWPwQ/DghryeCPk0TajssQ6MvrUKRW65iGwKUxUCw2cIfit0tXU2oVUMDTEH3IPIAuHTuDK+9/WYA3v+0n+NdP/IypNj8O+sFYEaBuJ5cF4AhQEhImxoNx4t1VBFLFbUzxvpSnC02aGxipBZFBnmBShCIeKhTCzX+4pbj/MSVI/SnLAU0bC90qIdAqIlatR0BhqnTl+4UM/elLYp1pfG48aASmUe/W3HwB1OALwVByNBYusBZ1caJzqcvFXBOmToJXePy0TyFlAper9s+emifMVJIMdaX6pg6yyUMfEmcFLBZ/fO9U/zNt8aptDrzIV0fHpiq4HgBGcugJl0aYdxQ0tRjkbGpaewqpPjJa0ZjsNCNtXn9cw5x892TLNcV+HhktkrK0rEMHZCUmy6nFxscHM5SrKvQ6oWagx6ak2pCcHA4w1MPDvCBb46rrNKEeoCQUobmucoyxPVWrnnVEtKwPZ9qy1WsoVxpWRdrDr6vwH1WM7qagB6+6fC6AuxeReORFunesyWmS01sXyUKjBaUP9x69gfbPT3XzrCdXKizq5CiL20xW25x5+lKPGX81n99kIuGM5SarnoY8JTOMhGe+4Thq1gzx1MDPpbOI7MVyg2XQsrk0pEcuq4x1p9mtJDk/pkKBweVBODgUPYx9+7qZdBifMFFCDb0NXvmoSE+dccELc/n4bnKGtuOfYMZNCG4bCTH0cly3OZvf2iTEm7YpzoGRyZKXc9pFF8mBPSlLbwtsKk9g7CzZ892ZEM+73nPQwjB9PQ0u3fv7vkDL9QPf0WgQNfWusI/XhUFJZ/rtuiC2Hi0l/eIvDTbySxL19iRUx5CmYROPmnFLQY3bBmahobwZew6v7r8AIShwrOrLQ+3h1bhQzsO8Hs//t+RQuNz1zwX2eMAZ9rSObQjS73l8sh8PRb9ayFbFBDq2sJF8pKRHKcXlX+WlMofrG57jC/UGMhYXDaa4/P3zQDrg2I1xRXE7F4gwfdBCDWZObnc4DsnFjF1ETOHkSt5VI6vFu5MwmDt0VEO+eWmy8mFmtIoQafiOfxvgTLRNTWNpKWjOX7HcMJq7zpdCIZySfb0p+NMRJX5mGO+0ooZmPapM4Cm7fUkeva8gPd89ZF19WkBcGKhxmg+iePp2J5Hw/HDxACNgbSFoQuu29sf+1xtxBqdXKhzYCiL7fkIIWK/KBBxXmQjzHuUkngoY+UAQc32mC418aVkKJvACYFztHD6Ull6DOcsHB8qYQRUpemogHYh0LUwo9j2GMhaawLOu+m5ujEwvbYMH5yp8Be3HGdyucFSXYGayB9uptTE9vwN7Q+2e3puNcM2vuAwW2lhaIIrRvOMFFI0HZ9vH19karmJqQucQNKsO+hCZXuO5FNkEjqzlRYzlRaOF7DcVAzYpSM5+ttayUIIhrMJzi43mVpubqpVPB+17qCFVKkXpbrNQs1mRy6xoa/ZVbsLfPzWMxydLK8dVKk7lJseo4UkL7txL45/mvGFOg1l3ggCDE1jtE91DN76Lw9SbrpomuCioQyvesZ+rtrdB6zElxVCE213o/bEquoZhHmeRzKZ7PiZaZq4rtvzh12oH87qJG/V/ywdcpbOQsh6RLqE8zWluFmpSTQtZlk2/XtW1uXY7VystN42q0CqlosuVIvLMnRu2NdHLqHcyIfzCc4uNeIWg+P5HJ+vMVtRlgJpS6PpBF3ZrYbj03DU4gfdwcwlC6fxNZ2Tg3sA+PTVz8cIFzONtaxW+35HxHYhtDTQQ0f7aphm0G3/+8McQE0Ijs1WlSdU3WGx7pAwdBKGxqfumIj1ZYYmYvbDX0X7+V30bTIImFhukrEMLEO1EG0vYFc+gReINtNS5bcl5ebJDUIo/zE/ZGMMXVtpR4YAQLV9DBbrdgzY2qRNgPqcRMik7cwn8KUCVtHC/sqn7+Oz90xteWx/tQD91GKNyeVGfC2uaOCIB2P8ABbrTnidK2CUsgx25hOA6Opz1Y21OTJRipmICFxFrWbC89cMJGeKDbxAMpC1uGwkr3zEwuvl5EKdLz0wi+0FpEMdlhDKtiOK5/L8gLrjkzINLtuV4cxSnWLdoekG6ELEDywN2w9buBppS3QEnEOnnisIZGhMXAMkl+zMxWzOZi3Dw7vyvO0LD7JUs/F8iR8E8cRcKswH9UJn/O0K5u6lonM1vljjvV89jtDgyl15RPhldfyAStPF8QMMTWdXIUXLVfcJQxfsH0pTSFkYmsarnrGPhu3z8VvPcFnIgEW1XHc6LF3e/dVH+MYjC1s2Pn201W3Qon3bqi0PT6ocXiEET9rb39XXTAZKp1lvuezIJxBhB0ANqhjMV2ycjMVzL9vJWH+am++a5L6pMg3XJ23qjPYlma/YnJivxcyy60tOLtS480yR3/ixS/n/rh2jPb6s0nJp1u2e97VnECal5FWvehWJxIqOpNVq8brXva7DK+yCT9h/vFq9JqtWpK6m18JWldbDhN35LNv1SRg6To9+ZqtbgpFppd8DAmsHnCJ8pDJ0wc5cgpOLDa7e3cdPXzfK+792ghPzNfIpC11TdLqKhBKqxbXJ56yHJZ81fhd/+c9/SjFd4MW/9C6W04UVVk6uD8C0ULwrUNqupYZD3fEZziW4eEeOo1PldQFsNmlweqlBwtR46oEBziw1KDYdMpbBcNZC1zSOzVXV8RGEGY0iNtHd6KgamnL3dsMb3OnFOsNZi0zSpGqrdq5qC0qabkA2aeA1XWq2T8KMHPdXciHrLZds0uDpFw3wxftmqIZ2Fyr7UW1XwlRu8bmEQV/KZKFmx+a8q7c3aWo897KdIATLDSfUsHVqgTQhehZtB4HkKw/O8vmjM8yUW7G7ecP28PzwYQAgeqiRK0AMVMsvbeqkLAUilxuqNfnMQ0P86rMOxovpRrFG7UxELmnE6QMRIIlCquu2aof3pUx2FZIdAHNXIcVEsY6uC+q2R93x1thzIBWASlk6SUPn+r39TBYb3D9dIZs0YusSQwtAEGvpmiFwjirSc82WW/ztd8b5/pllamFLKJs0uGHfAK8N932z2KLoOzlVanUEc0cMYKXlMdafOifz1UdTWmj9Umq6HBjMxgAsylX1QhbIDR80U5YRA8fTiw0u2aGRMDUuG1Gu9/98ZFp9X0IQtlx3uH+qTMtT36lMQqc/ndiy8el27Ws7a5m2dE7O12i4fpwxbIe6x/unylw5Vuhg8yJfs+MLauo2mzBClrXTAyybUAbNZ5cba66LTELnk7ediRMlIgPcTEJNYRdrDu/68iMcGMpwyc4sCUOjWHdU4P0WgHnPIOyVr3zlmp+9/OUv7/mDLtR/jNKAfEpF2bS8AB3lKN8Le3Q+y5cq6me9Fpho+zd0Mgzq9yK2gtiszDDGJvj/2fvvOMnOu84Xfz8nVq7qNN0zPXlGwfJolCwHbGzWgSSCbXnv3r0XWDCLuffaBtYb4XoXjOFndvmxLCYsYQHvLgv7W+SAkbHBWdiWHJRG0kiaHDqH6sonn/P743nO6aru6p4e2UIG+vt6gTzd1adOqno+5/v9hESOxZS1KE/Nt9lXy2cL8z0n9yqT0DUlG0/UeyYE4XM7YT/w6F/wc5/8bYwk5vTkMWKxTjbfrgEokMaxklwviav7a3lpmKoW8fR1MHjOhICxks1Pf/fNlHMGP3//ac4stTM3/wsrAksXA6/XhFAZpcmAWCN9jwR5L2kqQ1QTAsuUsTddP2RCWBwZK/D0vOS1pJ2wgq1z01SZc0td/DCi3vXWSfbqmgjg5P4RXn18Dy85NM8DZ5bRNTm+TPfFU4KHm6fKPL3QomDp+NG6CEITakStSeL/O153nOMT5S1BzU5J20/ONvndB87zxXOreGFMztSoqS7jkgKC6cnRUJFeDJ6/JIGCbXDHwZrMagwi5louo0Uri525VtRLfyfi2ESRPeUca12ftZ4Mge/5UnzQcgKqBZPD44MdPpDgKkqgaOksutK3TFNj3jhJ6HoJuqYxWc1xbE+JK6s9ju8pUVOmtmmsVc8PGS2agKDek+bAurIlkce7zjn8gy9c4NnFDpogGw11vJAHziyz1HZ59z3S+XyrkWHKRZIpA+vB3GmlAFAXgm4QPScl5XOtOE54ZqHNakdegxTMprmqJdtQ1hURkSKfp8Cx0fO5WO/y0sNjWcd1oNOE5DW5YUQlJwGLVF/aTFbsHcc+bdzfr4cbl31mHp7hL08v0HJDSrZONW8yUc5xbqmDZYhN42lYB+UgH0RO7q9xcbWjYuDWRTGHxoqyqzokRunCcofzS9JjzItidT/J7VuGzmjJotHz+a9fusz73niCUk4+qGiadl3k5x2DsF1/sN0aVv2KOUODWs4gVByhQBmIwjqP6IXEYgmSaB72WT/07/8Av0eTT+pptFAKKPqVnluVLiWPcptCHnQYJRwZL/Hjr5FP46lJaN7UuWmyRBJDvedxYaUnR5nXOeHQ4oh3f+b3eevDHwXgvhOv46e/8x0EuolqOAwFOtnfK4KrHHVJF/MECa5WFto0lLXExvOkafIHV1Z7lHMGn31miQfPrxLH0jVfF1I16PhRFnAdx5CzBAmS1yVJ0zFeKLMmU6xrKNPL9Kky2+dE7uvZxTZuEGb8LYQ0bz2/2GGiYhPHcLneI47XwW06lvaiiGcW232WD1381BNEcUFumCzysqNjfO3yGqNFmVzgBOtu93lTI4gkSf3cUpfjE9t7CJ2YrnLzZJkvnl9hue0xUbZ55bFxDAUmnpxt8mufOsPjM02SJGGiJM1pG70A1485OJZnpu5k11JTookU7Kdlmxo3TZYZLaqpRc7ENg3OLXcy48qdRL3ce+d+np5r8emnF/EjmYMYxdIRPmfpTFZMEHBsosxowaTtBgOCA8ePqOR0HF8mQkQx9LPZ5INOgqlp/NArDvFbn5XRP3srOUo5PTMjtk2dI+rcdmcbrHV9Jso5CqY0i067iXGScHG1h6E80VJQOGpoEoSoAOvtgETaAUyVdrK7pDqpcaJGs7Lr+o2M37lWpaD5iZkmM2s9ltoSVB8ZL2VK4oKlU7AMvDDOaAS6JoF61484bBkDHdf+TlM5Z9DsBVi6jI2yTX0AWG/k3O1kf7fLYdxpnZiukjM1Ts02OTauU8mb2Tlfakulcd7UB8bT/SP+GydL2KaGG8YIJHdUpKRlUqX58OvYdkOaToDjRxSsfn6p5OxGampxbqnNgxdXqeUtWvmAbhCxw+d14DmYte7WbvVX/70WxVDvhWiaVIrF8fOjikwX47TLtpPShZTEv2hviStrDittH1MXGCrw2t2g2JOLhlBfYkgLiWT9Y7jd+xRtA0PTMv5MwwmYruX5ydcf5/ie8oBJaBgltNwQN4joesG6Y/51nK+C7/D+j/4HXn/+qwD8h1f/EL/18n+YPRWmT8hpXI7oa5dHcZLZSwDkdEE5b2LosrXe9SLCOB5QBqbnP0Fecw3oeiHPzLX54y9fyRaEtJNhCIFm6XQVpyxBRgtlnLsw5REK7rl1L594aoEoSdBYj7dJeVq6JpTHVchaL5Bfqsj7TCQJEbDWk4q+E9NVVjseXT9UwFmCutGCRcsJMjXdu++5ZRMX5NbpKvfetZ8r9XW/HyE0ChsDG9UdeGWlw7+473EuLHeIYqjmDW6YLG8ZmJ12n1K+TRqgLMePUMrJfEgN2dFpOgErHZ/RkslqR9p7EMtFoH8UqQs4OFpg/8igf2PKmWo6AR99fG5HrvGA8nYLBkawGpIv+BOvvYGHLq7ylYt15hrdAbPbWsHAMnRetLfKTMPNFNLKlzjrzAZRQr3n0ewFvOO1x/mw8gCzDXn/aEJwbLxENW/i+BFVFblTK5jZ+Pvk/hovOzLC7/71ReIk2TBClNe9aJv0/JAnZpvbAom0A3jqaoNKTme+5RH3CUUixUNabLm87MgYYRzzF0/Ms5F7dr21XddowLS0kqPh+Kx2fPX5bHJkvJjlqoZxzFjJUhYfYfZZreQN3rohFL6/O/volQZdFaDeH7e08f7ZSedvpzmMO62uF6ELwd5aPgOVbTdktCBTNXq+FDW5foRADIz4j46XGCmYPHBmZVMkUb0nPdFec+NE1h3svw6NnhwtBlFC0ZbXIlXt+qHkCyZJwuXVLp94coEwTrjz4AiX6l1WVp8HTthu7VZ/Sfl9OPAEnn7go1iSx5+vEWRqF3AdDxtECQhNsNzx8ZRK0o8SwjiSYcIbCPdxkoaT6zSdMPvwp0Bsq0OLEpSJqIZlSO+pOE44OFrg8Kj8oF9a7fLYlQar3YAwiiSPI4oHR0rXcWw//bk/5PXnv4prWLzrnnfxFze/auD3hq6haYnMA9QE1byRKYg6XkjHW4eyXpQQ9Xw0IUPF/TAe4N4M27cEqQZ6er7JStfH0LXBeSVy/Ggb6RPp8M7cZMXm209M8eVLdcXnUSrRvg4WSA5Wz4+yrlgqmEiS9W2udH3OLXUwdS1zGdeUF5iMDop59Moal1a723KEcqaWRQWNKH5S2r0zNKnY0wT814eu0PVCCb4NQcfVWe14nFloc+9d+ylaBvc9fJW1XjC0+5QGKI8UZArC4Bhs3fz25j0VHnbX8MN4fZzL+vi8VrCkmm3DaDAdz7ScYEdRLxdWOvzyJ57h0mpPcuQMkV23MEpYaHn8yVeu8sY79/GRR2fpeiFChZMnQNPxKdoGb3jxJB9/0kUICcZltnmSXfMEWGx5/MdPnuHOQyO8+Y5pirZB2w1ZaLo8eGGF88vdjGf3siNjvPTIKGlPNgU+T8w2cdTIfOMIMftZIiO2tgMSKRfp6fkW8y2PjhsO3Mqm+kzMN10ev9rgL08vbMk922ltNxpOwXk/aD4+Ucb1mziBTDdYaDnoQp5HTSQkiYmvtp2zNCxD59U3TPCGW6Y2vXd67//12WV+9VNnGCnI8ePGe2OnsUXXm8O4k+rnJ/pRzMWVTqaEjFVkV5JIM+ZqIR4Y8UsFtXyfZMOT7cZ/b7wOliE/314YEURyMlDvygB6XRPIbyjZMfvzU3MIBB034MbJMkcqGo/t6Oh2QdhuPYcSyLHPRo6R1jeqM3SInie6RAqWrhfjdb2QMIoo58xsrBglDJDt1XRNWSUkaKEMNi5YuuSL7KDPLJ/0E1qOBAqmLlhqu/zCX5zmFUfHaTrK5V45sXe8YJOk+XqO7Ve+9Qe4cfky7/sHb+WxfTdt+r0fxsqtXW41zV0c1tmTxw0aMRtM5Lcs2ZSRIC+OE3KGhh/GmIKBL/NUhJUgR9fpeMDQpJN72434+BPz3HWwxl+fXcXQNGyTDNAlsRwLHxwp8PhMQyksk6yrItR2QXbKZhsSQJAg7UlSMKcLAgFzTZemI9XdW3GE0qigzzyzxOxaj0RtTwpOJBgTQhA4gepASKC21pPX9Erd4dxyB12R2e84UMsk98MClEeLphofhVgqh1Ao8OjECZoGL9pboZY3OTXTkERlIajmJAk7Z/a57ys5f8oJu/vQKGVbjp1yygm/bBsDgC3teDw93+Krl9cACXq1vtcYmuwcS18kSQLXNOkHFyMBsaZrhDF87pll/FCqKmXAOcRJLDmQQvnbKfDcPw697UCN2w7AG26ZzMDxQtPhoQt1/vgrVzaBlbI6flg3DO6vUN0gBVPf0QgxiROlkB2kUcQJVC2Djh/y5FyToqVvyz27VvV3uco5g1zOIEySPnA+vQk0jxStLJh+qeVxZbWXRXYBaCLK9mmtG5C3Ym4/WNsS9Gia4FtvmOBzZ5Z5YqaplLR952IbBe/Gkn5Z37gcRljvTn75wipNJ1Bq2xTcxay2QyoFqUK+4+DIQBfx0mqXtZ7Pyf1VFlouLSeUnD5NZrpOVmzqPZ9Pnl7MwG7/Q1K9K1MHVjoehhBEkVRRB2o0L5D3lGVo+FHCctvDj2JuHH0ezFp3a7fSSgCEwNATwr55YIpPBOA/j3zVnVhMbFUJgpYbZuOVjS7w/f87jBLiJMQ2NDpuSNHSdwTCNtpgFC0d4oSPPj7HRx+bo6y+jECOBTX1lJ7aXaV/2c+P2lg3LF/m7MQhABr5Cv/o//ilzV5XfeX466KEcMNocVglG/47rPr3VROCqVoO09Aw1ZNvECXKFiMlu8tX53TBeCUnF41EmtdKFZ/P1y6v8e/uuYVLqz3OLXUyLp5QYO34nhJ3Hh7h0ZkGhgZJIgYsLtLxXBCR8UAEKPsJofZDgt84Dmk521vsaJrgdS/aw2efXZJqX0WET4/dSBIMXWOiZGPqEgTESayenhNsQyMII3y1H0/OtTgxXc1GPf0Byo4fstx2ZafOiTF1gWXolG0jC2NfcwJeeniMn/mum7lU7w7YMDh+xK8rxW3B0plrOpJPFkij0fOFDr/8l89yYaXL5dWeVCWaGlPVHGMlO+Nx2abGswttPKWS0zbcV9K6Q5qnfvXSGmGcSBWw4uaZupbZm1xe7WaGq2EUZf5ygnXFtIYEf0fGi5sI4Ck4ll2K2S15bO947XFuna5wtd6j50tneEhVsTFdL8TSNW5VooOtKqUKdP2ISt6U3oBRTNeLiOI4G2Olo9VizlQGttfHPet/r5m1HkEUM7PmZEai5ZxOzw/52Kl5XD/aZFo6UrQ4QpFGz8cLBWVbcsEi9TC00pGgbt9IHkO7dgD6Nyp26cxi5xuWw9i/b2+6Y5pPP71IsxdQK5hS2KE88Kp5k1rB5Km5Nm+6Y//APqZCi8PjxW2Nkv/81PAR/cn9NZwgYrHl0QvlWDRSIh+BFA1Vi5b8jHghugnNXsC50N3RsYFSOr9Q9b73vY+7776bcrnMnj17eOMb38izzz478BrXdXn729/O2NgYpVKJe++9l8XFxRdoj3crrTgeBGAb63maRGZ1vawLjfVRgqdGOXANGwjVfen6sZJD7wxZ9gMnATSckMdnW7ScgK4f0vODzG9LjrfUC9VYLS1Tk12bgUoS/ulXPsRf/sE7+D8f+3jfG219RjQh+SHDaqvrlIByvN96u/1/a+oax8ZL7FN5cyMFE9uU6rggSogSOcYTQLVg0XYDWk6YcZ1Wu57MNXRDLq92KVoGJVv+X9HW1/+3ZTBSsJRaVRKShZDcPSGEyspMsm5kFEt3dk2sL/yGLlQkUjw0vqa/4jjh008vkSTSC8w0NKzsvyooPV43iISEtitdtm1D8g0Dxfev5k28MOLSSmdgFCIXu5DVrs9y26Ni6xKAR3KEU+/KzE2AfVWprjUMjeN7ynz3rXv57lv3cXxPWeVq3sC+Wp6n5losNCUvZW81x0TJ4qGLdb5yqS59k/yQlY7L1TWHhy83ePD8Kl+7XOf8cpsb9pTJW3KkvNXVT0Go5OMkGLqegekwkkagpr5ukNw/Kk7vnUy0owvypr7JdLX/GvSP5EoqWLyUMzi+p0S96/ORR+e49879HB0vEkayc7HUdllquyy2PDpehKaJbTtCsB6XM1KwiGP5ser6EXGSYCq/u1h1XuME/AEuqeSeRUmScc+2q5SWUO/4rPUCLEOO+yxD2orUOz7nlrvEyIcoEnlv1TseLcfn4kpX8ZUM2aErWOwp51Q4u0YlZ3DHgRrHJsqbzumwSjlit+6v0nCk1UrD8Tmp7qudjVh3+s1/fStEyTYYK9qU8yb1rgyhr3d9vDDGNHTGS7mhx9g/ykQIyjmT0ZIt/eWEUIKhhPnm1sHuJ/bVmK7mKOdMZWmhI4Q0wR0t2diGrigtgmMTJcbLdvaQvZN6QTthn//853n729/O3XffTRiG/MzP/Azf/u3fzunTpzPvsX/2z/4ZH/vYx/jTP/1TqtUq73jHO3jzm9/MF7/4xRdy1//e13Z8r+cbgD2X9zDSbL/r+Jv+hpulODHXSNzZVP0dpTCWY4617nr3JU6k0WL/i1OOj6FrROH6SMROIn72r/4z//ixTwBw08rlHe1Dxw2um58nkMccxevEd10Mv+6mJl3oa0WLH3/NMX7h/tM0ewHlnEHJ1vGCmJ4fUrA0ghiabgDJhu5UIIGuLgQPXawTxgmvvXlPlpUneT4JF5a7PHBmWRp9qvPXjxPTUbIupNN6kgjCDR25lDyuKdAHWxOj0zgSUxfsKecJIjI7jCiWT8hBJOOn8pa0ZvFD2R0TSMNUTXXxokSmEKx2fa7We9QKMtqo54U0nICybRDHCQ3VqY0TCdDDKMGME/7BjRO87TXHtl0Mb9lbYbQoPbv2VnNYho4fRnxJKVY1JWzw4zizTxEauEHEXCOiYOncdqBKNW+gK88pY0hyTKA+HGmHUghUCP26sWtHRUqZurwGugK//R/CJJHjHFMXtN2AgrmZAL6THMGzS22KtsG7v+cWfvkTz/Dli3V8NU40dY2RgkWtYPKxU/McmyhteQ7bbig7T5ZOlCSs9aT5q6n882L1/kLte9cPsQxNdcaEHIfvgHsGMqZsrukQxvGmeK1qXnbLV7sed4+Pcn65TRDFtN2IMJIdr54XYugaY0WZImCoBxHb0NHyUsnb8SKKtrFjUv3XG7t042Q541A+1xzGYdV2VcoCcjxe0Q15TYS8BueW24zkrU3HOMz0NdsbNWbdV80x33S3DXbPWQaHbYORooXjR5xZ7FArGJn5a6g6mGMlmwMjBZ5IfJ7c4bG9oCDsE5/4xMC/P/CBD7Bnzx4efvhhXv3qV9NsNvn93/99/viP/5jXvva1gLTKeNGLXsRDDz3Ey1/+8hdit3frb1kJ1i0mtiPVX2srydcxBk0r4to7kCBHdDdOylw+J4iw2i3e97/eyysvPkaM4Je/4238wV3fuyN5aJjITmA63twJjpRdjhhLFxRtqWzcEsgJGfxczZvKPRp+5/PnmWtKVZyhC46Ml/i+26b4tc+cVxw1bb3rpzqAbihHcI2ex/6REpqmUclLlea55Q6rHZ+OF3J2qbOuIgXVDVvfHUOThGBNSFuEhDSzUIKG1JA2ZxlU8ua2xOgr9W7feEWjP5fXDyWQ9MOYjifz+OJ4XUiQKMf6kYKFZWgstT3iKMYJY56aa5EzdSo5Ixun7q3laKV+RUIg9FQZmmAZOt91695rdiMurXazuKFSTnpJPXShia+yD1HnQteEVBerLmUQxeyr5SlYOo9fbfJvvuMmpms5rqw6Mt9UPf0nCfhhRBQn6sFEjusCJVhIR7VCjfEMTXBsosjFlR5hHGckbdRYMgXNj11toishxIgCp2ntJEcwBRm3Tlc5Ml5krumSNzUMXWNvJUclb5LANf2uFpoOs01H+tF50lxW+sGJTQacQkjwutzxsmPWNQnEdsI9a6X8JlNnc89RgqleELF/JM+XL67i+BGmIfDCGD9M1Mg/wrEi9ZC3zoXTNQl4gyjeMak+ra8ndinlUD5wZnnLHMa7D41edxRS0dZZc3zcIKJWsAbAVCUnx8Br+BTtwXtkJ2PWe07u5Y++fGXbYPdq3mCynONyvceeio21KjmPpg4gO9ZjRTnS73gRlYK5aTtb1TcVJ6zZbAIwOjoKwMMPP0wQBLz+9a/PXnPzzTdz8OBBHnzwwaEgzPM8PG9dHtpqtZ7nvd6tvw319XqURUOc9r+RlX6/p+BCenJJ+f3I4gxvff+7OLh4mZ6Z42f/95/h8re8nkNdjzPL248Ysu1rZGOx6yk57tAQDDe61Ug7PRoHRwoAfP/t09xzYu8mP6xL9S7/5QuXCMI4605JdVNCqC5QFCdcqTuMl/OUkOaHT8426XpBxsdLLRn6ly1NSOCiaUK53FuAJMr2grDvwAVeGFGyDPZVZSTJfQ9fZb7pMlKwGCtZ6EJkXKM7VXDvsDJ1Oa4NIrnoNR3psySEtNNIOWE3TZZpeyFXViX3J42BihOYazgYumC0aDPfdImThH3V/IAKUxOw0vH52Kl5jk+UOLvcBgQ3TpY2WSJsBCxtVwY2S7sHsg6brWuyO6dJI9u8aXDDnhI50+DsUpuZpsNPvf5Gfu6jT9FxQ/wwGlC1Fm2D8aKV8WU29ZgVsDR1jRPTNUaKNqfnW3S9cOCzqAsoWgYFSyeIYlbaHnFCFqwO2+QIquoHGZ88vchfPb2IH8Y0kKCo44XSqqBobet39eRsk/semVVcUKjkDJUdKcGWbWhKhCAynptQnwFDlx1dN5Bjz33V3DVJ7JW8ia1r+FFMTgH39dMnfdlsXWNmrUdJcewavUG1phDQ9sKMqzRWkvFUKbfM0MWOSfXfqLrn1ikuLHeYb7qbchhvmCzyY68++pyjnhI2My9SrcxWtZOoqocu1q8ZK/amO/bx6585x6IC+G0vJG/qOEFEztA5PF6g5QZcWO4ymd850+ubBoTFccxP/dRP8cpXvpITJ04AsLCwgGVZ1Gq1gddOTk6ysLAwdDvve9/7eM973vN87+5u/S2qb8h4NHl+cy+zL3T1+S/nDL73tikeeeIKP/mzP8xIq87ayB7+1Q+9ly/XDqEttcmZO/+gX495YFrpot10AtlBSkOzxXq3I4wSdKFl0R/pwmYYGq+5ac/A9rpexJ6KzJ9te6GyCFknuZqGwNQkj+jUTJPb9le5tNrFDcJMQWdoAoGGrgAcakHXNBkxNFaymarkabsByx2PthcqWwT5HrouwZoXJRwYyXP/qTken2miCSnx1zVBJW9wZKzIatfnzEKbki3tWEw1Ph08R1LZOVq0iOIExw8zYJk3dW7bX2O0aHFxtascvGWnbK3nY+k6UxWbRLme93tcmbqQRnhI+w9DF3zx/ApfuVTHDWT7s5QzeMnBEe45uZepap5yTvLn+gFLEMVqfEqWGJDutxACXZf3hqFEAP1dpf6u5syak41x94/kec2N43zpfJ2GE2z7+dI1getHHBorcnCkwELLZaUjs/iCWAJxU5edEieIqBZMSrbORx6d48Q+6Wy/k5HSyf01ul7IH3zxIi0nZKRgSn5aLHMee56Mtqnkzcwv7cJyJxu5HRwp8MFHZljr+txxoMZTcy26figtZpTRrBPGWLrGRNFkrefjhRJ6xiTEiSBQnEdryH0yrKp5k321PHNNl5YbZFYqkbJzMDSNkaLJhZUePTckVPdBasGRdnfjOMFUxsGNnk/BkoCtnDNZbLqMlewdkeq/3urvKKecyDBOKOUMRotW5r33XKKPul4kuaCJT9MJNllfFEydWsGi6w0fDVxrzLoTUUI/mHvsSoO1XkAjDBgvSluPZxfaLLc9gjjhUuTs+Ni+aUDY29/+dp588km+8IUvfF3b+emf/mne9a53Zf9utVocOHDg69293fp7Xs8xRei6Ku0yGJqgljd5+HKD+cTioe/9QU588RP8xk/+R6yJSV6VJFxc6SFEkpGvn4+Kk3Ugljd0SjkVYJwpFmV8S0p038jH2MizKto6o0WLsaLFXKPHzJqruG+CnKkrV2ppcbHS8Tmz2M5GYT0/yL50bQU+nSCWmZs5gziWX7RTFZsnZpuqAyS5d4aQHnESPwpstUgutFzOLXUAaY6amTgqk9pjEyWW2i4vmirz8JXG0IVSE4KXHRnj6IRU9jWdgFrBouVKIDBWsmk4AfWuTxglCgwnRCH4kexqHBkr0HSk6WTZHvxKllYnAV4Y4QUxRdvILCiaTsAnTi/y+TPL7B8pMFqyOD4hzSnnGg7H7RKmrmHpcoFOuURaavCqrlGSkDmRd73B0dXGrmbPjzi/3OaJ2RZX13rSMHebCqKYi8qLTWjScLOUM5hrOHT9EF3TcIMIXdMyk1BL17Ju1eGxIpdWu9w6XeXMQpuzi2321QqbFsk33rGPDym/spKtK5WsyPhVTSfg4kqXG/eUCKKY//7QZZbbXjZ+3lOyubDSZf9IgVLO4MR0lfPLbcVVjDA00DSNE/uq5E2Nr16qZ51BL0wIhFSSTtbyHBorUO/513SXPzxW5PaDNbwLq5lpc9rBGi1Kw9Wj4yW+ermOF8WS75WqqZFA2gkiwiihkpeCgZyp0XACDCG/Q247MDIQi/V81YChbDXP3mqenhdyabVL0TZ46yuP8IZbJp8zECwrIDdWtDZZTYwpEJSo121V241Zdxor1g/mHr/a4AtnVzi/0uWZxTZBKG1w8oaGrf8ts6h4xzvewf33388DDzzA/v37s59PTU3h+z6NRmOgG7a4uMjU1GbjOQDbtgdCxndrt/62VRTFlJwO802bgqXzq3e+EfeG78DpmOi9BpW8wVQlx8zazp62tiLU76RSRZumye6VQCYPpCtQFEvOiRdGA1+Aw3hWxyaKjBQsCRDGSyy0PHRNKs5qeZOWJ3kVh8cLuFcaLLc9DF2jaGmKpC4J7+XMfsDHD2OZoSjk788tdah3fRw/zjy00rBpQFkpJNwyVebCShc3jJks2zLvjXU/o5YbMN90qOVN7r1zP10/4sJKd0BlqgnBzVMl/uV33rTpKbvjhZn7+2rXV/wi2Y60TT0Dtx0v5OmFNlUFAptOoLhcEIQxXhQTRLEag8FI0cTUdbxQErTjOMEN5fmv5kyemG1m3ZJzSx2mFB/KCSIiZexqGjIM3dA1Gduia0xXc6x2POabLncfHh0YXaVdzY0L7XQ1T71PZLKuD1030A0imRfZ32Fo9nz8KGGsaHF0okzB0jF1CfxShetiK+axqw3+uwpQ9gJ5HrwwYmath6lrA4tkwdI5t9Th8FgRP4oHwsZTs9tGz+fphRZ+JDuD+2qFzOri9HyL+abLeNmmhCRgv6QwylTV4dn5Fn4sExwMDZ5eaBOoh4FKTtol+GFM3tK5eW+Zat7i0kr3mkT4fr7SasdjeqSQ+Re2HJ+xks1Lj4zwhfMrGJqGm8SIvua3rvz1/CgmjGLCGA6O5Hn50TFedXyc2w7UrjuvEa4/83GjejXtApbzJi/eV+GpuRb3n5rn2J7ic04U6O+G3nmgRsePMquJkqVzbrn7dY9cdypKSMHc0YkS33tyH//qQ6fwgoieH9LxQmoFi9DdaZbLCwzCkiThne98Jx/+8If53Oc+x5EjRwZ+f9ddd2GaJp/+9Ke59957AXj22We5cuUKr3jFK16IXd6tv0e1FYl/o4HjN7KsMOCXPvF+bq1f5t/85G9xPjbwohjLsrDU+9a7Pl03RN9hwKSmCUScPKduXvoncZIQRskm405IM0KTjBO2cbFOF7onZ1sYmmCx6fDI5bVMIND1I9aUmvLIeJGRosWt+2s8cqWOFyZ0vViNN3SqBRNbyfVSsJRmGvYUaffccj9xP8n81wRkMVRX6g6uGi9FSiWY5gNqmqBg6az1fCp5k9sO1Lhhssyffu0KX7vcoOdFFGyduw+N8JaXrGfhbXzKPrFPjlOfmmvyL+87BUgSeXr+NAGaKcevHT/k7sMjnJppstL28FVSgKapwOtYjiqlFYa0KogTGboexgmNnhwLHt8jzV+na3lGiibnl7tYurSOMDQhO0hBTDuKcYMIUxeU8gbPLLYzP7HVrs/p+dZA92TYQpsmGGSvye6IFIRJRfLLj40SRAnnFjtcXpXXq2DpHJ8oMz1a2HTPpc7of/TgZZwgYqqaZ2oshxvEzDcdbFPjLXfuHwAZj19t4AUxhaocJTd7svtYsOR4NkkS6eovYLRoccNkecAP6uhEkZmGHEeNFRXxWwj2jxQoWAZnFlqs9QLOL3fxgoicoVHJWxSzzqXMEL200uPGPdqOifBpB2ZjzuLJ/TXuvWs/geKF+VGcCSPSj1/62bR0jWN7SkQx/NTrj7N/pLDlWO5ada1g92G1lXq13vW5uCIfiq7Ue8w3HW7dX912W8MqBYUnp6ucWWxzbrnL3mqeakEqFc8td3fsY3atul5RwpW1Hsttj6lqjqfn2xTt9ZDvndYLCsLe/va388d//Mf82Z/9GeVyOeN5VatV8vk81WqVH/3RH+Vd73oXo6OjVCoV3vnOd/KKV7xiVxm5W89r2YYMvw3CaJMtxfMFwEZ6TX7nw7/IS2dOE2ka+08/zJkjd6EBHVdymzS1b14YZ9yQa9VGW4DnUpF66txo9+BHCTlDp2ybXFnrcXisOPSpOHWHf+DsMgtNd5NCM1HHONd0GCla5EydF01VKNg6V1Z7uEqBaPX5cYVxzHQth23oHB0v8o7XHef9nzpHFEMtb+C0IhW6LoFXFCckSq3Z8+XoZ6Jk0XQDkjjJgI8QQga9K5L84bEip+dbaEIjb8r4kpwpg47PLrYpWHr2BL7xKfroRIkr9a4c7Sovof5KR4NBnHDjVIWvXV6j13fD9ac5SAm9VB3222AASikXZ5YN9Z7PO193HE3xzVK3+bNLbZpOiBdY9PyQlhvS9SJyppbZWsw1HN7/6bMD3lDDFtqcoQ19UJGKVYiQysKT+2scHC3wgS9dou0FmIm0D3lmsU3e0hktrU8ukiTh/HKbhZZLoJIeZBaowZHxUgYyn5ht8f23ry+6KXl/oemy0HTwwoheEGW8LtvUKdhypHVsoryJs1XJmYwVLVY7Hi03oJq3ssSBOJZq0pumSjSdgKlyjtmmw1ovyO6X/m7bxXqXlx4eu66uTGoqnPIt00p5Y7MNByeI8OMES70wVNc7b8rvg2PjJT737LICisMB1I4zKrcJdt9Yw9SrqaDGCyPypg4J5E3tmtvaWBtB4Xbd0Od75Dqs0mPP5WQ+706/k/vrBQVh//k//2cAvu3bvm3g53/4h3/ID//wDwPwq7/6q2iaxr333ovneXzHd3wHv/Vbv/U3vKe79fel0o4JqvOT8qJ0oXy+uDaeeS42GEdXZ/iD+97D4cY8bbvAL/yT9/D5fSdxlNdSf/lqxLPJyHWL6hcUpPuW/uVO9lMgR1Km6hpFcUys7BdsQ+PEdJUkkV9IF1Y6nJppUjD17Is+XfDiOGZZqd/yhiCMyUZk6djw2YU2N+0pcnGlw5HxEvfcOsUHH5lRi1BMy5UKRC+MMDW5T/tqed72mmMYmsZ8yyVnagPnLFJKtvR403EUSGDk+hFhLOOpDE0jUm7cmiY4ub/C6fnWwOLkBRFnltqcWezwmWeWODJe5MBoHhCSsL1hAVxp+zJiKZERUoZSUCaJVFGm/k6fe2YJJ4jX70EG77eWI7uFG20wQPIIU8PYlFzf9SJuO1AD4LYDNd5wy1S2ABdtnT968DJfu7LGvkoOy9SzCKMkSTYFeT+z0Ga141Oyjey9qwUTje1dUpIEZtd6fPQx6Uh+YKRI3tJZaLqcmmnw5Yt1Tu6vMlXN4yi+2ULLxQ1ianmTnKn38fQkuX6YwvHwWJGRgslnnlnOxB6SBKgMfIOYW/dV8dTYcPNNLrhhT5mvXq5zcbnLRFk+EKy05Sg5AZZabmawvKeUo+fHAzzBRN03hy1joCtzXcBHcd2emG0y23B452uPS95YKLtvi20PN5Cg0DYECfK6l2yDxZbLbMPZEkAB15VRCcOD3Td2mzaqV5Mk4eJKBy+MqORMKejQNaoFi2nbuKZNSFpbgcK5Ro+cqXPvXfu5/TmOXL9RlR57mKz7421ncD2sXvBx5LUql8vxm7/5m/zmb/7m38Ae7dbf19KAY3tKKkJEmjPqQqDrspOwk3s1resFYK+4fIrf/vAvUvW6XK1O8uP/6D34N95I2PKVVcW6ajIl74dJcl371F/XA8DS148ULUw9DdGVHZ1KzuTGSUn+nm+5PHR+hYcu1jmz0MI2dQxNyzoYUiHYI4zWQZeuQRwpbyml4PPCmE+cXlJAK+bqWo+xgsnxiRK24TDXcOgFEbahs7ea446D68Tjx6820ICRgsVy20MqEYcfZ6pGvbLawzY08qb0/QmUFYmp8kJn1xw++PD64tToBZyeb+GGETXFtVpqe1xY7iCE4OT+KofHiwML4KuOjyuAt97FSoGMrYxKvTDmUl3ajZRsnQSRXV9fdWPdMJYcOAXa4lh6RckRm5mNv7byheoftVxY7nB+uctEaXNYc78B6idPL/LQxVWemGkys9Zjqe0yWrQ4Ml7CUBYI0TaEQyHgf31thpGCNbC4T4/kyZsaj15tcG65k41CAao5E42QnHLR7+fpXVrpcHJ/DW+I+WjTCXCD1MFfk3mWSKCbRklZxtZWFzlT58iYHIc/frWBE4RS/atBWYEJ15OWHK4fc2i0wErXy8KkExIqeYO3vvJw1pW53nBuGAQ+H350jjfdMZ3xxvZUciy2XGViLG0zXnZUWjrNNdwtt/N7D1ygF0SsbdHlGpZROex+GCY22KhebbshLSdUSl8GPLS4xrbS2opnVsoZ3DBZ5txShydnW7xRdUOvl8f29VT/exVtneMTMkC+nJNd2zS3c6f1TUHM363deqFL12C8ZNLs6ax2A3QhF62ep75gn8NEL+1obOcO8e1nHuQ3/+yXMOOIR/bdxNve/G/pVEeYCGP8KM5Cr6MhHl/PhWzf/yfDOnb9nbL0d0LADXvKdLyQyYotHdxV9lq96/OVS3WSJOE/P3BBEYQTCooz1N/B6Kn8SgHKOoEsw7O/4+MFEWVbp+X4LLU8zsYxlbzJj3zLYe4+MkrLCajkpTls/5dtOWeQs3T2WgYtJ6DlbsHp63uvKJEqy6ItjVMFstOYt3SOTZR5Yq6FALk4IQOK3TANSJajxJWOj21omc3FtFIApgvgheUO+6o5rqz22FO2CZWtgKYJDAFLbU+6jLshOVMqN0V64gHL0ImCiDiBla7HeNFGF9IyQRdQyVscUSO27cKW+xePh86vcGapDYn0ghNC+mLdOFVmtGiTt3QurPj8wRcvEsUJeys5Go7PasfPrumB0QK2qWcqz/TcpjeSpcuR/mLL4+BoYdPiPlqyeenhUeZbLj/8ykMULYPf++sLmBWNp+fbA10FOXbTWe14nJ5vEcUx9a6XnccLKx3OLnUwdBln1Z/xKl3zBTNrDi8/OsaVem9Lq4vbD9SIk5ilVo6m49PxZASXEBpxHOMEMsHBCWTM1J0HarS9CD+MMlHDG26RorFrjffuvXP/joBPyTYGlHtTlRwxMsLqe07u5dieIj/30aco50zqXX9A5CCEYKqS46uX64wWLU7sqw4FaVtlVKbVb12y6fO0wRA1b+qEcYyZCJpOSM6QuaDp/bzdttLaaUrCpdUuPT+6bh7bc61hoHqkYGLosiNpCEGj56OHOw9P3gVhu7VbSCPTr11uZJ2nKE6jjp67P9hORpdPTB2nXqjylf0v5l9890/hmTajpi6f4tUbpw0vXY2w+kFdqrK7VgnkQqQJiBX/RNfA8eNN+7hxm6Yu+Icv2c+fPTbHYsvLxiazDTlSAhnHEycRlYLFUkdmHe4p2wMdjLT7kLA+2u0/V2n5UcJCy8v4X2Ecs9iKeP9nzvLeN57gTXfsZ1gNPJHvKbLa9Yaemwxcst5hdIMYL5BE7pS4XStYPDnbBCEXjpYryd6GJi0fTF1ejyCK5VjCkBYebS+krJR5e6t5zq90edMd0/zuAxdYansUbJk15wcJPU8SsV9yeJSPPzE/lNIrVXACN0wwNY2m8ubShVRa1nIm9bZLo+sTJTGjxc2+UP2LR73jM9tw6Hghhq6I/wm0lLfayf01xgoWaz0fgSSPCyE4PlHG9Zs4QYjjh8w3HBR/HQ3QNU2mHwC2qZE3Dfwwwg1jDDV/3RigXLANdCGYrkmCvh8m7KvazOYdpXA0ZBh7ENHxArwgpt4LMDSN//fDT/KSwyO87dXHuFLvstaVo2B5ztYfJOJYxmKt9XxumizR8cIt/aBefnSUP/ryFSbKtgrBNrNoGk3TqOXleQkjWO16NF3p57XWC9hXy/OmO6e5tNql6QT80YOXt+1y3X9qHjeICO2YesfLzskwsHLbgRo3T5Y3GSAbhsaHH5nh7GIHhDzWzOtOdaCjJKHjhhwbL2b7kSTSUkbeuyazDSfLUryWIe6w6rd4ODXTzJTAY0U7E9vsdFuw85SEx642+MSTC9fNY3sutfV41MHQBMf3lLlq9JhrOvScvyXqyN3arW+mClRrydAEvSBSsv6vb5vDRn9aHBFr8stlvjLBG3/wV1goj5EILeucRaoLFkQo9R5DW1diyM+GVfqSlHye/e2Q1/VPOQWQtyTf5M5DIzwz3+RqvUfPj1jt+jJeaU+Jc8tdirY0yBwrynHgcsejmpfWC8ttlyAwB95nq7FoCgrcMM6OO0mkYeMv3v80R8eKlPNmNg6Ik4RzS10g4WWHR5mp95hZc7B1jXBI0kH6fmkUTZxIsYEfSoWl7kiPsgMj0o9KIONsLq32aDoBuuowWIbAyKwt5LixF8U0utI6w9TlSNNrxbz0yBh+FPP7f32RejfI8icreYMffuVhXryvwl+dXpQZdPrGxD15Pkxd8G++6ybaTsSDF1c5s9BiseVx1pVeZ7qAasHkH9y8Z2Dh6V88pio5FpouURyrEHPJ67MMTdpdBDGPX20wVZWmuofH1hfukaLFiekqF5Tird6VwMHQBKMFE6Fpmc9V3tQzvlSchKw5AZfXetnoLgUKU5XcwIJsmxpOEHN0vMRap85MwyGOk4FOsClgtGDiBhEPnFlhqeXxmhvGpXkpDHByBKDp8rPthTHTtTyvvGFiSz+oKE4yonVqjuoGEZoai+YtHTeQkURNJ+ByvcdY0eLk/hq3HahmtiSNXsDVtR61vMl4yR4AISk4P7fUZrUrg7iFcvev5I3M3b8frAzrwHzuzDK3H6hx3yMz9ALpMVfMbebQ9VT6QClnQpIw03C4rDpIAtnJIoEbp8rMN51tDXG3ExukFg8XVjr82qfOSn+4vRWEpl33tnaUkmBofOHcynPisW1VcZxwYaXDmcXBVArgmqPjsaLFT7zuOG03ZH65zj3v29Fb7oKw3dqttNKPqVyUpdeSF8ZfFxDb+KcTnTV+90O/wO++9E18/OZXARKIpe9vGYKuFynwo+M74fpIcwOe0HYAwNLg6zCWAGxg39Q/BUp4sBHgIfMm227I//cvn83AgG3IhcENIkaLFh0/wg0jtfhJrpOhSxPOeteXfmIJWZh1P0n+WhUDphDKlVyqrt7xx49yaLzAWjdgseXQ9kIS5eFUsgymRwpU8gbeNaKmUl5WGCYk6uqHUULbjWh7kn/2iqNjVAomf31mBUhUMLgEYa4fESeR/DfQ9UI6XsDjs011LWVno1awWGg6PH61yeGxAqahZyAsCCMev9rkVcfHs6xGP4gw+7IagzAiiuHQWIEX76vym589z+XVHssdnyQBS0XmCAE9L+QDX7zE/pEC33/79CZuzYCJrb6eL2hosktqGULF4wSMFEy8IMo81mT3T+POAzWabsjleo/vOznFB750mdWOjybIFqc1IRMMyjkdy5A+YbrGQJbgaseTAOrGiWxBPjZR5GuX1hBAywvwh/iq6JqGYWgUbEPGxKx0ESTZOVhXLPZfZ3ku2164yQ8qzRvsehGNno9lCNYcn54f0XYD9cAgMA2NoqWTM3WOTZRoeyE/+qrD3DxVoeuF/PpnzmVdEtvQmF1zaLsBT85KMNQPxNwgYq7pSHUsUM0bROr+7nlNXryvwmrXz5IA+reddmBOXW3w6acXKdkGUxWbtV5AXnmupR3oiysdTE2oUO2Ap+aaLLa8DAjbhkxK8MKYlhOQN/VtXeOvBWY01RH68dcc4/2fPpvZSVxrWxs5XQdHCtdMSTg0VmCx5T4nHtuwenK2ye8+cIGvXa7TcVPgavCSQyPcc+vea45Hzy130ITgjoMjHKsN7+ANq10Qtlu7pSrtzkjieKpCfO5GpxvrpuVL/P5972F/a5l/+5n/wmeOvxTPWP9iTpDu25qQgOlALcdab51bsBFzmZrYBKz6S3aUkoGuyrCvUE0gPccUST7pA0lhLA1OY03uU6wUfm4QoQuZSzfXkJmHrh9h6DLKKIqlgjNnaNLtO1X0AabKsdyqNnPfkgF+3VzLYU/Z5nK9SyfzQ0rwgZ7vs9L1KZg6cbQOMNPoov63jRMJuiR5e/1dw3i9U/jsYpsbJ1UUk65hxknW5UIIBAmGobHW9ekqzpsbpiHcsNb1cYKIj52ap971uXGqsmlBObfU4c8em+cnXncDP//np4dmNVbyBu983XE+8tgcV+s9ZupdAgVqw1jeMwK5oPa8kN/53HlumapwdrnNqZkmeys50lBtP0xUrqUulYNhlB0zQnYI/ShiqR2z1PbkuRESfNuGrjpYecaKFkfGy0yUbFa7vhIJJJnVghPEVAsWtq5R7zbXR2HpvbihjXt6vkW9G3Cl3pNiGDYbDetC3tNtN2C8ZFOwDHp+yFzDzbh+cSJ93/qvczp6TkO4U5HCk7NN/seXr6x3mAyN2YbDctsnTGTGqRDSb873YnpeyJ6KTdsNuO3ACN/+oiku1bv87gMXmGs6WecnTqTa1jIEPT/i4kqXkYKZebucXWqTJPCifWXOLXWpq7ihkq3TdEIeu9rgtgO1LAlgWAdmsprj7FIHXWjcOFXiqdnWQKSPpUvLjhP7KoyXbR670sALIxKEijyTD5luEDJVsTF1jclKLvOX28o1fie1Uwd62MyzsgzBnorM3rQNbcuUhFcdH+dPvnJ1uNqVzdyza6lUf+Fjp3l6rqUsaKShsuOFPHBmhQvLXZJEckN38l7XU7sgbLd2q68S5Jd+9A3OKXrNhYf5jT/7Jcq+w/nRad76lp8dAGD9JYFOxHxrMJJoGDjZbi83jhZBdc9UVyD9nXy/RC1wwztUcoxJ9hoJ/hIV5yLQkItjz4v7gE5Cx5cgydLXOXK6phEnO+8wbuR1RTGcmm1sCeTiBHpBRAx93ktik9WHBJmbdyLlOelCOtg/s9Dh1ukq880ei4EUHoSxHIeU8xYdP6Trb+aApJuu93wevLDKy46MbfvE/gMvP8jPfd+L+e3Pn2d2Q1bjj7/mGLdOV/lvX7osFbzx+nsI5D0bk+ASkTN1zi61+X/++BFMFQDdcgKOTpRU/qUC50J2w+JYRvsYuoYXSO+wMEoUIOiLJVKWJPWuFEy8+oZxHrywQpQk7K3mMsCWIB8QTF1QtGSX5eT+GvPNHmvdIDuu0aLJVFVG/Hzy9AIffESCjZyp0XbXx9JpKZ/a7EEgiJIMVCUCLFOOQ1Nrmf6Rt6ELLFNnUmWXglx4f+3TZ5lvOozkTRneDjzVC3D8UH5O1GdFTexIgNWuz6GxArcdqPKLH3+aUzNNzi62sQwNP5Sj1FrBpJKXwpW8OcgVbLkBq12fcs5gpe0rIBzj+D66pjwKdcG9d05TUpYOAx0Yxa2rd/xMfSiD0uWoOI300YSkEtx7134+f2aZWHWkTV0oEUefEEcI9lZym/zlvh6l4U4c6DfyrFwz4tyifHDQNMFkxZaJC8ttBHIcfFJlUBYsnQ89OrsjHts1VaoPz/DsQhsvlCkbfhhnylxNyM6bZWj0vJDyEPXjTnhuW9UuCNut3Xqe6wcfuZ+f+9TvoicxDx68lf/rjT9DM1/e9m+CGFrXeKq6nlDudHSpsFPWFRBinQu3Fe5Msv+3GaRFsQRYEXK0tdUu+REkSPNU97mkiW+orQBYRsZWO6kJ0IRGwtb7trHkoiuzJpMopuuFNN2AlU6AG0brKs4wRrjBgBJv474ABKEM7B7GT4PBp+iNWY39BOxHr6xxWfHx+rcP6wDBjxICpVZcaDiMli00IVjtyNzHE/sqVHJSPRrHcmynaZqyFIHVboQQULI0BVwlILVUGHbXi7AM+c5dP+LKlQar3YAojtlTtgfilixd4+qag23oTFVzUg6StZrlEdimRqPrc7/qFE5WbC6udDNLjyiOs6BsEgkWEhKiRIXJq5oo5STgrPfQtUHhh6FI+odGCrzy2DgAYRjzq3/1LI9ebSAELDZleHvOTEn48tgNkRCpcyvvJZHdI/c/PsdaL6Bg6liGNPLtDws/Ml6i6zVxgog4BtePEAguLHelKjWMqYc+Rdugmjdwg5ieL200anmTqWp+E0F9retnQMsLIxw/wg0iVjoeR8ZL3FUYycQPMs4oYbwkR5XH95R4ZqFFHCfZtU8FFF4YEyaSD9fvL7dV7dQSYjsH+o2j8rVewOm5Fl4YUSuYdL2QthMSxrJ7O1KyKPR1va4n2H3YOLffnuPLF1fpeiEIgSUEQiPz9ROqCxypY06FKsPe67nEJu2CsN3areerkoR/9+nf460PfxSAPz3xen7mO99OoO/MR+Yb1YvTkePGWCGotAsm8xZ3to1shMTgWDSBzKk9GtJV6q/guSWpXHdlT/fq33ESowkNQ5NjpZTkvRWlbmOHLPQjnpptyi9oXWAbmsoLlGRvoQlE6nfW995pRy2K5f8ttT1GiptzbTc+RadZjRtLWiYMAvO+5simc5C3ZCB3qBzfvTDi0mqXG/aUWGp7eKEct0vgkdDohVIAoGm4IXihn3Gp3FACCDeJGCvnOThSYLXjcXWth1CecenCZBk6hSSRatKOz0jR5NRMkyiO1ahMqlGX2h71ns9EyWK+KUc9fhhlnSchBKahE8UhQYwCRevdv7QLpCl/ttGSyfs/dW4AoCdIwG5q8N0npzAMjSdnm/zHTz7LX59dIU4kz80yZCzUWs+np0bcidoRjXUgWrINgijmwkqXqUqOE/sqLLS9LJGhmjNpujIs/M6DNU5MV2XkkROw1PaoFmJetLfMSkfysmoFKztveUvyDRtOwErHJ29J8+CUoB5EMU/ONnHDiIJlZE75bhBxYblDLW/Jkafa9+WOx92HRqnkTbwgZqqaY17x0DQhg8BNxSdsuyEdN9hRN2en0UbXAmr9NhTAgMGr7EIlrHZ98ioqzVB2G6mR7U+87oYBa4xh3LPtxrmZSvXxOeabrooBW0+1EEKKQPwowQ1jRgoypurr4cwNq10Qtlu79XyVEERKGfQfXv1D/NbL/+FwSeI34q3YGrTZhiAG/A2Aa6cArP890kV543aEtv1o9G+q+sFXxudLwNLl6CpKyIjmhiYI+sDWdqAsSqShbCQkgd3QNDRTdoaSDXPVlJuUgt10u3MNqaSzDD3zcUrimIurHY6OFbOQ8q2+yDueNCLVNZGZ3DJkfJygRAE5AxRnLIwSNCEXtaMTJW6aLPPkXFN1DCU3KGfqdP2IKE4QujLUVZ3SWJHqNCEXV9vQ6QUuXhgPADCQACCQJxo3iHADna4bMFG2cYKYuhfIsWWSEKhR3P4ROWpKkFwqP9IIoxhLJTWEiUTOMoxddnE7XkgYJxwaLfDSI6P8xZPzMmpsyMOArgnOLHQ4NdPg1z99VmaXJgmWLn3ZvEAed9HSaSfh+hg0lhy3JAE3kdy5nKnhB9LD7JGrDZq9QEZAOQl5S6Ngmdn4caRgMlq0uPPQKD/w8oNU8yZRlPDQxTqhH2VfB14oRQC+MuT1wpjf/twFfviVh7NuT9PxBzzqkiTB0gUCna4XcWqmQcHWafSC9RzQcY+llottSvPpSt7cEG4uLWA0AWtOcM24pZ1GG+0EqPV3+QYNXuUnJo0WK9oGuqZlPME0uupDj8zy7ntetC33LA12345Qf3GlQ6AeSBI1LZBSHQlUpUo9pmAbvPWVR3jo4uo1eW7XU7sgbLd263ms933bj/DJG17OVw6ceF7fp7/70m8sKz2bJNl32N8Mq+0A3bBmVwQqz+6bo9JdtAwNL5ActZTD1l95SydSmZxs+u3w7YZxTJxI5WycDFeVplO3jUKAlhPy4IU6OVNjpGBRtg1mGo40A47hPX9+eluTSU11YwJFgN/KQFjAOgkcmYvY9UJKtnT0vrzaY6xk8Z0vnqLjh9S7PpHqFjWcAEOTi/VSy8VTB5epWoVcPJ+YaVApmCrHNMpyLb0gou1JYUGg0hHaXoiuCWabLmEUD4RQ60osMNdwGS85TNfyVPIGbhgRJyJLCLAUIcwPk0xw4ocyCDwB/stfX+Sp+aYMvDayJEZ13aQVx5fOr6BpcGGlq5z1kaIRNWb0Qmm62n+PJwloyiclfc+ULzi75hADBctgVBdyFOnH+JFPztBo9nwWmi5jJZsf6XPRf/xqg5GChUh8mo70PGu5gXLdJwOeT8+3+I3PnOOek3s5s9hmYdGjbBuS2xXH9PyQYs7k4EiBK/UuSy0P05G2KDIHNM9cw+W+R2YZKZjMNVyOjBXpelFf3BK0VRTYvmo+6+YM62LBtW0aPvTILEmSbDv+S4Favw1FEMUD2YtBJM+1oQl0TZr+pkrejcrH7bhnabD7dn5jcSK7t54Kte8jyikah7zxj4wVecMtk7zhlsltO3xxLGObdlq7IGy3dusbWCcWzvHjX/4g//yed+EbJrGmP+8ALP34p92X/oqBZh/Q+HpqO5Cia5qcuV1HpU7muia7HkH0jeumCaSa0e8jB/WfJ5CjLEOXi+uwRIKN+5ooHBcmMi5IFzAMe/arS7O/B160t0LTDaSHVL1LGCfkTZ2bpiocGS/iBvG2JpM3TpYpWDprXX/TWLi/qnmTkr0+8pb2E4IDowUmyjFvfdURbp4qbwodX+t5/MyHnlQcJkVwT89nCvgSKFqy21LKG+wfKbDYdAfARBjLFqChyWvg+pH0JUvWHxCyc6QEAnEc8+xCm33VHEfHS/S8iA6K26SAmKEJRqsWdx8a5VK9RxTHHBkrEaVZhWoOaahFu79S241Hr6zRdiJpl6KpLi7rHbZN1xLJL9PF+m+DKEHoCX4kGCvZgFD+eIK2F9D1InqxDBC/bf/Ipi5JOSeDxMeKFgstl5k1Rylupbo1r5SLRyaKLLU8Hr/a5M13THNusZMZr+qaYKxocXi8xEjeZHati6bB8YkSB0bzmVlwqr4t1PKMFExWuz7HJkrMNx3Wen7WMXv50TF+7NVHt+1ivfzI6DW7SmcWW3zgi/5QoHbMKvLUXIvf+fwFfvL1xzk8us7p2lOxB7IX41glb1gy1isVYZi6RpIkhHHMasfnmYV2BoKGcc924jeWt3SqBZO2FwwoaRMSwkjeAyVL43tv25eBra14bk/ONvngwzM8cm5u6O+H1S4I263d+gbVd5z5Ev/pz3+FfOhxYXSaX/3WH3je3/NaDaiNCrOd1HZ8qaHvISBvSJPNnZYA8qbet1hKu43red/tyjKk+3eC5BHZpq6AVkwYSnARKlGBDL6Ohwod+on+ikuOpk5QztQJohj69nurfZ8o29w4KcUYV9d6PHa1gR/J8dbMWo+WG3BkvDQwatloMnl4tEgpZ1DvBtIaQ/l89V/fDGgqcCM7ChFxEtPoBbz0yBjf+eKpge2mC8rjVxuMFC2Clsty2xs4lr7pHA0npJQzKdkGx8ZLyvYiYq7h4SvPMdvUEZqgljdZarsZHzB1pUg5X1G8nn/pBhFPzrc4MlbiRXsrnFVmpnlLEvtvna7yQy8/xEcen2Ou6TJWyXFmqU3LCTM/LyAL6e7/bKSefysdH0PX0AUgNBKl0r3WPadcOmRQNwmGbqApkBPG62Pk0YIJicwefedrj/PqG/ZsGi8PEMonilkygGVIcUTLDRkrmlRyJrrQOLvU5jU3jnPDZAlTl6AkjSZq9AIeurTKfEvy0uYaDm4YZYavKTiq93x+4GWHslFaLW9SyZtZ9NEbbplE08S248bTcy06britTcOl1ZCO1+XAyGBMVb3rc1GZ/F6p95hvOty6v8rtB2rMrjksNl3ypkbbC8mrsbiuCQqWQZKk+ZMWYRTzyJU16soQ+Q++cJGvXqpv2T0eSt5X6lI/iJhrudx1oMZXL69JWw9N4EVJpqROu557Kjled/NmnmZ/pTYXF5a7BE73GnfUeu2CsN3ara+3koS3feVD/JvPfQCNhM8duYvfe+mb/+befoufb9ct2a40sQ7eEuTITfpRbbGtBNpDLBq2K2mzJbKuyHqw9+Zu3jW3JQb3NR0xRHGkum06fhgTqTbMRrBkaAIhNEJFmpOQLDu0/sMkSaTaLk4k4T8doVj6ZmPf9NybmpAATMiR1dnMD0nLlJj9DudbmUxeWetRy1vUbZ+2FxIP8fgQSHuOqONBIsc3QSQBQsEOuO1AdUvOWTlnMFIwafR8hJo/akOuhybgxHSFlhPyqhvGaXshcw0H2wwo53R0TcOPYnKGzv5aniVltdJnRSb/tyLMpXuj6xqHx4o0HBk/dGCkwF2HRnjV8XFuOyCVZymZu2DpPDXXykjqBUvPbEIkB055uSFHl6kPXBjF5A2NHlIhud1TzMbOKaDCwQXVnFQUzjVd1SGVM1YhpEntnnKOkYK9pWIwJZRfXOkRx5CzdRUdFWKbOofHJWBIlbOVvMkNe8p89XKdfZUcQsBaz+ep2ZYEoImMDstbUqHZdRscnSiRt+SDjutHTFVz/Nt7btlylLZlaLatM1mxeWahTdsN6boBlcJmex3Hj9A1uZ1+76561+fJ2aYcW5vSqyZvalnX956Te3nsaoPHrjRY7fo4fkStKEG+5P3F2KbOaNHmSaWejOKEyUqOvZXctt3jjbmWgApAD5VXnsbVsqQEVPIWURxTVQ83UUKWKFHNm1xZ63F0orTlqPZ3H7jAM/NtdE2KYnZauyBst3brOVS6wBpRyHv/6rf4x6f+CoD/dsc9vOf1byPSdu6Y/PXUVl0rDfkFdC3F4tBtJuuSfMvQObGvwun5FsE2QGuj8eZ2JdS+hVEsR4FJsu7FtMPdFchuVxQnjBVtDo7mJeDRBX4IHddnvuXSUeHKUR8ASDZsKEqkjUT6/tfq56UdMzdI0DU5/vOCKAt9T8+5BiSqEzE9kifpG5ul5P4wkqa2/RmbJ/fX8IYYP7bdED+U4E148khSoJ0iBqHe1/Hl30pOk2CkYFGydD52ap5jE6UtuwZ7KjlOzTQZK5is9YKMLwWSnGzqmuTSxTJi6LYDNW6YLPPbnz/PlXqPSAGRNDMwSZLM7qG/0n+KBIQmVZBhnHDvndMcGituybdJydz1njdIUjf1AWNXP4wz/7RA8dA0IcH+ak9GT3GN+83QZaeLRIJGy5R5n5omKFk6PdX5led/fR+jpE8YsUWlZqZ/+IWLzLeWaDkhlqFlI8ZR5a6fKmeXWh6rXY/5hsullR45UyOIYqkY1UTWNTLVCH6547Ha8ynbRsYzW2g63HagtuUobVhodr8lhh/GdPyQBy+ucvehUUZLdpZBmQaY3zhZZkl1Uk1dYOiCC8vtTPUYxgmGrlEtWEwrpeEDZ5Z5+dFRZus9ul6O1a5P140ybpqpaxwdK7LQcnH8ECGgaBkcmyhRypsczxnbRhSdmK5yz8m9/KdPnWGm7hApcUvB0jk0WmC+4bLY9rh5sky959Nywuy8jhUNDo4VafYC2m645aj2pYdH+drlOkJArWARXodp6y4I263deg6VABW3w2995H286vLjRELjva/9p3zgru993hSQ2+3LsJ9tNCfdSelCWhbomoZtaBybKPGWu6Z590ee2vTaNNdROs/vfBRZyunsreRZ6njSmyeBnKFjqhHidikA6i2xDZF1kVpuwOXVJDNn9cKYibLNWMmm7fbWeU1sPleGEIwXLRqOTxTFdIPBV2wHLdOfO0GUjT51IaONYP38561U2ZUoBZg0MI2T1KdLmmcWLIOmE7LS8YdaBRRtnTXHxw8l38pUwdKpitELY5IkyThupiKo24bMJI1imFnrbblYaZrgVcfH+cwzS3KsqMuFXtckeDF0jVrBxA9jFpoOrzg2noGkn3r9DSyokVJViQ4QgpbjS0+qvvOVPjhk51F1qmxDo1awto2YKdo6PT9kpe0PeEZZhgSHaYJClJCBJJD36kTJou4EchzdlyTRf30FstMZJhCpDqLs1slzqmuCkmngxwl+ELG3YhPGIouhMrSE5bYclR0cKWx5HCDBwb+/9yT/6kOneHquxZGJ4oBqMfWfmq7lue/hq6z1Al68r8p802Gl49FW4eGj1Rxl5f3WdgMcJTogStCFBDO6ENz3yCzTI4UtVXzDPMn6LTFypqY8u2K+fLHO0fEibS8c4JaNlixmmw6rHR/bkLkFPS+ikjczS5Gxok3ZNljrBax0PJ5daPNXTy2CgLGixZ0HaoSJzGu1DI2DI3kurvaYa8h/j5fsbNwK63y0rSKKnpxtcv/jc3Rc+dkr2joJAj+MWGp7HB4rMNtwWGx5vPTwCIsdD9ePyFk6U2Wbrh/jmhELTTfrFG4c1T58aY1mL1Dg+fq+/3dB2G7t1nOs8W6DWxfO0TVzvPP7/hWfOf7SF3qXsuonP++kdECoEeFkJc9I0cqcqZ+abRLGUg7fT9ZOo4Dg+nhnjhcxVpJEWD/QiEUsjSeDwddtdPAXff+1TSlrj9Vi4wR+ZkBbyZlYumCtFw7lNfV/RTpBzErHo2AbRJqGGwYDI8WtDktX75UkknPVz5nKUgliCcTOL3do9HxsU8cLI0YKJqYu42yKtp4FTuvKnLQf4AyrMJbGmqgOIqAyCGWEkiEEcRJjGzojBVN23OKEes9H16Tp61Z5ercfqHFkrMhazwc3xI+kXULO0CnYEjy6vjyGfl+kw6NFDo0WOD3fopJf96rqeKEcAwvV9WK9y5qer0Qd+75aXnW2hteTs03ue/gqCy2XlhvgBiG2r1POmdiGLrlEXjRwndP/beiCqWqehhNmP02Q4Eyw3v00dclnC8JYdpqUAXF6vcu2QS1vSUNb26DtSYBiKzPbthdRsg0sQ8vGV9uVYWi89ZVH+LVPn+VKvcdI3qSUMzGEYL7lMlq0SEgys1UhBPtqOWbqPZ6Yla7ytiEYLeZYbLqSVynWHf7dMMLUNI7uq7DW9bcNtB4gsds6F1Y6A93GIJI+b8cnijw13+L0fAtDE+SUGrOcMzh1VX5X2ErwIoTAj2Iajo8baJRskyPjRdZ6MlPTCUKpaDVl3mXHC3l6oc2J6Sq3HahxaqbB+ZVuphzdyoZrq9igdMQ633TRNUG1YGVj6oIlkwyW2h5jRYultsuXL67ihkmWrTm71sPUNV52ZIwHL2wdFv6Vi/XM9Pp6axeE7dZuPce6MLaft7353bTtIqcnj77Qu/P1lSKgxgl86w3j/JNvOZx1OU7PNWW3YgcE5mtV0dLo+TFfvdQgQfpPpduU409pKyE7eXLkmIY493dSNlpuCMgMM5Mk4eBokbbbHLoPGxdp29SxVf7jME7XsEpdtMM4GRAkJPRlT7IOJJ0gxg1inFAap6ZqP5nnKDtbXhDhhfGWxo9dT3JqViKPKB7cv7TrpmvgRhEgI4PkgiNNOdOR51zDGYwj6qvDY0VuP1jjiZn1EOkr9R6Nns9qR4LevKkrVaCsVBH29EKLqw2Hq/Ue5bwM6m65QTYOTMGBEHLMlLrxy30zuOPgyJbAs58wfnisQMuV4M7xI/wwppozMysMQ1vPBJUu+DqaJqj3fAkIN1QauxUqHpAm5Ii564e4QYwOFHMGk2WbyUo+s5M4OVbkUr2bxQRJxaLNwdGC9Am7jpFU3pRxUFdWe4Bc3O8+NMp33zrFH335SkaGbznyfBqGRk4JW1puiB8lWIZOmIQD1iV5U8fQNerdgBv3lLYNtO4nsU9W7My3K/UkS8nx0yN5ZhsOQRhz24EaI0WLkmXwyNU1dKWILVqGDELvBaBUhpiCF++rMFIwefjKGm4o0wHargSyliGTB5qONLs9PF6g3vHpBREv2luh4cgxcn8qwciGsW3R1rmw3MnG2bFSh44ULBZbXmaBIUt2n1uuzAO9uuaw2PYYKVjkbMkjnW+45C2dfbUcD5xdkaNapK1HEMaYhkbZNjg4WmCmIePBxkrajq877IKw3dqt66rvO/15los1Hjx0GwBfPnjrC7xH35gyFDAIwpgvnl/hW46tmzZOlG2EhgzEfg7E+f4KYrmNdLzTD4gsXcNSEvQ0qiYaYluxERzpQgIpOXJL6PkRzyy0tt3PftGCJDlLa4WNY7P0tbomn+yzOCSJJoiHON4OjN0SaYVQsnXCSO5b0wk4PFZgopxjpePRckJ6kYz6OThS4F9/181DR0ZFW8cJIkxdI4gGOz7p+6WRUBoJTUeOptJOkRDSb6sXRFls0TCSdkpkXmx5cuSXKNsHS0bz3DxZZr7p8v5Pn+Wek3v5k69c4cJylzhJMIBuFNFpygDyggK4OVOnp/ygpH2FIKdrWIbkxe2r5bd0HN9EGEemDyy1PQRSAdpwAzRgvGQprzD5fuWc7EoFUcJa18sI+hsBrCYEZVvHU1YIXT+iaOlMlGwmqzKsvGTrnF/ucmyiyGLLxTZ17jq4HhOULsgdL8INox3lCPaDyzsPjGQWFGs9n57KJPUCOQ57dqElgaQCfKnhra5JIF+wpVpX0yCMJGdvT8kmiOW9kMYSDesWpffBy4+MMrPmcGG5ix/GGfes568LBjqetN+wDJ2SbVDOmbTdgJYTUlTWKF4Yc2K6BsATsy0aPemdZuhSAdlypAqy7YboGuSMFLikY/mAZxfbBLEcc1ZyBtXMaFYCpzQUPYFsbPtHD13m/HI342vV8ib1js/BscKABUZahiboRTErbQ/L0NhTtnFVdJOuCfaN5DE0wRMzTVw/wjMinl1s0XLC7DpU8gYHRwqULAM/kkkR1nU4Ye+CsN3arZ1UkvATX/qfvOsL/4OmXeS7f+TXma1uL1n+21SakvAnCcyuObzn/tM8eGGVt9x1gP21Arau40TRlmyHYfyaYRVFMZYuMDSNOIxIFCiTU0W5qNiGTpJIbtiwPMuNP7JVziDIBdULYy7Xnc3HKAZVnyk3qedHquumEcfRFu+ZDIA6kSQEite11TlIF/o4hsPjRUaLNrNrPS6u9LANnbGizXQ1z5V6j6W2y8Gixc9+zy2c3F/b+gQmqABsOUJLeXFJkgx08XRNAkcviAkin9GilRmr2obOSsfjvR87zbnFDk0nQNMEx8aL/PArD3Pr/pp0IX94hr88vUDLlUav1byZkcZT/6lf+9RZVjsehi4o2iahHtNNRQFAkMQUTIMkSZiu5ljp+rL7aMhwPi+SXcutgCcMJ4zfsrdKFDXoBRFFSxDE8t4Nopi8aXBkvMjZpY56vUAXSZb7md4H6X5oyjA2iBNqOYO3vuoIn312ma4XcnisSME2cPyI88tdRosWP/wth/nQo7PS9mBPiXJufYSa8rhuna4SJwmPX21sma24lRqxVpDdpnNLHb54bpUginnk8hpdPxxQYibq/XQh1DhWApkwkiC3YOm4ylw2jOKhsUTDiOYjBWldMd9yhwoGVjseQSjBjKnAUxCuK4UTUMaqCWMlm1v2VnhipkHTDWk5AbYKOg+VuCNNskhhmKEJOmocbBvrZqppFmfLDbF0jUbPZ6HlSm6cLlhsucw2nAG+1sXVDgtqrJsGqg+mBSSSq+kGTJZzvOzICG0vykQo5ZyM/pprOnS9kKv1HkEcYxmSRpAAqx2PVk8mQuQsnfmGmwljdlK7IGy3dusaZYUBv/SJ9/Pmpz4LwP+87TuYq4y/wHv1jS0nkGqyvKUzVrRwgoivXVpjruHynSemmKrmuLLa3To4W+yMFxYlYGuaiqaJCUgyblXaadKFXFxStWKqcxCKxNOvAehXpkVxogjvw987VTxpIhnYhqvUilE0/BjkorL+foYuKOelW3yj6xMMeeoVG/7e0ATlnMkNkxX8MOHIeJGZtR5zTQcvjLF1jVoBPvL4HLquDQUkXS+iaBmsdH2EpmGpxXVjcHqq0gxVVydSnRDb0DA1jWrB4EOPzKpuS6QcyyV37auX6/zzb7+J7z25j+Ubx3nwwgp7K3kmq/bA4iWEoJzTOTXrkFOEeqla9AmT9TFsFCVEhgSs9Z5PyTYye4G2G+wIeG4kjAOMFC1u3V/jwkpHxQZJEn0lZ3HTVJlawWSx7WaLruwQSuJ8kqT3grwuiWqHxnHCWNnm2188xatumMjAyVLb2xRPI5Rj/rAcQUMTrHZ93vPnp7fNVhwGLrP7R5HNF5o9VtoejV6ArkkwknajfWXVYFkaCTFdTwXPI7lYLSeU6k55eMw1XV5z456sw72VJ9hcw6GWN7jz4AjzDWeTYMDQBWEcU81Lgj1IX7S00wQoY1Wh7DMS9tbyJA2HXiA7wTEJ1ZzFjXtKXFztDoCj1DcujhP8KGasaGUxXyemq1xckQ8OXT9irRdwx4Eaq12PuYa7ia91Ym+FpZbHs4ttbj9QHZoWID/TGjfsKQ0VVeUtPfOxazoBpqHR8wPlxSePs+cFjJVsfv57X8yHH5vlkXPzPLblHT1YuyBst3ZrmxrpNfmdD/8iL505TSg0/u23/z/8ye3f+ULv1vNSuiY9jqJYElOnKjb1rs8Xz62yt5Kj5QSsdv0BoKIpLtmwvL6tSnrymMoXSfJrsq5RAkEQSdAj1snTlqH1+UzF2SgzQT6FC0N2fa61G2Gc0M/YyJk6bhDtCEBqAiq2jNRp9gIKto5t6nQVMu3fRNplQ/037VI5fsRo0eKuQyNcrvcoWgYvmiowocYg23kelXMGxZyRjW68UEa46Lp8A8MQKrdSqEzEhEA5fnuhXMxSRWG9K8egniJbF23ZDap3fN73F8/wqacXuVp3mFlzKdoBbU+ayabWCQBeEBNFMbm8KUOgvVAqIROU4lN2JgumhqcsIZwgouOF2bjvWsAzPe5+wnj/+O+O/TUu1eUino6SagW5mK93TgJpIaIJdKHhBtLPStO0TIkrXdrh+EQ561ptFYUD6xYTGzMLp2t5Ftsucxs6MsOu6zBw2V95S6e1EtL2QzSxbhWyfj9KVWze1Lljf42ZhoNtajwz38ZTVia66nATSz5Z6hO3pSdYXwTRdC2PPlpgqeWhC428qbHc8ZhvOBRtg7ylZfd52Tao5A1WOx5CCIqWwZnFNm03IlSj9gMjef7pq44wVc3x3x+6zOWVruR0CZFdp4Kl0/VC8paMWrO1dc80gNGiRS1f49Jqj7Wuxz+++wB3HKrx3vufHg5mNY2bp8o8NddiruEOTQu4/UCNetfHDaUR7MZR41Qln3XBIyDwo+zcxonspEsAGlPOm7z7u2/hrx7P8+dDr+rm2gVhu7VbW9Sx1av8wX3v4VBjgZZd5P9+40/zxcO3v9C79bxVGMNqV36JCgTnlrscHC2y2HKI4lhF04gsXsjQJDhyr8MpP6Vj7B8pYBkuTiBb/wkoP6Y4jWrri7aR2Y8a6w+q/YAniBMCfziKysK0+34WD/z+2lFJGpKoPVo06PoJCJT/WMzhsSJNZ1BRmVa6QOmaUMKBhPPLbQB+54HztF0JKuaajjKjtAYy+DY55o8VOTZe5MxiGzFkr5M4wbQMOe7VNaI4oWTLM9D1YvKmzkjRoudFrPV8vCjOlG8guyylnMFKx+NL51Y5ub9C0dIzMnRqJpsCMV/ZyGti3ZlfCCmDjOkDoUKjktfoeiFxHGPpGi/eV+HgaOGawDM97uN7Snz5ghzNtd1IJQUkRLE0oy3lTIp2TL3r4QQRxybKVPMmxyZKPLPQQtc04kSOmFJPuyRWWaCA68vfndy/fs63isJJa2NmYdHW+R8PXWG24WybrZhe151E6gQqPmq0aOGGEX6YZB0Y29TIGZIn+JLDo3C5zuMzTZk9mchxoK/AxGTFppQzePxqk+89uW9HXTjpsn+Qhy7WeexKY0PXVioZT800ODZRlqkGlRxLLY8wjkniAATYhg5C+noBfPjRWX7idTfw1lce4f2fPpvtwy37KpxblAkJmiYYL+Wo5KTdyEhhfdxb7/pcXJYjxrxlcP+peb5wboV6x9/SyX+qmme163N4XH5WN6YFvO7mPbzrTx/jgTMrGLrkpBmqq1fv+iy1PE7ur3LFCymYOnESE0Sojp2gYGloQstisf77Q5c5fXlxy/tmY+2CsN3arS3qnzx8P4caC1ypTvIjb/k5zo8feKF36XmvUPlO2Iag6QScXWqRNw08FcicdqYS9drIv868SE2QNzWKls7R8RKNXqBUiQmWIbktbS9cN29Vfye5XHLhvBZRH9YFBBs9wvpfKyDrYm1XRUvHNjVu2ltFKKl+vesz13Ayj68UMW7khSVI4GnqglMzDZbbHpW8SRAljBRMojhhqeXRdAJu31/F0KXVwuMzDS6sdDi+pzxw7l51wxj3PzGPH8bYpuTWRcpnK43fGS/lODxW4OJqV5lsJggNbtlX4VXHx/nDL17C8aNM+ZaWVMBF2f8uWAbVwiAZ+tJKh5HCCCDHMzlDxwskKPKjhERZCWRqTSEVrroGXT9EJHBgrMCR8SJCCEq6NgBQbp4sc2Wtt6n7dPuBGvc/PkfPCymqEOu2GxBEkpt0ZLzARCmHH8pO24yyFrBNjXtu3ctLj4zyF0/Mc3G1S8nSeXKuhR9Lo1ydBE3XKNg6X7lY5xXHxrfsym2sfqB2YbnDueXtgU2/OnFopE7ftZhvOiqEW/pjlXIGQbQekSSNiWOcIOLAWIHD49I6wko0ZeMiw8UPjRbYP5Kn40XZ+6dduFxFyxSXKQeq36l/qprnTXdMc2ahzWjBYqqaZ7xk4QYx55fbm871q28c54nZZuYTFiesZ1wWzOw6v/ueFw10Er0gZnokz52HRnnl8TFuP1Cj44X8xmfOZUDNDSNOzTTpugEl2+DkdBXb1DPe11jJZnpkMxBLu88/9fob0ITYdG/F8XrfOh3f9l8HkFxDL4opWgZ5y9p0HRw/ouWF/I8vX0ETgrHc1lYrG2sXhO3Wbm1Rv/Daf0qo6fzmK/43Vou1F3p3/kYriGLcQJorgo8u5EKadqm0ZNDDa6dl6RpRAn4UkTMNpms5en6YmbT6UZjlNNYKlootSZ/+18d6OoqYzuZ9kCoskRl3suE16VJn6uKaxrCQuuBLwvNYSXaBagULAfzQtxzifX/xNPNNT3pJ6VoWSJ2OAhMhndZBKk331/J89fIaTSdQX+YxHQ8+++wyJdtA0+Ti+mufOsuPv+ZYBghOzTT4vb++mHUDvSBBiAhDl9cmSmQ37PBYgdGSzUjRouUGXFzucsu+Kv/+zbdyZa0nVbBRQtGWXLwgSrtKklOnKxfeMEpUmHYfGdoJWGx5tN2AfTWpGnz4SoOO5xPH66T39LSmJG1XdTxH8iaTlRxrXR9DtUXDKKGcM3jkyhr/6kOnWG57A1yqN98xzWNXGxkIaTiBuifA0MEydda6AUfGipzcX+PcUodDYwV+4OWHpJhALbYHRgv82qfP8vjVBoYmKBVNglBmPxZtnVuna6xew0tru9rJeLHfy6pfiXp2sU0lb8nrGEPL8Rkr2bzpjmmeXWzR9UJMXXlcqc0nSULXCynlDG6cLNH1IvbXCoyVLOk0r9Sa6Q2Tvv8zCy25v17A1y7VcYJ4YPx2ZLyEpUBV0db5H1++gqfsKNLjDKKYw+NFFhoORyZK/MDLD1LNm8RJws999CkOj5UGMi5TgNkPRDd2EocJGFKgdnaxzdnFDr0gYl8tz9GJdbPWlPf1zEKLvVUbTVsnHKRg9uT+GkfHS0Ov6aXVLms9n5P7q9KDrs9yZLyUU3YdgcoflYHf/dcBEtwgJIqkZcptB2r4u9mRu7Vb118iiXnzk5/lwy/+NmJNxzdMfv71b3uhd+tvvLLvKSHjfOIECqagaBvSN0nxewTghRFpBN9OAJkXRExWczy70JFGnnFCGMcUbIP9Ncm9OLvURlP8oZRYjhADSkTDEJmvWTEnxwdtJ8AN40w1uF2HzNQFuqaBUnxut+9dP8TQJbBLuwZBlGQGk+WcSb0b4EcxUTjID9OFdOVHJFi6xoHRIg1FiE9Acbc0gkCex64fUstbWIbGxdUu7//0WX7idTcA8O8//gwzaw6jBSuz1fCVorVoG5lZpB9JQOX4EUstjwOjBX7klYcxDC0baZ5f7tD1QtwwVtuQQNePE3KGhmVI5Vs5Z3JiupoR4CUZ2uPOg6O8+c5p4iThbf/ta7h+mClPBakfGAgEqx1f+XcJcqbG2cUOXig90YDM0b/rRzR7PiemawNcqjOLbVbaHj0/lrmNBZNmTyo6SaTidqXj0fZCyjmTvdU8S22Pat4cGCeemK7yljuneezKGm4YZ1mTpq5h6Dpcw3n9WrWT8eJGdWIaqfM7nz/P+ZU1lUwg2FfNc8/JvXzHi6f4+JPzPHBmpY9QLpQVi3xgufvQKEfHS1xa7WKbGoamUSpsfv+FpsNMo8fvf+ESrh9xcbmrYr8k8T0dv3W9BtW8ycuPSvFR2ola6wVcVBFGKWjLmxrJcic7149fbeCHCftqNvoQwDMMiO5k5PvXZ5f51U+dZaRgMlXJDRDo+3lfT821ODJeGhBKjBYt3njHvi3BXgqeD48Xma7lN1mORAk0egFjRQnGmk4wMLLs+aFKS4Cpam5TF/RatQvCdmu3gFzg8qv3/0e+68yXuGn5Ev+f1/7oC71LL0jJBVQCnihKDVzliKlkGwSR9JcyVEagqcsok512xGLkGGtvNc/R8SJX1xxajuSBtN2Q/SM56R2lQMRWvmR+mKBrCbomHeJNTQIGvydjcvy+8WA/ICrnjGwsGYRbjyL7/y5OZBbh2YU2bS8iiqWL/P6RAo9dbbDY8siZOqYmcBQoBfmgXMkZRDFcXOnSdiPGSxaLbReFy5TP1Xq2YapkPDhW4MTeCueWu3zw4RlA8mFSzy053pK+UC0nZKRocmy8xBNzTdZ6Mg5qo6IP5KL3w688zBfPr7Dc9tB1ee4QsvuGOlbb0DPl20jR4q7CCAstl7VewD97/Q186w0TaJrgghq/5UydRs/Puo95BVCDWHouTVZsVjo+XV9u2wkioihFypJDFoQxTTdgueNlwOD4nhKPXVnjSr0nx6N5GZukiVB2IxI5Bu35IX4QQc7c0j0dUF5lCTlTJ6drmIaWxek8Odvkln2VoV5aO6mdjBdP7q8NGNI+OdvkY6fmKVgGdxyoYQhBqPIY05zPt736GEstjwsrXdWZlqUJwc1TJX7s1UfRNLHt+9c7HqcUX2yqbHNmqYNlSMBY7wUgpKVF3tRZ68pkhTfesY+ut+5TdlqFZ/cDEBlbFPD4VRkY/lyA6LVK0wS1goWla0yUBwFYWv28r4bjZ0KJk/tr3Hagyocfnd2U95iqVTfuc3nDKNHxQqp5k+OTJZ6Zb2W8xLRbNlqQ3nR6EDPRZ2K809oFYbv1974mOnX+ywffy20LZ/F0g6eeo/v9TrtB38wluV7yKAxdYBk6jZ5UMGpCY7Rg0fZkmG/K/9GFjDwKt873Xt++UhMdGiuAIv+X8xamLjloi20PXROZC/1WHa10Z70wZqntYeqaDMUWgnLekE+zqjOUMwWjBelkPlayCaKYx2eauIGXHfOw85CWAJwgZLkrKJg6QZJQMHWSJOZ/fvUqQRRTsg2cRCYApBUBa07aIUpwwogHL9RlRmLeUtE7kfIqIrNOSJKYgqnTVg75X7lUJ2dqTKluxLrhpBz3FCydlhPSdkNu2FPmx771CLWCtaU/1Yv3VblpSoYVx3FCiLQDsU0dESrl6UZuDLJjcOfBkQyAoX5m6hovPTxKL4hYbXsyaDmQ42VNE5Rsg+laPhMzrHY8or7sRieQx29q0HZCHr+6RlWRp4+Ml6gWTIJlGZben7WZeqSl2ZZeFNNyAlpOQJTIEWN/xXHCF86uECUJtZyJZaz/vpLTaLmBUgXmrgskpNU/XhxmXbExCWFAoThRpONHBGFM0dCZLNucW+5m/Kl3f88t3PfwVZ6YbeH4ciSWxor1A+yh7++FPHq1AcAdB2qgeFG1gkUll7DS9ZRKOUbXJNCpFUxKCoRbhuDc4noIdwruTF2QN3UaYcAXzq3w/bdPPycgupPaCbgbxvvqeiG//plzQ/MeUzHILXsrO9rnN96xj99Q29o/YqALQaQAs21o0u4liCnpu475u7VbO66bly7y+/f9PNPtZer5Cm978//L1/a/eMd/v64Au778xG/GStWH6XFEcaK6DmRKtLy17kAexTFdL8TK6ZTzFldWu2zTXMpKF5qKlUkyg8csQsQJd6S2zJlaNs6SwDFW/lgapq5x58EaT822SIBXHhulWrAHgpELlkbX09GjcKiyMXsfQyoNe36kvMygkpcjEcvQmG00AFjr+dLnbNhG1PkzNU2CkzBmT0W6ja8G3ib3/wR4drHN1TUHIVT3wNC56+Cg4aQfxbSVK34YJTzmNTg2XmSkaHFinxwhfuKpBSDhxslyxom5tNolTuBlR0a5uubQdqQQwjIEdlGn44WsOQELLZeJcm5LEAF9i2MQU1aj2UPjxYw3FEQJTcfHCWL21/I8Od+SNiFiPWpqXcQglGGudLBPFZnTtRxCSEuMck4CUEtZkpiGRhRJQ9ILSx2cIKLrx5RzOn/04GXe8pIDGUi5tNrNcgI7njQhTT/BQnWCVjsed24Tn3St2sq6YmNHMt2fc0sdCpbOw1fWWOsGyohXMFI0r5s/tdX7x4kccd48VWO0ZEsQrN5H6Bp7ypKXedNUhVrBpGDqXFqV4ohbp6vsqeQ4NdPMrD/WK8EJIsaLNkstLxvh9gPBcm4QrPTfQ1slNgyrnYK7ft5XHCe892Ont7Xh+NAjs9xyT2VH4Hnjue0GUXZt33jHPj6cGvja1zfG3gVhu/X3tr7t/Ff5jY/+B0q+w/nR/fzIW36WKyN7r2sbCXLs9ByzW7+pqj+QG8hAji4kWbjZCwjjOOtCBMrB9BVHxxktWnyk46mA5OG1ToiX5o5JgopckYYGURxnvmGaWOcXDeuEpfuW/i5WXSRLyCd7N4x40b4KJLDcCTB0I/tinWv0iOKEA6N5xgoWj15tZPyg/jKE/PKfb7mUbIPDowWanhQRnFvqZu78kXJr3wqEp1wpXROISCYDNHoBmpCdoliFLtuqM+OFsotkhNLzSioPI56YbXJ0okTXC1nueDh+OAB6/TDm/EqHd/3/HmO6lufscoeOGquVcgYvOTTK2159lCCKafQCJis2t0xV6HqhDOk2pc3Aas/n1NUGa72ArhdtCSJg+OIohKCSNzNX/elagYWmQ9uT5P5QkQhTAJZew0TFB8XI/6ZZl5frPTn+1gSNnk/RNinZJn7oq5G1VM0utDxpVIrADQR/8cQ8zyy0eff33MKJ6ark/oQxN+4pc3q+tYnb0/VCNE3wyuNjQ93thwGGYT/fKWBqu6GyQHBpe+HATd7xQxq9gD2V3I75U2ltfP/ZhsMffuEiU9UcICkE/RE+hiYtaYqWDEPvuGE2MtQ0wauOj/OZZ5boeiFFWwxwoXKGzvE9pYGszH6e27nlTh/PLccPvuIQJ6arQ536hxnapnW9XUYYYoabJAN8r72V3ADI3Ql43u7aan0GvmPmDsYCqnZB2G79vaya08oA2JcOnuT/etPP0Mpd3xNMWjv/uH3j6xsxAr3WNlIFYjeI6AYqukhIvth4yeJ1t0xybKLEly6s0nA6W24nzV8s2iYly6DtyXDfpbanomOSbBSaeYRtsW9bAZ7UbbvnRbzu5j3cfWSU3/zsOZ5daAKCibKUy8eJ9Cor5QyiJOErF+ubwruFJji/IsnLlq5xbrkrw6bzFrqQZN2NYHCr0hSZupwzCSNpKyAE6JqGqaZiukhUcoEgZ0iuXccLFc8kYa7hMrPWQxeCrhtu6rpZhlQ0nlvucmmlS8nWKVjSzqHjhnz+2SUurnTYU8pxda3H5dWuPN+J9HvLmdKzbKqS44bJEj/2rUe3HWumxzVscex5IZdWuxRtg7sPj/CRx3qs9aTVRRhJa4jUzDWNy4oTmQAgtwt+FOP5Eb1Q5WWGMehCgiXVuQoimSQgXQaUl5wmQbofxTw51+L3HrjAr/6j27OunW3qmdggVcIlyLisWsHk5P5BELAVYLj9QI3Hrja2BBLXAkxFW2ep5So3/DTQXd77YSyBevq6661+wFbOGeQUYJGcJ2OgoxoqbpN8MNo8Mrz9QI0jY8XM4LQ/rPzIeBFT1wayMlOeW97UuePAyIDi82On5gH42Kl56l2fqUqOyJZ5mV+9WGem3uMnX3/jUCB2PV1GGFSrrnX97HqnooJSTpeWOH3gcSfgeSsw3L9/uz5hu7Vb16hGvsK//K6f5DUXH+Hffvv/TaDv3Nflm6m+EQ24a20jjRJKgU86MrMMOUL82Kl53vna40xVbM4udrbcXhzLkGFTFzx8pU69K5VGUSyh1lZ/p4lB0LUV4DF1qcZLvzM//sQCH350lrmGi68W/jhJeOmRMa7We+QtnSRJmG04MjqpLyw85WhJ1aD8iQwV13D9iG4Q0tvCAmPjvssXSIBZyZvcsKfEgxdWiZRXmKaUjk4QZ+cVpAFqOadxdKIkM+q6AXNNl5yhbQJgGjJkO4qlL0aYSBNbT0XXCEX6f3qhzWLBpWDqLLc9yXGWvyRnynHcUsvjNTdODHC/tquNi+OFZZ81x8/OyydPL7LW9el6EeWKBEJeIH2piAcBt6ssMlY7PmGcZIDt+ESJlbZHxwsxdDgyXqBoGyy1HM4sdlWGooyfSZ3lpVN7xJfOr3BhpcPR8dJ6125PibsOjjCz5nC53qPrSS4ZAv7oocu85a4DWcdmWLTPly+scv/jc0yUbWlWuo0z/lYVJwldpZI1dJHtdwIIkWRu7Kkq+HrGd/01rFvZnyYQxQnjJRuRSCXkxq7S4bEitx+s8cRMk8mKTRit218kyL9JQdtGJ/6OymG0LY09ZTkC/J3PX6Cg4tHOLLX7gJEMZk9B87Bj2ylQgvVR+UJTBpK7G0QFqx0fTQgWmi63KQvInXYbs2u44ZrcsrfCLffcwhOXRvhf79zZNnZB2G79vami12OqvZqZrn785lfx8Ztf9QLv1WA9186WBsP5SN+gkp5M8ouunDOxdY0gjjE0yd35wy9d4vRcK9uPoccg4HU37eFLF1bpeSGJECpKBrxos5oxPa6dliYkUV2ahsY8PtPANiUJfsQw8cKYhabLf/3SJSbKNo6fY63ns9jyQAhsUxCEcRbgHcUJeUtXNhoJli4Io5h6zyMeYhq7xSEDEhDpmuDQaIGCJReOlY4rO3eKD6drEW4gBQ+RkN2pmybL0g9J8dhazuB1FpD5t/kbcjO9MCFnyDFenICnxqZeEGPkpHO8JshGUx0vxDauT16fVro4fvL0An/wxUsIDY6MFsmr8Ov5pkMYSxFFztTxhLTGiPqUtQLZAdOFNL9MkCrLvGVwaKzI/pEC55fbLLQ8Lq/2uGGyxEQ5zzMLsvsaI8+BdPGX90ISyaSHZxbaHN9THujaFSydC8vSe0oA1YLJsYkyT862mGuc5Z2vPc6HHp3dxCkq2jqh8oQKo4SSLe0ttnLG36rOLXWzLNIwShBC3mdRvB4W74Uxn31mGT9MdjS+2wqobexW9qcJJOpea7jB0K5S/98vtrys29nxNo8CLyx31Lk1ePRqY1MEUCVnMtd0OD5R5MkhasuOK0n+nzy9wHecGE4NGQaUhh334bEixydKfOyJeaI4plawSD+Rhgq414TgoQurvOGWyev2hdtupHpkfOdAbheE7dbfi9rXWuL37/t5RpwWb/zB/8jCN2kAt8ZzG28+nwAs3b5QKr6OF+IoALXa9ZkeyXN6TnJsdF1g65oKF96Qp5jATNNhomzTswzmmi4o/o+upWo5OZIJVVdKiJ2LHrwwyTpB6WhxJG+SU5EpeUsjZ2ostTyWOx4Fs8NKV3YCcqbsoGhCEPmRBCe6hqFJPzInjogSVFzOzoFypLqIuiaYLOfYV8txfrnLy46MkiQJX71cp5YzEZoERKfn2+hCen1NlG32KwfwthfiBDGVvEHVNrlQ76EhQUsKDqJkffEG2YXLFpa+n/eU/9po0cIJwiwKxw9jJko5DowWqff8TV5ZO+nEPHSxThQnnNhXHSBCH52QdiQ9P8INoux36XVNwchk2SZKpB1HpCKFxkvrAc4vKYxmVhk/9q1H+cK5FT53ZhkhFGBXuyOBjOyqhTEst1ygr2v38Ax/eXqBlhtSsnVp6qqyMVMu2we+dInFlrvJAb/thrTckErepOWGmT8ZDHfG37rUWMw06PoRPX89KULXZQ5oECfc9/BVPvvsEmGUbJtHeS2e1bBR3j237uXlR8eYqua27SrtdBTYdkPqHdkJ9cN4UwTQWtfH9SMWW95QtWU1b7LckWPLN9wytSNgtN1xv/zoKB99fE5xWBM1GpV8NtvUOTZe4txy57p94bbqkKbX5K0vndzxtnZB2G79na+T82f4Lx98L3u6aywXa4w5zW9aEHYtAKapp3ySJOvYpPWN4IdtV7FaIExlERBEknfT9UJ6vlQZ2nqak0gWcQTr3bGn59u85NAodk3QckPypkaYJDQVLyZVziVJQhirRXrDKHK76ieqGxro+iCfRuYYmoqknbDW9dX7yX0MlNLONjQZ8BzG5C2dkmbI471++yjyplzkD40VOb/cZbRoce9d+zm/3OEzzy5xte5gaBqGLjs5QRQzWrA4Ol7KPJH8QHbJ9lZz7K3aXFrrKfuOVN3Hpovfb5bZP+xNEsnRKVg6RVuXStcoxgliju8pMVK0ubTSHfDK2mqhe9Md05Rsg7Yb0uj5nFvcHNuz1vU5PdfGUpwj29SxDQ0vkIDM0uV4tWDqaJrsXqUk/SSBPZU+A0whmCjn6HoRlbzJ2cWOPAOJ5PClpSFTAOJQnoeJSi773YnpKjlT49Rsk2PjOpW8OeDqngKp88rMdF+tMHBeg0g6zOdt2Q3a6De3nU9Zf904WaaUk51CTY1SU5K8pklj45yhsdr1aTkh33bjBN1AGtqahsbxiWJmYxEnSWafsB1Q2+kob1jt5O+Lts6aI4FWrWANAKxKzmS14xMlkutYzm1UW8qHlpypMdd0dwSMrgWGvuvEFFOVnFQSu4GM8BJQyZncOFmiWrA23evXqp2En3/08fkdb28XhO3W3+n6jme/xH+6/1fIhx5PTxzmR9/y75ir7Hmhd+s5l1QBJpg6GAmZW73guXXDNvKtrv369S9NQxP4Ucxc06Vk6+hCEauVk/2wfQqjmPmmww2TJSxDQ9c1dEAI+SUokONOxw/p+lEWgK1pgsOjBa6s9QjCmJ1khtu6TLn0gijLeEPZICTAyQM1Vns+kSMJ9qbyRRN9xPFQkellB81V25DXIFVkpvs9rGOnCyjYOrWCRULCrdNVXn50lLOLbe57ZEbGFKnxW78wwTZlNErqfD/XcrENjb3VPPuqNgVLp+vJzEZtAGz1vbcmVDcy6eO2pZmcMkooi2ABrESGeG801NyOF/XppxcZK9pqDBwx33S5bbq27uWUJFxY6eCG0qi20Qso5wz8MCHUEuIkomjqvGiqzGrPV1mXsbpOMhuzYA4C6XT/Wk5A2wsw1TgvivrPhci8zko5g5unygPb6HoRuhDsreW3dHaPFU9pozdVqi6UEU+S0D5s/67lNXZ0vMRLDo3y2WeXcPwQy9AlNzGRoBtkPFaaLvCVIRFDU5UcZxfbfOBLl65txaDGo9ebBNBf6d+nXdEnZptDwVjaxe4vIdJxs7SXGdnENZAdqpGClXl9bVc7AUNfOLfCSNHMMl+DKCRO5PtcXO0ypR4orscXbifh5+eX13a8vV0Qtlt/NytJ+PGvfJCf/twHAPjs0bt45/f9azp2Yfu/+1tQAmmMmiANLoMd8pOG1TA3+i1fiwQlsVogEDJ2p+kE3LK3zErbo6HMRLeqOIHltssNe0p9Ci0DyxC4gfQkk8G/Ui7f80KcMGasaLOvlmep7aOLkMC7Ngrz45jltq+I6XJRL+dM6fivC+44UGN2zcEJIq7Ue5npalPFHyVRnPG4irZBo+er7p0OSUIvWFdGri/k62BH12TX8EV7K3z/7dMULYMHL6zw3x+6nOXgTVVsbpoqZ+o/QxdcXOkC0o4hHfvcfWiU1XGPuYYLIsfJ6Rpfu7xGEMtFOSHtkq5be/T6bDf6/bjiRNpgOEFEwdQp5Qy8MGasaFGydc4vd7ckWoMcOa12fVY6Hl03RBcadx8eYbnjc2G5y6mZBrcfHGGkKI19W05IwZLJAbYhlYkCQdPxeWquhSZgtGRn/mJ+GHF2qUOz52MZ2gDI6VfvVfImutCYquSYbbrSeHbDvSeAE/sqsqvYVzsx/6zmTSYqNldWewPeVOWcQSVnMNdw2FfLZ8kCG/fvWl5jmiZ426uPcmG5w7MLbaI4JooAZcdRzZkcHC3wzGKbricBSSVvDoz3um5IwZZK4wMjxR0Fh29VOyX+bzf+i+KEkYKFSPyh8T4FU88+Y2u9gHLO3GR5sbeaI1HnebvaCRhaanlYhsYjlxsYuoxe6z9/qQjlenzhdpIR6u/kKVHVLgjbrb+T9YOPfiwDYB+483t47+t+jEi7fqn3N2MJsR6S/Fz8yfpJ/NdDLk/fO1UOkkBAgi4S7jggw4/XrjS23U6cSAK4H0Z9Cq2QvKFLtaEGXS+UHQEkJyYBmm7A4zMNGTljGXQ8/5r7HkZgagm6LohjubC6ioR9bKLMm26f5pnFNk/MNLnjQI2Lq11aTrje7UtgrGSxt5rDCWLGSjY9X5lfDlEMpN0xIMtJtA2N1Y7P//raValaVJ01BJRtg7VewFOzLU5MVxlVkSfHJjTWeh7/dIPz/en5Fu//9FnOLXWYLNscGStwud7FC+UIN2/qHBzNkwDnl7oDgKQ//kkIqOVMmm5Axwvp+RG1gslkJZ+NSzcSrQezA6WqNYwTbEM6zfcCGU00Vckx13C4sNzhrsIIQag6N0Ly2saKVsYDquQMFloucw2XlbaLEDkqOQOEiSYEX75YlyHVbogbRAPB1m++c5qCpWObGuNlm4W2R5Lam/RdkwRwg5jT860BsvlOzT9Tl/SNAdu6JhfbNCj+Wp5VW9WJ6SrvfO1x3vPnp3HUw420f5BWKroG7kxEQkIlb2Rdy5Q/Ve/6+FFMzsiRt9a/3xJljhqoBwnXj7btLO3Ut+ta479775xmtGgxVrQ2hWGPFW0mKzZxkmDrOk/MNfGCCCch+/3hsQKrXX9HIHangekILTsn/bXx3zutFMD3vFB+R0XxQFC540dY5s4lRbsgbLf+TtaHXvxa/rdTn+S+W1/Pf73re1/o3fmGVpIgFWBcv0u/QH6BeztAbxqwt2rR9mK8UHoxBX1/J5AkVzeM+MMvXaLtbu8+byvvqziGy/UeN01WODRW4NJKh6YjDSLzavTkhDFaGLOnkuP4RJEwTphvODTdkDje2s6iv9KRUQpAEtbtNr7r1kksS89UX6tdn5v2lAkTqdCaa7oEkezAXVrtYZsarzg6zo+/usIffukSV1Z7FCyRWQxs7MBEsRz3jRVtXry3zGfPrADwD26aYK0XEMdQzOnkLZ2mE3BxpctIwQQh1OKRUCtY3Haglm0zJUf/8iee4bNnlvHCiCSW3LdaweLeO/fzrtffyL/44OMsND3lQyYJ/x0vwlOLvKFLHl7O1NE0qVL0wpiOF3Db/tpAFE660PVnB1q6pkLQZXKCH4astj3KOZMjEyWabsh8y2Wh5ZIzdRJkHmbeNjg8vg541noBPcWpemK2RWGlS61gsq+ap+dHHBjJ0/FDHp1pDBh+3n14RAkkEo6NF/mLJxckt1ATEsj0gU1dkwkBv/apMwP+Uzs1/9wuYPuHX3mYlY6/I8+q7eoNt0zx4IVVvnZpjb3VHJahZwt6o+ep8aOmkiXWK430EkKORNOuXr3rDwRtJyRYhrRq6L+f0toIrHIVjZWOz0PnVzmz0OZff9fNnNxfy7qiqx2PyWpOfSckWcbnuaUOD12oc2yiyJOzLe48UMuimExDo2TpnFNd1jfdsY/3f+Yc802HkbxJKWdiCMF8y90xiN1JN1OOHiNO7q9uAoXjpRyTFXuoCGW7OjxWZKRg8tCFusp7JRsPHxkrstr1ufE6Rr67IGy3/s7UeHeNlUINhKBrF3jTD/4Kof7NcYunnCEYHA1db2mKgH294CstQxc77p6NFE16QZI96UljT7kgrBttSgJ914uuSZoPoljZEAjKtsFXLtXpeiFCQNE2uGmqzP9x90H+6ukFnplvc2SiOKCemqzkODXTUKrKa9d40WKl62fjOoEELIau8eCFOt92U3OT6ivtArzmxj288Y59Gem8vxuVV3wtXZlrdrzNcgoJzKTKb67pZV5PHS/a4FiuUbDkeCZV2W3HKTq/3OH0fAuQY5+coREn0HICPvjIDGMli7WetBpYaDkZx0rGT0lBRRjFxIZGzjTIW9DzAnzlot90gmxfQS50aXZgOk4K1e91TcoC/DBmoe1xaLzIaNHi5P5q5rhv6ZEMZI8STuytMFowabsBKx2PC8sdul7ERNnG0ARNN2BuzaXe8bl1uoahC2xT5/BYEUMI1pyAK/Uuv/35C3zk0TlGSzJz1FNqz1jIxTXrVinbCE3AfNPdZBuRXvvtMhm3C9h+/GqTd7z2+KZ75HqtDjRN8Ja7DjDXcBUQkga7jhdyaaWHberkDY2WGyorE5Ep/PKWTi1vsa+WZ77pMBZaG6wfJNiNooT7HplleqSwydKif9y81gt4drGlAFzMbMPh33zwCf79vbdStA0eu9Kg0fOZbbgD3LQj4yX2VvOcW+7wAy87xFzD5dxyV9phFCyZMtHXZT0xXeUn+z53qx3/ukHsTrqZ+6qyM1tUiRd+nGBpAsuUAfVRwnUT80/Pt1hqe/jqAS/N2FxpS4+9m6fKfN9te3nfDrf3zbFC7dZufZ31kpmn+N0P/SK/87I38zsvewvANw0AA5TiTsiQa5HsiFg+rFK+z3NRQuoCjo4XccOYq/XetmBQvocgimTWoaEJpVzSEULGtXh9BxEnCUGUbLtfKfjTkoQLK11CRaS29PXcvj/6ymV6XsTxPeVNT7dCCI5NlGn0AhoE1zzejhdQK0jOSaxGHjlTo+1IGX26KN+yt0LuZQc5s9hhY85if6ULVhglvPamCTq+PDdfvrBC0x0EYiLbh5CnFWhCKUpHi4MZkIYmcOKEIIy35RSFYczvfP48jh8xVckhxPrII7Xe+JMvX2WsbHFkvMS+moy8ubLapb0QoGkqciZKsxk94kR2RsM4YaXj8amnF/na5Tr//NtvygKZLV1jRuVY9pRYIowTRCR9x3KmjuPLAPFK3iRn6AOO+wtNl/sevsrVtR7PLrZx/IiG4xNEMokgTqQ7vi40dAuIY67Uu4yV7Ixwvdb1WWi6mYeWH8VUcybnlztESGVlCobDSC7CQpPnXwD7atqWvCiRakzF4Oh9K+I3wGRF2lh85NE53n3PiwbulediqrqVBcQt+6rkTMmPTEF1Cn7GihaTlTwJCd97ch/3PXyVR682CKOYat4kSqDlhhQtgxfvq7Da9TcB0X5e1Vov4MnZZh+A0zGDiKtrPX7pE8/wsiOjXFzpYuhik/VE12tyy74KXhAzVc1lx3J2sc2l1RBdkxSAf/Ith3YUAbST2kk389b9Vb52ZY1L9R4CMQAaEQLHC6+LmN//HfCyI6MZhSFSD1Ty3shx81RlR9uDXRC2W38H6vuf+iz/4eO/hh2FfNezX+T3X/LGbyoABqmSUGbcfT02Euv07+uvKIGZNUdm3vWp+oZtKyV6V/ImHdXWz5sGofJfStVPQoHC1GSyn3u0VcXIxWGiZFO0jcwotKfy8rww5thEcVPWW9mW+Y/93JftquPH6FpMtbxuTxBEMYauMVWVuXGfPL3IQxdXt+XCpIvq6fkWX71Yp1aQ56RsGzRjP1NxpoedjgCTOCFKZLh3ydYxDdlB2+hYbukampDAYphjefr+n392iatrjhpVDXJOUuuN5a5HwR6MqOkoUrehrEU0NaZNA8m9UIY5V/MmQkC94/PLn3iGRtfn2cUOX7m4SqBuGE2s53q6geSEVfJS7RhEgyAyddy/7QC4YcSv/NWzNHpBdo9Yqrta73qMFi1qBRmh0+z5zKw5jJXsLPMvVVjWChZBJDtRCdI5/+paDz+MFJiUyk9T12RUVAJBKDs6EyV7k+3GAL9JLeBPzDaZbTjce+f+axK/NwK7681E7K9hoOTgSIFf/PjTGW8xdaA3dW1ARPGGW6Qv1VPzLeJE8tT6o4VGihaWoW/a33TcnKtoPLvY2uTdlTN1/DBmte3x0cfmiJKEsjnITUszPmVOqPQbOzpRIkkSPvDFS3S8LnGcsNRy+fCjs2hCDIyFvx615nb+ZbcdqHL/qXmpnI0TRgpG1p3uek1OKGC6E/5ZWv2gtZQzGFXik/Q7SiSw2vX40vmVHR/DN9dKtVu7dT2VJPzUF/+Yn/rinwDwiRtfwT+7559/0wEwkOajQpMS7eQ5Eurh6/cB6/oRet960r+9jQBPU4u2LuRoLWdqMhYGCBPpsRVHCVofHtgJ11WOBQVuGFPKyS6aH8aqyyKBwQNnlshZcnHfKMnPmboMTd/B8bbckFIuJGcapBL4saLNRMnmqfkWf/DFi0Tx1iaYAB98ZIbHrjS4vNql6YaYGhRtk7GSlNJHMQNeY0mSyBhpTaApc9coBlsI6a4OjBYtTkxXubjcYaHlkrcMwijZNI7pX9Rn13r0VGdH12QGYqI6kHEaTRTFjBRM5psOx+0SbTfECSJypkwSEMjImSCUUdcpOdkyNCxDI7XwmG24vPdjT2ejXJAcQckDVNexT6ShaZIvuBWIfOxqg4mSzYnpKvWOzzMLLWl6G8rcIieIKNpycS/aOm0vZKklVbT9CktIx42yA5OmDnS7QbZPOWV9kgBxFJO3NMIoZs3xsxzGndgb3H9qfkfE7xTYXYu0vpMoo2GgJO32nFfjvZoa720UUUxVc+yvFRgrWcTxerRQyoMY5l+W8qpWOn52jvsBZxgnGLpGtWDy7EKH/z977x0n2X1WeX9/N1Wu6jidJs8oeDSa0Ui2JVvGMhgDRhhH3mUXFhazttnALgtLNngddknLu6xJiwGvAbPvAg4ECQzGxtmSLVnSaDQKk0PnVLlu/r1//G7dru7pUD3TcdTn87Eldai6Vbf6Puc+z3nOKSQNGl4Qf1bUez7Xyb57byf7uzOcGi7xm5Fv2Z7O9BzBXcV70S6WI6+zNZcTezp4ZqQcj3Nz0XbmE1eKHN9daHuJAhZZBhAiNuoFmKo6nBmv8tv/VG77+LdetdrBDtpAwnf5lb/7n7zp9OcB+F/3vpVfeeAHkaL9rZSNRIj6Y9OEIGnpCJRNgL3QcXUDsBQBXEjINKBie6pouyHTNRdL1+KC3Sz8rZl3zd9d6lXpgsizSxmh1pyAYt3FiyJ1miRuouphaB49WXVnrbLelObizqECuo5a518BEpiquHRmVKcmZRoc6MnQcANm666yMBgqLFqEf/8L56m7PsPFBtM1D8lcCHnd9QkqkjBy9m/+D+a83JrETAJdGZPBjjRnJ6rztuyyCZ07Iw3SXXs65o1jFhZ1IeFKZKnhh5KsZeAESu8lpYw2XiVHh/Kcm6xzdqJKytTxQ0naMnDq6jVYuspubGq/hCAmOJWGR7Ghfq7V+iKMCKalqUQEP1TdMykl5YZHJmHgBcGimp5m92CwIx1ptATGhEbV8TE1AUKLOmkSUxfIaGxUcfy4yxBEzwfEovzzk1UCKSkkTWYCJzb3dYKwhRwK8kmL2gKX3XbsDUZKDQTX+oQ10arda4fUtRNltBjadatvEipD08imlz/eJpq6qkfOTROEIca8DfK5m5ZcQnUphzpTDM/a19hP1BwfTRPcf7gbYN3ei6WwkLy2bvVmk8a8wPamt56hizgjtF0stwwwU3M5ebVE3Qvo6Gw/i3iHhO1g20HIkD/681/kviun8DSdn/+2f8efH/82DME1LvJbCcpYW9KVUSHWoyX/hlzub+R3V4IEJqoOmlDiaEtvrv+rbSPbDzE1tWXpBnKelma5Y7JavB2CMGSm5igtWUTmgpZWmh+qUV7CSKDijNQr9oIQ09AJoiihleAEIdNVl5SlM9hhomtwYboGqCLULBKta/1qcWCarrQVjTNCOlKmKvJeoDY0mwI95pu2NtH8mibgh191kI6MteiW3Q/ev4c33jU075gXK+oZSyeTMKg0PDxCZuquMguNDMIarupQnJmo8Ybjgzx5pcjJqyVcP8QyNAYKaixbc5VhpZTKakHXNBKGThiGFBtuvHUHiojrmkBEo1U3kBiaxNQEfhiiC8GhXVl+4BX76MkmyKdM0pHRabPALuwe5BIG6YROsaGMVhHqvQ9DidRCGq4fOeqHOK5PIhKjK+JHlM6gtlOa48m0pTo0XiAJQnBkSMpUo2vbV35oHWmLWqQba8feQAP6C8m4q7iUjcX+7kxbpK69KKPF0Y5+ql3bjdbRW1NX9cJYheFiA9MLSEbEvenbdaAngxN52KWt+YSmuWmYT6px8l17Otb9vYCVdXcLz29nxuKedGdM6jVNMF116S8kl3qKRbHUeyyl5MJklZrtMdiRoi+3Q8J2cBNDCo2HXvJqXjJxgR9588/x1X3HARVbYqEKxVZGse7SEblCI66NH2oX6/0q/RCEkBhBSFcmQSjDWExd9wIcz59HNFZ62zWhHPN1TaMRWV40IaPuURNNgun4IaMlm1zSpCerhMjlhkvS0JDhnGHqYmg+RnMzteEGPDda4dxkjXzSIG0ZpKPNpsXW+ksNj46UFY8xNE2Nd7wgxA/B9kM6UjrllmVNTRMxgWl2krIJg2N7Cvzu587HW3Y6UHHVmO3Pv36FAz0Zju3uiB9nsUImNMGRgTyPX5zBiYivqQsVXO0pndBdezoo1j2eulLi51//Ei7O1Pif/3iGC9M1jg7kEUJQtj2+cbnIRNlWnVlT3RTU3SC22mhu4CHmOkoyUN02L/L9CkLIpw2+69ggp0bKS+qgrukeCMG+rkyUH6g0ekKozvBUTeUnmppaYvjGlSJ3DBTIJnWmq260/ahc5TMJAykVKevKWNFnUkXiNK1TvFCStnT2diXJJIy4C9SOvUHS0vmuYwN8/BvDy9pYaJpo27NqNVt4C7GSfqpd242F3aejQwV++vW38zMfP8mV2YZaxNG1WE/WkTY5M15hsJCiYvv07Upyz945QmPogvGyExO8p4dL6/petKO7W/T8towOq/bqBPlNLPUeT1Ycxso22YTSwyHc9h9zVUewgx1sIoxg7o/2oye+k295x+/FBAyIYkYEYrFf3kKwfaVnyaXMJU39Fr6G9X5NSz2flFD3QmquHwdy+6HE9nzcACxdbTcut2VpaJAyNaxIjGb74YoWG7pGrF1rdsg6UgaZhE4gJd2ZBNmoW7HUa5DR4zTtNGSUoGhoSsNSaniMlZQtwKnhEjM15dDevDAHoWSsbGN7QTwKS5g6XWmLhC4IwpCqM+eaL1CfwSD6H0KRpP5Cko9+9XLc1bIMncvFBpemG0xVHZ4eLvEzH3+ap68W42OPi/qCJYR93RmODBYwNPX63CjqKJc0uHtfJ/sjq4AzExUuz9Y5vCvHux44xGAhxdnJGlUnIJMwObwrg64ropWMupNuoIixEHMeWyq/sSnKV68xmzDIp0wShsadQwW+dmGap6+W6EhZ7O/J0JGyePqqGqWeGi7F3YPRUiN+rKHOFP35JJomcCO/qXJUlDtTJglTozeXQNe0SGxOHLA+WEhG+aSSsu2RMHVu6cuRMHTqrq/yTXWNrrRFT8ZCF3B+skZX2oq7QIsdU/y5ibpGt+zK8boj/fyH197CnbsLFBsuF6dqFBtKzN2qa2ot+ouh3SijG0VzdLnS8S7Esd0d/Mpbj3Fsd4HeXIKXDOQ4vruAqWucnajSnU3wrgcO0pWxODtRpeqoDUrL0BkvO/MI3nq+F80R/XKfN2j//K7GKb+Jxd7j2bpDyjI4truDzoy1qsfb6YTtYFvge5/8FG9/7K/5nu/7FUoplQM3nemIv9+ccjXv5NdzVHcjUGmG6jg9L0DXNDQRxvohmBN4t2KtX8vC96e1Y9Q8hnk/G3Ue6q6PH1kT6AK60ibphAohnqq5hKFUG5PR1lTdVeaqgVSRNaHnL3kMrZCIuDPmRGaij10qkk3oZBImtw/kMaJR1kTVi19DKxRpUN1G1T1Rz+iHIYOFJFWnxrOjJTrT5oKtMEWiEoZGGCqtkheEWEaLIznqsZvaL/UY6jgVYYi8z/py1N2Ac1M19nSmV7QB+NnXv2Tx7lELenMJ8kmLUIbs687QmbaUZYW2uAB7KU3RKw728PxYmVqUW9l8LZpQujEhVDZoGCpySfT5MDSoOz7dWYtswmCkZC+v/Xkwv2j3YF93Rjnva4KUqeOFklxCjRVTphp7daQMTo2WOdid4fV3DvDohWlODZdxgxA8Ymf5zrQ57xMgxJydihuELPx0rKZrtF6jwPXC9Vo/3Lm7g599/Uviz0nTpLhVe3aoN7uiNm293ovV6u6upyvYLha+x8W6yx988QIJc/WpLDskbAdbGkKG/PTnPsKPfO0TAPyLpz7F7973Pdf8nB85h2cTunJujzbWDF3gbiGhWJNcaahNRUMXcfdO14XStFxnnMZqcA1hgShQO+pWuUpv1bxGedFKXD5pcHW2EeUACixT2SWkExq7NMFE2cGXEkOqDoupmxQbXvyEzZeWNNTG2lKnJmhplTXJYSiVKaymadRsL9IfGWSSNpdnGvHWHiiCaBnaXMiyrqvHCCWOH/L8eI09nSnOT9UYKdrkU2b8Ouuu8lZqrt4TWWh0aIK6G1JquHihJGVoGFEXUEr13gwU0hi6GvH151XM0ZXZGkEQ4gUBz46Wo5BiM7aZaNoAtHqXLVfIDF3psbozCY4M5K9JSl6s07BUYX5mpMRHvnyRc1M1fD/g/LQKSO9ImQhN+XN5QBDIuEvWcAO6skn+5X37+MKZyba0P0sRwQdu7aXi+Hzj8iwa6vPfaqsAcKA7y2zD5bb+HN9+Rz/np6r8xj+e4eJUjTsG82iaCvN2fUlXxqLY8NCEwI5ucpp+Wq3O6GE0pvyOo/186ewUE2Wb8bJc0jB0vUaB64XrtX5YicC1Q/DW671Yrdas3YWG60XrexyGks+9MBn/va4GOyRsB1sWKdfmfzz863zHC18F4P991ffxu5ER62LwQzXrD0NAqJgcEOgiWLS7tB5o1zohPp5QGWc2fbaaouh2adhadfxCFAHxQhETHpjrkEnUhcaTc5uQuqYpYXWEpGlQSIfM1FSuY8NTgvC9XWl25ZJ4QcipkRLSC9E00KRABCtHEGna3EgMAfmk2tTaXUip8cikTsrQGSs7cdcqkzSUU3wgSRp6zFOaOio/DKk4igyVIh1YxfbneSsBPH21iOMHBKFkpNSIOkbqcbxQkk4YFFIWVcfDDSRVx+PE3k5ENMYbLTXoziR4drTM1WKDqqOyKVXci0nC0GMbgKZ3WbOILFXIxks2HWmTlKXF56eJ5ToNixXmO3d38Gvfczwuql+7MM2HvnCeUkOR3EJKkWg/UOPJwY4kL9vfzQ++ch9SwqdPj7et/VmqgD91tch7/uoZ+nIJEpY+z1Zh4eNomuDwrhw/8sAhPviZM7Ftg+MHkYO5pDttcbA3S8rS40y/UM45o1+jKTI0+nJJXnVLD8cXbKiuButd9FeD6zGMbaIdwrkSwVuP9+J6dHc3agjbLhYSz26znSqgsEPCdrAlsasyzR984v0cGzuLoxv85Hf+GH995DUr/l4QWQIo4bDEC8O4yxRugGC/7T+9iNnIEExTdcNcPyTij5gabbnqJwxwg9XFGKmNt7nH12n6W4FAxtqvps5JHa7aYHQD1SFrEjMp5zdicgmDYt0jbWncva+DREsOXqmhxpWhlPgBWIaOoauMxYXH33x8TTR9t9Qxd6TU2C+fspipu/zoaw+jCSWMziR0Qin5zc+c5bmxitq81MQckZRKP5UwdbIJg9m6S18+SVdWhUpbunaNt9KhXVmeHVWRNkGgSLKGij5qXseHOlNcnpbUXJ/pmkup4WFoGqOlBoYmqDo+fijVUoJQ59rxQrzApSttYftB7F12cboeF5EjA3nefGKQP3/sKmcnKsqvKWVwfE8nx/cUePjk6Jp0GlqL6vE9HezKJ/m9z59jpGTjR4sYgx1J3nh8kAePDcZF7PxkdUVx+8KO3GIFvJAyKaRNkpbR9uMsLPLFukeIpDNpcVt/7hpdTtMZfaxkxyOtVi+vSzN1KqfGuKUvd0MFeqOK/nK4EcPYtcRavxftLFMspjW7UUPYdtH6mTx9abzt39shYTvYcjg8dZk//vNfZLAyxXQqzzvf8m4e331kxd8TzJGRph1Ek4BtwISvLbTqrszIc0qFTIuY9CRNjYShUWr4y3aJBJBPWQwWUpwaKV8TIg1EGh8xz3QzRDndm7oyYk2a+lz4duvGIooMKoNM5evU8AIVCYMyoB0pNehIWaQt1dGp2B6ZhMr7K9a9eTl44yU7Fner16u8n1KmjuMF8WhSAGlLj53BpVQbpClTI5s0qTkBugY1R/mMLQwlftcDh3j/Q6cZLdkYmsDzgzj7splbaegCux5yoDtDby7B08Ml+vIJPD+kgk8uYSBRMT29uYTKt7QMnh+vkLUMdF3D1FTe4XTV5Y6hPOcmq0yUHS5N1+nOWtw5VGC65jJSbHBiTwdPXikyU3fRiHzSgpCpmkN3xlLeZVHBzCUNTg2X+NAXzvHYpVnV3ZXqc7Erq8KP7xgskDQ0Hjo5ymipEVmJrE3X5Y13DfHg0QG+fG6KyYpDby7B/Yd6MIz5SyRrpf2Z9zhW5prQ56Uep7XIlxoeH/3qJS7N1OlIz7cHaB7LnUMFvnp+at39qzaq6C+GtTCMXUus5XuxlXR3S6H5mXz6Yid//qPt/c4OCdvBlsNMuoCv6Zzt2s3b3/YeLncOrPg7EVdQ3aWWrxuaGl/VHDVqcvz1H0q2apgWomluqGI/5JyOqYUleoEEwhUJmBBq/Dq4LxmZito4fkDzJTYvUU3H+TsGlUi86gS84kAXZycqWKbBRNlWuXuLMNVQCjrSJkMdKS7P1NGF6jLqUVemZPvM1l3qroYRbdN90y09/OtvOsgnnxieN4rY35Oh6vhMVl0qtoftz22zCgG6BBmJwtMJnUpDEcdQqvctlzDjDMggZMkNq6NDBd5+/37e+9Bp6k6A44fYfkDC0CmkTDRNUKx7JAyNNxwfxPYDPvPcOM+PVzCjEWvK0klbOp0ZiyDU2d2ZJpSSyzMNRcCi2JZm+Lapa7ykL09HyubtrzrA7f05Qil579+cjg0j79rTwaMXVGh5IBQR1YTgYE+WjrTJ2Ykqx3Z3UHV8/tvDz/LcWAVNqE4RqBzExy/P8nOffJoDPRlm6x62GyCBXfkEbzg2yOuO9C1LINodUxmGxgO37VrmE9ie9udNJwZXfL7m4zw7Wuazz0+qhYyofakJwcHezJKdvdYib+oaH/zMmSWP5b6DXXz00cvr6l+1mVhPw9itgK2mu1vuOA/0tP/52SFhO9hymEkX+IH/533MpAuUk+19mONw4jCklWd5oXJ9V8V8+YDptdJXiWWuAUHspC7jPL6FaOrDWo8L5kaEWkTwmhYCF6bq9OdTXC3asV4JIg8pSRwrdGaihhX5QX3m+QlcX5JLKlF4ytJJGho1N4gdyb1IryWAS9O1OCBZCBH5Okk6kgYzdU/ZOOiClKkuKZoQ/MKDR+YV4FLD45f+9jk60hbPjJSpO34c+q0J6MgojZQWeVkhlE4tbenkEiaWoVG2PboyFuWGy/E9nUve9b7uSD8PnRzhy+emSUeGna4fMlt3SZk6lq5x38FuBjqS/NZnz5JNGOhCUPcCPF/SqLmE0uI7jnbxpTPTyrxTMC94WwgRh2+7XsBM3ePY7g6+445+NE3w1JXiPA1LVzbBvQe6ePJq9HVTiwj3XNzPm08M8vFvXOV8FJTcmuPXZWhMVR2eH68yXnZ4+f4uBgqpuAh9/BtXGepMLdnpWI8x1UrZfU0i3tbztf45iCW+fp3H8pa7hwhCue5eXpuJjTBJ3WwcHSrw77/lMB/5ykWVmBBCIWVsiu5urbBDwnaw6dDDgF/8zIc41XeIvzj2bQBc7Bpa4bfmIwjlouM4mG/eqou5MG1Q/94c1a0UPm1G24srwdS1azpucxonRZzcYM5fShPEHZ8mJKq7t3C5vtlhE1HHaLAjxZGBPJdm6lGmIHiRMM0PFcEJouf1A2XPEEq17RZERKvmqrDfQsoknzLxApXlaHsqFHm27hFKNTpMmhqWoWN7IQ3Pp+7OHc+uXJK9XRlGijYf/MyZa0Yf5yereEHISMkmaWrkEgmCUD1Xww+o2D62HrK3K0UgQ7IoghhKGflIKa2VoQm6s4ll73pPj5aZrLqEoSLou3JJ/CBUo65Qcmtfhn/9TQf4xBPDzEQhvkDsmG/ogvGSzaXpBgljTofSGrydtoxIryYZKdsMFlLzjmkxDUtXNsFdezq5MFVlpubiBiENL4yLSNrSeXq4TCjlNTl+QGQXEUa+Z4qIt9PpWM8x1WLan5rjx9mBKz1fs4Pjh5Jvvq130ZDqdjs4y+mQrkfDtp2wEYaxm41TwyU++cQwk2WHMFSf/75ckjefGNyWBAx2SNgONhlZp85v/dWv8JoLj+PoBl/cfzdj+Z5VP067HSyVLTf30xI1EgtRW4q6VB2zpvi8SXo0AboQeG08kyZUBl7TH6t5fJaukTBUJ2ohBJGHWAsRjAz15z1jk6g1lxLv3N3Br7zlTv7h2XF+7e+fp2q7lKMNUVNXZDMIJUJTJFUTgmxSpyttMlp21JhWCGSk50pkE5F7esiuXCKO8jF0jUzCwPYCak5AEAS4kQ1IV9okkHDrrizduSRSykUJwd7ONI4fULM9duUTCKHheAFVNwCU+WnaEhzqzXF+qkrV8ckl1XZe3QtI6Cp658TezmXveuOiHkjuPdDFhela5IQP6cjHpy+fJGFqnLxaIh1p4nJJI7aqUO+xxni5QV8uyaWZOocT2bng7akq5YZH1QnIpwxetq+LN0ck6qkrxThEeDENS1fGoiOlQoUP9GT5j996mIM92bh71jS5NBYQDi8i0U2Nn9fiybFcp2MjxlQL1/Xf//Dptp+vtYOjaRr51Hzt2Wo7OEvpkLaDpuhGcL3C9e2ChTcSAx2peKniNz97dsP1bmuF7Xk2dnBTYKg0wR9+7L3cPnWJhpHgx97wE0sSsGZXaDVYbLy48L9bBfxCUw7wfgiEikgJMacjW2mc2XxOL4g8twxo+IFa7xeQSxmEQTgv3keyIO4n2r4TQvlBOUsYafkh5A3BD75yH4ahcWtfNrJSgJ5sgtm6hx/OGXA2Nx4NXWmrNE2nI2UyXXMjiwS1ndlwA9wgJGno9OWTPDtWJmXpSKDc8JCyuRmo43vK+kO5sBtYEcFZihBcnq2TMNRmYtn2SZk6ZVsdp5BSvWeaBkI5eJ+dqLKvO82/uHcvVduPLRNW2rBqLerZpEFXxoojVkxDQ0i4PFPnl/72Oc6MV7AMLery6fTnk3RnE+SSRtQ5kLzqlh4qp8bixyykTG7dlePidI193QZvv/8Agx1JPvGNYZ4eVgG+aVMFc9+1t2NJDctgR4p3PXCQw7ty8bE3n1edYznPAkRtls652Td1aU0s1enY6DHVap9vozo420VTdL24mUnmzax32yFhO9gUHB95nj/4xPvprRWZyHTyw2/9RZ4euGXJn78eOb2mqa6SlCt3yiTEpMXSNSxLxw9CBCIeU7bTbdOFGgkGocQJwlijJYHZqtvWY4SAIaD5m62asFakLJMj/flrXkfS1OlKC2brLr6vumtNFFJm7OqcsgwynsoLdDw14qq7PvmUxb6uNElTw/ZC+vMJpmouXiBJWboacbZsMnqB+t2sFV1OpOrYTNdcnhsrx6SpYvuYutLoXJypMVN1aXiByi+0DLIJ5e3l+SEiqYr1RMWhM21xz76uNt45hWuKektmHMBU1eHCVI3urKWInxDUHJ/pqstI0SaXNOjOWvTnUyRMjeN7OrilL3eN1ujlB7p5y91qbP6Bh09zfrI2T1R+eabOs2Nl/vnL9/LklWJbfkn7uzPcOZTnykxdnYsWTZjQVOh504B0YUdjqU7HRo+pVvt8G9nB2UpeXmuNtSKZvh+uuBm70biZ9W47JGwHG47XP/cl/sfD/y9J3+XZ3v28/W3vYTTfu+bPI6XSQul6+1uRoVR7iWlTpyojgbyMRpJyaWPRJtEKgbQuaEQdLEMHDTU+WlWJiywkhFDO8kE459uVNHXSCZ2a6/Plc1M8cNsuak5AZ9pCSOVTlbYMOtOmIkiAFm1itl6/glCSNA0O78pwarhE1VF+XXXH59kxpUvSNehIW8zW1Qag54do2lykUHPMqglB1fXxA8n5pt7JD/nDL13k6xdneevdu+NimzB17tnbyZXZOs+MlMkmongZP0SiunJw/eTgmqIu5byw4bPjFQIpua0vyzMjFUYj6wzLUDYWjh8yXXWYKDs8cGtvTCIX0xoB/NifPclzoxV0DTIJM96ArTkez41W+OyzE/z69xzn8mx9xa1ETRO87Z49PDda4bmxCsW6SyYKGa86yqzU1DX2d2fa7nQsS3KkZLJi4wYhxbrycbuRTkIYSop1pXWbrNj055MrOvpvdAdnK3h5rRdulGT+1ZPD8zziDF1ldb7rgUO88a7V6XTXEjez3m2HhO1gw3HL9BWSvstnD76UH/3un6KWSK/L80gJCDkvzqYd+IGk7vlkTJ1GNOITkiUfp3np1iImZvvEsShBSCyGXw20aGGgK2VSsn2cIERGBdLQBZauYXs+kxUHgExCJ2XqmPkExYayLggiJ3YpJYWkSdlRG4IklOlo3fXpzjQ9vhTps1rueHUhsEyN6ZqLQBXzYt3FdcO4MykgJlFTVYerMw0ano+USnc1kE/GYux//y2H54rtriyFlIUmlF2EH2U0WobGmYkqB3uysY/acLGxqkK5vzvDod4Mj12cJZswGCvbNFxFMEOpLtQ9WZW/2IRazBAYGvhBiKFpLWd27pwsvMs+O1HhsUszCKHIavN3TF3QkbaYqbl8/dIMF2dq88aOy+HoUIF3f9eR2Ces1FDZmNmk2gJzvIDpSNSvR+HmFdtfstOxFMmZrbmcm6wwVnZImzq//8XzfO6FSd569+7rIinN7csz4xVGiw3OTVbpzyc41DtnnroYqdqMMWE7/lU34jq/Ho/TLq6XZP7Vk8N84KHTNNxABbSn1ILR5ek6H3joNMCmEbEVu6WOf13Xiq2AHRK2gw3HB1/5vVwp9PHXRx4g0FYfeNouNK1JnFbHgMJI59Rwg4jIqS6JJlQUz0I0Bfyapjpv3RmTuhtSc1Xcy2ptL4zo2iElTNVclSUZPUgYKmd221O+V725BKeGS3zs8SuMlBqUGz6ZyOOqv5DE0DTOTSoReWfaRIaSmYhUpSydXbkkT14pYWiCVx7swTT0eZtpTw+XmK17NDy1sbZwO1QCs3UvCnJuUHOV0B9N5UNWXZ9DPWnOTdX5yydGeMuJobjYpkwN2wuw/TDOeswnTWZqLrO1GQIpSZo6//tLF0haett2CqdHy8zUPK7M1qk6QWyAm7EMHE9p8rwgZLjYwPFDujIWDc/H9aXaPESZ4O7vTs/LG1wML4xXqNp+5OW18KIvyCaUNccL45W2SRioQvob/+wE56eqvDBeBSS39uU42JPlb06O8HufP8fZyeq8bsW/fMW+Rd+bxUiO7QU8fbVI1fHJJk3u3F0gaeg8fbXEsyNlduWTzNbdtq0sFoqmj+0xOHm1xGjRptLwuXN3B0lTX5JUbbUx4VrZeWyWe/1qTVJ9P+T3Pn+OhhvESzMAKUsjaWpMlB0+9PnzPHh0YFNGk8t1S2eqDk9cKWLoYtXXiuvBWpPqHRK2g3VH3q7yn770p/zqq3+QhqXGE588+i3r/rxBqDRaq+1Cxb8v50aAmhDctSfP1y7MqmDr6GckinxZusANVDclnTBouE4shm8XrduYSBlFGUWu/9qcNi0IJQGSpKl8q5rF73BvjrOTFWw3oNgIcf2QQ7uUEaihq0zEquPjRq7tKVNnsqo6aXfuztOdS15zTId6c1yZrVO2VTZi8/1oHm9zsaASRfNoQlDzlcN7qe6hjVdJWzoHezKcmaiQSRiq2D5+lb8/PRYbsQqhArBTlk7DkUxWXXRdcHSgQH+0BdWOnUIrGchYapsT1AjM9kJySYNCNHa8PFMnCENySZNMQlfWHF6ALyV3DuXJJMw4b3D5s9bu2V0dmjmJreTt1HCJh0+OkjJ1TuzpjPSHUG64PHxylENRcPFCzCM541VemKjQ8AIGO1Mc6FFbnwDdvsWjF2a4MFXj5fu7SBWMFd/7xUTTWZQ57YXJKmNlm5PDJW7dlV2WVB0dKnB7X27T9UhrZeex1rYg69lR+/K5KUZKKsi+ScCaEEIjnzIZLjVi+cNGY6lu6VipwcmrJQBu7++gv5Bc14SA9SDVOyRsB+uKfbMjfPhj7+XQzDAFu8qPf9dPbOjzNwnT9fAwU4esZVB1Avwg5OJ0Q8Xo+KGyjxCKhkipthWb3aWZqkvVUd5bso2A6iYiE318VKRR000e1BinNQ2g6S/2J1+9zEzN5VBPmvGqS3faYgYPPwwp2T5nJ6t8+5F+ju0p8IUXJnl2tELS1Kk5HrP1kJSpiMpoySZjmddk7qUsnSAMMcRch66ZbymY76vWFOhLCQlTj01lq47P6dEyg50pKrbP8T0dJE2Nk8MlDvVkkcBE2aZs+1Rtj5obYOiQsXTyabNtL6xWMtCXT3B1tkE2YVJueFEkk2S27mHpSldVdTyEmEswMDSoSxmJ3lU80kqC8Fv7smQjXyxT167RM9Ucn2zS4Na+GxcLt76+W/py856rL59YcUOsOab64plJ/sc/vkBnOkFfPhE/jpSSC9O1OBNTivZ8yJYSTXdlLDrTnYyXHWbrDv/6mw7wTbf0LkkcFitwzfHoRnXC1moLb623+da7ozZZcfADSSK1OOFVRslz8oeNHrHC4t3Sq8U6lqFxYk8HXdkEsH4bk+vltbdDwnawbnjZlVN86BP/lU67wnCulw+9/C3r/pyagERkLeGFEhkqnVG9nTTsBfADqLoBgZToQjBbcyPLAA0vDJVRZ0SMdKAjbZJPGgyXbAIpr/H4WglSznXfMpaB44d0pk0qtoffEqptaJBLqiDr06Nl0qbO35+eoO4GsY1G0tQZKiTJpkxefqCTP/rKJc5P1XCDkLrjR4770cKBJpiuuthuiaNDhXlErOEGkT+VKqrFhkcQjSSFiPInNSWqbzrsZy0tvuhpAnRTvf/jJZuUpS7yNSdAF4KBjhS6JtgdEbRi3eX5sQpJ08TxJV7LQsVKW1CtZMD1A2quTy16ra1wA4kXqK3Q7oxFzfHIJAzqbkDC1NkfRY60Iwg/2JPlpfs6+cILU5RtD0vX4g6hG23HvmxfFwdXEWOyFFa7IbZUoexIW1i6HmVizj1OxfbVODthYHth2+/9cqJpIQS9uQQ1x6cjbS1LwLZC5uFabeGt1bmCjXlvenOJyBInjP9GW+FGSy1N+cNmBYS36t2eGyvzh1+6yEA+SS41Py90rTcm19MiY4eE7WBd8KZn/olf+bv/SSLweXLgFt7xll9kMtu5rs+pCzB1HaGBQJAwZFRwVTHRVV4QQRvMqJlFqQlBgHKXD0NJ0lSjq4bnR/oi9WCDHSn2dqWZqDiqawXz7CnagUSRmqSh05G2GC/bmLpGylJFUXl+Kdf6piv/bM3lYkMJ25VuTUUVNTxlYjjQkeT/+9oVnhurYOiCIAgVSTM0vFBStT2Spk7CVK/pwlSNzrQJQsQi6sFCkuHZOoFU70PsntHy2pqj0vmmGnPf1AV4oWSk2ODWvjyZhE4gJaPFBvmUGRulekEUZi4EugbmglHUwi2o1uI1XKzHZCCQIXV3joAttPmQKAF+PmUyVg4o1j26swkO78pi6VocI7SSIFzTBO989SEuTNY4O1mlFCpiLoQasx7uzfKOVx9ckzvx1WyILVcolxI5e0FIEHmT6ZpY8b1v4kYtJloL3KHeDFUnoFh3MXWNQ72ZeY75wLp2YNZqC2+tztWRgfyG+GPdf6iHwUKSy9N1kqY2byQpZUi54bGvO0MhbW46WW7q3Sq20p+mE4t/rq5nY3IpMryeFhk7JGwHawsp+U9f+lP+41f+LwB/e+sr+fHv+nFs81q90Zo/NeCFgcrpEQJdCDQNXAkpU8NtjhFX6FA1a49EFdJQqrgiLbKNsL2AfNKEpKRiB3RmLF6+r4NzU3X6C0nOT1bRBAhNEKwwjtSiYp229MghXaBpguN7CnzxjMtMzUXTBFbU3ZMSnMhUNWOpLEUvlKTNuVFYa/dptNigavtoQhGviu2jaZoifBq4qPzCtKU6h9M1h2JDxQM1RdRvvnuIp4dLzNTcOD1A09SxhKHECWSUY6leqSJSekzM/CCMNG2CqYrLqeESf/H1y1yYqlKzfdIJg56MxcFdOUxdQ9fUCLM3cuyfqTqYhkYuYcwr6AuLVxCRRlVE5rZZ4/FaRBJ1TY2PQwk/eN8+EpbOl85OMVG2KdU9bDNYtSA8kzTIWHqcUKBrgoQuyKyhO3m7ZGes1ODj3xheslD+aOuWaovIufW935VLkku050N2oxYTzQKXtgyeuFxkpu7G72FX2qI/KnCfPj3GIxdm1rUDs1aeZe2fKzsmWYudq7fevXuu+KNycJumw7mEsWbdHsPQeNcDh/jAQ6eZKDvkUyqr1fUVAUtZOu949QH+6smRLWOYutb+csuR4fXMHd1UEvaFL3yBX/u1X+Pxxx9ndHSUT37yk7zpTW+Kvy+l5D3veQ+///u/T7FY5P777+d3f/d3ueWWpU09d7C56KkX+RdPfgqA37nvbfzaq38AKTZGWCvndT1UTI8MVBF+3Uv6+fSzY4tuN4Iiac3vNUeMzeuIqWt4QUCI8tByA0nV8dA1jXzSYE+n2v7ryli88mA3Xzk7FZnEqqq/GOlLmgLHk/HP1SMLBU0T3NaX5V+9cj9PXikyW/PRpCRq70UvVI25kpZBreaqCKOoAyalnOskCWVAW3N9cgmT2bq6gCOibc6IqAZS0l9IUncDxss2l2bqdGesmIjc3pfjV5PPMV11r33PmXPiV7NUZXMRhDI+lkTUufNDZQb7s584ydmJKl5EWJy6R6nhMVl1uHOog1CqiB7bDXj8UjEuyLmkjqlr3Hewh4rt8aufep6Zmkt/IUV/txLkXpmpc/Jqid5ci/2EnBvlgspfbHY6Z22Xf3vfLbzprqHr6rA0uzjlhgoWn6l78fF2ppUeba0KUztk586hAo+cn1m2UH7yiRHe3LKl2hQ5C4g+Q7C/Oz3P32s5MnWjFhMV22em6jJRsak4yt6k2U6sOj6zdZdc0uTDX75IEMp17cCslWdZu+fqq+enlj1XD50cxfFCHCPg+fFyFL+lPl/5lMG+rgyOtzb+WE37iaZPWNn2MXTBvu4M73zgIHcOFfj4N4a3jGHqWvrLrTTyfevdQ+tmKLypJKxWq3H8+HHe/va385a3XKsX+tVf/VU++MEP8kd/9EccOHCAX/iFX+Dbv/3bOX36NMnk+ndWdrB6TGU6ecdbf4Fbpi7zF8det6HP3bx2x/8RwTI0jgzl+PSzY0v+rg3TjlsAAH+1SURBVPLdCufHCEmwvWDeSMvQNUxTdcOCUNLwQyq2x4m9nRzfU+AfnhlT24stvxPp9+cTMSnQhYxIjOoq6RqkLZ2MZTBWcuhIWZTTPjXXx2/NCdQEHUkDy9CV+D8iN810ABGRLEOIOGewZHuxwWrztQVSEiIRArIJRSbzKZMfftV+bu/Pzws+7khZlNKKLIUSwkDGz2Pqao29IZWje0/GIkTExp+6UMLfvV1p/vHZCZ4drcTnBanMUQMJxYbP08NFjg118PRIiemqQyZhxGPUkVmXdMKgM2Pws594mquzKlx7tu6RT6lw7RN7Onj0wgyjJSd+/1s/H83Oo4gIaspUl8DVrvQ3cXG6xpOXi0zXvCj70ojNWmfqiqg/cXl2TQpTO2TnvoPdfPTRSyt2TrLNLdUFlhCvONjNeMVmuuZiGXrbZKodi4mlRj2ZhM5ExaZY99AEmMZcF9Xz1ai46vikLI07hzrWtQOzVp5l7Z2rLj766OVlSc1IqUHD9bk8XcOPQt3jz1fNpVz3GOhIrVke5BvvGuLBowOLbqg+daW4pQxT1+pctaP3euT8DId6M5waLq+5ofCmkrDXv/71vP71r1/0e1JKfuM3foN3v/vdvPGNbwTgj//4j+nr6+Mv//Iv+d7v/d6NPNQdLIPDU5cZKk/y+YP3APDk4G08OXjbJh/VHCxD46NfvYS9jGt+xbn2whEyv4uVSxrctbeThKE26SqOz5WZBr25BG843s/vfu48I8UGui4IfRl3iaSc/7impqwlyg0v6lipzpWlCzozJmXb46GTo5i6xj17O1XETzPjURN0ZSz2dWW4NFNDQ+CEC/IooyeWSBKGGj26fogm5o6nVSOlC8gndcbKNvu70wwUUvPfmyhu6PaBPOcnq0xXXcLo95KmRso0qLkBuztTTFUdpqruvHHGTDTO+O4Tg3zwM2eR0DI+FRi6RhCGNLww8u0y6UibzNYUMWtq4dKWjmlo/J9Hr6hw74RB0tTjglRz1GLBsd0dPDtaou6qzo7e7Ppp6rlAYnsqH/P+w93qXLex7bXYz5QaHiPFBoGU8yKGTF2QT6pzOVJsxIarN7pVthLZaY5N2umcHN/Tsaip5+nR8nX5dS1nErrcqCeha/FSSdIy5ixQBFimTt3xcXxJbza5IR2YtfIsa/dcLUdqhJQ03ECNiFv8u9Tny2Ci7OD6IXs7187w2jC0RW0otmJA+Fqcq3b0Xmcnq3z/vfsYKdprbii8ZTVhFy5cYGxsjG/91m+Nv1YoFLj33nv56le/uiQJcxwHx3Hi/y6Xy+t+rC9mvOrCE/zOX/4Shgz4nu/7VZ7pO7TZh3QNPD9kzLGvIUOtkBJMA9wFXKz1VzRN0J9PUGwo64dyw8f1Q752YYbzk1UsQ2N/d5qzE1WWUoIJQGgart/UT0l0U6Mna8XdIEMESKk8tRKmzt17Ohkr29heEIdM19yA3myCKzP1JRcNQpRbfyZhYPthFOMUjZxaX5cQPD9exQ/VePCX/va5eUVyrGRztVhXbvtSWUf4UmJoGqauxpn5lMFPfvtt2JHp42LjjJmag+MHaoNwwcVO1zQShiKLX780ix+qEWdP1oqXGxw/YLbmIZGkDJ2kqccTs4Su0XB9Lk5VOba7g4aboSdrRUan6rH0yIHfjcj4S/d1cbg319a211I/c6A7jROEpKM8zrrr4/ghGqqIWrpG3QsoN7w12ypbjuycn6ziBSEnrxbb6pws1gG8kVifxR5vpVHPPXs7AOJYLEPXrtETNuOkFsN6dGDWKtpoOe+z85PVFUmNFIKUpZNJmpRtn7RloEdpGnVXGe1ahsbl2fq6jwC3akD4jZ6rdpco+gvJdTEU3rIkbGxMjY76+vrmfb2vry/+3mL4pV/6Jd773veu67HtQOGfP/kp3v8Pv4MhQ762+wgjuZ41fw5TUxqe4Dp/X0A87loOEghWeBLfDxku2lyYquH4AWnLIGVqzNQ8Rks22aRJznIIwnDRrcjmaFJKScMLAEHSiHIlQ9WxK6RMinWX6ZrLoV1Zzk1W8PyQqZZO2HDGwjQ0bu/P44fLW294oXL/10TLBuOC8WggJVUnoCdrsbszHd/hNd3TJRI/UNuhhZRJIKHmKPH+gZ4MVcfnZfu7eN2RfjRN8Poj/XzyyWGGiw2GOlK8+a4hLEvndz53FiQLdyfnvT+hhGJddc5aO0ugCnzZtiMiK6i7Qex0L6NcT3u2QS5pkrJ0/vU3HeQ3P/MCZyaruEEI/tz49HBvlp/8jts4PVpecdsLWPJnnhkpowlB2faYqDj4LX4YoqZGzIWUxVTV4U8fvbzuW2V7O9M4fvudk6U6c9c7nl2IdkY9j16YUX5kCQPbD+Lz2dQTGrqm4rL8xf9A16sDsxbRRst5nx0ZyK9IagYLKcbLNkOdaS5N1+Z1NrszFnu7M5Tq3oaMADcjXmo1x3a9n9fVdPgO9mbXPHd0y5Kw68XP/uzP8uM//uPxf5fLZfbs2bOJR3TzQQsDfuZzH+GdX/8kAJ+445v5me/4D7iGucJvrh6WoVNzr5eCRaHabXpErETUqm7AxakKjj83evIC5Z+jCQ3H8zk1VmGpqaeguW2piI9lRHf8oWzRawkShk7dC9jTmeTzL0xSdfyYNAmg2PDIJQxe0p9rKxfTDyVWlDfptgjmLV3D0AR11ycf5RK2FslDVoZ/en4SAZzYU+DUSIWKo+7G8ymTYt3jwlSN43s6eOs9u+fGTo9f5enhEnUvIG3qPDdW4a337ObIQA49Eujr+rV6LUUy1X8v1i2LLTCk2mCdqbkxqRJCadAcP+S5sTKvvb2PwY4kB3flmKl7FBtKE5c2de4/3MO7HjjEkYE873/49LIE4eOPXwVY8mdODZfwgpCqM/cZbRJw9ZpUd+zhp8coN7x1N+5MWzoJo73OSd0N1t3vqZ1Rz0ixTtJUcVndGUttrjZzUjVFypOGju0H8We3ic3swKzU2WzH32slUvNdxwb46KOXSBo6d+/tpGL7caxYLmlQcwJsM9iwEeBWi5daC6y2w7dWNyhNbFkS1t/fD8D4+DgDAwPx18fHx7nrrruW/L1EIkEikVjvw3vRIuXa/MZD/51vP/MIAL/+qu/jN1/5vfM2qdYSjRsgYE20ycHawmzNpTunNFOuH1C2PXJJk7rj03DDuBOy6HNGYnBlnaFIg4iKrh+EeFHRcYMQSxN87vlJarYfk69Wq4Wa4/ONy8W2CaYfSqQM0KJgavX/aoFAAv35a/U2VSeIyaFp6BwdKnBhqjrvblzXBW+NLr6nhkt84OHTnJ+sqd+LDvzyTJ1nx8r87OtvZ6gjyeXpBq4XXCPADkIV+q1GTwEpS6eVqkU2b3FGJ1xL5IRQHnHFuscHP3uW2ZrLPXs78aXyRJtteLE2sB2CcHK4hIBYJ1duePOK4L7OFM+NzUkeRMs/m6fG9UOeGZ7l5ft71t248/VH+zF1jWO7C8t2Tp66UuTvTo211Zm7ER1bO6MeXdO4rT/H01dLMXE0ow3bsq283l66rwvL1LZMB2al8/Dvv+Uwn3xieEU7h3c/+JJlSc2RgTyPXJiOQ+/zLaakm0VA12pUu1Ww2R2+LUvCDhw4QH9/P5/5zGdi0lUul3n00Uf5N//m32zuwb2I8S+feJhvP/MIjm7yk9/5Y/z1kQfW9flW73N/LRYbDV4v3FDiByEzNR/HDxAIdOFTdVSxax37LUTTvFXTBSlTiZEdT40uZ6oOaCqmyDJ0DA2eH6/GAnhl/qlFUUaShi8ZLtbbPm4pwZeQ0NVoShm6hnEu5ULHaSA2uUUqXV1XNkFneu5uXNcEUxWH/kKKMJR86AvneW60gq5BooVgOX7Ac6MVPvyli/yH197C+/7mNFXbx/WDua6RVMsKP3T/fv726TFGIzG71aIPcvwAUxfKDy5YJHhbKr+uowN5zkxW6MpYHB0sxAWwI20xJGVcAN9wfGBFgtBwAxBg+4sL3bOWQRjOjZoXksImyrbKpFzqedbKuPNLZ6ewDLFs56Rh+HzpzPLWCM3OXKtI/3q6Ze2Oer7/3n38b/8C56dq1FuEmZoQ3N6vRsfAlujAtDNi/aOvXGKibLdl57ASqdmKI8C17gZtNpodvo89foWnh8s0XHUTeGyowFvvWd8kgE0lYdVqlbNnz8b/feHCBZ588km6urrYu3cvP/ZjP8YHPvABbrnlltiiYnBwcJ6X2A42Fn/4sjdx29Ql/vT46/nG7pds9uG0hbUkYWGg7BbCyKE+YartwyCUbXWlJEA0iizbftzhCiXIQBICbuDHY8smqVPeWcoE1dQ1LD3EicK923ltzS1IJXZWI520peP6KuNyMSc3U4++Kuac64UQ8d141fZJWjq5pMH5qSqPXZpRthcB1Jw5Y1cr2tD8+qUZfvS1h/kv330H/+vz5xiebcQ6t92dKd71wCHecGyQkZJNqeExXXNUJyQaTaVMjc6MRRBKqlHHJGVZOF4YRQ5p3LW7A00TVG2fQz2ZZQtgudGzIkFQBc/n5NXStRYUNZexkh2/tyIS/jc7gLoQGJoy+pUSqrZHR9pa9HlWbdy5xOuaKDvsyivn86U6J/u6M20RhE+fHlvW9LUdHVu7o57XHeljqDO1YhFspwOz3rmG7XRQz01WCEMY6Egt+hgLlwmWIzU34whwq0Ig4kSQjaK1m0rCHnvsMb75m785/u+mlusHf/AH+chHPsJP/dRPUavVeOc730mxWORVr3oVn/rUp3Y8wjYYL7tyiicGb8fXDQJN5yce/PGVf2kLYS3HkZ1pg5Ljo2ngBOE1theaEPPF2VxLAgMJrq/Ih6Wr+CBlwwCer4hY0HwMqQhY81kaXoDnR+aokTaqnVhMU1PHkE8aKoQcNU5NmxaBlFyaqXM0NV8In03oaEJdlLLW/G7RwlHIp54ZpVRXo7qgSURQCxVeGKJHmq0XxivLehEB3LWng4eeGsEPJLmEHr9/thfi+iHffXyQv3tmjIYXIDy19diXT7C/J0tXxuLqjOoQZpNm6wFTcXw8P0TTBI6nIotWNNQczPO1izPUbG9RoftIyY67YJY+n8pqoulfK0kndGYbHkNLaJpWY9y50hbXqw738Cl7bMnOyf2Hu/m/X7sSjXsXf5yxUsBDJ0dv2B19NaOedsZcK3VgNiLXsJ0RaxCqDvNa2TncbCPArYZrxsvN5aThEsPF9Y1j2lQS9prXvCbO2VsMQgje97738b73vW8Dj2oHMaTk7Y/9Ne/+7B/w58dex898x4+um/ZrPWBEo7vryO5eFElDI5UwmWn4sf9Uc1TWfApdE5EpqOqKSCnjMWTK1LBMHdcP6clZ9OfynBop4/j+POuI1nd4sUP3Jfi+RBdqdCn9YMllAABDQCZhxlmYXhQz1JNNsrcrzUipQSZhLFokD/ZkQMDZydqyBTSU0RZqPJIVLaNGGRHNMO4WLuVFFIaSJ68UySYNvEDFQrX6hGWTBqGE171kF49fKjJQSGIZqhunYp0ks3WXbNLAiD6rszWX8y1aNonqRI6VbO470M3pkTKnhkvs786QjqKRmq/vFYd6eOpqiYylM1v3sAzl/i9QhLiQNCjh4/shXhCSNOcKc9MOw9QF9x/sxg7kDRt3ClixsN+1p4Nb+3JLdk7Sls4nnxhe9nFCYLTU3jhtpbHUajo5NzLm2qgQ8HZGrIWUQV8uyaWZ+prZOdxsI8CtgvUM524HW1YTtoPNhR4GvOcfP8QPPPEwAKEQaDIkFIvf/W0FNKNopFQjMFODhtd+H0xjeQ3a3XvzPHGljEBgaFIFVS+IJnL8MB7jCeY2M4WYE5YnTA1T08ilTPXvhokfSLUFCfNMVZeDqQsylhpPxlYNi/ycrguSps7x3QVMQ5vnoF51AroyFt9/7z4euTC9aJGElbU4KVOLRfzNzlDz35sHFUpJylw+wqrpQF93Q3QNult8wlw/oO6GPHmlyI88cIjRkhMVXEXMGo7PaKnBQCHJwd4sI8UG3UHIqWhT0zI0EoZQuqhQ8t/+9ll6sgncIGS27jJTd+lMWXRlrXmGmq4fkjB1KjU3PkemptGbS3BrX47zU1UmyjZ1N6ThBZhaU7emXvjh3izves3hZd/Hdow7NaC/kGS01FixsGuaWLJzEoaybWuE5bplq/HmWu9OzkYW0nZHrG8+MchvfvbsltJy7eBarGc4dzvYIWE7uAZZp85v/dWv8JoLjxMi+G/f/EP8wcvevOW7YCHEBd/xQ1yisGnRnk3Fcq/O0AQXpm3V2TAUiQpC4i4NSGw/6vQIiRcRoubzm5pGw5doYcBQR5J0wmAs0j6Focq5bHbMFnbDloJl6HRlLWbrTWIQ4PghkacqAkiaOkMdSSxD6amW0+S87kjfkkVypQLa8MJ4/BaCyruM0CS2mmDJ7M4mWh3oC6n5x5sy9diBflc+sWx3BeB/fuYMX7s4Q931EULEruyGJkgaGrM1F0PTeNn+ThpuwIWZGhnL4Pvv3Rt7nv39qVHGyjZSSnqyVrTJGeIGIX6oHP4HO1J878v28H++dpnhoq1MRQUkDZ2X7uviJ7/jthU1Te0YdyYtne86NsDHvzHcVmFfqnPSzoiwaY2wlu7o69nJ2chC2u6IdUfLtT3Qrlnrenmx7ZCwHczDUGmCP/zYe7l96hJ1M8GPfdd/5h9ufcVmH9Z1oWlZ0K4oTNmnLvXjktmaCrD2g5AgVB2F2D4i2mxsXv7V19SDNWOJ0pbqQqVMnYG8xWefm8KNnOxl/CyRDcMKx2pqSjfWX0ihCRs/MCjbHpavmFzK1DA1wT37u/mBV+zlt//pXFuFe6kCtVIB1YTaiPSCMArvniOCAqVhM3WNlW78yw0vdqBfrJi2OtA/cNuuZcnhy/d38sUXJglC0IQiy0ldwwklNTegM23R8ALqXkAuZXJ0sBCZh87yuiP9hKHkkfMzsc+W6nAKLEMnLSVl2+O5sTIP3jnAD7/qID/0ygN86dwkp0fLpEyD+w93c7g315amqX0Bez9Dnel1j9SZZ42whdzRl8JGF9J2CdaOlmvrY7PjmHZI2A5i6GHAn/zZuzk4O8J4tosffusvcqr/8GYfFnqLXmq1CCMSFKw024uw1E/5oQqnNnSBH8hrYomCQG0qWrpgVy5J3fEJpCRpKnH7nBDexDJ0xssujh8sOXJc7MsCSBgqKsiJNEj3HujiictFpqsOQ51pdA2CEMoNl+5sgh+6f3/bBeNGtspu7ctRSJtUbB8hJU7Q4npuCCSCXNLg1r7cso+TT5kkDG1RnzBQ/mEJQ4+3/pYiNWEoOXm1hKGp6CNQ3mwSyWTZIRSChqcilLxIULewYwJwdrLK7f05zk/WKDW8eduRQSiRAu472B27zL/mtj5ec1vfNcezEtZawN4OtqM1wlLYjELa7nnY0XJtbWx2HNMOCdtBjEDTee+3vouf+OKf8M43v5ux/NIxRGtp+7ASduUsRsvuDTzC2hypmjReq7uKBeiAoWv05RJ09ee5OKPMMhcK4cfKDa7O2iRNHWcJUf1iR2waAl3TlO4NRRpeMpDjm27pjQlWzVEE6/iezmvuyJfKsIMb3yo72JPlpfu6+MILk+i6IJuc7xMWhPCyfV0c7Fm+GBVSJoOF1KI+YW4QYmoaA4UkhUV8zVpxcbrGaMkmaelomhbr9BxPmf+amsD1Qyxdi+034NqOieOF7O/JkLaMWNzfCJvnM4FlaPQX1mZbe6ME7K24WawRNquQ7hCs7Y8ds9YdbC6kZLAyyUhebap9/uA9fOHACaRYaSC2MkxN4LVr6b4MHF/GonaYG3O188hhkx2tERaLNmrNYlTbkQLL0LhlV5ZSwwMJhbRJPmlSdQK8QFJzlBO+MmCVS4rqW+H7kkD48fZlLqlTSFlt3ZEvFif0uecnees9u4GlsxHb3SrTNME7X32QiYrN+cmaymqMTpShadzSl+Edrz644oVsf3eGu/Z2LOkTls8kOLG3c8ViWrF9NCHoSKt4JUXaVLdKRCfMDyXphEEuMXcZXNgxaXZXOjMW96Q7Y5sL09AQEoq2tyndlY3CVjuepbDZhXQH2xubecOxQ8JexDADj1/61G/x2rNf400/8Otc6hwEaIuAtTvcW44srbSN2ETV8UkZGnUvnKediiRXKx7LGjlUqMeSauToBXOkKZRK81RIGHihRCD52sUZJVSP/ILyKYMD3Rmmay4DhSTnJiogBKnI0kAQYPvzX8nC9yfemIysMXqzibgjtNwd+bJxQqNlduUTa7JVdnSowLsfPMLHHrvCY5dmqbkBGUvnpfs6edtL97R1IdM0Mc8nrCM1N/6rOQEV2+P4nsKKx9IcTw0WUthuOG+UqPIyAwxdY19XOl44WaxjsrC7kou8x2TkvP9i6K5steNZCtupc7eDrYfNuuHYIWEvUhQaFX7vk/+V+66cIhAad408H5OwtUIsMBfzO0hNctEuOXIDiRs9QNNBHiAM229yNTtpi9k/rKZR1gyMTphKrB1EcTkpUydl6dh1j5Lt4/ohQkA26rJMVRwmyg639+d4zW29fPncNEhl0trcjlwYd7TYcRlR5JHnSwxNY29netnjXRgnlEmYLaTG45nRMucmNe490A1cm414PVtlQihLjBC1nblQYL/S8T55pUhvLoEfqOxANc7VGOq0MDTBU1dKvOHY4LIXx9bx1B2DeS5EOYqNUGLqAl3XyCR0CimTIJRLdkx2uivbC9ulc7eDrYnNuOHYIWEvQuyfGebDH3svB2dHqFgp/v0bf4bPH7xnzZ/Hb21bteBGOlOhBE2qPxZdY547/XJIR8VTizohoGwsmqSnKWhfCaau4YcSK3ocQ9MJQ4kXhJQbHhIlnr/3QFdc+Oc261RA9dGhAllL2S3UHaVRWuypReQ/1vyeREUONQjIJy0sQ+PybH3Zi0YzTkgIpbfyAvW6NSEopEwmK248+nt+vMxszcX11fivkDK4pS+H47W3VbYWrtNNq4FDvTkyCX3R7MN2SGHreGq65nLbrty8EO9swmBXLsFs3WOi4izZMZnXXRmvcmnaQ9MEh3oz/KtX7t/prmxBbJfO3WZgvSOddrB67JCwFxnuvfw0/+uT/41Ou8LVfC9vf9t7eKF3/2Yf1qoQoi4mq8Fduws8M1qhakeu6XK+jUIuaVJueMv6iZkadGcspqounh9iNEXjRMacEpKWTmfKxNA1TuzuYLziYHsBSVMnmzCYqbtUbZ/eXIKK4yOFXHJDstm1a5LY5qVSBUZL3GCOHC11cX1hXL3mlKkzXfMiSwy1tRibl7qSp4dLuJHjffM9KDU8xss2+7ozK+qe1soss9VqoDWnsonVWA0sHE81Fw5evr87tmFopyAdHSoQSslHvnKRiuMRhJLxss0nnhhGCLHmRGytCuXNWHDX4jXdjO9LO9iISKcdrB47JOxFhPsun+SP/+wXsUKfJwdu5R1v+QUms52bfVgbgnsPdvPygz385ZPDTJZtFaNDSNLQSZp6FI4953y/EALQdY0DPRlsP6Bq+7h+0KJ5kySiSKJnxytIqXy8dE2gCZVvmEloCCEYK9n4YTN2aL7WrVVD54eqG2ZocykAzWgeN1DxPJmEvuzFFdTYtGSrBYGmnxlCbQo6kf1HzQli5//myDeUYPuSyzMNKra37Pu7VmaZa201sNJ4qvVYwlByfrJ6zc+dGi7xW589y0zNZU9nZq7Ddx1xOCsRgLUqlJtZcNeL5KzFa9oKRGQzSOBGRTrtYPXYIWEvIjwxcBun+g8xkuvlJx78TzhmYrMPacPw1XPTVJ2AbMKgY1eO7qzJqeEyZdvH8QNsL1x2HKlE9pIrM3UEilQ1/cIkkXt9JkHZ9tCFoOR4sTVFR8pESsnV2QZhCL/zuXPM1FyEEHhSokckq1Wr1tTNNXMp9ZYxqhfO/eCZ8SqffGKYmZpLfz5JkJBUbZ+vX5jh6kydN50YjDzKlKO9DCPhmVC5mi054cpYVhNz2jSpdGpeEPBHX7nEf/+ejiWLxaJmmYuEZq/UwVoPqwFNE+zvzsSF7+J0bUXyYxmCXfkk9x/q5svnppmuOtzSl7uhxYWVCMBaFcrNLLjrRXJW85qWIjlbgYhsBgnc7GzEHSyPHRJ2kyPhu7i6gRQajpngB/6f91OzkmtiQbGdcH6yihtIaq4SejfJjhDNsOnFZ4JNt3eB0p9NVR060hYJw2S27uH46rHCUJGpjGUwWrYJAtXd8nzJVMVBi4iWrqtg79i3yvWjbhmxOL9pd9GElMrmAREtA0hJ0jLoTFk8/PQoMzWX7ozFCxOVWIOmazBRcSI9mqDuNo1rZfy6gpbFBlNTu6wSkKEiaYauoWlKh3Z6tBSTl8UK3MIO1nKh2cf3LH2e1sNqYLXkxzYDzo5XOHm1xD+eHkdK6MlazNY9OiND2qZOrT+fbKvDtxIB+Pffcjgm0zdSKDez4K4XyVnNazo9Wl70XL/5xNCavL83gs0igZudjbiD5bFDwm5idNeK/P4n3s9X9h3nv7/6BwCoJpbfprtZUbZ9Akmc0diElCrnUNPnm2kYWjSWQyOQKo9RE9CbS1B1Aiq2j0SSNDTcqOM1U3PxAhk7sDdji5SGTRGfzoRJwwvQNEjrOg0vIGFoFJImgYSG61N11LE2L5eJKPTa9QJCCZmkwW19eRpewGjJJmMZnBop4/jBPEf3qu3xtfMzOC0tvuaWqiZlnKkpUf9MJ3TVkYs0Y83uXyAkXiB56kqRP3nk0qJk5shAPu5gdfkmT10t4XghaUsnldApNTz8QPKxx68w1JlattispdXAcoXv6myDt9w9xMMnRxkpNrhjME+x4XM6ei870ialuopRqtg+T1yeJWlquL6MR825pIGla8t2+NohEX/0lUtMlO22C+VS3Z7NKrjrSf7afU2fPj0eH8PCc/3CWIW6G7C7M70pRGQzyfFmZyMuhxerPq8VOyTsJsUtk5f48Mffx57SOAdnhvnIPW9gKvPi0H8tBj+ygVhMBB8CcoELaxhCKNR3m6RNCLilL8e5iSpBKMmnDMJQMlFxCKUkZRlUKg4wt23Z+qhCQMNTcTxpy6Bie2rDM5BomkbS0EhbGiHqa36gSFdX2qDhS2wXUobGS/cWKDYCBgtJRooNRop16q4S3zdfn6lrJE2dYsNTerKoAxfbeghlq2EaGsW619LNm/MAUQsHIbomMDXBx75xFccLl7yLf+vduzk9UuaLZ6bU70XRQEJAPmlyYk8H0zW3rWJzPVYDCy/oe6OMxcUKX7dv8cSVIk9dKdJwfRJReoHjq2ikfNJECEEmIWn4LhJJsa42I3uzCdKWjh9KpqtOpPNrcOdQ4bqJ0bnJCmEIAx2pRV9ba6FcrrMXhHJTCu56kr92ScTfnBxZkuQ8daXITN3jll2LP/d6E5HN7EZtdjbiUtgK+rytgB0SdhPimy58g9/+y18m79a52DHA29/2nhc1AQO1vSgifrEYEVv4pTD6okBlV6ouGpyfrFFxfPIpE1PX8FB2D6FUhCX+fbnAST/adGx4AaahTELPT1WpOz5eGNJwPfxQx/UDCkmTPV0pnh+vUGl4jJTcWEzvBQFfPjfD4d4sDx4b4Dc+c4arxQZSQs1ViwKmrpFP6pTtIH5tEkiZhup6hSF+i0jfMgRBILEjgqjE/+D56vdTkdeX44XL3sW/+cQgthfgh4pUzis1cvXFZjVWA4td0HtzCS5M1q7pfszWXJ4ZKeMFYTzqTRoa42WHhhdQSJmxF13S1NGASmQlIqL/F0Jg6s3FCcHDT4/y1fPTnJusXRcxapr6rlQox0r2kt2e4dkGb717aFMK7np2W9ohEaGUjJZsBpcgOf2FFKNlm8mqQ3/hWqK73kRkM7tRm52NuBi2gj5vq+DFJQx6EeD7nvhb/vdf/Bfybp1Hd9/Bm//lf+d89+7NPqxNh4SYLLULgSqyestfyZXZOqWGR7GuArhNXWBGXSYZyph4xEa1zcdpef4glAx1pNjXncHQNUIJ0zWPqapDEMKuXAIvkAx2pLAMXYnyddWN0oRaCLhabHBmosJMzcXxQ4IwxA9CPD+k5vqMlRyqjh8TTj+Q1D2fIAzRdQ1DU10qTSjR+sFdWXRdYHsBjhfgBQEIgWXo7O1KkzT1Ze/iXxgv85EvX8T1QwpJ5cHVnU3Qm0syWEgSIrkwVSNlam37jrWL5gX96aslOlIW+3sydKQsnh0pc2G6FudFNk/M+akqdjRuVOdEUmz40euWzNZcpipOlOupQtibZFqdPxWeXmp4pEyDoc4UXz47zWMXZ+c9/9NX1XGNlRoxiVgMDTegkDI41JNhtNRALrhLaBbKw71Zvnp+Ku72ZJMGuiYUGd6VZabm8sj5GQ71Lv84t+zKrXnBbSVKS73G6yU5+7szHOrNcGGqylTFVn580WtrvqbBQhINotD3a9GTtUjoisRu5PvSxHq+PyuhqbPsylicnajGNj1V2+fsRHXDTYcXjmYX+xx/4hvDq7Yh2q7YIWE3EX7q8x/hv/7D72DIkI8f/Rb+5T/7ALPpF8fdRDsIlzLkWgLNotu8bjYvUUIIbD9kquIwU3WiKCMNNwgVGYt+LpBzJC5EkS8N0IVguNjg0lQNAXRlTHqzJilTxw9DLs3UGSgkqTk+AtjXmWKgkGJXLkl/IcWezhSuF/DhL13EjMzEglCRPC3672ZPztDU8+stBrWOHxKGEiPSNN1/uJdf/57jfNuRPvIpRUx0odGVNnnt7bv4wVfux9S1JQtcytIpNXzOTdXoL6QwdB0tcs1Xthoaacug1PCYrDprWmyWu6Af6M0QhpIzE9W4/VlxfMoNn7RlEEQWIG4Q0nB9hIi2UqXqWM7UXMq2Rz5lkknoJHQNGX3P9UO6MwnuGMpTtj0cP6S/kFSEru4SSsmh3kzbxOjWvjz/6v79yxbK+w52cW6ytiwZPjtZ5RUHeza84Da7LetB/k6PlpmpeYyWbL56foZHL0zz+KXZeHmjK2Px4LEBktECx2KwvZDBjhRd2c0hIuv5/rSDps7yzt0Fig2Xi1M1ig2XY7s7NrzrtJrRLMxZxzx1pcj5yepNR852xpE3EZ7r3U+I4Ne/6fv57Vf8P3P5PjsAWFUXbDE0o4+UUap6MNsPESiT1qSpU3WCeMTXtJ1oNUAFaHg+z46VqTkqZJpoK9EyVJZkwtBwfEUC8ikToWmYAC0cKBMZv5q6Ml31glCZZSx4jX4IGUuPSKAav5maIJ3QcaLC9Ja7hwDozSY50JOh1PAwNI0jA3l+6P79ZBIGn3xiWI2DEvq8EOtcwqDhBopohpKerEU+Zahjj3RVoEZ29SBkrGTzikM9a1Zslrug55OmMtetORGZsvAiQ1pdKEIWNEVykSfa3PsmCULVKdzblebMeAUB9OYtbunNYJk6uYRBxfEp1j0MXXB2ohpZncg4L7Q/r4jR99+7j5GivezG50oLCa1jTSnlNWkCzZFWfyG54RmK6xWg3Tq2umMwz0ipQbGuCNlMzeVVh3t4x6sPcmQgzyMXZpYduZ3Y28mbTwzyiSeGNzxbcisEjG+VSKfVjGZfDLqxHRK23SFlTLb++shreLb3AGd6923yQd2cMHWNUM4RsCYkYLtqjNeXS1B2fHShMh5Ltq9MUpvWEELEIy9T1zANQSYxt9FYdxXBeW6siudLEunFm9XK6kKNMTrTFmXbU1osVGenNe4okzAwDY2K7eF4IU6k9drfneGnX387QFzoBgtpDvWq4nB5ps5vfvYsP/othzm8K8uj56fxgpCKHbRsB+qYusZLBgpMlG1sL+RAT5aaU6Jsq9BsXRPKGDYI6cqubbFZ7oIuhOBwX47ZCzOcn6xxeJeGpgkkklLDA6GCvP1QxskJzTOr7DzUeYumkYQSbt2VpSs756/nekFMpiu2Ny+bc6bmUnV8OlNW28RouUJ5frIa68LGyo0WO5I5wtfsMh7sza5YcNd6M22tA7QX2ygc6khRcXxcL2CkbNOVseIlj3ZIztGhAncMLr5Asd7YqIDx5c7rVoh0andRYCX9482iG9shYdsYd4yf4/3/8Du8680/z2S2C2CHgK0j/CjuaCGaHbKmGP9bbtvFoxdmFDEKlE+XoekkDIEbSFKmxlTVJQxDcsmECvAGTF3lORbrLrYdIjQ1PkxZ1xKxIJAxaUhbOoauSIDtqW3OOR2aeoyEqdOVsbDdgGLD4/CuLB9401HuGCzw/odPL7s6/8knRji2u8BDT43QcAPyKRPDUCPZ4VmXTMLgHa/u5uTVkupE7MpydKjAhdgnTI1A93am+alvv420pfPUleKaFMCVLuhJQ+dAT4aDPRkmqk5kxKphewFhGOJFHh169IY1R5QJQ1M5nW7IbM3jFQe7GS/bTNdcLEOPC/xIyY793wopK37/TF2QT6pzOYtKNji8K9dWJ2KpQrm/O0Nn2uQLL0xFQe7qvHtByGTFYbxk85rbdsVdxuUK7np1GJYjkaslfYt2OYUglzQhaZIwDc5OVuMlj3ZJzmYSkfXuRm2HzlE7iwJ3DhXm6R9vZoPZHRK2TfGtZx7lg3/zq6Q9h5/7pw/zn97wnzf7kG56tIaFG5qysUCApevoGthewGTVZX9Pmumay1NXimQTKhLJDQIantJmJQ1FqnwJkxUn7r5YukYhZZIwdOpuQFfaYrbmkjSVrqoJKUNqjk82acRbmQlDJ5HVKDU8vKqrOjvRNmggZdytkUg6Mxb/9jWHuHN3B+cnqyvrM8YrFBtu5JHmq+zMaBPUjLo+n3tukn/9TQfiTkQuabCnI0U1rTRYXRmLt710N3/55MiaFoi9nWl2ZROcHi1zsDdDPmnOWWxEF/S79nTwz+/dw9mJGkQJB7/8t88yWXWjKCcAFQelCXWOTF0jawkafsg/f/levuele+YZgTYL/K39OcbL9pzR7rz379qt28UIwOrIifq654fR6FOR7jB6/mJ9+XgpWP1mmu+HfPncFJMVh95cgvsP9WAYS8uJF3uN10MOrmejcKuM3JbDepHA7bJx2E7X8r6DXXz00csvCoPZHRK23SAlP/zYX/Hzn/1DNCRf2H+CX/y2f7PZR3VTo9lRap1CNj3ADAAhcXxJIFWH6q+fGmVvVxpdF9S9IBbBpy0lUK/aXvxYTTIjUYW17vqkLIOMpfO2e3bz0UcuMVF2yKdMLEPD9UPKDY90wuAHXrmPv3jsKjNVl66shR8qsiWjFpkulMWCpauYpYM9GaqOz8v2d/G6I/1Ae4Xu0rRHxfHoySaZrZUxNEHSNNQ4VVMjvS+dneI77+znwWMD/N7nz3F2soofSAxdMFhI8srD3fzd02NrWiCahf38VI3Rks3VYoPujMUtu3IkTZ3RUgNDF0zXHN7/0LPzrCvSCYOuUDJWdghD0DSJrmmYUTqCF4RoQiOTMLm1P4emiUULfKnh8fxYhWLNpdTw5pnl1l2ftKnTkbZUNmeEVtI1VmrwyPkZzk6uTE4uTteYrbsc7Mnw/HgF11d5p80lCCHg1EiJT58e49uPDiz6nq3WNPSvnhzm9z5/jpGSPe98vuuBQ7zxrqG2z9P1kIPr9bfaCiO3jcZ2iyZajf5xMWymwexaY4eEbSMYgc9/+cff4/uf/DsA/vSu7+A93/oj+PrOaVwvJAyNUIZ4C5aumnzMl+B780MnDU0wU3Vw3ABT1yhkrLkCL6DaEoYdSkXwoqVGAgl112ewkOQNxwfZ35OJi2DZ9jF0wb7uDO984CBvvGuIvV0Zfv0fnme25uIGkjBULv7KF02QSZhKm9bwOD9V4/juAm+9R1mWnJ+sMlxsEEpJw/HJpsxrXn/DDdA0QRCEXJiqMtvwEIDrgxBqtJexdMq2z58+epmEoZEydU7s6YwNa0t1hz/7+hWyCYNjuzvWpEC0FvbdnWl6cgnOjleYrrl8/dIMB7oz7O1KM162GSna84r/syNlxssOdwzkqXshDTdQixG6poLLQ5UQkDYV4Si0vC8LC/z5SbVZ152xGCvblBs+jUin1Z1J0JdPICEmCq0doZmqy1jZRtcEt/fn2N+TWZacVGwf2w2oOD4pS42XZeT3Zupq3DdZdXn45CivO9K/6Hu5ms20p4dLfOCh0/EIOpHScPyQy9N1PvDQaYAVidiNkIOt6G+1VbEdo4na0T9uNYPZ9cD2fwUvEuScGr/9l7/Mqy8+QYjgv37z2/nDl71pZwNyHdDUUzWNTRECIZTovdnBahVxL0TV9ujflUUCfhiSarp6ojosfouuTIueTEbKcENEbv1SsrczzcHeLA8eHVhyHPTGu4Y40JPhNz97hq+em0E3BClLI2GoO0jHD6k6ikgZuuBt96jgxvc/fFpt87kBI6UGl2fqnNjTMU903ix0h3ozPDNSYrxsK+8wTSCiLEzHC3B9Fb303FiFXbkER4cK8wpBytI4O1lDFwsMXLm+ArFYYc9i0J1RCwoXJmsc6MmQS+oMF+U1xf9Ab4bhYoPhYoNduYRKPIiIl5TNQHaNjozFib2dyxb5VqJw954Oqm4Qb45mLZ2zk7WYKLQSx/58MvasCkLJ+ckaacugM2MtSU5ySYMQmK27pC0jzh9tIpCSpKkxUrK5OF1jb2f6ms9NuyO+Ys3l9z5/joYbsCufiMfhKUsjaWpMlB0+9PnzPHh0YNnR5I2Qg0XHVqbGZNVhrGTTlbV484nBVXd2bsaonK0cTbQcltM/biUCvp6fmR0Stk0gpKS/Mk3dTPAf3/CTfPqW+zb7kG46NImVLqIoI6ksHixDkE3odGctKg2PmZq3JAFLGRqBhCuzNglDw/ZCJqsO2YRB0tSpOepi2UQg1R+hrmvoQuAHAUJXpqyXZ+sc7M1iGBoP3LZryeM+truDf/uaw4yXnqEvlyBhKfsEILaT0DTBdNWl5vrXjIZSlsHJq0UevTDDsd0F+gupefqMH7hvHz/2Z0/ih5K0pUW2GopXmgIaXoihSxquT2c6d02x9QOJoWnUXZ+K45NLmvMsFnRNqA5PmwViqcIuhBLHH96lcXmmjoRFHdTnrCtcjg8VqDsBth+QTaiwz5oTkDB1DvZkVtzknEcUIg+vQtqi4QacnazFW3nAPOJYsX0qtk82aWLqglLD48JUjc60iUARrm9cnuWLZyb5plt60TRlqjtQSPL8WIV8cuGRqPFnZ9pCE4KHTo7yqVOj14wR33yiPUf9MxNVRkq2skgR80mWEBr5lMlwqcGXz00t+9m8UXLQOrZ68nKRkVJDLZpEsVyfeGIYIUTbo+ztIFy/HmzVaKLrxVaw9GhivT8z2+OM7IByMsvb3/aLFOwqz/Qf3uzDuWkhUCPGJiTg+iFpU+P2vjwAXzozSXURU0hTF3TnEmhCUG54uKEyb3X8ENtX0UNBOL8LJogCvlVuDQlTxzR0Eqa+qrvWQsqkkDZJWsa8i3AuqUZpVdvHMjT+7tQoV2caHOjNkEmoOKKhTtVheOLyLM+NVZiquqQtnTuH1OgybSmiZmhqu9OKxqpSEm9/IpXz/GIFoGnF4fkq3Hym5rZsTkokEsvQGCs1OL6nY8XX2k5hr3sByMUd1FutK6ZrLgd7M7H/lO2FJAyNVxzs5h2vPtjWRbadrbyFCxBeoPzEjKgV2jSzvTrbYLxiU6p71NyA//GPL/C5FybjC/4bjg3y1XPTzNY9cklznv4saegMFJKMV2z+95cv4PnhNWPE3/v8Oe4YKigH/mU6DEKoc5tILd7lsgyNsu0zGWWlLoW1IAdHhwqEUvLCWIWutEV/IUVP1sL2wlVpCreLcP16sNU6R+1iuQ7TRll6LIeN+MzskLAtjAef/SLd9SJ/fM8bALja0c/VTT6mmx0LO1zNS1nV8ZXhZ9LENDSEG8z7ecGcK30QKoG9ROmyerJKuzNVcwFIGALHV5t4ySh02wtCTE2QMHVySZNCyljVXetKF+Fzk0rIPVl10IXGbN0jnzI40JOlK2OBEKQtnem6h+urDMmm93/F9skmDPrzSSaqTmz6KoQ63qylM9vwSFs6+iLj8VzSIG3qTLmqE3dhqo7jB5GIHWbrHkEg+dg3hhnqTK94UWunsKdNXWV1tmld0ZVO0JGyGCwkefDYwJKaqqWw0lbeQuJo6hp6RKCUhYmg4gc8P14hlBJL18gkdDrTiXkX/Ncd6ePhp0d55Pw0jhfQkMT6s/3daaZrDpMVB9cL6CskFx0jXplpcLA3s2yHYbrqYOhiSYsU1w8xdEFvLnHN91qxFuQgDCWffGIYxw85vqdFU6hrbWsKt5twfbXYSp2jdtFOh2kzt1036jOzQ8K2IqTk3331z/nJL/4JIYJTfYf5xu6XbPZR3VTQI4uJVhLVSsAEqrPVkTaxvYCqE/DMcIm+aA6UNNXoyonaZmlTxw8lFVsRCikVwQok1JwA0xBoUSJ4yJy3mIyE+YauuhWZpEHK1Li1L7+qu9blLsLnJitMVtRIVBcahZRBIGGm5lJzSuztSnN5RhEjU9M40J0haRmcGi4zUjzDW+/eTcLU2N+TiRcHEoaGqWuIyKQ0Zeoc211grGyTTRrXjABTlk4hMDg9WsaPOjRSSsp2QMYyuGMwz3SUGbfSRa1dnyGJ5NRweVkH9Z97/e1cnq2vyQV+ua28hcQxlzTmJQv4oeqYAnSmTcq2T3fGoi+vxP3xBf/BPO989UEaniqunSmTbNLEEILRsh3FbEkKaWvJMeJM3eVf3bKPC9P1JTsMvh8yWEhyebq+qEVKueGxrzvD/Yd6VnxPbpQcrIXofDsK11eLrdA5aher6TBt1rbrRn1mdkjYFoPle/zS3/8mbz31WQA+/NLv5snBWzf5qNYHGnOu7teLhCEir6zlM4mShuo6+M0nlKhQbF3DMpReyY0IlS4gZRl0pJVnl6UHuL5DxfGRZZtCysQPQhqe6liA8hDTIm2THxGrIJSYuoogqjmSQKrxkyE09u9KMTzbwA1CNKHGe5omSJs6uzvT13XXuuhFOBJN9+YSHOjJ8PilIoFUnZh80qRsezw7VkYXkLYMvECSsPR5d3uPnJ/mcG+Wp4dLHB3Mc2G6RrnhY3shmlBbhfcd7OaHv+kAv/XZs4sW23zSJJMweOpqiTCU1D0HQxN0ZS3uGMrTlUlgGXpbF7V2CntzA3SkeGbZ4m8Y2oZc4Bcjjq3JAq4fIqUkZapN04Sps79njjy2XvCPDhX4jy3nebrqxsW2kDR4Ybwan/eFaI4R05bBLzx4ZMkOg2FovOuBQ3zgodOLWqSkLJ13PnBwWVF+EzdKDtZCdL5dheurxXbwSdsuXcmN+szskLAthI5Gmd/7xH/l3qvP4AuN97zuR/jTE9+52Ye1btCahqfLQKC6To0WMbupi1hPlUuadGctzkzU5umt5j2PANPQ0UNJEI0RO9IWR4fyDORTCAHPjJY5NVzC0ATdWYu0ZdAcRiZMnc6MxUTZxgtCGl6AZeiEUh1L0tSpuz6OHzmwA7qmyF0+ZaELqDk+03UXkFiGElnv787wwniFiu3jBxKE5O59nfzQ/Qeu+6514UW4WHf5/S+epzOdIJvQ4+5LIaVyHS1do9xw6c6aNLyA7kwiFvW3hkJ//717GS42mK653LYrhy8lVdtjtuExWEjF+qnFiu1QR4rxik214ZM0NIIwxAskfiiZrro8O1rmyECBfMps+6LWbmHfKp2BxYhjIWVyqDfLc2NlQL3fgZR0Zyz2N8fEERZe8Jcqtl88M9n2GHGlDkPTfmI5i5R2cSPkYC10ZRspXN/s7cut7pO2XbqSG/WZ2SFhWwQHp6/yhx9/LwdmRylbaf7dm36GLx64e7MPa91gaKob44dhbAmxGB9rOr+bmtokFKjRn6ELMpbKRHT8kJSp7tIX5joC8Taf+vfoAZHkkiYiujh2RqTE1DVS5hwBA2VdoFzpNQY7UwzkU+RTJl4QcjHqCiUMHV1ZrxOESu/VnU3Ej5NLmZFdhI8bidnzKYv7WmwVjgwW+JW33NlWd2EhlrrwP3WliOtLJVAXgoM9WepOKTYWBUkoJXXHJ5e0ONCTmWd7MhcKnZpHaJoajpfv7142+zCT0PnTRy4zHBmpnp+qRRYQOkRB6BMVhyAocmhXdlUXtXYK+1bqDCxFHB+8c4ADPRk+8cRVOtNq/LiwOC12wV+s2N5/qGdNxohNvPGuoWUtUlaD6yUHa6Er2yjh+s26fbmW2C5dyY36zOyQsC2CV156igOzo1zN7+KH3vaebZEBqYv5LvKrgYiE4I6vYleWexjXD9E0jayhIaUkaen4vvoj9cMQ2w8Z6khSrPv4tkdrQ6xpghqGyo9J1wWGpuH4klLkt9RwA2quT8rUCYKQiPrh+EEUeh3gBsoEVYaSq8UGR1LKl6orY1GxfVw/YLRkc0tfNhJNN8Xr8SsmmzSoOc2fbUQh0YKJssOerjQ/dP/+ZYvbUkRruQv/wru5zoyltvWi7cSGq6hvLqm+3tnSfYH5xb+dUGiYX2zPT1Y5O1llIJ/k+YmKilKK3heBwNKiWCXX5/mxCt9558CqtXArFfat1BlYihQCXJiu8fTVEn35+WL31Vzw13KM2PqYy9lQrDfWQle2EcL1m3n7ci2xXew0NmrZYYeEbRF89MR3YgU+f33k1UxlOjf7cFaEoalRoB+E1JxgWW3XUmRtoJBSBGYFJheEYOmqc1Z1fHADpFRbiH4g8ULJ5ekGaUunK21SbHix9kuFWcso4kXQkbbY3ZFirGLT8EIuTtWiEVUn33z7Lj7y5YtMlB2SlvL0UqHdygU/nTAYLTu4fshE2aY3l4gjcmbrHoMdKV59Sy8vjFWZbbiUbdVt0jVBEEUKmZGb/fNjVc5O1MgmDV62r2tFO4SliNZdezp4+OTokhf+H/2Ww9fczXVmLO5Jd1K2Pc5P1vCCkELKpCM93zF/seK/WkLTvOv1E5Jyw6cjpTp/nh9i6JpaVAgVwfRDyX0Hu7aUfmU9sNR7uFYX/LUcI24VrIXofD2F69tF57QVsJ3sNDZi2WGHhG0ShAz5ocf+ho/d+VrKySwIwYdf9sbNPqwVYQiURQNg6QLfVxonIUS83dXsRGmAXEDABIrAyVAyWrKxDB0v8JfshDX/PNOWTjWyfQhCGecxokm8UI0ybT/q9qQtZutuTMSkBF0X9OWT3N6fY7rm8u1H+vm++/ZSc4J5HZ3dneko+7CGH4RRTqIe+TlBd8aiEnXbZloick7s7eQtdw8pIpi16M4mGCs3Yi+sUMrIU0sjk9A40p9HIplteMrTahksdYd98kqRzzw7vmwc0CefGOHNJ4YWLe7jUQfu9Xf287HHrvLUleI8D6a1uNtr3vVWbY8glOSSBoauNipdXxJEKeidmYSywSikrut5tiJWqw1aywv+Wo4RtwrWYrS8XuPp7aJz2grYbnYa6y1p2CFhm4CE5/DrD/8Pvuv5L/HN577OD/yz9yHF9rg46pGXlRfpr3RdxzIFpiYoNry46+P4IZFESm0LooiSaHGjV6RNqs1A1BBQEyIW2GsaJHVNWT84PmEoMXVdjRWFIIweu2kv4YcwWVFbd7omkEglntcEL9vfSUfKYrRsx9tzh3flrnl9b7xriJcM5PhPf/YUpiYopE2GZ+sUG36UISjIpwSOF3DbQI7JssPB3iw/9/rbMQyNMJTxXd6JPR1UHRXrc2aiGhmcSrozCYY6UyAEQ1Iue5e83B12XyHJmYnqinFA2YSxZHE/vqfAk1eK1N2AmbrLaNkmoWsMdqRiYnkjd3vNu96vX5xBE2qLNGHoJLJqRFaxlcv7kYEcZcff9BHEWuF6tUFrecHf7DHiemAtRsvrMZ7eLjqnrYLtZKcB6ytpuDmueNsIPbVZfv/jH+DE6PO4msFf3vHN24aAgbKCsEJJTzZBzfVxvICaG87bqDN0gRtEWq+oxdXsdMkmaRKoTlNkWhmGaj2/kDJxAyVgVx0sDU1TVhQVR2nAQinxZTRqXFCbpFSbiRKJjMicEJFRqhBt/ZE33JCMZbC/J0Pd9ak64bxtSV1TthhJQ+fwrhwTFTuOGGq9yzsXxdgY0Rg1CCUZy5gnfl/pLnm5O+zF4oBa0XrhP76n45riXnN8fvOzZ+MQ7Ft2ZeNcvnRC580nBm/4Yth8P67ONpgoO1Rsj460SRBCwwvIJA1u7csyXnG2zAjiRnGj2qCtpGHbQXvYLjqnrYSttDSzmdg+1f8mwK2TF/nLP/4JTow+TzGZ5V/+s/fz8Ttfu9mHtWpICQMdyXgs6AeSYt3DDyUNz0dKGROV1jGj6lAp8qR245RTfFIX6LogEemlDE1jb1eal+3rZKgjxbfd0cd733SUlKlH1gbqdw1dWSy0PocE3CCIxPzE8Tp9uSTff+9e3v3gS1blyO75rfEyCs3tR8cPaXg+xbpHqeHF32/e5d25u0Cx4XJpuo7rh/RkE4uK31OWjuMtfpcc32EvEr8TxwEFKg5oIRZe+JvF/fgeRXY+8cRw3GHLJg10XaO/kOL4ng4cL+STT4wQLmH7sRo0fa3uO9iNJgSTFTfOOTzUk2W65m65EcT1YmHnMptUmsBs0uDwriwzkSHtWryvO9g6aHZ8R0sNpJx/bps6p1t25W6Km4y1ROs1qXkT+2LDDi3fILz6/OP89l/9Mjm3wfnOQX74be/hQtf2E8gmTV2RJV9SdwPCMESP7CN0AV7U4TD05oBRQROKNARSAoqkSanGhUf3diIlVF3/GgdwtTV4gNv7cvx69gVlZGkIDE2PDVGb48imy33zCU1NZfRpmmCq6vDxNmNxWoWjffnEvHgZKSXlhgsInh8r4/qSEMlHv3oJU9cWtWp4bqzCh790gYF8kmzKvOb5lrtLXu4OuzUOyNDnX7xWErhutIbl6FCB3/hnd/Hp0+P8zckRRks2ItqKHCyk+K5jAxwZyN/w82w2bkZt0Gb7Xm0HbDed0w62DnZI2AbADDze/+nfJec2eHTPUd715p+jmNo6BWfOEWt5GBp0ZS0cL2SiYiOEGv0JAaEfIoGEoWF7IZ6v3NSbN/zNXMWUqZNLGmgCSnUP09D4yW+7DcvUF3UAbw1AzicMkoamtGhCIoWYZ0chgVBKNKEIWBBKDF1T/l6FZNyFWGlDqfWCOl52SJoaFdsjkzAoNzxsPyRp6FiGhhf4dCYtLs3U+eBnziwat7G/O8PXL86obaAFkT4rkaXlNolAddE6pcV42UETWtsX/s3QsGia4NuP9vO6I318+vQYD50cZbRkM162+eijl3jkwvS291O62bRBO75X7WO76Zx2sDWwQ8I2AJ5u8s63vJvvf+Jved9r34GnX9sN2SgszEg0dRWVU7EX31Cc9/MSkBKJpOEFsd2AH6rOlmVo+IGMCddLBnJR8LVPEEjSlk4yylisR75cAx0pOjLWih5UFdvHMnSO7e7g6eFSZDmhjk8TqssQShm3xEIJCbNpvAqWqTNQMNruQrReUJ+8XKTY8JituQghSBqKSNbdgJRpcFt/jo60uaTA/kbuklf63d2daR48NsCTV4qruvCvqGFxfEIpGS421rz7cXq0zMe/MTynmbJuHj+lm0kbtON7tXrs6Jx2sFps/SvBNkXabXB89AW+uu84AM/37ucXvu3fbsqxNP/8NW0uNBqUxUQmYaALgRU5zjeDpcMo/xCaHSb1z6rjU0hZ1F2ftKWjazBdc9E0jaShgSFIWWpk+V+++w4eOjnKo+en8YKQih1QsX10TdCVtjB0wYm9nW15UGUSOoFUm3Un9nRwdbZOxQmQUmL7IUEYkjYMhICspfRNhiYo214cxRNIVtWFaL2gPnmlyN+dGuXrF2bRhNJhdWdUHmNT47XcqOlG7pKXyoTc153mVYd7uHOowINHB1YVRL1ch22m6vDElSKGLvjfX7pA0tLXrPtxs/spbScPpOVws5+n9YSmqViyJhG7OF3bIWKbjK08Ut8hYeuA/vIUf/jx93F4+jLf973/lcd237Gpx5NJGGQTqgPVm00wUrLxg5CjQ3lyCRM/DHnqagkvkHSmTepeQMMN4u1DgdpO9KO8v95cgiszAbYX4AYhXRmLgz1Z0paOqSu7hJLt0Zm24i6O2sBThC+Qkortt62TODVc4uOPX2W0pHy3sgmdfNLkJV0Z0pZOzfZ46moJkGhCizcmy7ZH0tDjbcSG4193F+JQb5Y33jXEWMmmP5ckYelqI3SRiJ+lSN6N3CUvJIRfOjvFeNnm//vaFT7xxHBMko7v6Wjr9SzVYRsrNTh5tQTA7f0d9BeSa9r9uBk1U624WbRBN/t5Wk/sjHC3Frb6+dghYWuMo2Nn+YOPv4/+6gyT6Q58bePf4tYRoqELOlIGlqFGjns6UzFvMHVNCd1Njbv3dvLYpRn8UNKVtnAsRSa8IEAgSJkGZlJw5+4OtYknVFesv5DkQEvYsIx8r5p3+5om5nVxal6wKp1E60jkcG+WcxNV6l7AVNWh6vr055JcLTbQdYEuBFU3oBoRnN5cMu5UXU8XYuEfbyAl0zWXzrRFTzJ5zc+3M2q6EfsBTRPU3YBPnRpbk1HeYh22q8U6lqFxYk8HXVkVn7OW3Y/N0Ext9F3wzaANutm0bRuFnRHu1sJ2OB87JGwN8W0vfJXfeOi/k/Ycnu/Zyw+/7T1cLfSt2eMndGVC6gQy3ixshQZYhhZv83lBiAwlxYZPRwokkpGyze7OND/6LYfJJIy4MO3tTPPjf/EUj5yfxvVV7mEhZZKyEvTlElTdgJft6+Lnv/MlXJ6t8+SVIh9//Cq2F2DpGkEol7zbb6cDtFihBK4ZiaQtg/NTVUp1j9max0zVJZ8yOb67g/58kvNTahvRCyV9uQT5lEnV9hktNehMm9x7oIunh0vLFuMwlHz69Dgf/vIFao7P/u4M6YJB3fG5MlPn5NUSKVOPSQpszKhpPUZE87c4y/zhly4ykE+SW7DFuVbdj43WTG3WXfB21wbdTNq2jcLOCHdrYbucj52/oLWAlPzrr3+Sn/un/42G5PMH7ubfv/GnqSTaK8YLxfJLfd8LJYW0xX1DBe7Z18EXnp/k0kydquOTNHVsL8QPlK5LoO5WhZS4fsB0NSSXMtjfleENxwe5Y7BwzQfvna8+SMNTRGqhVcRgIcVb79mNYWgc7M1ysDfLrX25tu/2l+sALVUo7zvQfc1IpDX38InLRcoNj5fu66CQVoTolr4c3RmLJ64UOTtVpeEFJC2doY4UEvjoo5eWLcbN0effnx6LR59uEMbdvhN7Onj0wgxPXiny8v1dpBLGho2a1mtE1Dw3FdtHFyojczGsRfdjIzVTm30XvJ1NV28WbdtGYmeEu7WwXc7HDglbA7zu7KO8+58+DMCfnPhO/su3vgvN0ElqAttf2ZRR12ARr010MecKn46sHW7vz+H6AZ9/fopSw4stE9zoAYJQ4oUCSxd0pMzIHNMhZen0ZJNMVJwl7QCapprLWUW0YuHdfiahRhc1J+D8ZLWtO//lCuXpkTJVx2dgYZ6gEIDSllmGTrDgvevKJrh3fxejZZsfetUBdAEf+8YwsysU4+axjJQauH5IZ9pECMFMzaXmlDg6VKArm+DY7g7OTlYYLdtoQmzYqGm9R0Qb0f3YKM3UdrkL3qrYLG3bVhZQr4SdEe7WwnY5HzskbA3wj4dfzl+95AGeGriVD7/0u1X+oUSFJC4CreVbpkY8FmwNutaEuhASqrFjKFUe41TV5UBPFtsPuDRTn7NlQLF7JaRXmY41N4hzGLsyFod6sytqiFY7Rmne7Z8aLvGnj15e1dhnpUJ5arjEbN2l4fjzTU6lpNRwabgBpi7mjEqlypj0fGXQqgnBQCHJXz81wuwKxfj2qKs3U3MZzCcZLzlqyUAI8kmTsu1xcapKZ7ozEqv7/NCrDjDUkdqwYrHeJGlvZ5reXIJnR8oc6M2QT5rx+7WW3Y+N0Extl7vgrYyN1rZtdQH1StgZ4W4tbJfzsfNpuE4MlSaYShdwzARSaPzHN/zneFMuBJCgCbnoqLFJwARRzqEEQ9cIom6WYM5Kovm7bqCia+4YzCOE4PnxMkEYMlBIMlKykUB3RmXyFRuuGktKQcMLMHWNg72Z+IO4UjdgtWOUk1eL/MrfPcdMzaW/kKK/O4nthSuOfVYqlPu7M8zUXS7M1Dg6WEAIwWzN5fxUlemqQ83xMQ2NMxNVerIJpqoO5YbKaJRILEPj6aultorxl89NxT8nI0f/pkt+U4tWavhUbB9NCJKWzu39uQ0t4Os5ImoWwAuTNUbLNsPFBt0Zi8N9OZKGvubdj/XWTG2Xu+Ctjo3Stm326HgtsDPC3VrYLudjh4RdB+6++iwf+uQHeGTvMX70u39SBXAvTJJGFXm5jNpLNcvmvp/QBW4w9xtN9/cwciDd15VBCMFoyVajQkND0zQ60wlm6y4VJ8CPgrOFlEhdQxMahq5xeqTC0SEt9rRaq27A01eL/MzHT3J1tkHC0Jite+RTBgd6shzetfzYZ6VCmU4YdKYsMpbB2YkqaUuPtyORkqSpo2uC8bLN5ek6SUtZV+gCSg0PP5A8dHKEmhtcO9KM0CzGkxUnPhZdQD5lMFNzKaRMQC1EBKHS183WvU35412vEVFrAdzdmaY3m+CFiQpTNZfZCzMc6MlwYm/nmnc/1lMztV3ugrcD1lvbdrOMjm8We5K1wmaPlrfL+di5Aq0S33368/za3/4GicBj/+wIOadOObn4BaqdU+v6kp6MGh0KZBw43YqUOUdSvnJuitmaS90LMYTKcswmTVKRE70fytiLK23pGJqgM21Stn0uTNXoTJsxYbzRbsCp4RK//HfPcWm6TipywxeCeRqq5YheO4WyK2vx/ffu5ZHzM0osbyuxfCFl0pVJcHmmxnTNxQtCrFD1HStOQCphcHQgz3CxsfhIs+U5EqZGby4x71gO9mSpOyVKDY+0ZSCjpIDRks1gR2rN/nhXe6Fa6xHRYgUwmzR4RValIZyfrHGwN8PPvf52DEO70Ze7Ydgud8E7uLlGxzeDPclaYKuMlrfD+dghYe1CSn70K/+Xn/jSnwLw6cP38h/e8JM0rGv9oppwg6W7YK1IGDpSSvzIpV7F8ACRKD+bMCjbHievFgmZI2kh4Esf2w8jl3pBLpkglJIgkNzWl+OF8Sp+SDRO86g4PrmkIiM30g0IQ8mHvnCeZ0fL2F6AF0iqtk/C0MgmDRw/4OKU8gtzliB67RbK1x3p59CuLCeHSxzq0cmnTHJRBqOhC2Zrs+i6RsMLsdyA7ozF/mib0dS1a0aaiz3H/Yd6+NwLk/GxdGYslVkZ2WHU3IB8yuBl+7t46z1rcyG53gvVWo6IliyAQpBPWRzepTFRcbg8W9/yBbAV2+UueAebNzper07NdrcnuVFstdHyVj8fOySsDVi+xy9/6oO85Zl/AuBDL3szv/yaf0WoLX7RWC1GSzamLpCBEuELwIiyGN0gZKbmEoaSgEhHJiCI9GJBCEEYxnE9SUOLiZalC5KmRtXxVWxPKJXRKjfeDfj06XE+/8IEDTdAAn6oHtcLQ5wgpCNlUmr4TEUblosRvWahvDpT59Rwic60RTapXPXHyva8QllzAnQhGOhIxdmUoLZG05ZOwtSoOQG39eXY05WOCcXCkeZSxdgwtGuKdj5lctuuHBdmauy3DN5+/35ed6R/RX+zdv64b/RCtVYjoptZO7Ud7oJ3sDmj4/Xu1Gxne5IbwVYZLS92Xd6q52OHhLWBD/7Nr/IdL3wVX2j84rf9G/7PXa9f08e3F/hT6BromsAN5TXdNBn9r3XDEsD2QoLAo+Yq4biU8NTVMqGUKl7ID7EMFekzVmowVrLpylq88fjAqklEGEo++uglqk6ALlC6taZ+TUpcXxVtUxc8M1xkT1eGS1M19nam45FWGErOT1X58tkpijWXibLNpelaPA572b4u3vHqg/EFcakLtWkozZuUajTbkbbmdXTmjTQvzCxbjJcq2i/f371o0b7eC3nzQjVddegrJHH8gFBKckljRR3dWuNm105t9bvgHazv6HixYnx6tLylOjU3E7bCaHmrjELbxfa8sm4w/uBlb+Keq8/yn77rJ/jSgRNt/c5KBqzLwQ/nOkuLYaFTfhNeKPFCiaFBLmmStpROLAhD6m6ArgmeuFLE8UMSukYoJT/7yadJGCrzsd0P6/mpKs+PlRGApWtIwPFDZJOIhZKaG8Q/P1VzeddHH6cnl+CHXnmAlx3o5IOfOcM3Ls1SsX1CCQlTozNt0Z9P4IVSie9bsNSFOpcwyCV1Ros2g52peWRh4UjzdUf6VyzG7RbtG+lkXZyu8eTlIsW6y3DRJgjVNmZzoWEjNTAvBu3Ui7UrsRWxVOd4vRZOFhbjQ70ZZmrepndqblZsdmd9q41C28EOCVsCWadONZEG4LHdd/Dqd/3BsvqvhbheAnYjMAT4UpG42bqDriXQNRVjZOoauoDOlMlARxpDwNPDJaqOTyZpcmx3gaSht/VhfWG8QsMNSJoafqBsHBKGhheE+KGc16GzNDU6dQPJSNHml/7uWSL7s1jbpgvwg5DpqkMQSk7s6WC65s67GC53oTZ1jVS0hFBzgmUv4O0U49ai3W6cErR/IX/qSpELUzUMXVlfGJEdRnOh4chgHsfbmBHgagvgZm887WD7YqUOxVqOjpcqxo9dnGW0ZMdWP63YbksAWxGb2VnfKqPQ1WKHhC2C7zn5aX7unz7M9/6LX+L53v0AqyJgm4VAznXgXF8yVXXoSFl0ZxNUbZ+q43NwV5ZC0uTxy7P4UrIrn6Bs+1yernFib2eb47DIO8vUlTlqIDE0RcR8Z66DpQsIouNpEq/m/5rQhBqragiklMoUdbrGLbty11wMl7pQ33ewh+N7Cjx5pbim2p/VxCnF78wiF/JW4pJJ6HzxzBSBlORMA1NX41lTnzOFPTtRZagjuWEjwHYL4HZr8+9g66DdDsVajI6XK8YDhSQXp+uMlmyGOlLXWAttZw3kVsBmdta3wij0erBDwlogZMh//sKf8O8e+QtAkbEPvPYdm3xUq4MWWVxomiCUsLsrRX8+yWMXZzE01bmqOD7lhk/aMhBCm2dEmk+ZK35Yb+3Lkk0a2G5AZ9qk6ijNWbigC9ba7VoKoWzGMylrjTCUTNdcDkq5aDdouQv1G44NrlmX5rrilCK0XsgXEpdASkaLDXIJg4YXYBkaTTMTIQQpU2OibLO/O0MoJWEoN+SubaUCuB3b/DvYGlhth+JGC+RyxdgydJKmFvkqzm2KN7HdNZCbjc3cSt7sUej1YueTFiHp2fz6w/+DB5//MgD/85Xfy2+86l9s8lG1D4G6qRMqtwgrMn4dKdoYQmB7IQlTYGiCYs2l4fpIdOWsrwn8IMSLQhhX+rAe7Mny0n2dfOGFKWwvIGVqJHSB4wc4Lb/S7kg27pQh0aTKv6za/rJblcuNC9c7d3DJOKUIzQv5WMmOH6dJXEaLDcq2T8rU0ISIfcgMTVB3A4p1Bz+ES9M13vs3pze007RUAVxNEQVWdT5eTOPNF9NrbcVGdyiWK8a5pEFn2mK0ZON6AbSQsJtFA7nZmNdZH69yadpD0wSHejP8q1fuX7dr2XZdMtpaR7NJ6K3O8vufeB93jZ7B1Qx++vX/gU8e/ZbNPqy2oRFnWhOEEkMXaotSSqYqDnXHp+r6+KHOqZES5YZH2VadL6EJdCFiEtDN/A/rUoXjna8+xIXJGmcnq/ihv2LHazk045kkgKbc6WfrLi8/0L3sxfCa8ZihsSuX4FW39HB8T8d1F7nzU1VOXi2pcWv0uoVQ49KK7dORMpmo2JyfrnLnUMeiLfc7hwp89fzUNcQlnzLJJnQcPyQfXTTKDZ+yF9DwlAlJNqFzW38OQ9O2RKep3SL66dPjPHJhuu1x5YtpvLlZr7W5hfzCeBWQ3NqX42BPdkPJ30Z3KJYrxs3P60zNZaRskzCNbeMft51I/NGhAqGUfOQrF6k4HkEoGS/bfOKJYYQQ6/KZ365LRi96EjZUmuDP/s9Ps7s8yWwyx7ve8vN8bc/RzT6sVaGZVdlsPfmBxA9UbqXQ1DdNTeVIjhQb6JqyqggliFASIJFS8PxYmVCGlOoeB3tzPDda5rc+c4bz03XCUFJImRzuU4UDIJM0IkIhCSIm5bvBose4HBRhnOucNYO3l7sYLhyPOUbACxMVnrxa5DPPTXCgJ8NdezsWLXLLXcxODZf4X58/x/Oj5ZigdqRNBvJJpusu5YaPH4Y03AAhXE5eLXKoN3fNhfy+g138ySOXyCVNZmoupq5IbS5pkE+ZTFUcbC/gjqE8Ndvn+fEKoVRLDj3ZJB0plWywFQSl7RTR81MuH/7yBYJQtjWuXO/x5mYUrKWec7NGuaeGS3zoC+d47NIs1YjgZJMGL93XxTtb7F9WOv4bxUZ3KFYqxnXX51WHe+jKWJyd3B7+cdvthuXUcInf+uxZZmouezoz8fVxPT/z29Wg+UVPwsazXVzoHMIxLN7+tvdwqXNwsw/phiFb/umHko6UhRtKpio23gL7i+bPeqFkquoyVZ3BMgRjZYe/f2aUUEpSpkHa0inbHlNVm+dGy/h+yGjZJm3pSEL8IMT2Q0xN4C3lobEMmkdkaoI7h/LX/JEuFLd//PG58Vix7nF6tIztB3SkTBpeQLHhcfJK8Zo/+KevFvnIly9ybqq2KLH8wMOneXakTC0yoRWoHMrLM3UylkFnxsKUc/YYVcfn6mw9tvhoXsjPjFc4M14FAWHIPAuKAz1Zqo7PbM3lyctFHD+g1PABlYfZlTHVwoMfYhoaA/nkpgpKVyyijs9s3UWg7oBX0vys9xbTZhSspZ7zLSeG+MQTwxu+sXVquMQHHjrNc2MVNEGUgQpVx+cLL0wyUbF594NHNmTpYqM7FO0U43e8+uC28Y/bbnrMzdxS3I4GzS9aEiZkiBQavm7w7970MwgpKaVym31Ya45QwuXZBpmEQcI08JylW/5N6uQHShwPioQ0BeTFusu4H+JNqCik5p9PylRRRbannPuv1yNNA7rSFo4fzmtbNwvEmbGKCtr2QyqOz5GBHAI1PrT9IA7bFkLQcAP6BnJMlJ34D/5vTo7w6//wPLN1D1PTMHVB2faYrjlcnanjBiGnhss4XhC/DkGUTiCh5voUUga2H9KVsTjcm+HCVJ3eXIJ3PXCQzrQVm0F+7BtXqXsBuYRBJqnPs6A4OlSgP5dkpupStj00BEKo+CohBE8Pl0gYOppQo9lsUidh6JsmKF2piF6YqcU/147mZz01QtcUrLzGZNXhkXPTvDBe4We+43bu3N1xfW9Eu8/ZUiRfGK9QdwJ2d6Y3RA8Fqgh+7PErnI9sUPJJM37urujv+MJkjY8/fpUjA/llzUuvzjZ4291D9BdS101UNqND0W4x3kpbcothO9oubPaW4nYzaH7RkTAtDPiFz/4Behjyi6/7ERBiyQDumwUSdQfc9s9HDEqgBPNBKCnWXTSh/KxaCZYQyvHfr3sgVNRSIANkCIWUQSkyY10KTcKmRc77VTdAIOK7vAePDfDwyVHOTFSYqro4XkAQSgIJXzk3zeFdTrzp2aSFuiYIQjWSbf7B//0zY/z6PzzPTNVV3Sxdww8l1ajjZHsB42UHLwyVr5qmxRufTYQSJqsuhZSB44V843IJN+oIZpMGb7//AKA8xBwvpD+fYLbukbKUGW7TguLCZIXZukc+afDS/Z2UGmocaQhB2fFx/RCBoDeXwA8l01X13o+VbI7vafs0rhlWKqIZy0CGKiJqMSzU/KyXRmhhwSrWPZ4fL6sRchBytdjgpz9+kl9+6zGOrRERW6lIPnWlGH9vMazHxtbF6RpPD6u0DLUB3Vp8BJmESd31eXq4xPmp6pLH3+1bPHGlyDMjJYYKKZKWft3dsc3oUGy3YrwYNpvQXA+2wpbidjJoflGRsIxT54N/82u89tzXAfiLO7+Vpwdu2eSj2hws162aT7IEGor0BFLpzJqRSULM+X/5gUQICZqOqWk4YUjFCZYlYE2YmoocCiTUHJ8XxivctaeDqarD733+PA3PZ7Ro44cSy9AwNInthwQSzkxUySQM0lYifrymA33TxHW8HPJnj12hWPfoylqYuro4mLqgkDIpNTy8QNLwVKqAYWgqRN3QVKRQi+9GGEr8UHXF0pZBMhLWPzuiuglvvXt3fNHsySY4NVyatwFp6ZraWNU1ju0uUEgnyKcsJqOQbBlK5bcWSvxQ+a/pmkATgkfOT/O6I32bUkSWK6L3Hujko49eblvzs14aodaCVax7nBouYfsBaUuN020v4Opsg1/5u+f42e98yZoU/pWKZH8hyWjZZqrq0l+41mtwPTa2KrZPI9JmGot8VgxNgIS6F/DCeGXR45+tuTwzUsYLQkIp6MklbnhRZDNI0XYqxothKxCa1WK7biluFrTNPoB28Nu//dvs37+fZDLJvffey9e+9rVVP0ZfZYqP/elP8dpzX8c2LP7NG3/mRUvAYOVx4VIkTdMWIWnR3E5KcMMwFpiHC1Ymm+O9hddcMxrDKbKhIpAuTtfIJU2GZ+tMlB38UJIytZiUNH82lFB3VacD5oS3hZQSwTdclcs4VmpgaBqGtvAjr1zrHT9QHUA559+oa4KEoUf5mHM2IE0tmalrhBIsQ+NAb4aZmstDJ0fVRdPS6cxYHB0q0JWx4jzNIJRYhk5XxqI/8hkTQrArn1TLCaLpTB/iegFl2yNh6tzen+fsZJWL07UVztz64ehQgV948Ajv/e47+PkHX8J7v/uO/7+9e4+Lqs7/B/46c2UYYECRO4yYIJKKBIJAapu46MOfq24X12jFvFSKqVmuut8UNU031gttpmumVCKYFV221BCDirwjakkISkoKoiZXgWFm3r8/Rk6OoKIMDdL7+Xicx4NzPufynjczfN6c8zln8MrI3hgW6IaeLnYorawD3fQ7bxrz4+diL475abq82dr1W0vssOQSs0vUcqkEgiBAKZdCKZPg1+vfxmBszX8IrT2mouVOspudEkqZBGUWfq23Y28jE+PRt/Aa9UbTU51t5VIAQvP4icT8OdrKIcB0Ztnu+nebtiV/TUVRkLcjenT7fe/SvB/dWNC0pCMWNO31+e6sOnwRtn37dsyZMwcJCQnIzc1FUFAQYmJiUF5eflf7SUv9J3pf+hmX1I4YN34FdgY83E4R39+aCo1bafpMSYTfChLx8qXENAidCOKT4JuKLqlgeqK+RCLgVrs3PWRWAluFFJV1etNzxwxGNIhfPv7bQ00VUtNztgSYjnn1mg6Nht+Klu7Opv9+Syvr4KGxgUwigVwmtNgpySSmLzyXCqYzfDd2LhLhtwfgNsVoqzB1XjcWfA42pofcXqisg5FI/KPppFYgxMcJod2d8JCPIwI9HODbzRZOaoXZH1ZbhRQquRQ2MgkM1x96qydCV7UCfTw0cNPY/G5fZXQ7LXWiTZcru6gVKCqvQc31YrOmXo+i8ppmY37udv3WauqwLtU0v0QNNJ0hlcDthks4bXXHTrLRCA+NyuKv9Xa6d1Wjr6cDJIKAazr9TR0hobahEVJBQF9PDfxd7ZrFf+PDnA3XbyoRP883XQJj7et+LGja6/PdWXX4Imz16tWYOnUqnnnmGQQGBmLDhg2wtbXF5s2b72o/3a5V4CdnLcb8fTWOefRqp2g7vqazUbciFUx/dJvWNd40BowIkEpMRYNUMBVVTY+YkAgCutkrTB2TTHrDPgXYyCWQyySQCkKLzxQjmL4/UiEToJSbChGdniBAuL7vm+K83jE0naEyEFBxrRH2NnIEujtAIZWIH/iR/dzhaCuHrVzaQqcE0yUXENw0NpBKBDTojTAYCUSmAvO34s90JlBx/Xsybyz4BEGASiGFBIC7xsb8j6YgwN5GDie1AtX1evTzdERfTwezdeRSCWzkUmhUprMY7hoVwn27INjHCV2uF2wd7T/eGzVdruzrpUFFnQ4/X65FRZ0O/bwcW7x0dbfrt0ZTh1VWWQ+9wWh2Ke7GgtnZTmGxgrY1nWSwjxPmjQiw6Gu9HYlEwOMh3ujhrIbeYBrPqdMboNMb8GutDgYj4NtNjcdCvNDD2a5Z/I3X3/9SAWZnlZuoFNIO8Q/BH8H9WtC0x+e7s+qYf9Gv0+l0OHLkCBYsWCAuk0gkiI6Oxr59+1rcpqGhAQ0NDeJ8ZWUlAGC3d18s+n8voVZpCzRca9/AOygBgKNKiuoGIwgEQQAab/gHXiIAepgKMTKaCg7j9Ut0xhv20cVOAbnEiKt6HYxNzyMD0MVGARelDI5Ocgx8oCs2Zp1BVYPedFmSpKbviDQSjDqjuD+ZBGgwSCCB6XgquQIN1xpBegOqqxvhJNOj9Fo9dAbT3YxNCIBeT5BdLxqf6OuFy7U6XK5uwOUrFVDIJfDvZoe/BLkiwM0WWfYCLl6ph1TfiKsVtVApZNcH8BtxtVYHJ7US06O0eG/fWRSW16KuARDEs3YEuSBALTc9ZPXqVR3kMgk0Khl8nBRQCzo0XNOhtl4PiaERf+rhjM+OVSH/7EW4OdjARiFFvc6Asqp6OKnliPG//mT50sviOkq5BHJDHS5XNsDBRo6ejkooSQddnQ5EhHOXavGgpwZd5AZUVVW135ukDXzsBcwa5IWzv9aipl4POxsZtF1MY35aivlu12+NGD8H/PhzGc5eq4ZEL4NSLoXBSKjT6aGQS+GhVqCqsgqCvhFovIaqqrb/Hxrj54DiC5du+fv+s589ujtILP5ab8fHXsDsIV5IzilGbkkFfq0wFUxqpQwPeTthYpQXfOwF1NRUN4tfT0bo62vw6zWCjVIGD7UCurrfznrV1ustmj92ez72AiaFueLTYxdw5tJV6BqNZn/ffOzb5z3UVu3x+b5fNL2+m/8xaxF1YOfPnycA9P3335stnzt3LoWFhbW4TUJCQtNjS3niiSeeeOKJJ56sMpWUlNyxzunQZ8LuxYIFCzBnzhxxvqKiAlqtFufOnYNGo7FiZJ1XVVUVvL29UVJSAgcHB2uH0ylxjtsf57j9cY7bH+e4/d0px0SE6upqeHjc+eHvHboIc3Z2hlQqxcWLF82WX7x4EW5ubi1uo1QqoVQqmy3XaDT8hmxnDg4OnON2xjluf5zj9sc5bn+c4/Z3uxy39qRPh76gr1AoEBISgszMTHGZ0WhEZmYmIiIirBgZY4wxxljbdOgzYQAwZ84cxMXFITQ0FGFhYVi7di1qa2vxzDPPWDs0xhhjjLF71uGLsHHjxuHSpUtYtGgRysrK0L9/f+zatQuurq6t2l6pVCIhIaHFS5TMMjjH7Y9z3P44x+2Pc9z+OMftz5I5Fohacw8lY4wxxhizpA49JowxxhhjrLPiIowxxhhjzAq4CGOMMcYYswIuwhhjjDHGrKBTF2Hr1q1D9+7dYWNjg/DwcBw8eNDaId3XvvnmG4waNQoeHh4QBAGffPKJWTsRYdGiRXB3d4dKpUJ0dDQKCwutE+x9aMWKFRgwYADs7e3h4uKCMWPGoKCgwGyd+vp6xMfHo2vXrrCzs8Njjz3W7GHG7NbWr1+Pfv36iQ9ZjIiIwM6dO8V2zq/lrVy5EoIgYPbs2eIyznPbLF68GIIgmE0BAQFiO+fXMs6fP4+nn34aXbt2hUqlQt++fXH48GGx3RJ9XqctwrZv3445c+YgISEBubm5CAoKQkxMDMrLy60d2n2rtrYWQUFBWLduXYvtr7/+Ot544w1s2LABBw4cgFqtRkxMDOrr63/nSO9P2dnZiI+Px/79+5GRkYHGxkb8+c9/Rm3tb1+e/OKLL+Lzzz/Hjh07kJ2djQsXLuCvf/2rFaO+v3h5eWHlypU4cuQIDh8+jEcffRSjR4/Gjz/+CIDza2mHDh3Cf//7X/Tr189sOee57R588EGUlpaK03fffSe2cX7b7urVq4iKioJcLsfOnTtx8uRJrFq1Ck5OTuI6Funz2vol2x1VWFgYxcfHi/MGg4E8PDxoxYoVVoyq8wBA6enp4rzRaCQ3NzdKTEwUl1VUVJBSqaTU1FQrRHj/Ky8vJwCUnZ1NRKZ8yuVy2rFjh7hOfn4+AaB9+/ZZK8z7npOTE23atInza2HV1dXk5+dHGRkZNGTIEJo1axYR8fvYEhISEigoKKjFNs6vZcybN48efvjhW7Zbqs/rlGfCdDodjhw5gujoaHGZRCJBdHQ09u3bZ8XIOq/i4mKUlZWZ5Vyj0SA8PJxzfo8qKysBAF26dAEAHDlyBI2NjWY5DggIgI+PD+f4HhgMBqSlpaG2thYRERGcXwuLj4/HyJEjzfIJ8PvYUgoLC+Hh4YEePXogNjYW586dA8D5tZTPPvsMoaGheOKJJ+Di4oLg4GC8/fbbYrul+rxOWYRdvnwZBoOh2VP1XV1dUVZWZqWoOremvHLOLcNoNGL27NmIiopCnz59AJhyrFAo4OjoaLYu5/junDhxAnZ2dlAqlXj++eeRnp6OwMBAzq8FpaWlITc3FytWrGjWxnluu/DwcCQnJ2PXrl1Yv349iouLMWjQIFRXV3N+LeTMmTNYv349/Pz8sHv3bkybNg0zZ87Eu+++C8ByfV6H/9oixv6I4uPj8cMPP5iN82CW0atXL+Tl5aGyshIffvgh4uLikJ2dbe2wOo2SkhLMmjULGRkZsLGxsXY4ndKIESPEn/v164fw8HBotVp88MEHUKlUVoys8zAajQgNDcVrr70GAAgODsYPP/yADRs2IC4uzmLH6ZRnwpydnSGVSpvdDXLx4kW4ublZKarOrSmvnPO2mzFjBv73v//h66+/hpeXl7jczc0NOp0OFRUVZutzju+OQqFAz549ERISghUrViAoKAhJSUmcXws5cuQIysvL8dBDD0Emk0EmkyE7OxtvvPEGZDIZXF1dOc8W5ujoCH9/fxQVFfH72ELc3d0RGBhotqx3797iZV9L9XmdsghTKBQICQlBZmamuMxoNCIzMxMRERFWjKzz8vX1hZubm1nOq6qqcODAAc55KxERZsyYgfT0dOzduxe+vr5m7SEhIZDL5WY5LigowLlz5zjHbWA0GtHQ0MD5tZChQ4fixIkTyMvLE6fQ0FDExsaKP3OeLaumpganT5+Gu7s7v48tJCoqqtkjgk6dOgWtVgvAgn1eW+4e6MjS0tJIqVRScnIynTx5kp599llydHSksrIya4d236qurqajR4/S0aNHCQCtXr2ajh49SmfPniUiopUrV5KjoyN9+umndPz4cRo9ejT5+vpSXV2dlSO/P0ybNo00Gg1lZWVRaWmpOF27dk1c5/nnnycfHx/au3cvHT58mCIiIigiIsKKUd9f5s+fT9nZ2VRcXEzHjx+n+fPnkyAI9NVXXxER57e93Hh3JBHnua1eeuklysrKouLiYsrJyaHo6Ghydnam8vJyIuL8WsLBgwdJJpPR8uXLqbCwkFJSUsjW1pa2bt0qrmOJPq/TFmFERP/5z3/Ix8eHFAoFhYWF0f79+60d0n3t66+/JgDNpri4OCIy3bK7cOFCcnV1JaVSSUOHDqWCggLrBn0faSm3AGjLli3iOnV1dTR9+nRycnIiW1tbGjt2LJWWllov6PvMpEmTSKvVkkKhoG7dutHQoUPFAoyI89tebi7COM9tM27cOHJ3dyeFQkGenp40btw4KioqEts5v5bx+eefU58+fUipVFJAQABt3LjRrN0SfZ5ARHTP5+sYY4wxxtg96ZRjwhhjjDHGOjouwhhjjDHGrICLMMYYY4wxK+AijDHGGGPMCrgIY4wxxhizAi7CGGOMMcasgIswxhhjjDEr4CKMMcYYY8wKuAhj7HfSvXt3rF271tphWExnez0d0cSJEzFmzBhx/pFHHsHs2bOtFk97EQQBn3zyCQDg559/hiAIyMvLs2pMjP0euAhjrI1KSkowadIkeHh4QKFQQKvVYtasWbhy5Yq1Q+sQfvnlFygUCvTp08faofwuunfvDkEQIAgCVCoVunfvjieffBJ79+69630lJSUhOTnZYrE1FThNk0KhQM+ePbFs2TJ0lC9P8fb2Rmlp6R/m/cL+2LgIY6wNzpw5g9DQUBQWFiI1NRVFRUXYsGEDMjMzERERgV9//dVqsRkMBhiNRqsdv0lycjKefPJJVFVV4cCBA+1+vMbGxnY/xp0sXboUpaWlKCgowHvvvQdHR0dER0dj+fLld7UfjUYDR0dHi8e3Z88elJaWorCwEEuWLMHy5cuxefNmix/nRjqdrlXrSaVSuLm5QSaTtWs8jHUEXIQx1gbx8fFQKBT46quvMGTIEPj4+GDEiBHYs2cPzp8/j//7v/8zW7+6uhrjx4+HWq2Gp6cn1q1bJ7YRERYvXgwfHx8olUp4eHhg5syZYntDQwNefvlleHp6Qq1WIzw8HFlZWWJ7cnIyHB0d8dlnnyEwMBBKpRKbNm2CjY0NKioqzOKYNWsWHn30UXH+u+++w6BBg6BSqeDt7Y2ZM2eitrZWbC8vL8eoUaOgUqng6+uLlJSUVuWHiLBlyxb8/e9/x1NPPYV33nlHbPvnP/+J8PDwZtsEBQVh6dKl4vymTZvQu3dv2NjYICAgAG+99ZbY1nRmZ/v27RgyZAhsbGyQkpKCK1euYPz48fD09IStrS369u2L1NRUs+NUV1cjNjYWarUa7u7uWLNmTbPLfXfK+a3Y29vDzc0NPj4+GDx4MDZu3IiFCxdi0aJFKCgoAGAqkidPngxfX1+oVCr06tULSUlJZvu5+XLkjZYuXdri2aL+/ftj4cKFt42va9eucHNzg1arRWxsLKKiopCbmyu2G41GLF26FF5eXlAqlejfvz927dplto958+bB398ftra26NGjBxYuXGhWAC9evBj9+/fHpk2b4OvrCxsbGwBAYWEhBg8eDBsbGwQGBiIjI8NsvzdfjszKyoIgCMjMzERoaChsbW0RGRkp5rHJsmXL4OLiAnt7e0yZMgXz589H//79xfasrCyEhYVBrVbD0dERUVFROHv27G3zxFi7s9CXjTP2h3PlyhUSBIFee+21FtunTp1KTk5OZDQaiYhIq9WSvb09rVixggoKCuiNN94gqVRKX331FRER7dixgxwcHOjLL7+ks2fP0oEDB2jjxo3i/qZMmUKRkZH0zTffUFFRESUmJpJSqaRTp04REdGWLVtILpdTZGQk5eTk0E8//UQ1NTXk6upKmzZtEvej1+vNlhUVFZFaraY1a9bQqVOnKCcnh4KDg2nixIniNiNGjKCgoCDat28fHT58mCIjI0mlUtGaNWtum6PMzExyc3MjvV5PJ06cIHt7e6qpqSEioh9++IEAUFFRkbh+07LCwkIiItq6dSu5u7vTRx99RGfOnKGPPvqIunTpQsnJyUREVFxcTACoe/fu4joXLlygX375hRITE+no0aN0+vRpMdcHDhwwy6dWq6U9e/bQiRMnaOzYsWRvb0+zZs1qdc5botVqW8xL0/vlX//6FxER6XQ6WrRoER06dIjOnDlDW7duJVtbW9q+fbu4TVxcHI0ePVqcHzJkiBhfSUkJSSQSOnjwoNiem5tLgiDQ6dOnW4ytKV9Hjx4Vlx06dIgcHR3p3XffFZetXr2aHBwcKDU1lX766Sf6xz/+QXK53Ox1v/rqq5STk0PFxcX02Wefkaurq/jaiIgSEhJIrVbT8OHDKTc3l44dO0YGg4H69OlDQ4cOpby8PMrOzqbg4GACQOnp6S3G+PXXXxMACg8Pp6ysLPrxxx9p0KBBFBkZKR5r69atZGNjQ5s3b6aCggJasmQJOTg4UFBQEBERNTY2kkajoZdffpmKioro5MmTlJycTGfPnm0xT4z9XrgIY+we7d+/36zzuNnq1asJAF28eJGITJ3z8OHDzdYZN24cjRgxgoiIVq1aRf7+/qTT6Zrt6+zZsySVSun8+fNmy4cOHUoLFiwgIlMRBoDy8vLM1pk1axY9+uij4vzu3btJqVTS1atXiYho8uTJ9Oyzz5pt8+2335JEIqG6ujoqKCggAGadfX5+PgG4YxH21FNP0ezZs8X5oKAg2rJli9n80qVLxfkFCxZQeHi4OP/AAw/Qtm3bzPb56quvUkREBBH91mGvXbv2tnEQEY0cOZJeeuklIiKqqqoiuVxOO3bsENsrKirI1tZWLHJak/OW3KoIIyJydXWladOm3XLb+Ph4euyxx8T52xVhRKbi+Mb9vfDCC/TII4/ccv9N+VKpVKRWq0kulxOAZr9/Dw8PWr58udmyAQMG0PTp02+578TERAoJCRHnExISSC6XU3l5ubhs9+7dJJPJzHK6c+fOVhVhe/bsEbf54osvCADV1dUREVF4eDjFx8ebxRMVFSUWYVeuXCEAlJWVdcv4GbMGvhzJWBvRXQxojoiIaDafn58PAHjiiSdQV1eHHj16YOrUqUhPT4derwcAnDhxAgaDAf7+/rCzsxOn7OxsnD59WtyfQqFAv379zI4RGxuLrKwsXLhwAQCQkpKCkSNHimONjh07huTkZLP9xsTEwGg0ori4GPn5+ZDJZAgJCRH3GRAQcMexShUVFfj444/x9NNPi8uefvpps0uSsbGx2LZtGwBTHlNTUxEbGwsAqK2txenTpzF58mSz2JYtW2b2mgEgNDTUbN5gMODVV19F37590aVLF9jZ2WH37t04d+4cANNYvsbGRoSFhYnbaDQa9OrVS5xvbc7vBhFBEARxft26dQgJCUG3bt1gZ2eHjRs3ijG2xtSpU5Gamor6+nrodDps27YNkyZNuuN227dvR15eHo4dO4YPPvgAn376KebPnw8AqKqqwoULFxAVFWW2TVRUlPhebdpHVFQU3NzcYGdnh1deeaVZ7FqtFt26dRPn8/Pz4e3tDQ8PD3HZzZ+JW7nxfe3u7g7AdJkcAAoKCsx+lwDM5rt06YKJEyciJiYGo0aNQlJSEkpLS1t1XMbaE498ZOwe9ezZE4IgID8/H2PHjm3Wnp+fDycnJ7NO6Ha8vb1RUFCAPXv2ICMjA9OnT0diYiKys7NRU1MDqVSKI0eOQCqVmm1nZ2cn/qxSqcw6eQAYMGAAHnjgAaSlpWHatGlIT083u+OupqYGzz33nNn4syY+Pj44depUq+K/2bZt21BfX2827ouIYDQacerUKfj7+2P8+PGYN28ecnNzUVdXh5KSEowbN06MCwDefvvtZmPHbs6BWq02m09MTERSUhLWrl2Lvn37Qq1WY/bs2a0eHN50/NbkvLWuXLmCS5cuwdfXFwCQlpaGl19+GatWrUJERATs7e2RmJh4VzcvjBo1CkqlEunp6VAoFGhsbMTjjz9+x+28vb3Rs2dPAEDv3r1x+vRpLFy4EIsXL27Vcfft24fY2FgsWbIEMTEx0Gg0SEtLw6pVq8zWu/n30hZyuVz8uek9fjc3nmzZsgUzZ87Erl27sH37drzyyivIyMjAwIEDLRYjY3eLizDG7lHXrl0xbNgwvPXWW3jxxRehUqnEtrKyMqSkpGDChAlmRdH+/fvN9rF//3707t1bnFepVBg1ahRGjRqF+Ph4BAQE4MSJEwgODobBYEB5eTkGDRp017HGxsYiJSUFXl5ekEgkGDlypNj20EMP4eTJk2KnfLOAgADo9XocOXIEAwYMAGA683DzYP+bvfPOO3jppZcwceJEs+XTp0/H5s2bsXLlSnh5eWHIkCFISUlBXV0dhg0bBhcXFwCAq6srPDw8cObMGfHsWGvl5ORg9OjR4lm4psIvMDAQANCjRw/I5XIcOnQIPj4+AIDKykqcOnUKgwcPBoA25/xmSUlJkEgk4kD7nJwcREZGYvr06eI6d3uGTSaTIS4uDlu2bIFCocDf/vY3s/dha0mlUuj1euh0Ojg4OMDDwwM5OTkYMmSIuE5OTo54dun777+HVqs1u/GkNYPce/fujZKSEpSWlopns27+TNyLXr164dChQ5gwYYK47NChQ83WCw4ORnBwMBYsWICIiAhs27aNizBmVVyEMdYGb775JiIjIxETE4Nly5bB19cXP/74I+bOnQtPT89mjyTIycnB66+/jjFjxiAjIwM7duzAF198AcB0d6PBYEB4eDhsbW2xdetWqFQqaLVadO3aFbGxsZgwYQJWrVqF4OBgXLp0CZmZmejXr59ZUdWS2NhYLF68GMuXL8fjjz8OpVIpts2bNw8DBw7EjBkzMGXKFKjVapw8eRIZGRl488030atXLwwfPhzPPfcc1q9fD5lMhtmzZ9+2s8/Ly0Nubi5SUlIQEBBg1jZ+/HgsXboUy5Ytg0wmQ2xsLBISEqDT6bBmzRqzdZcsWYKZM2dCo9Fg+PDhaGhowOHDh3H16lXMmTPnlsf38/PDhx9+iO+//x5OTk5YvXo1Ll68KBZh9vb2iIuLw9y5c9GlSxe4uLggISEBEolELJr9/f3vOefV1dUoKytDY2MjiouLsXXrVmzatAkrVqwQi10/Pz+899572L17N3x9ffH+++/j0KFD4pmy1poyZYpYyOfk5LRqmytXrqCsrAx6vR4nTpxAUlIS/vSnP8HBwQEAMHfuXCQkJOCBBx5A//79sWXLFuTl5Yl3xfr5+eHcuXNIS0vDgAED8MUXXyA9Pf2Ox42Ojoa/vz/i4uKQmJiIqqqqZncQ34sXXngBU6dORWhoKCIjI7F9+3YcP34cPXr0AAAUFxdj48aN+Mtf/gIPDw8UFBSgsLDQrGhjzCqsOySNsfvfzz//THFxceTq6kpyuZy8vb3phRdeoMuXL5utp9VqacmSJfTEE0+Qra0tubm5UVJSktienp5O4eHh5ODgQGq1mgYOHGg2GLnpbrru3buTXC4nd3d3Gjt2LB0/fpyITAPzNRrNLeMMCwsjALR3795mbQcPHqRhw4aRnZ0dqdVq6tevn9nA7NLSUho5ciQplUry8fGh995777YD0GfMmEGBgYEttpWWlpJEIqFPP/2UiIiuXr1KSqWSbG1tqbq6utn6KSkp1L9/f1IoFOTk5ESDBw+mjz/+mIhavtuPyDQQe/To0WRnZ0cuLi70yiuv0IQJE8wGuVdVVdFTTz0l/i5Wr15NYWFhNH/+fHGdO+W8JVqtlgAQAFIoFOTj40NPPvlks7zX19fTxIkTSaPRkKOjI02bNo3mz58vDiYnuvPA/CaDBg2iBx988JYxNWnKV9MklUrJy8uLpk6dajaA3mAw0OLFi8nT05PkcjkFBQXRzp07zfY1d+5c6tq1K9nZ2dG4ceNozZo1Zu+/hIQEs9fSpKCggB5++GFSKBTk7+9Pu3btatXA/KYbSYiIjh49SgCouLhYXLZ06VJydnYmOzs7mjRpEs2cOZMGDhxIRERlZWU0ZswYcnd3J4VCQVqtlhYtWkQGg+GOOWOsPQlEHeQxyYwxZkW1tbXw9PTEqlWrMHnyZGuH02pEBD8/P0yfPv22Zwf/aIYNGwY3Nze8//771g6FsVviy5GMsT+ko0eP4qeffkJYWBgqKyvFB8SOHj3aypG13qVLl5CWloaysjI888wz1g7Haq5du4YNGzYgJiYGUqkUqamp4g0ujHVkXIQxxv6w/v3vf6OgoAAKhQIhISH49ttv4ezsbO2wWs3FxQXOzs7YuHEjnJycrB2O1QiCgC+//BLLly9HfX09evXqhY8++gjR0dHWDo2x2+LLkYwxxhhjVsAPa2WMMcYYswIuwhhjjDHGrICLMMYYY4wxK+AijDHGGGPMCrgIY4wxxhizAi7CGGOMMcasgIswxhhjjDEr4CKMMcYYY8wK/j9DC05mnxvpzwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(7, 6))\n", + "\n", + "plt.scatter(observed, predicted, alpha=0.6)\n", + "\n", + "cap = np.percentile(np.concatenate([observed, predicted]), 90)\n", + "\n", + "plt.plot([0, cap], [0, cap], color=\"red\", linestyle=\"--\")\n", + "\n", + "plt.xlim(0, cap)\n", + "plt.ylim(0, cap)\n", + "\n", + "plt.xlabel(\"Observed Average Daily Boardings\")\n", + "plt.ylabel(\"Predicted Boardings\")\n", + "plt.title(\"Observed vs Predicted (Negative Binomial GLM)\")\n", + "plt.grid(False)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ecda0370-e7ba-44e0-b528-6332ea239a8c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_code
0dcc58c96c33532e549faf9bd89c8542d6692026-04-30 03:00:01.083850+00:00141801220204[15X][3]fa4791e728076c1f348ea288cbb69497NonePOINT(-119.695892 34.409457)Castillo & Pershing ParkNoneNone1086
1dcc58c96c33532e549faf9bd89c8542d172026-04-30 03:00:01.083850+00:00143801230284[27][3]82381a59b4772fdc3485a5e160292802NonePOINT(-119.856187 34.410741)Embarcadero & Sabado TardeNoneNone1054
2dcc58c96c33532e549faf9bd89c8542d5772026-04-30 03:00:01.083850+00:00143801230284[27][3]ace4501aacc7cc4014049f82071c69a4NonePOINT(-119.853462 34.41089)Ocean & Sabado TardeNoneNone834
3dcc58c96c33532e549faf9bd89c8542d152026-04-30 03:00:01.083850+00:00143801230284[27][3]382b6a77ef2d0a8bd29fe88d035168cbNonePOINT(-119.857582 34.41187)Seville & Embarcadero Del MarNoneNone1052
4dcc58c96c33532e549faf9bd89c8542d182026-04-30 03:00:01.083850+00:00153841230284[27][3]76b24f95f4a726a64073f85a704a7523NonePOINT(-119.856298 34.410651)Embarcadero & Sabado TardeNoneNone1055
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id _feed_valid_from \\\n", + "0 dcc58c96c33532e549faf9bd89c8542d 669 2026-04-30 03:00:01.083850+00:00 \n", + "1 dcc58c96c33532e549faf9bd89c8542d 17 2026-04-30 03:00:01.083850+00:00 \n", + "2 dcc58c96c33532e549faf9bd89c8542d 577 2026-04-30 03:00:01.083850+00:00 \n", + "3 dcc58c96c33532e549faf9bd89c8542d 15 2026-04-30 03:00:01.083850+00:00 \n", + "4 dcc58c96c33532e549faf9bd89c8542d 18 2026-04-30 03:00:01.083850+00:00 \n", + "\n", + " n_hours_in_service daily_arrivals arrivals_early_am arrivals_am_peak \\\n", + "0 14 18 0 12 \n", + "1 14 38 0 12 \n", + "2 14 38 0 12 \n", + "3 14 38 0 12 \n", + "4 15 38 4 12 \n", + "\n", + " arrivals_midday arrivals_pm_peak arrivals_evening route_id_array \\\n", + "0 20 20 4 [15X] \n", + "1 30 28 4 [27] \n", + "2 30 28 4 [27] \n", + "3 30 28 4 [27] \n", + "4 30 28 4 [27] \n", + "\n", + " route_type_array stop_key tts_stop_name \\\n", + "0 [3] fa4791e728076c1f348ea288cbb69497 None \n", + "1 [3] 82381a59b4772fdc3485a5e160292802 None \n", + "2 [3] ace4501aacc7cc4014049f82071c69a4 None \n", + "3 [3] 382b6a77ef2d0a8bd29fe88d035168cb None \n", + "4 [3] 76b24f95f4a726a64073f85a704a7523 None \n", + "\n", + " pt_geom stop_name location_type \\\n", + "0 POINT(-119.695892 34.409457) Castillo & Pershing Park None \n", + "1 POINT(-119.856187 34.410741) Embarcadero & Sabado Tarde None \n", + "2 POINT(-119.853462 34.41089) Ocean & Sabado Tarde None \n", + "3 POINT(-119.857582 34.41187) Seville & Embarcadero Del Mar None \n", + "4 POINT(-119.856298 34.410651) Embarcadero & Sabado Tarde None \n", + "\n", + " stop_desc stop_code \n", + "0 None 1086 \n", + "1 None 1054 \n", + "2 None 834 \n", + "3 None 1052 \n", + "4 None 1055 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# SBMTD data \n", + "feed_keys = [\"dcc58c96c33532e549faf9bd89c8542d\"] \n", + "feed_keys_str = \", \".join(f\"'{k}'\" for k in feed_keys)\n", + "\n", + "# Query only those feed_keys\n", + "with db_engine.connect() as connection:\n", + " query = f\"\"\"\n", + " SELECT \n", + " feed_key, stop_id, _feed_valid_from, n_hours_in_service, daily_arrivals,\n", + " arrivals_early_am, arrivals_am_peak, arrivals_midday, \n", + " arrivals_pm_peak, arrivals_evening,\n", + " route_id_array, route_type_array, stop_key, tts_stop_name,\n", + " pt_geom, stop_name, location_type, stop_desc, stop_code\n", + " FROM cal-itp-data-infra.mart_gtfs.fct_daily_scheduled_stops\n", + " WHERE service_date = DATE('2026-05-05')\n", + " AND feed_key IN ({feed_keys_str})\n", + " AND ('28' IN UNNEST(route_id_array)\n", + " OR '24X' IN UNNEST(route_id_array)\n", + " OR '11' IN UNNEST(route_id_array)\n", + " OR '15X' IN UNNEST(route_id_array)\n", + " OR '27' IN UNNEST(route_id_array)\n", + " )\n", + " \"\"\"\n", + " df_feed = pd.read_sql(query, connection)\n", + "\n", + "df_feed.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7d7fbf2d-f2aa-4009-a4e4-14abeb56239e", + "metadata": {}, + "outputs": [], + "source": [ + "manual_coords = {\n", + "\"San Benito Housing\": (34.41949395025939, -119.85428516794293),\n", + "\"UCSB North Hall Inbound\": (34.41543823819993, -119.84793921762432),\n", + "\"UCSB North Hall Outbound\": (34.41528964133994, -119.84781297568064),\n", + "\"UCSB Elings Hall Outbound\": (34.41487045037956, -119.83962136296098),\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3676f5ed-e262-4a07-aa26-73a6fc412cd1", + "metadata": {}, + "outputs": [], + "source": [ + "def create_manual_df(manual_coords):\n", + " rows = []\n", + "\n", + " for i, (stop_name, (lat, lon)) in enumerate(manual_coords.items(), start=1):\n", + " rows.append({\n", + " \"stop_id\": i,\n", + " \"stop_name\": stop_name,\n", + " \"latitude\": lat,\n", + " \"longitude\": lon,\n", + " \"pt_geom\": Point(lon, lat)\n", + " })\n", + "\n", + " return pd.DataFrame(rows)\n", + "\n", + "df_manual = create_manual_df(manual_coords)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0a1c7b85-ce20-4b53-8f7c-142827589776", + "metadata": {}, + "outputs": [], + "source": [ + "# Convert your stops DataFrame to GeoDataFrame\n", + "gdf_29 = gpd.GeoDataFrame(df_manual, geometry='pt_geom', crs=\"EPSG:4326\")\n", + "\n", + "# Project to meters for accurate distance buffering (UTM Zone 11N for LA area)\n", + "gdf_29 = gdf_29.to_crs(epsg=32611)\n", + "\n", + "buffer_distance = 404.672 # in meters\n", + "gdf_29['buffer'] = gdf_29.geometry.buffer(buffer_distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "35139b8e-ed61-4988-b1f8-3cc63a249d5e", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the stored ACS dataset from the specified GCS file path.\n", + "with fs.open(f\"{GCS_FILE_PATH}/census_tracts_data.parquet\", \"rb\") as f:\n", + " tracts_ca_acs = gpd.read_parquet(f)\n", + "\n", + "acs_gdf = tracts_ca_acs.to_crs(gdf_29.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4d6cd5c1-774b-48a4-a8b8-940af8d4371e", + "metadata": {}, + "outputs": [], + "source": [ + "geometry_intersect = gpd.overlay(acs_gdf, gdf_29.set_geometry('buffer'), how='intersection')\n", + "\n", + "geometry_intersect['area_2'] = geometry_intersect.geometry.area # area of overlap\n", + "geometry_intersect['area_ratio'] = geometry_intersect['area_2'] / geometry_intersect['area_m2'] # fraction\n", + "\n", + "# Define demographic and socioeconomic columns to be adjusted by area ratio\n", + "cols_to_weight = [\n", + " 'total_pop', 'workers_with_no_car', 'total_youth', 'total_seniors', 'inc_total_lowincome']\n", + "\n", + "for col in cols_to_weight:\n", + " geometry_intersect[f'{col}_adj'] = geometry_intersect[col] * geometry_intersect['area_ratio']" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "77f1a2d7-707c-48fd-88a7-b723bfbb81d2", + "metadata": {}, + "outputs": [], + "source": [ + "agg = geometry_intersect.groupby(['stop_name']).agg({\n", + " 'total_pop_adj': 'sum',\n", + " 'workers_with_no_car_adj': 'sum',\n", + " 'total_seniors_adj': 'sum',\n", + " 'total_youth_adj': 'sum',\n", + " 'inc_total_lowincome_adj': 'sum'\n", + "})\n", + " \n", + "gdf_29 = gdf_29.merge(\n", + " agg,\n", + " on=['stop_name'],\n", + " how='left'\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5fc7a5a3-bfd2-41b5-9039-d2290c854ade", + "metadata": {}, + "outputs": [], + "source": [ + "df_existing = df_feed.copy()\n", + "\n", + "# convert string representation of list → actual list\n", + "df_existing['route_id_array_parsed'] = df_existing['route_id_array'].apply(\n", + " lambda x: ast.literal_eval(x) if isinstance(x, str) else x\n", + ")\n", + "\n", + "# compute number of unique routes\n", + "df_existing['n_routes'] = df_existing['route_id_array_parsed'].apply(\n", + " lambda x: len(set(x)) if isinstance(x, list) else 0\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "ff5c254f-919c-40cd-bbf8-036f85f17eb3", + "metadata": {}, + "outputs": [], + "source": [ + "df_existing_filtered = df_existing[\n", + " df_existing['route_id_array'].astype(str).str.contains('28')\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "f13658d1-e01e-479c-aa68-33c4dd2481ba", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feed_keystop_id_feed_valid_fromn_hours_in_servicedaily_arrivalsarrivals_early_amarrivals_am_peakarrivals_middayarrivals_pm_peakarrivals_eveningroute_id_arrayroute_type_arraystop_keytts_stop_namept_geomstop_namelocation_typestop_descstop_coderoute_id_array_parsedn_routes
24dcc58c96c33532e549faf9bd89c8542d1612026-04-30 03:00:01.083850+00:001875430605824[28, 27][3]24d82dbb2438795d1c44dc23120ec16eNonePOINT(-119.86987 34.428296)Storke & MarketplaceNoneNone281[28, 27]2
83dcc58c96c33532e549faf9bd89c8542d5112026-04-30 03:00:01.083850+00:001870636605642[11, 28][3]62f4538be92b899ba330177a28f38224NonePOINT(-119.8533 34.416898)El Colegio & StadiumNoneNone719[11, 28]2
86dcc58c96c33532e549faf9bd89c8542d1492026-04-30 03:00:01.083850+00:0017160034646647[28, 24X, 27][3]b6ea8ac7c3faee08d0376599352d8458NonePOINT(-119.875665 34.428798)Santa Felicia & MarketplaceNoneNone27[28, 24X, 27]3
87dcc58c96c33532e549faf9bd89c8542d252026-04-30 03:00:01.083850+00:001889048808048[11, 28, 15X][3]a083c3021eeca55b8453d7eb9d4f08b7NonePOINT(-119.86543 34.417575)El Colegio & Camino CortoNoneNone1069[11, 28, 15X]3
89dcc58c96c33532e549faf9bd89c8542d2122026-04-30 03:00:01.083850+00:001989548808048[28, 15X, 11][3]6885eb64abce3700e8b30198e609c585NonePOINT(-119.8541 34.417475)El Colegio & StadiumNoneNone336[28, 15X, 11]3
99dcc58c96c33532e549faf9bd89c8542d8042026-04-30 03:00:01.083850+00:00181101048919145[28, 2650, 27, 11, 2710][3]b7c9ac0ab926043edbad1a4eb0fccacdNonePOINT(-119.869891 34.419847)Storke & Sierra MadreNoneNone371[28, 2650, 27, 11, 2710]5
100dcc58c96c33532e549faf9bd89c8542d5972026-04-30 03:00:01.083850+00:00181101048919545[28, 2650, 2710, 27, 11][3]fd8d47021b830ca14e16f772f83bc0aaNonePOINT(-119.86987 34.426371)Storke & Santa FeliciaNoneNone877[28, 2650, 2710, 27, 11]5
101dcc58c96c33532e549faf9bd89c8542d232026-04-30 03:00:01.083850+00:001898648908666[11, 24X, 28][3]2e0d78fc35be5ca73c2202a2249b7538NonePOINT(-119.85785 34.417241)El Colegio & Embarcadero Del MarNoneNone1066[11, 24X, 28]3
102dcc58c96c33532e549faf9bd89c8542d222026-04-30 03:00:01.083850+00:001898648908666[24X, 28, 11][3]c3b6173c81d32da05ccbae327760de26NonePOINT(-119.86115 34.417245)El Colegio & Los CarnerosNoneNone1065[24X, 28, 11]3
105dcc58c96c33532e549faf9bd89c8542d1642026-04-30 03:00:01.083850+00:0019109851949663[28, 90, 25, 24X, 27][3]dd9d07510c38d5a23f1eaa5ea8bf7403NonePOINT(-119.872498 34.42998)Hollister & Camino Real MarketplaceNoneNone284[28, 90, 25, 24X, 27]5
110dcc58c96c33532e549faf9bd89c8542d5962026-04-30 03:00:01.083850+00:001812906811010852[2650, 15X, 28, 27, 11, 2710][3]3257fa4a3072bbe36dd39bb1f656d4ddNonePOINT(-119.86957 34.419003)Storke & El ColegioNoneNone876[2650, 15X, 28, 27, 11, 2710]6
111dcc58c96c33532e549faf9bd89c8542d8052026-04-30 03:00:01.083850+00:001812906811010852[2710, 27, 28, 2650, 11, 15X][3]30c9d332c4c5bdd854e48ca64fa4bfc3NonePOINT(-119.869622 34.422113)Storke & WhittierNoneNone372[2710, 27, 28, 2650, 11, 15X]6
116dcc58c96c33532e549faf9bd89c8542d212026-04-30 03:00:01.083850+00:001811806311011072[24X, 28, 15X, 11][3]8da34016dfed9d1f921d73dec6beb807NonePOINT(-119.86126 34.417513)El Colegio & Los CarnerosNoneNone1064[24X, 28, 15X, 11]4
117dcc58c96c33532e549faf9bd89c8542d202026-04-30 03:00:01.083850+00:001911856311011072[15X, 28, 24X, 11][3]f984c9f6c9ac417c0dccdbed0df15d3cNonePOINT(-119.85745 34.417498)El Colegio & Embarcadero Del MarNoneNone1063[15X, 28, 24X, 11]4
118dcc58c96c33532e549faf9bd89c8542d5982026-04-30 03:00:01.083850+00:0018138106012112563[2650, 28, 24X, 2710, 27, 11][3]edf3f31d73599f1bcfbe2555d6eb24a8NonePOINT(-119.86986 34.423789)Storke & PhelpsNoneNone879[2650, 28, 24X, 2710, 27, 11]6
119dcc58c96c33532e549faf9bd89c8542d3692026-04-30 03:00:01.083850+00:0018138106012112169[28, 2650, 27, 24X, 2710, 11][3]c939b297ff66fbb07f3bddbab7f372e3NonePOINT(-119.86597 34.41728)El Colegio & Camino CortoNoneNone51[28, 2650, 27, 24X, 2710, 11]6
123dcc58c96c33532e549faf9bd89c8542d6202026-04-30 03:00:01.083850+00:001815808314013876[24X, 27, 2650, 28, 15X, 2710, 11][3]82bc4b97797f539447bfbc296ddd33feNonePOINT(-119.86801 34.417525)Santa Catalina HallNoneNone92[24X, 27, 2650, 28, 15X, 2710, 11]7
124dcc58c96c33532e549faf9bd89c8542d2822026-04-30 03:00:01.083850+00:001925157914013880[28, 91, 15X, 27, 24X, 11][3]1e31723fdd3de7ff60f2d5c2013c5d77NonePOINT(-119.848091 34.414984)UCSB North Hall OutboundNoneNone42[28, 91, 15X, 27, 24X, 11]6
\n", + "
" + ], + "text/plain": [ + " feed_key stop_id \\\n", + "24 dcc58c96c33532e549faf9bd89c8542d 161 \n", + "83 dcc58c96c33532e549faf9bd89c8542d 511 \n", + "86 dcc58c96c33532e549faf9bd89c8542d 149 \n", + "87 dcc58c96c33532e549faf9bd89c8542d 25 \n", + "89 dcc58c96c33532e549faf9bd89c8542d 212 \n", + "99 dcc58c96c33532e549faf9bd89c8542d 804 \n", + "100 dcc58c96c33532e549faf9bd89c8542d 597 \n", + "101 dcc58c96c33532e549faf9bd89c8542d 23 \n", + "102 dcc58c96c33532e549faf9bd89c8542d 22 \n", + "105 dcc58c96c33532e549faf9bd89c8542d 164 \n", + "110 dcc58c96c33532e549faf9bd89c8542d 596 \n", + "111 dcc58c96c33532e549faf9bd89c8542d 805 \n", + "116 dcc58c96c33532e549faf9bd89c8542d 21 \n", + "117 dcc58c96c33532e549faf9bd89c8542d 20 \n", + "118 dcc58c96c33532e549faf9bd89c8542d 598 \n", + "119 dcc58c96c33532e549faf9bd89c8542d 369 \n", + "123 dcc58c96c33532e549faf9bd89c8542d 620 \n", + "124 dcc58c96c33532e549faf9bd89c8542d 282 \n", + "\n", + " _feed_valid_from n_hours_in_service daily_arrivals \\\n", + "24 2026-04-30 03:00:01.083850+00:00 18 75 \n", + "83 2026-04-30 03:00:01.083850+00:00 18 70 \n", + "86 2026-04-30 03:00:01.083850+00:00 17 160 \n", + "87 2026-04-30 03:00:01.083850+00:00 18 89 \n", + "89 2026-04-30 03:00:01.083850+00:00 19 89 \n", + "99 2026-04-30 03:00:01.083850+00:00 18 110 \n", + "100 2026-04-30 03:00:01.083850+00:00 18 110 \n", + "101 2026-04-30 03:00:01.083850+00:00 18 98 \n", + "102 2026-04-30 03:00:01.083850+00:00 18 98 \n", + "105 2026-04-30 03:00:01.083850+00:00 19 109 \n", + "110 2026-04-30 03:00:01.083850+00:00 18 129 \n", + "111 2026-04-30 03:00:01.083850+00:00 18 129 \n", + "116 2026-04-30 03:00:01.083850+00:00 18 118 \n", + "117 2026-04-30 03:00:01.083850+00:00 19 118 \n", + "118 2026-04-30 03:00:01.083850+00:00 18 138 \n", + "119 2026-04-30 03:00:01.083850+00:00 18 138 \n", + "123 2026-04-30 03:00:01.083850+00:00 18 158 \n", + "124 2026-04-30 03:00:01.083850+00:00 19 251 \n", + "\n", + " arrivals_early_am arrivals_am_peak arrivals_midday arrivals_pm_peak \\\n", + "24 4 30 60 58 \n", + "83 6 36 60 56 \n", + "86 0 34 64 66 \n", + "87 0 48 80 80 \n", + "89 5 48 80 80 \n", + "99 10 48 91 91 \n", + "100 10 48 91 95 \n", + "101 6 48 90 86 \n", + "102 6 48 90 86 \n", + "105 8 51 94 96 \n", + "110 0 68 110 108 \n", + "111 0 68 110 108 \n", + "116 0 63 110 110 \n", + "117 5 63 110 110 \n", + "118 10 60 121 125 \n", + "119 10 60 121 121 \n", + "123 0 83 140 138 \n", + "124 5 79 140 138 \n", + "\n", + " arrivals_evening route_id_array route_type_array \\\n", + "24 24 [28, 27] [3] \n", + "83 42 [11, 28] [3] \n", + "86 47 [28, 24X, 27] [3] \n", + "87 48 [11, 28, 15X] [3] \n", + "89 48 [28, 15X, 11] [3] \n", + "99 45 [28, 2650, 27, 11, 2710] [3] \n", + "100 45 [28, 2650, 2710, 27, 11] [3] \n", + "101 66 [11, 24X, 28] [3] \n", + "102 66 [24X, 28, 11] [3] \n", + "105 63 [28, 90, 25, 24X, 27] [3] \n", + "110 52 [2650, 15X, 28, 27, 11, 2710] [3] \n", + "111 52 [2710, 27, 28, 2650, 11, 15X] [3] \n", + "116 72 [24X, 28, 15X, 11] [3] \n", + "117 72 [15X, 28, 24X, 11] [3] \n", + "118 63 [2650, 28, 24X, 2710, 27, 11] [3] \n", + "119 69 [28, 2650, 27, 24X, 2710, 11] [3] \n", + "123 76 [24X, 27, 2650, 28, 15X, 2710, 11] [3] \n", + "124 80 [28, 91, 15X, 27, 24X, 11] [3] \n", + "\n", + " stop_key tts_stop_name \\\n", + "24 24d82dbb2438795d1c44dc23120ec16e None \n", + "83 62f4538be92b899ba330177a28f38224 None \n", + "86 b6ea8ac7c3faee08d0376599352d8458 None \n", + "87 a083c3021eeca55b8453d7eb9d4f08b7 None \n", + "89 6885eb64abce3700e8b30198e609c585 None \n", + "99 b7c9ac0ab926043edbad1a4eb0fccacd None \n", + "100 fd8d47021b830ca14e16f772f83bc0aa None \n", + "101 2e0d78fc35be5ca73c2202a2249b7538 None \n", + "102 c3b6173c81d32da05ccbae327760de26 None \n", + "105 dd9d07510c38d5a23f1eaa5ea8bf7403 None \n", + "110 3257fa4a3072bbe36dd39bb1f656d4dd None \n", + "111 30c9d332c4c5bdd854e48ca64fa4bfc3 None \n", + "116 8da34016dfed9d1f921d73dec6beb807 None \n", + "117 f984c9f6c9ac417c0dccdbed0df15d3c None \n", + "118 edf3f31d73599f1bcfbe2555d6eb24a8 None \n", + "119 c939b297ff66fbb07f3bddbab7f372e3 None \n", + "123 82bc4b97797f539447bfbc296ddd33fe None \n", + "124 1e31723fdd3de7ff60f2d5c2013c5d77 None \n", + "\n", + " pt_geom stop_name \\\n", + "24 POINT(-119.86987 34.428296) Storke & Marketplace \n", + "83 POINT(-119.8533 34.416898) El Colegio & Stadium \n", + "86 POINT(-119.875665 34.428798) Santa Felicia & Marketplace \n", + "87 POINT(-119.86543 34.417575) El Colegio & Camino Corto \n", + "89 POINT(-119.8541 34.417475) El Colegio & Stadium \n", + "99 POINT(-119.869891 34.419847) Storke & Sierra Madre \n", + "100 POINT(-119.86987 34.426371) Storke & Santa Felicia \n", + "101 POINT(-119.85785 34.417241) El Colegio & Embarcadero Del Mar \n", + "102 POINT(-119.86115 34.417245) El Colegio & Los Carneros \n", + "105 POINT(-119.872498 34.42998) Hollister & Camino Real Marketplace \n", + "110 POINT(-119.86957 34.419003) Storke & El Colegio \n", + "111 POINT(-119.869622 34.422113) Storke & Whittier \n", + "116 POINT(-119.86126 34.417513) El Colegio & Los Carneros \n", + "117 POINT(-119.85745 34.417498) El Colegio & Embarcadero Del Mar \n", + "118 POINT(-119.86986 34.423789) Storke & Phelps \n", + "119 POINT(-119.86597 34.41728) El Colegio & Camino Corto \n", + "123 POINT(-119.86801 34.417525) Santa Catalina Hall \n", + "124 POINT(-119.848091 34.414984) UCSB North Hall Outbound \n", + "\n", + " location_type stop_desc stop_code route_id_array_parsed \\\n", + "24 None None 281 [28, 27] \n", + "83 None None 719 [11, 28] \n", + "86 None None 27 [28, 24X, 27] \n", + "87 None None 1069 [11, 28, 15X] \n", + "89 None None 336 [28, 15X, 11] \n", + "99 None None 371 [28, 2650, 27, 11, 2710] \n", + "100 None None 877 [28, 2650, 2710, 27, 11] \n", + "101 None None 1066 [11, 24X, 28] \n", + "102 None None 1065 [24X, 28, 11] \n", + "105 None None 284 [28, 90, 25, 24X, 27] \n", + "110 None None 876 [2650, 15X, 28, 27, 11, 2710] \n", + "111 None None 372 [2710, 27, 28, 2650, 11, 15X] \n", + "116 None None 1064 [24X, 28, 15X, 11] \n", + "117 None None 1063 [15X, 28, 24X, 11] \n", + "118 None None 879 [2650, 28, 24X, 2710, 27, 11] \n", + "119 None None 51 [28, 2650, 27, 24X, 2710, 11] \n", + "123 None None 92 [24X, 27, 2650, 28, 15X, 2710, 11] \n", + "124 None None 42 [28, 91, 15X, 27, 24X, 11] \n", + "\n", + " n_routes \n", + "24 2 \n", + "83 2 \n", + "86 3 \n", + "87 3 \n", + "89 3 \n", + "99 5 \n", + "100 5 \n", + "101 3 \n", + "102 3 \n", + "105 5 \n", + "110 6 \n", + "111 6 \n", + "116 4 \n", + "117 4 \n", + "118 6 \n", + "119 6 \n", + "123 7 \n", + "124 6 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_existing_filtered.head(24)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "1bb00808-d6da-46ce-b04c-3f59b1f046c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['stop_id', 'stop_name', 'latitude', 'longitude', 'pt_geom', 'buffer',\n", + " 'total_pop_adj', 'workers_with_no_car_adj', 'total_seniors_adj',\n", + " 'total_youth_adj', 'inc_total_lowincome_adj'],\n", + " dtype='object')" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gdf_29.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "953f95be-4664-46e1-a87e-d0b2b681ce0b", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged = gdf_29.merge(\n", + " df_existing[['stop_name', 'n_routes', 'daily_arrivals']],\n", + " on='stop_name',\n", + " how='left'\n", + ")\n", + "\n", + "df_merged[['n_routes', 'daily_arrivals']] = (\n", + " df_merged[['n_routes', 'daily_arrivals']].fillna(0)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "5e539e68-8b2f-419c-9a5b-dd041773186f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stop_idstop_namelatitudelongitudept_geombuffertotal_pop_adjworkers_with_no_car_adjtotal_seniors_adjtotal_youth_adjinc_total_lowincome_adjn_routesdaily_arrivals
01San Benito Housing34.419494-119.854285POINT (237676.247 3812365.404)POLYGON ((238080.919 3812365.404, 238078.970 3...1902.74055632.5762096.8024401702.7975621539.6955600.00.0
12UCSB North Hall Inbound34.415438-119.847939POINT (238246.997 3811899.058)POLYGON ((238651.669 3811899.058, 238649.720 3...1537.6986890.0000007.5620651357.8633271260.5017383.062.0
23UCSB North Hall Outbound34.415290-119.847813POINT (238258.139 3811882.247)POLYGON ((238662.811 3811882.247, 238660.863 3...1543.6674980.0000007.5914181363.1340771265.3945656.0251.0
34UCSB Elings Hall Outbound34.414870-119.839621POINT (239009.950 3811814.601)POLYGON ((239414.622 3811814.601, 239412.673 3...560.6123120.0000002.756968495.048155459.5521854.083.0
\n", + "
" + ], + "text/plain": [ + " stop_id stop_name latitude longitude \\\n", + "0 1 San Benito Housing 34.419494 -119.854285 \n", + "1 2 UCSB North Hall Inbound 34.415438 -119.847939 \n", + "2 3 UCSB North Hall Outbound 34.415290 -119.847813 \n", + "3 4 UCSB Elings Hall Outbound 34.414870 -119.839621 \n", + "\n", + " pt_geom \\\n", + "0 POINT (237676.247 3812365.404) \n", + "1 POINT (238246.997 3811899.058) \n", + "2 POINT (238258.139 3811882.247) \n", + "3 POINT (239009.950 3811814.601) \n", + "\n", + " buffer total_pop_adj \\\n", + "0 POLYGON ((238080.919 3812365.404, 238078.970 3... 1902.740556 \n", + "1 POLYGON ((238651.669 3811899.058, 238649.720 3... 1537.698689 \n", + "2 POLYGON ((238662.811 3811882.247, 238660.863 3... 1543.667498 \n", + "3 POLYGON ((239414.622 3811814.601, 239412.673 3... 560.612312 \n", + "\n", + " workers_with_no_car_adj total_seniors_adj total_youth_adj \\\n", + "0 32.576209 6.802440 1702.797562 \n", + "1 0.000000 7.562065 1357.863327 \n", + "2 0.000000 7.591418 1363.134077 \n", + "3 0.000000 2.756968 495.048155 \n", + "\n", + " inc_total_lowincome_adj n_routes daily_arrivals \n", + "0 1539.695560 0.0 0.0 \n", + "1 1260.501738 3.0 62.0 \n", + "2 1265.394565 6.0 251.0 \n", + "3 459.552185 4.0 83.0 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_merged" + ] + }, + { + "cell_type": "markdown", + "id": "a438599a-3fe1-4d9d-a45e-7912f97f12fd", + "metadata": {}, + "source": [ + "### Fall / Winter / Spring" + ] + }, + { + "cell_type": "markdown", + "id": "e7554a2c-acca-4af2-bf15-fba4e43fe810", + "metadata": {}, + "source": [ + "Day: 12 × 4 = 48 arrivals\n", + "Evening: 4 × 2 = 8 arrivals" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "676ff0d9-c1a8-4596-b9e6-25c251142ce5", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged_fsw = df_merged.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "ae7b763f-9404-4575-9b20-6790aa74aadc", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged_fsw[\"n_routes_scn\"] = df_merged_fsw[\"n_routes\"] + 1\n", + "df_merged_fsw[\"daily_arrivals_scn\"] = df_merged_fsw[\"daily_arrivals\"] + 56" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "fbabd8fc-8937-4ee0-bdbf-9729c3f886f2", + "metadata": {}, + "outputs": [], + "source": [ + "X_base_fsw= df_merged_fsw[[\n", + " 'n_routes',\n", + " 'daily_arrivals',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].fillna(0)\n", + "\n", + "X_base_fsw = X_base_fsw.rename(columns={\n", + " 'n_routes': 'n_routes',\n", + " 'daily_arrivals': 'n_arrivals'\n", + "})\n", + "\n", + "X_base_fsw[\"log_arrivals\"] = np.log(X_base_fsw[\"n_arrivals\"] + 1)\n", + "\n", + "X_base_fsw= sm.add_constant(X_base_fsw)\n", + "X_base_fsw= X_base_fsw[nb_model_extended_final.model.exog_names]\n", + "df_merged_fsw['pred_baseline'] = nb_model_extended_final.predict(X_base_fsw)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "8565382d-37dd-489a-b30f-e4ec17a7726f", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn_fsw = df_merged_fsw[[\n", + " 'n_routes_scn',\n", + " 'daily_arrivals_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].copy()\n", + "\n", + "\n", + "\n", + "X_scn_fsw = X_scn_fsw.rename(columns={\n", + " 'n_routes_scn': 'n_routes',\n", + " 'daily_arrivals_scn': 'n_arrivals'\n", + " \n", + "})\n", + "X_scn_fsw[\"log_arrivals\"] = np.log(X_scn_fsw[\"n_arrivals\"] + 1)\n", + "\n", + "X_scn_fsw = sm.add_constant(X_scn_fsw)\n", + "X_scn_fsw = X_scn_fsw[nb_model_extended_final.model.exog_names]\n", + "df_merged_fsw['pred_scenario'] = nb_model_extended_final.predict(X_scn_fsw)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "8907b88f-a7f1-4b31-88b6-d790144cb716", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged_fsw['ridership_change'] = (\n", + " df_merged_fsw['pred_scenario'] - df_merged_fsw['pred_baseline']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "9f407e44-a573-4c15-be59-657507ce688d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "341.67539178867486\n" + ] + } + ], + "source": [ + "ridership_change_fsw= df_merged_fsw[\"ridership_change\"].sum()\n", + "print(ridership_change_fsw)" + ] + }, + { + "cell_type": "markdown", + "id": "06c534e3-8bdf-4902-8fd8-b55839610e2b", + "metadata": {}, + "source": [ + "### Summer" + ] + }, + { + "cell_type": "markdown", + "id": "cbb07b2f-048a-40db-8a0f-d913edef3594", + "metadata": {}, + "source": [ + "16 × 2 = 32 arrivals per day" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "e9d926e9-a077-482e-94e4-dfda391d62f8", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged_sum = df_merged.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "944fba4b-f88f-4afc-a74e-800097732bfc", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged_sum[\"n_routes_scn\"] = df_merged_sum[\"n_routes\"] + 1\n", + "df_merged_sum[\"daily_arrivals_scn\"] = df_merged_sum[\"daily_arrivals\"] + 32" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "48dbe88c-a7da-4cd5-8ba5-b30e4fd594f6", + "metadata": {}, + "outputs": [], + "source": [ + "X_base_sum= df_merged_sum[[\n", + " 'n_routes',\n", + " 'daily_arrivals',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].fillna(0)\n", + "\n", + "X_base_sum= X_base_sum.rename(columns={\n", + " 'n_routes': 'n_routes',\n", + " 'daily_arrivals': 'n_arrivals'\n", + "})\n", + "\n", + "X_base_sum[\"log_arrivals\"] = np.log(X_base_sum[\"n_arrivals\"] + 1)\n", + "\n", + "X_base_sum= sm.add_constant(X_base_sum)\n", + "X_base_sum= X_base_sum[nb_model_extended_final.model.exog_names]\n", + "df_merged_sum['pred_baseline'] = nb_model_extended_final.predict(X_base_sum)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "611110b9-128d-4786-aecb-2c975694c515", + "metadata": {}, + "outputs": [], + "source": [ + "X_scn_sum = df_merged_sum[[\n", + " 'n_routes_scn',\n", + " 'daily_arrivals_scn',\n", + " 'total_pop_adj',\n", + " 'workers_with_no_car_adj',\n", + " 'total_youth_adj',\n", + " 'total_seniors_adj',\n", + " 'inc_total_lowincome_adj',\n", + "]].copy()\n", + "\n", + "\n", + "\n", + "X_scn_sum = X_scn_sum .rename(columns={\n", + " 'n_routes_scn': 'n_routes',\n", + " 'daily_arrivals_scn': 'n_arrivals'\n", + " \n", + "})\n", + "X_scn_sum[\"log_arrivals\"] = np.log(X_scn_sum[\"n_arrivals\"] + 1)\n", + "\n", + "X_scn_sum = sm.add_constant(X_scn_sum)\n", + "X_scn_sum = X_scn_sum[nb_model_extended_final.model.exog_names]\n", + "df_merged_sum['pred_scenario'] = nb_model_extended_final.predict(X_scn_sum)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "3266086c-cbc8-4de8-9578-9f9a439f5a1b", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged_sum['ridership_change'] = (\n", + " df_merged_sum['pred_scenario'] - df_merged_sum['pred_baseline']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "353d4272-1726-4bba-951c-d841fc3a1eb4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "148.34520757542504\n" + ] + } + ], + "source": [ + "ridership_change_sum= df_merged_sum[\"ridership_change\"].sum()\n", + "print(ridership_change_sum)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "31629603-bab4-47b1-aecb-15ccec4f5b82", + "metadata": {}, + "outputs": [], + "source": [ + "## Querying NTD Ridership Data for SMBTD" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "626d10e4-cb01-483d-8de0-14d941d9fe2f", + "metadata": {}, + "outputs": [], + "source": [ + "with db_engine.connect() as connection:\n", + " query = \"\"\"\n", + " SELECT\n", + " agency, ntd_id, reporter_type, report_year, primary_uza_name,\n", + " unlinked_passenger_trips_upt, agency_voms\n", + " FROM \n", + " cal-itp-data-infra.mart_ntd.dim_annual_service_agencies\n", + " WHERE \n", + " state = 'CA'\n", + " AND report_year = 2024\n", + " AND agency IN (\n", + " 'Santa Barbara Metropolitan Transit District'\n", + " )\n", + " \"\"\"\n", + " ridership_data = pd.read_sql(query, connection)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "584b4bff-2f6e-4942-b3e8-63ed5f5a7dc0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
agencyntd_idreporter_typereport_yearprimary_uza_nameunlinked_passenger_trips_uptagency_voms
0Santa Barbara Metropolitan Transit District90020Full Reporter2024Santa Barbara, CA4684415.071.0
\n", + "
" + ], + "text/plain": [ + " agency ntd_id reporter_type \\\n", + "0 Santa Barbara Metropolitan Transit District 90020 Full Reporter \n", + "\n", + " report_year primary_uza_name unlinked_passenger_trips_upt agency_voms \n", + "0 2024 Santa Barbara, CA 4684415.0 71.0 " + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridership_data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c3b3410-d75e-4c7f-8b12-801cc3b67d56", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Pyproject Local (use-venv)", + "language": "python", + "name": "pyproject_local_kernel_use_venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}