diff --git a/.gitignore b/.gitignore index 9bf516c..c07bbdd 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,12 @@ __pycache__/ *.py[cod] *$py.class +# images +*.jog +*.png +*.svg +*.bmp + # C extensions *.so diff --git a/scripts/analyse_dataset.py b/scripts/analyse_dataset.py index 30202e8..2a9738d 100644 --- a/scripts/analyse_dataset.py +++ b/scripts/analyse_dataset.py @@ -1,13 +1,14 @@ import typing from typing import cast -from pandas import DataFrame, Series +from pandas import DataFrame -from lang_main.analysis.graphs import TokenGraph +from lang_main.analysis.graphs import Graph, TokenGraph, save_to_GraphML from lang_main.constants import ( PATH_TO_DATASET, SAVE_PATH_FOLDER, SKIP_GRAPH_POSTPROCESSING, + SKIP_GRAPH_RESCALING, SKIP_PREPROCESSING, SKIP_TIME_ANALYSIS, SKIP_TOKEN_ANALYSIS, @@ -20,6 +21,7 @@ from lang_main.pipelines.predefined import ( build_timeline_pipe, build_tk_graph_pipe, build_tk_graph_post_pipe, + build_tk_graph_rescaling, ) from lang_main.types import ( EntryPoints, @@ -34,6 +36,7 @@ pipe_target_feat = build_base_target_feature_pipe() pipe_merge = build_merge_duplicates_pipe() pipe_token_analysis = build_tk_graph_pipe() pipe_graph_postprocessing = build_tk_graph_post_pipe() +pipe_graph_rescaling = build_tk_graph_rescaling() pipe_timeline = build_timeline_pipe() @@ -81,6 +84,24 @@ def run_graph_postprocessing() -> None: ) +def run_graph_edge_rescaling() -> None: + entry_point_path = get_entry_point(SAVE_PATH_FOLDER, EntryPoints.TK_GRAPH_ANALYSIS) + loaded_results = cast( + tuple[TokenGraph], + load_pickle(entry_point_path), + ) + tk_graph = loaded_results[0] + ret = cast( + tuple[TokenGraph, Graph], pipe_graph_rescaling.run(starting_values=(tk_graph,)) + ) + undirected_rescaled_graph = ret[1] + save_to_GraphML( + undirected_rescaled_graph, + saving_path=SAVE_PATH_FOLDER, + filename='TokenGraph-undirected-rescaled', + ) + + # ** time analysis def run_time_analysis() -> None: # load entry point @@ -101,6 +122,7 @@ def build_pipeline_container() -> PipelineContainer: container.add(run_preprocessing, skip=SKIP_PREPROCESSING) container.add(run_token_analysis, skip=SKIP_TOKEN_ANALYSIS) container.add(run_graph_postprocessing, skip=SKIP_GRAPH_POSTPROCESSING) + container.add(run_graph_edge_rescaling, skip=SKIP_GRAPH_RESCALING) container.add(run_time_analysis, skip=SKIP_TIME_ANALYSIS) return container diff --git a/scripts/lang_main_config.toml b/scripts/lang_main_config.toml index f5c2788..fbd99b0 100644 --- a/scripts/lang_main_config.toml +++ b/scripts/lang_main_config.toml @@ -13,9 +13,10 @@ dataset = '../data/02_202307/Export4.csv' # be fully executed [control] preprocessing_skip = true -token_analysis_skip = true -graph_postprocessing_skip = true -time_analysis_skip = false +token_analysis_skip = false +graph_postprocessing_skip = false +graph_rescaling_skip = false +time_analysis_skip = true #[export_filenames] #filename_cossim_filter_candidates = 'CosSim-FilterCandidates' diff --git a/scripts/test.py b/scripts/test.py index 62dc3f9..338b3f4 100644 --- a/scripts/test.py +++ b/scripts/test.py @@ -1,12 +1 @@ -from lang_main.analysis.preprocessing import clean_string_slim -from lang_main.constants import SAVE_PATH_FOLDER - -print(SAVE_PATH_FOLDER) -txt = """ -Wir feiern den Jahrestag am 23.11.2023, olé! -tel:::: !!!!???? +++49 123 456 789 - -Doch leben wir länger. -""" -print(txt) -print(clean_string_slim(txt)) +import py4cytoscape diff --git a/src/lang_main/analysis/graphs.py b/src/lang_main/analysis/graphs.py index e1ad50d..bcf1578 100644 --- a/src/lang_main/analysis/graphs.py +++ b/src/lang_main/analysis/graphs.py @@ -14,6 +14,7 @@ from networkx import DiGraph, Graph from pandas import DataFrame from lang_main.constants import EDGE_WEIGHT_DECIMALS +from lang_main.errors import EdgePropertyNotContainedError from lang_main.io import load_pickle, save_pickle from lang_main.loggers import logger_graphs as logger from lang_main.types import ( @@ -27,6 +28,18 @@ from lang_main.types import ( LOGGING_DEFAULT: Final[bool] = False +def save_to_GraphML( + graph: DiGraph | Graph, + saving_path: Path, + filename: str | None = None, +) -> None: + if filename is not None: + saving_path = saving_path.joinpath(filename) + saving_path = saving_path.with_suffix('.graphml') + nx.write_graphml(G=graph, path=saving_path) + logger.info('Successfully saved graph as GraphML file under %s.', saving_path) + + def get_graph_metadata( graph: Graph | DiGraph, logging: bool = LOGGING_DEFAULT, @@ -270,6 +283,24 @@ def filter_graph_by_node_degree( return filtered_graph +def apply_rescaling_to_graph( + graph: TokenGraph, +) -> tuple[TokenGraph, Graph]: + """helper function to allow calls in pipelines + + Parameters + ---------- + graph : TokenGraph + token graph pushed through pipeline + + Returns + ------- + tuple[TokenGraph, Graph] + token graph (directed) and undirected version with rescaled edge weights + """ + return graph.rescale_edge_weights() + + def normalise_array_linear( array: npt.NDArray[np.float_], ) -> npt.NDArray[np.float32]: @@ -323,22 +354,57 @@ def weight_scaling( return np.round(adjusted_weights, decimals=EDGE_WEIGHT_DECIMALS) +def verify_property( + graph: Graph | DiGraph, + property: str, +) -> None: + for idx, (node_1, node_2) in enumerate(graph.edges): + if property not in graph[node_1][node_2]: + raise EdgePropertyNotContainedError( + ( + f'Edge property >>{property}<< not ' + f'available for edge >>({node_1}, {node_2})<<' + ) + ) + + +@overload def rescale_edge_weights( graph: TokenGraph, -) -> TokenGraph: + weight_property: str = ..., +) -> TokenGraph: ... + + +@overload +def rescale_edge_weights( + graph: DiGraph, + weight_property: str = ..., +) -> DiGraph: ... + + +@overload +def rescale_edge_weights( + graph: Graph, + weight_property: str = ..., +) -> Graph: ... + + +def rescale_edge_weights( + graph: Graph | DiGraph | TokenGraph, + weight_property: str = 'weight', +) -> Graph | DiGraph | TokenGraph: graph = graph.copy() + # check if all edges contain weight property + verify_property(graph, property=weight_property) weights = cast(list[int], [data['weight'] for data in graph.edges.values()]) w_log = cast(npt.NDArray[np.float32], np.log(weights, dtype=np.float32)) weights_norm = normalise_array_linear(w_log) weights_adjusted = weight_scaling(weights_norm) # assign new weight values - for idx, (node_1, node_2) in enumerate(list(graph.edges)): + for idx, (node_1, node_2) in enumerate(graph.edges): graph[node_1][node_2]['weight'] = weights_adjusted[idx] - graph.rescaled_weights = True - graph.update_metadata(logging=False) - return graph @@ -405,7 +471,10 @@ class TokenGraph(DiGraph): return self._directed @property - def undirected(self) -> Graph | None: + def undirected(self) -> Graph: + if self._undirected is None: + self._undirected = self.to_undirected(inplace=False, logging=False) + return self._undirected @property @@ -464,6 +533,35 @@ class TokenGraph(DiGraph): graph=self._undirected, logging=logging ) + def rescale_edge_weights( + self, + ) -> tuple[TokenGraph, Graph]: + """generate new instances of the directed and undirected TokenGraph with + rescaled edge weights + Only this method ensures that undirected graphs are scaled properly. If + the underlying `to_undirected` method of the directed and rescaled + TokenGraph instance is called the weights are not rescaled again. Thus, + the maximum edge weight can exceed the theoretical maximum value of 1. To + ensure consistent behaviour across different application of the conversion to + undirected graphs new instances are returned, especially for the undirected + graph. + In contrast, the new directed TokenGraph contains an undirected version without + rescaling of the weights. Therefore, this undirected version differs from the version + returned by this method. + + Returns + ------- + tuple[TokenGraph, Graph] + directed and undirected instances + """ + token_graph = rescale_edge_weights(self.directed) + token_graph.rescaled_weights = True + token_graph.to_undirected(inplace=True, logging=False) + token_graph.update_metadata(logging=False) + undirected = rescale_edge_weights(self.undirected) + + return token_graph, undirected + def _save_prepare( self, path: Path, @@ -508,9 +606,10 @@ class TokenGraph(DiGraph): else: raise ValueError('No undirected graph available.') - saving_path = saving_path.with_suffix('.graphml') - nx.write_graphml(G=target_graph, path=saving_path) - logger.info('Successfully saved graph as GraphML file under %s.', saving_path) + save_to_GraphML(graph=target_graph, saving_path=saving_path) + # saving_path = saving_path.with_suffix('.graphml') + # nx.write_graphml(G=target_graph, path=saving_path) + # logger.info('Successfully saved graph as GraphML file under %s.', saving_path) def to_pickle( self, diff --git a/src/lang_main/constants.py b/src/lang_main/constants.py index 348bb46..f15dd4f 100644 --- a/src/lang_main/constants.py +++ b/src/lang_main/constants.py @@ -24,13 +24,10 @@ PATH_TO_DATASET: Final[Path] = path_dataset_conf.resolve() # if not PATH_TO_DATASET.exists(): # raise FileNotFoundError(f'Dataset path >>{PATH_TO_DATASET}<< does not exist.') # ** control -# DO_PREPROCESSING: Final[bool] = CONFIG['control']['preprocessing'] SKIP_PREPROCESSING: Final[bool] = CONFIG['control']['preprocessing_skip'] -# DO_TOKEN_ANALYSIS: Final[bool] = CONFIG['control']['token_analysis'] SKIP_TOKEN_ANALYSIS: Final[bool] = CONFIG['control']['token_analysis_skip'] -# DO_GRAPH_POSTPROCESSING: Final[bool] = CONFIG['control']['graph_postprocessing'] SKIP_GRAPH_POSTPROCESSING: Final[bool] = CONFIG['control']['graph_postprocessing_skip'] -# DO_TIME_ANALYSIS: Final[bool] = CONFIG['control']['time_analysis'] +SKIP_GRAPH_RESCALING: Final[bool] = CONFIG['control']['graph_rescaling_skip'] SKIP_TIME_ANALYSIS: Final[bool] = CONFIG['control']['time_analysis_skip'] # ** models diff --git a/src/lang_main/cytoscape_config/styles_template.xml b/src/lang_main/cytoscape_config/styles_template.xml new file mode 100644 index 0000000..a2090a9 --- /dev/null +++ b/src/lang_main/cytoscape_config/styles_template.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lang_main/cytoscape_config/template_test.cys b/src/lang_main/cytoscape_config/template_test.cys new file mode 100644 index 0000000..e5e3b15 Binary files /dev/null and b/src/lang_main/cytoscape_config/template_test.cys differ diff --git a/src/lang_main/errors.py b/src/lang_main/errors.py new file mode 100644 index 0000000..ada6563 --- /dev/null +++ b/src/lang_main/errors.py @@ -0,0 +1,2 @@ +class EdgePropertyNotContainedError(Exception): + """Error raised if a needed edge property is not contained in graph edges""" diff --git a/src/lang_main/io.py b/src/lang_main/io.py index ca8933d..3ad9b0a 100644 --- a/src/lang_main/io.py +++ b/src/lang_main/io.py @@ -1,5 +1,5 @@ -import pickle import base64 +import pickle import shutil import tomllib from pathlib import Path diff --git a/src/lang_main/lang_main_config.toml b/src/lang_main/lang_main_config.toml index ef7dbbc..fbd99b0 100644 --- a/src/lang_main/lang_main_config.toml +++ b/src/lang_main/lang_main_config.toml @@ -2,8 +2,8 @@ [paths] inputs = './inputs/' -results = './results/test_new2/' -dataset = './01_2_Rohdaten_neu/Export4.csv' +results = './results/test_20240619/' +dataset = '../data/02_202307/Export4.csv' #results = './results/Export7/' #dataset = './01_03_Rohdaten_202403/Export7_59499_Zeilen.csv' #results = './results/Export7_trunc/' @@ -12,10 +12,11 @@ dataset = './01_2_Rohdaten_neu/Export4.csv' # only debugging features, production-ready pipelines should always # be fully executed [control] -preprocessing_skip = false +preprocessing_skip = true token_analysis_skip = false graph_postprocessing_skip = false -time_analysis_skip = false +graph_rescaling_skip = false +time_analysis_skip = true #[export_filenames] #filename_cossim_filter_candidates = 'CosSim-FilterCandidates' diff --git a/src/lang_main/lang_main_config_old.toml b/src/lang_main/lang_main_config_old.toml new file mode 100644 index 0000000..ef7dbbc --- /dev/null +++ b/src/lang_main/lang_main_config_old.toml @@ -0,0 +1,57 @@ +# lang_main: Config file + +[paths] +inputs = './inputs/' +results = './results/test_new2/' +dataset = './01_2_Rohdaten_neu/Export4.csv' +#results = './results/Export7/' +#dataset = './01_03_Rohdaten_202403/Export7_59499_Zeilen.csv' +#results = './results/Export7_trunc/' +#dataset = './01_03_Rohdaten_202403/Export7_trunc.csv' + +# only debugging features, production-ready pipelines should always +# be fully executed +[control] +preprocessing_skip = false +token_analysis_skip = false +graph_postprocessing_skip = false +time_analysis_skip = false + +#[export_filenames] +#filename_cossim_filter_candidates = 'CosSim-FilterCandidates' + +[preprocess] +filename_cossim_filter_candidates = 'CosSim-FilterCandidates' +date_cols = [ + "VorgangsDatum", + "ErledigungsDatum", + "Arbeitsbeginn", + "ErstellungsDatum", +] +threshold_amount_characters = 5 +threshold_similarity = 0.8 + +[graph_postprocessing] +threshold_edge_weight = 150 + +[time_analysis.uniqueness] +threshold_unique_texts = 4 +criterion_feature = 'HObjektText' +feature_name_obj_id = 'ObjektID' + +[time_analysis.model_input] +# input_features = [ +# 'VorgangsTypName', +# 'VorgangsArtText', +# 'VorgangsBeschreibung', +# ] +input_features = [ + 'VorgangsBeschreibung', +] +activity_feature = 'VorgangsTypName' +activity_types = [ + 'Reparaturauftrag (Portal)', + 'Störungsmeldung', +] +threshold_num_acitivities = 1 +threshold_similarity = 0.8 \ No newline at end of file diff --git a/src/lang_main/pipelines/predefined.py b/src/lang_main/pipelines/predefined.py index a130532..86ec4e8 100644 --- a/src/lang_main/pipelines/predefined.py +++ b/src/lang_main/pipelines/predefined.py @@ -163,6 +163,17 @@ def build_tk_graph_post_pipe() -> Pipeline: return pipe_graph_postprocessing +def build_tk_graph_rescaling() -> Pipeline: + pipe_graph_rescaling = Pipeline(name='Graph_Rescaling', working_dir=SAVE_PATH_FOLDER) + pipe_graph_rescaling.add( + graphs.apply_rescaling_to_graph, + save_result=True, + filename=EntryPoints.TK_GRAPH_ANALYSIS_RESCALED, + ) + + return pipe_graph_rescaling + + # ** timeline analysis def build_timeline_pipe() -> Pipeline: pipe_timeline = Pipeline(name='Timeline_Analysis', working_dir=SAVE_PATH_FOLDER) diff --git a/src/lang_main/types.py b/src/lang_main/types.py index baf2dc1..69130b0 100644 --- a/src/lang_main/types.py +++ b/src/lang_main/types.py @@ -30,6 +30,7 @@ class EntryPoints(enum.StrEnum): TIMELINE_POST = 'TIMELINE_POSTPROCESSING' TK_GRAPH_POST = 'TK-GRAPH_POSTPROCESSING' TK_GRAPH_ANALYSIS = 'TK-GRAPH_ANALYSIS' + TK_GRAPH_ANALYSIS_RESCALED = 'TK-GRAPH_ANALYSIS_RESCALED' TOKEN_ANALYSIS = 'TOKEN_ANALYSIS' diff --git a/test-notebooks/image.png b/test-notebooks/image.png index 49903f3..9bb2abf 100644 Binary files a/test-notebooks/image.png and b/test-notebooks/image.png differ diff --git a/test-notebooks/lang_main_config.toml b/test-notebooks/lang_main_config.toml index c694e25..fbd99b0 100644 --- a/test-notebooks/lang_main_config.toml +++ b/test-notebooks/lang_main_config.toml @@ -2,22 +2,21 @@ [paths] inputs = './inputs/' -results = './results/test_new2/' -dataset = './01_2_Rohdaten_neu/Export4.csv' +results = './results/test_20240619/' +dataset = '../data/02_202307/Export4.csv' #results = './results/Export7/' #dataset = './01_03_Rohdaten_202403/Export7_59499_Zeilen.csv' #results = './results/Export7_trunc/' #dataset = './01_03_Rohdaten_202403/Export7_trunc.csv' +# only debugging features, production-ready pipelines should always +# be fully executed [control] -preprocessing = true -preprocessing_skip = false -token_analysis = false +preprocessing_skip = true token_analysis_skip = false -graph_postprocessing = false graph_postprocessing_skip = false -time_analysis = false -time_analysis_skip = false +graph_rescaling_skip = false +time_analysis_skip = true #[export_filenames] #filename_cossim_filter_candidates = 'CosSim-FilterCandidates' @@ -42,9 +41,12 @@ criterion_feature = 'HObjektText' feature_name_obj_id = 'ObjektID' [time_analysis.model_input] +# input_features = [ +# 'VorgangsTypName', +# 'VorgangsArtText', +# 'VorgangsBeschreibung', +# ] input_features = [ - 'VorgangsTypName', - 'VorgangsArtText', 'VorgangsBeschreibung', ] activity_feature = 'VorgangsTypName' diff --git a/test-notebooks/misc.ipynb b/test-notebooks/misc.ipynb index 42e6d70..5713d08 100644 --- a/test-notebooks/misc.ipynb +++ b/test-notebooks/misc.ipynb @@ -10,7 +10,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-07-03 14:30:30 +0000 | io:INFO | Loaded TOML config file successfully.\n" + "2024-07-10 11:42:23 +0000 | io:INFO | Loaded TOML config file successfully.\n" ] }, { @@ -32,13 +32,24 @@ ], "source": [ "from lang_main import io\n", - "from lang_main.analysis.graphs import rescale_edge_weights\n", + "from lang_main.analysis.graphs import rescale_edge_weights, get_graph_metadata\n", "\n", "from pathlib import Path\n", "import pickle\n", "import base64\n", + "import os\n", + "from logging import NullHandler\n", "\n", - "import numpy as np" + "import numpy as np\n", + "\n", + "import py4cytoscape as p4c\n", + "import py4cytoscape.py4cytoscape_logger_settings as p4c_logging\n", + "p4c.set_summary_logger(False)\n", + "#p4c_logging._SUMMARY_LOG_LEVEL = 'ERROR'\n", + "# p4c_logging._DETAIL_LOG_LEVEL = 'ERROR'\n", + "p4c.py4cytoscape_logger.detail_logger.setLevel('ERROR')\n", + "p4c.py4cytoscape_logger.detail_logger.removeHandler(p4c.py4cytoscape_logger.detail_handler)\n", + "p4c.py4cytoscape_logger.detail_logger.addHandler(NullHandler())" ] }, { @@ -67,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "c2421d89-ed8c-41dd-b363-ad5b5b716704", "metadata": {}, "outputs": [ @@ -75,7 +86,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-07-03 14:30:35 +0000 | io:INFO | Loaded file successfully.\n" + "2024-07-10 11:01:10 +0000 | io:INFO | Loaded file successfully.\n" ] } ], @@ -85,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "ca25a7f2-84af-4b5e-89d6-b139fca35617", "metadata": {}, "outputs": [], @@ -95,17 +106,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "ff7e7ab6-67d9-4a2c-b668-cf10740f7542", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "TokenGraph(name: TokenGraph, number of nodes: 143, number of edges: 163)" + "TokenGraph(name: TokenGraph, number of nodes: 158, number of edges: 192)" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -116,168 +127,27 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "f0df3580-cea5-48cc-bdbc-2927dd446e1b", + "execution_count": 19, + "id": "0d65a960-c17a-4710-9dc0-5ca0b6c16680", "metadata": {}, "outputs": [], "source": [ - "import networkx as nx\n", - "from alph import alph, layout\n", - "import altair as alt" - ] - }, - { - "cell_type": "markdown", - "id": "f042b302-fa3c-45b0-8d7a-7a68b66bf595", - "metadata": {}, - "source": [ - "layout_fn=lambda g: nx.spring_layout(\n", - " g,\n", - " weight=\"weight\",\n", - " k=20,\n", - " iterations=5000,\n", - " seed=42\n", - " ),\n", - "layout_fn=lambda g: layout.force_atlas_sknet(\n", - " g,\n", - " n_iter=1000,\n", - " gravity_factor=0.01,\n", - " repulsive_factor=0.1,\n", - " init_seed=42,\n", - " ),\n", - "layout_fn=lambda g: nx.nx_agraph.pygraphviz_layout(\n", - " g,\n", - " prog=\"fdp\",\n", - " args='-GK=5'\n", - " ),\n", - "layout_fn=lambda g: nx.nx_agraph.pygraphviz_layout(\n", - " g,\n", - " prog=\"sfdp\",\n", - " args='-GK=5 -Gbeautify=true -Goverlap=true'\n", - " ),\n", - "layout_fn=lambda g: nx.nx_agraph.pygraphviz_layout(\n", - " g,\n", - " prog=\"neato\",\n", - " args='-Goverlap=false'\n", - " )," + "tkg.rescaled_weights = False" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "04d3d857-37cb-420e-8426-b1465d94efae", - "metadata": {}, - "outputs": [], - "source": [ - "alph_params = dict(\n", - " weight_attr=\"weight\",\n", - " layout_fn=lambda g: nx.nx_agraph.pygraphviz_layout(\n", - " g,\n", - " prog=\"sfdp\",\n", - " args='-GK=5 -Gbeautify=true -Goverlap=true'\n", - " ),\n", - " node_args=dict(\n", - " size=alt.Size(\n", - " \"degree_centrality\",\n", - " scale=alt.Scale(domain=[0,1], range=[12**2, 40**2]),\n", - " legend=None\n", - " ),\n", - " #fill=alt.Color(\n", - " # \"degree_centrality\",\n", - " # scale=alt.Scale(domain=companies, range=palette),\n", - " #),\n", - " stroke=\"#333\",\n", - " strokeWidth=alt.Size(\n", - " \"degree_centrality\",\n", - " scale=alt.Scale(domain=[0,1], range=[2, 5]),\n", - " legend=None\n", - " ),\n", - " tooltip_attrs=[\"id\"],\n", - " label_attr=\"id\",\n", - " ),\n", - " edge_args=dict(\n", - " color=\"#000\",\n", - " ),\n", - " width=800,\n", - " height=600,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "ae68d7d6-9e95-4a99-ac41-98a294afcca2", - "metadata": {}, - "outputs": [], - "source": [ - "tkg = Gtest.copy()" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "id": "64e6a5c1-e42d-4ad2-8c32-5cf62bc75852", - "metadata": {}, - "outputs": [], - "source": [ - "nx.set_node_attributes(tkg, {\n", - " n: {\n", - " \"id\": n,\n", - " } for n in tkg.nodes\n", - "})" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "id": "7e895f70-74a2-433c-91c2-a440303ab81a", - "metadata": {}, - "outputs": [], - "source": [ - "nx.set_node_attributes(tkg, nx.degree_centrality(tkg), \"degree_centrality\")" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "id": "a13cc710-01d8-4f52-b066-3796b4609118", - "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "decoding to str: need a bytes-like object, NoneType found", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[107], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43malph\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtkg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43malph_params\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mconfigure_view(strokeWidth\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m)\n", - "File \u001b[1;32mA:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\alph\\core.py:195\u001b[0m, in \u001b[0;36malph\u001b[1;34m(G, weight_attr, layout_fn, node_args, edge_args, combo_group_by, combo_node_additional_attrs, combo_layout_fn, combo_node_args, combo_edge_args, combo_empty_attr_action, combo_size_scale_domain, combo_size_scale_range, combo_inner_graph_scale_factor, combo_edge_weight_agg_attr, combo_edge_agg_attrs, combo_edge_weight_threshold, include_edgeless_combo_nodes, non_serializable_datetime_format, width, height, prop_kwargs, padding, nodes_layer_params)\u001b[0m\n\u001b[0;32m 193\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 194\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m layout_fn:\n\u001b[1;32m--> 195\u001b[0m pos \u001b[38;5;241m=\u001b[39m \u001b[43mlayout_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mG\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 196\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 197\u001b[0m pos \u001b[38;5;241m=\u001b[39m layout\u001b[38;5;241m.\u001b[39mdefault_network_layout(G, weight_attr\u001b[38;5;241m=\u001b[39mweight_attr)\n", - "Cell \u001b[1;32mIn[66], line 3\u001b[0m, in \u001b[0;36m\u001b[1;34m(g)\u001b[0m\n\u001b[0;32m 1\u001b[0m alph_params \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m(\n\u001b[0;32m 2\u001b[0m weight_attr\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mweight\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m----> 3\u001b[0m layout_fn\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m g: \u001b[43mnx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnx_agraph\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpygraphviz_layout\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mg\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mprog\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43msfdp\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m-GK=5 -Gbeautify=true -Goverlap=true\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\n\u001b[0;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m,\n\u001b[0;32m 8\u001b[0m node_args\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mdict\u001b[39m(\n\u001b[0;32m 9\u001b[0m size\u001b[38;5;241m=\u001b[39malt\u001b[38;5;241m.\u001b[39mSize(\n\u001b[0;32m 10\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdegree_centrality\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 11\u001b[0m scale\u001b[38;5;241m=\u001b[39malt\u001b[38;5;241m.\u001b[39mScale(domain\u001b[38;5;241m=\u001b[39m[\u001b[38;5;241m0\u001b[39m,\u001b[38;5;241m1\u001b[39m], \u001b[38;5;28mrange\u001b[39m\u001b[38;5;241m=\u001b[39m[\u001b[38;5;241m12\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m40\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m]),\n\u001b[0;32m 12\u001b[0m legend\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 13\u001b[0m ),\n\u001b[0;32m 14\u001b[0m \u001b[38;5;66;03m#fill=alt.Color(\u001b[39;00m\n\u001b[0;32m 15\u001b[0m \u001b[38;5;66;03m# \"degree_centrality\",\u001b[39;00m\n\u001b[0;32m 16\u001b[0m \u001b[38;5;66;03m# scale=alt.Scale(domain=companies, range=palette),\u001b[39;00m\n\u001b[0;32m 17\u001b[0m \u001b[38;5;66;03m#),\u001b[39;00m\n\u001b[0;32m 18\u001b[0m stroke\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m#333\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 19\u001b[0m strokeWidth\u001b[38;5;241m=\u001b[39malt\u001b[38;5;241m.\u001b[39mSize(\n\u001b[0;32m 20\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdegree_centrality\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 21\u001b[0m scale\u001b[38;5;241m=\u001b[39malt\u001b[38;5;241m.\u001b[39mScale(domain\u001b[38;5;241m=\u001b[39m[\u001b[38;5;241m0\u001b[39m,\u001b[38;5;241m1\u001b[39m], \u001b[38;5;28mrange\u001b[39m\u001b[38;5;241m=\u001b[39m[\u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m5\u001b[39m]),\n\u001b[0;32m 22\u001b[0m legend\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 23\u001b[0m ),\n\u001b[0;32m 24\u001b[0m tooltip_attrs\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m\"\u001b[39m],\n\u001b[0;32m 25\u001b[0m label_attr\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 26\u001b[0m ),\n\u001b[0;32m 27\u001b[0m edge_args\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mdict\u001b[39m(\n\u001b[0;32m 28\u001b[0m color\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m#000\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 29\u001b[0m ),\n\u001b[0;32m 30\u001b[0m width\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m800\u001b[39m,\n\u001b[0;32m 31\u001b[0m height\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m600\u001b[39m,\n\u001b[0;32m 32\u001b[0m )\n", - "File \u001b[1;32mA:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\networkx\\drawing\\nx_agraph.py:307\u001b[0m, in \u001b[0;36mpygraphviz_layout\u001b[1;34m(G, prog, root, args)\u001b[0m\n\u001b[0;32m 305\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m root \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 306\u001b[0m args \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m-Groot=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mroot\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m--> 307\u001b[0m A \u001b[38;5;241m=\u001b[39m \u001b[43mto_agraph\u001b[49m\u001b[43m(\u001b[49m\u001b[43mG\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 308\u001b[0m A\u001b[38;5;241m.\u001b[39mlayout(prog\u001b[38;5;241m=\u001b[39mprog, args\u001b[38;5;241m=\u001b[39margs)\n\u001b[0;32m 309\u001b[0m node_pos \u001b[38;5;241m=\u001b[39m {}\n", - "File \u001b[1;32mA:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\networkx\\drawing\\nx_agraph.py:159\u001b[0m, in \u001b[0;36mto_agraph\u001b[1;34m(N)\u001b[0m\n\u001b[0;32m 157\u001b[0m \u001b[38;5;66;03m# add nodes\u001b[39;00m\n\u001b[0;32m 158\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m n, nodedata \u001b[38;5;129;01min\u001b[39;00m N\u001b[38;5;241m.\u001b[39mnodes(data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[1;32m--> 159\u001b[0m \u001b[43mA\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43madd_node\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 160\u001b[0m \u001b[38;5;66;03m# Add node data\u001b[39;00m\n\u001b[0;32m 161\u001b[0m a \u001b[38;5;241m=\u001b[39m A\u001b[38;5;241m.\u001b[39mget_node(n)\n", - "File \u001b[1;32mA:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\pygraphviz\\agraph.py:338\u001b[0m, in \u001b[0;36mAGraph.add_node\u001b[1;34m(self, n, **attr)\u001b[0m\n\u001b[0;32m 336\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[0;32m 337\u001b[0m nh \u001b[38;5;241m=\u001b[39m gv\u001b[38;5;241m.\u001b[39magnode(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle, n, _Action\u001b[38;5;241m.\u001b[39mcreate)\n\u001b[1;32m--> 338\u001b[0m node \u001b[38;5;241m=\u001b[39m \u001b[43mNode\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnh\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnh\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 339\u001b[0m node\u001b[38;5;241m.\u001b[39mattr\u001b[38;5;241m.\u001b[39mupdate(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mattr)\n", - "File \u001b[1;32mA:\\Arbeitsaufgaben\\lang-main\\.venv\\Lib\\site-packages\\pygraphviz\\agraph.py:1861\u001b[0m, in \u001b[0;36mNode.__new__\u001b[1;34m(self, graph, name, nh)\u001b[0m\n\u001b[0;32m 1859\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__new__\u001b[39m(\u001b[38;5;28mself\u001b[39m, graph, name\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, nh\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 1860\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m nh \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m-> 1861\u001b[0m n \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__new__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgv\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43magnameof\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnh\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgraph\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1862\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 1863\u001b[0m n \u001b[38;5;241m=\u001b[39m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__new__\u001b[39m(\u001b[38;5;28mself\u001b[39m, name)\n", - "\u001b[1;31mTypeError\u001b[0m: decoding to str: need a bytes-like object, NoneType found" - ] - } - ], - "source": [ - "alph(tkg, **alph_params).configure_view(strokeWidth=0)" - ] - }, - { - "cell_type": "code", - "execution_count": 65, + "execution_count": 20, "id": "842e01fa-29cd-4028-9461-c7af24e01c33", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'id': 'Wartungstätigkeit', 'degree_centrality': 0.04225352112676056}" + "{}" ] }, - "execution_count": 65, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -294,26 +164,9 @@ "outputs": [], "source": [] }, - { - "cell_type": "markdown", - "id": "14efa0e8-0937-44da-a76c-160829a7e9bf", - "metadata": {}, - "source": [ - "**additional info:**\n", - "- overlap removal for sfdp Graphviz algorithm not available because of missing triangulation library (only available on Linux)" - ] - }, { "cell_type": "code", - "execution_count": null, - "id": "bfc0f3a7-8865-4b44-bd9c-2c3f4ff9e70e", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 8, + "execution_count": 21, "id": "1e61aca3-efea-4e38-8174-5ca4b2585256", "metadata": {}, "outputs": [], @@ -326,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 22, "id": "5d83c04c-03ab-4086-a4e9-ae430e4c6090", "metadata": {}, "outputs": [ @@ -334,7 +187,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-07-03 14:30:35 +0000 | io:INFO | Loaded file successfully.\n" + "2024-07-10 08:16:41 +0000 | io:INFO | Loaded file successfully.\n" ] } ], @@ -344,7 +197,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 23, "id": "4718b54e-0891-4f70-8c67-90c439bc8bfd", "metadata": {}, "outputs": [], @@ -354,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 24, "id": "ddcb4ff0-eac4-45ba-9c6e-83ada4b0276c", "metadata": {}, "outputs": [ @@ -364,7 +217,7 @@ "TokenGraph(name: TokenGraph, number of nodes: 6028, number of edges: 17950)" ] }, - "execution_count": 11, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -375,10 +228,111 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "97c46ca7-ca9f-4d11-8d86-cfbd819b7573", "metadata": {}, "outputs": [], + "source": [ + "tkg.rescaled_weights = False" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "b73844e0-4242-4a8c-b552-48f10df34cc0", + "metadata": {}, + "outputs": [], + "source": [ + "directed, undirected = tkg.rescale_edge_weights()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "593b9f87-4e9f-45e4-9367-55347924357b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'num_nodes': 6028,\n", + " 'num_edges': 17950,\n", + " 'min_edge_weight': 0.0952,\n", + " 'max_edge_weight': 1.0,\n", + " 'node_memory': 382321,\n", + " 'edge_memory': 1005200,\n", + " 'total_memory': 1387521}" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "directed.metadata_directed" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "aed4354a-69e4-4215-bd4b-a6c7c37c3ac5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'num_nodes': 6028,\n", + " 'num_edges': 17554,\n", + " 'min_edge_weight': 0.09520000219345093,\n", + " 'max_edge_weight': 1.7527999877929688,\n", + " 'node_memory': 382321,\n", + " 'edge_memory': 983024,\n", + " 'total_memory': 1365345}" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "directed.metadata_undirected" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "587de2ae-26ed-42f5-a8bd-104f9cbf1490", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'num_nodes': 6028,\n", + " 'num_edges': 17554,\n", + " 'min_edge_weight': 0.0952,\n", + " 'max_edge_weight': 1.0,\n", + " 'node_memory': 382321,\n", + " 'edge_memory': 983024,\n", + " 'total_memory': 1365345}" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_graph_metadata(undirected)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c2934c5-2e19-4a33-b7bf-262993e3fabc", + "metadata": {}, + "outputs": [], "source": [] }, { @@ -447,14 +401,15 @@ "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "2024-07-03 14:30:39 +0000 | graphs:INFO | Successfully converted graph to one with undirected edges.\n", - "2024-07-03 14:30:39 +0000 | graphs:INFO | Graph properties: 6028 Nodes, 17554 Edges\n", - "2024-07-03 14:30:39 +0000 | graphs:INFO | Node memory: 373.36 KB\n", - "2024-07-03 14:30:39 +0000 | graphs:INFO | Edge memory: 959.98 KB\n", - "2024-07-03 14:30:39 +0000 | graphs:INFO | Total memory: 1333.34 KB\n" + "ename": "AttributeError", + "evalue": "'TokenGraph' object has no attribute 'rescaled_weights'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[14], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mGtest\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_undirected\u001b[49m\u001b[43m(\u001b[49m\u001b[43minplace\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mA:\\Arbeitsaufgaben\\lang-main\\src\\lang_main\\analysis\\graphs.py:481\u001b[0m, in \u001b[0;36mTokenGraph.to_undirected\u001b[1;34m(self, inplace, logging)\u001b[0m\n\u001b[0;32m 479\u001b[0m \u001b[38;5;66;03m# cast to integer edge weights only if edges were not rescaled previously\u001b[39;00m\n\u001b[0;32m 480\u001b[0m cast_int: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m--> 481\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrescaled_weights\u001b[49m:\n\u001b[0;32m 482\u001b[0m cast_int \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m 484\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_undirected \u001b[38;5;241m=\u001b[39m convert_graph_to_undirected(\n\u001b[0;32m 485\u001b[0m graph\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 486\u001b[0m logging\u001b[38;5;241m=\u001b[39mlogging,\n\u001b[0;32m 487\u001b[0m cast_int\u001b[38;5;241m=\u001b[39mcast_int,\n\u001b[0;32m 488\u001b[0m )\n", + "\u001b[1;31mAttributeError\u001b[0m: 'TokenGraph' object has no attribute 'rescaled_weights'" ] } ], @@ -531,6 +486,53 @@ "Gtest.metadata_undirected" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "11b9a5b4-8319-44e8-b0eb-0434f952a28e", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "c63770ed-5748-4484-816f-22d0e327af73", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'weight' not in Gtest['Wartungstätigkeit']['Vorgabe']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62e5d9f4-69c8-4990-9a64-6e2f40031d6f", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ca7c4578-c9bb-4b0b-b261-e0208d6cb970", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 17, @@ -581,6 +583,10 @@ "execution_count": 22, "id": "abf5603d-dab9-49a0-8c86-d2429a36d24d", "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + }, "scrolled": true }, "outputs": [ @@ -755,18 +761,94 @@ }, { "cell_type": "markdown", - "id": "c8cba3d9-0145-4b37-9ebf-07f0e3c61815", + "id": "55665c2f-9a86-47f4-9125-557666e1f541", "metadata": {}, "source": [ "---\n", "\n", - "# Py4Cytoscape" + "# Load re-scaled Token Graph" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "fcd9247f-c4f9-4f73-9fd3-2ab56700073f", + "execution_count": 3, + "id": "2a3be1eb-b289-46ab-8d70-53110ad2806c", + "metadata": {}, + "outputs": [], + "source": [ + "#obj = 'TK-GRAPH_POSTPROCESSING.pkl'\n", + "obj = 'TK-GRAPH_ANALYSIS_RESCALED.pkl'\n", + "load_pth = res_path / obj\n", + "assert load_pth.exists()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "64d8ba18-b1e2-470d-8bf5-9dd7cfec31de", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-07-10 11:42:39 +0000 | io:INFO | Loaded file successfully.\n" + ] + } + ], + "source": [ + "ret = io.load_pickle(load_pth)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "d80522a0-c13a-42d3-af9d-8e10914c7831", + "metadata": {}, + "outputs": [], + "source": [ + "tk_resc = ret[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4a19d096-27f8-4626-97ee-31c0f84a294f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'num_nodes': 158,\n", + " 'num_edges': 189,\n", + " 'min_edge_weight': 0.0952,\n", + " 'max_edge_weight': 1.0,\n", + " 'node_memory': 9908,\n", + " 'edge_memory': 10584,\n", + " 'total_memory': 20492}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_graph_metadata(tk_resc)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2272d230-6fe0-4ade-9a09-9f4277d9b58c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "781d2906-f2cb-447a-b8b9-c82d9ae7e29f", "metadata": {}, "outputs": [ { @@ -776,6 +858,268 @@ "You are connected to Cytoscape!\n" ] }, + { + "data": { + "text/plain": [ + "'You are connected to Cytoscape!'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#import py4cytoscape as p4c\n", + "p4c.cytoscape_ping()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "28b25e27-ed77-4c23-84d5-e3dec004e4fe", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Applying default style...\n", + "Applying preferred layout\n" + ] + }, + { + "data": { + "text/plain": [ + "17998" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.create_network_from_networkx(tk_resc, title='test', collection='lang_main')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "697647da-3b8b-4029-bec9-af2e2bb6984a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Attribute Grid Layout': 'attribute-grid',\n", + " 'Degree Sorted Circle Layout': 'degree-circle',\n", + " 'Group Attributes Layout': 'attributes-layout',\n", + " 'Edge-weighted Spring Embedded Layout': 'kamada-kawai',\n", + " 'Prefuse Force Directed Layout': 'force-directed',\n", + " 'Compound Spring Embedder (CoSE)': 'cose',\n", + " 'Hierarchical Layout': 'hierarchical',\n", + " 'Attribute Circle Layout': 'attribute-circle',\n", + " 'Stacked Node Layout': 'stacked-node-layout',\n", + " 'Circular Layout': 'circular',\n", + " 'Grid Layout': 'grid',\n", + " 'Edge-weighted Force directed (BioLayout)': 'fruchterman-rheingold',\n", + " 'Inverted Self-Organizing Map Layout': 'isom',\n", + " 'Prefuse Force Directed OpenCL Layout': 'force-directed-cl'}" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_layout_name_mapping()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "fa15c057-d453-4c7e-8af2-18220ea90651", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['numIterations',\n", + " 'defaultSpringCoefficient',\n", + " 'defaultSpringLength',\n", + " 'defaultNodeMass',\n", + " 'isDeterministic',\n", + " 'singlePartition']" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_layout_property_names('force-directed')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "6f48d9cc-f527-4b33-9477-60636a480371", + "metadata": {}, + "outputs": [], + "source": [ + "layout_props = {\n", + " 'numIterations': 1000,\n", + " 'defaultSpringCoefficient': 1e-4,\n", + " 'defaultSpringLength': 45,\n", + " 'defaultNodeMass': 12,\n", + " 'isDeterministic': True,\n", + " 'singlePartition': False,\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "d542b2ea-11d5-4802-b1b9-65e5e12f6d38", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.set_layout_properties('force-directed', layout_props)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "514e3f07-061e-4488-a770-02ef13b56dcd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'boolean'" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_layout_property_type('kamada-kawai', 'randomize')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c1069996-b638-4bfa-8ad4-f750a33022d6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{}" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.layout_network('force-directed', 'test')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "d972ff5a-e695-43b6-b8c5-ab295fd5de3d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.notebook_export_show_image()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b2209508-dd98-4d10-8efc-099e2cd0ab50", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3796359f-3112-4bbf-ae76-e52b3602c9f0", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "c8cba3d9-0145-4b37-9ebf-07f0e3c61815", + "metadata": {}, + "source": [ + "---\n", + "\n", + "# Py4Cytoscape" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "fcd9247f-c4f9-4f73-9fd3-2ab56700073f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Calling cytoscape_ping()\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀCalling cytoscape_version_info(base_url='http://127.0.0.1:1234/v1')\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀCalling cyrest_get('version', base_url='http://127.0.0.1:1234/v1')\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀHTTP GET(http://127.0.0.1:1234/v1/version)\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀOK[200], content: {\"apiVersion\":\"v1\",\"cytoscapeVersion\":\"3.10.2\"}\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀǀReturning 'cyrest_get': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2'}\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀReturning 'cytoscape_version_info': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2', 'automationAPIVersion': '1.9.0', 'py4cytoscapeVersion': '1.9.0'}\n", + "You are connected to Cytoscape!\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Returning 'cytoscape_ping': 'You are connected to Cytoscape!'\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | --------------------\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Calling cytoscape_version_info()\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀCalling cyrest_get('version', base_url='http://127.0.0.1:1234/v1')\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀHTTP GET(http://127.0.0.1:1234/v1/version)\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀOK[200], content: {\"apiVersion\":\"v1\",\"cytoscapeVersion\":\"3.10.2\"}\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | ǀReturning 'cyrest_get': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2'}\n", + "2024-07-10 11:19:15 +0000 | py4cytoscape_logger:DEBUG | Returning 'cytoscape_version_info': {'apiVersion': 'v1', 'cytoscapeVersion': '3.10.2', 'automationAPIVersion': '1.9.0', 'py4cytoscapeVersion': '1.9.0'}\n", + "2024-07-10 11:19:16 +0000 | py4cytoscape_logger:DEBUG | --------------------\n" + ] + }, { "data": { "text/plain": [ @@ -785,21 +1129,21 @@ " 'py4cytoscapeVersion': '1.9.0'}" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import py4cytoscape as p4c\n", - "dir(py4)\n", - "py4.cytoscape_ping()\n", - "py4.cytoscape_version_info()" + "dir(p4c)\n", + "p4c.cytoscape_ping()\n", + "p4c.cytoscape_version_info()" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 5, "id": "b9290659-e33c-47fc-8d89-7aa3dd6e843a", "metadata": {}, "outputs": [], @@ -811,7 +1155,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 6, "id": "979d6def-83ac-47f6-ac6f-0d20ddf48d48", "metadata": {}, "outputs": [ @@ -878,7 +1222,7 @@ "3 node 3 B 5" ] }, - "execution_count": 21, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -889,7 +1233,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 7, "id": "81702429-5735-48de-96a4-1f32c7c7d68c", "metadata": {}, "outputs": [ @@ -961,7 +1305,7 @@ "3 node 2 node 3 interacts 9.9" ] }, - "execution_count": 22, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -972,7 +1316,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 8, "id": "6b29d561-fffd-4a5b-91c1-8fb6a075ae4f", "metadata": {}, "outputs": [ @@ -987,10 +1331,10 @@ { "data": { "text/plain": [ - "344" + "128" ] }, - "execution_count": 23, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -1001,18 +1345,18 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 10, "id": "2e6878db-40c0-4ae6-89d6-9b1a5e50baaf", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFwCAYAAADQcmZ5AAAuZUlEQVR4Xu3dB5gdZb0/cAm9CQgC0hQLzUu/Coqo9woXwUYXsQBSREQQrkhvkgIYCCV0AhjlDwgE6UFA6pUOhtBUpIsiXUhCEsL75zfcOXczs9nsJvvuOWf383me7wM778w5u+EkmS8z877vSwAAABm8r7oBAACgNygbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZzHbZmDD1nfTaZJGe5fV3AwBA/zZLZePRV99Olz7xVjruwQnpmD+KzHp+/ZdJ6e5/TkmTp1U/ZQAAtLselY0XJ01L5/1pUu2EUWR2M/KhielPr71d/cgBANDGul02nnrj7TTiwYm1k0SR3swdL0ypfvQAAGhT3SobL701LZ0wXtGQvsnDr0ytfgQBAGhD3Sob5//FrVPSd4liO3GqB8gBANrdTMvGE/96u3YyKJI7Nz/vdioAgHY307Jx9TOTayeCIrlz2iMTqx9FAADazEzLxumPeFZDmpNXrcUBANDWZlo2ho+rnwSK9EWeedPiGwAA7azLshELrVVPAEX6Kn953bobAADtbCZl453aCaBIX0XZAABob8qGtGyUDQCA9qZsSMtG2QAAaG/KhrRslA0AgPambEjLRtkAAGhvyoa0bJQNAID2pmxIy0bZAABob8qGtGyUDQCA9qZsSMtG2QAAaG/KhrRslA0AgPambEjLRtkAAGhvyoa0bJQNAID2pmxIy0bZAABob8qGtGyUDQCA9qZsSMtG2QAAaG/KhrRslI2+8cLEaemW56ekc/80KY18aGLtv4PIzHLi+Inp7McmpbHPTk5Pv+H3LQD/R9mQlo2ykdebU99Jlz/1Vu3XXWR2c/5fJqUXJ02rfuQAGICUDWnZKBv5/PPdE8FTH3YVQ/JlxIMT0+N+DwMMeMpGxuwx+vfpB2ePTYfd9HRtLFeOfuDNtO+l96bvj7ws/fC8G9IRt/6ttk+7RNnI440p76RTFA3pgxz34IT0/ARXOAAGMmUjYxZZcpn0vve9L33nF7+ujeXId4+/IH1guRWL9ywz59zzpLU23TYd+vunavu3epSNPC55wq1T0nc545GJ6e13qp9CAAYKZSNj+rJsbH3EaY2CseSKK6f1tt65KBnzL7xIsW3RpZdPh974ZO24Vo6y0fuefXNa7ddZJHfue3Fq9aMIwAChbGRMX5WNQ254Is093wLFe6231ffTsPte7zD217T48h8txtb+yna1Y1s5ykbvu/aZybVfZ5HcGf3nSdWPIgADhLKRMX1VNjbd+6jifRZeYqk05O5XauPfHHx245aqYff/qzbeqlE2et9pj3hWQ5qTSe6lAhiQ+k3ZiAehfzT6pvTT3/6x+HrIXS8XzzBsutfP02b7DEm7nnH1TE+0j7z97+k7w88vjvnyj49M2x99Xjr8lmdr+1VzwDWPpG2OPD1tsufhadujzkxH3PZ8sX1mZWPwnS+mHU+8uPj+NtnziP99v+dq+80sO5xwUVr3a99OG+9+cG0sEr8u5S1W7fTshrLRu9797ZyOHVf/dRbpi8R6LgAMPP2mbHxvxIXFyfQqG365KBbxf/nLE+wyS310lbTf5e+VkY45+v43inIxzwIL1Y6Za9750pd23b/Yp3rc0HtfK25bGjRozumOmW+h9xcFo6uyEeVkgUU+UHu/uB0qyk51/9nJFgefWLz2/O9ftJitqjreqlE2eteEqe3z+1n6X56y2B/AgNTvysbiy3+sOGGPE+vPbLtbcdVgna9+q1EIonBUi0MUhvJkf9UvbFacnG912ClpjY23THPMMUexPR62rr7n6httXowNmnOutP42u6Rtfn5GcYUiHsaObXHbUmdl4yv7Dmu83yqf2yRteejJadujzkqf2mKH4rjYvuF396q936xkt7OuTQsuunjxmnHlpTreylE2epeyIc3MU//y+xlgIOp3ZSOy3Grr1Na2KJ9biMT6F+X2nUaOaWzf6rCRtdf99rGjG4VjuyGjGtu/f8pvi21zDBqUdj718umOiVu6lv74ao3X7Vg29h1zX6NQdHYFY5czripeM8Z3H3Vdbbw7+clv7ioK1odWWr3xPX7+e3u11VWNiLLRu5QNaWaUDYCBqV+Wjd3OvKY2Hs9rlLdJxRWIcvtKn92o2Lbq5zetHVNm7c2+WeyzzCprNratvvEWxbY1N9m6tn/kB6PGdlo24gpIbFt2tbVnePJfvl+8R3WsOylvmyoTV3n+c5efFc+kVPdt5SgbvUvZkGZG2QAYmPpd2Yj/i9/ZjEyRJVb4eLHPFgedUHwdU8SWU8Z+a9i5tf3LxGrcxWvPMUdjRe44gY9t2w09p7Z/JIpEeftSx7IRt3nFtngOpHpMmXjIPPaJZzqqY91JPJcSq4jHP+MWrYUWX7J4vQ+t9G9ttaK4stG7lA1pZpQNgIGp35WNWMSuOlZmqY+tWuzzjQOOK76O9SnK//u/94V/qO1fZv+rH27sF7coHfWHFxpfx0xP1f3LfGStz0xXNqKAlLdIRZFY7EMrdJqyHETivaqv29P87MoH03wLLly83hd23Kc23qpRNnqXsiHNjLIBMDD1u7LR1dWAatn42ZXjGyf15ZS5naVjKYlycfD1j3coH3fW9i+z8gYbT1c2OpaUOeeaO801z7wzTSzKV33dWcmG3/lx8b6xwF91rFWjbPQuZUOaGWUDYGAa0GUjHiIvT/73/PUttf3L/Pdl9zf2i38fes+rja+7eoh7xXU2mK5sdLyyEWtjVPefncQtYTO6fSyy9RGnNUpOdaxVo2z0LmVDmhllA2BgGtBlI07+y7Uu4qHq6v5l4rmM2CdmkYqF+GJb3O4U276+//Da/uVrL7jYEtOVjcgHP/KJYltXz2wcdvMzxZWWwXe9VBvrLFFq4nvrbHarMuUq4139+rRalI3epWxIM6NsAAxMA7psRGL9jNgW0+VW198o89F1Nyz2iX+W2zbYfo9i24xmlYrpcGO8WjbK4xZZatlGcamm/J5iTZDqWGfpuH9nP0PMxFVOgxtrg1THWzVDz74g/eIXv0gnnXRSGjVqVLrooovStddem+6666705JNPpgkTJlQ/snRB2ZBmRtkAGJgGfNmIB8PLdS8+u93uxarg5VicpH9xp32LsZiJKlYmL8fiofFyJqtYgK/jSf7+Vz2UFlvmw52WjRibe975i+2xgGD1AfCtDz+1sa7HloecNN3YjPKjX93cOOYLO/yk+L7LsbjlKxYLjLFY2HCv/3d77fhWTZSNwYMHd5khQ4akYcOGpeHDh6dTTjklnXfeeenSSy9NN9xwQ3rggQfSs88+W/1YD1jKhjQzygbAwDTgy0Zk8wOPb5ysR0n49JY7pvW23rkxVW6Mxcrg1deLKWrLZzCWXHHlYsXyWHcjSsi8Cy7UKBzVFcRjmt2y4MT0uOt+bfu0/ra7puU+uW6joMTVis6umMwoG//wkMaxH1xxpeL7j5XRYzXz4md49/uMaXCrx7VyulM2upsoJcccc0waMWJEOv3009OvfvWrdOWVV6bbbrstPfzww+mf//xn9ePf7ygb0swoGwADk7Lxv4kVwZdZeY3GCXuZKAA7nXxpbf/GcSMvm2618EispfHD825o3H5VLRuR3c/5XfrwmuvX3m+BRRZLG+1+UPHAd/WYmSWeLSmfJemYWIyw41WZdklvlo3uJkpJ3Lp14oknprPPPjtdeOGF6Zprrilu3XriiSfSG2+8Uf1t0jaUDWlm+mPZeHXyO+neF6em3z07OY158q10weMi3c9v3/3MXP/c5PTAS1PTG1PeqX68oN/oN2Wjt3Lg2MfSbmddW8wyddB1f66Nd5a4ArHfFeOKE/q9L7qjR1ckDr3xyaJ4xDMeMY3urJSMjon33ufiu9OOJ11SvOYB1zxS26dd8uvf/U9xBeLUU09Nxx9/fHFlIspAtSA0I0OHDm3cunXuueemSy65JF1//fXpvvvuK27dmjZtWvW3U9MpG9LM9Key8c9J09Jv/vpW7WcUmZ1c8dRbRYGF/kbZkJbNjGajihP5OKG/9957ixP8iy++OJ1zzjlp5MiRRQGIZziq5aAZiWJ09NFHF0UpClMUpyuuuCLdcsst6aGHHkr/+Mc/qj9aVsqGNDP9pWyMe3lqGj6u/vOJ9EZGPDhxhn/3QbtSNqRlM7t/4MYtT3HrU9wCddVVV6ULLrggnXXWWcXsVscee2zLXCWJ7yO+n7h168wzz0znn39+8f3G9/3444+n119/vfqjzRJlQ5qZ/lA2/vjS1NrPJdLbOfbdMvv4bP79B61E2ZCWzeyWje6Kh8PjIfF4WDyuPMQViNNOO614mDxu3YpbpqoFoRnpeOtWXMmJKzrXXXdduvvuu4srPVOnTq3+aNNRNqSZafey8Y+J01zRkD7LiPET0+tuqaKfUDakZdNXZaO74oQ+nsmIaXVjet14ViNO/Mtbt1rhSkl569Zxxx1XfG9RnC6//PJ08803p3sffLj2ayzSV2n3snHh457RkL7N1c9Mrn4MoS0pG9KyabWy0R2x0GAsOBi3QF199dXFrVsxq1XcIhWzXDWzkAz5xfG1X2ORvko7l42XJk2r/TwiufOLcRPSpLdd3aD9KRvSsmnHstFdL730Unr00UfT7bffXjyf0Re3bikbs5c9Rv8+/eDssemwm56ujeXMgWP/lHY+7Yq025nXpIN+95faeLukncvGnS9Mqf08In2Rh1/p+vZYaAfKhrRs+nPZ6K64dStWQr/xxhvTmDFj0i9/+cvpbt2qFoquomzMXhZZcpkZrpuTIwdc+2j6xPr/Od2aObHA6MobbFyMVfdv9bRz2YjbWao/j0hf5La/T6l+HKHtKBvSslE2umfSpEnp6aefLm7duvbaa4uFCEeNGpVOPvnkopSUt24pG7OXviwbh/7+qfSB5VYs3m/hJZZO6229c/r0ljumBRdbotj2/g9+qO2ucrRz2bjYmhrSpIx91nMbtD9lQ1o2ykbv+tuLr9R+jaX76cuyscZ/bVW81wqrfyod+T//aGw//JZn0zKrrFmMrb7R5rXjWjntXDYuVDakSfGQOP2BsiEtG2Wjd5n6dvbSV2VjvyvGpTkGDSrea++L7qiN73PJPcXtVJGfXTm+Nt6qUTZEeh5lg/5A2ZCWjbLRu9qpbBxx69/Sj0bflH762z8WXw+56+X03eMvSJvu9fO02T5D0q5nXJ2G3f+v2nEdc+Ttf0/fGX5+ccyXf3xk2v7o84orA9X9qjngmkfSNkeenjbZ8/C07VFnpiNue77YPrOyMfjOF9OOJ15cfH+b7HnE/77fc7X9Zpb4fuN9llxx5dpYmWVXXavYJ96rOtaqUTZEeh5lg/5A2ZCWjbLRu9qpbHxvxIXFyfQqG365KBYLL7HUdA9KR5b66Cppv8vfKyMdc/T9bxTlYp4FFqodM9e886Uv7bp/sU/1uKH3vpbW2+r7adCgOac7Zr6F3l8UjK7KRpSTBRb5QO395p5vgaI8VPfvKv/2pW8Ux35q8+/Vxsp8Ztvdin1W++JXamOtGmVDpOdRNugPlA1p2Sgbvasdy8biy3+sOGGf//2LFifY8X/y1/nqtxqFIApHtThEYShP9lf9wmZpi4NPTFsddkpaY+Mti1uPYvtam25be894BiLGBs05V1p/m13SNj8/o7hCsejSyxfb5px7nk7Lxlf2HdZ4v1U+t0na8tCT07ZHnZU+tcUOxXGxfcPv7lV7vxllmZXXKI6JKyvVsTKb/WTwez//x1atjbVqlA2RnkfZoD9QNqRlo2z0rnYsG5HlVluntrbFNwef3RiP9S/K7TuNHNPYvtVhI2uv++1jRzcKx3ZDRjW2f/+U3xbb4lmJnU+9fLpj4paupT++WuN1O5aNfcfc1ygUnV3B2OWMqxrPX+w+6rraeGcpr6BESaqOlYmfLfZZaPEla2OtGmVDpOdRNugPlA1p2Sgbvatdy0YsZlcdj+c1ytuk4gpEuX2lz25UbFv185vWjimz9mbfLPaJWZ3KbatvvEWxbc1Ntq7tH/nBqLGdlo24AhLbll1t7XT0A2/Wjuv4fvEe1bHOssAii9V+rmqiKMU+8y24cG2sVaNsiPQ8ygb9gbIhLRtlo3e1Y9mIqwJD7u58yt4lVvj4e1cADjqh+HrYfa8Xt1zFtm8NO7e2f5nvj7zsvdeeY47iqkVsi9u0Ytt2Q8+p7R+JIrHgoovXykbc5hXb4jmQ6jFl4iHz2Cee6aiOdZbyfeK46liZ8srO/AsvUhtr1SgbIj1Pb5WNt95+J7381rT09Btvi3Q7z7wxLb02+Z307sdntigb0rJRNnpXO5aNrk6m43mF2OcbBxxXfH3IDU8UX0f2vvAPtf3L7H/1w439fvKbu9JRf3ih8XXMgFXdv8xH1vrMdGUjCkh5i1QUicU+tEKniVudyteP96q+bjWLLfPhYt8tDzmpNlamvI0qHpyvjrVqlA2Rnmd2ysakd88Qb//HlHT2Y5NqryvSkxw7bkK64PG30riXp6Zps1A8uiwb8Xq/GFd/U5G+SDRqek87lo2urgZUy0asOVGe1JdT5naWjqUkysXB1z/eoXzcWdu/zMobbDxd2ehYUuaca+401zzzzjSH3PDX2utWU05rGzNqVcfKlA+IL/2JT9bGWjXKhkjPM6tlY/y7J4Unjp9Yez2R2c1Zj05Mf5/Qs/OzLstGOO0RH1ZpTl55axbqMzPU38vGYTc93Tj53/PXt9T2L/Pfl93f2C/+feg9rza+7uoh7hXX2WC6stHxysYOJ1xU239WEzNlxWuut/XOtbEy62+7a7HPJ//ja7WxVo2yIdLzzErZuOX5KbXXEenNHPdgz+4+mWnZuOrpybU3EcmdUx6eWP0oMpv6e9mIk/9yrYuuZnKK5zJin5hFKhbii21xu1Ns+/r+w2v7l6+94GJLTFc2Ih/8yCeKbV09s3HYzc8UV1oG3/VSbayzlFPpdnyAvZry6kdMzVsda9UoGyI9T0/Lxh9fmlp7DZEcOf7dwvHCxO5d4Zhp2YjmUn0Dkdy58W89+wOWmevvZSNSXhWI6XKr62+U+ei6Gxb7xD/LbRtsv0exbUazSsV0uDFeLRvlcYsstWyjuFRTfk+xJkh1rLPsf9VDxf7xAPs+l9xTG9/30nuLsUhXt4u1XM46Pw0fPjydfPLJafTo0emqq65K99xzT3r++eerH9WWo2xIs9KTsvHmu3/Gxwlg9TVEcmX0nydVP4admmnZCPFi1TcQyZX4wzL+0KR3DYSyEQ+Gl+tefHa73YtVwcuxmC73izvt2ziRj5XJy7F4aLycySoW4OtYVOLkv3xou1o2YmzueecvtscCgtUHwLc+/NTGuh5dPfBdTawMXpSfVddKh9/ybGN7/Ht5VSNWGq8e18oZevroNHjw4C4zZMiQdMwxx6QRI0ak008/PZ1//vlp7Nix6eGHH05vvPFG9SPdZ5QNaVZ6Ujbif9JVjxfJne7cTtWtshGXSbRl6avEZWB630AoG5HNDzy+cYIfJeHTW+5YPP9QTpUbY53dfhRTzZbPYCy54srFiuWx7kaUkHkXXKhROKoriMc0u2XBiWlr1/3a9sUzFct9ct1GQYmrG51dMZlRDrj20WKmqeI1F1uiWBU9Ut7KFbd9dedh81ZKd8pGdxKFZOjQoenYY49NJ510Uho1alS6+OKL00033ZQeffTR6se+Vygb0qz0pGzE7cfV40VyJx63mJlulY0QzSUeCKm+iUhvJh5sI4+BUjYisSL4Miuv0TjZLxMFYKeTL63t3zhu5GXTrRYeibU0fnjeDY3br6plI7L7Ob9LH15z/dr7xQJ9G+1+ULEGSPWYmeVnVz6YPrHef9Re82Of+nwx81Z1/1ZPb5WN7iQKSeToo48ubt0aOXJkcevWFVdcke6888703HPPVX97dEnZkGalu2UjJlSpHivSF4mJpGam22UjxFRXMeVV9Y1EZjcxRV9M1Uc+7VQ2eisHjn0s7XbWtcUsUwdd9+faeGeJKxD7XTGuuM1q74vu6NEViUNvfLIoHvGMR0yjOyslo5r4vnc546riNePnqY63S4afc2Fx8h8loFoOmpmylJS3bv3qV78qbt0aP358eu2114rfO8qGNCvdLRsxVXz1WJG+SCyRMbMb33tUNkIs5hGLesTiHrHIR/VNRXqSWGwoFh2KxYfIayCWDWmddDYb1eOPP55uvfXWNGbMmHTuuecWVyDi9qi4TaqVSsmwGx6t/TwifZHulg2T+UgzE4uAd6XHZaOjOD+MZcyjUVeXOBfpKi+/NS29pWD0KWVDmpnOykZ3TJ48OT322GPp+uuvTxdddFE688wz0wknnNAoJdVikCPKxqxnj9G/Tz84e2yxDk51LHdiAoe4Khi3VcbMbjOaoa6Vo2xIOyRr2QDah7Ihzcyslo3uevHFF9P9999f3AIVz2ecdtpp6fjjj++VW7eUjVnPIksuM8NnnXLlO8PPTx9ccaXa804LL7F02vygEbX9WznKhrRDlA2goGxIM5O7bHTXE088kW6//fZ02WWXpfPOO6+4dSseIh82bNgMS4myMevp67Lxtf2OaZSLDyy3YjE73Ke33KkxoUQk1sepHteqUTakHaJsAAVlQ5qZVikb3fH2228Xt27deOON6cILL0wjbn+y9vNI99KXZSNmaZtzrrmL94vpp4fe82pjLG6hipnhysIRE0dUj2/FKBvSDlE2gIKyIc1MO5WNKrNRzXr6smz85y4/K95r8eU/Ol3R6Jjl/+3fi33+/evfqY21YpQNaYcoG0BB2ZBmRtnInyNu/Vv60eib0k9/+8fi6yF3vZy+e/wFadO9fp4222dIMZ3zsPv/VTuuY468/e/FMw9xzJd/fGTa/ujzplvFfkY54JpH0jZHnp422fPwYoHMI257vtg+s7Ix+M4X044nXlx8f7HY5nvv91xtv+5kpc98qXivT23+vdpYmQ2/u1exz0fW+kxtrBWjbEg7RNkACsqGNDPKRv6Ui2GusuGXi2JRrkLfMUt9dJW03+XvlZGOiduMolzMs8BCtWPmmne+9KVd9+90Nqeh975WrG4/aNCc0x0z30LvLwpGV2Ujykks3Fl9v7nnW6AoO9X9Z5b4/g654a/FejfVsTJxRSPeY+UNNq6NtWKUDWmHKBtAQdmQZkbZyJ+ybMSq93HCPv/7F02f2Xa34qrBOl/9VqMQROGoFocoDOXJ/qpf2CxtcfCJaavDTklrbLxlmmOOOYrta226be09V99o82Js0JxzpfW32SVt8/MziisUiy69fLFtzrnn6bRsfGXfYY33W+Vzm6QtDz05bXvUWelTW+xQHBfb4ypE9f1mJ3HlJ0pQvPaslJlmRNmQdoiyARSUDWlmlI38KctGZLnV1qmtbfHNwWc3xmP9i3L7TiPHNLZvddjI2ut++9jRjcKx3ZBRje2xfkVsm2PQoGKF+47HxIn90h9frfG6HcvGvmPuaxSKzk76Y22MeM0Y333UdbXxWU2UpXjNKBzduTWsFaJsSDtE2QAKyoY0M8pG/nQsG7udeU1tPJ7XKG+TiisQ5faVPrtRsW3Vz29aO6bM2pt9s9hnmVXWbGxbfeMtim1rbrJ1bf/ID0aN7bRsxBWQ2Lbsamunox94s3Zcx/eL96iOzUrKh8cj3xp2bm28VaNsSDtE2QAKyoY0M8pG/pRlI64KDLn7ldp4ZIkVPl7ss8VBJxRfD7vv9eKWq5mdhH9/5GXvvfYccxRXLWJb3KYV27Ybek5t/0gUiQUXXbxWNuI2r9gWz4FUjykTD5nHPvFMR3Wsp/nCDj9pFI2Y/rY63spRNqQdomwABWVDmhllI3/KsjH/wovUxsqUi9t944Djiq8PueGJxon43hf+obZ/mf2vfrix309+c1c66g8vNL6OGbCq+5eJWZ86lo0oIOUtUlEkFvvQCp1mocWXbLx+vFf1dbuTKFzlFZLIxj88pLZPq0fZkHaIsgEUlA1pZpSN/CnLRldXA6plIxbCK0/GyylzO0vHUhLl4uDrH+9QPu6s7V8mZn3qWDY6lpRYgG+ueeadaWKGqerrzizxTEZZdOLB+C0POam2TztE2ZB2iLIBFJQNaWaUjfyZlbIRD5GXJ/97/vqW2v5l/vuy+xv7xb/Honnl1109xL3iOhtMVzY6XtnY4YSLavv3RuIqTHm72LwLLlTcAlbdp12ibEg7RNkACsqGNDPKRv7MStmIk/9yrYuY7ra6f5l4LqO4SjDnXMVCfLEtbneKbV/ff3ht//K1F1xsienKRuSDH/lEsa2rZzYOu/mZ4krL4Lteqo11lQPH/qnxfS2y1LLFLV/Vfdopyoa0Q5QNoKBsSDOjbOTPrJSNSDklbEyXW11/o8xH192w2Cf+WW7bYPs9im0zmlUqpsON8WrZKI+LMlAWl2rK7ynWBKmOzSjxjMYyK69RHLfYMh8uikd1n3bLL+//W3rkkUfSM888k1577bX0zjudn9QpG9LMKBtAYcq0VPsDQqSv8tyb06ofybbR38tGPBhernvx2e12L1YFL8diutwv7rRvMRYzUcXK5OVY3K5UzmQVC/B1LCr7X/VQccLfWdmIsbnnnb/YHgsIVh8A3/rwUxvrevTkWYuNdz/4ve9z0KC0/TG/TD+97IEZJr736vGtmGFX3ZMGDx48XUaMGJHOOuusdMEFF6Qrr7wy3Xrrrem6B/5cO1akr6JsAA0jxk+s/SEh0hd5bXLXfxm1sv5eNiKbH3h84wQ/SsKnt9wxrbf1zo1nH2IsVgavvl5MUVs+g7HkiisXK5bHuhtRQuJ5ibJwVFcQj2l2y4IT0+Ou+7Xt0/rb7pqW++S6jYISVzc6u2LSWeIZknJ18O4kfh2qr9GK6axsdJahZ19QO1akr6JsAA0XtclJk/SvjHxoYur6r6LWNhDKRiRWBC9vQ+qYKAA7nXxpbf/GcSMvm2618EispfHD825o3H5VLRuR3c/5XfrwmuvX3m+BRRYr1sOINUCqx8wocXWm+jpdRdmQjtlj9O/TD84eW0yYUB3ri8RnPSZMiKtu1bF2iLIBNNz/0tTaHxIiuXPds917yLVVtUvZ6K0cOPaxtNtZ1xazTB10Xfduz4krEPtdMa64zWrvi+7o9hWJyKE3PlkUj3jGI6bR7UnJ6O85/voH0/Dhw2vlohplY/ayyJLLzLAU90X+a49Di/dvt0UnyygbQMPUaSmd+rBbqaTvMnzchPRqG99CFQZa2ZDWSTkb1ZQpU9Irr7ySnnrqqTR+/Ph0xx13pOuvvz6NGTMmjR49Op3w/y6vHSvdTzPLxvZHn9e4FVHZAPqFP79m1hLpu/zPP6ZUP4JtR9mQZsXUt32TZpWNr/706MazS8oG0K/c8cKU2h8WIr2dK556q/rRa0vKhjQrykbfpK/LRqwhs/Ln/qtRMspZ3ZQNoF8Z//LUdPyD9T80RGY3x46bkG55fkpbPxTekbIhzUp/KxtH3Pq39KPRNxUn2/H1kLteTt89/oK06V4/T5vtM6R45iemW64eV82Rt/89fWf4+cVxX/7xkcWtSIff8mxtv2oOuOaRtM2Rp6dN9jy8mEntiNueL7bPrGzEejA7nnhx8T3GrGzvvd9ztf26k30uuadxNWP+hRcpZmYrJ1JQNoB+540p76TfPTc5nfSQ5zhk9hPl9fKn3kovTmrfNTU6o2xIs9LfykY5Y9oqG365KBYLL7FU4//ul4mFHPe7/L0yUk2s5RLlYp4FFqodN9e88xWr0ne2MGWsHbPeVt9PgwbNOd0xMV1yFIyuykaUk5jhrfp+cTUiyk51/5klylZ8H//+je+mQ274a7FN2QD6vViU9vkJ04rnOeKKh0hP8tirbxeL9k3t+u+btqVsSLPSX8tGTI0cJ+vzv3/RYm2WuGKwzle/1SgDUTg6Kw1RGMqT/VgQcouDT0xbHXZKWmPjLRvrxMT6LNXjVt9o82Isriisv80uaZufn1FcoVh06eWLbXPOPU+nZeMr+w5rvN8qn9skbXnoyWnbo85Kn9pih8bViVjQsvp+XSWm1z3g2ken26ZsAMAApmxIs9Jfy0ZkudXWqa1r8c3BZzfGY+2LjmM7jRzTGNvqsJG11/72saMbhWO7IaMa22P9mNgWMz7F9Modj4nbujquEdOxbOw75r5GoejsCsYuZ1zVmEUqpomujvckygYADGDKhjQr/bls7HbmNbXxeF6jvEUqrj50HFvpsxsV21f9/Ka148qsvdk3i32WWWXNxrbVN96i2BYr21f3j/xg1NhOy0ZcAYlty6629gzXjSnfL96jOtaTKBsAMIApG9Ks9NeyEVcEhtz9Sm08ssQKHy/22eKgExrbYqHHcsameKC6ekyZWM2+eP055iiuWsS2uFUrtm039Jza/pEoEgsuunitbMStXrEtngOpHlMmHjKPfeKZjupYT6JsAMAApmxIs9Jfy0bMwlQdK7PUx1Yt9vnGAcc1th1ywxONqw97X/iH2jFl9r/64cZ+P/nNXemoP7zQ+DoezK7uX+Yja31murIRBaS8RSqKxGIfWqHTLLT4ko3Xj/eqvm53o2wAwACmbEiz0l/LRldXAjorGz+7cnzjpL6cNrezdCwlUS4Ovv7xDuXjztr+ZVbeYOPpykbHkjLnXHOnueaZd6YpZ5aalSgbADCAKRvSrCgb722LB8nLk/89f31L7Zgy/33Z/Y394t+H3vNq4+uuHuJecZ0NpisbHa9s7HDCRbX9ezvKBgAMYMqGNCvKxnvb4uS/XOsiprutHlMmnsuIfWIWqViIL7bF7U6x7ev7D6/tX772gostMV3ZiHzwI58otnX1zMZhNz9TXGkZfNdLtbGeRNkAgAFM2ZBmRdn4v+2xfkZsjylzO1uDI1KetMc/y20bbL9HsW1Gs0rFdLgxXi0b5XGLLLVso7hUU35PsS5IdawnUTYAYABTNqRZUTb+b3s8GF6ue/HZ7XYvVgUvx2LK3C/utG8xFjNRxerk5Vg8NF7OZBUL8HUsKvtf9VBabJkPd1o2YmzueecvtscCgtUHwLc+/NTGuh5bHnLSdGM9jbIBAAOYsiHNirIx/djmBx7fOMGPkvDpLXdM6229c2O63BiLlcGrx8UUteUzGEuuuHKxanmsuxElZN4FF2oUjuoK4jHNbllwYnrcdb+2fVp/213Tcp9ct1FQ4upGZ1dMehJlAwAGMGVDmhVloz4eK4Ivs/IajZP9MlEAdjr50tr+jeNGXjbdauGRWEvjh+fd0DjZr5aNyO7n/C59eM31a++3wCKLFeUg1gCpHtPTKBsAMIBdrGxIkzL22f5VNnozB459LO121rXFLFMHXffn2nhniSsQ+10xrrjNau+L7ujRFYlDb3yyKB7xjEdMo9sbJaO/RNkAgNlwzTOTa3+5ivRFbvv7lOrHsVMDsWxI60TZAIDZcOcLU2p/uYr0RR559e3qx7FTyoY0M8oGAMyGl96aVvvLVSR3fjFuQpr0dtcncSVlQ5oZZQMAZtNFntuQPk7cvtddyoY0M8oGAMymFyZOS8PH1f+SFcmRE8ZPTP+a0vUJXEfKhjQzygYA9IIHX55a+0tWpLdz7Lul9ol/de9ZjZKyIc2MsgEAvWT8u4XDFQ7JlRHjJ6a/vt6zohGUDWlmlA0A6EUvTpqWLnnCMxzSezn23Vz19OT02uSuT9pmRNmQZkbZAIAMXn/3xPD+F6emG56bXKz0LNLT/P5vk9O4l6emN6d2fbI2M8qGNDPKBgBAP6ZsSDOjbAAA9GPKhjQzygYAQD+mbEgzo2wAAPRjyoY0M8oGAEA/pmxIM6NsAAD0Y8qGNDPKBgBAP6ZsSDOjbAAA9GPKhjQzk6dVP5HTUzYAANrYM29Oq50AivRFho+bUP041igbAABt7NXJ79ROAkX6Iqc/MrH6caxRNgAA2txp7570VU8ERXLn6mcmVz+KNcoGAECbu/n5KbUTQZHceeJfb1c/ijXKBgBAm5s49Z10wnhXN6Tvcv5fJlU/hp1SNgAA+oGHX5laOyEUyZEoti+9NZNpqP6XsgEA0E/c8YLbqSRvRjw4MT31xsxvnyopGwAA/cifXns7jXzILVXS+znvT5PSi5O6d0WjpGwAAPQzsdDa3f+ckn79l0m1E0aRnuS4ByekS594Kz36avevZnSkbAAA9HOvT34nvSbSw0yY+k71o9RjygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZKFsAAAAWSgbAABAFsoGAACQhbIBAABkoWwAAABZKBsAAEAWygYAAJCFsgEAAGShbAAAAFkoGwAAQBbKBgAAkIWyAQAAZPH/AVK5oOHirZ+mAAAAAElFTkSuQmCC", + "image/png": "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", "text/plain": [ "" ] }, - "execution_count": 24, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -1023,7 +1367,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 11, "id": "66128f17-16eb-43d3-9d63-bbac3f8f803a", "metadata": {}, "outputs": [ @@ -1033,7 +1377,7 @@ "{'message': 'Visual Style applied.'}" ] }, - "execution_count": 25, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -1044,18 +1388,18 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 13, "id": "ca0cc760-74e4-4c4a-b78a-c932ab16ab06", "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFwCAYAAADQcmZ5AAA0IUlEQVR4Xu3d13Ob15/f8d/s5iKzyV7sZmazk92Lnclkkov8C5nsTXYmN5nJbTK5SbFXki3J9s9NkiVXSbZlNauZq2r13rssqjf2JpEg0Qh2gr0T5Rt8DwUYfA4oUaJAAQ/eZ+Y1IM45z/PApi7w4Wl/aHr2RAAAAADgTfuDswIAAAAA3gTCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAAAAyArCBgAAAICsIGwAAIA3Iuitltbmeuls80l7yCMhf51460usfgAKB2EDAAC8Np+nTHq7W2VyYlwylVgsKkMDYWn21VjXAnA/wgYAAHgtOoIRi0ac+WKGEpeBvi7x1pda9wHgXoQNAADwyvp62p1pYlZlfGxY/J5y634A3ImwAQAAXkm4K+TMEK9UxkaHWMsBFAjCBgAAmLWWwFNndrBK26RINO6snV50ZMR5bwDuQ9gAAACzpqMSmUpoQuT/BET+vELkD6Uif1om8vcNIsWDzp5TJR6PS6Cp0ro/AHchbAAAgFlpCdQ5M4MpNaMif1U5FTKc/iRha5fziqnSF26zngHAXQgbAABgVnoT4cBZJuMi/6HWDhnpdJSjbMR5ZeLaiTHrGQDchbABAABmZXRkwJkX5GSfHS4y+R8+55VTRc/pcD4HgHsQNgAAwKxMTIw6s4J8GLKDRSZ/V+28cqo0eznsD3AzwgYAAJiVyKR9SviCoB0sMvnXVc4rp0rIX2s9B4B7EDYAAMCsZNqJalOnHSwy+c8Nziunir+xwnoOAPcgbAAAgFkZ7O92ZgVzpsafldvhwml32HmlSCwaTdyXw/0ANyNsAACAWWlvaXTmBVN0a1tnuEj3D55EsHBelChDA2HrGQDchbABAABmxdtQKtHopDMzmKIjF3/pOGtDt7z9fwGR0UxJI1HamhusZwBwF8IGAACYte6OgDMzpMpwIlSc6RPZ0ClyoEckOOHs8XvRbXSd9wbgPoQNAAAwa976koznbbxKiUUjEvRWW/cG4D6EDQAA8Er8nnJz+vfrlHg8Jq3N9dY9AbgTYQMAALwyPfl7ZLjfmSVeWCKRSQn566x7AXAvwgYAAHhlyfMxOlq9MpnhsL/0Eo/FpDfcJr6GMus+ANyNsAEAAF5JS/CZWbsxrS7wVHq6W8xZHLqmY2igR/p7O8x2ubqLlfMeAAoDYQMAAMxaZ6tXQv5aqx4AMiFsAACAWelq90t/b6dVDwAzIWwAAICX6ulqkVgsmlqrAQCzQdgAAAAz0vUWQwNhs9C7L9xmtWdSW3FXGp8+tupnS6+tKb9j1QPIP4QNAACQUbOvRibGR6d2lIrHZj2qsWDBAil7fNOqn60jB3fLmtVfW/UA8g9hAwAAOJRIuCtkAkayDPaHM/TL7HXDxrOaB1K042f5x398l7ABuARhAwAASGXpLdm/t0hu37wkO7Zvl/3790tra2sqbDQ8LZXdO7fJTz+ukT27tklNxd3UtWWPfpPtWzfKpg0/yG9Xz0wLG0+r7su+3Ttk3fPr6irvWc9O2vrzenP/A/uKCBuASxA2AACAlD6+Je8tWiSbNm2SqqoqOXjwoHz00UcSiUSkv79XPvrwAynavlluXjsrv2zfJB9//JEZidDw8OEHS2Xvru1y4+pp+e7bL+Xdd981YUPXXixf9pkJIsXXz8rOoi3m/UzrOWorpwLMqeP7CRuASxA2AAAocEFvlYRCIXnnnXdkYGDAjGTEYjFZuHChtLe3y6ULZ2TVyuXTrtH3GgrUl6tWpOorSorNfTRsXDp31ISL9OtWfrFMLp0/Zn2GdIQNwD0IGwAAwIxsLFq0KDVtSsuSJUvMVKrdO7ebKU7p/fW9jlTsSvh507ppbYvff8+EDZ2WpVOqFi9+P0Xf6zQp5/PTETYA9yBsAAAAeXTvqplGldzmNhk2QqFmObh/p6z/ae20/rq2Yt+eHSY4rPthdapep0gl12wcO7xXvl/zzbTrnlXft57tRNgA3IOwAQAATNjQkQ39ubsjIPF43ISNJs8zeXDnirz33iJ5fP+aadfXRQsXyt3ii6ZNryt5eMO0aVBITqN68uC6abt/+5JpqywpNqMbN66ctp6fjrABuAdhAwAATAsbqiVQZ8JGXU2ZeX/y2K+ydOkSWbH8s8TrYjl+ZF+q77HDexJ9F8uyzz+V79d+K0sSgSK5G9XZUwdN/xXLPzd9dDTE+WwnwgbgHoQNAAAKXEvgqejZGs56v6dcgk1VqfeeusdS/uSmNNQ+tPrq9KjqssynfuvUKl04Xl9jXwfA3QgbAAAUMA0aOmVqdGRAfA1ToxgA8KYQNgAAKFA6chGZnDCLwYeH+qx2AJgrwgYAAAVqZLjfBI3JyXHxeRjVAPDmETYAAChQbc0NEolMSMhfa7UBwJtA2AAAoIB56+2F4QDwphA2AAAAAGQFYQMAgAKhoxh9Pe2szwAwbwgbAAAUiIG+LrMgfHxsxGoDgGwgbAAAUAA623wmaGhpD3msdgDIBsIGAAAu560vlWhk0gSNvnCb1Q4A2ULYAACgAAS91TLQ15n4md2nAMwfwgYAAACArCBsAAAAAMgKwgYAAC7UEnwmE+Mj0uytsdoAYL4QNgAAcBl/Y4VEni8IH+wPW+0AMF8IGwAAuEqJjI4MmqAxOTEmvgYO8APw9hA2AABwkUBjpQkZsVhMmn1MoQLwdhE2AABwGR3NaA0+s+oBYL4RNgAAAABkBWEDAIA8pyeEB5qqrHoAeNsIGwAA5LnB/m6JRSPS1txgtQHA20TYAAAgj3W1+83OU1oIGwByDWEDAIA8FfLXSjweM0Gjt7vVageAt42wAQBAnvJ7ymVkuN9wtgFALiBsAACQ5zi4D0CuImwAAAAAyArCBgAAeUQP6+PAPgD5grABAECeCDRWSjQ6KfF4XNpCHqsdAHINYQMAgDzgrS+RsdEhs/PUxPio+BpKrT4AkGsIGwAA5IHujqAJGrFYVILeaqsdAHIRYQMAgDygIxv9PR3S0dJktQFAriJsAAAAAMgKwgYAAACArCBsAACQowb7u6WrPWDVA0C+IGwAAJCDujsCZkG4SFyafTVWOwDkA8IGAAA5JuSvM2dpaOnparHaASBfEDYAAMgxveFWEzRGhvqsNgDIJ4QNAAByUEerV3yecqseAPIJYQMAAABAVhA2AADIAf7GCqsOAPIdYQMAgLcs0FQp0WhEBvo6zUnhznYAyFeEDQAA3iINF+Njw2ZB+MT4SOJ9qdUHAPIVYQMAgLeov7fTBI1YLCpBb5XVDgD5jLABAMBb1N0RNGdqtLc0Wm0AkO8IGwAAvGW6ZsNZBwBuQNgAAGAOPHWPEh7Pqj5Z52xzvgcAtyBsAAAwB+fPHJZbN85Z9UcO7ZYrF09k7Hvy+KFpbcn6h3evmJ+d9wKAfEXYAABgDh7duyoVJcXm9f7tS3Ls8F65W3zRhI0TR3817x/cuZzq29RYI1evXpWrV6b6PnlwPXWP3Tu3yfp1a6W28p7U1zyU0ycOyMljv8qz6vvWcwEgHxA2AACYg+QIhr5qUNCgsWL5Z3Jo/z/JD99/l3h/QVatXG4Cw8njB6WystKEjU0b15sQ8vVXK2X/viJzj+NH9snOoi0maOzZtU3Onjokl84fkwOJdudzASAfEDYAAJiD9LChwUDrNm34Qfbu3i4Xzx0173/etE7Kn9yUa4mQUVVVJefPnZEbV05PXX9wt2zZ/JO5x+ULx819tP765VOy8otlUrRjs5Q8vG49FwDyAWEDAIA5SA8byXUYmzf+mAgbO1LvNWyUPb4pJ08ckpKSx3L4wG65eHYqiOwq2iK/bNtk+l5JCxvF189KbeVd8/rlqhXWcwEgHxA2AACYg1cJG8k+h/bvlNXffSXbt26UjRt+MKMbWq/TqlYs/9ys47hw9ojps23Letm3Z4f1XADIB4QNAADekmc1D6w63QY3+XND7UOzfsPZBwDyBWEDAIAsCTZVydBAj/g85VYbABQCwgYAAFngrS+V8bER0TI82Gu1A0AhIGwAAJAFA31dJmjEohEJNFVZ7QBQCAgbAAC8YYGmSonFoiZstIU8VjsAFArCBgAAWRD0VklXe8CqB4BCQtgAAAAAkBWEDQAA3hBvQ6lVBwCFjLABAMAbEO4KyeTEmDT7aqw2AChUhA0AAOaoNfhM4vG4WRDe3RG02gGgUBE2AACYg0BjhUQjkyZo6AF+znYAKGSEDQAA5iDorTbTpyYmRsXHmg0AmIawAQDAHPkayiTIwX0AYCFsAAAAAMgKwgYAAK9ID+xjJAMAXo6wAQDAK9CzNCbGRyUWjZpdqJztAIDfETYAAHgFg/1hs/NUNBqRQFOl1Q4A+B1hAwCAWeps85mgIRKX1uZ6qx0AMB1hAwCAWfJ7ymVkuF96ulusNgCAjbABAAAAICsIGwAAAACygrABAMALdHcEpTXI+gwAeB2EDQAAZqCLwHUxuAr5a612AMCLETYAAMhAt7XV7W216Ha3znYAwMsRNgAAyKC/t8MEDT3ATw/yc7YDAF6OsAEAQAbe+hLpDbdJ0FtttQEAZoewAQAAACArCBsAADynoxnOOgDA6yNsAACQ4GsolYnxEenuCFhtAIDXQ9gAACBhaKDHLAiPRibF7ym32gEAr46wAQAoeHpw31SJS2vwmdUOAHg9hA0AQMHr7+00USPcFbLaAACvj7ABAMCzqdPCnXUAgLkhbAAAAADICsIGAKAgNftqrToAwJtF2AAAFJy2UINZozHQ12W1AQDeHMIGAKCgBJqqJBaNEDYAYB4QNgAABUNPCB8fGzZBY3xsJPG+1OoDAHhzCBsAgIKiJ4RHo5MSbKqy2gAAbxZhAwBQcHwNjGgAwHwgbAAAAADICsIGAMDVfA1l0tMVMus1nG0AgOwibAAAXG14sNcsCB8a7LHaAADZRdgAALhWuLPZBI14PC4tgadWOwAguwgbAABXCjRWmJChJdwZtNoBANlH2AAAuFZrsF4G+jqtegDA/CBsAAAAAMgKwgYAAACArCBsAABco72lUUaG+8XvKbfaAADzj7ABAHCFoLdKYrGoWRDeG2612gEA84+wAQDIe976UpkYHzFBY3xsmAP8ACBHEDYAAHkv5K+TWDQq0WhEAk2VVjsA4O0gbAAAXCHYVCWtwWdWPQDg7SFsAAAAAMgKwgYAIC/5PGXiayiz6gEAuYOwAQDISyNDfTI5MSbNvhqrDQCQGwgbAIC809MVMjtPxeNxszjc2Q4AyA2EDQBAXmltrteYYcJGd0fAagcA5A7CBgAgr+i0KZ0+NTQQttoAALmFsAEAyDu6MNzbUGrVAwByC2EDAPDW6Enfbc0NMtDXJaMjgxKZHJfJBP25v6eDczMAIM8RNgAAb0Vnm9eEi5eVifFRCXc2m0P7nPcAAOQ2wgYAYF7p9KehwR5npnhpiUQmpNnHzlMAkE8IGwCAeaPTpsZGh5w5YtZlaKDHuicAIHcRNgAA80bXZsy19HS1WPcFAOQmwgYAYF60BJ46c0Oq9EREirpFFgZFFjeL/BoWGY05e00VPciP9RsAkB8IGwCAeaE7TGUqx3tF/qJC5A+l0/1NlcidGWZcDfZ3W/cHAOQewgYAIOsCjZXOvGDK1QGRPy2zg0bSvygXqR51XiUSi0XN+g/ncwAAuYWwAQDIus42nzMvSDzh39XYAcPpv3icV06V1mC99RwAQG4hbAAAsq433OrMClI2YgeLTP4kIRxxXi3S1e63ngMAyC2EDQBA1mXahepknx0sZlI+4rxad6UKWc8BAOQWwgYAIOv6etqdWUFuDtqhYib+CefVIt0dAes5AIDcQtgAAGRduDPozAoyEhP5l+V2sHD6tzXOK6dKe0uj9RwAQG4hbAAAsi7kr3NmBVO+abPDhdP+HudVWuLi95RbzwEA5BbCBgAg6/RAPz2Mz1n03L7/5bcDRtJye125KXpmh/MZAIDcQ9gAAMyL8bFhZ2ZIFV0s/g8ekb+tFvm7hP/eNLWmY6bS1txg3R8AkHsIGwCAN8bXUCrdnUETLLz1pY62MpkYz3BC3yuWkeF+67kAgNxE2AAAzJme5t0XbpNY9PcDMTKdgxFsqpJoWp9XLZOT4+JjrQYA5A3CBgDgjUhOk9JA0N0RFG/D9JGNpJC/ViKRDHvZvqToqIiGFef9AAC5i7ABAHhlLcFn4vOUTatrba6XjpamxM8lVn8nf2OFDA/2OvPEDCVuDgXUaVjO+wAAchthAwAwa3q2xdjo1AhG+A2c4K27VGmQiMd1X6rpJTI5If29HdLsq7GuAwDkB8IGAGBWBvu7U0FAt7HVU8GdfV6Xhpje7lZpDdabcMEZGgDgDoQNAMCs6DSpWCxqQkagscJqBwDAibABAJhGF2H393aakQZnG+smAACvgrABADCC3moZMou2p0761lGMtxEuaivuSuPTx1b9y+g1r3stACA7CBsAAEO3pE2W0ZGBeTulW8/j6GzzmR2q9P2CBQuk7PFNq9+L3LpxTv740Yfy8R8/ko8+/EBu/3be6gMAmH+EDQAoQHoIn+4E5azv6WpJhI46qz6bdNcpLbo4XN+/athoqH0oHyxdIlcunjDvL5w9Ip9+8kdGOAAgBxA2AKCA6LSocGezRCKTZkep5GjCXFWW3pL9e4vk+uVTsv6ntbL15/Xy6N7VVHt12W3ZvXOb/PTjGtmza5vUVNw19XpWR3d3txw6dEg2b1wnv109My1sPK26L/t275B1z6+rq7xnPfu3a2fk448/mlbH6AYA5AbCBgAUCA0asWgkNVUqGp1MjSbMlQaLRQsXyprVX8vViydk+9YNsnTpEjPqUFt513z5L9q+WW5eOyu/bN9kwsGzmgfibahI/PyxnDl9Wm5cPS3fffulvPvuuyZs6MjE8mWfJe61UYqvn5WdRVvMe+eIxfEj+8xz0+u++XqVnD5xwPqcAID5RdgAgAIyNNgjkxNjZp2ETqVytr8uDRvvvPOOVJXdNu89dY/NCMXj+9cSYWCvrFq5fFp/fX/q+H45f+aYrF79nQwN9Jj6ipJicx8NG5fOHTXhIv26lV8sk0vnj02rO7R/p6z7YfW0urVrvpFjh/dMqwMAzD/CBgC4kJ6JMTLcb3aYSq/3ZemwPA0bCxcumFb3/vvvmfqiHZvNtKr0Nn2vIxW7En7etG5a2+LEdRo2dFqWBpbFi99P0fcH9hVN669hZu3qb6bVMbIBALmBsAEALqIncY+PjaSmSg30dVl9ssFMo1q0aFpdMmwc3L/TrONIb9O1G/v27DDBIX1UQqdIJddsHDu8V75fMz1EPKu+bz1b14l8/vkn0+p0V6riG+esvgCA+UXYAAAXGejrNCFDF39r0HCObGTLi8LGgztX5L33FpkpVVqvr7q+427xRdOm15U8vGHadGpVchrVkwfXTdv925dMW2VJsRnduHHl9LTn1Nc8NPW6UFzf65qRDz/8wKwXcX5OAMD8ImwAQJ7SnaT0tO/0uqC3SnrDbW9sl6nZelHY0J9PHvvVLBhfsfyzxOtis6jb21BqwpCurViyZLEs+/xT+X7tt7IkERySu1GdPXXQ9F+x/HPTR0dDnM9Wurhct7/Ve2jQ0AXlzj4AgPlH2ACAPKNf0HXUIh6PyfBgr9Weq3TRePmTm6kRBz00UMvE+KiZHlVddse6RunUKl04riMYzrZM/Tx1j6w2AMDbQdgAgDzS2epNrcfQMj42/EZ3lZpPet6HluGhPqsNAOAOhA0AyCM6PUpHNHSnKd1xytmeTwb7u03Y0GlfzjYAgDsQNgAgB+lohZ6FoV/InW3zvR4jW8ZGh0zY6GhtstoAAO5A2ACAHOJrKJWerhZzuneyhPx1Vj+30PUnerK5sx4A4A6EDQDIIRo2YtGICRnRyKSEu0J8GQcA5C3CBgC8Rc2+WquuuyMgnW2+vF34DQBAEmEDAN4C3fZ1dGTAjGDoz852AADcgLABAPNMd5L6vcTNGg1nH7fTk871/wNBCwDcjbABAPNMz5fQ7Wv7ezutE8ALxcTEqIla7SGP1QYAcA/CBgC8Bj2lWk/EdtanCzRWSF9Pu7S3NE6r10Xgfk+51b9Q6FqUeDxuwkahhi0AKBSEDQB4BQ/vXpHzZw4bt26cs9pVs7fGnI+R/ELt8zaZ/s5+hSrkrzX/X2KxmNUGAHAXwgYApLly8YQcObhL7hZfTNVdv3wqUbdbyh79Jrt3bpP169bK7ZsXpKKkWK4m+qf30xGPO8XX5Pr16+L3+2VsdFgO/LrbXFNbeU+Kr5+Vo4f2SNnjm+aa+pqHcvrEATl57Fd5Vn3f+jxupKM6emBhuDNotQEA3IWwAQDP6ejDwf075dG9q7Jq5XLz5V/rdmzbmAgfF+SrL7+Q40f2ys6iLXJo/y4TTIp2/CwP716XhtqHsmb116b/ocQ9PA218uWXK809jh/ZZ645f/pwov9meXDniumr4WPPrm1y9tQhuXT+mBzYV2R9JgAA8hlhAwCemwoGe2X71g3y6Sd/lMqSW7Jl809mRCPZ5/KF43Lk0G45eniP3L19Q4JBvxw+fEgunjtmQkWmeySv2bThR/npxzXy86Z1svKLZSas6GiI/qwhpOThdeszAQCQzwgbAPDc9q0b5dzpw2aUYvW3X0nFk2L5ZfsmuXfrkmk/dXx/IlQcleNH98u1a9ekqqrKrD3YsmWLbNq4Tmor72a8x5XnYUPbkve6c/OCVJfdMdOq9Dp9/XLVCuszAQCQzwgbAPDcscN7Zd0Pq03AWLVyhdy/fUlKHt6Q79d8Y4KCenDnsqxY/rmcPHFcysvKpLszaNZbbPjp+xnvkbzmxpXTsvq7r8x91q7+xqzXuHD2iKnbtmW97Nuzw/pMbuNrKJOe7hZrhy4AgDsRNgAgjU6Danz6+5a2LYGnMtDXZYJBsk4XgeuWrbqFq/P6TPdIXpP8+WnV9IXgOgqSfn830/+fWqLRSasNAOA+hA0AyEAPmxsbHTJfjLV0tQesPnh1uguVltGRAasNAOA+hA0AyCAZNPSsjKGBsDT7aqw+eHV6arqW/t4Oqw0A4D6EDQAFz+cpN2sJ0uvaQh7p6+mQQFOl1R+vL9wVkvGxYelo9VptAAD3IWwAKFgaJPQv7HqSdU9Xi9UOAADmhrABoCCFO5vNFKlkGR0ZtPoAAIC5IWwAKEitwWcmZIwlQoYuBne2AwCAuSNsAHA13Z62s9Ur3R1Bq63ZV2vVIXt02prfU27VAwDci7ABwJV0wXe4MyiRyQkzghGLRc1CcGc/zJ/B/m7zu9BD/ZxtAAB3ImwAcCXdqjZZotGI9Ha3WjtOYX7pLlRa2IkKAAoHYQOAK/gbK6w6Pfm7uyMg3vpSqw3zT3f90sKZJQBQOAgbAPKaLvQeHuozO0sFGjkTI1fpeg0t+nvSdTTOdgCAOxE2AOSpktQp38nS1e7P0A+5wttQyqgGABQYwgaAvDU0EDZ/KdeFx3yJBQAg9xA2AOQ83S5VdzByBgqzlWqGtRoAACA3EDYA5KxgU5X093ZKPD61sFhHMJx9AABA7iJsAMhZ/b0dqfUYE+Mj0tHaZPVB7tMF4RPjozI82Cs+D9sPA0AhIWwAyBnOQ/cCTVUyMtwvbc0NVl/kDz2pXYtufetsAwC4G2EDQNbpLkTOulRbfYl0tvmm/vI91Ge1I//pIX5a9FA/ZxsAwN0IGwCyStdd6BSoTGcrtASeSjQymZoqFYtFzWJwZz/kt75wm/n9suYGAAoPYQNA1mhwmJwYM180dfQiU3s8FjOBo6erxZpGBXcI+WuluzMorc31VhsAwN0IGwCywtdQZqbNJItOk9Lta539dHQj06gHAADIf4QNAG+cBg3n6d5aNHxouHD2BwAA7kTYAApYoLHSLN4NdzabUYfujoC0hzwvXND9Mjo1Kn1EI72MjQ5bB/MBAAD3ImwABai9pdF88Z+p6CF6QwM9EvRWW9e+iPafnBx33m5aCfnrrOvgXq3BZ2a9Br93AChMhA2ggPg9FTI6MuD8/j9jicfj0htute6TiQYY3U3qZUVDjPNauFfyYEZ9dbYBANyPsAEUCB11iExOOL76z67oyc8zLeLWKVfpJ31r0R2o9DA+3eq0t7s1NUVLd6QKdwYT12W+F9wnGW672v1WGwDA/QgbQAHwecpSW9C+bhno67Tu2xqsl/GxERka7EmECZ0qUztjKEFhikYj5t8PGwMAQGEibAAFQEcYXlTqEjmkeFCka+p74YxFF4/r/XQ6VluowYQNRikwE299qRkVm5gYNTuUOdsBAO5H2ABcrtlX68wMqbIzkUH+pkrkD6W/+0/1IqUjzp5TJfmlkdELAAAwG4QNwOX6ezudmcGUD0PTQ0a6f14u8tug84qpMjWaYT8HAADAibABuFwkYi8KvzZgBwynv64SGY45r2RXIQAAMHuEDcDF9IC9TOW/NdnhIpN9YeeVIqMjg9ZzgEz0AMe5HBAJAMh/hA3AxfTLXqbyt9V2sMhkcbPzyqltbZ3PATKJxaaGxl71cEgAgHsQNgAXm2lx+L9xLAqfyXuZwsbkuPUcwCnYVGX+vejBkGwoAACFi7ABuNhM06j+a6MdLDLR3aqcZYxpVJgF3SZZy8T4qNUGACgchA3A5aKRSUdcEDnbZwcLp39VKdIfdV6pC8Ttw/0Ap3Dn1LCYHvjobAMAFA7CBuByA31djrgwVf5vwA4YSf+sTORcv/OKqdLW3GA9A8hER9YCTVVWPQCgcBA2AJcL+eucecGUeMKPHSJ/UTE9aPzHRPdbM5yxoes1mH8PAABmi7ABFACdyjJTmUikjgfDU4f41Y46W6eXjtYm694AAAAzIWwABcDvqZDIpH2436uUoYEwoxoAAOCVEDaAAqHb4GZaLD6bMjo8kAgapeJrKJNAU6V1byBde0ujjI8NS093i9UGACgshA2ggGhQ0C+Br1J096n0EQ1/Y4V0dwTF5ymz7g+o3nCb+bcz2N9ttQEACgthAyhAnW0+cxL4zCUuI8P9ZnG581qluwyNjgxKd2eQqVWwDA/1mX9Fuv2tsw0AUFgIG0ABa/bWSFd7QHq7W2Wgr9NMe+loaTJhwtnXSUc4NLBEIpOJL5VBM8XK2Qf5y1P3KOGxVT8bumuZFrZJBgAQNgC8tqC3SqLRiPliGYvFzJkeLYGnVj/kn/NnDsutG+es+od3r5g2Z306XbOhwfVloXU29wIA5DfCBoA5aQ0+M9Ou0ovufKVrPfQv296GUusa5L5H965KRUmxeb1/+5IcO7xX7hZflN07t8n6dWultvKe6Vd8/awcPbRHyh7fNOHh5rWzqQBx5eIJOXJwl7kued/rl08l6nZL2aPfUveqKrstp08ckJPHfpVn1fetzwIAyF+EDQBGbcVdaXz6etNmwp0hGR7OvPA8Ho/L+NiItIc81nXIXUcO7Z4KC4lXDQQaGFYs/8y831m0ReprHsqlc0elaMdmeXDniqxZ/bX8uucX+fH77+TGldMmcBzcv9OElVUrl5sQoXU7tm1M3OuCfPXlF3L8yF5zr13/tFXOnjokl84fkwP7iqzPAgDIX4QNAMaCBQvMX6ed9S9zLvEl8YOlS2T58mXyxRdfiN/vd+YNmZgYFR8jHHklPWxoCNC6TRt+MKMPWjf1/kf56cc18vOmdbLyi2WyOfF68exR06bhQsPE9q0b5NNP/iiVJbdky+afzIhG8hmXLxw399LRDr1eg0vJw+vWZwEA5C/CBgDjdcKGTrNZtGiRmT6j6zdu374tK1asmBY0dC2HLkR3Xovclh429FXrNm/8UU4e358KG9u3bpR7ty6Zn+/cvCB7d++Qu7evS1e7X37ZtlnOnT4sDbUPZfW3X0nFk2L5ZfumVP9TiftcPHfU3EunYtVW3jWvX65aYX0WAED+ImwAeayy9Jbs31tk/jK8/qe1svXn9WbaSrK9uuy2mRevf33es2ub1FTcTbXpX5j1y6L+tfq3q2emhY2nVfdlX+KL47rn19U9n5/vpHPtr1w4nnpfU/lEFi5caKZOJUtHaxPb4+ahmcLG1UsnZcXyz+XJg+tS8vCGrP7uK/PvaO3qb8wUqIqKMvN7P33isKz7YbUJGKtWrjDrPrT/92u+Mf3VgzuXzb10DYfeZ9uW9bJvzw7rswAA8hdhA8hjGiwWJb7c63z5q4kvhDplZenSJeavyfqX4o8+/ECKtm82i3b1S9/HH38kz2oemPDw4QdLZe+u7XLj6mn57tsv5d133zVhQ9dtLF/2mfkyqH9p1jn1+v5F6zn0nhfOHpGVXyyXM2dOp4JGf2+HadfD3YYGe9ke1yV0W9z09xpO9dXvqUj97vV3rVOpnP9u9H36IvDkvfTfrK4DcT4LAJDfCBtAHtOw8c4775gRBn2v5yLoCMXj+9fMfHldmJveX9/r9BWVPl1Fp0PpfTRs6KJfDRfp1+l8+uS8/Uz0r9w6b//zzz6RvbuLzMjG2OiQGdFo9tWkRjr0XA5977we7tAarDe/Z92NzNkGAChMhA0gj2nYWLhwwbS6999/z9TrYludVpXepu/N7j8JGg7S2xYnrtOwodOyNLAsXvx+ir6fzS5B+hduXSxe8vihBBorU/W6PW40Mmm+iMaiEUY4XEp/z3ryvI5kOdsAAIWJsAHkMTONatGiaXXJsKHbjuo6jvQ2Xbuhc+I1OOh8+mS9Tm1JrtnQ8xR0Xn36dTOdfaALw3XL0vS6r79aKceP7LP66onjoyOD5sRyZxsAAHAnwgaQx14UNvTsg/feW2SmVGm9vur6Dj0vQdv0Ol2wq206rSo5jUqnRGmbLujVtsqSYjO6oWcnOJ+vOwtp39Ln99EFv+nPtLFQHACAQkLYAPLYi8KG/qxnIuiCcT2MbenSxdNGHI4d3iNLliyWZZ9/Kt+v/VaWJAJFcjeqs6cOmv66U5D2edEOQbqTkPbRvjqFyjnS8SK6pmN4qM+cNO5sAwAA+Y+wAbicLhovf3LT7PbjbNPpUdVld6x6pVOrdOH4bHYI0ntrX+fOQy8T7gqldi/q7W612pE/9NBGzlMBADgRNgC8Nd76UrOYOFlYWJy/2kMe8zucGB+x2gAAhYuwAeCt0xOn9aRx3c3I2Yb80PN8lErPU3G2AQAKF2EDQE7we8qtOuSPoYGwCRs93S1WGwCgcBE2AOQkDR96ArmuBXC2IfeMjw2bsNHe0mi1AQAKF2EDQE7Sw+Gm1gCMStBbbbUj9+jviQMbAQDpCBsAclJrsF6i0eenjseibI8LAEAeImwAyFmBxkoZGx2SWDQigaYqqx0AAOQ2wgaAnKYH/zX7OL8BAIB8RNgAkHeafbVmmpWzHm+Hno8yOjIgrc38TgAA0xE2AOQVXYA8OTEuInFztoOzHfNvclJ/H8K6GgCAhbABIK/oVrjJMx20jAz1ic/DDkhvi/4+kkXX2DjbAQCFjbABIC91dwQkHo+brXE5i+PtCfnrTNDQRfzONgAACBsA8pZ+0eUMjrdLD1/sbPOZ8OdsAwCAsAHAVVoCdeKtZ6QDAIBcQNgA4Bo6yqEHAE6MjyR+5lwOAADeNsIGANdoDT6TaDQytYYgETraQx6rDwAAmD+EDQCuEmiqlPGxYRM4hof6rHa8OT5PufR2t0p7S6PVBgCAImwAcB09dbw33MqWuFmmBytqiUQmrDYAABRhA0DB4ByIN6u7I2jCxshwv9UGAIAibAAoCHq6tZ7LEe5sttrwegb6ukzY6Otpt9oAAFCEDQAFIfnF2KzlGOwVXwNTrOYq3BUy62M6WpqsNgAAFGEDQMEIdwbN6IYWRjgAAMg+wgaAgtISeCqDA+HEzyVWGwAAeLMIGwBcxVP3KOGxVf8yuoOVsw4AAMwNYQOAq5w/c1hu3Thn1auHd6+Ydme9TqnStQeBptmfOj7TvQpFMPH/yu+psOoBAEhH2ADgKo/uXZWKkmLzev/2JTl2eK/cLb5o2nbv3Cbr162V2sp7Unz9rBw9tCfR95Y5dbylpUWePa2Ta1fOmr5XLp6QIwd3pa5V1y+fStTtlrJHv6XuVVV2W06fOCAnj/0qz6rvW5/HrYYGwmbtS09Xi9UGAEASYQOAqxw5tHsqKCReNQxoWFix/DMTBI4f2Sc7i7bI+dOHpWjHZnlw54qsWf21NNQ+kYsXL8i2bdukrq5OLl84KQf37zSBZdXK5eZaHcXYsW1j4n4X5Ksvv0jca6+5165/2ipnTx2SS+ePyYF9RdbncauJ8RETNjg9HADwIoQNAK6SHjY0AGjdpg0/SNnj3xIh4rip37ThR/npxzXy86Z1svKLZab/oQO75O7tm9Lf2/k8mOyV7Vs3yKef/FEqS27Jls0/mRGN5HOS99LRDr2HhpeSh9etz+NGur4luatX0FtttQMAkETYAOAq6WFDX7Vu88YfE2Hjplx5HhC2b90o925dMm13bl6Q6rI7cmj/zlR/bT93+rA01D6U1d9+JRVPiuWX7ZtS15w6vl8unjtq7qXTsWor75rXL1etsD6PG+l6DS3xeEzY1QsA8CKEDQCu8qKw8eDOZVmx/HO5ceW0rP7uKxMq1q7+RuprHk4LG7rOY90Pq03A+Pbbr6Wq4rGUPLwh36/5xlyjkvfSNRx6r21b1su+PTusz+NW3vpSRjUAAC9F2ABQUHRr3OTPT6tmXtCtU6lam+vNX/C1DA30mOlD6YvAk/fSERANLM57AABQ6AgbAPAC4a5Qan3C+NiIMG0IAIDZI2wAwEu0Bp9JNDIpXe1+qw0AAMyMsAEAs+DzlFt1hcjbUCqTE2MyPNgrvsTPznYAANIRNgDgNej6jYG+Tgk0Vlptbhby15kpZbFo1GoDAMCJsAEAr6Gvp9186dbTx3UhubPdrTrbfOa/e2x0yGoDAMCJsAEAr0G3fZ0YH53aqkri0t0RtPq4UTJk6aiOsw0AACfCBgC8Jl2/MNgfNrtVtQSfWe1u1OyrNcFKF8072wAAcCJsAMAcNftqrDoAAEDYAIA3zu+pMGsbnPUAABQawgYAvFElMjoyYNY1DPZ3m6lWdh8AAAoDYQMA3rCe7hazaFyLLiIPNlVZffKR7roV7mw229862wAAyISwAQBZoF/MdVtcFWhyx1kcA31dJkDpjlTONgAAMiFsAECWaMhoCTy16vOVnq2hhfUoAIDZImwAwDzSnav8jRVWfT6IxaImbDCNCgAwW4QNAJgnPk+ZTE6OSzQymXfnVPgaSmVosNesQfHWs+gdADA7hA0AmCe6UHxiYurUcT0IMNwVsvoAAOAmhA0AmEdmhGCgJ7VTFaMEAAA3I2wAwFvQ3RGQoLfaqgcAwE0IGwCQI3J5i1xd2K6jMs56AABehLABADlARzl0tyc9yyIXplZ560vMNK/hoT7pC7fJ6MigTE6MSTOjMQCAV0DYAIAcoNOqkmV8bCQnTh0fGe5PfaZk0YXtGkKGBsImkDivAQAgHWEDAHJEW8gjsWjEfKkf7O+22udbuLPZETV+Lz1dLVZ/AACcCBsAkEMCTVUyNNgjvoYyq22+tQSfOTOGKeNjw4l2RjUAAC9H2ACAPPA21nF4G0oT0SI+LWjoNKqQv9bqCwBAJoQNAMhxbaEGiUxOSEvgqdWWbXrieXrp7+2w+gAAMBPCBgDkuLHR4dSoQndn0GrPppGhvlTQiEWj4veUW30AAJgJYQMAcpyu3xge7E196e9obbL6ZEt/b2fquSwKBwC8KsIGAOQJ3R1Kt6N11meTBgwtegZILixaBwDkF8IGAGBGyfM/+nrarTYAAF6GsAEAeUxHO3SqU7YO2Ots85mwkQuHDAIA8g9hAwDylJ7JoYvGtejZF4GmSqvPXHW0emV0ZMCqBwBgNggbAJDH2lsazXoKLdFoRPyeCqvPXOjIRle736oHAGA2CBsAkOeC3iqZGB/JyhkYGjTedIABABQOwgYAuICeMJ6NdRt6oKCzDgCA2SJsAIBL6Q5SIX+dVf8qWBgOAJgLwgYAuFByFyldQN7VHrDaZ4uzNQAAc0HYAAAX8nnKZWSozwQOLQN9XVafdN6GUrPYvL+nQ4YGeswOVIP93dLT3SItgadWfwAAZoOwAQAuNnUCuI5uZN5RSkcuesNtEo/FUsEkU5mcHDfb4DqvBwDgRQgbAOByzb4aq07peo5IZNKZK15YRob7xedhahUAYHYIGwBQYHTXqj4dzYi/eDRjpjI5MSZ+T7l1XwAAnAgbAFBg+ns7nfnhlcvoyGBWttoFALgLYQMACsz42LAzO6RKcELkQI/IhkQeOd0nMvyCwY/ujqB1bwAA0hE2AKCAtDU3ODODKaOJUPFOQORPy0T+UPq7v6wU2R129p4q0WhEfA2l1jMAAEgibABAARkasJODDl78g2d6yHDa0uW8aqrodrnOZwAAkETYAIACEotGnHlB9oTtcOH0Z+UibRk2rtKzOJzPAAAgibABAAXC31jhzAqm/H2DHS4y2ZhhXfnY6JD1HAAAkggbAFAgQv5aZ1Yw5a+r7GCRyT8GnVeKRCbHrecAAJBE2ACAAtHsrXFmBVP+rtoOFpl8EHJeOXXmhvM5AAAkETYAoED4GsqcWcGU/+mzg0UmJ3qdV+p5GwPWcwAASCJsAEAB0ZEIZykbsbe8dfr3tSKTceeVIr3hNusZAAAkETYAoID0JcJBprKtS+RPMoQM9VeVItWjziumSkugznoGAABJhA0AKCCBpkqJxzMfC148OLUzVXKU488rRP53QCQ04ew5VdiJCgDwMoQNACgwM41uJEs0nvlMDWdpCTy17g0AQDrCBgAUGG99iRmVmEvp6QpZ9wUAwImwAQAFyO8pTwSOYWeGmFXp62m37gcAQCaEDQAoUN76Uhno60rEhwzbTGUosWhEOtt81n0AAJgJYQMAClyzr0YGB8ISi0Wd+cKUyclx6e1uFZ+nzLoWAIAXIWwAAAxdyxHy10l7yGNGMFqb6yXorbb6AQAwW4QNAAAAAFlB2AAAAACQFYQNAICltuKuND59bNXPVm3lvTldDwBwB8IGAMCyYMECKXt806p/mbOnDskHS5fIp5/8UZYuXSynTxyw+gAACgdhAwBgeZ2wUfboN3nvvUXy6N5V815fFy1aJCUPb1h9AQCFgbABAC5RWXpL9u8tkuuXT8n6n9bK1p/Xp774q+qy27J75zb56cc1smfXNqmpuJtq06CwfetG2bThB/nt6plpYeNp1X3Zt3uHrHt+XV3lPevZ6sGdK3JgX9G0us8/+0SuXDhu9QUAFAbCBgC4hBlJWLhQ1qz+Wq5ePJEIDxtk6dIl0lD7UGor78pHH34gRds3y81rZ+WX7Zvk448/kmc1D0x4+PCDpbJ313a5cfW0fPftl/Luu++asKHrLpYv+8wEkeLrZ2Vn0RbzfjbrMR7cuWxCS8WTYqsNAFAYCBsA4BIaNt555x2pKrtt3nvqHpsv+4/vX5PjR/bKqpXLp/XX96eO7ze+XLUiVV9RUmzuo2Hj0rmjJlykX7fyi2Vy6fwx6/npdKREw82h/TutNgBA4SBsAIBLaNhYuHDBtLr333/P1Bft2GymVaW36XsdqdiV8POmddPaFieu07Ch07I0sCxe/H6KvndOl0p35+YFszj8IEEDAAoeYQMAXCK5IDu9Lhk29Iu/ruNIb9O1G/v27DDBYd0Pq1P1OkUquWbj2OG98v2ab6Zd96z6vvXsJF0vsvj99+X8mcNWGwCg8BA2AMAlXhQ2dPG27hSlU6q0Xl91fcfd4oumLX3XKJ1WlZxG9eTBddN2//Yl01ZZUmxGN25cOW09X6dOad+zpw5KTfmdFF0z4uwLACgM/x+zL2OZC6N3OwAAAABJRU5ErkJggg==", "text/plain": [ "" ] }, - "execution_count": 26, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -1066,7 +1410,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 14, "id": "24c29cb3-cf64-4fad-8b1a-b0962f1005b4", "metadata": {}, "outputs": [ @@ -1076,7 +1420,7 @@ "{'message': 'Visual Style applied.'}" ] }, - "execution_count": 27, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -1092,18 +1436,18 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 15, "id": "1dfb553a-2367-463e-8a3d-0d232c2aedd0", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFwCAYAAADQcmZ5AAA1LklEQVR4Xu3dDbz+9Xw/8JNUv9C/pFamlGQphiSslMYoKSy5K4uNlfvN3dxtmhn71ewGY24ahiWhFrWmaZVuJjLMUmERSUNUVkTb99/rm8/V93zPdZ1znZvvOdfN8/l4vB91ru91nXM6N53P6/t5fz6fmQoAAKADM+0HAAAAVoKwAQAAdELYAAAAOiFsAAAAnRA2AACATggbAABAJ4QNAACgE8IGAADQCWEDAADohLABAAB0QtgAAAA6IWwAAACdEDYAAIBOCBsAAEAnhA0AAKATwgYAANAJYQMAAOiEsAEAAHRC2AAAADohbAAAAJ0QNgAAgE4IGwAAQCeEDQAAoBPCBgAA0AlhAwAA6ISwAQAAdELYAAAAOiFsAAAAnRA2AACATggbAABAJ4QNAACgE8IGAADQCWEDAADohLABAAB0QtgAAAA6IWwAAACdEDYAAIBOCBsAAEAnhA0AAKATwgYAANAJYQMAAOiEsAEAAHRC2AAAADohbAAAAJ0QNgAAgE4IGwAAQCeEDQAAoBPCBgAA0AlhAwAA6ISwAQAAdELYAAAAOiFsAAAAnRA2AACATggbAABAJ4QNAACgE8IGAADQCWEDAADohLABAAB0QtgAAAA6IWwAAACdEDYAAIBOCBsAAEAnhA0AAKATwgYAANAJYQMAAOiEsAEAAHRC2AAAADohbAAAAJ0QNgAAgE4IGwAAQCeEDQAAoBPCBgAA0AlhAwAA6ISwAQAAdELYAAAAOiFsAAAAnRA2AACATggbAABAJ4QNAACgE8IGAADQCWEDAADohLABAAB0QtgAAAA6IWwAAACdEDYAAIBOCBsAAEAnhA0AAKATwgYAANAJYQMAAOiEsAEAAHRC2AAAADohbAAAAJ0QNgAAgE4IGwAAQCeEDQAAoBPCBgAA0AlhAwAA6ISwAQAAdELYAAAAOiFsAAAAnRA2AACATggbAABAJ4QNAACgE8IGAADQCWEDAADohLABAAB0QtgAAAA6IWwAAACdEDYAAIBOCBsAAEAnhA0AAKATwgYAANAJYQMAAOiEsAEAAHRC2AAAADohbAAAAJ0QNgAAgE4IGwAAQCeEjY783//9X3XsscdWP/rRj9qXAABgKggbHUjQeM5znlPNzMxUe+65p8ABAMBUEjZWWDNolBI4AACYRsLGCmoGjQ1uqcNuqTsJHAAATClhY4W0g8bLb6nP3FLvETgAAJhSwsYKGBQ0SgkcAABMI2FjmRYKGgIHAADTSthYhmGDhsABAMA0EjaWaLFBQ+AAAGDaCBtLsNSgIXAAADBNhI1FWm7QEDgAAJgWwsYirFTQEDgAAJgGwsaQVjpolBI4AACYVMLGELoKGqUEDgAAJpGwsYCug0YpgQMAgEkjbMxjtYJGKYEDAIBJImwMsNpBo5TAAQDApBA2+liroFFK4AAAYBIIGy1rHTRKCRwAAIw7YaNhVIJGKYEDAIBxJmz8wqgFjVICBwAA40rYqEY3aJQSOAAAGEdTHzZGPWiUEjgAABg3Ux02xiVolBI4AAAYJ8sKGxdccEF11llnVd/73vfalzqTgPCf//mf1T/90z9V5513XvXDH/6w/ZShjFvQKCVwAAAwLpYVNu52t7vVg96PfOQj7UudOOmkk6qddtqp/pilNt544+qwww6r/vu//7v99IHGNWiUageO/Ld/97vfrb7yla9U//Ef/1FdfPHF1X/913/Vj19//fXVz372s/aXAFik0047rfrf//3f9sMAwDzGJmz83d/9XS9g7LrrrtVRRx1Vh4wtttiifuzud797dfXVV7dfNse4B41SzcBxz3ves3r3u99d/cM//MPA+vCHP1x94hOfqP7lX/6l+rd/+7fqC1/4QnXppZdWV1xxRT0z9T//8z/11waY69hjj61/14444giBAwAWYSzCRu7a3+EOd6g/1pFHHln9/Oc/71276qqr6sF2rj396U9vvGquSQkapZqBIzM+CwWOYepjH/tY3aL2r//6r3UoyUzJ17/+9eo73/lOdc0111Q33nhj+8sKE60EjVICBwAMbyzCxvr16+uPs+2221Y//elP25er97///fX1tFTdfPPN7cu1SQsapboIHMPUP/7jP1af/OQnq09/+tPV5z73uXodTVq3Mrt03XXXad1iIjSDxq/dUrf7xb8LHAAwnJkf/OAH7cfm+MY3vlG95z3vqf70T/+0et/73tdblLxQ2Ljhhhuqj3/84/Uf7De84Q3Vhz70ofru+GJlYPuMZzyj+uM//uP2pVruwJcBQb+1G5MaNEqtVeBYqNK6dcopp9StW9lMIK1bl1xySfXNb36z/j5p3WKUNYPG4b/4XXvtjMABAIsxs27d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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFwCAYAAADQcmZ5AAAzjElEQVR4Xu3de2xcZX7w8VBQaCAhC0lY2Fe0Eu2ibRsQUgGJf9oVUlVahFoFFqmif2yLigR/AOUF9CJCAVG20W7/WMGCFihbLbub+H6N41tsx46d2HEc20kcx4nj2I7t+BrfHcce53n9e7TnaOY5nrHPeMYzc873I/2k9cyZ4xsr+Zs5z3k2KQAAAACIg03mAwAAAAAQC8QGAAAAgLggNgAAAADEBbEBAAAAIC6IDQAAEFOBQMB8CIBPERsAACBm+vv71e7du1VBQYH5FAAfIjYAAEBMSGg89NBD6m82bVJ3bd5McAAgNgAAwPpZofHicmjUL88vCA4AitgAAADrZIaGNQQHAGIDAABELVxoEBwABLEBAACislpoEBwAiA0AAODaWkOD4AD8jdgAAACuuA0NggPwL2IDAACsWbShQXAA/kRsAACANVlvaBAcgP8QGwAAYFWxCg1rCA7AH4gNAABS3OjoqFpaWjIfXrObN2+qkZER82FbrEPDGoID8D5iAwCAFHf77bery5cvmw+v2c9//nP1t3/7t+bDWrxCwxqCA/A2YgMAgBQXbWzMzs6qf//3f1e33nrrirER79CwhuAAvIvYAAAgAQYGBtTHH3+sSkpK1AsvvKBefvlldebMGfv54eFh9e6776rnnntOvffee2psbMx+rqurS7366qvqxRdfVBUVFSGxMTk5qT744AP1/PPPq71796qJiQn7dSb5nHL+n/zkJ47Y2KjQsIbgALyJ2AAAIAEkLO644w719NNP6z+wX3nlFbVr1y41Pz+vxsfH1QMPPKDeeOMNVVlZqV577TX14IMP6nciJB7uv/9+9f7776uysjL11FNPqVtuuUXHxuLionr44Yd1iFRVVam33npLfyyPr0Q+j/j6669DYmOjQ8MaggPwHmIDAIAEkNjYtPzH9eDgoP44EAjodyja29vV559/rp544omQ4x9//HEdBTJPPvmk/Xhvb68+j8RGZmamjotgjz32mMrOzg55zGTGRmFhofrD225TX60QBPGc8uX5k+X5t3/7t6CvDkAqIzYAAEgAiY0tW7aEPLZ9+3b9+JtvvqkvcQomH7/99tvqnXfeUS+99FLIc3fffbeODbksa/PmzWrHjh32yMeffPJJyPEmMzZEVlaW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", "text/plain": [ "" ] }, - "execution_count": 28, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1112,10 +1456,350 @@ "p4c.notebook_export_show_image()" ] }, + { + "cell_type": "code", + "execution_count": 20, + "id": "5d535abb-83f0-40c8-b781-5b3129183ebf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Applying default style...\n", + "Applying preferred layout\n" + ] + }, + { + "data": { + "text/plain": [ + "397" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nodes = pd.DataFrame(data={'id': [\"A\", \"B\", \"C\", \"D\"]})\n", + "edges = pd.DataFrame(data={'source': [\"C\", \"B\", \"B\", \"B\"], 'target': [\"D\", \"A\", \"D\", \"C\"]})\n", + "\n", + "p4c.create_network_from_data_frames(nodes, edges, title=\"simple network\", collection=\"Biological Example\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "bb8bf383-7760-434e-ab3d-71b976024006", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFwCAYAAADQcmZ5AAA3qUlEQVR4Xu3dC3hdaV3v8WEGhmEGDiIcURQR0OFyBI7oEUQUjqIooo+CIHhUePCGB0FUQA9yEaFpmkvTJr1f01vSpmk77fTepm16T+9J27S5NG2TpmmTJk2a+/U9/S/InvW+q9mTtPuy1vt+P8/zexxn/dMke+8y72/vtdb7mAIAAACAJHjM/BcAAAAAkAiUDQAAAABJQdkAgBTpGBhT17tH1Pn2YWJpqu+OeM9x7/CY+fQDgJMoGwCQRCP315wVrUNqQXWfmnGulziUlbX9qqZzxHxJAIBTKBsAkCSdg2Nq6eX+wCKUuJXnrg6ooVHz1QEAbqBsAEAS9AyPqfl8mkF+lJIrA2qMM6sAOIiyAQBJUNowEFhwErdTcXvIfJkAgPUoGwCQYM29o4GFJiGzz/dxOhUA51A2ACDBypoHAwtNQiS1XDAOwDGUDQBIsDV1XBROHpzym5xKBcAtlA0ASLBFl7gwnDw42xsHzZcLAFiNsgEACcaeGmSibL1O2QDgFsoGACQYZYNMFMoGANdQNgAgwSgbZKJQNgC4hrIBAAlG2SAThbIBwDWUDQBIMMoGmSiUDQCuoWwAQIJRNshEoWwAcA1lAwASjLJBJgplA4BrKBsAkGCUDTJRKBsAXEPZAIAEo2yQiULZAOAaygYAJBhlg0wUygYA11A2ACDBKBtkolA2ALiGsgEACUbZIBOFsgHANZQNAEgwygaZKJQNAK6hbABAglE2yEShbABwDWUDABKMskEmCmUDgGsoGwCQYJSNH+bbZVfVb/3NN7z8+/bqwHEXQ9kA4BrKBgAkGGXjh/n9r/yXeuyxx7z8xl9+JXDcxVA2ALiGsgEACUbZ+GFe96ZfUK95w5vUq1//0+rpV79GTatoD8y4FsoGANdQNgAgwSgbveqLy3Z7n2i8/9N/qz7wmS96//zp7y8KzLkWygYA11A2ACDBKBu96lf+6C+8gvH52evV/125z/vnn333rwbmXAtlA4BrKBsAkGCul43vH72tnnzFM+qpZ16lflBxx/t3r/vZn/cKxz+tOxaYdymUDQCuoWwAQIK5Xjb+9LvzvGLxq5/4fOzfffQfv+v9u/d98guBeZdC2QDgGsoGACSY62XjTe95v1cs/qFwb+zffXNXrXrJ44+rJ59+pfrekVuBr3EllA0ArqFsAECCuVw2vvbcOa9oyGlT5rFnf+23vWN//M28wDFXQtkA4BrKBgAkmMtl40Of+6pXKJ79wEfUp/5roZb3fvyz3rGf/Pl3Br7OlVA2ALiGsgEACeZq2Zh+uku96nWvj23kFy/+U6xcCmUDgGsoGwCQYK6Wjc/NKvGKxBve9m71+fzSB+bdv/MJb+aXPvZnga93IZQNAK6hbABAgrlaNt754T/44TUZ/29m4Nh4vlJ02Jt56ZMvV9850Bg4bnsoGwBcQ9kAgARzsWx8u+yqevyJl6onXvoy9d3ypsBxf37q2Xd5heNj/zwtcMz2UDYAuIayAQAJ5mLZkOIgBeKdH/544JiZP/x6ljf72je+RWWe7QkctzmUDQCuoWzASo3do2pb46Ba6OCiz8XkX+hTRfX96nTbsBoeNV8Nqedi2fiJN7/NKxB/mVsUOGZGPvl44mVPevN/PW9z4LjNoWwAcA1lA1YZGBlTG68OBP4DT9zJvIt96nr3iPnSSCkXywaZXCgbAFxD2YA1pGgsvdwf+I87cS/Zlb2qtjN9hYOyQSYKZQOAaygbsMaGBj7RIC8kr6pX3R0cM18mKUHZIBOFsgHANZQNWOFa90jgP+qEbL42YL5UUoKyQSYKZQOAaygbsMLz9/8Dbv5HnRA5nap/JPWfblA2yEShbABwDWUDVphzgcUdeXDqulJ/7QZlg0wUygYA11A2EHmjY0plPeA/6oRIztwZNl8ySUfZIBOFsgHANZQNRN7gyFjgP+iEjOdE65D5kkk6ygaZKJQNAK6hbCDyKBskXigbJEyhbABwDWUDkUfZIPFC2SBhCmUDgGsoG4g8ygaJF8oGCVMoGwBcQ9lA5FE2SLxQNkiYQtkA4BrKBiKPskHihbJBwhTKBgDXUDYQeZQNEi+UDRKmUDYAuIaygcijbJB4oWyQMIWyAcA1lA1EHmWDxAtlg4QplA0ArqFsIPIoGyRe0lE2ll3uD/wchEj23KBsAHALZQORR9kg8ZKOslHaMBD4OQiRHL+d+tcjAKQTZQORR9kg8ZKOsnGqbTjwcxAiudU3ar5cAMBqlA1EHmWDxEs6ykbv8JjKO891G0TPytp+86UCANajbCDyKBskXtJRNsTJVj7dIC8kp7JXNffyqQYA91A2EHmUDRIv6SobYkfjYODnIe4l637RqGofNl8eAOAEygYij7JB4iWdZUNU3P/+eVXBn4u4kfnVfarh3oj5sgAAZ1A2EHmUjR/mqyUV6sNf+Ff1ro/8sXrze39dvfPDH1e/9+XvqW/urgvMupR0lw3RMzymjt0eUiVXBrw9OGxL7sk2NeNYixf5Z/O4a1lyqV9tvDrgfZpx/3+eAMBplA1Enutl4zsHGtXbPvi76rHHHntgXvbyV6hPfW9B4OtcSRjKhu2ys7PVD37wAy/FxcXmYQCAwygbiDyXy8a3y66qH/vJn/FKxc+8873qL2cWq2/tvaIyTt5VX998Tv3m5/5JPf74E+oljz+uPjt9eeDrXQhlI7k6OjpiRUNSVlZmjgAAHEbZQOS5XDbe/sGPekXjf/zvP1QZpzoDxyWf+Fa+N/P0q39c/eB4W+C47aFsJNelS5e0snHhwgVzBADgMMoGIs/VsvGPq8u9EvHUM69S3y2/ETjuz089+y71sqeeVp+fvT5wzPZQNpKrvLxcKxutra3mCADAYZQNRJ6rZeOD/+dLXtl43ye/EDhm5tv7rk34yYftoWwkV0lJSaxoZGZmqrExrogGALyAsoHIc7VsyB2npGx8ZtrSwDHyQigbyVVQUBArG8uWLTMPAwAcR9lA5LlaNl77xrd4ZePvl+wMHCMvhLKRPP39/dopVFu3bjVHAACOo2wg8lwtG+N3ofqHwr2BY+SFUDaS59q1a1rZOHnypDkCAHAcZQOR52rZkFvdStn43KySwDHyQigbyVNRUaGVjcbGRnMEAOA4ygYiz9Wy8Usf+zOvbHz0H78bOGbmG89XqS8u3aWmnegIHLM9lI3k2bJli1Y2BgYGzBEAgOMoG4g8V8uGbNInZeNN73l/4JiZX/3E571ZKSjmMdtD2UiexYsXx4rG3LlzzcMAAFA2EH2ulo3/OnJbPfOa13kl4vP5pYHj4/m3rRfUy595pTf31/M2B47bHspGcoyOjqrp06fHykZpaak5AgAAZQPR52rZkPzpd+d5JeLJp1+p/ipvbeD41zadVa9/y9u9mZ9/34cDx10IZSM5bt26pZ1CdejQIXMEAADKBqLP5bIh+dDnvuqVCYnsFP6Bz3xRfejz/6ze8aGPqcefeKn371//1nd4G/uZX+tCKBvJUVVVpZWNmpoacwQAAMoGos/1siGR6zd+6tlfjJWO8bziv/2YVzy+f6w18DWuhLKRHHv27NHKRmdnpzkCAABlA9FH2Xgh39l/XX1p1QH190t3qn/ZcEpNP3MvMONaKBvJsXr16ljRyM3NNQ8DAOChbCDyKBskXigbySEFY7xsrFq1yjwMAICHsoHIo2yQeFlRXqmOHz+url69qvr7+82XDx5CV1eXdgrV7t27zREAADyUDUQeZYPES0bRdm1hnJ+fr0pKStT+/fvVpUuXVHt7u/mSwouora3VHtPKykpzBAAAD2UDkUfZIPFilo0HJSsrSy1fvlzt3LlTnT59Wt28eVMNDw+bLzX8yOHDh7XHr6WlxRwBAMBD2UDkUTZIvEymbEyUhQsXqg0bNqhjx46puro61dPTY778nCSPyfhjJBv7jYyMmCMAAHgoG4g8ygaJl2Mt/erGjRvq5MmTavv27Wrp0qVqxowZgWIx2cycOVMVFxervXv3qosXL6rW1lbzJWm9efPmxR6PxYsXm4cBAIihbCDyKBskXia6G5WUhOrqaq80rF27VuXl5QWKxWSTmZnplZht27apEydOqKamJjUwMGB+SysMDg6qadOmxX73zZs3myMAAMRQNhB5lA0SLxOVjQfp7e1V9fX13mlTGzdu9E6j8i+sp5q5c+eq0tJSdejQIW+HbbmLU9RJkfL/jnKnLwAAJkLZQORRNki8TKVsPIhcKC4XjJ85c0bt2rVLFRYWquzs7ECxmGxycnK8fSnkdrFyF6dbt25F6pqHU6dOab+P3FIYAICJUDYQeZQNEi+PWjYm0tHRoS5fvqwOHDjg3UpXbqlrFovJJiMjw7v2QU5JGt8TpK+vz/yWoSCnivl/9rD+nACAcKBsIPIoGyReklU2HkQ2Dbx27ZqqqKhQW7Zs8QqE3K3JLBeTTRj3BFm2bJn28wEAEA9lA5FH2SDxksqy8SCjo6PeqVJVVVVqz549avXq1So3NzdQLCabB+0JMjSUmt9xbGxMu5PXunXrzBEAADSUDUQeZYPES7rLxkTkYnHZiVs2yJOLyP23k32YpGJPkLa2Nu17yilkAADEQ9lA5FE2SLyEtWw8iNxWNtl7gsinEw9L/gz/ny+3DgYAIB7KBiJv+P7ayVxgEjKe023D5ksmcsKyJ8i+ffu0PysM15AAAMKNsgErzD7fF1hkEiK53Bmd28pORTr2BJFPScbn5doRJMfomFLX7o2oE63D6vCtIWJ5zt0ZVh0DD/+JIxB2lA1YobRhILDIJERyb8id/4gne08QOS1r/Jj82UgsKRlSMPIv8OaJi1ld16+ae0fNlwUQeZQNWOFix3Dgf7gJKa6f3OlBtkvkniDjmT9/fuj3BImSgZExtbaeN01cT3ZlrzpzJ/qnfgJ+lA1YQd67LqzpD/wPN3E3WffT3MO7hBNxYU+QqJBr9tddoWiQF3Lprp2nf8JNlA1Y4+7gGKcfkFiO347OXajCwqY9QaLk7B0+mSV65DrE/hF3TgGF3SgbsEr7wKhafIlPOFxOTqUdd6AKE7lYfOXKlYEy8bBJxZ4gUTK/mjdJSDBHblHMYQfKBqwjbwadur/YXM5pVU5FPtXa0TjofcKFxJOCMF4WFixYEPo9QaKipW808FomRCKnBgM2oGzAan3DY6qtf1Rd7x4hE2Txhu1q2vxCL9MXrlQ1bT2BmTBHrsvopGAkldzlKiMjI1YM5Fa7EwnLniBRcYGbW5AJklvVa75cgEiibACOkwuE/Qu8w4cPmyNwXHNzs/YaOXr0qDkSVzL2BFm/fn3cPUGi4mQrZYNMnEHucQELUDYAx8k7xf7TX+SuQnKhMDDu7Nmz2mJfisOjSvaeIHKh+8hI+O/oc6J1KLDAJGQ8g1wkDgtQNgB459z7F25y61JgnNxNyv/66O7uNkcSJpF7gsipX3JL382bN4d2TxDKBokXygZsQNkAoG7fvq0t0uSWp8C4FStWxF4bcg1GqiVjT5B169aFYk8QygaJF8oGbEDZAOAxb23a1tZmjsBR/tObioqKzMNpYcueIJQNEi+UDdiAsgHAI3cQ8i++ZNEFyGlN/tdFWVmZORIqcrF4bW2td6OD0tJSNW/evECxmEqSvScIZYPEC2UDNqBsAPDIO8WzZ8+OLbLknV7bbjOKqZPTjPyL7wsXLpgjoRfmPUEoGyReKBuwAWUDQMzBgwe1RZUszuC28vJy7TUhC2tbhGFPEMoGiRfKBmxA2QAQI3cZ8l94KztFw21yRyj/gvph38GPilTvCULZIPFC2YANKBsANLLA8i+W5HahcFdBQUHstSDv3LsomXuCbK68HlhgEjIeygZsQNkAoGlsbNQWRvKuLNwkt5z1vxa2bt1qjjgtEXuCZBRtDywwCRkPZQM2oGwACJB9DGKLoYyMwKkfcIPsbeFfGHMNz4ub6p4glA0SL5QN2ICyASBAThfxL4hk8zO4RxbM/teBfOqFqYu3Jwhlg8QLZQM2oGwACJDNzOS88vFFptylZ2RkxByD5eSdeX/ZmMzdlTB59+7dU7tqbgcWmISMh7IBG1A2ADyQvAPrX2jKu7Jwy5IlS2LPv9xVCYnH3ahIvFA2YAPKBoAHkotf/bf8XL58uTkCi8mpP/5rDWQ3biQeZYPEC2UDNqBsAJiQ7JLs/3RDbv8JN8g1Bv7nXvaJQOK5WDb+ZcMp9Vt/841AfueL/6H+4J8z1F9kr1b/ebA58HUuhrIBG1A2AEyorq5OW3DKOfxwg5w253/uZUM6JJ6LZUPKxGOPPRY3T7zsSfWhz31VZZy8G/h6l0LZgA0oGwAmJLtFz5kzJ7bglB2k+/r6zDFYyLxmp7Oz0xxBArhcNt7w9veov8pbG8ufz1ih/uQ/Zqv3fvyz6vHHn/Bm3v27n1SZZ7oDf4YroWzABpQNAHEdO3ZMW3QePXrUHIGF5Pas48+53KYVyeFy2Xj2Ax8JHBvPl1buVy976mlv7k//c37guCuhbMAGlA0AccknGfKJxvjCs6CgwPvEA3Yb3wdCsmrVKvMwEoSyETw+nk9+Z6439+M//XOBY66EsgEbUDYAvKitW7dqn27U1taaI7CI7Bjvf753795tjiBBKBvB4+PJONWpnnrmVd7sv246EzjuQigbsAFlA8CLamlp0RafRUVF5ggsImXS/3xXVlaaI0gQykbwuD9v+ZXf8GY//f3FgWMuhLIBG1A2AExKYWGhtgBtb283R2CJw4cPa8+1lE0kB2UjeNyf9/zep7zZj//r9MAxF0LZgA0oGwAm5cKFC5xa44gNGzbEnmfZ2G9kZMQcQYJQNoLH/fmfv/9pb/b3vvy9wDEXQtmADSgbACZFFpx5eXmxRWhOTo4aGhoyx2CBefPmxZ7nRYsWmYeRQJSN4HF/3vbrv+PN/sk3ZwWOuRDKBmxA2QAwaQcOHNA+3Th9+rQ5gogbHBxU06ZNiz3HmzdvNkeQQJSN4HF/Xv0Tb/Bm/37pzsAxF0LZgA0oGwAmTe5SlJGRwbveFmtqatIK5fHjx80RJBBlI3h8PF8pPuLNPfmKZ9QPjrcFjrsQygZsQNkAMCWlpaXaYvT69evmCCLs1KlT2vN79epVcwQJRNkIHpdknu1Rz/7ab3tz7/vkFwLHXQllAzagbACYkmvXrmmLUbmYGPbYtm2b9vzKpo5IHspG8PjXNp1V7/rIH3szz/zYa9W39jYEZlwJZQM2oGwAmLKFCxfGFqNyWtW9e/fMEUTU8uXLY89tfn6+eRgJ5nLZePLpV6rXv/UdsbzuTb+gnn71a7xjXtF4zevUl1YdCHy9S6FswAaUDQBTZp5qU15ebo4ggsbGxtSMGTNiz+u6devMESSYy2XDzOOPP+GVjTe95/3qd7/0HfXd8huBr3UtlA3YgLIBYMrkjkXZ2dmxRemsWbPU6OioOYaIaWtr00qk3H0MyeVi2SCTD2UDNqBsAHgou3bt0hamFy9eNEcQMfIc+p/T6upqcwQJRtkg8ULZgA0oGwAeyp07d7SF6YoVK8wRRMy+ffu057S9vd0cQYJRNki8UDZgA8oGgIe2Zs0abXF669YtcwQRUlxcHHsus7KyzMNIAsoGiRfKBmxA2QDw0C5fvqyVDbltKqJLrr0Zfy4LCwvNw0gCygaJF8oGbEDZAPDQ5O5FBQUFsQWq3Mmov7/fHEME9PT0aMVxx44d5giSgLJB4oWyARtQNgA8kiNHjmiL1OPHj5sjiIArV65oz+OZM2fMESQBZYPEC2UDNqBsAHgkvb29KjMzM7ZInTt3rjmCCDh27JhWNm7cuGGOIAkoGyReKBuwAWUDwCPbvHmztlCtr683RxBymzZtij1/06ZNU0NDQ+YIkoCyQeKFsgEbUDYAPLLm5matbKxdu9YcQcgtXLgw9vzNnz/fPIwkoWyQeKFswAaUDQAJsWzZMu2d8bt375ojCKnh4WGVkZERe/42btxojiBJKBskXigbsAFlA0BCVFZWap9u7N271xxBSN28eVN77o4ePWqOIEkoGyReKBuwAWUDQELIu+MzZ86MLVhzc3O9f4fwO3v2rFY2uOYmdSgbJF4oG7ABZQNAwuzbt09btJ47d84cQQjt3LlTe966u7vNESQJZYPEC2UDNqBsAEiYzs5O73qN8UXrkiVLzBGE0IoVK2LPWV5ennkYSUTZIPFC2YANKBsAEqqkpER7l7ypqckcQchkZ2fHnq+ioiLzMJKIskHiZXCUsoHoo2wASKiGhgatbMj+DQivjo4O7fkqKyszR5BEVe3DgQUmIZKcyl7z5QJEEmUDQMLJPg3ji9fp06ernp4ecwQhcenSJa1sXLhwwRxBEjX1jAYWmYRIllzuN18uQCRRNgAk3IkTJ7QF7KFDh8wRhER5ebn2XLW2tpojSCI5Syb/Ql9goUnI/uYh8+UCRBJlA0DCDQwMqKysrNgCNj8/X42OjppjCAH/NTaZmZlqbIxzxFPt6C2u2yB6cit7VdcgfxdhB8oGgKTYvn279o65nK6D8CkoKIg9R0uXLjUPIwWG7vfw5TX9gQUncTcVrXyqAXtQNgAkhZyO4y8bq1atMkeQZv39/dpztHXrVnMEKSLvYi+5ROEgvaqsedB8eQCRRtkAkDRSMPyLWa4HCJdr165pz8/JkyfNEaTQwMiY2tU0qLIrgwtQYn/mXexTFzuGzZcFEHmUDQBJU11drS1md+zYYY4gjSoqKrTnp7Gx0RxBGtwbGlNn7gyrnfeLx4aGAVVcn5osOtumMstqYsk/1hSYIYnN89cH1b7mQVXfNaLYvw+2omwASBq5KHz27NmxxaxcNC4XjyMctmzZopUNnht3VVZWqmnTpmmvhyNHjphjADBllA0ASSW3vfUvYOS2uAiHJUuWxJ6XOXPmmIfhiIsXLwaKxoYNG7gzGYCEoGwASKru7m5vY7/xRYxs+If0k0+d/M9LaWmpOQIH1NTUqIyMDK1orFu3jltVA0gYygaApNu0aZO2mGloaDBHkGK3b9/WnhM2XnTPlStXtMIpWbNmjRoZGTFHAeChUTYAJF1TU5O2oFm/fr05ghSrqqrSnhN5hxvukDuRzZgxQ3sNrFy5Ug0Nsb8DgMSibABICf/1AXJ+eGdnpzmCFNqzZ4+20OT5cMeNGze8mzX4n//ly5erwUH2dwCQeJQNAClx9uxZbXGzb98+cwQptHr16thzkZOTYx6GpVpaWrzn2/93Ud4IkA0eASAZKBsAUmJ4eFjl5ubGFjgzZ87k3PA08j8X7O7uBtlUU/7e+YvGwoULVW9vrzkKAAlD2QCQMuapO3LdAFKvq6tLex52795tjsAy7e3tKi8vT3ve582b590tDgCSibIBIGU6Ojq0+/kvW7bMHEEK1NbWaotO2dAN9rp7967Kz8/XnvOCggKvdAJAslE2AKTU2rVrtUVPc3OzOYIkO3z4sPYcyHn8sJMUCtmw0f98z5492ysgAJAKlA0AKVVXV6ctfLZs2WKOIMlkd+jxx1/2WeDaGTv19PR4p0r5/77JqVR37twxRwEgaSgbAFJu7ty5scVPZmYmF6immH8BumjRIvMwLNDX1+dd/O0vGnJTANnMEQBSibIBIOWOHz+uLYKOHj1qjiBJZC8F/3UzmzdvNkcQcQMDA2rp0qXa37Hs7Gx18+ZNcxQAko6yASDl5J7+/t2L5WLVsbExcwxJYO7mLsUP9pAyKRv0+Z9j+bsmzzsApANlA0BabN26VVsQ1dTUmCNIglOnTmmP+9WrV80RRJTsZSN7pvifXzlNkecYQDpRNgCkxa1bt7RF0Zo1a8wRJMG2bdu0x13O7Uf0yUX+RUVF2nMrF//X19ebowCQUpQNAGlTWFioLY64S07y+U+xkb0XEH2jo6OqpKRE+7uUkZGhLl++bI4CQMpRNgCkzYULF7QF0q5du8wRJJBcF+O/VmbdunXmCCJGntONGzdqf4/kBgDydwsAwoCyASBt5NSPWbNmxRZJcsccucAVySGfHPkXpQcOHDBHEDGyT43/OZWcO3fOHAOAtKFsAEgrWfD6F0qnT582R5AgFy9e1B7r6upqcwQRsn379kDROHnypDkGAGlF2QCQVvfu3fPOLx9fLMlGZEiOffv2aQvT9vZ2cwQRsWfPnkDROHbsmDkGAGlH2QCQdhs2bNAWTdeuXTNHkADFxcWxxzgrK8s8jIgwPw2UHDx40BwDgFCgbABIu+vXr2sLJykfSDz/9TFyJzBEz5EjRwJFo6yszBwDgNCgbAAIBTl9anzxJKdVyelVSJyenh5tgbpjxw5zBCFXUVERKBrcwQ1A2FE2AISCXBjuX0Rxp6TEunLlivb4njlzxhxBiMnzZRaNrVu3mmMAEDqUDQChILe8lVvfji+k5JQfuTUuEkMuHvYvVG/cuGGOIKSqqqq8vTP8z99zzz3n7bEBAGFH2QAQGnJKiH9BxcZkibNp06bY4yoL16GhIXMEISS3JzaLRmlpKUUDQGRQNgCEhrnpHBcxJ47/mpj58+ebhxFCtbW12m2hJWvXruUTPwCRQtkAECpr1qzRFlctLS3mCKZoeHhYW7Ru3LjRHEHINDQ0qMzMTO3vwurVq73nEgCihLIBIFRqamq0BRYXwT66mzdvao+p3D4V4SW3gp4xY4b2nK1YsYJT3wBEEmUDQKjIuegFBQWxRZYsuvr7+80xTMHZs2e1hWt9fb05gpCQC/dlw0X/87Vs2TI1MDBgjgJAJFA2AITO0aNHtcXW8ePHzRFMwc6dO7XHs7u72xxBCMgpgzk5OdpztXjxYtXX12eOAkBkUDYAhE5vb692vvrcuXO5+84jkFNwxh/LvLw88zBCoK2tTc2cOVMrGgsWLPD+LgBAlFE2AITSli1btIVXXV2dOYJJ8u9fUlRUZB5GmrW3t3v7yvhf71Kw7927Z44CQORQNgCEUnNzs7b4klt+Yuru3r2rPY5lZWXmCNKos7NT5efna8+RXLMk/x4AbEDZABBacmHs+AJMNjbr6OgwR/AiLl++rC1k2SgxPOSTC/kEw//8zJ49m9c5AKtQNgCEVlVVlbYQ27NnjzmCF1FeXq49hq2treYI0qCnp8fbXNH/3Mg1G3LtBgDYhLIBILRkp2T/RbNypx72GpiakpKS2OMnF91zoX36yd2lFi1apBWN3NxcdevWLXMUACKPsgEg1Pbt26ctymTPCEyef8+SpUuXmoeRYrJfhjwP/te0XMAv1ygBgI0oGwBCraury7teY3xhJvsOYHJkM0T/opbd2NNLPpUrLCzUnhPZtLKxsdEcBQBrUDYAhN769eu1BVpTU5M5gge4du2a9ridPHnSHEGKDA8Pq9WrV2vPh5zW1tDQYI4CgFUoGwBCTxZk/kXapk2bzBE8QEVFhfa48Q56esi1R8XFxdpzMX36dPaOAeAEygaASPDfuUcWat3d3eYIDObGiHK9AFJLLsg3P5nLyMhQly5dMkcBwEqUDQCRcOLECW3BdujQIXMEhiVLlsQerzlz5piHkWRSNORTOP/rVq4/On/+vDkKANaibACIBHlXPisrK7Zok83PRkdHzTH8iDw28gnQ+ONVWlpqjiDJnn/+ea1oSLibGgDXUDYARMaOHTu0hVt1dbU5gh+5ffu29lgdPHjQHEES7dy5M1A05NM5AHANZQNAZMju1/7F28qVK80R/Ii5+3pNTY05giTZu3dvoGgcPXrUHAMAJ1A2AETKqlWrtEWcFBAE7dmzR3ucOjs7zREkQXl5eaBoyL8DAFdRNgBEitzFx7+Q2759uzmC+/x7OuTk5JiHkQTy6YVZNORTDgBwGWUDQKTIhc/5+fmxxZxcNM4tXYNyc3Njj5F8GoTkMu+WJpFrjADAdZQNAJEjt731L+q48FbX1dWlPT67d+82R5BAcocps2jInagAAJQNABHU09Oj3dZVNvzDC2Rnav/Ct7Ky0hxBgsieGbJ3hv/xlr01ZI8NAABlA0BEPffcc9oCr6GhwRxx1uHDh7XHpqWlxRxBAsj1Q7IbuP+xlt3C2f8FAF5A2QAQSTdu3NAWeSUlJeaIszZs2BB7XGQxPDIyYo7gEcmnR/5P1yTFxcU81gBgoGwAiKwlS5bEFnpyKgu3d/2hefPmxR6XRYsWmYfxiK5evaoyMzO1oiEX4Q8PD5ujAOA8ygaAyDp37py24CsrKzNHnDM4OKhdQ7B582ZzBI+gsbFRzZgxQ3vdFRYWqqGhIXMUAKAoGwAiTN5J9t/idebMmc6/u9zU1KQthI8fP26O4CE1Nzer7Oxs7fFdunQpt14GgDgoGwAiTTZN8y/+XL/z0qlTp7THQ075waO7deuWVmwlcopaX1+fOQoA8KFsAIi0u3fvaqcNLVu2zBxxyrZt27QFMYvhR9fW1qby8vK0x1Vutyy3YAYAxEfZABB5a9eu1RaCcrqLq5YvXx57HGSndTyajo4ONXv2bO31NWfOHHXv3j1zFADwAJQNAJFXX1+vLQZdvShaNpLzX7y8bt06cwRTIDuxFxQUaK8tKXDc9QwAJo+yAcAKc+fOjS0I5bakvb295oj17ty5oy2MDxw4YI5gkrq7u7XXlGTWrFmqvb3dHAUAxEHZAGAFueuSf2F45MgRc8R6Fy9e1B6D6upqcwSTIEV1wYIF2mMpdzprbW01RwEAL4KyAcAK/f392ilEcvqLnFbkkn379mkLZN6Fnzp5HS1evFh7HHNyclRLS4s5CgCYBMoGAGuYd2K6fPmyOWK14uLi2O+elZVlHsaLkP0y5G5m/teQPI43btwwRwEAk0TZAGAN2QvBv1Bcs2aNOWI1uaZg/HeXXa0xebID+IoVK7TXj3xSdv36dXMUADAFlA0AVjEXjHLRtAtkzwf/771jxw5zBBOQXeelmPofP7nJwJUrV8xRAMAUUTYAWMW8SHrXrl3miJUaGhq03/vMmTPmCB5gdHTUu0Ww/7HLyMhQtbW15igA4CFQNgBYRRaP/tOJsrOz1eDgoDlmnWPHjmkLZq4zeHFyA4HS0lLtcZPd6LmLFwAkDmUDgHXKy8u1BeSpU6fMEets2rRJWzDLNQiYmBSN5557LlA0qqqqzFEAwCOgbACwzr1797xTYcYXkQsXLjRHrCO/4/jvO3/+fPMwDOadyySnT582xwAAj4iyAcBKGzZs0BaS165dM0esIRc4+8vVxo0bzRH4yHU8ZtGoqKgwxwAACUDZAGAluWWpfzEp5+bb6ubNm9rv6uLu6ZNlbnwoOXz4sDkGAEgQygYAay1atCi2oJR3/ru6uswRK5w9e1ZbPNfX15sjuO/gwYOBorF//35zDACQQJQNANaSc/D9C8sDBw6YI1bYuXOn9nt2d3ebI84z79Yl2bNnjzkGAEgwygYAa8kdmXJycmKLy7y8PDUyMmKORZ5/I0P5HaGTu5GZRWP79u3mGAAgCSgbAKy2e/dubZF54cIFcyTyZC+R8d+vqKjIPOy0c+fOebe09b8GtmzZYo4BAJKEsgHAau3t7dpCc/ny5eZIpN29e1f7/crKyswRZ0mxNIuG3KVM9tgAAKQGZQOA9eTdfv+Cs6WlxRyJrMuXL2u/m42f3DwMeVz8twOWlJSUeDvMAwBSh7IBwHq1tbXaovP55583RyLL3C29tbXVHHGO3I1r+vTp2uMihdPG63UAIOwoGwCsJ6fNzJkzJ7bwzMzMVH19feZYJMm79f7fy/VThGTzRnkc/EVj5cqV3saHAIDUo2wAcMLRo0e1BajcCtUGBQUFsd9p6dKl5mGnNDU1qaysLO15lmt0BgcHzVEAQIpQNgA4QT7J8L/jLZ90RP1TgP7+fm1hvXXrVnPEGbKLuv+uXJIlS5Z4jxEAIH0oGwCcIbc89S9G6+rqzJFIkVOG/L/PyZMnzREn3L59W+Xm5mqPxcKFC1Vvb685CgBIMcoGAGfIu9/+BWlxcbE5EikVFRXa79PY2GiOWO/OnTveRob+x2HevHnsog4AIUHZAOAUOYd/fFEqezB0dHSYI5FhflIzMDBgjlhN9hiZPXu29hjI6XFdXV3mKAAgTSgbAJxy/vx5bXG6Z88ecyQy5JoE/yLbJVIo/BfHS/Lz870CAgAID8oGAKfIXgv+025ycnLU0NCQORZ6sjmdfy+J0tJSc8RacoqUnCrlLxrynMpu8QCAcKFsAHDO/v37tYXqmTNnzJHQk4ui/b/DwYMHzREryUXfcvG3/3eXi8Pl8QAAhA9lA4Bz5BScjIyM2GJ18eLF5kjoVVVVaQvumpoac8Q6chtb/6ljEvlkSi78BwCEE2UDgJPWr1+vLVqjdicnudbE//N3dnaaI1aRjfn8F/dLZAO/GzdumKMAgBChbABw0tWrV7WF68aNG82RUFu9erX27r7N5JqalStXas+XbNAo+4wAAMKNsgHAWQsWLIgtXuW0qijtzeDfxG7VqlXmYWvIBf1FRUVa0ZAL4+vr681RAEAIUTYAOEt23PYvYqNykbVcc+L/uXfv3m2OWEHuuFVSUqL9rlIKXbg+BQBsQdkA4Cy5DkDO+x9fyMoGcbLADbu6ujptAV5ZWWmORN7Y2JjasGGD9nvKJowXL140RwEAIUbZAOC0nTt3agva6upqcyR0Dh8+rP3MLS0t5kikSdHYvHlzoGjYWKoAwHaUDQBOa2tr0xa1ciFy2Pnf8ZfTiuS6Bpts375de04kp06dMscAABFA2QDgPP+dnSRh3yDOv3v2okWLzMORJtefmEXj+PHj5hgAICIoGwCcd+nSJW1xK++sh5VcZyKnFI3/rHK6kS3Mnd0lhw4dMscAABFC2QDgPLlGID8/P7bAnTFjhhoYGDDHQqGpqcnKd/3N61Ak+/btM8cAABFD2QAAFVzsVlRUmCOhINcu+H9O2Zww6qQwmUVj165d5hgAIIIoGwBwX09Pj7dZ3PhiV66LCKNt27Zpi/K+vj5zJFJOnz4dKBryOwIA7EDZAIAfee6557RF75UrV8yRtFu+fHns55NTv6JMbmXrv/5EItegyGltAAA7UDYA4Edu3LihLXzXrVtnjqSVLMLlepKw/nxTIfuZmEVDbulL0QAAu1A2AMBn6dKlscWvLIY7OzvNkbS5c+eOtjiXuzdFUU1Njbc/iFnsorB7OwBgaigbAOBz7tw5bRFcVlZmjqTNxYsXtZ8tCrudm+TUNP+1MZI1a9ao4eFhcxQAYAHKBgD4yKI3Nzc3thCWfw7LQlhuBetfpLe3t5sjoXb9+nXtNDDJihUr1NDQkDkKALAEZQMADHv37tUWxHIhcxgUFxfHfqasrKxIXd8g18PIz+x/XOVid9mkEABgL8oGABju3r2rXbws13GEwaxZs2I/U2FhoXk4tFpaWlROTo5WNBYvXqz6+/vNUQCAZSgbAPAAcsGyf3Es78ynk+wD4v95duzYYY6EUmtrq5o5c6b2sy9YsED19vaaowAAC1E2AOAB5EJm/wJZ9uBIp4aGBu3nOXPmjDkSOnJNif/TGMncuXNVd3e3OQoAsBRlAwAmILuIjy+S5Q5K8ulCuhw7dkxbtKf7k5YXI7cMlk0H/T9zQUGB6urqMkcBABajbADABCoqKrTF8uHDh82RlPHvbi7Xk4T5Dk5SKObMmaM9drNnz1YdHR3mKADAcpQNAJiAXMDsv1WrvFOfrjtALVy4MPZzzJ8/3zwcGvLpj/x8/qKRl5fnbUgIAHAPZQMA4ti2bZu2cL58+bI5knSyz4d/x+2NGzeaI6HQ19enFi1apD1esk/J7du3zVEAgCMoGwAQhyyU/Yvn1atXmyNJd/PmTe1nOHLkiDmSdgMDA94tgv0/Z3Z2tmpubjZHAQAOoWwAwItYuXKltohua2szR5Lq7Nmz2vevr683R9JKrh+RDfr8P6OcftbU1GSOAgAcQ9kAgBdRXV2tLaR37txpjiSVfD//9w/TrWPlFK9Vq1ZpP19mZqa6evWqOQoAcBBlAwBexOjoqHc3pfHFtJweNDg4aI4lzYoVK2LfWy62DouRkRFVXFysFQ25RXBdXZ05CgBwFGUDACbh4MGD2qL65MmT5kjSSLkZ/75FRUXm4bSQArZ+/XrtMZGL2C9dumSOAgAcRtkAgEmQU5f8d4RasGCBOZIUd+/e1Rb0e/fuNUdSTm7/K3fE8v9csvfHhQsXzFEAgOMoGwAwSeYCOxXXJcitdv3fMwwL+ueff177mSRyETsAACbKBgBMUmNjo7bALi0tNUcSrry8XPuera2t5khK7dixI1A0UnlKGQAgWigbADAF/k3r5LSqrq4ucyShSkpKYt9P7vIk10qky549ewJF4+jRo+YYAAAxlA0AmIIzZ85oi+39+/ebIwlVUFAQ+16yaV66HDhwIFA05KJ5AADioWwAwBTIBnY5OTmxBbfcilZuAZsM/f392uJ+69at5khKyI7lZtEoKyszxwAACKBsAMAUmacTnT9/3hxJiGvXrmnfJx3XRpw4cSJQNFK9qSEAILooGwAwRe3t7d6tXscX38uXLzdHEqKiokJb5MsF6qlknjImSdenKwCAaKJsAMBDMHfOvnnzpjnyyMxbzA4MDJgjSVNVVaUVKsmmTZu8PTYAAJgsygYAPITa2lptIS7FINGWLFkS+/PnzJljHk6a6upqbQNDidzml6IBAJgqygYAPARZeEsBGF+My21p+/r6zLGHJre4nT59urbYTwUpUf7vK1m7dm3SLoIHANiNsgEAD+nYsWPaolz+/0S5ffu29men4jazDQ0NXmnyf9/Vq1er4eFhcxQAgEmhbADAQ5JPMvyLc/mkI1GnGsk1E/5Ff01NjTmSUHLx+YwZM7TvWVhY6N3qFwCAh0XZAIBHYF7ELachJYJ5e93Ozk5zJGGam5tVdna29v2WLVuW0gvSAQB2omwAwCNoaWnRFulFRUXmyEOR05fG/0zZRDBZbt26pW1SKFm8eHFCrz8BALiLsgEAj0j22RhfqMvtYmUfjkeVm5sb+zNXrVplHk6ItrY2NXPmTK1ozJ8/X/X09JijAAA8FMoGADwi2UHcv2DfvXu3OTIlXV1dCf3zHqSjo0PNmjVL+z5z585V9+7dM0cBAHholA0AeERyW9i8vLzYol0+lXiUC8Xr6uq0ElBZWWmOPDJzU8L8/PykXhcCAHATZQNAKNzsHVV7bwyqlbX9akF1X+Qy60yHmnGsJRbz+FQyp+qe9mfNu9ATmHnU5Jxojf35WcdvJeV7xEthTb/a2TSornezfwcA2IyyASCt+kfG1KarA2rGuV7iaNZeGVDdQw//SRAAILwoGwDSpnd4TC2+1BdYfBL3Mvdin+oYoHAAgG0oGwDSZk1df2DRSdzNksv9api+AQBWoWwASIuLHcOBxSYhFbfZsRwAbELZAJAWfKpBHpSF1WwmCAA2oWwASLnBUaWyKoMLTUIkdwc5lwoAbEHZAJBy7QOjgQUmIePhdrgAYA/KBoCUa+mlbJCJU9dF2QAAW1A2AKQcZYPEC2UDAOxB2QCQcpQNEi+UDQCwB2UDQMpRNki8UDYAwB6UDQApR9kg8ULZAAB7UDYApBxlg8QLZQMA7EHZAJBylA0SL5QNALAHZQNAylE2SLxQNgDAHpQNAClH2SDxQtkAAHtQNgCkHGWDxAtlAwDsQdkAkHKUDRIvlA0AsAdlA0DKUTZIvFA2AMAelA0AKUfZIPFC2QAAe1A2AKQcZYPEC2UDAOxB2QCQcpQNEi+UDQCwB2UDQMpRNki8UDYAwB6UDQAp52rZ+PKag+q3/uYbgXzki99Uf/j1LPV3i7arjFOdga9zLZQNALAHZQNAyrlaNv7kP2arxx57LG5e+8a3qn9aezTwtS6FsgEA9qBsAEg518vGW375N9Rf5a2N5c8zC9Uf/VuOevMvf9A7/qrX/aT6/tHbga93JZQNALAHZQNAyrleNn7pY38WOCaZfuaeeuMv/oo386nvLQgcdyWUDQCwB2UDQMpRNh5cNiS//Xf/7s3I/zWPuRLKBgDYg7IBIOUoGxOXjfd+/LPejJxaZR5zJZQNALAHZQNAylE29LIx/XSX+tbeK+oP/mW6evyJl6o3vO3dKuPk3cDXuxLKBgDYg7IBIOVcLxvxItdsfOdAY+BrXQplAwDsQdkAkHKul42nnnmV+u8/9wuxvPaNb1FPv/o1scLx9g9+VH3vcEvg610JZQMA7EHZAJByrpcN8zSq8Xx98zn11v/1m7HCYR53JZQNALAHZQNAylE2Hlw2JN/Zf1098bInvbl/23ohcNyFUDYAwB6UDQApR9mYuGxI5LQqmfvbhdsCx1wIZQMA7EHZAJBylI2Jy8Z/HrqpXvryp7y5r206GzjuQigbAGAPygaAlKNsPLhs/PuOS+odv/n73ozc/tY87kooGwBgD8oGgJRzvWw89cr/pl7/1ndo+fGf/jn1kpe8xDv+5NOvVF9eczDw9a6EsgEA9qBsAEg518uGGSkZT77iGfUTb36b+sBnvujsheHjoWwAgD0oGwBSztWyQSYXygYA2IOyASDlKBskXigbAGAPygaAlKNskHihbACAPSgbAFKOskHihbIBAPagbABIOcoGiRfKBgDYg7IBIOUoGyReKBsAYA/KBoCUo2yQeKFsAIA9KBsAUo6yQeKFsgEA9qBsAEg5ygaJF8oGANiDsgEg5SgbJF4oGwBgD8oGgJSjbJB4oWwAgD0oGwBSjrJB4oWyAQD2oGwASDnKBokXygYA2IOyASDlKBskXigbAGAPygaAlKNskHihbACAPSgbAFLudh9lg0ycK/coGwBgC8oGgJTrGR4LLDAJGc+t+2UUAGAHygaAtJh3sS+wyCRkZlWvut9FAQCWoGwASIt9zUOBhSYhz18fNF8qAIAIo2wASIve4TGVd55PN8gLyansVe0DfKwBADahbABIm9rOEZX1gEUncTNn7wybLxEAQMRRNgCk1eX7hUPO0zcXnsSdZFdSNADAVpQNAGnXNTimdjQOqrwqTqtyKVIyN18bUHcGuPsUANiKsgEgNEbGlGrpG1X1XSPqfPswsTRy+tzN3lE1TMcAAOtRNgAAAAAkBWUDAAAAQFJQNgAAAAAkxf8H42UII6Vb/7EAAAAASUVORK5CYII=", + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.notebook_export_show_image()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "1c4ab4f0-1f4d-4b9e-8b56-ec0f648531cb", + "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", + "
SUIDshared nameidnameselected
427427AAAFalse
430430BBBFalse
433433CCCFalse
436436DDDFalse
\n", + "
" + ], + "text/plain": [ + " SUID shared name id name selected\n", + "427 427 A A A False\n", + "430 430 B B B False\n", + "433 433 C C C False\n", + "436 436 D D D False" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_table_columns()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "0a7b318d-b4e1-4eef-ab13-14e9b7bfa80e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['SUID', 'shared name', 'id', 'name', 'selected']" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_table_column_names()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "29ba0973-1bc8-4987-b4ff-f3e50f9df573", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Attribute Circle Layout': 'attribute-circle',\n", + " 'Stacked Node Layout': 'stacked-node-layout',\n", + " 'Attribute Grid Layout': 'attribute-grid',\n", + " 'Degree Sorted Circle Layout': 'degree-circle',\n", + " 'Circular Layout': 'circular',\n", + " 'Group Attributes Layout': 'attributes-layout',\n", + " 'Edge-weighted Spring Embedded Layout': 'kamada-kawai',\n", + " 'Prefuse Force Directed Layout': 'force-directed',\n", + " 'Compound Spring Embedder (CoSE)': 'cose',\n", + " 'Grid Layout': 'grid',\n", + " 'Hierarchical Layout': 'hierarchical',\n", + " 'Edge-weighted Force directed (BioLayout)': 'fruchterman-rheingold',\n", + " 'Inverted Self-Organizing Map Layout': 'isom',\n", + " 'Prefuse Force Directed OpenCL Layout': 'force-directed-cl'}" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_layout_name_mapping()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "63aba4a3-f53f-4eb0-ab6b-17bbd1b58e78", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['m_averageIterationsPerNode',\n", + " 'm_nodeDistanceStrengthConstant',\n", + " 'm_nodeDistanceRestLengthConstant',\n", + " 'm_disconnectedNodeDistanceSpringStrength',\n", + " 'm_disconnectedNodeDistanceSpringRestLength',\n", + " 'm_anticollisionSpringStrength',\n", + " 'm_layoutPass',\n", + " 'singlePartition',\n", + " 'unweighted',\n", + " 'randomize']" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_layout_property_names('kamada-kawai')" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "eec4f428-3abd-40da-a291-112b3e0d6f65", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'boolean'" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_layout_property_type('kamada-kawai', 'randomize')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "98eb2412-5f24-4180-beac-2cadac9bb35e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.get_layout_property_value('kamada-kawai', 'randomize')" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "3492ec28-71e4-4366-855b-44238c12bf88", + "id": "3bdb2b5f-609b-4bbf-8e42-a8ec07e5bda2", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "fc3d4dd1-a132-4f08-adc3-add2eb25cc27", + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "11beffb4-a21e-4b73-9c0c-a0ec57513ebd", + "metadata": {}, + "outputs": [], + "source": [ + "tp = Path.cwd()\n", + "file = tp / 'test.svg'" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "03696e83-9c87-4ec3-bba2-024f4747385a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'file': 'A:\\\\Arbeitsaufgaben\\\\lang-main\\\\test-notebooks.xml'}" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.export_visual_styles(str(tp))" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "0e4068b3-7bf9-4093-8887-02b677a76fc1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'file': 'A:\\\\Arbeitsaufgaben\\\\lang-main\\\\test-notebooks\\\\test.svg'}" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p4c.export_image(str(file), type='SVG')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be448cd8-022c-446b-9294-2d00bc445054", "metadata": {}, "outputs": [], "source": []