{ "cells": [ { "cell_type": "markdown", "id": "d36aa714-fa0d-4ec0-81c3-bdb236e8d17d", "metadata": {}, "source": [ "# Basic Fault Network Modeling with Fermi\n", "\n", "Fermi is a tool to create fault sources for PSHA that are capable of \n", "subfault to multifault ruptures, treating the faults as a network.\n", "\n", "This is an entry-level tutorial, showing the common useful methods and constraints to build a fault source model. However additional configuration is possible for special cases, to be covered in later tutorials." ] }, { "cell_type": "markdown", "id": "3406d007-49ea-4f05-b5d6-35374a000cb8", "metadata": {}, "source": [ "## Overview of the Fault Network Modeling process\n", "\n", "The modeling process looks like this:\n", "\n", "1. Creation of subfaults\n", "\n", " In this step, the fault traces are expanded down-dip to 3D surfaces, and then broken into smaller, atomic units called 'subfaults' that are capable of independent ruptures. The individual subfault ruptures are the smallest on-fault ruptures in the fault source. For regional PSHA models, 10x10 km subfaults are a fine subfault size, which is about a M 6.0 rupture. This can be smaller or larger if desired, for example smaller for site-specific studies, or larger for continental-scale models; the tradeoffs here are the number of ruptures produced and the computational expense in the rupture creation and rate inversion.\n", "\n", "1. Creation of single-fault ruptures\n", "\n", " Single-fault ruptures are composed of one or more subfaults. Ruptures with more than one subfault are rectangular groups of contiguous subfaults. These fall within rupture aspect ratio bounds, which are different for ruptures that don't fully saturate the down-dip width of the fault and those that do: ruptures that do are allowed to grow much longer than those that do not, consistent with observations from nature. Note that these aspect ratio bounds are configurable.\n", "\n", "1. Creation of multifault ruptures\n", "\n", " Multifault ruptures are created by joining single-fault ruptures that are separated by a 'jump' distance less than some specified value (typically 5-10 km). This is done through graph theoretical methods: a N x N distance matrix is created (where N is the number of ruptures) and then this matrix is pared for distances greater than the jump distance, creating an adjacency matrix. Then, all of the unique sets of adjacent ruptures is found through a depth-first search algorithm operating on the adjacency matrix.\n", "\n", " This typically produces an enormous number of ruptures, so additional filtering should be done on the adjacency matrix before the multifault ruptures are created. The most substantial is limiting multifault ruptures to be combinations of full-fault single-fault ruptures (rather than all subfault ruptures), which for reasons of computational expense will need to be done when more than a few faults are involved, unless one wants to use an HPC system or the subfaults themselves are >20x20 km. This is in line with theory and observations suggesting that earthquake ruptures are much more likely to stop at geometric complexities in faults (including gaps and stepovers) than in the middle of fault segments. Similarly, the geometrical compatibilities between faults themselves can be quantified and used as a filter on the adjacency matrix.\n", "\n", "1. (Optional) Plausibility filtering of multifault ruptures\n", "\n", " Research of rupture propagation through geometrical complexities and related topics indicates that not all potential multifault ruptures are equally plausible. Therefore, we can increase the model's fidelity to nature and reduce its computational load by filtering the ruptures by their plausbility. The plausibility of a rupture is quantified by assessing the jump distance, the angular distance between the traces of adjacent faults, and the angular distance between the azimuth of slip between adjacent faults; each of these yields a plausibility value between 0 and 1 for each connection between faults (or ruptures), which are multiplied for each connection: a three-fault rupture will have a total plausibility value that is the product of the three criteria for two connections. The ruptures are then stochastically filtered by their plausibility, by sampling a uniform random number from [0-1) for each rupture and comparing to the plausibility; if the plausbility is higher than the random number, the rupture is retained. All single-fault ruptures have a plausibility of 1.0 so they are not filtered. Tuning parameters exist for the plausibility calculations for each criterion.\n", "\n", " In this tutorial, the plausibility filtering is not used.\n", "\n", "1. Rupture rate inversion\n", "\n", " Once Fermi has made the ruptures, the next step is to determine the annual occurrence rates of each rupture, through an inversion of geological and seismological constraints, such as fault slip rates and magnitude-frequency distributions. This happens through the creation of a system of linear equations which represent the constraints, which is solved using a non-negative least-squares solver developed for this application.\n", "\n", " 1. *Choosing constraints* There are a variety of data types and constraints that can be used to solve for the rupture rates. The most commonly used by nearly all workers in the field are fault slip rates, which may be found through geologic or geodetic means. We are also using two types of magnitude-frequency distribution information. The first is a normal magnitude-frequency distribution, which has absolute rates (frequencies) for each magnitude bin. The second is what is here called a 'relative' magnitude-frequency distribution, in which only the shape (the relative rates) of the MFD is used, i.e. there is a b-value but no a-value. We will use the absolute MFD as a constraint on the model-wide magnitude-frequency distribution, and relative MFDs for each fault, to ensure that the faults are producing a range of magnitudes.\n", " \n", " 1. *Solving for the rupture rates* Once the constraints have been chosen, a system of equations is created; each constraint becomes a block of equations, that are then stacked to form the final system. Though the system is linear (i.e., the variables we are solving for, the rupture rates, are related to each other additively not multiplicatively), we can't do a direct solve on the system because the solution must be non-negative--rupture rates can be zero, but not negative (that would be meaningless). We use a non-negative projected-gradient weighted least-squares solver, which is an iterative method that offers rapid convergence.\n", " \n", "\n", "1. Writing fault sources\n", "\n", " After the rupture rates have been determined, the fault network can be saved as an OpenQuake fault source." ] }, { "cell_type": "markdown", "id": "82b22926-2591-4523-941b-bba342ee1da1", "metadata": {}, "source": [ "## Building the fault network" ] }, { "cell_type": "markdown", "id": "c4c4fc94-a081-4bad-8e91-1e3161adfe53", "metadata": {}, "source": [ "First we must import the modules and functions." ] }, { "cell_type": "code", "execution_count": 1, "id": "de804f2d-0703-438e-9021-e41b3e438d27", "metadata": {}, "outputs": [], "source": [ "# Start the logging with level INFO to provide\n", "# good information about the progress and results\n", "\n", "import logging\n", "logging.basicConfig(\n", " format='%(asctime)s - %(message)s',\n", " datefmt='%d-%b-%y %H:%M:%S',\n", " level=logging.INFO,\n", ")" ] }, { "cell_type": "markdown", "id": "e94767f6-779a-427a-9ff7-c01941cb13ed", "metadata": {}, "source": [ "Fermi is the `openquake.fnm` module. The basic entry point is the `openquake.fnm.all_together_now` submodule,\n", "which provides the functions `build_fault_network` and `build_system_of_equations`. \n", "\n", "However, we are also going to import a number of other functions to allow us\n", "to use more constraints in solving for the rupture rates, such as magnitude-frequency constraints for all of the faults involved as well as for the region." ] }, { "cell_type": "code", "execution_count": 2, "id": "5624209a-6713-4233-8b21-f33023aea1cb", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import geopandas as gpd\n", "import matplotlib.pyplot as plt\n", "from openquake.hazardlib.mfd import TruncatedGRMFD\n", "\n", "from openquake.fnm.exporter import (\n", " make_multifault_source,\n", " write_multifault_source,\n", ")\n", "from openquake.fnm.all_together_now import (\n", " build_fault_network,\n", " build_system_of_equations,\n", ")\n", "from openquake.fnm.inversion.utils import (\n", " rup_df_to_rupture_dicts,\n", " get_fault_moment_rate,\n", " make_fault_mfd,\n", ")\n", "from openquake.fnm.inversion.plots import (\n", " plot_soln_slip_rates,\n", " plot_soln_mfd,\n", " plot_mfd,\n", ")\n", "from openquake.fnm.inversion.soe_builder import (\n", " make_fault_rel_mfd_equation_components,\n", ")\n", "\n", "from openquake.fnm.inversion.solver import solve_nnls_pg" ] }, { "cell_type": "markdown", "id": "d517d3d4-41f2-499f-9f6f-da4bfb027f31", "metadata": {}, "source": [ "### Settings for the fault network creation\n", "\n", "Fault network modeling is complex; there are a number of parameters that control many of the aspects of the process, such as the size of the subfaults, the maximum jump distance, whether to filter by plausibility, etc. Note that these settings do not directly control the rupture rate inversion--that comes later.\n", "\n", "The list of the available settings and their defaults may be found [in the documentation](https://github.com/GEMScienceTools/oq-mbtk/blob/7cbd649c7c46f17afc44a4664686d621e9fec53e/openquake/fnm/all_together_now.py#L59)." ] }, { "cell_type": "code", "execution_count": 3, "id": "86bc0240", "metadata": {}, "outputs": [], "source": [ "settings = {\n", " # fraction of slip rate released in mainshocks\n", " \"seismic_fraction\": 1.0, \n", " # Size of subfault length/width in km\n", " \"subsection_size\": 10.0, \n", " \"max_jump_distance\": 10.0, # maximum 3d distance between faults that can co-rupture\n", " \"parallel_subfault_build\": True, #set to False if you run in IPython interactively\n", " 'full_fault_only_mf_ruptures': True, # Set to False for site-specific analysis with just a few faults\n", " \"filter_by_plausibility\": True, #set to True if you want to remove some geometrically implausible ruptures\n", " \"fault_mfd_b_value\": 1.0, # change as you like\n", " \"export_fault_mfds\": True, # create MFD objects for faults during processing\n", "}" ] }, { "cell_type": "markdown", "id": "b2c736b8-9194-4222-b0f2-f35d4c20da36", "metadata": {}, "source": [ "### Loading the fault data" ] }, { "cell_type": "markdown", "id": "11ca95f4-90ca-4c3d-a3eb-10b14cf468fa", "metadata": {}, "source": [ "This file shows a part of the Altyn Tagh and Qilian Shan in northern Tibet. The total fault system covers several hundred kilometers in either direction and shows much of the complexity inherent in fault systems worldwide, while still being small enough to be handled in a short amount of time by Fermi." ] }, { "cell_type": "code", "execution_count": 4, "id": "b2c052a0", "metadata": {}, "outputs": [], "source": [ "fault_geojson = \"../../../../openquake/fnm/tests/data/atf_qilian.geojson\"" ] }, { "cell_type": "code", "execution_count": 5, "id": "0aa7c0d7-c34d-439f-9b25-12ebd56c0b3b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning 3: Cannot find header.dxf (GDAL_DATA is not defined)\n", "/Users/itchy/src/miniforge3/envs/oq2/lib/python3.12/site-packages/pyogrio/core.py:35: RuntimeWarning: Could not detect GDAL data files. Set GDAL_DATA environment variable to the correct path.\n", " _init_gdal_data()\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gpd.read_file(fault_geojson).plot()" ] }, { "cell_type": "markdown", "id": "47464f9e-7fb8-443a-88ec-6e8bb5f8b855", "metadata": {}, "source": [ "Now let's look at the attributes of the data. The required ones are:\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "46733c30-ed69-422e-a583-a280f6c824b1", "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", "
extension_errcdenamenet_slip_rateextension_ratelsdnet_slip_rate_errhwdip_dirfiddextral_errfwdipdextral_rateusdrakegeometry
00.0930.0013.7250.09120.00.078104S2820.07810389.0-3.7240.00.0LINESTRING (90.73336 38.64673, 90.73935 38.648...
10.0860.0042.546-2.51115.00.094122SW3090.11411515.0-0.4210.05.9LINESTRING (98.39916 39.53902, 98.43676 39.516...
20.075-0.001Luliang Thrust2.873-1.86015.00.075140NE3310.06610415.02.1910.0179.2LINESTRING (95.64242 37.59772, 95.63424 37.600...
30.140-0.004Qaidam Thrust1.551-0.32115.00.111141NE3320.11814015.0-1.5180.00.2LINESTRING (96.49668 37.88915, 96.44849 37.922...
40.237-0.0241.591-1.46015.00.186138NE3330.18014115.0-0.6340.02.3LINESTRING (96.27662 38.47767, 96.26163 38.479...
\n", "
" ], "text/plain": [ " extension_err cde name net_slip_rate extension_rate lsd \\\n", "0 0.093 0.001 3.725 0.091 20.0 \n", "1 0.086 0.004 2.546 -2.511 15.0 \n", "2 0.075 -0.001 Luliang Thrust 2.873 -1.860 15.0 \n", "3 0.140 -0.004 Qaidam Thrust 1.551 -0.321 15.0 \n", "4 0.237 -0.024 1.591 -1.460 15.0 \n", "\n", " net_slip_rate_err hw dip_dir fid dextral_err fw dip dextral_rate \\\n", "0 0.078 104 S 282 0.078 103 89.0 -3.724 \n", "1 0.094 122 SW 309 0.114 115 15.0 -0.421 \n", "2 0.075 140 NE 331 0.066 104 15.0 2.191 \n", "3 0.111 141 NE 332 0.118 140 15.0 -1.518 \n", "4 0.186 138 NE 333 0.180 141 15.0 -0.634 \n", "\n", " usd rake geometry \n", "0 0.0 0.0 LINESTRING (90.73336 38.64673, 90.73935 38.648... \n", "1 0.0 5.9 LINESTRING (98.39916 39.53902, 98.43676 39.516... \n", "2 0.0 179.2 LINESTRING (95.64242 37.59772, 95.63424 37.600... \n", "3 0.0 0.2 LINESTRING (96.49668 37.88915, 96.44849 37.922... \n", "4 0.0 2.3 LINESTRING (96.27662 38.47767, 96.26163 38.479... " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gpd.read_file(fault_geojson).head()" ] }, { "cell_type": "markdown", "id": "558751e4-3ef3-4bdf-a76f-5f82976f24ce", "metadata": {}, "source": [ "### Building the fault network\n", "\n", "This is done with a single command. The fault network is a dictionary of the different components." ] }, { "cell_type": "code", "execution_count": 7, "id": "4c11213d-594f-49c9-b1df-ad7682549db0", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "21-Mar-26 07:01:50 - Building faults from geojson\n", "21-Mar-26 07:01:50 - \t27 faults built from geojson\n", "21-Mar-26 07:01:50 - \tdone in 0.1 s\n", "21-Mar-26 07:01:50 - Making subfaults in parallel\n", "21-Mar-26 07:01:56 - \tdone in 6.8 s\n", "21-Mar-26 07:01:56 - \t828 subfaults from 27 faults\n", "21-Mar-26 07:01:56 - Making single fault rup df and distance matrix\n", "21-Mar-26 07:01:56 - making single-fault ruptures\n", "21-Mar-26 07:01:56 - calculating fault distances\n", "21-Mar-26 07:01:56 - making dist_adj_matrix (7046, 7046)\n", "21-Mar-26 07:01:56 - filtering and calculating pairwise rupture distances\n", "21-Mar-26 07:01:57 - \tdone in 0.5 s\n", "21-Mar-26 07:01:57 - \t7,046 single-fault ruptures\n", "21-Mar-26 07:01:57 - \t64 close ruptures out of 4,096 connections (1.6%)\n", "21-Mar-26 07:01:57 - Filtering by rupture overlap\n", "21-Mar-26 07:01:57 - Getting proximal rup angles\n", "21-Mar-26 07:01:57 - Calculating overlap\n", "21-Mar-26 07:01:57 - \tdone in 0.3 s\n", "21-Mar-26 07:01:57 - \t50 connections remaining\n", "21-Mar-26 07:01:57 - Building subfault dataframe\n", "21-Mar-26 07:01:57 - \tdone in 0.0 s\n", "21-Mar-26 07:01:57 - Getting multifault ruptures\n", "21-Mar-26 07:01:57 - \tmaking adjacency dictionary\n", "21-Mar-26 07:01:57 - \tfinding connected subgraphs\n", "21-Mar-26 07:01:57 - \t3 connected subgraphs found\n", "21-Mar-26 07:01:57 - \tgetting all contiguous vertex sets\n", "21-Mar-26 07:01:57 - \t\tfinished subgraph 1\n", "21-Mar-26 07:01:57 - \t\tfinished subgraph 2\n", "21-Mar-26 07:01:57 - \t\tfinished subgraph 3\n", "21-Mar-26 07:01:57 - \tdone in 0.1 s\n", "21-Mar-26 07:01:57 - \t449 multifault ruptures\n", "21-Mar-26 07:01:57 - Making rupture dataframe\n", "21-Mar-26 07:01:58 - Getting fault groups\n", "21-Mar-26 07:01:58 - \tmaking adjacency dictionary\n", "21-Mar-26 07:01:58 - \t6 groups\n", "21-Mar-26 07:01:58 - \tdone in 0.3 s\n", "21-Mar-26 07:01:58 - Filtering ruptures by plausibility\n", "21-Mar-26 07:01:58 - \tdone in 0.4 s\n", "21-Mar-26 07:01:58 - \t7,064 ruptures remaining (94.2 %)\n", "21-Mar-26 07:01:58 - total time: 8.5 s\n" ] } ], "source": [ "fault_network = build_fault_network(\n", " fault_geojson=fault_geojson,\n", " settings=settings,\n", " )" ] }, { "cell_type": "markdown", "id": "0308f73b-0531-4697-9429-7d7b36a45c3c", "metadata": {}, "source": [ "### Making constraints for the rupture rate inversion" ] }, { "cell_type": "markdown", "id": "bef7317c-9de7-47aa-a150-e906a5c265ad", "metadata": {}, "source": [ "The first step is to choose the set of ruptures that we'll use in the model. \n", "Because we are not filtering by plausibility, this choice is made for us.\n", "The ruptures are found in a Pandas dataframe, `fault_network['rupture_df']`.\n", "If we were choosing to filter the ruptures, and then use the filtered set,\n", "we would find that at `fault_network['rupture_df_keep']`. We will also make a\n", "dictionary out of the ruptures that we want to use, which makes certain steps\n", "easier." ] }, { "cell_type": "code", "execution_count": 8, "id": "0267b23e-293a-4638-bc52-0dc3f439a7b6", "metadata": {}, "outputs": [], "source": [ "rup_key = 'rupture_df'\n", "rup_set = fault_network[rup_key]\n", "rups = rup_df_to_rupture_dicts(rup_set)" ] }, { "cell_type": "markdown", "id": "76970163-36df-4943-9ae4-ae758f250d7f", "metadata": {}, "source": [ "Now we're going to create relative MFD constraints for each fault." ] }, { "cell_type": "code", "execution_count": 9, "id": "a76f453c-4e64-4991-a222-39f9a23b7626", "metadata": {}, "outputs": [], "source": [ "# MFD constraints (b-value only, no a-value) for faults\n", "fault_rel_mfds = make_fault_rel_mfd_equation_components(\n", " rups,\n", " fault_network,\n", " b_value=settings['fault_mfd_b_value'],\n", " fault_key='faults',\n", " rup_key=rup_key,\n", " )" ] }, { "cell_type": "markdown", "id": "d0e4ea6d-2597-420a-93fe-456045dd7273", "metadata": {}, "source": [ "Here we create an absolute MFD for the whole fault. Fermi can use any OpenQuake MFD class\n", "in the inversion, or a dictionary with magnitude bins and rates. In most cases, one would\n", "fit an MFD to the regional seismicity, which requires estimating the completeness as well.\n", "We won't get into that here, so instead we will fit one to the total moment rate of the faults." ] }, { "cell_type": "code", "execution_count": 10, "id": "6ae48955-27aa-48a3-85f6-f8c034df2833", "metadata": {}, "outputs": [], "source": [ "# absolute MFD for whole model\n", "fault_moment = sum(get_fault_moment_rate(fault) \n", " for i, fault in fault_network['subfault_df'].iterrows())\n", "model_abs_mfd = TruncatedGRMFD.from_moment(\n", " min_mag=rup_set.mag.min(),\n", " max_mag=rup_set.mag.max(),\n", " bin_width=0.1,\n", " b_val=1.0, # as you'd like\n", " moment_rate=fault_moment,\n", ")" ] }, { "cell_type": "markdown", "id": "d5ea5cbe-2b64-4edf-a849-2cfbfbbc1764", "metadata": {}, "source": [ "Now we build the system of equations. We use the ruptures we've selected, and we are making\n", "slip rate equations for each subfault, not each fault. We are using the per-fault relative\n", "MFDs and the model-wide absolute MFD. You can see here how you'd make a model-wide relative MFD\n", "if you wanted to, and how to change its b-value.\n", "\n", "The system of equations is represented by the `lhs`, the left-hand-side matrix of equations\n", "(often called the design matrix); the `rhs`, the right-hand side vector of 'knowns' that we want\n", "to target (i.e. the actual slip rates or MFD bin rates); and the `err` vector of weights, which are\n", "derived from the uncertainties for the slip rates, and more arbitrary weights for the bin rates\n", "and other constraints." ] }, { "cell_type": "code", "execution_count": 11, "id": "744867fb-c17f-47c3-b8ca-8074e27fdbfe", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "21-Mar-26 07:01:59 - Making slip rate eqns\n", "21-Mar-26 07:02:00 - Making regional MFD relative eqns\n", "21-Mar-26 07:02:00 - Making MFD absolute eqns\n", "21-Mar-26 07:02:00 - stacking results\n" ] } ], "source": [ "lhs, rhs, err = build_system_of_equations(\n", " rup_set,\n", " fault_network[\"subfault_df\"],\n", " fault_rel_mfds=fault_rel_mfds,\n", " mfd_rel_weight=1e2,\n", " mfd_rel_mode='shape',\n", " #mfd_rel_eqns=True, # if you want a regional (relative, no a-value) MFD\n", " #mfd_rel_b_val=1.0, # adjust as you'd like,\n", " mfd=model_abs_mfd, # set to None if you don't want to use\n", ")" ] }, { "cell_type": "markdown", "id": "c91ea74d-47ca-4097-ba51-3622feee439a", "metadata": {}, "source": [ "Now we'll solve the equations. There are several stopping conditions. The solver is relatively rapid;\n", "for this model with 7000 ruptures, we can get a good solution in a few minutes. Note that the speed of\n", "convergence is determined not only by the number of ruptures in the system, but by the nature of the constraints\n", "and how steep the gradient is. Sometimes adding constraints can cause a solution to be reached in seconds,\n", "and sometimes it can take much longer.\n", "\n", "My recommendation is to start with a small number of iterations (~1e4), see how fast it takes and the\n", "quality of the solution, and then work up from there. The best stopping condition is the `stall_val` which\n", "triggers when the misfit history stops improving, but this needs to be calibrated for each problem.\n", "\n", "Here we're using 200,000 iterations, which takes a few minutes on a modern laptop." ] }, { "cell_type": "code", "execution_count": 12, "id": "3c98984c-d5a5-4827-bfa7-31114eaa2f09", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "21-Mar-26 07:02:00 - Solving\n", "21-Mar-26 07:05:37 - Done solving\n" ] } ], "source": [ "logging.info(\"Solving\")\n", "rup_rates, misfit_history = solve_nnls_pg(\n", " lhs,\n", " rhs,\n", " weights=err,\n", " max_iters=int(2e5),\n", " accept_grad=-1, # continue to completion of iterations\n", " accept_norm=-1, # continue to completion of iterations\n", " stall_val=1e-6, # continue until solutions is pretty stable\n", ")\n", "rup_rates = pd.Series(rup_rates, index=rup_set.index)\n", "logging.info(\"Done solving\")" ] }, { "cell_type": "markdown", "id": "a8ff66eb-3773-49ed-b3db-b8493447aff8", "metadata": {}, "source": [ "Now we're done and we can set the rates." ] }, { "cell_type": "code", "execution_count": 13, "id": "2e8c3c4e-ae0d-4cef-8788-97f3f15dd6ff", "metadata": {}, "outputs": [], "source": [ "rup_set[\"occurrence_rate\"] = rup_rates" ] }, { "cell_type": "markdown", "id": "b7fe7a20-09f4-435b-be73-a1a5319e68dd", "metadata": {}, "source": [ "Let's look at the results:" ] }, { "cell_type": "code", "execution_count": 14, "id": "e3bb50e1-1474-45f7-a286-c3560b310a80", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Observed and modeled slip rates')" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plot_soln_slip_rates(\n", " rup_rates,\n", " fault_network['subfault_df'].net_slip_rate,\n", " lhs,\n", " errs=fault_network[\"subfault_df\"].net_slip_rate_err,\n", " units=\"mm/yr\",\n", ")\n", "plt.title(\"Observed and modeled slip rates\")" ] }, { "cell_type": "code", "execution_count": 15, "id": "367ea001-836f-49d8-94ed-6083b663ab7c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Solution MFD')" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAc71JREFUeJzt3XlcVNX7B/DPnWFHVpFVFsUVF0AENHOhMLc0s29qmaGmPyvKjDbtW9ryTStNKSUtyzDL0krLstQikdwFw30XcWMR2XeYub8/RkbGYZmBGWYGPu/Xa14wd86995kJ4emc55wjiKIogoiIiKgNkhg6ACIiIiJDYSJEREREbRYTISIiImqzmAgRERFRm8VEiIiIiNosJkJERETUZjERIiIiojaLiRARERG1WUyEiIiIqM1iIkREBjNs2DAMGzZMp9e8fPkyBEFAfHy8Tq9LRK0TEyEi0tjx48fxn//8B76+vrCysoKXlxeGDx+OFStWtHgsGzZsQGxsbIvftyHTpk2DIAiwt7dHWVmZ2uvnz5+HIAgQBAFLly5VHk9MTFQev/sxefJkZbthw4Ypj0skEtjb26N79+6YOnUq/vzzzxZ5j0StjZmhAyAi07Bv3z5ERETAx8cHs2bNgru7O65evYoDBw7g448/xvPPP9+i8WzYsAEnTpzA3LlzVY77+vqirKwM5ubmLRpPDTMzM5SWluLXX3/FxIkTVV779ttvYWVlhfLy8jrPnTNnDkJDQ1WO+fn5qTzv2LEjFi9eDAAoKSnBhQsXsHnzZnzzzTeYOHEivvnmG4O9dyJTxESIiDTy3nvvwcHBAYcPH4ajo6PKa9nZ2YYJqg6CIMDKyspg97e0tMSgQYPw3XffqSVCGzZswJgxY/DTTz/Vee7gwYPxn//8p8HrOzg44IknnlA59v7772POnDn49NNP4efnhw8++KB5b4KoDeHQGBFp5OLFi+jVq5daEgQArq6uKs+rq6vx7rvvwt/fH5aWlvDz88Prr7+OioqKBu8RHx8PQRBw+fJlleM1Q0eJiYkAFENE27ZtQ3p6unKoqKbnpL4aob///huDBw+Gra0tHB0d8dBDD+H06dMqbd566y0IgoALFy5g2rRpcHR0hIODA6ZPn47S0tJGP6Majz/+OP744w/k5+crjx0+fBjnz5/H448/rvF1NCWVSvHJJ58gICAAK1euREFBgc7vQdRaMREiIo34+voiJSUFJ06caLTtzJkzsWDBAvTr1w/Lly/H0KFDsXjxYpV6l+b473//i6CgILi4uGD9+vVYv359g/VCf/31F0aMGIHs7Gy89dZbiImJwb59+zBo0CC1pAsAJk6ciKKiIixevBgTJ05EfHw83n77bY3jmzBhAgRBwObNm5XHNmzYgB49eqBfv371nldUVIScnByVh1wu1+ieUqkUjz32GEpLS7Fnzx6NYyVq6zg0RkQaefnllzFq1CgEBQUhLCwMgwcPxv3334+IiAiVmpSjR49i3bp1mDlzJtasWQMAePbZZ+Hq6oqlS5di165diIiIaFYsw4cPh5eXF/Ly8tSGieryyiuvwNnZGfv374ezszMAYPz48QgODsbChQuxbt06lfbBwcH48ssvlc9v3bqFL7/8UuMhJzs7Ozz44IPYsGEDZsyYAblcju+//x7PPPNMg+fNmDFD7VhaWppanVB9evfuDUDRe0dEmmGPEBFpZPjw4di/fz/GjRuHo0eP4sMPP8SIESPg5eWFrVu3Ktv9/vvvAICYmBiV81966SUAwLZt21ouaAAZGRlITU3FtGnTlEkQAPTt2xfDhw9Xxlvb008/rfJ88ODBuHXrFgoLCzW+7+OPP47ExERkZmbi77//RmZmZqPDYgsWLMCff/6p8nB3d9f4nu3atQOg6FkiIs2wR4iINBYaGorNmzejsrISR48exZYtW7B8+XL85z//QWpqKgICApCeng6JRIIuXbqonOvu7g5HR0ekp6e3aMw19+vevbvaaz179sSOHTtQUlICW1tb5XEfHx+Vdk5OTgCAvLw82Nvba3Tf0aNHw87ODhs3bkRqaipCQ0PRpUuXOofiavTp0weRkZEaXb8uxcXFABQ9UkSkGfYIEZHWLCwsEBoaikWLFmHVqlWoqqrCDz/8oNJGEAStr1vfOTKZrElxNpVUKq3zuCiKGl/D0tISEyZMwLp167Blyxa9FEnfraZ+6+4klIjqx0SIiJqlf//+ABRDUICiqFoul+P8+fMq7bKyspCfnw9fX996r1XT81J7thWAOnuRNE20au539uxZtdfOnDkDFxcXld4gXXr88cfx77//oqioSGeF4vWRyWTYsGEDbGxscO+99+r1XkStCRMhItLIrl276uwRqamxqRl6Gj16NACozeJatmwZAGDMmDH13sPf3x8AkJSUpDwmk8nw+eefq7W1tbXVaJq4h4cHgoKCsG7dOpUE68SJE9i5c6cyXn2IiIjAu+++i5UrV2pV66MtmUyGOXPm4PTp05gzZ47Gw3dExBohItLQ888/j9LSUjz88MPo0aMHKisrsW/fPmzcuBF+fn6YPn06ACAwMBBRUVH4/PPPkZ+fj6FDh+LQoUNYt24dxo8f3+CMsV69emHAgAGYP38+cnNz4ezsjO+//x7V1dVqbUNCQrBx40bExMQgNDQU7dq1w9ixY+u87pIlSzBq1CgMHDgQTz31FMrKyrBixQo4ODjgrbfe0snnUxeJRII33nhDp9csKCjAN998AwAoLS1Vrix98eJFTJ48Ge+++65O70fU2jERIiKNLF26FD/88AN+//13fP7556isrISPjw+effZZvPHGGyoLLX7xxRfo3Lkz4uPjsWXLFri7u2P+/PlYuHBho/f59ttvMXv2bLz//vtwdHTEU089hYiICAwfPlyl3bPPPovU1FR89dVXWL58OXx9fetNhCIjI7F9+3YsXLgQCxYsgLm5OYYOHYoPPvgAnTp1atbn0tKuXbuGqVOnAlDMEvPw8MDAgQOxatUqtc+IiBoniNpU/xERERG1IqwRIiIiojaLiRARERG1WUyEiIiIqM1iIkRERERtFhMhIiIiarOYCBEREVGbxXWEGiGXy3Hjxg3Y2dk1ae8kIiIianmiKKKoqAienp6QSOrv92EiVI+4uDjExcWhsrISFy9eNHQ4RERE1ARXr15Fx44d632dCyo2oqCgAI6Ojrh69Sr37yEiIjIRhYWF8Pb2Rn5+PhwcHOptxx6hRtQMh9nb2zMRIiIiMjGNlbWwWJqIiIjaLCZCRERE1GYxEapHXFwcAgICEBoaauhQiIiISE9YLN2IwsJCODg4oKCggDVCREREJkLTv9/sESIiIqI2i4kQERERtVlMhIiIiKjNYiJEREREbRYTISIiImqzmAjVg9PniYiIWj9On28Ep88TERGZHk6fbwUyCsqw72IOMgrKDB0KERFRq8RNV43UxsNXMG/zcYgiIBGAxRP6YFKoj6HDIiIialWYCBmhjIIyzL+dBAGAXATm/XQc5VUy3NfDDR2drBvdTZeIiIgax0TICKXllEB+V+WWCGDh1lNYuPUUXO0s0c/HCSG+Tujn64TeXvawNJMaJFYiIiJT1iYSoYcffhiJiYm4//778eOPPxo6nEZ1crGFRIBKMiQA6Olhj/PZRcguqsD2k5nYfjITAGAhlaBPRwdFYuTjhH6+jnC1swKg6F1KyylBJxdbeDhYG+DdEBERGa82MWssMTERRUVFWLdundaJkKFmjW08fAWvbz4BmShCKghYNKE3JoX6oLxKhuPXC5CSnoeU9DwcSc/DrZJKtfN9nG3Qvp0FUq/kQwTrjIiIqG3R9O93m+gRGjZsGBITEw0dhlYmhfpgSLcOuJxTCj8XG2VvjpW5FKF+zgj1cwYAiKKI9FulisToiiIxOptVhCu5pbiSW6q8nlwEXvvpOM5kFmFYd1cEeTvCwdrcIO+NiIjIWBg8EUpKSsKSJUuQkpKCjIwMbNmyBePHj1dpExcXhyVLliAzMxOBgYFYsWIFwsLCDBNwC/JwsG50OEsQBPi52MLPxRaPhHQEABSWV2HDwSt4/48zau2/2nsZX+29DEEAurnaoZ+votYoxNcJfu1tWIRNRERtisEToZKSEgQGBmLGjBmYMGGC2usbN25ETEwMVq9ejfDwcMTGxmLEiBE4e/YsXF1dAQBBQUGorq5WO3fnzp3w9PTU+3swNvZW5ngoyBMfbj+jWmckACMC3HE6sxDpt0pxNqsIZ7OK8N2hKwAAZ1sLZRF2iK8T+nZ0gJW5ogibtUZERNQaGVWNkCAIaj1C4eHhCA0NxcqVKwEAcrkc3t7eeP755zFv3jyNr52YmIiVK1c2WiNUUVGBiooK5fPCwkJ4e3ub5MrS9dUZAcDNogocuT2UlpKeh2PXC1BZLVc530wioJeXA+wszbD3Qg5rjYiIyGS0ihqhyspKpKSkYP78+cpjEokEkZGR2L9/v17uuXjxYrz99tt6uXZLq6/OCAA62FliRC93jOjlDgCoqJbh5I1CZWKUnJ6Hm0UVOHo1X+WaNWsaZRaU474ebujpYQczKRcoJyIi02TUiVBOTg5kMhnc3NxUjru5ueHMGfX6l/pERkbi6NGjKCkpQceOHfHDDz9g4MCBdbadP38+YmJilM9reoR0ruA6kHsRcPYHHLz0dh1N6owAwNJMqph67+OEmYMVRdjX8sqw8fAVrNx1UaWtCGD5X+ex/K/zsDaXItDbAf19nRHi64RgH0c42lg0/f0QERG1IKNOhHTlr7/+0ritpaUlLC0tERcXh7i4OMhkMt0HdORrYOscKFIKAejzKOAzQPvrXDkAHP9BcR1BAoz9GOj3pE5CFAQB3s42mDLAF58mXlRb0yi8szNO3ShEYXk1DlzKxYFLucrXu7i2Q0itBR87u9hCIhFYZ0REREbHqBMhFxcXSKVSZGVlqRzPysqCu7u7Xu8dHR2N6Oho5RijzhRcB359AYokCIqvxzcpHs0hyhXJlZkVEDAeMNNNr4yHgzUWT+hTZ62RXC7i4s1i5ZpGKVfycOlmCS5kF+NCdjE2Jl8FADjamMPd3gpnM4tYZ0REREbFqBMhCwsLhISEICEhQVlALZfLkZCQgOeee06v99Zbj1DuRUXScjefgYCti+bXKckBrtxdJyUCm2cB214GukYCPcYAXYYDVs0r8q6v1kgiEdDVzQ5d3ewwOUyR1OSWVOLfK4oao5T0PBy9mo/80irkl1Ypr1ezplHy5TwM6dYBIb5O8HRkDxEREbU8g88aKy4uxoULFwAAwcHBWLZsGSIiIuDs7AwfHx9s3LgRUVFR+OyzzxAWFobY2Fhs2rQJZ86cUasd0gedryxdcB2I7a2aDAlSYO5x7WqF6roOBMDaGSi7deeQxBzoNBjoPlrxaE49UhNUVsux8fAVvPnLyQbbeThYKdY0uj2kFuBpD3MWYRMRURNp+vfb4IlQYmIiIiIi1I5HRUUhPj4eALBy5UrlgopBQUH45JNPEB4erte4avcInTt3TrfT5498Dfw6FxBliiRobGzTanvquk7QE8D1ZODMNuDs70DOOdVzPIOB7mOAHqMB1wDF4kK6KNxu4BoZBWUY9P7famsa/adfR5zJLMKpjELI7tpl1spcgr4dHdH/9ppG/Xyc4GRrwTojIiLSiMkkQsZOb3uNFVwHci8Bzp11MGusgevknL+TFF09hDu1SQAcfQHnTkDabkC8XXA9+iMg+AnF94Jw52tDjnytqHsS5fUWbTe0plFpZTWOXi3AkSt5ynqjgrIqtdu4tLNATrFiXzWJALz3cB88FsY6IyIiUsdESEcMtemqXhRnA+e2KxKjS4lAdbkWJwt3EiPclSDVdZ2Ah4H2nQE7D8XD3gNZcMKlUlv4udrX35tTcB3ynAtIFzxw6JaVMjG6eLOkzuYDOztjUBcX9PN1QpC3I2wsjLrsjYiIWggToWbS69CYMagsAfatBBIXtex9BQlg6wrYe9xJkm4nSsg6ARz8rM6epZ0nM/F/61MavLRUIiDAw145bT/E1wleLMImImqTmAjpSKvqEbpbfYXbT+8F7G4XootyxbCZKAcgqj8vzAC+GnnXNSTAwOeBqlKgKEPxKMwAirMU9UyaqlVEXledkUQAXri/K85nK6bwZxSo90zVV4TNWiMiotaNiZCOtOpECNBN4bam15DLFNP+i24ARZlA4e2vRTeArFPAjSPq5/QcCwx/B3Du3GCdEQDcyC+7s6ZRel69RdgeDta4nFPCNY2IiFoxJkLN1OqHxmrTReF2c69R53IANQTFmkgDnkWGYzAu3ypT2zutLpoWYQPAg33dMaSrK/r5OsG/gy2ExgrEiYjIqDER0pFW3yNkTO7uWQqfrZj+f6HWFikegcCAZ4FeE7RePVsuF7H5yDW8/OOxBts52pgjxOdOnVFgR0dYW0ib8IaIiMhQmAjpCBOhFlZXz9LNs8CBT4Gj39+ZodbOHQibCYTMAGzba3z5+mqNngj3xZmsIhy9mo+KatVeKTOJgF6e9srEqL+vM9wdrFhnRERkxJgI6QgTISNScgtI+Qo4tAYozlQcM7MCAicreok6dNfoMg3VGlVWy3E6oxDJ6Xk4kp6H5PRcZBVWqF3D0doc+beH2QQBeG98bzwe7qub90lERM3GRKiZ2lSNkKmprgRObgEOxAEZR+8c7xJ5JyHKvdTgStkZBWVqe6fVRRRFXL9dhK1IjPJw6kYh6vpHE+LriHv8XRDi64RgHyc4WJs3840SEVFTMRHSEfYIGTFRBNL3KYbNzmwD1NITARj8kqLWyLZD4ytka+jvM1mYEZ/cYBtBALq52qGfr5NymxDf9jYswiYiaiFMhHSEiZCJyL0EJH0EpH5T9+tmVoBDR8DBG3D0Bhx8bn+9fczeC5DWWpVay73TJALwyogeOJ9dhCPpebh8q1QtBJd2Fuh3ez2j/n5O6O3lgNySStYZERHpARMhHWEiZELSkoB1Y5t2riAB7DwVyZGsCrieAuD2/mujPgTCZqk0b2xNo5tFFSrT9o9fK0ClTLUIWyoIkN3+5ycA+O+Ynpg5uHPT4iciIhVMhJqJNUImqL6Vsuf8C0AE8q8CBVdvf71y53nBNUBW2fC1Hf0AzyDAvY/i4dYbGaKTxmsalVfJcPJGAZIvKxKjQ2m5ymLr2jo6WiG8s4uy16hLh3aQSDicRkSkLSZCOsIeIRPTlJWy5XKgJFuRGJ3fASQt0exe1k6AW2/AvS/g3lvxfYcequsb1TPEtu9CDh7/4mCjt7C3MqtVZ+SMQG+HOjeW5VR+IiJVTIR0hImQCWrOKtd19ipJgPGrFVP2M48DmScUCz3WtW+axAxw6a7oNaouB079AuUQW61NZOurM1ryaCDSbpYgJT0PqVfzUValeg9pzZpGPooeo/6+zth9LhvzNx+HXOSWIURENZgI6QgToTZIk16lqnLg5hlFYpR1QpEcZR4HKgrqv64gAaIPAy5dADReZ1QlU6xplHJ72n7K5TxkFqpvLHs3iQDsnXcfe4aIqE1jIqQjTITaqKb0KomiouYo8wRw5jcg9Vv1NlJLoMdooNfDQJfhyCgTNFrPqMb1/DIkX85tdE2j3p72uL+nG/r7OSHI2xF2VlzTiIjaFiZCOsJEiJqkwU1kbzO3BbqPBALGA12HA+ba9+BcyC7G8OW70dC/YokAdHe3R//bBdghvk7wcrRWW9OIdUZE1JowEdIRJkLUZHcPsT24XFFUffJnxaPgyp22Fu2AbiNv9xRFAuZWGt+m9hCbRACev68rXOwskXI5F8npebiWV6Z2jru9FUJ876xpdOJ6Ad74+QTrjIio1WAi1EycPk86Ud8QmygC148Ap7bcToqu3nnNoh3QfZQiKfK/Hyi9Ve/ijjUa2jIkq7AcyZcV+6YdSc/DyRuFqJY3/M+edUZEZOqYCOkIe4RI70RRsYDjydtJUeG1O69JLQHZ7U1fBQnwwHvAgGeatV1IaWU1jl4tQEp6LlLS83Dw0i2UVqkP4Xk7WWNItw7K2WkdndSH04iIjBUTIR1hIkQtSi6/kxSd+EkxZf9uFu0A506AU6fbX/0U3zv5KbYLkaqvM9TQliHX80ox+MNdaKSTCG72lujv66wcTgvwsIeZVKLShnVGRGQsmAjpCBMhMpiLu4H147Q7R5AqtgmpSYycOwF56UDKV4rC7bvWM6px91T+eaN7wNvJGsmX83A4PQ8nrxeoDadZm0sR5O2o6DHyc0ZaTjHe+fUU64yIyCgwEdIRJkJkMPVtGTJ1C1BVCuRdBnLTFF/z0hQJT80wWoMEIOK/QJf7ALc+ypWwG6ozKquU4ei1fMWaRpcVQ2qF5dUN3kUiAHtei4Cno41275uISAeYCOkIEyEyKG22DJHLgaKMWonRZeDKQeByUv3Xl1ootgjp2B/wClE8nDs3WoMkl4u4cLNYWYS990IOsgrVkzBnW3Pc4++CUD/FkFpPD3tIuXcaEbUAJkK3Xb16FVOnTkV2djbMzMzw5ptv4tFHH9X4fCZCZHC63jIEAuB3r2JF7LI89XOsne4kRV63EyTb9rViUa81qmvLkLrYWkjR7/a0/VA/ZwR5O8LWknunEZHuMRG6LSMjA1lZWQgKCkJmZiZCQkJw7tw52NraanQ+EyEyefX1KomioufoWoqiQPt6MpBxrO7hNSc/wNoZuPEv6to7DVCvM3prXC90cW2H5NvrGR1Jz0NRhepwmlQiIMDDXlmAHernjMSz3DuNiJqPiVA9AgMD8dtvv8Hb21uj9kyEqFXQtFepulLRU3T9dnJ0LRm4db7+9v73A95hgFtvwL0PMoQOuHyrrM46I5lcxLmsImVilHw5D9fz1Rd7vJtUAPZwTSMi0pLJJEJJSUlYsmQJUlJSkJGRgS1btmD8+PEqbeLi4rBkyRJkZmYiMDAQK1asQFhYmNb3SklJQVRUFE6cOKHxOUyEqM0ry1f0Kv35ZuNtLR0Uq2e791EmR+jQQ3Wl7FrDazdE59sbyubi8OU8nM6oe++0ft6OGN7LHaF+TujT0QGWZlJdvTsiaqU0/ftdx4IjLaukpASBgYGYMWMGJkyYoPb6xo0bERMTg9WrVyM8PByxsbEYMWIEzp49C1dXVwBAUFAQqqvVZ7Ds3LkTnp6eAIDc3Fw8+eSTWLNmjX7fEFFrY+0I9H4E+GvhXTPYJMCQV4H8K0DWcSD7DFBRAKTvVTyU7aRAh+6KxEhWCZz6BTXDa55jP8a4fk9iXKDi3+n5rCI8EJuktnfakav5OHI1HwBgYSZBYEcH9PdzRqifE0J8nOFgw01liahpDN4jVJsgCGo9QuHh4QgNDcXKlSsBAHK5HN7e3nj++ecxb948ja5bUVGB4cOHY9asWZg6dWqjbSsq7tRIFBYWwtvbmz1CRI3NYKuuBHLOAZnHFcNrmccU39dVkF1b0BSgYyjgGgC49sDG4wUqe6c9O6wLHG3MlTPUcoor1S7Rza2dMjGqWQU7s7CcBddEbZjJDI3VdnciVFlZCRsbG/z4448qyVFUVBTy8/Pxyy+/NHpNURTx+OOPo3v37njrrbcabf/WW2/h7bffVjvORIgI2s9gE0Wg8IYiITrzK/DvN42fY98R5c7dkGvjD5uOveHoFwi4dAcsbCCKIi7fKsWJ06dw4+IJJNy0w6Fb6kmOvZWZcp0jQQAWPdwHj4Wx4JqoLWkVidCNGzfg5eWFffv2YeDAgcp2r776Knbv3o2DBw82es09e/ZgyJAh6Nu3r/LY+vXr0adPnzrbs0eISE/qXCBSAvSLUmw6m30aKLxez8mCYpVs1wBAVgWc34ma4bWiBz7CPvvRSL5dZ3T8Wj5kdfxWG9DJGYO7dUB/XycEejvCypx1RkStmcnUCOnbvffeC7lcfUPJ+lhaWsLS0lJl93ki0gEHL8WU+4aG18rygZtngOxTisQo+7Ti+9Jbip6o3Euq1xTlsNvxIkZ0/A4jXHsCQf440b09XkooQrrohnJYKpseSMvFgbRcAICFVII+HR1wn0cVBjrmo0vPINi7+er9IyAi42PUiZCLiwukUimysrJUjmdlZcHd3V2v946OjkZ0dLQyoyQiHej3pGLKfX3Da9aOgM8AxaO24puKhOj0b8Dhz9Wve+2Q4gGgN4Adt/OfDNEZ6aIbLovu6OjfC6fLXfB3jh1Si53gfy0BT2d+AakgQrZLwDKb55DbfRJC/ZwR6ucMT0drLuxI1AYYdSJkYWGBkJAQJCQkKIfL5HI5EhIS8Nxzz+n13uwRItITBy/tV8hu1wFoNxRo3wVI/kJ9eG3EIkVR9q2LQO4lVGafh0V1ETyEXHgIuRiA08DlXbgXwCwAsAJEADWbfUgFES+UrsRDB9zwzYFOAAQ4Wpsjv6wKgGJhx/dYZ0TUKhm8Rqi4uBgXLlwAAAQHB2PZsmWIiIiAs7MzfHx8sHHjRkRFReGzzz5DWFgYYmNjsWnTJpw5cwZubm56j4/rCBEZGQ33X8vMvI6bl8+gIzLgVHb1ztBa7sUGZ7IVC7Y4I/PCObkXLogdcU7siPNyL2TBCYO7dsCQrh0Q2skZvTztYS6V1LvtCBEZlskUSycmJiIiIkLteFRUFOLj4wEAK1euVC6oGBQUhE8++QTh4eF6jat2j9C5c+eYCBEZk+bsvwYAWSeB1ffetQcboOgjqvtXYqFog/OiF87JO+KC6IV0qQ/uc7yJyYVfQgI5REEC4a5tR4jIcEwmETJ27BEiaqXq6lnqOwnIOY+8K8fxzdbt6CJcRzfhGnyFLJgJjU+6kEPALu/n4NglDF2794G9qw8gkbLWiMgAmAjpCBMholasgZ6l2pvIWgvVWB5pi5Gu+cDNsxCzT6PqagosSm40ePlKmCFH6oZzlS64IrriKlwxNDwU94aGKjaytWxXKw4OrxHpEhOhZuLQGBFlFJThck5pnZvI1rUukggBl2wCYVmWBTd5NsyFRiZb2HYALGyBvMu3DwjAwGggbBZg7wVIuXUIUVMxEdIR9ggRUb0aKNzOLijB1qRkJOw/CG8hGz5CNnyFLOX3zkJxw9cWpIpkyNEHcPJVfHX0vfO9nQcguWtRSPYsESkxEdIRJkJE1KAGhtcyCsow6P2/Ia/1W1YAEOBpj+uZWRiJfXjf4ku1S8oEM0hF9Y2kVUjMAYeOdxKj0lzgzDbUrLiNB2OBkKhmvz0iU8VEqJk4NEZEulC71kgqCFg0oTcmhfqgtLIaJ0+fRsiWIZDgzvBatSjB4IrlqIYZeljlYXCHErjLs1GafQkdkY2Okhz4SG5B0liiBABOnYD2/qo9SY6+ioeNs2IjtruxV4laCSZCOsIeISJqrgZrjWoNr4mCFH93mY/48iFISc9DaWXdNUZSyLH2kY4Y1L4YZoVXgbR/gKMbtAvKot3tpKhm6M1X0bOV/KWi7kmQKLZE4XIAZKKYCOkIEyEi0rs6hteqZXKcvFGITclX8e3BK3WeZmMhRYivE+73qkbUwQch3L3i9oQ1QFUpkJcO5KcD+VcU3xdnahiYAEz/HfC9p5lvkKjlMRHSESZCRGRIddUZAYCDlRkKyu8Mj02U7sJisy8hFeSQQ4LL9yyC133/B0szqcq10nJK0MlRCg8xp1aClA5cSwbS99YdRPsuQNcRQLcRgM9AwMxCH2+VSKeYCDUTa4SIyFjUVWf0aIg3zmUX4eClXBy4dAsH03JhUZIBP0kWLsvdkIn2sDSToJ+PEwZ0bo+Symp88c8lyEXF3mmLJ/TBpNBae6fVsRwAAEAwA2rXI1naA/4RQLeRQJfhin3giIwQEyEdYY8QERmDBuuMAIiiiPPZxTh46RYOXMrFwbRbyCmurPd6EgHY9fIw+La3vXOwruUAAsYDl3YB53YA53cCJTdrXUUAvEIUSVG3EYB7H0UBNguuyQgwEdIRJkJEZIpEUcTFmyU4cOkWth3PwP6Lt9TamEsFhHVyxsDO7THQvz36dnSEeXFG/fu4yeXAjX+Bc9uB8zuAjKOqr9t5As5+QPp+KKfxs+CaDISJkI4wESIiU1dfndHdbCyk6O/njHv822Ng5/bo5WkPM6mk/hMKbyh6ic7tAC4lKgqz69LnUcA1oNb0fR+gnWvd0/drY88SNQMTIR1hIkRErcHddUbvPdwbIb5O2H/pFvZfvIUDl24hr7RK5Rw7SzNFj5F/ewzo3B4BHvaQSIS6N5GtKgcOrAIS3tIsIDMrwMG71vpGPqqJ0tk/gN/mcio/NRkToWZisTQRtTYN1RnJ5SLOZhVh/8Vb2HfxFg6m3UJRueqijQ7W5vBytMbpjEKIqKPouq6Ca0EChM8GSvMU0/fzrwBFN9SLshslABM+B7zDFStq3729CNFdmAjpCHuEiKgtkslFnLpRiP2XcrD/4i0cvpyH4gr11awFAPNH98CYvp7wcrRucP81pepKoPD6ncTo7kfhtYaDk1rcWTXbufPtr/6Kr3aegKTWcB6H19osJkI6wkSIiEixwOOGQ1ew4JeT9bbp5GKLe/zb437PaoTa58POs1vTko/cy8CKYPVeI6fOiiRJVv9sOJhZA863k6SqMuBCAli43TYxEdIRJkJERAoNbSJ7JrMIslovCALQy9Meg/xdMKiLC0L9nGFtUcfijrXrjGqrr2dJLgMKrgK3Lipmt926qOjxuXVRsTCkvIE92AQBiE4GXLo0+7Mg48dESEeYCBER3VHfJrKF5VU4dCkXey7kYN/FHJzLKlY5z0IqQT9fRwzyd0FplQyf7b5Y/+KONerYeqRBsirF0FruJeDcTuDw5+ptzG2B/tOB/jMUvUbUajER0hEmQkREqhpb3BEAsgvLse/iLUVidCEHNwrK672eRAD2vBYBT0cb3QVZ30rZtXUZDoTNArpEsvi6FWIi1EycNUZEpBuiKOLyrVLsuZCDX1Ov49DlPLU2Lu0s8EAvdwzp6oKB/i5wsDZv/o3vHl57cDlg5wEc+hy48Oeddo6+QOhMIPgJwMa5+fclo6DXRGj9+vVYvXo10tLSsH//fvj6+iI2NhadOnXCQw891KzAjQ17hIiIdEeTxR2lEgFB3o4Y3NUFQ7p1QF8vh4YXdmxIfcNrty4CyWuBf9cD5QWKY2ZWQJ//AKGzAM+gpt2PjIbeEqFVq1ZhwYIFmDt3Lt577z2cOHECnTt3Rnx8PNatW4ddu3Y1O3hjwkSIiEi37q4zWjg2AB2drZF0LgdJ52/i0s0Slfb2VmYY1EWRFA3u6oKOTneG0Botum5MZSlw/Afg8Bog8/id4x1DgbD/AwIeAswsOQ3fBOktEQoICMCiRYswfvx42NnZ4ejRo+jcuTNOnDiBYcOGIScnp9nBGxMmQkREutdQndG1vFLsOa9Iivacz0HhXQs7dnaxxZBuHQCI+Hp/euNF15oQReDqQeDQGuDUL4D89irbNi6AVz/gwl9c5drE6C0Rsra2xpkzZ+Dr66uSCJ0/fx59+/ZFWVlZs4M3JkyEiIgMRyYXcexaPpLO5eCf8zfx79V8lWn6tems6LooS1FflLxWsQr23QQpMPc4e4aMnKZ/v7UedO3UqRNSU1PVjm/fvh09e/bU9nJERET1kkoEBPs44YXIrvjxmXvw74LhWP1ECO7v4arWVi4C4+P24a2tJ5F4NhvlVbKm3dTODRj6CjD3GDBsnvrrogzY/QFQnN2065NRMdP2hJiYGERHR6O8vByiKOLQoUP47rvvsHjxYnzxxRf6iLFZ8vPzERkZierqalRXV+OFF17ArFmzDB0WERE1gb2VOUb2dkegtwN21VF0nV1Ugfh9lxG/7zKszaUY1KU9hnV3RUQPV8UWINqQmgPBTwK7P1Sfhn9kHZC6Aeg5VrEukd9gxYKNZHKaNGvs22+/xVtvvYWLFy8CADw9PfH222/jqaee0nmAzSWTyVBRUQEbGxuUlJSgd+/eSE5ORvv27TU6n0NjRETGqa6ia3cHK+w6m41dZ24is1B17aLubnaI6OGKiO4dEOLrpJyJpvUq14GTgZtngevJd9q076pIiAIf4xR8I9Ei6wiVlpaiuLgYrq7qXZTGKDc3F/369UNycjJcXFw0OoeJEBGR8aqv6FoURZzOKLqdFGXjyJU8ld4jOyszDOnWAbYWUvyYcq1pq1xnHAWSv1LMOqu8vZK21BLoPUGxcnXHUPYSGZDeEqG0tDRUV1eja9euKsfPnz8Pc3Nz+Pn5aRVoUlISlixZgpSUFGRkZGDLli0YP368Spu4uDgsWbIEmZmZCAwMxIoVKxAWFqbxPfLz8zF06FCcP38eS5YsQXR0tMbnMhEiIjJ9+aWV2H3uJhLP3kTi2WzklVbV2U4iAHvn3afdVPyKottT8NcCWbWm4Lv2UvQS9Z0EWNlzCn4L01siNHToUMyYMQNRUVEqx7/55ht88cUXSExM1CrQP/74A3v37kVISAgmTJiglght3LgRTz75JFavXo3w8HDExsbihx9+wNmzZ5U9UUFBQaiuVt9ob+fOnfD09FQ+z8rKwoQJE7B582a4ublpFB8TISKi1kUmF3H0Wj7W77+MLf+qzwrzcrTC+GAvjOjljj5eDhA07dURReB6imK22YmfgOrbQ3PmtoBHIHD1AKfgtyC9JUL29vY4cuQIunRR3b33woUL6N+/P/Lz85sUMAAIgqCWCIWHhyM0NBQrV64EAMjlcnh7e+P555/HvHl1VPM34tlnn8V9992H//znP3W+XlFRgYqKCuXzwsJCeHt7MxEiImplNFnl2sPBCg8EuGFEL3eEdnKGuaYrXJflAUe/VyRFOefqaCAAD60EOkcA9p4cQtMDvU2fFwQBRUVFascLCgogkzVxqmI9KisrkZKSgsjISOUxiUSCyMhI7N+/X6NrZGVlKeMtKChAUlISunfvXm/7xYsXw8HBQfnw9vZu3psgIiKj5OFgjcUT+kB6OwmpKbj+eHIQRvdxh42FFBkF5Vi3Px2Pf3EQ/f/3F2I2pWLHyUyUVTby987aCRjwDBB9CBixqI4GIvBLNLA8AFjiD3z9ELDzDeDYD0D2GUCmPsoBQDG8lpak+Eo6oXWP0NixY2FtbY3vvvsOUqlit16ZTIZJkyahpKQEf/zxR9ODuatH6MaNG/Dy8sK+ffswcOBAZbtXX30Vu3fvxsGDBxu95qFDh/B///d/EEURoigiOjoas2fPrrc9e4SIiNqW+gquy6tk2HshBztOZuKv09nILalUvmZlLsGQrh3wQC93RPZ0RVmVrP6ZZwXXgdjed03BF4D2XRQF2GIdSZWZNeAWALj3Adz7Kh4ZR4E/XuHwmoY07RHSeh2hDz74AEOGDEH37t0xePBgAMA///yDwsJC/P33302PWE/CwsLqXACyPpaWlrC0tFTZfZ6IiFovDwfrOoujrcyluL+nG+7v6QaZXETy5VzsPJWFHSczcS2vDDtPZWHnqSwIgqI8CKhn5pmDlyJpqT0Ff2ysIompKgOyTyv2Ocs8dvvrCaCqRFFvdD2l7qBFueJ6/vez8LqZmjR9/saNG1i5ciWOHj0Ka2tr9O3bF8899xycnZu3dsLdPUKVlZWwsbHBjz/+qFI3FBUVhfz8fPzyyy/Nup8mWCxNRES1iaKIUxmF2HkyC78du4GLd20SCwBvjOmJSaHesLMyv3Owrin4dZHLFe2UidEx4FoKUJ6n3jbqN6DTYB28q9ZHbz1CgGIBxUWL6hrz1C0LCwuEhIQgISFBmQjJ5XIkJCTgueee0+u92SNERER1EQQBvTwd0MvTAeGdnfH4GvUyjf9tO40Pd5zF/T1c8VCQJ4Z1d4WVg5dmvTcSCeDSRfHoPUFxrM7hNSh6lKhZmtQjlJ+fj0OHDiE7Oxtyuep/lCef1G68sri4GBcuXAAABAcHY9myZYiIiICzszN8fHywceNGREVF4bPPPkNYWBhiY2OxadMmnDlzRuMp8M3BHiEiIqpPXTPPBAA+ztZIz72TpNhZmmFkb3eMC/LEwM7tlataa6X2Ctc1zG2BieuArsOb/B5aK71Nn//1118xZcoUFBcXw97eXmV9BUEQkJubq1WgiYmJiIiIUDseFRWF+Ph4AMDKlSuVCyoGBQXhk08+QXh4uFb30VbtHqFz584xESIiojrdvdXHogm9MbG/N05lFGJr6g1sPXoDGQV3tvtwaWeJB/t64KEgTwR5O2q+ThFwZ3jNtgPwx6tA2m5FzdGDy4CQabp/cyZMb4lQt27dMHr0aCxatAg2NjbNDtTYsUeIiIgaU9/MMwCQy0Ukp+fhl9Tr2HY8A/m1VrX2cbbBuEBPPBTkia5udo3ve1ZbdSXw6xzg6HeK54NfBu57g2sS3aa3RMjW1hbHjx9H586dmx2kKWAiREREulJZLceeCzexNfUGdp7KQmmt9Yg8HKyQWVAOEY3se1abKAKJi4HdHyie950EjFsJmFno702YCL0tqDhixAgkJyc33tDExcXFISAgAKGhoYYOhYiIWgkLMwnu6+GG2MnBSH4jEp88FozInq4wkwAZt5MgAJCLwPzNx3Ejv7ThCwoCEPG6IvkRpMCxjcA3E4CyfH2/lVZD6x6hL7/8Eu+88w6mT5+OPn36wNzcXOX1cePG6TRAQ2OPEBER6dufJzMxa736mkEeDlaYObgz/tOvIxxszOs4s5YLfwGbooDKYqBDT2DKD4Bj290dQW9DYxJJ/Z1IgiC0uunmTISIiEjfGtv3zMpcgrF9PfHEAF8Eejs2cKFjwIaJQFEG0M4dmLJJseFrG6S3RKit4KwxIiJqSXfPPlswNgASiYBvD6TjTOadPT77eDngiQE+GBfoBWsLqfqFCq4B3z4KZJ8CLNoBj64Dukaqt2vlmAjpCHuEiIiopdQ1+0wURaSk5+GbA+n4/XgmKmWK9fvsrMzwSL+OeGKAD7q42qleqCwf2DRVsUGrIAUeXA6ERLXwuzEsvSZCJSUl2L17N65cuYLKykqV1+bMmaN9tEaMiRARERmLW8UV+DHlGr49eAVXcu8UUg/o7IwnBvjigQB33CqpUEzBdzKHx+7X7kyvH/IKEPHfNjO9Xm+J0L///ovRo0ejtLQUJSUlcHZ2Rk5ODmxsbODq6opLly41O3hjwkSIiIiMjVwu4p8LOfjmQDoSTmcpa4vaWZqhpKL6zhT8h3tjUvE3QNKHigZ9JwPjVrSJ6fV6mz7/4osvYuzYscjLy4O1tTUOHDiA9PR0hISEYOnSpc0K2phw+jwRERkriUTA0G4dsObJ/tjz2n2Yc18XONtaoPh2EgTcnoK/5QQyQmIUyY8gBY59D3z7CJB1WjFsVnDdoO/DGGjdI+To6IiDBw+ie/fucHR0xP79+9GzZ08cPHgQUVFROHPmjL5iNQj2CBERkSn45/xNTP3ykNrxhwI98c5DveFwY/ed6fU1BAkw9mOgn3b7hJoCvfUImZubK6fQu7q64sqVKwAABwcHXL16tYnhEhERUXN0cW0HSR3lP78cvYF7P/wbK6/4ouzhtaovinLFRq5tuGdI60QoODgYhw8fBgAMHToUCxYswLfffou5c+eid+/eOg+QiIiIGufhYI3FE/pAersYWioATw7wRXc3OxSVV2PpznOY+8Mp9RNFGZBzvoWjNR5aD40lJyejqKgIERERyM7OxpNPPol9+/aha9euWLt2LQIDW9fCTRwaIyIiU3L3FHyZXMRvx25g+Z/nUH7rKvZazoFUuOtPv1d/YNI3gL2HYYLWA64j1ExcUJGIiFqTKpkcP6ZcQ9rOVXi1ajXMBDnkECCXmMNMXgnYdgAe+QLoPMzQoeoEEyEdYY8QERG1JuVVMvy8+zD+3rcfx0rbw1qoxJfWK9BZfhkiBAgRrwODXwYa2FLLFOg0EQoODoag4QJMR44c0TxKE8BEiIiIWqOSimrE77uM1bsvorK8FG+bxWOyWSIAoNxnKI6FL4F3Rx/lCtemRtO/32aaXGz8+PHK78vLy/Hpp58iICAAAwcOBAAcOHAAJ0+exLPPPtu8qImIiKhF2FqaITqiC54I98Xn/1zE23ueweHKHvif+VpYX9kN7/SRmFP1PP7z8H8wKdTH0OHqjdZDYzNnzoSHhwfeffddleMLFy7E1atXsXbt2nrONE3sESIiorbgZlEFluw4g9SU/VhlHgt/SQaqRQmWyCZj2ssfwcPRxtAhakVvNUIODg5ITk5G165dVY6fP38e/fv3R0FBQdMiNlJMhIiIqK3YdzEHj685CFuUYbH5Fxgn3Q8AuOl5PzpM/RKwdjJwhJrT24KK1tbW2Lt3r9rxvXv3wsrKStvLERERkZHo5GILiQCUwBpzqp7Df6tmoEI0Q4cbCaj6dDBwvXXVAQMa1gjVNnfuXDzzzDM4cuQIwsLCAAAHDx7E2rVr8eabb+o8QEOpPX2eiIioLahZlPH1zScgE4Hv5JG4IHTDEvlH8Cm6CvmXD0AycjEQOrPV7GLfpOnzmzZtwscff4zTp08DAHr27IkXXngBEydO1HmAhsahMSIiamtqL8poIZXglW+SMOn6+xghTQYAiL0egTDsNaA4C3D2Bxy8DBtwHbiOkI4wESIiorauSibHom2nIDn4KeaZfQ9zQQYRgAAY7cateqsRAoD8/Hx88cUXeP3115GbmwtAsX7Q9ettd9M2IiKi1spcKsHCcb3R65HX8YLsBYji7SQIMPmNW7WuETp27BgiIyPh4OCAy5cvY+bMmXB2dsbmzZtx5coVfP311/qIk4iIiAxsQr+OCJaFQdh21wuiDMi9ZJRDZI3RukcoJiYG06ZNw/nz51VmiY0ePRpJSUk6DU6XSktL4evri5dfftnQoRAREZmsTt36QhRU0wc5JJA5dTJQRM2jdSJ0+PBhzJ49W+24l5cXMjMzdRKUPrz33nsYMGCAocMgIiIybQ5eEMZ+jJoCY5koYF7VU5i55QYKyqoMGlpTaJ0IWVpaorCwUO34uXPn0KFDB50EpWvnz5/HmTNnMGrUKEOHQkREZPr6PQnBoSMA4FBYLH4R7seuszfx0Mo9OJdVZODgtKN1IjRu3Di88847qKpSZH2CIODKlSt47bXX8Mgjj2gdQFJSEsaOHQtPT08IgoCff/5ZrU1cXBz8/PxgZWWF8PBwHDp0SKt7vPzyy1i8eLHWsREREVE92rkBAAb6d8BPz9wDL0drXL5Viofj9mL7iQwDB6c5rROhjz76CMXFxXB1dUVZWRmGDh2KLl26wM7ODu+9957WAZSUlCAwMBBxcXF1vr5x40bExMRg4cKFOHLkCAIDAzFixAhkZ2cr2wQFBaF3795qjxs3buCXX35Bt27d0K1bN61jIyIionrYuCi+luSgt5cDtj43CPf4t0dJpQxPf3MES3acwbW8Uuy7mIOMgjLDxtqAJq8jtGfPHhw7dgzFxcXo168fIiMjmx+MIGDLli0qu92Hh4cjNDQUK1euBADI5XJ4e3vj+eefx7x58xq95vz58/HNN99AKpWiuLgYVVVVeOmll7BgwYI621dUVKCiokL5vLCwEN7e3lxHiIiIqLYtzwBHNwD3LwQGxwAAqmVyLP7jDL7ck6bSVCIAiyf0adFd7DVdR0jr6fM17r33XvTv3x+WlpYQ9LTMdmVlJVJSUjB//nzlMYlEgsjISOzfv1+jayxevFg5LBYfH48TJ07UmwTVtH/77bebFzgREVFrZ+Os+Fp6S3nITCrBmw8GwNvJGm/9ekp5XC4Cr28+gSHdOsDDwbqlI22Q1kNjcrkc7777Lry8vNCuXTukpSmyvjfffBNffvmlToPLycmBTCaDm5ubynE3Nze9zVCbP38+CgoKlI+rV6/q5T5EREQmzaa94mtprtpL3dzt1I7JRBGXc0r1HZXWtE6E/ve//yE+Ph4ffvghLCwslMd79+6NL774QqfB6dq0adOwdOnSBttYWlrC3t4e69evx4ABA3D//fe3UHREREQmxPZ2jVBpjtpLNbvY1yYVBPi52LRAYNrROhH6+uuv8fnnn2PKlCmQSqXK44GBgThz5oxOg3NxcYFUKkVWVpbK8aysLLi7u+v0XneLjo7GqVOncPjwYb3eh4iIyCQpe4Ruqb1Us4u99HbpjFQQsGhCb6MbFgOaUCN0/fp1dOnSRe24XC5XTqnXFQsLC4SEhCAhIUFZQC2Xy5GQkIDnnntOp/e6W1xcHOLi4iCTyfR6HyIiIpPUQCIEAJNCfTCkWwflLvbGmAQBTUiEAgIC8M8//8DX11fl+I8//ojg4GCtAyguLsaFCxeUz9PS0pCamgpnZ2f4+PggJiYGUVFR6N+/P8LCwhAbG4uSkhJMnz5d63tpIzo6GtHR0cqqcyIiIqqlgRqhGh4O1kabANXQOhFasGABoqKicP36dcjlcmzevBlnz57F119/jd9++03rAJKTkxEREaF8HhOjmIIXFRWF+Ph4TJo0CTdv3sSCBQuQmZmJoKAgbN++Xa2AWtfYI0RERNSAmkSoohCorgDMLA0bTxM1aR2hf/75B++88w6OHj2qXEdowYIFeOCBB/QRo0Fpug4BERFRmyKXA++2B0Q5EHMGsPcwdEQq9LqO0ODBg/Hnn382OTgiIiIycRIJYO2smDVWesvoEiFNNWn3+YMHD6odP3jwIJKTk3USlDGIi4tDQEAAQkNDDR0KERGRcWqkYNoUaJ0IRUdH17nI4PXr1xEdHa2ToIwBp88TERE1ooG1hEyF1onQqVOn0K9fP7XjwcHBOHXqVB1nEBERUauk3Gaj/pljxk7rRMjS0lJtgUMAyMjIgJlZk7cuMzocGiMiImpEWxwae+CBB5T7cdXIz8/H66+/juHDh+s0OEPi0BgREVEjWkEipHUXztKlSzFkyBD4+voqF1BMTU2Fm5sb1q9fr/MAiYiIyEjZ3K4RKjHdGiGtEyEvLy8cO3YM3377LY4ePQpra2tMnz4djz32GMzNzfURIxERERmjttgjVF5eDltbW/zf//2f2msZGRnw8DDNdQTuxpWliYiIGqHBNhvGTusaoX79+iE1NVXt+E8//YS+ffvqIiajwBohIiKiRihnjZluj5DWidCwYcMwYMAAfPDBBwCAkpISTJs2DVOnTsXrr7+u8wCJiIjISNVeR0j7HbuMgtZDY59++inGjBmDmTNn4rfffkNGRgbatWuHQ4cOoXfv3vqIkYiIiIxRzdCYrBKoLAYs7QwbTxM0aeGfUaNGYcKECVi1ahXMzMzw66+/MgkiIiJqa8xtADMroLpcMTxmgomQ1kNjFy9exMCBA/Hbb79hx44dePXVVzFu3Di8+uqrqKqq0keMBsEFFYmIiBohCHem0JtonZAgitoN6tnZ2WHMmDFYvXo1HB0dAQD79u3Dk08+CTs7O/z777/6iNNgCgsL4eDggIKCAtjb2xs6HCIiIuOyejCQeQx4/Aeg2wOGjkZJ07/fWvcIffrpp/j++++VSRAA3HPPPfj333/r3IOMiIiIWjETX0tI60Ro6tSpdR63s7PDl19+2eyAiIiIyIS0lUTo2WefRXFxsfL5d999h5KSEuXz/Px8jB49WrfRERERkXGzNe0aIY0Toc8++wylpaXK57Nnz1bZhb6iogI7duzQbXRERERk3JQ9Qqa535jGidDdNdVa1lgTERFRa6RcXdo0t9nQukaoreD0eSIiIg20lRqhtoZ7jREREWnAxNcR0mpl6QULFsDGxgYAUFlZiffeew8ODg4AoFI/RERERG1ETY9QiWnWCGmcCA0ZMgRnz55VPr/nnntw6dIltTZERETUhtQkQmV5gFwGSKSGjUdLGidCiYmJegyDiIiITFJNsTREoCwfsG1vyGi0xhohIiIiajqpOWClKJMxxTqhJu0+b2r8/Pxgb28PiUQCJycn7Nq1y9AhERERtR427YHygttrCXUzdDRaaROJEKDYGLZdu3aGDoOIiKj1sWkP5F4yyR4hDo0RERFR85jwWkIaJUITJkxAYWEhAODrr79GRUWFzgJISkrC2LFj4enpCUEQ8PPPP6u1iYuLg5+fH6ysrBAeHo5Dhw5pdQ9BEDB06FCEhobi22+/1VHkREREBMCk1xLSKBH67bfflBusTp8+HQUFBToLoKSkBIGBgYiLi6vz9Y0bNyImJgYLFy7EkSNHEBgYiBEjRiA7O1vZJigoCL1791Z73LhxAwCwZ88epKSkYOvWrVi0aBGOHTums/iJiIjavJqZYyWmlwhpVCPUo0cPzJ8/HxERERBFEZs2bYK9vX2dbZ988kmtAhg1ahRGjRpV7+vLli3DrFmzMH36dADA6tWrsW3bNqxduxbz5s0DAKSmpjZ4Dy8vLwCAh4cHRo8ejSNHjqBv3751tq2oqFDp8arpCSMiIqJ6mPDQmEaJ0OrVqxETE4Nt27ZBEAS88cYbEARBrZ0gCFonQg2prKxESkoK5s+frzwmkUgQGRmJ/fv3a3SNkpISyOVy2NnZobi4GH///TcmTpxYb/vFixfj7bffbnbsREREbUZrT4TuueceHDhwAIAiETl37hxcXV31GhgA5OTkQCaTwc3NTeW4m5sbzpw5o9E1srKy8PDDDwMAZDIZZs2a1eBGqvPnz0dMTAzWrFmDNWvWQCaT4cKFC01/E0RERK2drenWCGk9fT4tLQ0dOnTQRyx60blzZxw9elTj9paWlrC0tMRLL72El156CYWFhcr91IiIiKgOyh4h09tvTOtEyNfXF/n5+fjyyy9x+vRpAEBAQACeeuopnScMLi4ukEqlyMrKUjmelZUFd3d3nd7rbnFxcYiLi4NMJtPrfYiIiEyeMhHKNWwcTaD1OkLJycnw9/fH8uXLkZubi9zcXCxfvhz+/v44cuSIToOzsLBASEgIEhISlMfkcjkSEhIwcOBAnd7rbtHR0Th16hQOHz6s1/sQERGZvJpZY5XFQFW5YWPRktY9Qi+++CLGjRuHNWvWwMxMcXp1dTVmzpyJuXPnIikpSavrFRcXq9TgpKWlITU1Fc7OzvDx8UFMTAyioqLQv39/hIWFITY2FiUlJcpZZERERGRgVo6AIAVEGVCWC5h7GjoijWmdCCUnJ6skQQBgZmaGV199Ff3799c6gOTkZERERCifx8TEAACioqIQHx+PSZMm4ebNm1iwYAEyMzMRFBSE7du3qxVQ6xqHxoiIiDQkCIrhsZJsoCQHsDedREgQRVHU5gQ3NzesX78eDzzwgMrxHTt24Mknn1Sr5zF1NcXSBQUF9a6dRERE1ObFDQBungam/gz4RzTaXN80/futdY3QpEmT8NRTT2Hjxo24evUqrl69iu+//x4zZ87EY4891qygjUlcXBwCAgIanGpPREREt5noWkJaD40tXbpUuXBidXU1AMDc3BzPPPMM3n//fZ0HaCjR0dGIjo7m9HkiIiJN2JrmzDGtEyELCwt8/PHHWLx4MS5evAgA8Pf3h42Njc6DIyIiIhNhomsJaZ0I1bCxsUGfPn10GYtRYbE0ERGRFkx0aEzrGqG2gusIERERaYGJEBEREbVZNqa53xgTISIiImq+mtWlS5gItQqcPk9ERKSFtjQ0tn79egwaNAienp5IT08HAMTGxuKXX37RaXCGxBohIiIiLdROhLRbq9mgtE6EVq1ahZiYGIwePRr5+fnKWVWOjo6IjY3VdXxERERkCmoSIXkVUFFk2Fi0oHUitGLFCqxZswb//e9/IZVKlcf79++P48eP6zQ4IiIiMhEWNoD57TUFTWgtIa0TobS0NAQHB6sdt7S0RElJiU6CIiIiIhNkY3qrS2udCHXq1Ampqalqx7dv346ePXvqIiajwGJpIiIiLdXMHDOhgmmtV5aOiYlBdHQ0ysvLIYoiDh06hO+++w6LFy/GF198oY8YDYJ7jREREWnJBNcS0joRmjlzJqytrfHGG2+gtLQUjz/+ODw9PfHxxx9j8uTJ+oiRiIiITEHN0FiJ6dQINWmvsSlTpmDKlCkoLS1FcXExXF1ddR0XERERmRoTXEtI6xqh++67D/n5+QAUG6/WJEGFhYW47777dBocERERmRDbNpAIJSYmorKyUu14eXk5/vnnH50ERURERCbIBGeNaTw0duzYMeX3p06dQmZmpvK5TCbD9u3b4eXlpdvoiIiIyHQoE6FWWCMUFBQEQRAgCEKdQ2DW1tZYsWKFToMzpLi4OMTFxSlXziYiIqJGmGCNkCCKmm0Ikp6eDlEU0blzZxw6dAgdOnRQvmZhYQFXV1eVlaZbi5rp8wUFBbC3tzd0OERERMYr+wzwaThg7QS8dtmgoWj691vjHiFfX18AgFwub350RERE1PrU9AiV5QOyakDapMnpLarJEZ46dQpXrlxRK5weN25cs4MiIiIiE2TtdPsbESjLA9p1aLC5MdA6Ebp06RIefvhhHD9+HIIgoGZkTRAEAGBNDRERUVslNQOsHIHyfEWdkAkkQlpPn3/hhRfQqVMnZGdnw8bGBidPnkRSUhL69++PxMREPYRIREREJsPWtLbZ0DoR2r9/P9555x24uLhAIpFAIpHg3nvvxeLFizFnzhx9xNhsaWlpiIiIQEBAAPr06YOSkhJDh0RERNQ6mdjMMa0TIZlMBjs7OwCAi4sLbty4AUBRTH327FndRqcj06ZNwzvvvINTp05h9+7dsLS0NHRIRERErZOJrSWkdY1Q7969cfToUXTq1Anh4eH48MMPYWFhgc8//xydO3fWR4zNcvLkSZibm2Pw4MEAAGdnZwNHRERE1IrZ3P4721p7hN544w3lFPp33nkHaWlpGDx4MH7//Xd8/PHHWgeQlJSEsWPHwtPTE4Ig4Oeff1ZrExcXBz8/P1hZWSE8PByHDh3S+Prnz59Hu3btMHbsWPTr1w+LFi3SOkYiIiLSkE1NjZBpbLOhdY/QiBEjlN936dIFZ86cQW5uLpycnJQzx7RRUlKCwMBAzJgxAxMmTFB7fePGjYiJicHq1asRHh6O2NhYjBgxAmfPnlVu+BoUFITq6mq1c3fu3Inq6mr8888/SE1NhaurK0aOHInQ0FAMHz5c61iJiIioESZWI6STlY6cnZ2RkZGB9957DytXrtTq3FGjRmHUqFH1vr5s2TLMmjUL06dPBwCsXr0a27Ztw9q1azFv3jwAQGpqar3ne3l5oX///vD29gYAjB49GqmpqfUmQhUVFaioqFA+Lyws1Or9EBERtWk1iVCJadQIaTU0dvLkSaxcuRKff/458vPzAQA5OTmYO3cuOnfujF27duk0uMrKSqSkpCAyMvJOwBIJIiMjsX//fo2uERoaiuzsbOTl5UEulyMpKQk9e/ast/3ixYvh4OCgfNQkUERERKQBE+sR0jgR2rp1K4KDgzFnzhw8/fTT6N+/P3bt2oWePXvizJkz2LJlC06ePKnT4HJyciCTyeDm5qZy3M3NDZmZmRpdw8zMDIsWLcKQIUPQt29fdO3aFQ8++GC97efPn4+CggIsXboU3bt3R5cuXZr1HoiIiNoUW9OqEdI4Efrf//6H6OhoFBYWYtmyZbh06RLmzJmD33//Hdu3b8fIkSP1GWezjBo1CsePH8eJEyewbNmyBttaWlrC3t4eL730Es6cOYOUlJQWipKIiKgVaK2zxs6ePYvo6Gi0a9cOzz//PCQSCZYvX47Q0FC9Befi4gKpVIqsrCyV41lZWXB3d9fbfQHFTLWAgAC9vj8iIqJWp2ZorKoEqCozbCwa0DgRKioqUm5jL5VKYW1trfd1gywsLBASEoKEhATlMblcjoSEBAwcOFCv946OjsapU6dw+PBhvd6HiIioVbG0ByTmiu9NoFdIq1ljO3bsgIODA4A7CcmJEydU2mi7+3xxcTEuXLigfJ6WlobU1FQ4OzvDx8cHMTExiIqKQv/+/REWFobY2FiUlJQoZ5ERERGREREERa9QcaYiEXLoaOiIGqRVIhQVFaXyfPbs2SrPBUHQevf55ORkREREKJ/HxMQo7xUfH49Jkybh5s2bWLBgATIzMxEUFITt27erFVDrWlxcHOLi4rR+P0RERG1e7UTIyAmiKIqGDsKYFRYWwsHBAQUFBcqhQSIiImpA/IPA5X+ACV8AfR81SAia/v3WeouNtoLF0kRERE1kQmsJMRGqB4uliYiImki5lhATISIiImpr2CNk+jg0RkRE1ETKRMj49xtjIlQPDo0RERE1kTIRMv5tNpgIERERkW6Z0NCYRusIOTk5QRAEjS6Ym2v82R8RERHpUWtLhGJjY/UchvHhgopERERNVDsREkXFatNGigsqNoILKhIREWmpqhx47/YOEK+lA9aOLR6Cpn+/tdpi427l5eWorKxUOcZkgYiIqI0ztwIs2gGVxYpeIQMkQprSuli6pKQEzz33HFxdXWFrawsnJyeVBxERERFsnBVfjXzmmNaJ0Kuvvoq///4bq1atgqWlJb744gu8/fbb8PT0xNdff62PGImIiMjUmMhaQloPjf3666/4+uuvMWzYMEyfPh2DBw9Gly5d4Ovri2+//RZTpkzRR5wtjsXSREREzWAiM8e07hHKzc1F586dASjqgWqmy997771ISkrSbXQGxAUViYiImsHGNPYb0zoR6ty5M9LS0gAAPXr0wKZNmwAoeoocHR11GhwRERGZqNbaIzR9+nQcPXoUADBv3jzExcXBysoKL774Il555RWdB0hEREQmqKZYusS4EyGta4RefPFF5feRkZE4c+YMUlJS0KVLF/Tt21enwREREZGJMpEeoWatIwQAvr6+8PX11UUsRERE1FrYmkaNkNaJ0DvvvNPg6wsWLGhyMERERNRKtNYeoS1btqg8r6qqQlpaGszMzODv799qEiFOnyciImqG1rqO0L///qt2rLCwENOmTcPDDz+sk6CMQXR0NKKjo5V7lRAREZEWaqbPlxcAsipAam7YeOqh9ayxutjb2+Ptt9/Gm2++qYvLERERkamzdgRwe9f5sjxDRtIgnSRCAFBQUICCggJdXY6IiIhMmUQKWN/eg9SI64S0Hhr75JNPVJ6LooiMjAysX78eo0aN0llgREREZOJs2gNluUCJ8dYJaZ0ILV++XOW5RCJBhw4dEBUVhfnz5+ssMCIiIjJxti7ArfOtq0eoZnsNU3H27FlMmjRJ5fl3332H8ePHGy4oIiKitsAEptA3e0FFY9e9e3ekpqYCAIqLi+Hn54fhw4cbNigiIqK2oGabjdJcw8bRAK0ToZKSErz//vtISEhAdnY25HK5yuuXLl3SWXC6tnXrVtx///2wtbU1dChEREStnwmsJaR1IjRz5kzs3r0bU6dOhYeHBwRBaFYASUlJWLJkCVJSUpCRkYEtW7aoDVvFxcVhyZIlyMzMRGBgIFasWIGwsDCt77Vp0yY8+eSTzYqXiIiINGRj/NtsaJ0I/fHHH9i2bRsGDRqkkwBKSkoQGBiIGTNmYMKECWqvb9y4ETExMVi9ejXCw8MRGxuLESNG4OzZs3B1dQUABAUFobq6Wu3cnTt3wtPTE4Bi0cd9+/bh+++/10ncRERE1IjWWCPk5OQEZ2dnnQUwatSoBqfdL1u2DLNmzcL06dMBAKtXr8a2bduwdu1azJs3DwCUNUAN+eWXX/DAAw/AysqqwXYVFRWoqKhQPi8sLNTgXRAREZEaE0iEtF5Q8d1338WCBQtQWlqqj3hUVFZWIiUlBZGRkcpjEokEkZGR2L9/v1bX2rRpk8rssfosXrwYDg4Oyoe3t7fWcRMRERHuJEIlxpsIad0j9NFHH+HixYtwc3ODn58fzM1V9w45cuSIzoLLycmBTCaDm5ubynE3NzecOXNG4+sUFBTg0KFD+OmnnxptO3/+fMTExCifFxYWMhkiIiJqClvj7xHSOhEyxfV3HBwckJWVpVFbS0tLWFpacvd5IiKi5qrpEaouAypLAQsbw8ZTB60ToYULF+ojjjq5uLhAKpWqJTFZWVlwd3fX6725+zwREVEzWbQDpBaArFLRK2SEiVCTN12trKzEtWvXcOXKFZWHLllYWCAkJAQJCQnKY3K5HAkJCRg4cKBO73W3uLg4BAQEIDQ0VK/3ISIiarUEwejXEtK6R+jcuXN46qmnsG/fPpXjoihCEASth5KKi4tx4cIF5fO0tDSkpqbC2dkZPj4+iImJQVRUFPr374+wsDDExsaipKREOYtMX9gjREREpAM2LkBRhtHWCWmdCE2fPh1mZmb47bffdLKgYnJyMiIiIpTPawqVo6KiEB8fj0mTJuHmzZtYsGABMjMzERQUhO3bt6sVUOsaa4SIiIh0wMi32RBEURS1OcHW1hYpKSno0aOHvmIyKjU9QgUFBbC3tzd0OERERKblh+nAyc3AyPeBAc+02G01/futdY1QQEAAcnKMc5yPiIiIjIxyLSHjzB20ToQ++OADvPrqq0hMTMStW7dQWFio8mgtWCxNRESkA7bGvd+Y1kNjEokid7q7NqipxdLGjkNjREREzXBoDfD7y0DPccCk9S12W03/fmtdLL1r165mBUZERERtiJEXS2udCA0dOrTe106cONGsYIwJZ40RERHpgJGvI9TkBRVrFBUV4fPPP0dYWBgCAwN1EZNRiI6OxqlTp3D48GFDh0JERGS6bIy7RqjJiVBSUhKioqLg4eGBpUuX4r777sOBAwd0GRsRERGZOmWPUC4glxs2ljpoNTSWmZmJ+Ph4fPnllygsLMTEiRNRUVGBn3/+GQEBAfqK0SA4NEZERKQDNTVCogyoKACsnQwbz1007hEaO3YsunfvjmPHjiE2NhY3btzAihUr9BmbQXFojIiISAfMLAELO8X3JcY3PKZxj9Aff/yBOXPm4JlnnkHXrl31GRMRERG1Jrbtgcqi23VCXQwdjQqNe4T27NmDoqIihISEIDw8HCtXruQK00RERNQ4ZZ2Q8fUIaZwIDRgwAGvWrEFGRgZmz56N77//Hp6enpDL5fjzzz9RVFSkzziJiIjIVLWGRKiGra0tZsyYgT179uD48eN46aWX8P7778PV1RXjxo3TR4wGwS02iIiIdKQ1JUK1de/eHR9++CGuXbuG7777TlcxGQUWSxMREemIES+q2OwFFQFAKpVi/Pjx2Lp1qy4uR0RERK1J7bWEjIxOEiEiIiKierXWoTEiIiKiRjERIiIiojbL9vZ+YyWttEaIiIiIqF6sETI9nD5PRESkIzWJUEUBIKsybCx3YSJUD06fJyIi0hErR0C4nXIYWa8QEyEiIiLSL4kEsL69C72RrSXERIiIiIj0z0hnjjERIiIiIv1jIkRERERtli0TIYNZvnw5evXqhYCAAMyZMweiKBo6JCIioralpkeohIlQi7p58yZWrlyJlJQUHD9+HCkpKThw4IChwyIiImpbjHRozMzQAbSE6upqlJeXAwCqqqrg6upq4IiIiIjaGCNNhAzeI5SUlISxY8fC09MTgiDg559/VmsTFxcHPz8/WFlZITw8HIcOHdL4+h06dMDLL78MHx8feHp6IjIyEv7+/jp8B0RERNQom9vbbDARUlVSUoLAwEDExcXV+frGjRsRExODhQsX4siRIwgMDMSIESOQnZ2tbBMUFITevXurPW7cuIG8vDz89ttvuHz5Mq5fv459+/YhKSmppd4eERERAbV6hIxrHSGDD42NGjUKo0aNqvf1ZcuWYdasWZg+fToAYPXq1di2bRvWrl2LefPmAQBSU1PrPf+HH35Aly5d4OysWMhpzJgxOHDgAIYMGVJn+4qKClRUVCifFxYWavuWiIiI6G42NQsqcmVpjVVWViIlJQWRkZHKYxKJBJGRkdi/f79G1/D29sa+fftQXl4OmUyGxMREdO/evd72ixcvhoODg/Lh7e3d7PdBRETU5tWuETKi2dtGnQjl5ORAJpPBzc1N5bibmxsyMzM1usaAAQMwevRoBAcHo2/fvvD398e4cePqbT9//nwUFBQoH1evXm3WeyAiIiIAtrdrhKrLgapSw8ZSi8GHxlrCe++9h/fee0+jtpaWlrC0tERcXBzi4uIgk8n0HB0REVEbYG4DmFkpEqGSHMDC1tARATDyHiEXFxdIpVJkZWWpHM/KyoK7u7te783d54mIiHRIEIxyCr1RJ0IWFhYICQlBQkKC8phcLkdCQgIGDhyo13vHxcUhICAAoaGher0PERFRm2GEBdMGHxorLi7GhQsXlM/T0tKQmpoKZ2dn+Pj4ICYmBlFRUejfvz/CwsIQGxuLkpIS5SwyfYmOjkZ0dDQKCwvh4OCg13sRERG1CUa4lpDBE6Hk5GREREQon8fExAAAoqKiEB8fj0mTJuHmzZtYsGABMjMzERQUhO3bt6sVUOsaa4SIiIh0zAjXEhJE7kDaoJoeoYKCAtjb2xs6HCIiItP1+6vAoc+AwS8B9y/Q6600/ftt1DVCRERE1IqwWNp0sFiaiIhIx2yZCJkMTp8nIiLSsZoeoRImQkRERNTWcGjMdHBojIiISMeYCJkODo0RERHpWM06QmW5gFxu2FhuYyJERERELaNmZWlRDpTnGzSUGkyEiIiIqGVIzQHL27s1GMnwGBOherBGiIiISA+U+40xETJqrBEiIiLSA1vj2m/M4HuNtQZyuRyVlZWGDoNMgIWFBSQS/v8HEbVhyrWEjGO/MSZCzVRZWYm0tDTIjaT6nYybRCJBp06dYGFhYehQiIgMw8im0DMRqocmu8+LooiMjAxIpVJ4e3vz//SpQXK5HDdu3EBGRgZ8fHwgCIKhQyIianlGViPERKge0dHRiI6OVu5eW5fq6mqUlpbC09MTNjY2LRwhmaIOHTrgxo0bqK6uhrm5uaHDISJqeTVrCZXmGjaO29iF0Qw1vUUc5iBN1fysNNTTSETUqimHxoyjRoiJkA5wiIM0xZ8VImrzjKxGiIkQ6UViYiIEQUB+fr7G5/j5+SE2NlZvMRERkRFgIkSGNm3aNAiCgKefflrttejoaAiCgGnTprV8YI146623IAgCRo4cqfbakiVLIAgChg0bptb+7sdff/2l9rqZmRlcXFwwZMgQxMbGoqKioqXeFhFR22LLGiEyAt7e3vj+++9RVlamPFZeXo4NGzbAx8fHgJE1zMPDA7t27cK1a9dUjq9du7bOuHv16oWMjAyVx5AhQ9Rev3LlCnbt2oVHH30Uixcvxj333IOioiK9vx8iojanZtZYRSFQbfj/6WQiVI+W3mIjo6AM+y7mIKOgrPHGOtCvXz94e3tj8+bNymObN2+Gj48PgoODVdpWVFRgzpw5cHV1hZWVFe699161Fbd///13dOvWDdbW1oiIiMDly5fV7rlnzx4MHjwY1tbW8Pb2xpw5c1BSUqJV3K6urnjggQewbt065bF9+/YhJycHY8aMUWtvZmYGd3d3lUft4vaa1z09PdGnTx88//zz2L17N06cOIEPPvhAq9iIiEgDlg6AIFV8bwS9QkyE6tGULTZEUURpZbXWj/X7L2PQ+3/j8TUHMej9v7F+/2WtryGKotbvccaMGfjqq6+Uz9euXYvp06ertXv11Vfx008/Yd26dThy5Ai6dOmCESNGIDdX8QN89epVTJgwAWPHjkVqaipmzpyJefPmqVzj4sWLGDlyJB555BEcO3YMGzduxJ49e/Dcc881Ke74+HiVuKdMmaKz2Xs9evTAqFGjVJJEIiLSEYnEqNYS4jpCOlRWJUPAgh3NuoZcBN785STe/OWkVuedemcEbCy0+8/5xBNPYP78+UhPTwcA7N27F99//z0SExOVbUpKSrBq1SrEx8dj1KhRAIA1a9bgzz//xJdffolXXnkFq1atgr+/Pz766CMAQPfu3XH8+HGVHpXFixdjypQpmDt3LgCga9eu+OSTTzB06FCsWrUKVlZWGsf94IMP4umnn0ZSUhJCQkKwadMm7NmzB2vXrlVre/z4cbRr1075PCAgAIcOHWr0Hj169MDOnTs1jomIiLRg4wKU3GQiRIbVoUMHjBkzBvHx8RBFEWPGjIGLi4tKm4sXL6KqqgqDBg1SHjM3N0dYWBhOnz4NADh9+jTCw8NVzhs4cKDK86NHj+LYsWP49ttvlcdEUYRcLkdaWhp69uypcdzm5uZ44okn8NVXX+HSpUvo1q0b+vbtW2fb7t27Y+vWrcrnlpaWGt1DFEVOdSci0hcjWkuIiZAOWZtLceqdEVqdk1lQjshluyGvNbIlEYC/YobC3UHzXhJrc6lW960xY8YM5fBUXFxck66hieLiYsyePRtz5sxRe60pxdkzZsxAeHg4Tpw4gRkzZtTbzsLCAl26dNH6+qdPn0anTp20Po+IiDSgHBozfI0QEyEdEgRB6+Gpzh3aYfGEPnh98wnIRBFSQcCiCb3RuUO7xk/WgZEjR6KyshKCIGDECPUkzt/fHxYWFti7dy98fX0BAFVVVTh8+LBymKtnz54qvS4AcODAAZXn/fr1w6lTp5qUlNSlV69e6NWrF44dO4bHH39cJ9escebMGWzfvh3z58/X6XWJiOg2I1pLqE0kQkuXLsVXX30FQRAwb948PPHEE4YOScWkUB8M6dYBl3NK4ediAw8H6xa7t1QqVQ5xSaXqvUq2trZ45pln8Morr8DZ2Rk+Pj748MMPUVpaiqeeegoA8PTTT+Ojjz7CK6+8gpkzZyIlJUWlmBkAXnvtNQwYMADPPfccZs6cCVtbW5w6dQp//vknVq5c2aTY//77b1RVVcHR0bFJ5wOK/eIyMzMhl8tx69YtJCYm4n//+x+CgoLwyiuvNPm6RETUAOVaQkyE9O748ePYsGEDUlJSIIoiIiIi8OCDDzbrj6c+eDhYt2gCVJu9vX2Dr7///vuQy+WYOnUqioqK0L9/f+zYsQNOTk4AFENbP/30E1588UWsWLECYWFhWLRokcqQVd++fbF7927897//xeDBgyGKIvz9/TFp0qQmx21ra9vkc2ucPHkSHh4ekEqlcHBwQEBAAObPn49nnnlG43oiIiLSUk2PUInha4QEsSnzrk3Ipk2bsHv3bmX9y+zZsxEREYHJkydrdH7N7vMFBQVqCUN5eTnS0tLQqVMnrWY9UdvFnxkiIgDHNgGbZwGdhgJRWxtv3wQN/f2uzeDrCCUlJWHs2LHw9PSEIAj4+eef1drExcXBz88PVlZWCA8P12j6c43evXsjMTER+fn5yMvLQ2JiIq5fv67Dd0BERERaUdYIsVgaJSUlCAwMxIwZMzBhwgS11zdu3IiYmBisXr0a4eHhiI2NxYgRI3D27Fm4uroCAIKCglBdXa127s6dOxEQEIA5c+bgvvvug4ODAwYMGFBnLQwRERG1EBZL3zFq1CjlQn11WbZsGWbNmqVc8Xj16tXYtm0b1q5dq1y9ODU1tcF7zJ49G7NnzwYAzJw5E127dq23bUVFhcqGm4WFhZq+FSIiItJE7XWERBEw4LptBh8aa0hlZSVSUlIQGRmpPCaRSBAZGYn9+/drfJ3s7GwAwNmzZ3Ho0KE6p4nXWLx4MRwcHJQPb2/vpr8BIiIiUleTCMkqgcpig4Zi1IlQTk4OZDIZ3NzcVI67ubkhMzNT4+s89NBDCAgIUK5GbGZWf0fY/PnzUVBQoHxcvXq1yfETERFRHSxsAHMbxfcGHh4z+NBYS9Cm98jS0hKWlpaIi4tDXFwcZDKZHiMjIiJqo2zaAwWlikTIyc9gYRh1j5CLiwukUimysrJUjmdlZcHd3V2v927K7vNERESkoZptNkoM2yNk1ImQhYUFQkJCkJCQoDwml8uRkJCgtqmnrsXFxSEgIAChoaF6vQ8REVGbZCQzxww+NFZcXIwLFy4on6elpSE1NVW5nUNMTAyioqLQv39/hIWFITY2FiUlJcpZZPoSHR2N6Oho5YJMREREpEM2xrHNhsF7hJKTkxEcHIzg4GAAQExMDIKDg7FgwQIAwKRJk7B06VIsWLAAQUFBSE1Nxfbt29UKqHWNPUINe+uttxAUFNTs68THxxvddidERNQCjKRHyOCJ0LBhwyCKotqj9qadzz33HNLT01FRUYGDBw8iPDxc73G15hqhmzdv4plnnoGPjw8sLS3h7u6OESNGYO/evXq9r5+fH2JjY1WOTZo0CefOndPrfQHFz5kgCHj//ffVXhszZgwEQcBbb72l1v7uR83CnbVft7S0hJeXF8aOHYvNmzfr/b0QEbUKtdcSMiCDJ0LU8h555BH8+++/WLduHc6dO4etW7di2LBhuHWr5bNya2tr5Qrh+ubt7a2SYAPA9evXkZCQAA8PD7X2s2bNQkZGhsqj9tILNa9fvHgRP/30EwICAjB58mT83//9n77fChGR6aspljbwNhtMhOrR4kNjBdeBtCTFVz3Kz8/HP//8gw8++AARERHw9fVFWFgY5s+fj3HjxinbXblyBQ899BDatWsHe3t7TJw4UW32Xm3Dhg3D3LlzVY6NHz8e06ZNU76enp6OF198UdmTAtQ9NLZq1Sr4+/vDwsIC3bt3x/r161VeFwQBX3zxBR5++GHY2Niga9eu2Lq18U37HnzwQeTk5Kj0fK1btw4PPPBAncmYjY0N3N3dVR51vd6xY0cMGDAAH3zwAT777DOsWbMGf/31V6PxEBG1abasETJqTRoaE0WgskT7x6E1QGxvYN1YxddDa7S/hihqFGK7du3Qrl07/PzzzypbidQml8vx0EMPITc3F7t378aff/6JS5cuYdKkSZp/FnfZvHkzOnbsiHfeeUfZu1KXLVu24IUXXsBLL72EEydOYPbs2Zg+fTp27dql0u7tt9/GxIkTcezYMYwePRpTpkxBbm7D/1dhYWGBKVOm4KuvvlIei4+Px4wZM5r8vu4WFRUFJycnDpERETXGSGqEDD5rrFWpKgUWeTbvGqIc+P1lxUMbr98ALGwbbWZmZob4+HjMmjULq1evRr9+/TB06FBMnjwZffv2BQAkJCTg+PHjSEtLU24x8vXXX6NXr144fPhwk3rJnJ2dIZVKYWdn1+AaUEuXLsW0adPw7LPPAlAUzx84cABLly5FRESEst20adPw2GOPAQAWLVqETz75BIcOHcLIkSMbjGPGjBkYPHgwPv74Y6SkpKCgoAAPPvigSn1QjU8//RRffPGF8vns2bPx0UcfNXh9iUSCbt264fLlyw22IyJq82oSoRLWCBml1jxr7JFHHsGNGzewdetWjBw5EomJiejXr5+yfub06dPw9vZW2WctICAAjo6OOH36tF5jO336NAYNGqRybNCgQWr3rUnaAMDW1hb29vbKPeUaEhgYiK5du+LHH3/E2rVrMXXq1Hq3XJkyZQpSU1OVj/nz52v0HkRRVA79ERFRPWoSobI8QG64XRzYI1SPJq0jZG6j6JnRRuENIC5M0RNUQ5AC0QcBey16l2r2bNGQlZUVhg8fjuHDh+PNN9/EzJkzsXDhQmVNj7YkEgnEu4bnqqqqmnQtTZibm6s8FwQBcrm8ntaqZsyYgbi4OJw6dQqHDh2qt52DgwO6dOmiVVwymQznz59vlQk0EZFOWd8uloYIZJ8G3HsbJAz2COmSICiGp7R5uHQFxn6sSH4AxdexsYrj2lynmT0QAQEBKCkpAQD07NkTV69eVdlw9tSpU8jPz0dAQECd53fo0EGl7kcmk+HEiRMqbSwsLBrdu61nz55q0/j37t1b732b4vHHH8fx48fRu3dvnV4XUBRf5+Xl4ZFHHtHpdYmIWp2jG+58/9lg4MjXBgmDPULGoN+TgP/9QO4lwLkz4OClt1vdunULjz76KGbMmIG+ffvCzs4OycnJ+PDDD/HQQw8BACIjI9GnTx9MmTIFsbGxqK6uxrPPPouhQ4eif//+dV73vvvuQ0xMDLZt2wZ/f38sW7YM+fn5Km38/PyQlJSEyZMnw9LSEi4uLmrXeeWVVzBx4kQEBwcjMjISv/76KzZv3qzTWVhOTk7IyMhQ61XSVmlpKTIzM1FdXY1r165hy5YtWL58OZ555hmVeiYiIrpLwXXg1xfuPBflwK9zFX8L9fg3sC5MhOrR4rvPO3i1yH/8du3aITw8HMuXL8fFixdRVVUFb29vzJo1C6+//joAxTDTL7/8gueffx5DhgyBRCLByJEjsWLFinqvO2PGDBw9ehRPPvkkzMzM8OKLL6olA++88w5mz54Nf39/VFRUqA2lAYop9x9//DGWLl2KF154AZ06dcJXX32FYcOG6fRz0MVq1mvWrMGaNWtgYWGB9u3bIyQkBBs3bsTDDz/c/ACJiFqz3IuqJSEAIMoUHQItnAgJYl1/jUippkaooKAA9vb2Kq+Vl5cjLS0NnTp1gpWVlYEiJFPCnxkiIih6hGJ7q9fHzj2us0Soob/ftbFGiIiIiFqWg1fd9bEt3BsEcGiMiIiIDKEF62MbwkSIiIiIDKOF6mMbwqGxerTmBRWJiIhIgYlQPZq01xgRERGZFCZCOsCJd6Qp/qwQERkXJkLNIJUqqt0rKysNHAmZipqflZqfHSIiMiwWSzeDmZkZbGxscPPmTZibm0MiYV5J9ZPL5bh58yZsbGzq3eiViIhaFn8bN4MgCPDw8EBaWhrS09MNHQ6ZAIlEAh8fH+5OT0RkJJgINZOFhQW6du3K4THSiIWFBXsOiYiMCBOhemiz15hEIuF2CURERCaIe401QtO9SoiIiMh4cK8xIiIiokYwESIiIqI2izVCjagZOSwsLDRwJERERKSpmr/bjVUAMRFqRFFREQDA29vbwJEQERGRtoqKiuDg4FDv6yyWboRcLseNGzdgZ2dnlGu/FBYWwtvbG1evXmUxtw7xc9Uffrb6w89Wf/jZ6oc+P1dRFFFUVARPT88Gly1hj1AjJBIJOnbsaOgwGmVvb89/nHrAz1V/+NnqDz9b/eFnqx/6+lwb6gmqwWJpIiIiarOYCBEREVGbxUTIxFlaWmLhwoWwtLQ0dCitCj9X/eFnqz/8bPWHn61+GMPnymJpIiIiarPYI0RERERtFhMhIiIiarOYCBEREVGbxUSIiIiI2iwmQkbu+vXreOKJJ9C+fXtYW1ujT58+SE5ObvCcxMRE9OvXD5aWlujSpQvi4+NbJlgTou3nmpiYCEEQ1B6ZmZktGLXx8/Pzq/Nzio6OrvecH374AT169ICVlRX69OmD33//vQUjNh3afrbx8fFqba2srFo4atMgk8nw5ptvolOnTrC2toa/vz/efffdRveo4u/ahjXlczXE71quLG3E8vLyMGjQIEREROCPP/5Ahw4dcP78eTg5OdV7TlpaGsaMGYOnn34a3377LRISEjBz5kx4eHhgxIgRLRi98WrK51rj7NmzKqufurq66jNUk3P48GHIZDLl8xMnTmD48OF49NFH62y/b98+PPbYY1i8eDEefPBBbNiwAePHj8eRI0fQu3fvlgrbJGj72QKK1XrPnj2rfG6M2wQZgw8++ACrVq3CunXr0KtXLyQnJ2P69OlwcHDAnDlz6jyHv2sb15TPtUaL/q4VyWi99tpr4r333qvVOa+++qrYq1cvlWOTJk0SR4wYocvQTFpTPtddu3aJAMS8vDz9BNVKvfDCC6K/v78ol8vrfH3ixInimDFjVI6Fh4eLs2fPbonwTFpjn+1XX30lOjg4tGxQJmrMmDHijBkzVI5NmDBBnDJlSr3n8Hdt45ryuRridy2HxozY1q1b0b9/fzz66KNwdXVFcHAw1qxZ0+A5+/fvR2RkpMqxESNGYP/+/foM1aQ05XOtERQUBA8PDwwfPhx79+7Vc6SmrbKyEt988w1mzJhRb08Ef16bRpPPFgCKi4vh6+sLb29vPPTQQzh58mQLRmk67rnnHiQkJODcuXMAgKNHj2LPnj0YNWpUvefwZ7dxTflca7Tk71omQkbs0qVLWLVqFbp27YodO3bgmWeewZw5c7Bu3bp6z8nMzISbm5vKMTc3NxQWFqKsrEzfIZuEpnyuHh4eWL16NX766Sf89NNP8Pb2xrBhw3DkyJEWjNy0/Pzzz8jPz8e0adPqbVPfzytrrxqmyWfbvXt3rF27Fr/88gu++eYbyOVy3HPPPbh27VrLBWoi5s2bh8mTJ6NHjx4wNzdHcHAw5s6diylTptR7Dn/XNq4pn6tBfte2WN8Tac3c3FwcOHCgyrHnn39eHDBgQL3ndO3aVVy0aJHKsW3btokAxNLSUr3EaWqa8rnWZciQIeITTzyhy9BalQceeEB88MEHG2xjbm4ubtiwQeVYXFyc6Orqqs/QTJ4mn+3dKisrRX9/f/GNN97QU1Sm67vvvhM7duwofvfdd+KxY8fEr7/+WnR2dhbj4+PrPYe/axvXlM+1Lvr+XctiaSPm4eGBgIAAlWM9e/bETz/9VO857u7uyMrKUjmWlZUFe3t7WFtb6yVOU9OUz7UuYWFh2LNnjy5DazXS09Px119/YfPmzQ22q+/n1d3dXZ/hmTRNP9u71fwf+YULF/QUmel65ZVXlL0XANCnTx+kp6dj8eLFiIqKqvMc/q5tXFM+17ro+3cth8aM2KBBg1RmfADAuXPn4OvrW+85AwcOREJCgsqxP//8EwMHDtRLjKaoKZ9rXVJTU+Hh4aHL0FqNr776Cq6urhgzZkyD7fjzqj1NP9u7yWQyHD9+nD+zdSgtLYVEovrnUCqVQi6X13sOf3Yb15TPtS56/12rt74marZDhw6JZmZm4nvvvSeeP39e/Pbbb0UbGxvxm2++UbaZN2+eOHXqVOXzS5cuiTY2NuIrr7winj59WoyLixOlUqm4fft2Q7wFo9SUz3X58uXizz//LJ4/f148fvy4+MILL4gSiUT866+/DPEWjJpMJhN9fHzE1157Te21qVOnivPmzVM+37t3r2hmZiYuXbpUPH36tLhw4ULR3NxcPH78eEuGbDK0+WzffvttcceOHeLFixfFlJQUcfLkyaKVlZV48uTJlgzZJERFRYleXl7ib7/9JqalpYmbN28WXVxcxFdffVXZhr9rtdeUz9UQv2uZCBm5X3/9Vezdu7doaWkp9ujRQ/z8889VXo+KihKHDh2qcmzXrl1iUFCQaGFhIXbu3Fn86quvWi5gE6Ht5/rBBx+I/v7+opWVlejs7CwOGzZM/Pvvv1s4atOwY8cOEYB49uxZtdeGDh0qRkVFqRzbtGmT2K1bN9HCwkLs1auXuG3bthaK1PRo89nOnTtX9PHxES0sLEQ3Nzdx9OjR4pEjR1owWtNRWFgovvDCC6KPj49oZWUldu7cWfzvf/8rVlRUKNvwd632mvK5GuJ3rSCKjSydSURERNRKsUaIiIiI2iwmQkRERNRmMREiIiKiNouJEBEREbVZTISIiIiozWIiRERERG0WEyEiIiJqs5gIERERUZvFRIiI2oxp06ZBEAQ8/fTTaq9FR0dDEARMmzat5QMjIoNhIkREbYq3tze+//57lJWVKY+Vl5djw4YN8PHxMWBkRGQITISIqE3p168fvL29sXnzZuWxzZs3w8fHB8HBwQaMjIgMgYkQEbU5M2bMwFdffaV8vnbtWkyfPt2AERGRoTARIqI254knnsCePXuQnp6O9PR07N27F0888YShwyIiAzAzdABERC2tQ4cOGDNmDOLj4yGKIsaMGQMXFxdDh0VEBsBEiIjapBkzZuC5554DAMTFxRk4GiIyFCZCRNQmjRw5EpWVlRAEASNGjDB0OERkIEyEiKhNkkqlOH36tPJ7ImqbmAgRUZtlb29v6BCIyMAEURRFQwdBREREZAicPk9ERERtFhMhIiIiarOYCBEREVGbxUSIiIiI2iwmQkRERNRmMREiIiKiNouJEBEREbVZTISIiIiozWIiRERERG0WEyEiIiJqs5gIERERUZvFRIiIiIjarP8HKY9fUPECsUgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plot_mfd(model_abs_mfd, label=\"Model MFD\")\n", "plot_soln_mfd(rup_rates.values, rups, label=\"Solution MFD\")\n", "plt.legend(loc=\"lower left\")\n", "plt.title(\"Solution MFD\")" ] }, { "cell_type": "code", "execution_count": 16, "id": "65f2727c-c341-4861-9bcc-e546cd2b83cf", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Solution misfit history')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGzCAYAAAABsTylAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPRtJREFUeJzt3Xl0VPXh///XnZnMTPYEAglhBysaRKgISKsCNRWpK5UWl09ZVFo12PYbWy22H7GtFT/6qfV3PKnaT4tYi5Xao/Rz1LqAILWibKIiwkcQEFkStuzrzLx/f8zCTBaSYJK5A8/HOXNm5t47977vXMy8fG/XMsYYAQAA2JAj3gUAAABoC0EFAADYFkEFAADYFkEFAADYFkEFAADYFkEFAADYFkEFAADYFkEFAADYFkEFAADYFkEFiKPJkydr8uTJXbrP3bt3y7IsLVmypEv32xOWLFkiy7K0e/fuTn2uurpat9xyi/Ly8mRZln784x93yfcwZMgQXXHFFe1ut3r1almWpdWrV5/0sQC0jqACdMJHH32kGTNmaPDgwfJ6verfv7+++c1v6rHHHuvxsjz77LN69NFHe/y4dvTAAw9oyZIluu222/TMM8/oe9/7XqvbvfLKK7rvvvt6tnAn8MADD2j58uXxLgZgaxb3+gE65p133tGUKVM0aNAgzZ49W3l5edq7d6/effdd7dy5Uzt27Oj0PsO1KSfzf+JXXHGFtmzZ0qL2wRijhoYGJSUlyel0dnq/8eT3+9XU1CSPxyPLsjr8uQsuuEAul0tvv/12ZFlr38P8+fNVUlKijv7ZGzJkiM455xy99NJLJ9wuEAiosbFRbrdbDkfH//8vLS1NM2bMSMjaL6CnuOJdACBR/OY3v1FmZqbWr1+vrKysmHVlZWXxKVQrLMuS1+uNdzFOitPpPKlwVVZWpoKCgphlPfk9OBwO23znNTU1Sk1NjXcxgC5D0w/QQTt37tTIkSNbhBRJ6tu3b8x7n8+nX//61xo+fLg8Ho+GDBmie+65Rw0NDSc8Rlt9NJr3gZg8ebJefvll7dmzR5ZlybIsDRkyRFLbfVTefPNNXXTRRUpNTVVWVpauvvpqffLJJzHb3HfffbIsSzt27NCcOXOUlZWlzMxMzZ07V7W1te1+R5MnT9Y555yjDz/8UJMmTVJKSorOOOMM/f3vf5ckvfXWW5owYYKSk5M1YsQIrVixot3z37Bhg6ZOnaqcnBwlJydr6NChuummm2K+l127dunll1+OfBe7d+9u8T3MmTNHJSUlkhTZrqO1Nm+//bbGjx8vr9erYcOG6c9//nPM+tb6qHz66ae69tprlZeXJ6/XqwEDBui6665TRUVFpAw1NTV6+umnI2WZM2dO5PPvv/++pk2bpoyMDKWlpemSSy7Ru+++2+r39dZbb+n2229X3759NWDAAK1atUqWZenFF19scS7PPvusLMvS2rVrO3TuQLxRowJ00ODBg7V27Vpt2bJF55xzzgm3veWWW/T0009rxowZuvPOO/Xee+9p0aJF+uSTT1r98eisn//856qoqNAXX3yh3/3ud5KCzQhtWbFihaZNm6Zhw4bpvvvuU11dnR577DF9/etf16ZNmyIhJ+y73/2uhg4dqkWLFmnTpk364x//qL59++q//uu/2i3bsWPHdMUVV+i6667Td77zHT3++OO67rrrtHTpUv34xz/WrbfeqhtuuEEPP/ywZsyYob179yo9Pb3VfZWVlenSSy9Vnz599LOf/UxZWVnavXu3XnjhBUnS2WefrWeeeUb/7//9Pw0YMEB33nmnJKlPnz46dOhQzL5+8IMfaP/+/XrjjTf0zDPPtHseYTt27NCMGTN08803a/bs2Vq8eLHmzJmjsWPHauTIka1+prGxUVOnTlVDQ4PuuOMO5eXlad++fXrppZdUXl6uzMxMPfPMM7rllls0fvx4ff/735ckDR8+XJL08ccf66KLLlJGRobuuusuJSUl6cknn9TkyZMjYS/a7bffrj59+ujee+9VTU2NJk+erIEDB2rp0qWaPn16zLZLly7V8OHDNXHixA5/B0BcGQAd8vrrrxun02mcTqeZOHGiueuuu8xrr71mGhsbY7bbvHmzkWRuueWWmOU/+clPjCTz5ptvRpZNmjTJTJo0KfL+qaeeMpLMrl27Yj67atUqI8msWrUqsuzyyy83gwcPblHOXbt2GUnmqaeeiiwbM2aM6du3rzly5Ehk2QcffGAcDoeZNWtWZNnChQuNJHPTTTfF7HP69Ommd+/ebX01MecjyTz77LORZdu2bTOSjMPhMO+++25k+WuvvdainM3P/8UXXzSSzPr160943MGDB5vLL7+83e+hqKjIdObP3uDBg40ks2bNmsiysrIy4/F4zJ133hlZ1vz6vP/++0aSef7550+4/9TUVDN79uwWy6+55hrjdrvNzp07I8v2799v0tPTzcUXXxxZFv6+LrzwQuPz+WL2sWDBAuPxeEx5eXlM2V0ul1m4cGFHTh+wBZp+gA765je/qbVr1+qqq67SBx98oIceekhTp05V//799b//+7+R7V555RVJUnFxccznw/+3//LLL/dcoSUdOHBAmzdv1pw5c9SrV6/I8nPPPVff/OY3I+WNduutt8a8v+iii3TkyBFVVla2e7y0tDRdd911kfcjRoxQVlaWzj777JiagPDrzz77rM19hZvZXnrpJTU1NbV77O5QUFCgiy66KPK+T58+GjFixAnLnZmZKUl67bXXOtRkFs3v9+v111/XNddco2HDhkWW9+vXTzfccIPefvvtFtdh3rx5Lfr2zJo1Sw0NDZFmN0latmyZfD6f/uM//qNTZQLiiaACdMK4ceP0wgsv6NixY1q3bp0WLFigqqoqzZgxQ1u3bpUk7dmzRw6HQ2eccUbMZ/Py8pSVlaU9e/b0aJnDxxsxYkSLdWeffbYOHz6smpqamOWDBg2KeZ+dnS0p2KzTngEDBrTo+5GZmamBAwe2WNbePidNmqRrr71Wv/zlL5WTk6Orr75aTz31VLt9fbpS8+9CCn4fJyr30KFDVVxcrD/+8Y/KycnR1KlTVVJSEumfciKHDh1SbW1tm9crEAho7969LY7X3FlnnaVx48Zp6dKlkWVLly7VBRdc0OLfJmBnBBXgJLjdbo0bN04PPPCAHn/8cTU1Nen555+P2aYzw2vb+4zf7z+pcp6stkbemA4M623rsyezT8uy9Pe//11r167V/PnztW/fPt10000aO3asqqur2y1LVzjZ7+K3v/2tPvzwQ91zzz2qq6vTD3/4Q40cOVJffPFFl5cxOTm51eWzZs3SW2+9pS+++EI7d+7Uu+++S20KEg5BBfiSzj//fEnBJhYp2Ok2EAjo008/jdmutLRU5eXlGjx4cJv7CtdclJeXxyxvrRamo0EofLzt27e3WLdt2zbl5OTYfjjrBRdcoN/85jfasGGDli5dqo8//ljPPfdcp/dzMuHxyxg1apR+8YtfaM2aNfrXv/6lffv26Yknnjhhefr06aOUlJQ2r5fD4WhRO9WW6667Tk6nU3/961+1dOlSJSUlaebMmSd/QkAcEFSADlq1alWr/xcd7uMRrqr/1re+JUktZo195JFHJEmXX355m8cIj/pYs2ZNZJnf79cf/vCHFtumpqZ2qCmhX79+GjNmjJ5++umYALRlyxa9/vrrkfLa0bFjx1p852PGjJGkk2r+CQey5kGwq1VWVsrn88UsGzVqlBwOR0y5U1NTW5TF6XTq0ksv1T/+8Y+YYdqlpaV69tlndeGFFyojI6ND5cjJydG0adP0l7/8RUuXLtVll12mnJyckz4vIB4Yngx00B133KHa2lpNnz5dZ511lhobG/XOO+9o2bJlGjJkiObOnStJGj16tGbPnq0//OEPKi8v16RJk7Ru3To9/fTTuuaaazRlypQ2jzFy5EhdcMEFWrBggY4ePapevXrpueeea/GjJ0ljx47VsmXLVFxcrHHjxiktLU1XXnllq/t9+OGHNW3aNE2cOFE333xzZHhyZmamraaUb+7pp5/W73//e02fPl3Dhw9XVVWV/ud//kcZGRknFbDGjh0rSfrhD3+oqVOnyul0xnT87Spvvvmm5s+fr+985zs688wz5fP59Mwzz8jpdOraa6+NKc+KFSv0yCOPKD8/X0OHDtWECRN0//3364033tCFF16o22+/XS6XS08++aQaGhr00EMPdaoss2bN0owZMyRJv/71r7v0PIEeEdcxR0AC+ec//2luuukmc9ZZZ5m0tDTjdrvNGWecYe644w5TWloas21TU5P55S9/aYYOHWqSkpLMwIEDzYIFC0x9fX3Mds2HJxtjzM6dO01hYaHxeDwmNzfX3HPPPeaNN95oMTy5urra3HDDDSYrK8tIigxVbm1YrjHGrFixwnz96183ycnJJiMjw1x55ZVm69atMduEhycfOnQoZnlbw6abmzRpkhk5cmSL5a0NHzbGGEmmqKiozeNs2rTJXH/99WbQoEHG4/GYvn37miuuuMJs2LCh3f239j34fD5zxx13mD59+hjLstodqtxWuZtft+bDkz/77DNz0003meHDhxuv12t69eplpkyZYlasWBGzn23btpmLL77YJCcnG0kxQ5U3bdpkpk6datLS0kxKSoqZMmWKeeedd2I+H/6+TjR8u6GhwWRnZ5vMzExTV1d3wvMF7Ih7/QDAKczn8yk/P19XXnml/vSnP8W7OECn0UcFAE5hy5cv16FDhzRr1qx4FwU4KdSoAMAp6L333tOHH36oX//618rJydGmTZvi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OoKgEvLYY4+ZQYMGGbfbbcaPH2/efffdeBfJSGr18dRTTxljjPn888/NxRdfbHr16mU8Ho8544wzzE9/+tOYeTiMMWb37t1m2rRpJjk52eTk5Jg777zTNDU1xWyzatUqM2bMGON2u82wYcMix4jW1d/RzJkzTb9+/Yzb7Tb9+/c3M2fONDt27Iisr6urM7fffrvJzs42KSkpZvr06ebAgQMJcW7RXnvtNSPJbN++PWZ5Il6/VatWtfpvcvbs2caY4JDL//zP/zS5ubnG4/GYSy65pMV5HzlyxFx//fUmLS3NZGRkmLlz55qqqqqYbT744ANz4YUXGo/HY/r3728efPDBFmX529/+Zs4880zjdrvNyJEjzcsvvxyzviNl6ew57tq1q83/LsNz42zcuNFMmDDBZGZmGq/Xa84++2zzwAMPxPzQx/McT3R+tbW15tJLLzV9+vQxSUlJZvDgwWbevHktAq2dr2F7/0aNMebJJ580ycnJpry8vMXn7X792vtdMMZefzs7Upb2WKETBwAAsJ3Tvo8KAACwL4IKAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwLYIKAACwrf8fGIMt/uz8/6oAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.semilogy(misfit_history)\n", "plt.title(\"Solution misfit history\")" ] }, { "cell_type": "markdown", "id": "2637ee10-cf07-4e64-8149-34569cd4abe0", "metadata": {}, "source": [ "### Writing the results to an OpenQuake source" ] }, { "cell_type": "code", "execution_count": 17, "id": "faed58e5-1d5a-4d84-bef0-fbacd4ede379", "metadata": {}, "outputs": [], "source": [ "mfs = make_multifault_source(\n", " fault_network,\n", " source_id='atf_qilian',\n", " name=\"Altyn Tagh--Qilian Shan faults\",\n", " ruptures_for_output='all', #use 'filtered' if you filtered by plausibility\n", " rupture_occurrence_rates=rup_rates,\n", ")\n", "\n", "write_multifault_source(\".\", mfs)" ] } ], "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.12.12" } }, "nbformat": 4, "nbformat_minor": 5 }